You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

43 lines
1.4 MiB

function BigInteger(e,t,n){null!=e&&("number"==typeof e?this.fromNumber(e,t,n):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function nbi(){return new BigInteger(null)}function am1(e,t,n,a,r,i){for(;--i>=0;){var s=t*this[e++]+n[a]+r;r=Math.floor(s/67108864),n[a++]=67108863&s}return r}function am2(e,t,n,a,r,i){for(var s=32767&t,o=t>>15;--i>=0;){var l=32767&this[e],c=this[e++]>>15,d=o*l+c*s;l=s*l+((32767&d)<<15)+n[a]+(1073741823&r),r=(l>>>30)+(d>>>15)+o*c+(r>>>30),n[a++]=1073741823&l}return r}function am3(e,t,n,a,r,i){for(var s=16383&t,o=t>>14;--i>=0;){var l=16383&this[e],c=this[e++]>>14,d=o*l+c*s;l=s*l+((16383&d)<<14)+n[a]+r,r=(l>>28)+(d>>14)+o*c,n[a++]=268435455&l}return r}function int2char(e){return BI_RM.charAt(e)}function intAt(e,t){var n=BI_RC[e.charCodeAt(t)];return null==n?-1:n}function bnpCopyTo(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s}function bnpFromInt(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0}function nbv(e){var t=nbi();return t.fromInt(e),t}function bnpFromString(e,t,n){var a;if(16==t)a=4;else if(8==t)a=3;else if(256==t)a=8;else if(2==t)a=1;else if(32==t)a=5;else{if(4!=t)return void this.fromRadix(e,t);a=2}this.t=0,this.s=0;for(var r=e.length,i=!1,s=0;--r>=0;){var o=8==a?255&e[r]:intAt(e,r);o<0?"-"==e.charAt(r)&&(i=!0):(i=!1,0==s?this[this.t++]=o:s+a>this.DB?(this[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this[this.t++]=o>>this.DB-s):this[this.t-1]|=o<<s,s+=a,s>=this.DB&&(s-=this.DB))}8==a&&0!=(128&e[0])&&n&&(this.s=-1,s>0&&(this[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&BigInteger.ZERO.subTo(this,this)}function bnpClamp(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t}function bnToString(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var n,a=(1<<t)-1,r=!1,i="",s=this.t,o=this.DB-s*this.DB%t;if(s-- >0)for(o<this.DB&&(n=this[s]>>o)>0&&(r=!0,i=int2char(n));s>=0;)o<t?(n=(this[s]&(1<<o)-1)<<t-o,n|=this[--s]>>(o+=this.DB-t)):(n=this[s]>>(o-=t)&a,o<=0&&(o+=this.DB,--s)),n>0&&(r=!0),r&&(i+=int2char(n));return r?i:"0"}function bnNegate(){var e=nbi();return BigInteger.ZERO.subTo(this,e),e}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(t=n-e.t,0!=t)return this.s<0?-t:t;for(;--n>=0;)if(0!=(t=this[n]-e[n]))return t;return 0}function nbits(e){var t,n=1;return 0!=(t=e>>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function bnBitLength(){return this.t<=0?0:this.DB*(this.t-1)+nbits(this[this.t-1]^this.s&this.DM)}function bnpDLShiftTo(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s}function bnpDRShiftTo(e,t){for(var n=e;n<this.t;++n)t[n-e]=this[n];t.t=Math.max(this.t-e,0),t.s=this.s}function bnpLShiftTo(e,t){var n,a=e%this.DB,r=this.DB-a,i=(1<<r)-1,s=Math.floor(e/this.DB),o=this.s<<a&this.DM;for(n=this.t-1;n>=0;--n)t[n+s+1]=this[n]>>r|o,o=(this[n]&i)<<a;for(n=s-1;n>=0;--n)t[n]=0;t[s]=o,t.t=this.t+s+1,t.s=this.s,t.clamp()}function bnpRShiftTo(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)return void(t.t=0);var a=e%this.DB,r=this.DB-a,i=(1<<a)-1;t[0]=this[n]>>a;for(var s=n+1;s<this.t;++s)t[s-n-1]|=(this[s]&i)<<r,t[s-n]=this[s]>>a;a>0&&(t[this.t-n-1]|=(this.s&i)<<r),t.t=this.t-n,t.clamp()}function bnpSubTo(e,t){for(var n=0,a=0,r=Math.min(e.t,this.t);n<r;)a+=this[n]-e[n],t[n++]=a&this.DM,a>>=this.DB;if(e.t<this.t){for(a-=e.s;n<this.t;)a+=this[n],t[n++]=a&this.DM,a>>=this.DB;a+=this.s}else{for(a+=this.s;n<e.t;)a-=e[n],t[n++]=a&this.DM,a>>=this.DB;a-=e.s}t.s=a<0?-1:0,a<-1?t[n++]=this.DV+a:a>0&&(t[n++]=a),t.t=n,t.clamp()}function bnpMultiplyTo(e,t){var n=this.abs(),a=e.abs(),r=n.t;for(t.t=r+a.t;--r>=0;)t[r]=0;for(r=0;r<a.t;++r)t[r+n.t]=n.am(0,a[r],t,r,0,n.t);t.s=0,t.clamp(),this.s!=e.s&&BigInteger.ZERO.subTo(t,t)}function bnpSquareTo(e){for(var t=this.abs(),n=e.t=2*t.t;--n>=0;)e[n]=0;for(n=0;n<t.t-1;++n){var a=t.am(n,t[n],e,2*n,0,1);(e[n+t.t]+=t.am(n+1,2*t[n],e,2*n+1,a,t.t-n-1))>=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()}function bnpDivRemTo(e,t,n){var a=e.abs();if(!(a.t<=0)){var r=this.abs();if(r.t<a.t)return null!=t&&t.fromInt(0),void(null!=n&&this.copyTo(n));null==n&&(n=nbi());var i=nbi(),s=this.s,o=e.s,l=this.DB-nbits(a[a.t-1]);l>0?(a.lShiftTo(l,i),r.lShiftTo(l,n)):(a.copyTo(i),r.copyTo(n));var c=i.t,d=i[c-1];if(0!=d){var p=d*(1<<this.F1)+(c>1?i[c-2]>>this.F2:0),u=this.FV/p,m=(1<<this.F1)/p,g=1<<this.F2,h=n.t,f=h-c,_=null==t?nbi():t;for(i.dlShiftTo(f,_),n.compareTo(_)>=0&&(n[n.t++]=1,n.subTo(_,n)),BigInteger.ONE.dlShiftTo(c,_),_.subTo(i,i);i.t<c;)i[i.t++]=0;for(;--f>=0;){var y=n[--h]==d?this.DM:Math.floor(n[h]*u+(n[h-1]+g)*m);if((n[h]+=i.am(0,y,n,f,0,c))<y)for(i.dlShiftTo(f,_),n.subTo(_,n);n[h]<--y;)n.subTo(_,n)}null!=t&&(n.drShiftTo(c,t),s!=o&&BigInteger.ZERO.subTo(t,t)),n.t=c,n.clamp(),l>0&&n.rShiftTo(l,n),s<0&&BigInteger.ZERO.subTo(n,n)}}}function bnMod(e){var t=nbi();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(BigInteger.ZERO)>0&&e.subTo(t,t),t}function Classic(e){this.m=e}function cConvert(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function cRevert(e){return e}function cReduce(e){e.divRemTo(this.m,null,e)}function cMulTo(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function cSqrTo(e,t){e.squareTo(t),this.reduce(t)}function bnpInvDigit(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return t=t*(2-(15&e)*t)&15,t=t*(2-(255&e)*t)&255,t=t*(2-((65535&e)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function Montgomery(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function montConvert(e){var t=nbi();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(BigInteger.ZERO)>0&&this.m.subTo(t,t),t}function montRevert(e){var t=nbi();return e.copyTo(t),this.reduce(t),t}function montReduce(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var n=32767&e[t],a=n*this.mpl+((n*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(n=t+this.m.t,e[n]+=this.m.am(0,a,e,t,0,this.m.t);e[n]>=e.DV;)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function montSqrTo(e,t){e.squareTo(t),this.reduce(t)}function montMulTo(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function bnpIsEven(){return 0==(this.t>0?1&this[0]:this.s)}function bnpExp(e,t){if(e>4294967295||e<1)return BigInteger.ONE;var n=nbi(),a=nbi(),r=t.convert(this),i=nbits(e)-1;for(r.copyTo(n);--i>=0;)if(t.sqrTo(n,a),(e&1<<i)>0)t.mulTo(a,r,n);else{var s=n;n=a,a=s}return t.revert(n)}function bnModPowInt(e,t){var n;return n=e<256||t.isEven()?new Classic(t):new Montgomery(t),this.exp(e,n)}function bnClone(){var e=nbi();return this.copyTo(e),e}function bnIntValue(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]}function bnByteValue(){return 0==this.t?this.s:this[0]<<24>>24}function bnShortValue(){return 0==this.t?this.s:this[0]<<16>>16}function bnpChunkSize(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function bnSigNum(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1}function bnpToRadix(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),n=Math.pow(e,t),a=nbv(n),r=nbi(),i=nbi(),s="";for(this.divRemTo(a,r,i);r.signum()>0;)s=(n+i.intValue()).toString(e).substr(1)+s,r.divRemTo(a,r,i);return i.intValue().toString(e)+s}function bnpFromRadix(e,t){this.fromInt(0),null==t&&(t=10);for(var n=this.chunkSize(t),a=Math.pow(t,n),r=!1,i=0,s=0,o=0;o<e.length;++o){var l=intAt(e,o);l<0?"-"==e.charAt(o)&&0==this.signum()&&(r=!0):(s=t*s+l,++i>=n&&(this.dMultiply(a),this.dAddOffset(s,0),i=0,s=0))}i>0&&(this.dMultiply(Math.pow(t,i)),this.dAddOffset(s,0)),r&&BigInteger.ZERO.subTo(this,this)}function bnpFromNumber(e,t,n){if("number"==typeof t)if(e<2)this.fromInt(1);else for(this.fromNumber(e,n),this.testBit(e-1)||this.bitwiseTo(BigInteger.ONE.shiftLeft(e-1),op_or,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(BigInteger.ONE.shiftLeft(e-1),this);else{var a=new Array,r=7&e;a.length=(e>>3)+1,t.nextBytes(a),r>0?a[0]&=(1<<r)-1:a[0]=0,this.fromString(a,256)}}function bnToByteArray(e){var t=this.t,n=new Array;n[0]=this.s;var a,r=this.DB-t*this.DB%8,i=0;if(t-- >0)for(r<this.DB&&(a=this[t]>>r)!=(this.s&this.DM)>>r&&(n[i++]=a|this.s<<this.DB-r);t>=0;)r<8?(a=(this[t]&(1<<r)-1)<<8-r,a|=this[--t]>>(r+=this.DB-8)):(a=this[t]>>(r-=8)&255,r<=0&&(r+=this.DB,--t)),e&&0!=(128&a)&&(a|=-256),0==i&&(128&this.s)!=(128&a)&&++i,(i>0||a!=this.s)&&(n[i++]=a);return n}function bnEquals(e){return 0==this.compareTo(e)}function bnMin(e){return this.compareTo(e)<0?this:e}function bnMax(e){return this.compareTo(e)>0?this:e}function bnpBitwiseTo(e,t,n){var a,r,i=Math.min(e.t,this.t);for(a=0;a<i;++a)n[a]=t(this[a],e[a]);if(e.t<this.t){for(r=e.s&this.DM,a=i;a<this.t;++a)n[a]=t(this[a],r);n.t=this.t}else{for(r=this.s&this.DM,a=i;a<e.t;++a)n[a]=t(r,e[a]);n.t=e.t}n.s=t(this.s,e.s),n.clamp()}function op_and(e,t){return e&t}function bnAnd(e){var t=nbi();return this.bitwiseTo(e,op_and,t),t}function op_or(e,t){return e|t}function bnOr(e){var t=nbi();return this.bitwiseTo(e,op_or,t),t}function op_xor(e,t){return e^t}function bnXor(e){var t=nbi();return this.bitwiseTo(e,op_xor,t),t}function op_andnot(e,t){return e&~t}function bnAndNot(e){var t=nbi();return this.bitwiseTo(e,op_andnot,t),t}function bnNot(){for(var e=nbi(),t=0;t<this.t;++t)e[t]=this.DM&~this[t];return e.t=this.t,e.s=~this.s,e}function bnShiftLeft(e){var t=nbi();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function bnShiftRight(e){var t=nbi();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function lbit(e){if(0==e)return-1;var t=0;return 0==(65535&e)&&(e>>=16,t+=16),0==(255&e)&&(e>>=8,t+=8),0==(15&e)&&(e>>=4,t+=4),0==(3&e)&&(e>>=2,t+=2),0==(1&e)&&++t,t}function bnGetLowestSetBit(){for(var e=0;e<this.t;++e)if(0!=this[e])return e*this.DB+lbit(this[e]);return this.s<0?this.t*this.DB:-1}function cbit(e){for(var t=0;0!=e;)e&=e-1,++t;return t}function bnBitCount(){for(var e=0,t=this.s&this.DM,n=0;n<this.t;++n)e+=cbit(this[n]^t);return e}function bnTestBit(e){var t=Math.floor(e/this.DB);return t>=this.t?0!=this.s:0!=(this[t]&1<<e%this.DB)}function bnpChangeBit(e,t){var n=BigInteger.ONE.shiftLeft(e);return this.bitwiseTo(n,t,n),n}function bnSetBit(e){return this.changeBit(e,op_or)}function bnClearBit(e){return this.changeBit(e,op_andnot)}function bnFlipBit(e){return this.changeBit(e,op_xor)}function bnpAddTo(e,t){for(var n=0,a=0,r=Math.min(e.t,this.t);n<r;)a+=this[n]+e[n],t[n++]=a&this.DM,a>>=this.DB;if(e.t<this.t){for(a+=e.s;n<this.t;)a+=this[n],t[n++]=a&this.DM,a>>=this.DB;a+=this.s}else{for(a+=this.s;n<e.t;)a+=e[n],t[n++]=a&this.DM,a>>=this.DB;a+=e.s}t.s=a<0?-1:0,a>0?t[n++]=a:a<-1&&(t[n++]=this.DV+a),t.t=n,t.clamp()}function bnAdd(e){var t=nbi();return this.addTo(e,t),t}function bnSubtract(e){var t=nbi();return this.subTo(e,t),t}function bnMultiply(e){var t=nbi();return this.multiplyTo(e,t),t}function bnSquare(){var e=nbi();return this.squareTo(e),e}function bnDivide(e){var t=nbi();return this.divRemTo(e,t,null),t}function bnRemainder(e){var t=nbi();return this.divRemTo(e,null,t),t}function bnDivideAndRemainder(e){var t=nbi(),n=nbi();return this.divRemTo(e,t,n),new Array(t,n)}function bnpDMultiply(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function bnpDAddOffset(e,t){if(0!=e){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}}function NullExp(){}function nNop(e){return e}function nMulTo(e,t,n){e.multiplyTo(t,n)}function nSqrTo(e,t){e.squareTo(t)}function bnPow(e){return this.exp(e,new NullExp)}function bnpMultiplyLowerTo(e,t,n){var a=Math.min(this.t+e.t,t);for(n.s=0,n.t=a;a>0;)n[--a]=0;var r;for(r=n.t-this.t;a<r;++a)n[a+this.t]=this.am(0,e[a],n,a,0,this.t);for(r=Math.min(e.t,t);a<r;++a)this.am(0,e[a],n,a,0,t-a);n.clamp()}function bnpMultiplyUpperTo(e,t,n){--t;var a=n.t=this.t+e.t-t;for(n.s=0;--a>=0;)n[a]=0;for(a=Math.max(t-this.t,0);a<e.t;++a)n[this.t+a-t]=this.am(t-a,e[a],n,0,0,this.t+a-t);n.clamp(),n.drShiftTo(1,n)}function Barrett(e){this.r2=nbi(),this.q3=nbi(),BigInteger.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function barrettConvert(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=nbi();return e.copyTo(t),this.reduce(t),t}function barrettRevert(e){return e}function barrettReduce(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function barrettSqrTo(e,t){e.squareTo(t),this.reduce(t)}function barrettMulTo(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function bnModPow(e,t){var n,a,r=e.bitLength(),i=nbv(1);if(r<=0)return i;n=r<18?1:r<48?3:r<144?4:r<768?5:6,a=r<8?new Classic(t):t.isEven()?new Barrett(t):new Montgomery(t);var s=new Array,o=3,l=n-1,c=(1<<n)-1;if(s[1]=a.convert(this),n>1){var d=nbi();for(a.sqrTo(s[1],d);o<=c;)s[o]=nbi(),a.mulTo(d,s[o-2],s[o]),o+=2}var p,u,m=e.t-1,g=!0,h=nbi();for(r=nbits(e[m])-1;m>=0;){for(r>=l?p=e[m]>>r-l&c:(p=(e[m]&(1<<r+1)-1)<<l-r,m>0&&(p|=e[m-1]>>this.DB+r-l)),o=n;0==(1&p);)p>>=1,--o;if((r-=o)<0&&(r+=this.DB,--m),g)s[p].copyTo(i),g=!1;else{for(;o>1;)a.sqrTo(i,h),a.sqrTo(h,i),o-=2;o>0?a.sqrTo(i,h):(u=i,i=h,h=u),a.mulTo(h,s[p],i)}for(;m>=0&&0==(e[m]&1<<r);)a.sqrTo(i,h),u=i,i=h,h=u,--r<0&&(r=this.DB-1,--m)}return a.revert(i)}function bnGCD(e){var t=this.s<0?this.negate():this.clone(),n=e.s<0?e.negate():e.clone();if(t.compareTo(n)<0){var a=t;t=n,n=a}var r=t.getLowestSetBit(),i=n.getLowestSetBit();if(i<0)return t;for(r<i&&(i=r),i>0&&(t.rShiftTo(i,t),n.rShiftTo(i,n));t.signum()>0;)(r=t.getLowestSetBit())>0&&t.rShiftTo(r,t),(r=n.getLowestSetBit())>0&&n.rShiftTo(r,n),t.compareTo(n)>=0?(t.subTo(n,t),t.rShiftTo(1,t)):(n.subTo(t,n),n.rShiftTo(1,n));return i>0&&n.lShiftTo(i,n),n}function bnpModInt(e){if(e<=0)return 0;var t=this.DV%e,n=this.s<0?e-1:0;if(this.t>0)if(0==t)n=this[0]%e;else for(var a=this.t-1;a>=0;--a)n=(t*n+this[a])%e;return n}function bnModInverse(e){var t=e.isEven();if(this.isEven()&&t||0==e.signum())return BigInteger.ZERO;for(var n=e.clone(),a=this.clone(),r=nbv(1),i=nbv(0),s=nbv(0),o=nbv(1);0!=n.signum();){for(;n.isEven();)n.rShiftTo(1,n),t?(r.isEven()&&i.isEven()||(r.addTo(this,r),i.subTo(e,i)),r.rShiftTo(1,r)):i.isEven()||i.subTo(e,i),i.rShiftTo(1,i);for(;a.isEven();)a.rShiftTo(1,a),t?(s.isEven()&&o.isEven()||(s.addTo(this,s),o.subTo(e,o)),s.rShiftTo(1,s)):o.isEven()||o.subTo(e,o),o.rShiftTo(1,o);n.compareTo(a)>=0?(n.subTo(a,n),t&&r.subTo(s,r),i.subTo(o,i)):(a.subTo(n,a),t&&s.subTo(r,s),o.subTo(i,o))}return 0!=a.compareTo(BigInteger.ONE)?BigInteger.ZERO:o.compareTo(e)>=0?o.subtract(e):o.signum()<0?(o.addTo(e,o),o.signum()<0?o.add(e):o):o}function bnIsProbablePrime(e){var t,n=this.abs();if(1==n.t&&n[0]<=lowprimes[lowprimes.length-1]){for(t=0;t<lowprimes.length;++t)if(n[0]==lowprimes[t])return!0;return!1}if(n.isEven())return!1;for(t=1;t<lowprimes.length;){for(var a=lowprimes[t],r=t+1;r<lowprimes.length&&a<lplim;)a*=lowprimes[r++];for(a=n.modInt(a);t<r;)if(a%lowprimes[t++]==0)return!1}return n.millerRabin(e)}function bnpMillerRabin(e){var t=this.subtract(BigInteger.ONE),n=t.getLowestSetBit();if(n<=0)return!1;var a=t.shiftRight(n);e=e+1>>1,e>lowprimes.length&&(e=lowprimes.length);for(var r=nbi(),i=0;i<e;++i){r.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);var s=r.modPow(a,this);if(0!=s.compareTo(BigInteger.ONE)&&0!=s.compareTo(t)){for(var o=1;o++<n&&0!=s.compareTo(t);)if(s=s.modPowInt(2,this),0==s.compareTo(BigInteger.ONE))return!1;if(0!=s.compareTo(t))return!1}}return!0}function rng_seed_int(e){rng_pool[rng_pptr++]^=255&e,rng_pool[rng_pptr++]^=e>>8&255,rng_pool[rng_pptr++]^=e>>16&255,rng_pool[rng_pptr++]^=e>>24&255,rng_pptr>=rng_psize&&(rng_pptr-=rng_psize)}function rng_seed_time(){rng_seed_int((new Date).getTime())}function rng_get_byte(){if(null==rng_state){for(rng_seed_time(),rng_state=prng_newstate(),rng_state.init(rng_pool),rng_pptr=0;rng_pptr<rng_pool.length;++rng_pptr)rng_pool[rng_pptr]=0;rng_pptr=0}return rng_state.next()}function rng_get_bytes(e){var t;for(t=0;t<e.length;++t)e[t]=rng_get_byte()}function SecureRandom(){}function Arcfour(){this.i=0,this.j=0,this.S=new Array}function ARC4init(e){var t,n,a;for(t=0;t<256;++t)this.S[t]=t;for(n=0,t=0;t<256;++t)n=n+this.S[t]+e[t%e.length]&255,a=this.S[t],this.S[t]=this.S[n],this.S[n]=a;this.i=0,this.j=0}function ARC4next(){var e;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,e=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=e,this.S[e+this.S[this.i]&255]}function prng_newstate(){return new Arcfour}function findPrimes(e){var t,n,a,r;for(n=new Array(e),t=0;t<e;t++)n[t]=0;for(n[0]=2,a=0;n[a]<e;){for(t=n[a]*n[a];t<e;t+=n[a])n[t]=1;for(a++,n[a]=n[a-1]+1;n[a]<e&&n[n[a]];n[a]++);}for(r=new Array(a),t=0;t<a;t++)r[t]=n[t];return r}function millerRabinInt(e,t){return mr_x1.length!=e.length&&(mr_x1=dup(e),mr_r=dup(e),mr_a=dup(e)),copyInt_(mr_a,t),millerRabin(e,mr_a)}function millerRabin(e,t){var n,a,r,i;for(mr_x1.length!=e.length&&(mr_x1=dup(e),mr_r=dup(e),mr_a=dup(e)),copy_(mr_a,t),copy_(mr_r,e),copy_(mr_x1,e),addInt_(mr_r,-1),addInt_(mr_x1,-1),r=0,n=0;n<mr_r.length;n++)for(a=1;a<mask;a<<=1)e[n]&a?(i=r<mr_r.length+bpe?r:0,n=mr_r.length,a=mask):r++;if(i&&rightShift_(mr_r,i),powMod_(mr_a,mr_r,e),!equalsInt(mr_a,1)&&!equals(mr_a,mr_x1)){for(a=1;a<=i-1&&!equals(mr_a,mr_x1);){if(squareMod_(mr_a,e),equalsInt(mr_a,1))return 0;a++}if(!equals(mr_a,mr_x1))return 0}return 1}function bitSize(e){var t,n,a;for(t=e.length-1;0==e[t]&&t>0;t--);for(n=0,a=e[t];a;a>>=1,n++);return n+=bpe*t}function expand(e,t){var n=int2bigInt(0,(e.length>t?e.length:t)*bpe,0);return copy_(n,e),n}function randTruePrime(e){var t=int2bigInt(0,e,0);return randTruePrime_(t,e),trim(t,1)}function randProbPrime(e){return e>=600?randProbPrimeRounds(e,2):e>=550?randProbPrimeRounds(e,4):e>=500?randProbPrimeRounds(e,5):e>=400?randProbPrimeRounds(e,6):e>=350?randProbPrimeRounds(e,7):e>=300?randProbPrimeRounds(e,9):e>=250?randProbPrimeRounds(e,12):e>=200?randProbPrimeRounds(e,15):e>=150?randProbPrimeRounds(e,18):e>=100?randProbPrimeRounds(e,27):randProbPrimeRounds(e,40)}function randProbPrimeRounds(e,t){var n,a,r,i;for(i=3e4,n=int2bigInt(0,e,0),0==primes.length&&(primes=findPrimes(3e4)),rpprb.length!=n.length&&(rpprb=dup(n));;){for(randBigInt_(n,e,0),n[0]|=1,r=0,a=0;a<primes.length&&primes[a]<=i;a++)if(0==modInt(n,primes[a])&&!equalsInt(n,primes[a])){r=1;break}for(a=0;a<t&&!r;a++){for(randBigInt_(rpprb,e,0);!greater(n,rpprb);)randBigInt_(rpprb,e,0);millerRabin(n,rpprb)||(r=1)}if(!r)return n}}function mod(e,t){var n=dup(e);return mod_(n,t),trim(n,1)}function addInt(e,t){var n=expand(e,e.length+1);return addInt_(n,t),trim(n,1)}function mult(e,t){var n=expand(e,e.length+t.length);return mult_(n,t),trim(n,1)}function powMod(e,t,n){var a=expand(e,n.length);return powMod_(a,trim(t,2),trim(n,2),0),trim(a,1)}function sub(e,t){var n=expand(e,e.length>t.length?e.length+1:t.length+1);return sub_(n,t),trim(n,1)}function add(e,t){var n=expand(e,e.length>t.length?e.length+1:t.length+1);return add_(n,t),trim(n,1)}function inverseMod(e,t){var n,a=expand(e,t.length);return n=inverseMod_(a,t),n?trim(a,1):null}function multMod(e,t,n){var a=expand(e,n.length);return multMod_(a,t,n),trim(a,1)}function randTruePrime_(e,t){var n,a,r,i,s,o,l,c,d,p,u;if(0==primes.length&&(primes=findPrimes(3e4)),0==pows.length)for(pows=new Array(512),s=0;s<512;s++)pows[s]=Math.pow(2,s/511-1);if(n=.1,a=20,recLimit=20,s_i2.length!=e.length&&(s_i2=dup(e),s_R=dup(e),s_n1=dup(e),s_r2=dup(e),s_d=dup(e),s_x1=dup(e),s_x2=dup(e),s_b=dup(e),s_n=dup(e),s_i=dup(e),s_rm=dup(e),s_q=dup(e),s_a=dup(e),s_aa=dup(e)),t<=recLimit){for(r=(1<<(t+2>>1))-1,copyInt_(e,0),i=1;i;)for(i=0,e[0]=1|1<<t-1|Math.floor(Math.random()*(1<<t)),s=1;s<primes.length&&(primes[s]&r)==primes[s];s++)if(0==e[0]%primes[s]){i=1;break}return void carry_(e)}if(l=n*t*t,t>2*a)for(o=1;t-t*o<=a;)o=pows[Math.floor(512*Math.random())];else o=.5;for(u=Math.floor(o*t)+1,randTruePrime_(s_q,u),copyInt_(s_i2,0),s_i2[Math.floor((t-2)/bpe)]|=1<<(t-2)%bpe,divide_(s_i2,s_q,s_i,s_rm),d=bitSize(s_i);;){for(;randBigInt_(s_R,d,0),!greater(s_i,s_R););for(addInt_(s_R,1),add_(s_R,s_i),copy_(s_n,s_q),mult_(s_n,s_R),multInt_(s_n,2),addInt_(s_n,1),copy_(s_r2,s_R),multInt_(s_r2,2),c=0,s=0;s<primes.length&&primes[s]<l;s++)if(0==modInt(s_n,primes[s])&&!equalsInt(s_n,primes[s])){c=1;break}if(c||millerRabinInt(s_n,2)||(c=1),!c){for(addInt_(s_n,-3),s=s_n.length-1;0==s_n[s]&&s>0;s--);for(p=0,w=s_n[s];w;w>>=1,p++);for(p+=bpe*s;randBigInt_(s_a,p,0),!greater(s_n,s_a););if(addInt_(s_n,3),addInt_(s_a,2),copy_(s_b,s_a),copy_(s_n1,s_n),addInt_(s_n1,-1),powMod_(s_b,s_n1,s_n),addInt_(s_b,-1),isZero(s_b)&&(copy_(s_b,s_a),powMod_(s_b,s_r2,s_n),addInt_(s_b,-1),copy_(s_aa,s_n),copy_(s_d,s_b),GCD_(s_d,s_n),equalsInt(s_d,1)))return void copy_(e,s_aa)}}}function randBigInt(e,t){var n,a;return n=Math.floor((e-1)/bpe)+2,a=int2bigInt(0,0,n),randBigInt_(a,e,t),a}function randBigInt_(e,t,n){var a,r;for(a=0;a<e.length;a++)e[a]=0;for(r=Math.floor((t-1)/bpe)+1,a=0;a<r;a++)e[a]=Math.floor(Math.random()*(1<<bpe-1));e[r-1]&=(2<<(t-1)%bpe)-1,1==n&&(e[r-1]|=1<<(t-1)%bpe)}function GCD(e,t){var n,a;return n=dup(e),a=dup(t),GCD_(n,a),n}function GCD_(e,n){var a,r,i,s,o,l,c,d,p;for(T.length!=e.length&&(T=dup(e)),p=1;p;){for(p=0,a=1;a<n.length;a++)if(n[a]){p=1;break}if(!p)break;for(a=e.length;!e[a]&&a>=0;a--);for(r=e[a],i=n[a],s=1,o=0,l=0,c=1;i+l&&i+c&&(d=Math.floor((r+s)/(i+l)),qp=Math.floor((r+o)/(i+c)),d==qp);)t=s-d*l,s=l,l=t,t=o-d*c,o=c,c=t,t=r-d*i,r=i,i=t;o?(copy_(T,e),linComb_(e,n,s,o),linComb_(n,T,c,l)):(mod_(e,n),copy_(T,e),copy_(e,n),copy_(n,T))}if(0!=n[0])for(t=modInt(e,n[0]),copyInt_(e,n[0]),n[0]=t;n[0];)e[0]%=n[0],t=e[0],e[0]=n[0],n[0]=t}function inverseMod_(e,t){var n=1+2*Math.max(e.length,t.length);if(!(1&e[0]||1&t[0]))return copyInt_(e,0),0;for(eg_u.length!=n&&(eg_u=new Array(n),eg_v=new Array(n),eg_A=new Array(n),eg_B=new Array(n),eg_C=new Array(n),eg_D=new Array(n)),copy_(eg_u,e),copy_(eg_v,t),copyInt_(eg_A,1),copyInt_(eg_B,0),copyInt_(eg_C,0),copyInt_(eg_D,1);;){for(;!(1&eg_u[0]);)halve_(eg_u),1&eg_A[0]||1&eg_B[0]?(add_(eg_A,t),halve_(eg_A),sub_(eg_B,e),halve_(eg_B)):(halve_(eg_A),halve_(eg_B));for(;!(1&eg_v[0]);)halve_(eg_v),1&eg_C[0]||1&eg_D[0]?(add_(eg_C,t),halve_(eg_C),sub_(eg_D,e),halve_(eg_D)):(halve_(eg_C),halve_(eg_D));if(greater(eg_v,eg_u)?(sub_(eg_v,eg_u),sub_(eg_C,eg_A),sub_(eg_D,eg_B)):(sub_(eg_u,eg_v),sub_(eg_A,eg_C),sub_(eg_B,eg_D)),equalsInt(eg_u,0)){for(;negative(eg_C);)add_(eg_C,t);return copy_(e,eg_C),equalsInt(eg_v,1)?1:(copyInt_(e,0),0)}}}function inverseModInt(e,t){for(var n=1,a=0;;){if(1==e)return n;if(0==e)return 0;if(a-=n*Math.floor(t/e),t%=e,1==t)return a;if(0==t)return 0;n-=a*Math.floor(e/t),e%=t}}function inverseModInt_(e,t){return inverseModInt(e,t)}function eGCD_(e,t,n,a,r){var i=0,s=Math.max(e.length,t.length);for(eg_u.length!=s&&(eg_u=new Array(s),eg_A=new Array(s),eg_B=new Array(s),eg_C=new Array(s),eg_D=new Array(s));!(1&e[0]||1&t[0]);)halve_(e),halve_(t),i++;for(copy_(eg_u,e),copy_(n,t),copyInt_(eg_A,1),copyInt_(eg_B,0),copyInt_(eg_C,0),copyInt_(eg_D,1);;){for(;!(1&eg_u[0]);)halve_(eg_u),1&eg_A[0]||1&eg_B[0]?(add_(eg_A,t),halve_(eg_A),sub_(eg_B,e),halve_(eg_B)):(halve_(eg_A),halve_(eg_B));for(;!(1&n[0]);)halve_(n),1&eg_C[0]||1&eg_D[0]?(add_(eg_C,t),halve_(eg_C),sub_(eg_D,e),halve_(eg_D)):(halve_(eg_C),halve_(eg_D));if(greater(n,eg_u)?(sub_(n,eg_u),sub_(eg_C,eg_A),sub_(eg_D,eg_B)):(sub_(eg_u,n),sub_(eg_A,eg_C),sub_(eg_B,eg_D)),equalsInt(eg_u,0)){for(;negative(eg_C);)add_(eg_C,t),sub_(eg_D,e);return multInt_(eg_D,-1),copy_(a,eg_C),copy_(r,eg_D),void leftShift_(n,i)}}}function negative(e){return e[e.length-1]>>bpe-1&1}function greaterShift(e,t,n){var a,r=e.length,i=t.length;for(k=r+n<i?r+n:i,a=i-1-n;a<r&&a>=0;a++)if(e[a]>0)return 1;for(a=r-1+n;a<i;a++)if(t[a]>0)return 0;for(a=k-1;a>=n;a--){if(e[a-n]>t[a])return 1;if(e[a-n]<t[a])return 0}return 0}function greater(e,t){var n,a=e.length<t.length?e.length:t.length;for(n=e.length;n<t.length;n++)if(t[n])return 0;for(n=t.length;n<e.length;n++)if(e[n])return 1;for(n=a-1;n>=0;n--){if(e[n]>t[n])return 1;if(e[n]<t[n])return 0}return 0}function divide_(e,t,n,a){var r,i,s,o,l,c,d,p;for(copy_(a,e),i=t.length;0==t[i-1];i--);for(p=t[i-1],d=0;p;d++)p>>=1;for(d=bpe-d,leftShift_(t,d),leftShift_(a,d),r=a.length;0==a[r-1]&&r>i;r--);for(copyInt_(n,0);!greaterShift(t,a,r-i);)subShift_(a,t,r-i),n[r-i]++;for(s=r-1;s>=i;s--){for(a[s]==t[i-1]?n[s-i]=mask:n[s-i]=Math.floor((a[s]*radix+a[s-1])/t[i-1]);l=(i>1?t[i-2]:0)*n[s-i],c=l>>bpe,l&=mask,o=c+n[s-i]*t[i-1],c=o>>bpe,o&=mask,c==a[s]?o==a[s-1]?l>(s>1?a[s-2]:0):o>a[s-1]:c>a[s];)n[s-i]--;linCombShift_(a,t,-n[s-i],s-i),negative(a)&&(addShift_(a,t,s-i),n[s-i]--)}rightShift_(t,d),rightShift_(a,d)}function carry_(e){var t,n,a,r;for(n=e.length,a=0,t=0;t<n;t++)a+=e[t],r=0,a<0&&(r=-(a>>bpe),a+=r*radix),e[t]=a&mask,a=(a>>bpe)-r}function modInt(e,t){var n,a=0;for(n=e.length-1;n>=0;n--)a=(a*radix+e[n])%t;return a}function int2bigInt(e,t,n){var a;return a=Math.ceil(t/bpe)+1,a=n>a?n:a,buff=new Array(a),copyInt_(buff,e),buff}function str2bigInt(e,t,n){var a,r,i,s,o,l=e.length;if(t==-1){for(i=new Array(0);;){for(s=new Array(i.length+1),r=0;r<i.length;r++)s[r+1]=i[r];if(s[0]=parseInt(e,10),i=s,a=e.indexOf(",",0),a<1)break;if(e=e.substring(a+1),0==e.length)break}return i.length<n?(s=new Array(n),copy_(s,i),s):i}for(i=int2bigInt(0,t*l,0),r=0;r<l&&(a=digitsStr.indexOf(e.substring(r,r+1),0),t<=36&&a>=36&&(a-=26),!(a>=t||a<0));r++)multInt_(i,t),addInt_(i,a);for(l=i.length;l>0&&!i[l-1];l--);for(l=n>l+1?n:l+1,s=new Array(l),o=l<i.length?l:i.length,r=0;r<o;r++)s[r]=i[r];for(;r<l;r++)s[r]=0;return s}function equalsInt(e,t){var n;if(e[0]!=t)return 0;for(n=1;n<e.length;n++)if(e[n])return 0;return 1}function equals(e,t){var n,a=e.length<t.length?e.length:t.length;for(n=0;n<a;n++)if(e[n]!=t[n])return 0;if(e.length>t.length){for(;n<e.length;n++)if(e[n])return 0}else for(;n<t.length;n++)if(t[n])return 0;return 1}function isZero(e){var t;for(t=0;t<e.length;t++)if(e[t])return 0;return 1}function bigInt2str(e,t){var n,a,r="";if(s6.length!=e.length?s6=dup(e):copy_(s6,e),t==-1){for(n=e.length-1;n>0;n--)r+=e[n]+",";r+=e[0]}else for(;!isZero(s6);)a=divInt_(s6,t),r=digitsStr.substring(a,a+1)+r;return 0==r.length&&(r="0"),r}function dup(e){return buff=new Array(e.length),copy_(buff,e),buff}function copy_(e,t){var n,a=e.length<t.length?e.length:t.length;for(n=0;n<a;n++)e[n]=t[n];for(n=a;n<e.length;n++)e[n]=0}function copyInt_(e,t){var n,a;for(a=t,n=0;n<e.length;n++)e[n]=a&mask,a>>=bpe}function addInt_(e,t){var n,a,r,i;for(e[0]+=t,a=e.length,r=0,n=0;n<a;n++)if(r+=e[n],i=0,r<0&&(i=-(r>>bpe),r+=i*radix),e[n]=r&mask,r=(r>>bpe)-i,!r)return}function rightShift_(e,t){var n,a=Math.floor(t/bpe);if(a){for(n=0;n<e.length-a;n++)e[n]=e[n+a];for(;n<e.length;n++)e[n]=0;t%=bpe}for(n=0;n<e.length-1;n++)e[n]=mask&(e[n+1]<<bpe-t|e[n]>>t);e[n]>>=t}function halve_(e){var t;for(t=0;t<e.length-1;t++)e[t]=mask&(e[t+1]<<bpe-1|e[t]>>1);e[t]=e[t]>>1|e[t]&radix>>1}function leftShift_(e,t){var n,a=Math.floor(t/bpe);if(a){for(n=e.length;n>=a;n--)e[n]=e[n-a];for(;n>=0;n--)e[n]=0;t%=bpe}if(t){for(n=e.length-1;n>0;n--)e[n]=mask&(e[n]<<t|e[n-1]>>bpe-t);e[n]=mask&e[n]<<t}}function multInt_(e,t){var n,a,r,i;if(t)for(a=e.length,r=0,n=0;n<a;n++)r+=e[n]*t,i=0,r<0&&(i=-(r>>bpe),r+=i*radix),e[n]=r&mask,r=(r>>bpe)-i}function divInt_(e,t){var n,a,r=0;for(n=e.length-1;n>=0;n--)a=r*radix+e[n],e[n]=Math.floor(a/t),r=a%t;return r}function linComb_(e,t,n,a){var r,i,s,o;for(s=e.length<t.length?e.length:t.length,o=e.length,i=0,r=0;r<s;r++)i+=n*e[r]+a*t[r],e[r]=i&mask,i>>=bpe;for(r=s;r<o;r++)i+=n*e[r],e[r]=i&mask,i>>=bpe}function linCombShift_(e,t,n,a){var r,i,s,o;for(s=e.length<a+t.length?e.length:a+t.length,o=e.length,i=0,r=a;r<s;r++)i+=e[r]+n*t[r-a],e[r]=i&mask,i>>=bpe;for(r=s;i&&r<o;r++)i+=e[r],e[r]=i&mask,i>>=bpe}function addShift_(e,t,n){var a,r,i,s;for(i=e.length<n+t.length?e.length:n+t.length,s=e.length,r=0,a=n;a<i;a++)r+=e[a]+t[a-n],e[a]=r&mask,r>>=bpe;for(a=i;r&&a<s;a++)r+=e[a],e[a]=r&mask,r>>=bpe}function subShift_(e,t,n){var a,r,i,s;for(i=e.length<n+t.length?e.length:n+t.length,s=e.length,r=0,a=n;a<i;a++)r+=e[a]-t[a-n],e[a]=r&mask,r>>=bpe;for(a=i;r&&a<s;a++)r+=e[a],e[a]=r&mask,r>>=bpe}function sub_(e,t){var n,a,r;for(r=e.length<t.length?e.length:t.length,a=0,n=0;n<r;n++)a+=e[n]-t[n],e[n]=a&mask,a>>=bpe;for(n=r;a&&n<e.length;n++)a+=e[n],e[n]=a&mask,a>>=bpe}function add_(e,t){var n,a,r;for(r=e.length<t.length?e.length:t.length,a=0,n=0;n<r;n++)a+=e[n]+t[n],e[n]=a&mask,a>>=bpe;for(n=r;a&&n<e.length;n++)a+=e[n],e[n]=a&mask,a>>=bpe}function mult_(e,t){var n;for(ss.length!=2*e.length&&(ss=new Array(2*e.length)),copyInt_(ss,0),n=0;n<t.length;n++)t[n]&&linCombShift_(ss,e,t[n],n);copy_(e,ss)}function mod_(e,t){s4.length!=e.length?s4=dup(e):copy_(s4,e),s5.length!=e.length&&(s5=dup(e)),divide_(s4,t,s5,e)}function multMod_(e,t,n){var a;for(s0.length!=2*e.length&&(s0=new Array(2*e.length)),copyInt_(s0,0),a=0;a<t.length;a++)t[a]&&linCombShift_(s0,e,t[a],a);mod_(s0,n),copy_(e,s0)}function squareMod_(e,t){var n,a,r,i,s;for(i=e.length;i>0&&!e[i-1];i--);for(s=i>t.length?2*i:2*t.length,s0.length!=s&&(s0=new Array(s)),copyInt_(s0,0),n=0;n<i;n++){for(r=s0[2*n]+e[n]*e[n],s0[2*n]=r&mask,r>>=bpe,a=n+1;a<i;a++)r=s0[n+a]+2*e[n]*e[a]+r,s0[n+a]=r&mask,r>>=bpe;s0[n+i]=r}mod_(s0,t),copy_(e,s0)}function trim(e,t){var n,a;for(n=e.length;n>0&&!e[n-1];n--);return a=new Array(n+t),copy_(a,e),a}function powMod_(e,t,n){var a,r,i,s;if(s7.length!=n.length&&(s7=dup(n)),0!=(1&n[0])){for(copyInt_(s7,0),i=n.length;i>0&&!n[i-1];i--);for(s=radix-inverseModInt(modInt(n,radix),radix),s7[i]=1,multMod_(e,s7,n),s3.length!=e.length?s3=dup(e):copy_(s3,e),a=t.length-1;a>0&!t[a];a--);if(0==t[a])return void copyInt_(e,1);for(r=1<<bpe-1;r&&!(t[a]&r);r>>=1);for(;;){if(!(r>>=1)){if(a--,a<0)return void mont_(e,one,n,s);r=1<<bpe-1}mont_(e,e,n,s),r&t[a]&&mont_(e,s3,n,s)}}else for(copy_(s7,e),copyInt_(e,1);!equalsInt(t,0);)1&t[0]&&multMod_(e,s7,n),divInt_(t,2),squareMod_(s7,n)}function mont_(e,t,n,a){var r,i,s,o,l,c,d=n.length,p=t.length;for(sa.length!=d&&(sa=new Array(d)),copyInt_(sa,0);d>0&&0==n[d-1];d--);for(;p>0&&0==t[p-1];p--);for(c=sa.length-1,r=0;r<d;r++){for(l=sa[0]+e[r]*t[0],o=(l&mask)*a&mask,s=l+o*n[0]>>bpe,l=e[r],i=1;i<p-4;)s+=sa[i]+o*n[i]+l*t[i],sa[i-1]=s&mask,s>>=bpe,i++,s+=sa[i]+o*n[i]+l*t[i],sa[i-1]=s&mask,s>>=bpe,i++,s+=sa[i]+o*n[i]+l*t[i],sa[i-1]=s&mask,s>>=bpe,i++,s+=sa[i]+o*n[i]+l*t[i],sa[i-1]=s&mask,s>>=bpe,i++,s+=sa[i]+o*n[i]+l*t[i],sa[i-1]=s&mask,s>>=bpe,i++;for(;i<p;)s+=sa[i]+o*n[i]+l*t[i],sa[i-1]=s&mask,s>>=bpe,i++;for(;i<d-4;)s+=sa[i]+o*n[i],sa[i-1]=s&mask,s>>=bpe,i++,s+=sa[i]+o*n[i],sa[i-1]=s&mask,s>>=bpe,i++,s+=sa[i]+o*n[i],sa[i-1]=s&mask,s>>=bpe,i++,s+=sa[i]+o*n[i],sa[i-1]=s&mask,s>>=bpe,i++,s+=sa[i]+o*n[i],sa[i-1]=s&mask,s>>=bpe,i++;for(;i<d;)s+=sa[i]+o*n[i],sa[i-1]=s&mask,s>>=bpe,i++;for(;i<c;)s+=sa[i],sa[i-1]=s&mask,s>>=bpe,i++;sa[i-1]=s&mask}greater(n,sa)||sub_(sa,n),copy_(e,sa)}function dT(){return"["+(((new Date).getTime()-_logTimer)/1e3).toFixed(3)+"]"}function checkClick(e,t){return!((1!=e.which||!e.ctrlKey&&!e.metaKey)&&2!=e.which)||(t||e.preventDefault(),!1)}function isInDOM(e,t){return!!e&&(t=t||document.body,e==t||isInDOM(e.parentNode,t))}function checkDragEvent(e){if(!e||e.target&&("IMG"==e.target.tagName||"A"==e.target.tagName))return!1;if(!e.dataTransfer||!e.dataTransfer.types)return!0;for(var t=0;t<e.dataTransfer.types.length;t++)if("Files"==e.dataTransfer.types[t])return!0;
return!1}function cancelEvent(e){return e=e||window.event,e&&(e=e.originalEvent||e,e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),e.returnValue=!1,e.cancelBubble=!0),!1}function hasOnclick(e){if(e.onclick||e.getAttribute("ng-click"))return!0;var t=$._data(e,"events");return!(!t||!t.click&&!t.mousedown)}function getScrollWidth(){var e=$("<div>").css({position:"absolute",width:100,height:100,overflow:"scroll",top:-9999}).appendTo($(document.body)),t=e[0].offsetWidth-e[0].clientWidth;return e.remove(),t}function onCtrlEnter(e,t){$(e).on("keydown",function(e){if(13==e.keyCode&&(e.ctrlKey||e.metaKey))return t(),cancelEvent(e)})}function setFieldSelection(e,t,n){e=$(e)[0];try{if(e.focus(),void 0!==t&&t!==!1||(t=e.value.length),void 0!==n&&n!==!1||(n=t),e.createTextRange){var a=e.createTextRange();a.collapse(!0),a.moveEnd("character",n),a.moveStart("character",t),a.select()}else e.setSelectionRange&&e.setSelectionRange(t,n)}catch(r){}}function getFieldSelection(e){if(e.selectionStart)return e.selectionStart;if(!document.selection)return 0;var t="",n=document.selection.createRange(),a=n.text,r=n.duplicate(),i=0;try{r.moveToElementText(e)}catch(s){return 0}return n.text=a+t,i=r.text.indexOf(t),n.moveStart("character",-1),n.text="",i}function getRichValue(e){if(!e)return"";var t=[],n=[];getRichElementValue(e,t,n),n.length&&t.push(n.join(""));var a=t.join("\n");return a=a.replace(/\u00A0/g," ")}function getRichValueWithCaret(e){if(!e)return[];var t,n,a=[],r=[],i=!!window.getSelection&&window.getSelection();if(i&&i.rangeCount){var s=i.getRangeAt(0);s.startContainer&&s.startContainer==s.endContainer&&s.startOffset==s.endOffset&&(t=s.startContainer,n=s.startOffset)}getRichElementValue(e,a,r,t,n),r.length&&a.push(r.join(""));var o=a.join("\n"),l=o.indexOf("");return l!=-1&&(o=o.substr(0,l)+o.substr(l+1)),o=o.replace(/\u00A0/g," "),[o,l]}function getRichElementValue(e,t,n,a,r){if(3!=e.nodeType){if(1==e.nodeType){var i,s=a===e,o="DIV"==e.tagName||"P"==e.tagName;o&&n.length||"BR"==e.tagName?(t.push(n.join("")),n.splice(0,n.length)):"IMG"==e.tagName&&e.alt&&n.push(e.alt),s&&!r&&n.push("");for(var i=e.firstChild;i;)getRichElementValue(i,t,n,a,r),i=i.nextSibling;s&&r&&n.push(""),o&&n.length&&(t.push(n.join("")),n.splice(0,n.length))}}else if(a===e){var l=e.nodeValue;n.push(l.substr(0,r)+""+l.substr(r))}else n.push(e.nodeValue)}function setRichFocus(e,t,n){if(e.focus(),!t||t.parentNode!=e||t.nextSibling||n||(e.removeChild(t),t=null),window.getSelection&&document.createRange){var a=document.createRange();t?a.selectNode(t):a.selectNodeContents(e),n||a.collapse(!1);var r=window.getSelection();r.removeAllRanges(),r.addRange(a)}else if(void 0!==document.body.createTextRange){var i=document.body.createTextRange();i.moveToElementText(t||e),n||i.collapse(!1),i.select()}}function getSelectedText(){var e=(window.getSelection&&window.getSelection()||document.getSelection&&document.getSelection()||document.selection&&document.selection.createRange().text||"").toString().replace(/^\s+|\s+$/g,"");return e}function scrollToNode(e,t,n){var a=t.offsetTop-15,r=t.offsetHeight+30,i=e.scrollTop,s=e.clientHeight;i>a?(e.scrollTop=a,$(n).nanoScroller({flash:!0})):i<a+r-s&&(e.scrollTop=a+r-s,$(n).nanoScroller({flash:!0}))}function onContentLoaded(e){e=onAnimationFrameCallback(e),setZeroTimeout(e)}function tsNow(e){var t=+new Date+(window.tsOffset||0);return e?Math.floor(t/1e3):t}function safeReplaceObject(e,t){for(var n in e)t.hasOwnProperty(n)||"$"==n.charAt(0)||delete e[n];for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])}function listMergeSorted(e,t){e=e||[],t=t||[];for(var n=angular.copy(e),a=e.length?e[e.length-1]:4294967295,r=0;r<t.length;r++)t[r]<a&&n.push(t[r]);return n}function listUniqSorted(e){e=e||[];for(var t=[],n=!1,a=0;a<e.length;a++)e[a]!==n&&t.push(e[a]),n=e[a];return t}function templateUrl(e){var t={confirm_modal:"desktop",error_modal:"desktop",media_modal_layout:"desktop",slider:"desktop",reply_message:"desktop",full_round:"desktop",message_body:"desktop",message_media:"desktop",message_attach_game:"desktop",forwarded_messages:"desktop",chat_invite_link_modal:"desktop",reply_markup:"desktop",short_message:"desktop",pinned_message:"desktop",channel_edit_modal:"desktop",megagroup_edit_modal:"desktop",inline_results:"desktop",composer_dropdown:"desktop"},n=t[e]||(Config.Mobile?"mobile":"desktop");return"partials/"+n+"/"+e+".html"}function encodeEntities(e){return e.replace(/&/g,"&amp;").replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(/([^\#-~| |!])/g,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function calcImageInBox(e,t,n,a,r){var i=n,s=a;return e/t>n/a?s=parseInt(t*n/e):(i=parseInt(e*a/t),i>n&&(s=parseInt(s*n/i),i=n)),r&&i>=e&&s>=t&&(i=e,s=t),{w:i,h:s}}function versionCompare(e,t){"string"!=typeof e&&(e=""),"string"!=typeof t&&(t=""),e=e.replace(/^\s+|\s+$/g,"").split("."),t=t.replace(/^\s+|\s+$/g,"").split(".");var n,a=Math.max(e.length,t.length);for(n=0;n<a;n++)if(e[n]!=t[n])return e[n]>t[n]?1:-1;return 0}function bigint(e){return new BigInteger(e.toString(16),16)}function bigStringInt(e){return new BigInteger(e,10)}function dHexDump(e){for(var t=[],n=0;n<e.length;n++)!n||n%2||(n%16?n%4?t.push(" "):t.push(" "):t.push("\n")),t.push((e[n]<16?"0":"")+e[n].toString(16));console.log(t.join(""))}function bytesToHex(e){e=e||[];for(var t=[],n=0;n<e.length;n++)t.push((e[n]<16?"0":"")+(e[n]||0).toString(16));return t.join("")}function bytesFromHex(e){var t,n=e.length,a=0,r=[];for(e.length%2&&(r.push(parseInt(e.charAt(0),16)),a++),t=a;t<n;t+=2)r.push(parseInt(e.substr(t,2),16));return r}function bytesToBase64(e){for(var t,n="",a=e.length,r=0,i=0;i<a;i++)t=i%3,r|=e[i]<<(16>>>t&24),2!==t&&a-i!==1||(n+=String.fromCharCode(uint6ToBase64(r>>>18&63),uint6ToBase64(r>>>12&63),uint6ToBase64(r>>>6&63),uint6ToBase64(63&r)),r=0);return n.replace(/A(?=A$|$)/g,"=")}function uint6ToBase64(e){return e<26?e+65:e<52?e+71:e<62?e-4:62===e?43:63===e?47:65}function base64ToBlob(e,t){for(var n=1024,a=atob(e),r=a.length,i=Math.ceil(r/n),s=new Array(i),o=0;o<i;++o){for(var l=o*n,c=Math.min(l+n,r),d=new Array(c-l),p=l,u=0;p<c;++u,++p)d[u]=a[p].charCodeAt(0);s[o]=new Uint8Array(d)}return blobConstruct(s,t)}function dataUrlToBlob(e){var t=e.split(","),n=t[1],a=t[0].split(":")[1].split(";")[0],r=base64ToBlob(n,a);return r}function blobConstruct(e,t){var n,a=blobSafeMimeType(t);try{n=new Blob(e,{type:a})}catch(r){var i=new BlobBuilder;angular.forEach(e,function(e){i.append(e)}),n=i.getBlob(a)}return n}function blobSafeMimeType(e){return["image/jpeg","image/png","image/gif","image/webp","image/bmp","video/mp4","video/webm","video/quicktime","audio/ogg","audio/mpeg","audio/mp4"].indexOf(e)==-1?"application/octet-stream":e}function bytesCmp(e,t){var n=e.length;if(n!=t.length)return!1;for(var a=0;a<n;a++)if(e[a]!=t[a])return!1;return!0}function bytesXor(e,t){for(var n=e.length,a=[],r=0;r<n;++r)a[r]=e[r]^t[r];return a}function bytesToWords(e){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var t,n=e.length,a=[];for(t=0;t<n;t++)a[t>>>2]|=e[t]<<24-t%4*8;return new CryptoJS.lib.WordArray.init(a,n)}function bytesFromWords(e){for(var t=e.words,n=e.sigBytes,a=[],r=0;r<n;r++)a.push(t[r>>>2]>>>24-r%4*8&255);return a}function bytesFromBigInt(e,t){var n=e.toByteArray();if(t&&n.length<t){for(var a=[],r=0,i=t-n.length;r<i;r++)a[r]=0;n=n instanceof ArrayBuffer?bufferConcat(a,n):a.concat(n)}else for(;!n[0]&&(!t||n.length>t);)n=n.slice(1);return n}function bytesFromLeemonBigInt(e,t){var n=bigInt2str(e,16);return bytesFromHex(n)}function bytesToArrayBuffer(e){return new Uint8Array(e).buffer}function convertToArrayBuffer(e){return e instanceof ArrayBuffer?e:void 0!==e.buffer&&e.buffer.byteLength==e.length*e.BYTES_PER_ELEMENT?e.buffer:bytesToArrayBuffer(e)}function convertToUint8Array(e){return void 0!==e.buffer?e:new Uint8Array(e)}function convertToByteArray(e){if(Array.isArray(e))return e;e=convertToUint8Array(e);for(var t=[],n=0,a=e.length;n<a;n++)t.push(e[n]);return t}function bytesFromArrayBuffer(e){for(var t=e.byteLength,n=new Uint8Array(e),a=[],r=0;r<t;++r)a[r]=n[r];return a}function bufferConcat(e,t){var n=e.byteLength||e.length,a=t.byteLength||t.length,r=new Uint8Array(n+a);return r.set(e instanceof ArrayBuffer?new Uint8Array(e):e,0),r.set(t instanceof ArrayBuffer?new Uint8Array(t):t,n),r.buffer}function longToInts(e){var t=bigStringInt(e).divideAndRemainder(bigint(4294967296));return[t[0].intValue(),t[1].intValue()]}function longToBytes(e){return bytesFromWords({words:longToInts(e),sigBytes:8}).reverse()}function longFromInts(e,t){return bigint(e).shiftLeft(32).add(bigint(t)).toString(10)}function intToUint(e){return e=parseInt(e),e<0&&(e+=4294967296),e}function uintToInt(e){return e>2147483647&&(e-=4294967296),e}function sha1HashSync(e){this.rushaInstance=this.rushaInstance||new Rusha(1048576);var t=rushaInstance.rawDigest(e).buffer;return t}function sha1BytesSync(e){return bytesFromArrayBuffer(sha1HashSync(e))}function sha256HashSync(e){var t=CryptoJS.SHA256(bytesToWords(e)),n=bytesFromWords(t);return n}function rsaEncrypt(e,t){t=addPadding(t,255);var n=new BigInteger(e.modulus,16),a=new BigInteger(e.exponent,16),r=new BigInteger(t),i=r.modPowInt(a,n),s=bytesFromBigInt(i,256);return s}function addPadding(e,t,n){t=t||16;var a=e.byteLength||e.length,r=t-a%t;if(r>0&&r<t){var i=new Array(r);if(n)for(var s=0;s<r;s++)i[s]=0;else(new SecureRandom).nextBytes(i);e=e instanceof ArrayBuffer?bufferConcat(e,i):e.concat(i)}return e}function aesEncryptSync(e,t,n){e.byteLength||e.length;e=addPadding(e);var a=CryptoJS.AES.encrypt(bytesToWords(e),bytesToWords(t),{iv:bytesToWords(n),padding:CryptoJS.pad.NoPadding,mode:CryptoJS.mode.IGE}).ciphertext,r=bytesFromWords(a);return r}function aesDecryptSync(e,t,n){var a=CryptoJS.AES.decrypt({ciphertext:bytesToWords(e)},bytesToWords(t),{iv:bytesToWords(n),padding:CryptoJS.pad.NoPadding,mode:CryptoJS.mode.IGE}),r=bytesFromWords(a);return r}function gzipUncompress(e){var t=new Zlib.Gunzip(e).decompress();return t}function nextRandomInt(e){return Math.floor(Math.random()*e)}function pqPrimeFactorization(e){var t=new BigInteger(e),n=!1;try{n=pqPrimeLeemon(str2bigInt(t.toString(16),16,Math.ceil(64/bpe)+1))}catch(a){console.error("Pq leemon Exception",a)}if(n===!1&&t.bitLength()<=64)try{n=pqPrimeLong(goog.math.Long.fromString(t.toString(16),16))}catch(a){console.error("Pq long Exception",a)}return n===!1&&(n=pqPrimeBigInteger(t)),n}function pqPrimeBigInteger(e){for(var t,n=0,a=0;a<3;a++){for(var r=(15&nextRandomInt(128))+17,i=bigint(nextRandomInt(1e9)+1),s=i.clone(),o=1<<a+18,l=1;l<o;l++){++n;for(var c=i.clone(),d=i.clone(),p=bigint(r);!d.equals(BigInteger.ZERO);)d.and(BigInteger.ONE).equals(BigInteger.ZERO)||(p=p.add(c),p.compareTo(e)>0&&(p=p.subtract(e))),c=c.add(c),c.compareTo(e)>0&&(c=c.subtract(e)),d=d.shiftRight(1);i=p.clone();var u=i.compareTo(s)<0?s.subtract(i):i.subtract(s);if(t=u.gcd(e),!t.equals(BigInteger.ONE))break;0==(l&l-1)&&(s=i.clone())}if(t.compareTo(BigInteger.ONE)>0)break}var m,g,h=e.divide(t);return t.compareTo(h)>0?(m=h,g=t):(m=t,g=h),[bytesFromBigInt(m),bytesFromBigInt(g),n]}function gcdLong(e,t){for(;e.notEquals(goog.math.Long.ZERO)&&t.notEquals(goog.math.Long.ZERO);){for(;t.and(goog.math.Long.ONE).equals(goog.math.Long.ZERO);)t=t.shiftRight(1);for(;e.and(goog.math.Long.ONE).equals(goog.math.Long.ZERO);)e=e.shiftRight(1);e.compare(t)>0?e=e.subtract(t):t=t.subtract(e)}return t.equals(goog.math.Long.ZERO)?e:t}function pqPrimeLong(e){for(var t,n=0,a=0;a<3;a++){for(var r=goog.math.Long.fromInt((15&nextRandomInt(128))+17),i=goog.math.Long.fromInt(nextRandomInt(1e9)+1),s=i,o=1<<a+18,l=1;l<o;l++){++n;for(var c=i,d=i,p=r;d.notEquals(goog.math.Long.ZERO);)d.and(goog.math.Long.ONE).notEquals(goog.math.Long.ZERO)&&(p=p.add(c),p.compare(e)>0&&(p=p.subtract(e))),c=c.add(c),c.compare(e)>0&&(c=c.subtract(e)),d=d.shiftRight(1);i=p;var u=i.compare(s)<0?s.subtract(i):i.subtract(s);if(t=gcdLong(u,e),t.notEquals(goog.math.Long.ONE))break;0==(l&l-1)&&(s=i)}if(t.compare(goog.math.Long.ONE)>0)break}var m,g,h=e.div(t);return t.compare(h)>0?(m=h,g=t):(m=t,g=h),[bytesFromHex(m.toString(16)),bytesFromHex(g.toString(16)),n]}function pqPrimeLeemon(e){var t,n,a,r,i,s,o,l=64,c=Math.ceil(l/bpe)+1,d=0,p=new Array(c),u=new Array(c),m=new Array(c),i=new Array(c),g=new Array(c),h=new Array(c),f=new Array(c);for(t=0;t<3;t++){for(n=(15&nextRandomInt(128))+17,copyInt_(h,nextRandomInt(1e9)+1),copy_(f,h),r=1<<t+18,a=1;a<r;a++){for(++d,copy_(p,h),copy_(u,h),copyInt_(m,n);!isZero(u);)1&u[0]&&(add_(m,p),greater(m,e)&&sub_(m,e)),add_(p,p),greater(p,e)&&sub_(p,e),rightShift_(u,1);if(copy_(h,m),greater(h,f)?(copy_(g,h),sub_(g,f)):(copy_(g,f),sub_(g,h)),eGCD_(g,e,i,p,u),!equalsInt(i,1))break;0==(a&a-1)&&copy_(f,h)}if(greater(i,one))break}return divide_(e,i,h,f),greater(i,h)?(s=h,o=i):(s=i,o=h),[bytesFromLeemonBigInt(s),bytesFromLeemonBigInt(o),d]}function bytesModPow(e,t,n){try{var a=str2bigInt(bytesToHex(e),16),r=str2bigInt(bytesToHex(t),16),i=str2bigInt(bytesToHex(n),16),s=powMod(a,r,i);return bytesFromHex(bigInt2str(s,16))}catch(o){console.error("mod pow error",o)}return bytesFromBigInt(new BigInteger(e).modPow(new BigInteger(t),new BigInteger(n)),256)}function TLSerialization(e){return e=e||{},this.maxLength=e.startMaxLength||2048,this.offset=0,this.createBuffer(),this.mtproto=e.mtproto||!1,this}function TLDeserialization(e,t){return t=t||{},this.offset=0,this.override=t.override||{},this.buffer=e,this.intView=new Uint32Array(this.buffer),this.byteView=new Uint8Array(this.buffer),this.mtproto=t.mtproto||!1,this}function EmojiTooltip(e,t){t=t||{};var n=this;this.btnEl=$(e),this.onEmojiSelected=t.onEmojiSelected,this.onStickerSelected=t.onStickerSelected,this.getStickers=t.getStickers,this.getStickerImage=t.getStickerImage,this.onStickersetSelected=t.onStickersetSelected,this.langpack=t.langpack||{},Config.Navigator.touch||$(this.btnEl).on("mouseenter mouseleave",function(e){n.isOverBtn="mouseenter"==e.type,n.createTooltip(),n.isOverBtn?n.onMouseEnter(!0):n.onMouseLeave(!0)}),$(this.btnEl).on("mousedown",function(e){return n.shown?(clearTimeout(n.hideTimeout),delete n.hideTimeout,n.hide()):(clearTimeout(n.showTimeout),delete n.showTimeout,n.createTooltip(),n.show()),cancelEvent(e)}),$(document).on("mousedown",function(e){n.shown&&n.hide()})}function EmojiPanel(e,t){t=t||{};var n=this;this.containerEl=$(e),this.onEmojiSelected=t.onEmojiSelected,this.containerEl.on("mousedown",function(e){e=e.originalEvent||e;var t,a=$(e.target);return"A"!=a[0].tagName&&(a=$(a[0].parentNode)),(t=a.attr("data-code"))&&(n.onEmojiSelected&&n.onEmojiSelected(t),EmojiHelper.pushPopularEmoji(t)),cancelEvent(e)}),this.update()}function MessageComposer(e,t){var n=this;this.textareaEl=$(e),this.setUpInput(),this.autoCompleteWrapEl=$('<div class="composer_dropdown_wrap"></div>').appendTo(document.body);var a=$("<div></div>").appendTo(this.autoCompleteWrapEl);t.dropdownDirective(a,function(e,t){n.autoCompleteEl=t,n.autoCompleteScope=e,n.setUpAutoComplete()}),this.isActive=!1,this.onTyping=t.onTyping,this.onMessageSubmit=t.onMessageSubmit,this.onDirectionKey=t.onDirectionKey,this.getSendOnEnter=t.getSendOnEnter,this.onFilePaste=t.onFilePaste,this.onCommandSend=t.onCommandSend,this.onInlineResultSend=t.onInlineResultSend,this.mentions=t.mentions,this.commands=t.commands,this.renderToggleCnt=0}function Scroller(e,t){t=t||{};t.classPrefix||"scroller";this.content=$(e),this.useNano=void 0!==t.nano?t.nano:!Config.Mobile,this.maxHeight=t.maxHeight,this.minHeight=t.minHeight,this.useNano?this.setUpNano():this.setUpNative(),this.updateHeight()}!function(e){"use strict";e.console=e.console||{};for(var t,n,a=e.console,r={},i=function(){},s="memory".split(","),o="assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn".split(",");t=s.pop();)a[t]||(a[t]=r);for(;n=o.pop();)a[n]||(a[n]=i)}("undefined"==typeof window?this:window),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var n;if(null==this)throw new TypeError('"this" is null or not defined');var a=Object(this),r=a.length>>>0;if(0===r)return-1;var i=+t||0;if(Math.abs(i)===1/0&&(i=0),i>=r)return-1;for(n=Math.max(i>=0?i:r-Math.abs(i),0);n<r;){if(n in a&&a[n]===e)return n;n++}return-1}),Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),"function"!=typeof Object.create&&(Object.create=function(){var e=function(){};return function(t){if(arguments.length>1)throw Error("Second argument not supported");if("object"!=typeof t)throw TypeError("Argument must be an object");e.prototype=t;var n={};return e.prototype=null,n}}()),Function.prototype.bind||(Function.prototype.bind=function(e){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var t=Array.prototype.slice.call(arguments,1),n=this,a=function(){},r=function(){return n.apply(this instanceof a&&e?this:e,t.concat(Array.prototype.slice.call(arguments)))};return a.prototype=this.prototype,r.prototype=new a,r}),function(e){function t(t){a.push(t),e.postMessage(r,"*")}function n(t){if(t.source==e&&t.data==r&&(t.stopPropagation(),a.length>0)){var n=a.shift();n()}}var a=[],r="zero-timeout-message";e.addEventListener("message",n,!0);var i=e.setTimeout;e.setTimeout=function(e,n){return!n||n<=5?t(e):i(e,n)},e.setZeroTimeout=t}(this),!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=e.length,n=re.type(e);return"function"!==n&&!re.isWindow(e)&&(!(1!==e.nodeType||!t)||("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e))}function a(e,t,n){if(re.isFunction(t))return re.grep(e,function(e,a){return!!t.call(e,a,e)!==n});if(t.nodeType)return re.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(ue.test(t))return re.filter(t,e,n);t=re.filter(t,e)}return re.grep(e,function(e){return re.inArray(e,t)>=0!==n})}function r(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function i(e){var t=be[e]={};return re.each(e.match(ve)||[],function(e,n){t[n]=!0}),t}function s(){ge.addEventListener?(ge.removeEventListener("DOMContentLoaded",o,!1),e.removeEventListener("load",o,!1)):(ge.detachEvent("onreadystatechange",o),e.detachEvent("onload",o))}function o(){(ge.addEventListener||"load"===event.type||"complete"===ge.readyState)&&(s(),re.ready())}function l(e,t,n){if(void 0===n&&1===e.nodeType){var a="data-"+t.replace(Se,"-$1").toLowerCase();if(n=e.getAttribute(a),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:Ce.test(n)?re.parseJSON(n):n)}catch(r){}re.data(e,t,n)}else n=void 0}return n}function c(e){var t;for(t in e)if(("data"!==t||!re.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function d(e,t,n,a){if(re.acceptData(e)){var r,i,s=re.expando,o=e.nodeType,l=o?re.cache:e,c=o?e[s]:e[s]&&s;if(c&&l[c]&&(a||l[c].data)||void 0!==n||"string"!=typeof t)return c||(c=o?e[s]=K.pop()||re.guid++:s),l[c]||(l[c]=o?{}:{toJSON:re.noop}),("object"==typeof t||"function"==typeof t)&&(a?l[c]=re.extend(l[c],t):l[c].data=re.extend(l[c].data,t)),i=l[c],a||(i.data||(i.data={}),i=i.data),void 0!==n&&(i[re.camelCase(t)]=n),"string"==typeof t?(r=i[t],null==r&&(r=i[re.camelCase(t)])):r=i,r}}function p(e,t,n){if(re.acceptData(e)){var a,r,i=e.nodeType,s=i?re.cache:e,o=i?e[re.expando]:re.expando;if(s[o]){if(t&&(a=n?s[o]:s[o].data)){re.isArray(t)?t=t.concat(re.map(t,re.camelCase)):t in a?t=[t]:(t=re.camelCase(t),t=t in a?[t]:t.split(" ")),r=t.length;for(;r--;)delete a[t[r]];if(n?!c(a):!re.isEmptyObject(a))return}(n||(delete s[o].data,c(s[o])))&&(i?re.cleanData([e],!0):ne.deleteExpando||s!=s.window?delete s[o]:s[o]=null)}}}function u(){return!0}function m(){return!1}function g(){try{return ge.activeElement}catch(e){}}function h(e){var t=Fe.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function f(e,t){var n,a,r=0,i=typeof e.getElementsByTagName!==$e?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==$e?e.querySelectorAll(t||"*"):void 0;if(!i)for(i=[],n=e.childNodes||e;null!=(a=n[r]);r++)!t||re.nodeName(a,t)?i.push(a):re.merge(i,f(a,t));return void 0===t||t&&re.nodeName(e,t)?re.merge([e],i):i}function _(e){Ee.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t){return re.nodeName(e,"table")&&re.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function v(e){return e.type=(null!==re.find.attr(e,"type"))+"/"+e.type,e}function b(e){var t=Ge.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function w(e,t){for(var n,a=0;null!=(n=e[a]);a++)re._data(n,"globalEval",!t||re._data(t[a],"globalEval"))}function k(e,t){if(1===t.nodeType&&re.hasData(e)){var n,a,r,i=re._data(e),s=re._data(t,i),o=i.events;if(o){delete s.handle,s.events={};for(n in o)for(a=0,r=o[n].length;r>a;a++)re.event.add(t,n,o[n][a])}s.data&&(s.data=re.extend({},s.data))}}function $(e,t){var n,a,r;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!ne.noCloneEvent&&t[re.expando]){r=re._data(t);for(a in r.events)re.removeEvent(t,a,r.handle);t.removeAttribute(re.expando)}"script"===n&&t.text!==e.text?(v(t).text=e.text,b(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),ne.html5Clone&&e.innerHTML&&!re.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ee.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function C(t,n){var a,r=re(n.createElement(t)).appendTo(n.body),i=e.getDefaultComputedStyle&&(a=e.getDefaultComputedStyle(r[0]))?a.display:re.css(r[0],"display");return r.detach(),i}function S(e){var t=ge,n=Qe[e];return n||(n=C(e,t),"none"!==n&&n||(Je=(Je||re("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=(Je[0].contentWindow||Je[0].contentDocument).document,t.write(),t.close(),n=C(e,t),Je.detach()),Qe[e]=n),n}function M(e,t){return{get:function(){var n=e();if(null!=n)return n?void delete this.get:(this.get=t).apply(this,arguments)}}}function x(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),a=t,r=ut.length;r--;)if(t=ut[r]+n,t in e)return t;return a}function I(e,t){for(var n,a,r,i=[],s=0,o=e.length;o>s;s++)a=e[s],a.style&&(i[s]=re._data(a,"olddisplay"),n=a.style.display,t?(i[s]||"none"!==n||(a.style.display=""),""===a.style.display&&Ie(a)&&(i[s]=re._data(a,"olddisplay",S(a.nodeName)))):(r=Ie(a),(n&&"none"!==n||!r)&&re._data(a,"olddisplay",r?n:re.css(a,"display"))));for(s=0;o>s;s++)a=e[s],a.style&&(t&&"none"!==a.style.display&&""!==a.style.display||(a.style.display=t?i[s]||"":"none"));return e}function A(e,t,n){var a=lt.exec(t);return a?Math.max(0,a[1]-(n||0))+(a[2]||"px"):t}function E(e,t,n,a,r){for(var i=n===(a?"border":"content")?4:"width"===t?1:0,s=0;4>i;i+=2)"margin"===n&&(s+=re.css(e,n+xe[i],!0,r)),a?("content"===n&&(s-=re.css(e,"padding"+xe[i],!0,r)),"margin"!==n&&(s-=re.css(e,"border"+xe[i]+"Width",!0,r))):(s+=re.css(e,"padding"+xe[i],!0,r),"padding"!==n&&(s+=re.css(e,"border"+xe[i]+"Width",!0,r)));return s}function T(e,t,n){var a=!0,r="width"===t?e.offsetWidth:e.offsetHeight,i=et(e),s=ne.boxSizing&&"border-box"===re.css(e,"boxSizing",!1,i);if(0>=r||null==r){if(r=tt(e,t,i),(0>r||null==r)&&(r=e.style[t]),at.test(r))return r;a=s&&(ne.boxSizingReliable()||r===e.style[t]),r=parseFloat(r)||0}return r+E(e,t,n||(s?"border":"content"),a,i)+"px"}function D(e,t,n,a,r){return new D.prototype.init(e,t,n,a,r)}function P(){return setTimeout(function(){mt=void 0}),mt=re.now()}function R(e,t){var n,a={height:e},r=0;for(t=t?1:0;4>r;r+=2-t)n=xe[r],a["margin"+n]=a["padding"+n]=e;return t&&(a.opacity=a.width=e),a}function N(e,t,n){for(var a,r=(vt[t]||[]).concat(vt["*"]),i=0,s=r.length;s>i;i++)if(a=r[i].call(n,t,e))return a}function F(e,t,n){var a,r,i,s,o,l,c,d,p=this,u={},m=e.style,g=e.nodeType&&Ie(e),h=re._data(e,"fxshow");n.queue||(o=re._queueHooks(e,"fx"),null==o.unqueued&&(o.unqueued=0,l=o.empty.fire,o.empty.fire=function(){o.unqueued||l()}),o.unqueued++,p.always(function(){p.always(function(){o.unqueued--,re.queue(e,"fx").length||o.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[m.overflow,m.overflowX,m.overflowY],c=re.css(e,"display"),d="none"===c?re._data(e,"olddisplay")||S(e.nodeName):c,"inline"===d&&"none"===re.css(e,"float")&&(ne.inlineBlockNeedsLayout&&"inline"!==S(e.nodeName)?m.zoom=1:m.display="inline-block")),n.overflow&&(m.overflow="hidden",ne.shrinkWrapBlocks()||p.always(function(){m.overflow=n.overflow[0],m.overflowX=n.overflow[1],m.overflowY=n.overflow[2]}));for(a in t)if(r=t[a],ht.exec(r)){if(delete t[a],i=i||"toggle"===r,r===(g?"hide":"show")){if("show"!==r||!h||void 0===h[a])continue;g=!0}u[a]=h&&h[a]||re.style(e,a)}else c=void 0;if(re.isEmptyObject(u))"inline"===("none"===c?S(e.nodeName):c)&&(m.display=c);else{h?"hidden"in h&&(g=h.hidden):h=re._data(e,"fxshow",{}),i&&(h.hidden=!g),g?re(e).show():p.done(function(){re(e).hide()}),p.done(function(){var t;re._removeData(e,"fxshow");for(t in u)re.style(e,t,u[t])});for(a in u)s=N(g?h[a]:0,a,p),a in h||(h[a]=s.start,g&&(s.end=s.start,s.start="width"===a||"height"===a?1:0))}}function U(e,t){var n,a,r,i,s;for(n in e)if(a=re.camelCase(n),r=t[a],i=e[n],re.isArray(i)&&(r=i[1],i=e[n]=i[0]),n!==a&&(e[a]=i,delete e[n]),s=re.cssHooks[a],s&&"expand"in s){i=s.expand(i),delete e[a];for(n in i)n in e||(e[n]=i[n],t[n]=r)}else t[a]=r}function O(e,t,n){var a,r,i=0,s=yt.length,o=re.Deferred().always(function(){delete l.elem}),l=function(){if(r)return!1;for(var t=mt||P(),n=Math.max(0,c.startTime+c.duration-t),a=n/c.duration||0,i=1-a,s=0,l=c.tweens.length;l>s;s++)c.tweens[s].run(i);return o.notifyWith(e,[c,i,n]),1>i&&l?n:(o.resolveWith(e,[c]),!1)},c=o.promise({elem:e,props:re.extend({},t),opts:re.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:mt||P(),duration:n.duration,tweens:[],createTween:function(t,n){var a=re.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(a),a},stop:function(t){var n=0,a=t?c.tweens.length:0;if(r)return this;for(r=!0;a>n;n++)c.tweens[n].run(1);return t?o.resolveWith(e,[c,t]):o.rejectWith(e,[c,t]),this}}),d=c.props;for(U(d,c.opts.specialEasing);s>i;i++)if(a=yt[i].call(c,e,d,c.opts))return a;return re.map(d,N,c),re.isFunction(c.opts.start)&&c.opts.start.call(e,c),re.fx.timer(re.extend(l,{elem:e,anim:c,queue:c.opts.queue})),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function B(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var a,r=0,i=t.toLowerCase().match(ve)||[];if(re.isFunction(n))for(;a=i[r++];)"+"===a.charAt(0)?(a=a.slice(1)||"*",(e[a]=e[a]||[]).unshift(n)):(e[a]=e[a]||[]).push(n)}}function L(e,t,n,a){function r(o){var l;return i[o]=!0,re.each(e[o]||[],function(e,o){var c=o(t,n,a);return"string"!=typeof c||s||i[c]?s?!(l=c):void 0:(t.dataTypes.unshift(c),r(c),!1)}),l}var i={},s=e===qt;return r(t.dataTypes[0])||!i["*"]&&r("*")}function j(e,t){var n,a,r=re.ajaxSettings.flatOptions||{};for(a in t)void 0!==t[a]&&((r[a]?e:n||(n={}))[a]=t[a]);return n&&re.extend(!0,e,n),e}function H(e,t,n){for(var a,r,i,s,o=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(s in o)if(o[s]&&o[s].test(r)){l.unshift(s);break}if(l[0]in n)i=l[0];else{for(s in n){if(!l[0]||e.converters[s+" "+l[0]]){i=s;break}a||(a=s)}i=i||a}return i?(i!==l[0]&&l.unshift(i),n[i]):void 0}function q(e,t,n,a){var r,i,s,o,l,c={},d=e.dataTypes.slice();if(d[1])for(s in e.converters)c[s.toLowerCase()]=e.converters[s];for(i=d.shift();i;)if(e.responseFields[i]&&(n[e.responseFields[i]]=t),!l&&a&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=i,i=d.shift())if("*"===i)i=l;else if("*"!==l&&l!==i){if(s=c[l+" "+i]||c["* "+i],!s)for(r in c)if(o=r.split(" "),o[1]===i&&(s=c[l+" "+o[0]]||c["* "+o[0]])){s===!0?s=c[r]:c[r]!==!0&&(i=o[0],d.unshift(o[1]));break}if(s!==!0)if(s&&e["throws"])t=s(t);else try{t=s(t)}catch(p){return{state:"parsererror",error:s?p:"No conversion from "+l+" to "+i}}}return{state:"success",data:t}}function V(e,t,n,a){var r;if(re.isArray(t))re.each(t,function(t,r){n||Gt.test(e)?a(e,r):V(e+"["+("object"==typeof r?t:"")+"]",r,n,a)});else if(n||"object"!==re.type(t))a(e,t);else for(r in t)V(e+"["+r+"]",t[r],n,a)}function z(){try{return new e.XMLHttpRequest}catch(t){}}function W(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function G(e){return re.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}var K=[],Y=K.slice,Z=K.concat,X=K.push,J=K.indexOf,Q={},ee=Q.toString,te=Q.hasOwnProperty,ne={},ae="1.11.1",re=function(e,t){return new re.fn.init(e,t)},ie=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,se=/^-ms-/,oe=/-([\da-z])/gi,le=function(e,t){return t.toUpperCase()};re.fn=re.prototype={jquery:ae,constructor:re,selector:"",length:0,toArray:function(){return Y.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:Y.call(this)},pushStack:function(e){var t=re.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return re.each(this,e,t)},map:function(e){return this.pushStack(re.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(Y.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:X,sort:K.sort,splice:K.splice},re.extend=re.fn.extend=function(){var e,t,n,a,r,i,s=arguments[0]||{},o=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[o]||{},o++),"object"==typeof s||re.isFunction(s)||(s={}),o===l&&(s=this,o--);l>o;o++)if(null!=(r=arguments[o]))for(a in r)e=s[a],n=r[a],s!==n&&(c&&n&&(re.isPlainObject(n)||(t=re.isArray(n)))?(t?(t=!1,i=e&&re.isArray(e)?e:[]):i=e&&re.isPlainObject(e)?e:{},s[a]=re.extend(c,i,n)):void 0!==n&&(s[a]=n));return s},re.extend({expando:"jQuery"+(ae+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===re.type(e)},isArray:Array.isArray||function(e){return"array"===re.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!re.isArray(e)&&e-parseFloat(e)>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==re.type(e)||e.nodeType||re.isWindow(e))return!1;try{if(e.constructor&&!te.call(e,"constructor")&&!te.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(ne.ownLast)for(t in e)return te.call(e,t);for(t in e);return void 0===t||te.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?Q[ee.call(e)]||"object":typeof e},globalEval:function(t){t&&re.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(se,"ms-").replace(oe,le)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,a){var r,i=0,s=e.length,o=n(e);if(a){if(o)for(;s>i&&(r=t.apply(e[i],a),r!==!1);i++);else for(i in e)if(r=t.apply(e[i],a),r===!1)break}else if(o)for(;s>i&&(r=t.call(e[i],i,e[i]),r!==!1);i++);else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(ie,"")},makeArray:function(e,t){var a=t||[];return null!=e&&(n(Object(e))?re.merge(a,"string"==typeof e?[e]:e):X.call(a,e)),
a},inArray:function(e,t,n){var a;if(t){if(J)return J.call(t,e,n);for(a=t.length,n=n?0>n?Math.max(0,a+n):n:0;a>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,a=0,r=e.length;n>a;)e[r++]=t[a++];if(n!==n)for(;void 0!==t[a];)e[r++]=t[a++];return e.length=r,e},grep:function(e,t,n){for(var a,r=[],i=0,s=e.length,o=!n;s>i;i++)a=!t(e[i],i),a!==o&&r.push(e[i]);return r},map:function(e,t,a){var r,i=0,s=e.length,o=n(e),l=[];if(o)for(;s>i;i++)r=t(e[i],i,a),null!=r&&l.push(r);else for(i in e)r=t(e[i],i,a),null!=r&&l.push(r);return Z.apply([],l)},guid:1,proxy:function(e,t){var n,a,r;return"string"==typeof t&&(r=e[t],t=e,e=r),re.isFunction(e)?(n=Y.call(arguments,2),a=function(){return e.apply(t||this,n.concat(Y.call(arguments)))},a.guid=e.guid=e.guid||re.guid++,a):void 0},now:function(){return+new Date},support:ne}),re.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){Q["[object "+t+"]"]=t.toLowerCase()});var ce=function(e){function t(e,t,n,a){var r,i,s,o,l,c,p,m,g,h;if((t?t.ownerDocument||t:L)!==D&&T(t),t=t||D,n=n||[],!e||"string"!=typeof e)return n;if(1!==(o=t.nodeType)&&9!==o)return[];if(R&&!a){if(r=ye.exec(e))if(s=r[1]){if(9===o){if(i=t.getElementById(s),!i||!i.parentNode)return n;if(i.id===s)return n.push(i),n}else if(t.ownerDocument&&(i=t.ownerDocument.getElementById(s))&&O(t,i)&&i.id===s)return n.push(i),n}else{if(r[2])return Q.apply(n,t.getElementsByTagName(e)),n;if((s=r[3])&&w.getElementsByClassName&&t.getElementsByClassName)return Q.apply(n,t.getElementsByClassName(s)),n}if(w.qsa&&(!N||!N.test(e))){if(m=p=B,g=t,h=9===o&&e,1===o&&"object"!==t.nodeName.toLowerCase()){for(c=S(e),(p=t.getAttribute("id"))?m=p.replace(be,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",l=c.length;l--;)c[l]=m+u(c[l]);g=ve.test(e)&&d(t.parentNode)||t,h=c.join(",")}if(h)try{return Q.apply(n,g.querySelectorAll(h)),n}catch(f){}finally{p||t.removeAttribute("id")}}}return x(e.replace(le,"$1"),t,n,a)}function n(){function e(n,a){return t.push(n+" ")>k.cacheLength&&delete e[t.shift()],e[n+" "]=a}var t=[];return e}function a(e){return e[B]=!0,e}function r(e){var t=D.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function i(e,t){for(var n=e.split("|"),a=e.length;a--;)k.attrHandle[n[a]]=t}function s(e,t){var n=t&&e,a=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||K)-(~e.sourceIndex||K);if(a)return a;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function o(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return a(function(t){return t=+t,a(function(n,a){for(var r,i=e([],n.length,t),s=i.length;s--;)n[r=i[s]]&&(n[r]=!(a[r]=n[r]))})})}function d(e){return e&&typeof e.getElementsByTagName!==G&&e}function p(){}function u(e){for(var t=0,n=e.length,a="";n>t;t++)a+=e[t].value;return a}function m(e,t,n){var a=t.dir,r=n&&"parentNode"===a,i=H++;return t.first?function(t,n,i){for(;t=t[a];)if(1===t.nodeType||r)return e(t,n,i)}:function(t,n,s){var o,l,c=[j,i];if(s){for(;t=t[a];)if((1===t.nodeType||r)&&e(t,n,s))return!0}else for(;t=t[a];)if(1===t.nodeType||r){if(l=t[B]||(t[B]={}),(o=l[a])&&o[0]===j&&o[1]===i)return c[2]=o[2];if(l[a]=c,c[2]=e(t,n,s))return!0}}}function g(e){return e.length>1?function(t,n,a){for(var r=e.length;r--;)if(!e[r](t,n,a))return!1;return!0}:e[0]}function h(e,n,a){for(var r=0,i=n.length;i>r;r++)t(e,n[r],a);return a}function f(e,t,n,a,r){for(var i,s=[],o=0,l=e.length,c=null!=t;l>o;o++)(i=e[o])&&(!n||n(i,a,r))&&(s.push(i),c&&t.push(o));return s}function _(e,t,n,r,i,s){return r&&!r[B]&&(r=_(r)),i&&!i[B]&&(i=_(i,s)),a(function(a,s,o,l){var c,d,p,u=[],m=[],g=s.length,_=a||h(t||"*",o.nodeType?[o]:o,[]),y=!e||!a&&t?_:f(_,u,e,o,l),v=n?i||(a?e:g||r)?[]:s:y;if(n&&n(y,v,o,l),r)for(c=f(v,m),r(c,[],o,l),d=c.length;d--;)(p=c[d])&&(v[m[d]]=!(y[m[d]]=p));if(a){if(i||e){if(i){for(c=[],d=v.length;d--;)(p=v[d])&&c.push(y[d]=p);i(null,v=[],c,l)}for(d=v.length;d--;)(p=v[d])&&(c=i?te.call(a,p):u[d])>-1&&(a[c]=!(s[c]=p))}}else v=f(v===s?v.splice(g,v.length):v),i?i(null,s,v,l):Q.apply(s,v)})}function y(e){for(var t,n,a,r=e.length,i=k.relative[e[0].type],s=i||k.relative[" "],o=i?1:0,l=m(function(e){return e===t},s,!0),c=m(function(e){return te.call(t,e)>-1},s,!0),d=[function(e,n,a){return!i&&(a||n!==I)||((t=n).nodeType?l(e,n,a):c(e,n,a))}];r>o;o++)if(n=k.relative[e[o].type])d=[m(g(d),n)];else{if(n=k.filter[e[o].type].apply(null,e[o].matches),n[B]){for(a=++o;r>a&&!k.relative[e[a].type];a++);return _(o>1&&g(d),o>1&&u(e.slice(0,o-1).concat({value:" "===e[o-2].type?"*":""})).replace(le,"$1"),n,a>o&&y(e.slice(o,a)),r>a&&y(e=e.slice(a)),r>a&&u(e))}d.push(n)}return g(d)}function v(e,n){var r=n.length>0,i=e.length>0,s=function(a,s,o,l,c){var d,p,u,m=0,g="0",h=a&&[],_=[],y=I,v=a||i&&k.find.TAG("*",c),b=j+=null==y?1:Math.random()||.1,w=v.length;for(c&&(I=s!==D&&s);g!==w&&null!=(d=v[g]);g++){if(i&&d){for(p=0;u=e[p++];)if(u(d,s,o)){l.push(d);break}c&&(j=b)}r&&((d=!u&&d)&&m--,a&&h.push(d))}if(m+=g,r&&g!==m){for(p=0;u=n[p++];)u(h,_,s,o);if(a){if(m>0)for(;g--;)h[g]||_[g]||(_[g]=X.call(l));_=f(_)}Q.apply(l,_),c&&!a&&_.length>0&&m+n.length>1&&t.uniqueSort(l)}return c&&(j=b,I=y),h};return r?a(s):s}var b,w,k,$,C,S,M,x,I,A,E,T,D,P,R,N,F,U,O,B="sizzle"+-new Date,L=e.document,j=0,H=0,q=n(),V=n(),z=n(),W=function(e,t){return e===t&&(E=!0),0},G="undefined",K=1<<31,Y={}.hasOwnProperty,Z=[],X=Z.pop,J=Z.push,Q=Z.push,ee=Z.slice,te=Z.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},ne="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ae="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ie=re.replace("w","w#"),se="\\["+ae+"*("+re+")(?:"+ae+"*([*^$|!~]?=)"+ae+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ie+"))|)"+ae+"*\\]",oe=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+se+")*)|.*)\\)|)",le=new RegExp("^"+ae+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ae+"+$","g"),ce=new RegExp("^"+ae+"*,"+ae+"*"),de=new RegExp("^"+ae+"*([>+~]|"+ae+")"+ae+"*"),pe=new RegExp("="+ae+"*([^\\]'\"]*?)"+ae+"*\\]","g"),ue=new RegExp(oe),me=new RegExp("^"+ie+"$"),ge={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re.replace("w","w*")+")"),ATTR:new RegExp("^"+se),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ae+"*(even|odd|(([+-]|)(\\d*)n|)"+ae+"*(?:([+-]|)"+ae+"*(\\d+)|))"+ae+"*\\)|)","i"),bool:new RegExp("^(?:"+ne+")$","i"),needsContext:new RegExp("^"+ae+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ae+"*((?:-\\d)?\\d*)"+ae+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,fe=/^h\d$/i,_e=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,be=/'|\\/g,we=new RegExp("\\\\([\\da-f]{1,6}"+ae+"?|("+ae+")|.)","ig"),ke=function(e,t,n){var a="0x"+t-65536;return a!==a||n?t:0>a?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,1023&a|56320)};try{Q.apply(Z=ee.call(L.childNodes),L.childNodes),Z[L.childNodes.length].nodeType}catch($e){Q={apply:Z.length?function(e,t){J.apply(e,ee.call(t))}:function(e,t){for(var n=e.length,a=0;e[n++]=t[a++];);e.length=n-1}}}w=t.support={},C=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},T=t.setDocument=function(e){var t,n=e?e.ownerDocument||e:L,a=n.defaultView;return n!==D&&9===n.nodeType&&n.documentElement?(D=n,P=n.documentElement,R=!C(n),a&&a!==a.top&&(a.addEventListener?a.addEventListener("unload",function(){T()},!1):a.attachEvent&&a.attachEvent("onunload",function(){T()})),w.attributes=r(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=r(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=_e.test(n.getElementsByClassName)&&r(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),w.getById=r(function(e){return P.appendChild(e).id=B,!n.getElementsByName||!n.getElementsByName(B).length}),w.getById?(k.find.ID=function(e,t){if(typeof t.getElementById!==G&&R){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},k.filter.ID=function(e){var t=e.replace(we,ke);return function(e){return e.getAttribute("id")===t}}):(delete k.find.ID,k.filter.ID=function(e){var t=e.replace(we,ke);return function(e){var n=typeof e.getAttributeNode!==G&&e.getAttributeNode("id");return n&&n.value===t}}),k.find.TAG=w.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==G?t.getElementsByTagName(e):void 0}:function(e,t){var n,a=[],r=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[r++];)1===n.nodeType&&a.push(n);return a}return i},k.find.CLASS=w.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==G&&R?t.getElementsByClassName(e):void 0},F=[],N=[],(w.qsa=_e.test(n.querySelectorAll))&&(r(function(e){e.innerHTML="<select msallowclip=''><option selected=''></option></select>",e.querySelectorAll("[msallowclip^='']").length&&N.push("[*^$]="+ae+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||N.push("\\["+ae+"*(?:value|"+ne+")"),e.querySelectorAll(":checked").length||N.push(":checked")}),r(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&N.push("name"+ae+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||N.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),N.push(",.*:")})),(w.matchesSelector=_e.test(U=P.matches||P.webkitMatchesSelector||P.mozMatchesSelector||P.oMatchesSelector||P.msMatchesSelector))&&r(function(e){w.disconnectedMatch=U.call(e,"div"),U.call(e,"[s!='']:x"),F.push("!=",oe)}),N=N.length&&new RegExp(N.join("|")),F=F.length&&new RegExp(F.join("|")),t=_e.test(P.compareDocumentPosition),O=t||_e.test(P.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,a=t&&t.parentNode;return e===a||!(!a||1!==a.nodeType||!(n.contains?n.contains(a):e.compareDocumentPosition&&16&e.compareDocumentPosition(a)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},W=t?function(e,t){if(e===t)return E=!0,0;var a=!e.compareDocumentPosition-!t.compareDocumentPosition;return a?a:(a=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&a||!w.sortDetached&&t.compareDocumentPosition(e)===a?e===n||e.ownerDocument===L&&O(L,e)?-1:t===n||t.ownerDocument===L&&O(L,t)?1:A?te.call(A,e)-te.call(A,t):0:4&a?-1:1)}:function(e,t){if(e===t)return E=!0,0;var a,r=0,i=e.parentNode,o=t.parentNode,l=[e],c=[t];if(!i||!o)return e===n?-1:t===n?1:i?-1:o?1:A?te.call(A,e)-te.call(A,t):0;if(i===o)return s(e,t);for(a=e;a=a.parentNode;)l.unshift(a);for(a=t;a=a.parentNode;)c.unshift(a);for(;l[r]===c[r];)r++;return r?s(l[r],c[r]):l[r]===L?-1:c[r]===L?1:0},n):D},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==D&&T(e),n=n.replace(pe,"='$1']"),!(!w.matchesSelector||!R||F&&F.test(n)||N&&N.test(n)))try{var a=U.call(e,n);if(a||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return a}catch(r){}return t(n,D,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==D&&T(e),O(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==D&&T(e);var n=k.attrHandle[t.toLowerCase()],a=n&&Y.call(k.attrHandle,t.toLowerCase())?n(e,t,!R):void 0;return void 0!==a?a:w.attributes||!R?e.getAttribute(t):(a=e.getAttributeNode(t))&&a.specified?a.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],a=0,r=0;if(E=!w.detectDuplicates,A=!w.sortStable&&e.slice(0),e.sort(W),E){for(;t=e[r++];)t===e[r]&&(a=n.push(r));for(;a--;)e.splice(n[a],1)}return A=null,e},$=t.getText=function(e){var t,n="",a=0,r=e.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=$(e)}else if(3===r||4===r)return e.nodeValue}else for(;t=e[a++];)n+=$(t);return n},k=t.selectors={cacheLength:50,createPseudo:a,match:ge,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(we,ke),e[3]=(e[3]||e[4]||e[5]||"").replace(we,ke),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return ge.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&ue.test(n)&&(t=S(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(we,ke).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=q[e+" "];return t||(t=new RegExp("(^|"+ae+")"+e+"("+ae+"|$)"))&&q(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==G&&e.getAttribute("class")||"")})},ATTR:function(e,n,a){return function(r){var i=t.attr(r,e);return null==i?"!="===n:!n||(i+="","="===n?i===a:"!="===n?i!==a:"^="===n?a&&0===i.indexOf(a):"*="===n?a&&i.indexOf(a)>-1:"$="===n?a&&i.slice(-a.length)===a:"~="===n?(" "+i+" ").indexOf(a)>-1:"|="===n&&(i===a||i.slice(0,a.length+1)===a+"-"))}},CHILD:function(e,t,n,a,r){var i="nth"!==e.slice(0,3),s="last"!==e.slice(-4),o="of-type"===t;return 1===a&&0===r?function(e){return!!e.parentNode}:function(t,n,l){var c,d,p,u,m,g,h=i!==s?"nextSibling":"previousSibling",f=t.parentNode,_=o&&t.nodeName.toLowerCase(),y=!l&&!o;if(f){if(i){for(;h;){for(p=t;p=p[h];)if(o?p.nodeName.toLowerCase()===_:1===p.nodeType)return!1;g=h="only"===e&&!g&&"nextSibling"}return!0}if(g=[s?f.firstChild:f.lastChild],s&&y){for(d=f[B]||(f[B]={}),c=d[e]||[],m=c[0]===j&&c[1],u=c[0]===j&&c[2],p=m&&f.childNodes[m];p=++m&&p&&p[h]||(u=m=0)||g.pop();)if(1===p.nodeType&&++u&&p===t){d[e]=[j,m,u];break}}else if(y&&(c=(t[B]||(t[B]={}))[e])&&c[0]===j)u=c[1];else for(;(p=++m&&p&&p[h]||(u=m=0)||g.pop())&&((o?p.nodeName.toLowerCase()!==_:1!==p.nodeType)||!++u||(y&&((p[B]||(p[B]={}))[e]=[j,u]),p!==t)););return u-=r,u===a||u%a===0&&u/a>=0}}},PSEUDO:function(e,n){var r,i=k.pseudos[e]||k.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return i[B]?i(n):i.length>1?(r=[e,e,"",n],k.setFilters.hasOwnProperty(e.toLowerCase())?a(function(e,t){for(var a,r=i(e,n),s=r.length;s--;)a=te.call(e,r[s]),e[a]=!(t[a]=r[s])}):function(e){return i(e,0,r)}):i}},pseudos:{not:a(function(e){var t=[],n=[],r=M(e.replace(le,"$1"));return r[B]?a(function(e,t,n,a){for(var i,s=r(e,null,a,[]),o=e.length;o--;)(i=s[o])&&(e[o]=!(t[o]=i))}):function(e,a,i){return t[0]=e,r(t,null,i,n),!n.pop()}}),has:a(function(e){return function(n){return t(e,n).length>0}}),contains:a(function(e){return function(t){return(t.textContent||t.innerText||$(t)).indexOf(e)>-1}}),lang:a(function(e){return me.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(we,ke).toLowerCase(),function(t){var n;do if(n=R?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===P},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!k.pseudos.empty(e)},header:function(e){return fe.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var a=0>n?n+t:n;--a>=0;)e.push(a);return e}),gt:c(function(e,t,n){for(var a=0>n?n+t:n;++a<t;)e.push(a);return e})}},k.pseudos.nth=k.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})k.pseudos[b]=o(b);for(b in{submit:!0,reset:!0})k.pseudos[b]=l(b);return p.prototype=k.filters=k.pseudos,k.setFilters=new p,S=t.tokenize=function(e,n){var a,r,i,s,o,l,c,d=V[e+" "];if(d)return n?0:d.slice(0);for(o=e,l=[],c=k.preFilter;o;){(!a||(r=ce.exec(o)))&&(r&&(o=o.slice(r[0].length)||o),l.push(i=[])),a=!1,(r=de.exec(o))&&(a=r.shift(),i.push({value:a,type:r[0].replace(le," ")}),o=o.slice(a.length));for(s in k.filter)!(r=ge[s].exec(o))||c[s]&&!(r=c[s](r))||(a=r.shift(),i.push({value:a,type:s,matches:r}),o=o.slice(a.length));if(!a)break}return n?o.length:o?t.error(e):V(e,l).slice(0)},M=t.compile=function(e,t){var n,a=[],r=[],i=z[e+" "];if(!i){for(t||(t=S(e)),n=t.length;n--;)i=y(t[n]),i[B]?a.push(i):r.push(i);i=z(e,v(r,a)),i.selector=e}return i},x=t.select=function(e,t,n,a){var r,i,s,o,l,c="function"==typeof e&&e,p=!a&&S(e=c.selector||e);if(n=n||[],1===p.length){if(i=p[0]=p[0].slice(0),i.length>2&&"ID"===(s=i[0]).type&&w.getById&&9===t.nodeType&&R&&k.relative[i[1].type]){if(t=(k.find.ID(s.matches[0].replace(we,ke),t)||[])[0],!t)return n;c&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(r=ge.needsContext.test(e)?0:i.length;r--&&(s=i[r],!k.relative[o=s.type]);)if((l=k.find[o])&&(a=l(s.matches[0].replace(we,ke),ve.test(i[0].type)&&d(t.parentNode)||t))){if(i.splice(r,1),e=a.length&&u(i),!e)return Q.apply(n,a),n;break}}return(c||M(e,p))(a,t,!R,n,ve.test(e)&&d(t.parentNode)||t),n},w.sortStable=B.split("").sort(W).join("")===B,w.detectDuplicates=!!E,T(),w.sortDetached=r(function(e){return 1&e.compareDocumentPosition(D.createElement("div"))}),r(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||i("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&r(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||i("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),r(function(e){return null==e.getAttribute("disabled")})||i(ne,function(e,t,n){var a;return n?void 0:e[t]===!0?t.toLowerCase():(a=e.getAttributeNode(t))&&a.specified?a.value:null}),t}(e);re.find=ce,re.expr=ce.selectors,re.expr[":"]=re.expr.pseudos,re.unique=ce.uniqueSort,re.text=ce.getText,re.isXMLDoc=ce.isXML,re.contains=ce.contains;var de=re.expr.match.needsContext,pe=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ue=/^.[^:#\[\.,]*$/;re.filter=function(e,t,n){var a=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===a.nodeType?re.find.matchesSelector(a,e)?[a]:[]:re.find.matches(e,re.grep(t,function(e){return 1===e.nodeType}))},re.fn.extend({find:function(e){var t,n=[],a=this,r=a.length;if("string"!=typeof e)return this.pushStack(re(e).filter(function(){for(t=0;r>t;t++)if(re.contains(a[t],this))return!0}));for(t=0;r>t;t++)re.find(e,a[t],n);return n=this.pushStack(r>1?re.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(a(this,e||[],!1))},not:function(e){return this.pushStack(a(this,e||[],!0))},is:function(e){return!!a(this,"string"==typeof e&&de.test(e)?re(e):e||[],!1).length}});var me,ge=e.document,he=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,fe=re.fn.init=function(e,t){var n,a;if(!e)return this;if("string"==typeof e){if(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:he.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||me).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof re?t[0]:t,re.merge(this,re.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:ge,!0)),pe.test(n[1])&&re.isPlainObject(t))for(n in t)re.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}if(a=ge.getElementById(n[2]),a&&a.parentNode){if(a.id!==n[2])return me.find(e);this.length=1,this[0]=a}return this.context=ge,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):re.isFunction(e)?"undefined"!=typeof me.ready?me.ready(e):e(re):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),re.makeArray(e,this))};fe.prototype=re.fn,me=re(ge);var _e=/^(?:parents|prev(?:Until|All))/,ye={children:!0,contents:!0,next:!0,prev:!0};re.extend({dir:function(e,t,n){for(var a=[],r=e[t];r&&9!==r.nodeType&&(void 0===n||1!==r.nodeType||!re(r).is(n));)1===r.nodeType&&a.push(r),r=r[t];return a},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),re.fn.extend({has:function(e){var t,n=re(e,this),a=n.length;return this.filter(function(){for(t=0;a>t;t++)if(re.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,a=0,r=this.length,i=[],s=de.test(e)||"string"!=typeof e?re(e,t||this.context):0;r>a;a++)for(n=this[a];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(s?s.index(n)>-1:1===n.nodeType&&re.find.matchesSelector(n,e))){i.push(n);break}return this.pushStack(i.length>1?re.unique(i):i)},index:function(e){return e?"string"==typeof e?re.inArray(this[0],re(e)):re.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(re.unique(re.merge(this.get(),re(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),re.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return re.dir(e,"parentNode")},parentsUntil:function(e,t,n){return re.dir(e,"parentNode",n)},next:function(e){return r(e,"nextSibling")},prev:function(e){return r(e,"previousSibling")},nextAll:function(e){return re.dir(e,"nextSibling")},prevAll:function(e){return re.dir(e,"previousSibling")},nextUntil:function(e,t,n){return re.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return re.dir(e,"previousSibling",n)},siblings:function(e){return re.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return re.sibling(e.firstChild)},contents:function(e){return re.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:re.merge([],e.childNodes)}},function(e,t){re.fn[e]=function(n,a){var r=re.map(this,t,n);return"Until"!==e.slice(-5)&&(a=n),a&&"string"==typeof a&&(r=re.filter(a,r)),this.length>1&&(ye[e]||(r=re.unique(r)),_e.test(e)&&(r=r.reverse())),this.pushStack(r)}});var ve=/\S+/g,be={};re.Callbacks=function(e){e="string"==typeof e?be[e]||i(e):re.extend({},e);var t,n,a,r,s,o,l=[],c=!e.once&&[],d=function(i){for(n=e.memory&&i,a=!0,s=o||0,o=0,r=l.length,t=!0;l&&r>s;s++)if(l[s].apply(i[0],i[1])===!1&&e.stopOnFalse){n=!1;break}t=!1,l&&(c?c.length&&d(c.shift()):n?l=[]:p.disable())},p={add:function(){if(l){var a=l.length;!function i(t){re.each(t,function(t,n){var a=re.type(n);"function"===a?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==a&&i(n)})}(arguments),t?r=l.length:n&&(o=a,d(n))}return this},remove:function(){return l&&re.each(arguments,function(e,n){for(var a;(a=re.inArray(n,l,a))>-1;)l.splice(a,1),t&&(r>=a&&r--,s>=a&&s--)}),this},has:function(e){return e?re.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],r=0,this},disable:function(){return l=c=n=void 0,this},disabled:function(){return!l},lock:function(){return c=void 0,n||p.disable(),this},locked:function(){return!c},fireWith:function(e,n){return!l||a&&!c||(n=n||[],n=[e,n.slice?n.slice():n],t?c.push(n):d(n)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!a}};return p},re.extend({Deferred:function(e){var t=[["resolve","done",re.Callbacks("once memory"),"resolved"],["reject","fail",re.Callbacks("once memory"),"rejected"],["notify","progress",re.Callbacks("memory")]],n="pending",a={state:function(){return n},always:function(){return r.done(arguments).fail(arguments),this},then:function(){var e=arguments;return re.Deferred(function(n){re.each(t,function(t,i){var s=re.isFunction(e[t])&&e[t];r[i[1]](function(){var e=s&&s.apply(this,arguments);e&&re.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[i[0]+"With"](this===a?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?re.extend(e,a):a}},r={};return a.pipe=a.then,re.each(t,function(e,i){var s=i[2],o=i[3];a[i[1]]=s.add,o&&s.add(function(){n=o},t[1^e][2].disable,t[2][2].lock),r[i[0]]=function(){return r[i[0]+"With"](this===r?a:this,arguments),this},r[i[0]+"With"]=s.fireWith}),a.promise(r),e&&e.call(r,r),r},when:function(e){var t,n,a,r=0,i=Y.call(arguments),s=i.length,o=1!==s||e&&re.isFunction(e.promise)?s:0,l=1===o?e:re.Deferred(),c=function(e,n,a){return function(r){n[e]=this,a[e]=arguments.length>1?Y.call(arguments):r,a===t?l.notifyWith(n,a):--o||l.resolveWith(n,a)}};if(s>1)for(t=new Array(s),n=new Array(s),a=new Array(s);s>r;r++)i[r]&&re.isFunction(i[r].promise)?i[r].promise().done(c(r,a,i)).fail(l.reject).progress(c(r,n,t)):--o;return o||l.resolveWith(a,i),l.promise()}});var we;re.fn.ready=function(e){return re.ready.promise().done(e),this},re.extend({isReady:!1,readyWait:1,holdReady:function(e){e?re.readyWait++:re.ready(!0)},ready:function(e){if(e===!0?!--re.readyWait:!re.isReady){if(!ge.body)return setTimeout(re.ready);re.isReady=!0,e!==!0&&--re.readyWait>0||(we.resolveWith(ge,[re]),re.fn.triggerHandler&&(re(ge).triggerHandler("ready"),re(ge).off("ready")))}}}),re.ready.promise=function(t){if(!we)if(we=re.Deferred(),"complete"===ge.readyState)setTimeout(re.ready);else if(ge.addEventListener)ge.addEventListener("DOMContentLoaded",o,!1),e.addEventListener("load",o,!1);else{ge.attachEvent("onreadystatechange",o),e.attachEvent("onload",o);var n=!1;try{n=null==e.frameElement&&ge.documentElement}catch(a){}n&&n.doScroll&&!function r(){if(!re.isReady){try{n.doScroll("left")}catch(e){return setTimeout(r,50)}s(),re.ready()}}()}return we.promise(t)};var ke,$e="undefined";for(ke in re(ne))break;ne.ownLast="0"!==ke,ne.inlineBlockNeedsLayout=!1,re(function(){var e,t,n,a;n=ge.getElementsByTagName("body")[0],n&&n.style&&(t=ge.createElement("div"),a=ge.createElement("div"),a.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(a).appendChild(t),typeof t.style.zoom!==$e&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",ne.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(a))}),function(){var e=ge.createElement("div");if(null==ne.deleteExpando){ne.deleteExpando=!0;try{delete e.test}catch(t){ne.deleteExpando=!1}}e=null}(),re.acceptData=function(e){var t=re.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)};var Ce=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Se=/([A-Z])/g;re.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?re.cache[e[re.expando]]:e[re.expando],!!e&&!c(e)},data:function(e,t,n){return d(e,t,n)},removeData:function(e,t){return p(e,t)},_data:function(e,t,n){return d(e,t,n,!0)},_removeData:function(e,t){return p(e,t,!0)}}),re.fn.extend({data:function(e,t){var n,a,r,i=this[0],s=i&&i.attributes;if(void 0===e){if(this.length&&(r=re.data(i),1===i.nodeType&&!re._data(i,"parsedAttrs"))){for(n=s.length;n--;)s[n]&&(a=s[n].name,0===a.indexOf("data-")&&(a=re.camelCase(a.slice(5)),l(i,a,r[a])));re._data(i,"parsedAttrs",!0)}return r}return"object"==typeof e?this.each(function(){re.data(this,e)}):arguments.length>1?this.each(function(){re.data(this,e,t)}):i?l(i,e,re.data(i,e)):void 0},removeData:function(e){return this.each(function(){re.removeData(this,e)})}}),re.extend({queue:function(e,t,n){var a;return e?(t=(t||"fx")+"queue",a=re._data(e,t),n&&(!a||re.isArray(n)?a=re._data(e,t,re.makeArray(n)):a.push(n)),a||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=re.queue(e,t),a=n.length,r=n.shift(),i=re._queueHooks(e,t),s=function(){re.dequeue(e,t)};"inprogress"===r&&(r=n.shift(),a--),r&&("fx"===t&&n.unshift("inprogress"),delete i.stop,r.call(e,s,i)),!a&&i&&i.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return re._data(e,n)||re._data(e,n,{empty:re.Callbacks("once memory").add(function(){re._removeData(e,t+"queue"),re._removeData(e,n)})})}}),re.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?re.queue(this[0],e):void 0===t?this:this.each(function(){var n=re.queue(this,e,t);re._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&re.dequeue(this,e)})},dequeue:function(e){return this.each(function(){re.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,a=1,r=re.Deferred(),i=this,s=this.length,o=function(){--a||r.resolveWith(i,[i])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";s--;)n=re._data(i[s],e+"queueHooks"),n&&n.empty&&(a++,n.empty.add(o));return o(),r.promise(t)}});var Me=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,xe=["Top","Right","Bottom","Left"],Ie=function(e,t){return e=t||e,"none"===re.css(e,"display")||!re.contains(e.ownerDocument,e)},Ae=re.access=function(e,t,n,a,r,i,s){var o=0,l=e.length,c=null==n;if("object"===re.type(n)){r=!0;for(o in n)re.access(e,t,o,n[o],!0,i,s)}else if(void 0!==a&&(r=!0,re.isFunction(a)||(s=!0),c&&(s?(t.call(e,a),t=null):(c=t,t=function(e,t,n){return c.call(re(e),n)})),t))for(;l>o;o++)t(e[o],n,s?a:a.call(e[o],o,t(e[o],n)));return r?e:c?t.call(e):l?t(e[0],n):i},Ee=/^(?:checkbox|radio)$/i;!function(){var e=ge.createElement("input"),t=ge.createElement("div"),n=ge.createDocumentFragment();if(t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",ne.leadingWhitespace=3===t.firstChild.nodeType,ne.tbody=!t.getElementsByTagName("tbody").length,ne.htmlSerialize=!!t.getElementsByTagName("link").length,ne.html5Clone="<:nav></:nav>"!==ge.createElement("nav").cloneNode(!0).outerHTML,e.type="checkbox",e.checked=!0,n.appendChild(e),ne.appendChecked=e.checked,t.innerHTML="<textarea>x</textarea>",ne.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,n.appendChild(t),t.innerHTML="<input type='radio' checked='checked' name='t'/>",ne.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,ne.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){ne.noCloneEvent=!1}),t.cloneNode(!0).click()),null==ne.deleteExpando){ne.deleteExpando=!0;try{delete t.test}catch(a){ne.deleteExpando=!1}}}(),function(){var t,n,a=ge.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(ne[t+"Bubbles"]=n in e)||(a.setAttribute(n,"t"),ne[t+"Bubbles"]=a.attributes[n].expando===!1);a=null}();var Te=/^(?:input|select|textarea)$/i,De=/^key/,Pe=/^(?:mouse|pointer|contextmenu)|click/,Re=/^(?:focusinfocus|focusoutblur)$/,Ne=/^([^.]*)(?:\.(.+)|)$/;re.event={global:{},add:function(e,t,n,a,r){var i,s,o,l,c,d,p,u,m,g,h,f=re._data(e);if(f){for(n.handler&&(l=n,n=l.handler,r=l.selector),n.guid||(n.guid=re.guid++),(s=f.events)||(s=f.events={}),(d=f.handle)||(d=f.handle=function(e){return typeof re===$e||e&&re.event.triggered===e.type?void 0:re.event.dispatch.apply(d.elem,arguments)},d.elem=e),t=(t||"").match(ve)||[""],o=t.length;o--;)i=Ne.exec(t[o])||[],
m=h=i[1],g=(i[2]||"").split(".").sort(),m&&(c=re.event.special[m]||{},m=(r?c.delegateType:c.bindType)||m,c=re.event.special[m]||{},p=re.extend({type:m,origType:h,data:a,handler:n,guid:n.guid,selector:r,needsContext:r&&re.expr.match.needsContext.test(r),namespace:g.join(".")},l),(u=s[m])||(u=s[m]=[],u.delegateCount=0,c.setup&&c.setup.call(e,a,g,d)!==!1||(e.addEventListener?e.addEventListener(m,d,!1):e.attachEvent&&e.attachEvent("on"+m,d))),c.add&&(c.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),r?u.splice(u.delegateCount++,0,p):u.push(p),re.event.global[m]=!0);e=null}},remove:function(e,t,n,a,r){var i,s,o,l,c,d,p,u,m,g,h,f=re.hasData(e)&&re._data(e);if(f&&(d=f.events)){for(t=(t||"").match(ve)||[""],c=t.length;c--;)if(o=Ne.exec(t[c])||[],m=h=o[1],g=(o[2]||"").split(".").sort(),m){for(p=re.event.special[m]||{},m=(a?p.delegateType:p.bindType)||m,u=d[m]||[],o=o[2]&&new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=i=u.length;i--;)s=u[i],!r&&h!==s.origType||n&&n.guid!==s.guid||o&&!o.test(s.namespace)||a&&a!==s.selector&&("**"!==a||!s.selector)||(u.splice(i,1),s.selector&&u.delegateCount--,p.remove&&p.remove.call(e,s));l&&!u.length&&(p.teardown&&p.teardown.call(e,g,f.handle)!==!1||re.removeEvent(e,m,f.handle),delete d[m])}else for(m in d)re.event.remove(e,m+t[c],n,a,!0);re.isEmptyObject(d)&&(delete f.handle,re._removeData(e,"events"))}},trigger:function(t,n,a,r){var i,s,o,l,c,d,p,u=[a||ge],m=te.call(t,"type")?t.type:t,g=te.call(t,"namespace")?t.namespace.split("."):[];if(o=d=a=a||ge,3!==a.nodeType&&8!==a.nodeType&&!Re.test(m+re.event.triggered)&&(m.indexOf(".")>=0&&(g=m.split("."),m=g.shift(),g.sort()),s=m.indexOf(":")<0&&"on"+m,t=t[re.expando]?t:new re.Event(m,"object"==typeof t&&t),t.isTrigger=r?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=a),n=null==n?[t]:re.makeArray(n,[t]),c=re.event.special[m]||{},r||!c.trigger||c.trigger.apply(a,n)!==!1)){if(!r&&!c.noBubble&&!re.isWindow(a)){for(l=c.delegateType||m,Re.test(l+m)||(o=o.parentNode);o;o=o.parentNode)u.push(o),d=o;d===(a.ownerDocument||ge)&&u.push(d.defaultView||d.parentWindow||e)}for(p=0;(o=u[p++])&&!t.isPropagationStopped();)t.type=p>1?l:c.bindType||m,i=(re._data(o,"events")||{})[t.type]&&re._data(o,"handle"),i&&i.apply(o,n),i=s&&o[s],i&&i.apply&&re.acceptData(o)&&(t.result=i.apply(o,n),t.result===!1&&t.preventDefault());if(t.type=m,!r&&!t.isDefaultPrevented()&&(!c._default||c._default.apply(u.pop(),n)===!1)&&re.acceptData(a)&&s&&a[m]&&!re.isWindow(a)){d=a[s],d&&(a[s]=null),re.event.triggered=m;try{a[m]()}catch(h){}re.event.triggered=void 0,d&&(a[s]=d)}return t.result}},dispatch:function(e){e=re.event.fix(e);var t,n,a,r,i,s=[],o=Y.call(arguments),l=(re._data(this,"events")||{})[e.type]||[],c=re.event.special[e.type]||{};if(o[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(s=re.event.handlers.call(this,e,l),t=0;(r=s[t++])&&!e.isPropagationStopped();)for(e.currentTarget=r.elem,i=0;(a=r.handlers[i++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(a.namespace))&&(e.handleObj=a,e.data=a.data,n=((re.event.special[a.origType]||{}).handle||a.handler).apply(r.elem,o),void 0!==n&&(e.result=n)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,a,r,i,s=[],o=t.delegateCount,l=e.target;if(o&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(r=[],i=0;o>i;i++)a=t[i],n=a.selector+" ",void 0===r[n]&&(r[n]=a.needsContext?re(n,this).index(l)>=0:re.find(n,this,null,[l]).length),r[n]&&r.push(a);r.length&&s.push({elem:l,handlers:r})}return o<t.length&&s.push({elem:this,handlers:t.slice(o)}),s},fix:function(e){if(e[re.expando])return e;var t,n,a,r=e.type,i=e,s=this.fixHooks[r];for(s||(this.fixHooks[r]=s=Pe.test(r)?this.mouseHooks:De.test(r)?this.keyHooks:{}),a=s.props?this.props.concat(s.props):this.props,e=new re.Event(i),t=a.length;t--;)n=a[t],e[n]=i[n];return e.target||(e.target=i.srcElement||ge),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,i):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,a,r,i=t.button,s=t.fromElement;return null==e.pageX&&null!=t.clientX&&(a=e.target.ownerDocument||ge,r=a.documentElement,n=a.body,e.pageX=t.clientX+(r&&r.scrollLeft||n&&n.scrollLeft||0)-(r&&r.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||n&&n.scrollTop||0)-(r&&r.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&s&&(e.relatedTarget=s===e.target?t.toElement:s),e.which||void 0===i||(e.which=1&i?1:2&i?3:4&i?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==g()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===g()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return re.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(e){return re.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,a){var r=re.extend(new re.Event,n,{type:e,isSimulated:!0,originalEvent:{}});a?re.event.trigger(r,null,t):re.event.dispatch.call(t,r),r.isDefaultPrevented()&&n.preventDefault()}},re.removeEvent=ge.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var a="on"+t;e.detachEvent&&(typeof e[a]===$e&&(e[a]=null),e.detachEvent(a,n))},re.Event=function(e,t){return this instanceof re.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.returnValue===!1?u:m):this.type=e,t&&re.extend(this,t),this.timeStamp=e&&e.timeStamp||re.now(),void(this[re.expando]=!0)):new re.Event(e,t)},re.Event.prototype={isDefaultPrevented:m,isPropagationStopped:m,isImmediatePropagationStopped:m,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=u,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=u,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=u,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},re.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){re.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,a=this,r=e.relatedTarget,i=e.handleObj;return(!r||r!==a&&!re.contains(a,r))&&(e.type=i.origType,n=i.handler.apply(this,arguments),e.type=t),n}}}),ne.submitBubbles||(re.event.special.submit={setup:function(){return!re.nodeName(this,"form")&&void re.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=re.nodeName(t,"input")||re.nodeName(t,"button")?t.form:void 0;n&&!re._data(n,"submitBubbles")&&(re.event.add(n,"submit._submit",function(e){e._submit_bubble=!0}),re._data(n,"submitBubbles",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&re.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return!re.nodeName(this,"form")&&void re.event.remove(this,"._submit")}}),ne.changeBubbles||(re.event.special.change={setup:function(){return Te.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(re.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),re.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),re.event.simulate("change",this,e,!0)})),!1):void re.event.add(this,"beforeactivate._change",function(e){var t=e.target;Te.test(t.nodeName)&&!re._data(t,"changeBubbles")&&(re.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||re.event.simulate("change",this.parentNode,e,!0)}),re._data(t,"changeBubbles",!0))})},handle:function(e){var t=e.target;return this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type?e.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return re.event.remove(this,"._change"),!Te.test(this.nodeName)}}),ne.focusinBubbles||re.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){re.event.simulate(t,e.target,re.event.fix(e),!0)};re.event.special[t]={setup:function(){var a=this.ownerDocument||this,r=re._data(a,t);r||a.addEventListener(e,n,!0),re._data(a,t,(r||0)+1)},teardown:function(){var a=this.ownerDocument||this,r=re._data(a,t)-1;r?re._data(a,t,r):(a.removeEventListener(e,n,!0),re._removeData(a,t))}}}),re.fn.extend({on:function(e,t,n,a,r){var i,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=void 0);for(i in e)this.on(i,t,n,e[i],r);return this}if(null==n&&null==a?(a=t,n=t=void 0):null==a&&("string"==typeof t?(a=n,n=void 0):(a=n,n=t,t=void 0)),a===!1)a=m;else if(!a)return this;return 1===r&&(s=a,a=function(e){return re().off(e),s.apply(this,arguments)},a.guid=s.guid||(s.guid=re.guid++)),this.each(function(){re.event.add(this,e,a,n,t)})},one:function(e,t,n,a){return this.on(e,t,n,a,1)},off:function(e,t,n){var a,r;if(e&&e.preventDefault&&e.handleObj)return a=e.handleObj,re(e.delegateTarget).off(a.namespace?a.origType+"."+a.namespace:a.origType,a.selector,a.handler),this;if("object"==typeof e){for(r in e)this.off(r,t,e[r]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=void 0),n===!1&&(n=m),this.each(function(){re.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){re.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?re.event.trigger(e,t,n,!0):void 0}});var Fe="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Ue=/ jQuery\d+="(?:null|\d+)"/g,Oe=new RegExp("<(?:"+Fe+")[\\s/>]","i"),Be=/^\s+/,Le=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,je=/<([\w:]+)/,He=/<tbody/i,qe=/<|&#?\w+;/,Ve=/<(?:script|style|link)/i,ze=/checked\s*(?:[^=]|=\s*.checked.)/i,We=/^$|\/(?:java|ecma)script/i,Ge=/^true\/(.*)/,Ke=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Ye={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:ne.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},Ze=h(ge),Xe=Ze.appendChild(ge.createElement("div"));Ye.optgroup=Ye.option,Ye.tbody=Ye.tfoot=Ye.colgroup=Ye.caption=Ye.thead,Ye.th=Ye.td,re.extend({clone:function(e,t,n){var a,r,i,s,o,l=re.contains(e.ownerDocument,e);if(ne.html5Clone||re.isXMLDoc(e)||!Oe.test("<"+e.nodeName+">")?i=e.cloneNode(!0):(Xe.innerHTML=e.outerHTML,Xe.removeChild(i=Xe.firstChild)),!(ne.noCloneEvent&&ne.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||re.isXMLDoc(e)))for(a=f(i),o=f(e),s=0;null!=(r=o[s]);++s)a[s]&&$(r,a[s]);if(t)if(n)for(o=o||f(e),a=a||f(i),s=0;null!=(r=o[s]);s++)k(r,a[s]);else k(e,i);return a=f(i,"script"),a.length>0&&w(a,!l&&f(e,"script")),a=o=r=null,i},buildFragment:function(e,t,n,a){for(var r,i,s,o,l,c,d,p=e.length,u=h(t),m=[],g=0;p>g;g++)if(i=e[g],i||0===i)if("object"===re.type(i))re.merge(m,i.nodeType?[i]:i);else if(qe.test(i)){for(o=o||u.appendChild(t.createElement("div")),l=(je.exec(i)||["",""])[1].toLowerCase(),d=Ye[l]||Ye._default,o.innerHTML=d[1]+i.replace(Le,"<$1></$2>")+d[2],r=d[0];r--;)o=o.lastChild;if(!ne.leadingWhitespace&&Be.test(i)&&m.push(t.createTextNode(Be.exec(i)[0])),!ne.tbody)for(i="table"!==l||He.test(i)?"<table>"!==d[1]||He.test(i)?0:o:o.firstChild,r=i&&i.childNodes.length;r--;)re.nodeName(c=i.childNodes[r],"tbody")&&!c.childNodes.length&&i.removeChild(c);for(re.merge(m,o.childNodes),o.textContent="";o.firstChild;)o.removeChild(o.firstChild);o=u.lastChild}else m.push(t.createTextNode(i));for(o&&u.removeChild(o),ne.appendChecked||re.grep(f(m,"input"),_),g=0;i=m[g++];)if((!a||-1===re.inArray(i,a))&&(s=re.contains(i.ownerDocument,i),o=f(u.appendChild(i),"script"),s&&w(o),n))for(r=0;i=o[r++];)We.test(i.type||"")&&n.push(i);return o=null,u},cleanData:function(e,t){for(var n,a,r,i,s=0,o=re.expando,l=re.cache,c=ne.deleteExpando,d=re.event.special;null!=(n=e[s]);s++)if((t||re.acceptData(n))&&(r=n[o],i=r&&l[r])){if(i.events)for(a in i.events)d[a]?re.event.remove(n,a):re.removeEvent(n,a,i.handle);l[r]&&(delete l[r],c?delete n[o]:typeof n.removeAttribute!==$e?n.removeAttribute(o):n[o]=null,K.push(r))}}}),re.fn.extend({text:function(e){return Ae(this,function(e){return void 0===e?re.text(this):this.empty().append((this[0]&&this[0].ownerDocument||ge).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=y(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=y(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,a=e?re.filter(e,this):this,r=0;null!=(n=a[r]);r++)t||1!==n.nodeType||re.cleanData(f(n)),n.parentNode&&(t&&re.contains(n.ownerDocument,n)&&w(f(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&re.cleanData(f(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&re.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return re.clone(this,e,t)})},html:function(e){return Ae(this,function(e){var t=this[0]||{},n=0,a=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ue,""):void 0;if(!("string"!=typeof e||Ve.test(e)||!ne.htmlSerialize&&Oe.test(e)||!ne.leadingWhitespace&&Be.test(e)||Ye[(je.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(Le,"<$1></$2>");try{for(;a>n;n++)t=this[n]||{},1===t.nodeType&&(re.cleanData(f(t,!1)),t.innerHTML=e);t=0}catch(r){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,re.cleanData(f(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=Z.apply([],e);var n,a,r,i,s,o,l=0,c=this.length,d=this,p=c-1,u=e[0],m=re.isFunction(u);if(m||c>1&&"string"==typeof u&&!ne.checkClone&&ze.test(u))return this.each(function(n){var a=d.eq(n);m&&(e[0]=u.call(this,n,a.html())),a.domManip(e,t)});if(c&&(o=re.buildFragment(e,this[0].ownerDocument,!1,this),n=o.firstChild,1===o.childNodes.length&&(o=n),n)){for(i=re.map(f(o,"script"),v),r=i.length;c>l;l++)a=o,l!==p&&(a=re.clone(a,!0,!0),r&&re.merge(i,f(a,"script"))),t.call(this[l],a,l);if(r)for(s=i[i.length-1].ownerDocument,re.map(i,b),l=0;r>l;l++)a=i[l],We.test(a.type||"")&&!re._data(a,"globalEval")&&re.contains(s,a)&&(a.src?re._evalUrl&&re._evalUrl(a.src):re.globalEval((a.text||a.textContent||a.innerHTML||"").replace(Ke,"")));o=n=null}return this}}),re.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){re.fn[e]=function(e){for(var n,a=0,r=[],i=re(e),s=i.length-1;s>=a;a++)n=a===s?this:this.clone(!0),re(i[a])[t](n),X.apply(r,n.get());return this.pushStack(r)}});var Je,Qe={};!function(){var e;ne.shrinkWrapBlocks=function(){if(null!=e)return e;e=!1;var t,n,a;return n=ge.getElementsByTagName("body")[0],n&&n.style?(t=ge.createElement("div"),a=ge.createElement("div"),a.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(a).appendChild(t),typeof t.style.zoom!==$e&&(t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",t.appendChild(ge.createElement("div")).style.width="5px",e=3!==t.offsetWidth),n.removeChild(a),e):void 0}}();var et,tt,nt=/^margin/,at=new RegExp("^("+Me+")(?!px)[a-z%]+$","i"),rt=/^(top|right|bottom|left)$/;e.getComputedStyle?(et=function(e){return e.ownerDocument.defaultView.getComputedStyle(e,null)},tt=function(e,t,n){var a,r,i,s,o=e.style;return n=n||et(e),s=n?n.getPropertyValue(t)||n[t]:void 0,n&&(""!==s||re.contains(e.ownerDocument,e)||(s=re.style(e,t)),at.test(s)&&nt.test(t)&&(a=o.width,r=o.minWidth,i=o.maxWidth,o.minWidth=o.maxWidth=o.width=s,s=n.width,o.width=a,o.minWidth=r,o.maxWidth=i)),void 0===s?s:s+""}):ge.documentElement.currentStyle&&(et=function(e){return e.currentStyle},tt=function(e,t,n){var a,r,i,s,o=e.style;return n=n||et(e),s=n?n[t]:void 0,null==s&&o&&o[t]&&(s=o[t]),at.test(s)&&!rt.test(t)&&(a=o.left,r=e.runtimeStyle,i=r&&r.left,i&&(r.left=e.currentStyle.left),o.left="fontSize"===t?"1em":s,s=o.pixelLeft+"px",o.left=a,i&&(r.left=i)),void 0===s?s:s+""||"auto"}),!function(){function t(){var t,n,a,r;n=ge.getElementsByTagName("body")[0],n&&n.style&&(t=ge.createElement("div"),a=ge.createElement("div"),a.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(a).appendChild(t),t.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",i=s=!1,l=!0,e.getComputedStyle&&(i="1%"!==(e.getComputedStyle(t,null)||{}).top,s="4px"===(e.getComputedStyle(t,null)||{width:"4px"}).width,r=t.appendChild(ge.createElement("div")),r.style.cssText=t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",r.style.marginRight=r.style.width="0",t.style.width="1px",l=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),t.innerHTML="<table><tr><td></td><td>t</td></tr></table>",r=t.getElementsByTagName("td"),r[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===r[0].offsetHeight,o&&(r[0].style.display="",r[1].style.display="none",o=0===r[0].offsetHeight),n.removeChild(a))}var n,a,r,i,s,o,l;n=ge.createElement("div"),n.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",r=n.getElementsByTagName("a")[0],(a=r&&r.style)&&(a.cssText="float:left;opacity:.5",ne.opacity="0.5"===a.opacity,ne.cssFloat=!!a.cssFloat,n.style.backgroundClip="content-box",n.cloneNode(!0).style.backgroundClip="",ne.clearCloneStyle="content-box"===n.style.backgroundClip,ne.boxSizing=""===a.boxSizing||""===a.MozBoxSizing||""===a.WebkitBoxSizing,re.extend(ne,{reliableHiddenOffsets:function(){return null==o&&t(),o},boxSizingReliable:function(){return null==s&&t(),s},pixelPosition:function(){return null==i&&t(),i},reliableMarginRight:function(){return null==l&&t(),l}}))}(),re.swap=function(e,t,n,a){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.apply(e,a||[]);for(i in t)e.style[i]=s[i];return r};var it=/alpha\([^)]*\)/i,st=/opacity\s*=\s*([^)]*)/,ot=/^(none|table(?!-c[ea]).+)/,lt=new RegExp("^("+Me+")(.*)$","i"),ct=new RegExp("^([+-])=("+Me+")","i"),dt={position:"absolute",visibility:"hidden",display:"block"},pt={letterSpacing:"0",fontWeight:"400"},ut=["Webkit","O","Moz","ms"];re.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=tt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":ne.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,a){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var r,i,s,o=re.camelCase(t),l=e.style;if(t=re.cssProps[o]||(re.cssProps[o]=x(l,o)),s=re.cssHooks[t]||re.cssHooks[o],void 0===n)return s&&"get"in s&&void 0!==(r=s.get(e,!1,a))?r:l[t];if(i=typeof n,"string"===i&&(r=ct.exec(n))&&(n=(r[1]+1)*r[2]+parseFloat(re.css(e,t)),i="number"),null!=n&&n===n&&("number"!==i||re.cssNumber[o]||(n+="px"),ne.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),!(s&&"set"in s&&void 0===(n=s.set(e,n,a)))))try{l[t]=n}catch(c){}}},css:function(e,t,n,a){var r,i,s,o=re.camelCase(t);return t=re.cssProps[o]||(re.cssProps[o]=x(e.style,o)),s=re.cssHooks[t]||re.cssHooks[o],s&&"get"in s&&(i=s.get(e,!0,n)),void 0===i&&(i=tt(e,t,a)),"normal"===i&&t in pt&&(i=pt[t]),""===n||n?(r=parseFloat(i),n===!0||re.isNumeric(r)?r||0:i):i}}),re.each(["height","width"],function(e,t){re.cssHooks[t]={get:function(e,n,a){return n?ot.test(re.css(e,"display"))&&0===e.offsetWidth?re.swap(e,dt,function(){return T(e,t,a)}):T(e,t,a):void 0},set:function(e,n,a){var r=a&&et(e);return A(e,n,a?E(e,t,a,ne.boxSizing&&"border-box"===re.css(e,"boxSizing",!1,r),r):0)}}}),ne.opacity||(re.cssHooks.opacity={get:function(e,t){return st.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,a=e.currentStyle,r=re.isNumeric(t)?"alpha(opacity="+100*t+")":"",i=a&&a.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===re.trim(i.replace(it,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||a&&!a.filter)||(n.filter=it.test(i)?i.replace(it,r):i+" "+r)}}),re.cssHooks.marginRight=M(ne.reliableMarginRight,function(e,t){return t?re.swap(e,{display:"inline-block"},tt,[e,"marginRight"]):void 0}),re.each({margin:"",padding:"",border:"Width"},function(e,t){re.cssHooks[e+t]={expand:function(n){for(var a=0,r={},i="string"==typeof n?n.split(" "):[n];4>a;a++)r[e+xe[a]+t]=i[a]||i[a-2]||i[0];return r}},nt.test(e)||(re.cssHooks[e+t].set=A)}),re.fn.extend({css:function(e,t){return Ae(this,function(e,t,n){var a,r,i={},s=0;if(re.isArray(t)){for(a=et(e),r=t.length;r>s;s++)i[t[s]]=re.css(e,t[s],!1,a);return i}return void 0!==n?re.style(e,t,n):re.css(e,t)},e,t,arguments.length>1)},show:function(){return I(this,!0)},hide:function(){return I(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Ie(this)?re(this).show():re(this).hide()})}}),re.Tween=D,D.prototype={constructor:D,init:function(e,t,n,a,r,i){this.elem=e,this.prop=n,this.easing=r||"swing",this.options=t,this.start=this.now=this.cur(),this.end=a,this.unit=i||(re.cssNumber[n]?"":"px")},cur:function(){var e=D.propHooks[this.prop];return e&&e.get?e.get(this):D.propHooks._default.get(this)},run:function(e){var t,n=D.propHooks[this.prop];return this.pos=t=this.options.duration?re.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):D.propHooks._default.set(this),this}},D.prototype.init.prototype=D.prototype,D.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=re.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){re.fx.step[e.prop]?re.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[re.cssProps[e.prop]]||re.cssHooks[e.prop])?re.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},D.propHooks.scrollTop=D.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},re.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},re.fx=D.prototype.init,re.fx.step={};var mt,gt,ht=/^(?:toggle|show|hide)$/,ft=new RegExp("^(?:([+-])=|)("+Me+")([a-z%]*)$","i"),_t=/queueHooks$/,yt=[F],vt={"*":[function(e,t){var n=this.createTween(e,t),a=n.cur(),r=ft.exec(t),i=r&&r[3]||(re.cssNumber[e]?"":"px"),s=(re.cssNumber[e]||"px"!==i&&+a)&&ft.exec(re.css(n.elem,e)),o=1,l=20;if(s&&s[3]!==i){i=i||s[3],r=r||[],s=+a||1;do o=o||".5",s/=o,re.style(n.elem,e,s+i);while(o!==(o=n.cur()/a)&&1!==o&&--l)}return r&&(s=n.start=+s||+a||0,n.unit=i,n.end=r[1]?s+(r[1]+1)*r[2]:+r[2]),n}]};re.Animation=re.extend(O,{tweener:function(e,t){re.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,a=0,r=e.length;r>a;a++)n=e[a],vt[n]=vt[n]||[],vt[n].unshift(t)},prefilter:function(e,t){t?yt.unshift(e):yt.push(e)}}),re.speed=function(e,t,n){var a=e&&"object"==typeof e?re.extend({},e):{complete:n||!n&&t||re.isFunction(e)&&e,duration:e,easing:n&&t||t&&!re.isFunction(t)&&t};return a.duration=re.fx.off?0:"number"==typeof a.duration?a.duration:a.duration in re.fx.speeds?re.fx.speeds[a.duration]:re.fx.speeds._default,(null==a.queue||a.queue===!0)&&(a.queue="fx"),a.old=a.complete,a.complete=function(){re.isFunction(a.old)&&a.old.call(this),a.queue&&re.dequeue(this,a.queue)},a},re.fn.extend({fadeTo:function(e,t,n,a){return this.filter(Ie).css("opacity",0).show().end().animate({opacity:t},e,n,a)},animate:function(e,t,n,a){var r=re.isEmptyObject(e),i=re.speed(t,n,a),s=function(){var t=O(this,re.extend({},e),i);(r||re._data(this,"finish"))&&t.stop(!0)};return s.finish=s,r||i.queue===!1?this.each(s):this.queue(i.queue,s)},stop:function(e,t,n){var a=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,r=null!=e&&e+"queueHooks",i=re.timers,s=re._data(this);if(r)s[r]&&s[r].stop&&a(s[r]);else for(r in s)s[r]&&s[r].stop&&_t.test(r)&&a(s[r]);for(r=i.length;r--;)i[r].elem!==this||null!=e&&i[r].queue!==e||(i[r].anim.stop(n),t=!1,i.splice(r,1));(t||!n)&&re.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=re._data(this),a=n[e+"queue"],r=n[e+"queueHooks"],i=re.timers,s=a?a.length:0;for(n.finish=!0,re.queue(this,e,[]),r&&r.stop&&r.stop.call(this,!0),t=i.length;t--;)i[t].elem===this&&i[t].queue===e&&(i[t].anim.stop(!0),i.splice(t,1));for(t=0;s>t;t++)a[t]&&a[t].finish&&a[t].finish.call(this);delete n.finish})}}),re.each(["toggle","show","hide"],function(e,t){var n=re.fn[t];re.fn[t]=function(e,a,r){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(R(t,!0),e,a,r)}}),re.each({slideDown:R("show"),slideUp:R("hide"),slideToggle:R("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){re.fn[e]=function(e,n,a){return this.animate(t,e,n,a)}}),re.timers=[],re.fx.tick=function(){var e,t=re.timers,n=0;for(mt=re.now();n<t.length;n++)e=t[n],e()||t[n]!==e||t.splice(n--,1);t.length||re.fx.stop(),mt=void 0},re.fx.timer=function(e){re.timers.push(e),e()?re.fx.start():re.timers.pop()},re.fx.interval=13,re.fx.start=function(){gt||(gt=setInterval(re.fx.tick,re.fx.interval))},re.fx.stop=function(){clearInterval(gt),gt=null},re.fx.speeds={slow:600,fast:200,_default:400},re.fn.delay=function(e,t){return e=re.fx?re.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var a=setTimeout(t,e);n.stop=function(){clearTimeout(a)}})},function(){var e,t,n,a,r;t=ge.createElement("div"),t.setAttribute("className","t"),t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=t.getElementsByTagName("a")[0],n=ge.createElement("select"),r=n.appendChild(ge.createElement("option")),e=t.getElementsByTagName("input")[0],a.style.cssText="top:1px",ne.getSetAttribute="t"!==t.className,ne.style=/top/.test(a.getAttribute("style")),ne.hrefNormalized="/a"===a.getAttribute("href"),ne.checkOn=!!e.value,ne.optSelected=r.selected,ne.enctype=!!ge.createElement("form").enctype,n.disabled=!0,ne.optDisabled=!r.disabled,e=ge.createElement("input"),e.setAttribute("value",""),ne.input=""===e.getAttribute("value"),e.value="t",e.setAttribute("type","radio"),ne.radioValue="t"===e.value}();var bt=/\r/g;re.fn.extend({val:function(e){var t,n,a,r=this[0];return arguments.length?(a=re.isFunction(e),this.each(function(n){var r;1===this.nodeType&&(r=a?e.call(this,n,re(this).val()):e,null==r?r="":"number"==typeof r?r+="":re.isArray(r)&&(r=re.map(r,function(e){return null==e?"":e+""})),t=re.valHooks[this.type]||re.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,r,"value")||(this.value=r))})):r?(t=re.valHooks[r.type]||re.valHooks[r.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(r,"value"))?n:(n=r.value,"string"==typeof n?n.replace(bt,""):null==n?"":n)):void 0}}),re.extend({valHooks:{option:{get:function(e){var t=re.find.attr(e,"value");return null!=t?t:re.trim(re.text(e))}},select:{get:function(e){for(var t,n,a=e.options,r=e.selectedIndex,i="select-one"===e.type||0>r,s=i?null:[],o=i?r+1:a.length,l=0>r?o:i?r:0;o>l;l++)if(n=a[l],!(!n.selected&&l!==r||(ne.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&re.nodeName(n.parentNode,"optgroup"))){if(t=re(n).val(),i)return t;s.push(t)}return s},set:function(e,t){for(var n,a,r=e.options,i=re.makeArray(t),s=r.length;s--;)if(a=r[s],re.inArray(re.valHooks.option.get(a),i)>=0)try{a.selected=n=!0}catch(o){a.scrollHeight}else a.selected=!1;return n||(e.selectedIndex=-1),r}}}}),re.each(["radio","checkbox"],function(){re.valHooks[this]={set:function(e,t){return re.isArray(t)?e.checked=re.inArray(re(e).val(),t)>=0:void 0}},ne.checkOn||(re.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var wt,kt,$t=re.expr.attrHandle,Ct=/^(?:checked|selected)$/i,St=ne.getSetAttribute,Mt=ne.input;re.fn.extend({attr:function(e,t){return Ae(this,re.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){re.removeAttr(this,e)})}}),re.extend({attr:function(e,t,n){var a,r,i=e.nodeType;if(e&&3!==i&&8!==i&&2!==i)return typeof e.getAttribute===$e?re.prop(e,t,n):(1===i&&re.isXMLDoc(e)||(t=t.toLowerCase(),a=re.attrHooks[t]||(re.expr.match.bool.test(t)?kt:wt)),void 0===n?a&&"get"in a&&null!==(r=a.get(e,t))?r:(r=re.find.attr(e,t),null==r?void 0:r):null!==n?a&&"set"in a&&void 0!==(r=a.set(e,n,t))?r:(e.setAttribute(t,n+""),n):void re.removeAttr(e,t))},removeAttr:function(e,t){var n,a,r=0,i=t&&t.match(ve);if(i&&1===e.nodeType)for(;n=i[r++];)a=re.propFix[n]||n,re.expr.match.bool.test(n)?Mt&&St||!Ct.test(n)?e[a]=!1:e[re.camelCase("default-"+n)]=e[a]=!1:re.attr(e,n,""),e.removeAttribute(St?n:a)},attrHooks:{type:{set:function(e,t){if(!ne.radioValue&&"radio"===t&&re.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),kt={set:function(e,t,n){return t===!1?re.removeAttr(e,n):Mt&&St||!Ct.test(n)?e.setAttribute(!St&&re.propFix[n]||n,n):e[re.camelCase("default-"+n)]=e[n]=!0,n}},re.each(re.expr.match.bool.source.match(/\w+/g),function(e,t){var n=$t[t]||re.find.attr;$t[t]=Mt&&St||!Ct.test(t)?function(e,t,a){var r,i;return a||(i=$t[t],$t[t]=r,r=null!=n(e,t,a)?t.toLowerCase():null,$t[t]=i),r}:function(e,t,n){return n?void 0:e[re.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&St||(re.attrHooks.value={set:function(e,t,n){return re.nodeName(e,"input")?void(e.defaultValue=t):wt&&wt.set(e,t,n)}}),St||(wt={set:function(e,t,n){var a=e.getAttributeNode(n);return a||e.setAttributeNode(a=e.ownerDocument.createAttribute(n)),a.value=t+="","value"===n||t===e.getAttribute(n)?t:void 0}},$t.id=$t.name=$t.coords=function(e,t,n){var a;return n?void 0:(a=e.getAttributeNode(t))&&""!==a.value?a.value:null},re.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:void 0;
},set:wt.set},re.attrHooks.contenteditable={set:function(e,t,n){wt.set(e,""!==t&&t,n)}},re.each(["width","height"],function(e,t){re.attrHooks[t]={set:function(e,n){return""===n?(e.setAttribute(t,"auto"),n):void 0}}})),ne.style||(re.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var xt=/^(?:input|select|textarea|button|object)$/i,It=/^(?:a|area)$/i;re.fn.extend({prop:function(e,t){return Ae(this,re.prop,e,t,arguments.length>1)},removeProp:function(e){return e=re.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),re.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var a,r,i,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return i=1!==s||!re.isXMLDoc(e),i&&(t=re.propFix[t]||t,r=re.propHooks[t]),void 0!==n?r&&"set"in r&&void 0!==(a=r.set(e,n,t))?a:e[t]=n:r&&"get"in r&&null!==(a=r.get(e,t))?a:e[t]},propHooks:{tabIndex:{get:function(e){var t=re.find.attr(e,"tabindex");return t?parseInt(t,10):xt.test(e.nodeName)||It.test(e.nodeName)&&e.href?0:-1}}}}),ne.hrefNormalized||re.each(["href","src"],function(e,t){re.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),ne.optSelected||(re.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),re.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){re.propFix[this.toLowerCase()]=this}),ne.enctype||(re.propFix.enctype="encoding");var At=/[\t\r\n\f]/g;re.fn.extend({addClass:function(e){var t,n,a,r,i,s,o=0,l=this.length,c="string"==typeof e&&e;if(re.isFunction(e))return this.each(function(t){re(this).addClass(e.call(this,t,this.className))});if(c)for(t=(e||"").match(ve)||[];l>o;o++)if(n=this[o],a=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(At," "):" ")){for(i=0;r=t[i++];)a.indexOf(" "+r+" ")<0&&(a+=r+" ");s=re.trim(a),n.className!==s&&(n.className=s)}return this},removeClass:function(e){var t,n,a,r,i,s,o=0,l=this.length,c=0===arguments.length||"string"==typeof e&&e;if(re.isFunction(e))return this.each(function(t){re(this).removeClass(e.call(this,t,this.className))});if(c)for(t=(e||"").match(ve)||[];l>o;o++)if(n=this[o],a=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(At," "):"")){for(i=0;r=t[i++];)for(;a.indexOf(" "+r+" ")>=0;)a=a.replace(" "+r+" "," ");s=e?re.trim(a):"",n.className!==s&&(n.className=s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):this.each(re.isFunction(e)?function(n){re(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var t,a=0,r=re(this),i=e.match(ve)||[];t=i[a++];)r.hasClass(t)?r.removeClass(t):r.addClass(t);else(n===$e||"boolean"===n)&&(this.className&&re._data(this,"__className__",this.className),this.className=this.className||e===!1?"":re._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,a=this.length;a>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(At," ").indexOf(t)>=0)return!0;return!1}}),re.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){re.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),re.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,a){return this.on(t,e,n,a)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var Et=re.now(),Tt=/\?/,Dt=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;re.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,a=null,r=re.trim(t+"");return r&&!re.trim(r.replace(Dt,function(e,t,r,i){return n&&t&&(a=0),0===a?e:(n=r||t,a+=!i-!r,"")}))?Function("return "+r)():re.error("Invalid JSON: "+t)},re.parseXML=function(t){var n,a;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(a=new DOMParser,n=a.parseFromString(t,"text/xml")):(n=new ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(r){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||re.error("Invalid XML: "+t),n};var Pt,Rt,Nt=/#.*$/,Ft=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Ot=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Bt=/^(?:GET|HEAD)$/,Lt=/^\/\//,jt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ht={},qt={},Vt="*/".concat("*");try{Rt=location.href}catch(zt){Rt=ge.createElement("a"),Rt.href="",Rt=Rt.href}Pt=jt.exec(Rt.toLowerCase())||[],re.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Rt,type:"GET",isLocal:Ot.test(Pt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Vt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":re.parseJSON,"text xml":re.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?j(j(e,re.ajaxSettings),t):j(re.ajaxSettings,e)},ajaxPrefilter:B(Ht),ajaxTransport:B(qt),ajax:function(e,t){function n(e,t,n,a){var r,d,_,y,b,k=t;2!==v&&(v=2,o&&clearTimeout(o),c=void 0,s=a||"",w.readyState=e>0?4:0,r=e>=200&&300>e||304===e,n&&(y=H(p,w,n)),y=q(p,y,w,r),r?(p.ifModified&&(b=w.getResponseHeader("Last-Modified"),b&&(re.lastModified[i]=b),b=w.getResponseHeader("etag"),b&&(re.etag[i]=b)),204===e||"HEAD"===p.type?k="nocontent":304===e?k="notmodified":(k=y.state,d=y.data,_=y.error,r=!_)):(_=k,(e||!k)&&(k="error",0>e&&(e=0))),w.status=e,w.statusText=(t||k)+"",r?g.resolveWith(u,[d,k,w]):g.rejectWith(u,[w,k,_]),w.statusCode(f),f=void 0,l&&m.trigger(r?"ajaxSuccess":"ajaxError",[w,p,r?d:_]),h.fireWith(u,[w,k]),l&&(m.trigger("ajaxComplete",[w,p]),--re.active||re.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var a,r,i,s,o,l,c,d,p=re.ajaxSetup({},t),u=p.context||p,m=p.context&&(u.nodeType||u.jquery)?re(u):re.event,g=re.Deferred(),h=re.Callbacks("once memory"),f=p.statusCode||{},_={},y={},v=0,b="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===v){if(!d)for(d={};t=Ut.exec(s);)d[t[1].toLowerCase()]=t[2];t=d[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===v?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return v||(e=y[n]=y[n]||e,_[e]=t),this},overrideMimeType:function(e){return v||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>v)for(t in e)f[t]=[f[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||b;return c&&c.abort(t),n(0,t),this}};if(g.promise(w).complete=h.add,w.success=w.done,w.error=w.fail,p.url=((e||p.url||Rt)+"").replace(Nt,"").replace(Lt,Pt[1]+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=re.trim(p.dataType||"*").toLowerCase().match(ve)||[""],null==p.crossDomain&&(a=jt.exec(p.url.toLowerCase()),p.crossDomain=!(!a||a[1]===Pt[1]&&a[2]===Pt[2]&&(a[3]||("http:"===a[1]?"80":"443"))===(Pt[3]||("http:"===Pt[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=re.param(p.data,p.traditional)),L(Ht,p,t,w),2===v)return w;l=p.global,l&&0===re.active++&&re.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Bt.test(p.type),i=p.url,p.hasContent||(p.data&&(i=p.url+=(Tt.test(i)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=Ft.test(i)?i.replace(Ft,"$1_="+Et++):i+(Tt.test(i)?"&":"?")+"_="+Et++)),p.ifModified&&(re.lastModified[i]&&w.setRequestHeader("If-Modified-Since",re.lastModified[i]),re.etag[i]&&w.setRequestHeader("If-None-Match",re.etag[i])),(p.data&&p.hasContent&&p.contentType!==!1||t.contentType)&&w.setRequestHeader("Content-Type",p.contentType),w.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Vt+"; q=0.01":""):p.accepts["*"]);for(r in p.headers)w.setRequestHeader(r,p.headers[r]);if(p.beforeSend&&(p.beforeSend.call(u,w,p)===!1||2===v))return w.abort();b="abort";for(r in{success:1,error:1,complete:1})w[r](p[r]);if(c=L(qt,p,t,w)){w.readyState=1,l&&m.trigger("ajaxSend",[w,p]),p.async&&p.timeout>0&&(o=setTimeout(function(){w.abort("timeout")},p.timeout));try{v=1,c.send(_,n)}catch(k){if(!(2>v))throw k;n(-1,k)}}else n(-1,"No Transport");return w},getJSON:function(e,t,n){return re.get(e,t,n,"json")},getScript:function(e,t){return re.get(e,void 0,t,"script")}}),re.each(["get","post"],function(e,t){re[t]=function(e,n,a,r){return re.isFunction(n)&&(r=r||a,a=n,n=void 0),re.ajax({url:e,type:t,dataType:r,data:n,success:a})}}),re.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){re.fn[t]=function(e){return this.on(t,e)}}),re._evalUrl=function(e){return re.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},re.fn.extend({wrapAll:function(e){if(re.isFunction(e))return this.each(function(t){re(this).wrapAll(e.call(this,t))});if(this[0]){var t=re(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return this.each(re.isFunction(e)?function(t){re(this).wrapInner(e.call(this,t))}:function(){var t=re(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=re.isFunction(e);return this.each(function(n){re(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){re.nodeName(this,"body")||re(this).replaceWith(this.childNodes)}).end()}}),re.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!ne.reliableHiddenOffsets()&&"none"===(e.style&&e.style.display||re.css(e,"display"))},re.expr.filters.visible=function(e){return!re.expr.filters.hidden(e)};var Wt=/%20/g,Gt=/\[\]$/,Kt=/\r?\n/g,Yt=/^(?:submit|button|image|reset|file)$/i,Zt=/^(?:input|select|textarea|keygen)/i;re.param=function(e,t){var n,a=[],r=function(e,t){t=re.isFunction(t)?t():null==t?"":t,a[a.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=re.ajaxSettings&&re.ajaxSettings.traditional),re.isArray(e)||e.jquery&&!re.isPlainObject(e))re.each(e,function(){r(this.name,this.value)});else for(n in e)V(n,e[n],t,r);return a.join("&").replace(Wt,"+")},re.fn.extend({serialize:function(){return re.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=re.prop(this,"elements");return e?re.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!re(this).is(":disabled")&&Zt.test(this.nodeName)&&!Yt.test(e)&&(this.checked||!Ee.test(e))}).map(function(e,t){var n=re(this).val();return null==n?null:re.isArray(n)?re.map(n,function(e){return{name:t.name,value:e.replace(Kt,"\r\n")}}):{name:t.name,value:n.replace(Kt,"\r\n")}}).get()}}),re.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&z()||W()}:z;var Xt=0,Jt={},Qt=re.ajaxSettings.xhr();e.ActiveXObject&&re(e).on("unload",function(){for(var e in Jt)Jt[e](void 0,!0)}),ne.cors=!!Qt&&"withCredentials"in Qt,Qt=ne.ajax=!!Qt,Qt&&re.ajaxTransport(function(e){if(!e.crossDomain||ne.cors){var t;return{send:function(n,a){var r,i=e.xhr(),s=++Xt;if(i.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(r in e.xhrFields)i[r]=e.xhrFields[r];e.mimeType&&i.overrideMimeType&&i.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(r in n)void 0!==n[r]&&i.setRequestHeader(r,n[r]+"");i.send(e.hasContent&&e.data||null),t=function(n,r){var o,l,c;if(t&&(r||4===i.readyState))if(delete Jt[s],t=void 0,i.onreadystatechange=re.noop,r)4!==i.readyState&&i.abort();else{c={},o=i.status,"string"==typeof i.responseText&&(c.text=i.responseText);try{l=i.statusText}catch(d){l=""}o||!e.isLocal||e.crossDomain?1223===o&&(o=204):o=c.text?200:404}c&&a(o,l,c,i.getAllResponseHeaders())},e.async?4===i.readyState?setTimeout(t):i.onreadystatechange=Jt[s]=t:t()},abort:function(){t&&t(void 0,!0)}}}}),re.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return re.globalEval(e),e}}}),re.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),re.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=ge.head||re("head")[0]||ge.documentElement;return{send:function(a,r){t=ge.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||r(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var en=[],tn=/(=)\?(?=&|$)|\?\?/;re.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=en.pop()||re.expando+"_"+Et++;return this[e]=!0,e}}),re.ajaxPrefilter("json jsonp",function(t,n,a){var r,i,s,o=t.jsonp!==!1&&(tn.test(t.url)?"url":"string"==typeof t.data&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&tn.test(t.data)&&"data");return o||"jsonp"===t.dataTypes[0]?(r=t.jsonpCallback=re.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,o?t[o]=t[o].replace(tn,"$1"+r):t.jsonp!==!1&&(t.url+=(Tt.test(t.url)?"&":"?")+t.jsonp+"="+r),t.converters["script json"]=function(){return s||re.error(r+" was not called"),s[0]},t.dataTypes[0]="json",i=e[r],e[r]=function(){s=arguments},a.always(function(){e[r]=i,t[r]&&(t.jsonpCallback=n.jsonpCallback,en.push(r)),s&&re.isFunction(i)&&i(s[0]),s=i=void 0}),"script"):void 0}),re.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||ge;var a=pe.exec(e),r=!n&&[];return a?[t.createElement(a[1])]:(a=re.buildFragment([e],t,r),r&&r.length&&re(r).remove(),re.merge([],a.childNodes))};var nn=re.fn.load;re.fn.load=function(e,t,n){if("string"!=typeof e&&nn)return nn.apply(this,arguments);var a,r,i,s=this,o=e.indexOf(" ");return o>=0&&(a=re.trim(e.slice(o,e.length)),e=e.slice(0,o)),re.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),s.length>0&&re.ajax({url:e,type:i,dataType:"html",data:t}).done(function(e){r=arguments,s.html(a?re("<div>").append(re.parseHTML(e)).find(a):e)}).complete(n&&function(e,t){s.each(n,r||[e.responseText,t,e])}),this},re.expr.filters.animated=function(e){return re.grep(re.timers,function(t){return e===t.elem}).length};var an=e.document.documentElement;re.offset={setOffset:function(e,t,n){var a,r,i,s,o,l,c,d=re.css(e,"position"),p=re(e),u={};"static"===d&&(e.style.position="relative"),o=p.offset(),i=re.css(e,"top"),l=re.css(e,"left"),c=("absolute"===d||"fixed"===d)&&re.inArray("auto",[i,l])>-1,c?(a=p.position(),s=a.top,r=a.left):(s=parseFloat(i)||0,r=parseFloat(l)||0),re.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+s),null!=t.left&&(u.left=t.left-o.left+r),"using"in t?t.using.call(e,u):p.css(u)}},re.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){re.offset.setOffset(this,e,t)});var t,n,a={top:0,left:0},r=this[0],i=r&&r.ownerDocument;return i?(t=i.documentElement,re.contains(t,r)?(typeof r.getBoundingClientRect!==$e&&(a=r.getBoundingClientRect()),n=G(i),{top:a.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:a.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):a):void 0},position:function(){if(this[0]){var e,t,n={top:0,left:0},a=this[0];return"fixed"===re.css(a,"position")?t=a.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),re.nodeName(e[0],"html")||(n=e.offset()),n.top+=re.css(e[0],"borderTopWidth",!0),n.left+=re.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-re.css(a,"marginTop",!0),left:t.left-n.left-re.css(a,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||an;e&&!re.nodeName(e,"html")&&"static"===re.css(e,"position");)e=e.offsetParent;return e||an})}}),re.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);re.fn[e]=function(a){return Ae(this,function(e,a,r){var i=G(e);return void 0===r?i?t in i?i[t]:i.document.documentElement[a]:e[a]:void(i?i.scrollTo(n?re(i).scrollLeft():r,n?r:re(i).scrollTop()):e[a]=r)},e,a,arguments.length,null)}}),re.each(["top","left"],function(e,t){re.cssHooks[t]=M(ne.pixelPosition,function(e,n){return n?(n=tt(e,t),at.test(n)?re(e).position()[t]+"px":n):void 0})}),re.each({Height:"height",Width:"width"},function(e,t){re.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,a){re.fn[a]=function(a,r){var i=arguments.length&&(n||"boolean"!=typeof a),s=n||(a===!0||r===!0?"margin":"border");return Ae(this,function(t,n,a){var r;return re.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(r=t.documentElement,Math.max(t.body["scroll"+e],r["scroll"+e],t.body["offset"+e],r["offset"+e],r["client"+e])):void 0===a?re.css(t,n,s):re.style(t,n,a,s)},t,i?a:void 0,i,null)}})}),re.fn.size=function(){return this.length},re.fn.andSelf=re.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return re});var rn=e.jQuery,sn=e.$;return re.noConflict=function(t){return e.$===re&&(e.$=sn),t&&e.jQuery===re&&(e.jQuery=rn),re},typeof t===$e&&(e.jQuery=e.$=re),re}),Config=window.Config||{},Config.App={id:2496,hash:"8da85b0d5bfe62527e5b244c209159c3",version:"0.5.7",domains:["web.telegram.org","zhukov.github.io"]},Config.Modes={test:location.search.indexOf("test=1")>0,debug:location.search.indexOf("debug=1")>0,http:location.search.indexOf("http=1")>0,ssl:location.search.indexOf("ssl=1")>0||"https:"==location.protocol&&location.search.indexOf("ssl=0")==-1,force_mobile:location.search.indexOf("mobile=1")>0,force_desktop:location.search.indexOf("desktop=1")>0,nacl:location.search.indexOf("nacl=0")==-1,webcrypto:location.search.indexOf("webcrypto=0")==-1,packed:"app:"==location.protocol||"chrome-extension:"==location.protocol,ios_standalone:window.navigator.standalone&&navigator.userAgent.match(/iOS|iPhone|iPad/),chrome_packed:window.chrome&&chrome.app&&chrome.app.window&&!0||!1,animations:!0,memory_only:!1,allow_tmpfs:location.search.indexOf("tmpfs=yeahImSureIknowWhatImDoing")>0||!1,push_api:location.search.indexOf("push=1")==-1},Config.Navigator={osX:(navigator.platform||"").toLowerCase().indexOf("mac")!=-1||(navigator.userAgent||"").toLowerCase().indexOf("mac")!=-1,msie:(navigator.userAgent||"").search(/MSIE | Trident\/|Edge\//)!=-1,retina:window.devicePixelRatio>1,ffos:navigator.userAgent.search(/mobi.+Gecko/i)!=-1,ffos2p:navigator.userAgent.search(/mobi.+Gecko\/[34567]/i)!=-1,touch:screen.width<=768||"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,mobile:screen.width&&screen.width<480||navigator.userAgent.search(/iOS|iPhone OS|Android|BlackBerry|BB10|Series ?[64]0|J2ME|MIDP|opera mini|opera mobi|mobi.+Gecko|Windows Phone/i)!=-1},Config.I18n={locale:"en-us",supported:["en-us","es-es","de-de","it-it","nl-nl","pt-br"],languages:{"en-us":"English","de-de":"Deutsch","es-es":"Español","it-it":"Italiano","ru-ru":"Русский","nl-nl":"Nederlands","pt-br":"Português (Brazil)"},aliases:{en:"en-us",de:"de-de",es:"es-es",it:"it-it",ru:"ru-ru",nl:"nl-nl"},messages:{},fallback_messages:{}},Config.ExtCredentials={gmaps:{api_key:"AIzaSyC72t5GDcP-dob20d-ARwSwOQ41-zgbArg"}},Config.Schema=Config.Schema||{},Config.Schema.MTProto={constructors:[{id:"481674261",predicate:"vector",params:[],type:"Vector t"},{id:"85337187",predicate:"resPQ",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"pq",type:"bytes"},{name:"server_public_key_fingerprints",type:"Vector<long>"}],type:"ResPQ"},{id:"-2083955988",predicate:"p_q_inner_data",params:[{name:"pq",type:"bytes"},{name:"p",type:"bytes"},{name:"q",type:"bytes"},{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce",type:"int256"}],type:"P_Q_inner_data"},{id:"2043348061",predicate:"server_DH_params_fail",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce_hash",type:"int128"}],type:"Server_DH_Params"},{id:"-790100132",predicate:"server_DH_params_ok",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"encrypted_answer",type:"bytes"}],type:"Server_DH_Params"},{id:"-1249309254",predicate:"server_DH_inner_data",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"g",type:"int"},{name:"dh_prime",type:"bytes"},{name:"g_a",type:"bytes"},{name:"server_time",type:"int"}],type:"Server_DH_inner_data"},{id:"1715713620",predicate:"client_DH_inner_data",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"retry_id",type:"long"},{name:"g_b",type:"bytes"}],type:"Client_DH_Inner_Data"},{id:"1003222836",predicate:"dh_gen_ok",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce_hash1",type:"int128"}],type:"Set_client_DH_params_answer"},{id:"1188831161",predicate:"dh_gen_retry",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce_hash2",type:"int128"}],type:"Set_client_DH_params_answer"},{id:"-1499615742",predicate:"dh_gen_fail",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"new_nonce_hash3",type:"int128"}],type:"Set_client_DH_params_answer"},{id:"-212046591",predicate:"rpc_result",params:[{name:"req_msg_id",type:"long"},{name:"result",type:"Object"}],type:"RpcResult"},{id:"558156313",predicate:"rpc_error",params:[{name:"error_code",type:"int"},{name:"error_message",type:"string"}],type:"RpcError"},{id:"1579864942",predicate:"rpc_answer_unknown",params:[],type:"RpcDropAnswer"},{id:"-847714938",predicate:"rpc_answer_dropped_running",params:[],type:"RpcDropAnswer"},{id:"-1539647305",predicate:"rpc_answer_dropped",params:[{name:"msg_id",type:"long"},{name:"seq_no",type:"int"},{name:"bytes",type:"int"}],type:"RpcDropAnswer"},{id:"155834844",predicate:"future_salt",params:[{name:"valid_since",type:"int"},{name:"valid_until",type:"int"},{name:"salt",type:"long"}],type:"FutureSalt"},{id:"-1370486635",predicate:"future_salts",params:[{name:"req_msg_id",type:"long"},{name:"now",type:"int"},{name:"salts",type:"vector<future_salt>"}],type:"FutureSalts"},{id:"880243653",predicate:"pong",params:[{name:"msg_id",type:"long"},{name:"ping_id",type:"long"}],type:"Pong"},{id:"-501201412",predicate:"destroy_session_ok",params:[{name:"session_id",type:"long"}],type:"DestroySessionRes"},{id:"1658015945",predicate:"destroy_session_none",params:[{name:"session_id",type:"long"}],type:"DestroySessionRes"},{id:"-1631450872",predicate:"new_session_created",params:[{name:"first_msg_id",type:"long"},{name:"unique_id",type:"long"},{name:"server_salt",type:"long"}],type:"NewSession"},{id:"1945237724",predicate:"msg_container",params:[{name:"messages",type:"vector<%Message>"}],type:"MessageContainer"},{id:"1538843921",predicate:"message",params:[{name:"msg_id",type:"long"},{name:"seqno",type:"int"},{name:"bytes",type:"int"},{name:"body",type:"Object"}],type:"Message"},{id:"-530561358",predicate:"msg_copy",params:[{name:"orig_message",type:"Message"}],type:"MessageCopy"},{id:"812830625",predicate:"gzip_packed",params:[{name:"packed_data",type:"bytes"}],type:"Object"},{id:"1658238041",predicate:"msgs_ack",params:[{name:"msg_ids",type:"Vector<long>"}],type:"MsgsAck"},{id:"-1477445615",predicate:"bad_msg_notification",params:[{name:"bad_msg_id",type:"long"},{name:"bad_msg_seqno",type:"int"},{name:"error_code",type:"int"}],type:"BadMsgNotification"},{id:"-307542917",predicate:"bad_server_salt",params:[{name:"bad_msg_id",type:"long"},{name:"bad_msg_seqno",type:"int"},{name:"error_code",type:"int"},{name:"new_server_salt",type:"long"}],type:"BadMsgNotification"},{id:"2105940488",predicate:"msg_resend_req",params:[{name:"msg_ids",type:"Vector<long>"}],type:"MsgResendReq"},{id:"-630588590",predicate:"msgs_state_req",params:[{name:"msg_ids",type:"Vector<long>"}],type:"MsgsStateReq"},{id:"81704317",predicate:"msgs_state_info",params:[{name:"req_msg_id",type:"long"},{name:"info",type:"bytes"}],type:"MsgsStateInfo"},{id:"-1933520591",predicate:"msgs_all_info",params:[{name:"msg_ids",type:"Vector<long>"},{name:"info",type:"bytes"}],type:"MsgsAllInfo"},{id:"661470918",predicate:"msg_detailed_info",params:[{name:"msg_id",type:"long"},{name:"answer_msg_id",type:"long"},{name:"bytes",type:"int"},{name:"status",type:"int"}],type:"MsgDetailedInfo"},{id:"-2137147681",predicate:"msg_new_detailed_info",params:[{name:"answer_msg_id",type:"long"},{name:"bytes",type:"int"},{name:"status",type:"int"}],type:"MsgDetailedInfo"}],methods:[{id:"1615239032",method:"req_pq",params:[{name:"nonce",type:"int128"}],type:"ResPQ"},{id:"-686627650",method:"req_DH_params",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"p",type:"bytes"},{name:"q",type:"bytes"},{name:"public_key_fingerprint",type:"long"},{name:"encrypted_data",type:"bytes"}],type:"Server_DH_Params"},{id:"-184262881",method:"set_client_DH_params",params:[{name:"nonce",type:"int128"},{name:"server_nonce",type:"int128"},{name:"encrypted_data",type:"bytes"}],type:"Set_client_DH_params_answer"},{id:"1491380032",method:"rpc_drop_answer",params:[{name:"req_msg_id",type:"long"}],type:"RpcDropAnswer"},{id:"-1188971260",method:"get_future_salts",params:[{name:"num",type:"int"}],type:"FutureSalts"},{id:"2059302892",method:"ping",params:[{name:"ping_id",type:"long"}],type:"Pong"},{id:"-213746804",method:"ping_delay_disconnect",params:[{name:"ping_id",type:"long"},{name:"disconnect_delay",type:"int"}],type:"Pong"},{id:"-414113498",method:"destroy_session",params:[{name:"session_id",type:"long"}],type:"DestroySessionRes"},{id:"-1835453025",method:"http_wait",params:[{name:"max_delay",type:"int"},{name:"wait_after",type:"int"},{name:"max_wait",type:"int"}],type:"HttpWait"}]},Config.TLD=["abogado","ac","academy","accountants","active","actor","ad","adult","ae","aero","af","ag","agency","ai","airforce","al","allfinanz","alsace","am","amsterdam","an","android","ao","apartments","aq","aquarelle","ar","archi","army","arpa","as","asia","associates","at","attorney","au","auction","audio","autos","aw","ax","axa","az","ba","band","bank","bar","barclaycard","barclays","bargains","bayern","bb","bd","be","beer","berlin","best","bf","bg","bh","bi","bid","bike","bingo","bio","biz","bj","black","blackfriday","bloomberg","blue","bm","bmw","bn","bnpparibas","bo","boo","boutique","br","brussels","bs","bt","budapest","build","builders","business","buzz","bv","bw","by","bz","bzh","ca","cab","cal","camera","camp","cancerresearch","canon","capetown","capital","caravan","cards","care","career","careers","cartier","casa","cash","cat","catering","cc","cd","center","ceo","cern","cf","cg","ch","channel","chat","cheap","christmas","chrome","church","ci","citic","city","ck","cl","claims","cleaning","click","clinic","clothing","club","cm","cn","co","coach","codes","coffee","college","cologne","com","community","company","computer","condos","construction","consulting","contractors","cooking","cool","coop","country","cr","credit","creditcard","cricket","crs","cruises","cu","cuisinella","cv","cw","cx","cy","cymru","cz","dabur","dad","dance","dating","day","dclk","de","deals","degree","delivery","democrat","dental","dentist","desi","design","dev","diamonds","diet","digital","direct","directory","discount","dj","dk","dm","dnp","do","docs","domains","doosan","durban","dvag","dz","eat","ec","edu","education","ee","eg","email","emerck","energy","engineer","engineering","enterprises","equipment","er","es","esq","estate","et","eu","eurovision","eus","events","everbank","exchange","expert","exposed","fail","farm","fashion","feedback","fi","finance","financial","firmdale","fish","fishing","fit","fitness","fj","fk","flights","florist","flowers","flsmidth","fly","fm","fo","foo","forsale","foundation","fr","frl","frogans","fund","furniture","futbol","ga","gal","gallery","garden","gb","gbiz","gd","ge","gent","gf","gg","ggee","gh","gi","gift","gifts","gives","gl","glass","gle","global","globo","gm","gmail","gmo","gmx","gn","goog","google","gop","gov","gp","gq","gr","graphics","gratis","green","gripe","gs","gt","gu","guide","guitars","guru","gw","gy","hamburg","hangout","haus","healthcare","help","here","hermes","hiphop","hiv","hk","hm","hn","holdings","holiday","homes","horse","host","hosting","house","how","hr","ht","hu","ibm","id","ie","ifm","il","im","immo","immobilien","in","industries","info","ing","ink","institute","insure","int","international","investments","io","iq","ir","irish","is","it","iwc","jcb","je","jetzt","jm","jo","jobs","joburg","jp","juegos","kaufen","kddi","ke","kg","kh","ki","kim","kitchen","kiwi","km","kn","koeln","kp","kr","krd","kred","kw","ky","kyoto","kz","la","lacaixa","land","lat","latrobe","lawyer","lb","lc","lds","lease","legal","lgbt","li","lidl","life","lighting","limited","limo","link","lk","loans","london","lotte","lotto","lr","ls","lt","ltda","lu","luxe","luxury","lv","ly","ma","madrid","maison","management","mango","market","marketing","marriott","mc","md","me","media","meet","melbourne","meme","memorial","menu","mg","mh","miami","mil","mini","mk","ml","mm","mn","mo","mobi","moda","moe","monash","money","mormon","mortgage","moscow","motorcycles","mov","mp","mq","mr","ms","mt","mu","museum","mv","mw","mx","my","mz","na","nagoya","name","navy","nc","ne","net","network","neustar","new","nexus","nf","ng","ngo","nhk","ni","nico","ninja","nl","no","np","nr","nra","nrw","ntt","nu","nyc","nz","okinawa","om","one","ong","onl","ooo","org","organic","osaka","otsuka","ovh","pa","paris","partners","parts","party","pe","pf","pg","ph","pharmacy","photo","photography","photos","physio","pics","pictures","pink","pizza","pk","pl","place","plumbing","pm","pn","pohl","poker","porn","post","pr","praxi","press","pro","prod","productions","prof","properties","property","ps","pt","pub","pw","py","qa","qpon","quebec","re","realtor","recipes","red","rehab","reise","reisen","reit","ren","rentals","repair","report","republican","rest","restaurant","reviews","rich","rio","rip","ro","rocks","rodeo","rs","rsvp","ru","ruhr","rw","ryukyu","sa","saarland","sale","samsung","sarl","saxo","sb","sc","sca","scb","schmidt","schule","schwarz","science","scot","sd","se","services","sew","sexy","sg","sh","shiksha","shoes","shriram","si","singles","sj","sk","sky","sl","sm","sn","so","social","software","sohu","solar","solutions","soy","space","spiegel","sr","st","style","su","supplies","supply","support","surf","surgery","suzuki","sv","sx","sy","sydney","systems","sz","taipei","tatar","tattoo","tax","tc","td","technology","tel","temasek","tennis","tf","tg","th","tienda","tips","tires","tirol","tj","tk","tl","tm","tn","to","today","tokyo","tools","top","toshiba","town","toys","tp","tr","trade","training","travel","trust","tt","tui","tv","tw","tz","ua","ug","uk","university","uno","uol","us","uy","uz","va","vacations","vc","ve","vegas","ventures","versicherung","vet","vg","vi","viajes","video","villas","vision","vlaanderen","vn","vodka","vote","voting","voto","voyage","vu","wales","wang","watch","webcam","website","wed","wedding","wf","whoswho","wien","wiki","williamhill","wme","work","works","world","ws","wtc","wtf","佛山","集团","在线","한국","ভরত","八卦","موقع","公益","公司","移动","我爱你","москва","қаз","онлайн","сайт","срб","淡马锡","орг","삼성","சிகப","商标","商店","商城","дети","мкд","中文网","中信","中国","中國","谷歌","భరత","ල","ભરત","भरत","网店","सगठन","网络","укр","香港","台湾","台灣","手机","мон","الجزائر","عمان","ایران","امارات","بازار","الاردن","بھارت","المغرب","السعودية","مليسيا","شبكة","გე","机构","组织机构","ไทย","سورية","рус","рф","تونس","みんな","グーグル","世界","ਭਰਤ","网址","游戏","vermögensberater","vermögensberatung","企业","مصر","قطر","广东","இலங","இநி","新加坡","فلسطين","政务","xxx","xyz","yachts","yandex","ye","yoga","yokohama","youtube","yt","za","zip","zm","zone","zuerich","zw"],
Config.Schema.API={constructors:[{id:"-1132882121",predicate:"boolFalse",params:[],type:"Bool"},{id:"-1720552011",predicate:"boolTrue",params:[],type:"Bool"},{id:"1072550713",predicate:"true",params:[],type:"True"},{id:"481674261",predicate:"vector",params:[],type:"Vector t"},{id:"-994444869",predicate:"error",params:[{name:"code",type:"int"},{name:"text",type:"string"}],type:"Error"},{id:"1450380236",predicate:"null",params:[],type:"Null"},{id:"2134579434",predicate:"inputPeerEmpty",params:[],type:"InputPeer"},{id:"2107670217",predicate:"inputPeerSelf",params:[],type:"InputPeer"},{id:"396093539",predicate:"inputPeerChat",params:[{name:"chat_id",type:"int"}],type:"InputPeer"},{id:"-1182234929",predicate:"inputUserEmpty",params:[],type:"InputUser"},{id:"-138301121",predicate:"inputUserSelf",params:[],type:"InputUser"},{id:"-208488460",predicate:"inputPhoneContact",params:[{name:"client_id",type:"long"},{name:"phone",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"InputContact"},{id:"-181407105",predicate:"inputFile",params:[{name:"id",type:"long"},{name:"parts",type:"int"},{name:"name",type:"string"},{name:"md5_checksum",type:"string"}],type:"InputFile"},{id:"-1771768449",predicate:"inputMediaEmpty",params:[],type:"InputMedia"},{id:"1661770481",predicate:"inputMediaUploadedPhoto",params:[{name:"flags",type:"#"},{name:"file",type:"InputFile"},{name:"caption",type:"string"},{name:"stickers",type:"flags.0?Vector<InputDocument>"}],type:"InputMedia"},{id:"-373312269",predicate:"inputMediaPhoto",params:[{name:"id",type:"InputPhoto"},{name:"caption",type:"string"}],type:"InputMedia"},{id:"-104578748",predicate:"inputMediaGeoPoint",params:[{name:"geo_point",type:"InputGeoPoint"}],type:"InputMedia"},{id:"-1494984313",predicate:"inputMediaContact",params:[{name:"phone_number",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"InputMedia"},{id:"480546647",predicate:"inputChatPhotoEmpty",params:[],type:"InputChatPhoto"},{id:"-1837345356",predicate:"inputChatUploadedPhoto",params:[{name:"file",type:"InputFile"}],type:"InputChatPhoto"},{id:"-1991004873",predicate:"inputChatPhoto",params:[{name:"id",type:"InputPhoto"}],type:"InputChatPhoto"},{id:"-457104426",predicate:"inputGeoPointEmpty",params:[],type:"InputGeoPoint"},{id:"-206066487",predicate:"inputGeoPoint",params:[{name:"lat",type:"double"},{name:"long",type:"double"}],type:"InputGeoPoint"},{id:"483901197",predicate:"inputPhotoEmpty",params:[],type:"InputPhoto"},{id:"-74070332",predicate:"inputPhoto",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputPhoto"},{id:"342061462",predicate:"inputFileLocation",params:[{name:"volume_id",type:"long"},{name:"local_id",type:"int"},{name:"secret",type:"long"}],type:"InputFileLocation"},{id:"1996904104",predicate:"inputAppEvent",params:[{name:"time",type:"double"},{name:"type",type:"string"},{name:"peer",type:"long"},{name:"data",type:"string"}],type:"InputAppEvent"},{id:"-1649296275",predicate:"peerUser",params:[{name:"user_id",type:"int"}],type:"Peer"},{id:"-1160714821",predicate:"peerChat",params:[{name:"chat_id",type:"int"}],type:"Peer"},{id:"-1432995067",predicate:"storage.fileUnknown",params:[],type:"storage.FileType"},{id:"1086091090",predicate:"storage.filePartial",params:[],type:"storage.FileType"},{id:"8322574",predicate:"storage.fileJpeg",params:[],type:"storage.FileType"},{id:"-891180321",predicate:"storage.fileGif",params:[],type:"storage.FileType"},{id:"172975040",predicate:"storage.filePng",params:[],type:"storage.FileType"},{id:"-1373745011",predicate:"storage.filePdf",params:[],type:"storage.FileType"},{id:"1384777335",predicate:"storage.fileMp3",params:[],type:"storage.FileType"},{id:"1258941372",predicate:"storage.fileMov",params:[],type:"storage.FileType"},{id:"-1278304028",predicate:"storage.fileMp4",params:[],type:"storage.FileType"},{id:"276907596",predicate:"storage.fileWebp",params:[],type:"storage.FileType"},{id:"2086234950",predicate:"fileLocationUnavailable",params:[{name:"volume_id",type:"long"},{name:"local_id",type:"int"},{name:"secret",type:"long"}],type:"FileLocation"},{id:"1406570614",predicate:"fileLocation",params:[{name:"dc_id",type:"int"},{name:"volume_id",type:"long"},{name:"local_id",type:"int"},{name:"secret",type:"long"}],type:"FileLocation"},{id:"537022650",predicate:"userEmpty",params:[{name:"id",type:"int"}],type:"User"},{id:"1326562017",predicate:"userProfilePhotoEmpty",params:[],type:"UserProfilePhoto"},{id:"-715532088",predicate:"userProfilePhoto",params:[{name:"photo_id",type:"long"},{name:"photo_small",type:"FileLocation"},{name:"photo_big",type:"FileLocation"}],type:"UserProfilePhoto"},{id:"164646985",predicate:"userStatusEmpty",params:[],type:"UserStatus"},{id:"-306628279",predicate:"userStatusOnline",params:[{name:"expires",type:"int"}],type:"UserStatus"},{id:"9203775",predicate:"userStatusOffline",params:[{name:"was_online",type:"int"}],type:"UserStatus"},{id:"-1683826688",predicate:"chatEmpty",params:[{name:"id",type:"int"}],type:"Chat"},{id:"-652419756",predicate:"chat",params:[{name:"flags",type:"#"},{name:"creator",type:"flags.0?true"},{name:"kicked",type:"flags.1?true"},{name:"left",type:"flags.2?true"},{name:"admins_enabled",type:"flags.3?true"},{name:"admin",type:"flags.4?true"},{name:"deactivated",type:"flags.5?true"},{name:"id",type:"int"},{name:"title",type:"string"},{name:"photo",type:"ChatPhoto"},{name:"participants_count",type:"int"},{name:"date",type:"int"},{name:"version",type:"int"},{name:"migrated_to",type:"flags.6?InputChannel"}],type:"Chat"},{id:"120753115",predicate:"chatForbidden",params:[{name:"id",type:"int"},{name:"title",type:"string"}],type:"Chat"},{id:"771925524",predicate:"chatFull",params:[{name:"id",type:"int"},{name:"participants",type:"ChatParticipants"},{name:"chat_photo",type:"Photo"},{name:"notify_settings",type:"PeerNotifySettings"},{name:"exported_invite",type:"ExportedChatInvite"},{name:"bot_info",type:"Vector<BotInfo>"}],type:"ChatFull"},{id:"-925415106",predicate:"chatParticipant",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChatParticipant"},{id:"-57668565",predicate:"chatParticipantsForbidden",params:[{name:"flags",type:"#"},{name:"chat_id",type:"int"},{name:"self_participant",type:"flags.0?ChatParticipant"}],type:"ChatParticipants"},{id:"1061556205",predicate:"chatParticipants",params:[{name:"chat_id",type:"int"},{name:"participants",type:"Vector<ChatParticipant>"},{name:"version",type:"int"}],type:"ChatParticipants"},{id:"935395612",predicate:"chatPhotoEmpty",params:[],type:"ChatPhoto"},{id:"1632839530",predicate:"chatPhoto",params:[{name:"photo_small",type:"FileLocation"},{name:"photo_big",type:"FileLocation"}],type:"ChatPhoto"},{id:"-2082087340",predicate:"messageEmpty",params:[{name:"id",type:"int"}],type:"Message"},{id:"-1063525281",predicate:"message",params:[{name:"flags",type:"#"},{name:"out",type:"flags.1?true"},{name:"mentioned",type:"flags.4?true"},{name:"media_unread",type:"flags.5?true"},{name:"silent",type:"flags.13?true"},{name:"post",type:"flags.14?true"},{name:"id",type:"int"},{name:"from_id",type:"flags.8?int"},{name:"to_id",type:"Peer"},{name:"fwd_from",type:"flags.2?MessageFwdHeader"},{name:"via_bot_id",type:"flags.11?int"},{name:"reply_to_msg_id",type:"flags.3?int"},{name:"date",type:"int"},{name:"message",type:"string"},{name:"media",type:"flags.9?MessageMedia"},{name:"reply_markup",type:"flags.6?ReplyMarkup"},{name:"entities",type:"flags.7?Vector<MessageEntity>"},{name:"views",type:"flags.10?int"},{name:"edit_date",type:"flags.15?int"}],type:"Message"},{id:"-1642487306",predicate:"messageService",params:[{name:"flags",type:"#"},{name:"out",type:"flags.1?true"},{name:"mentioned",type:"flags.4?true"},{name:"media_unread",type:"flags.5?true"},{name:"silent",type:"flags.13?true"},{name:"post",type:"flags.14?true"},{name:"id",type:"int"},{name:"from_id",type:"flags.8?int"},{name:"to_id",type:"Peer"},{name:"reply_to_msg_id",type:"flags.3?int"},{name:"date",type:"int"},{name:"action",type:"MessageAction"}],type:"Message"},{id:"1038967584",predicate:"messageMediaEmpty",params:[],type:"MessageMedia"},{id:"1032643901",predicate:"messageMediaPhoto",params:[{name:"photo",type:"Photo"},{name:"caption",type:"string"}],type:"MessageMedia"},{id:"1457575028",predicate:"messageMediaGeo",params:[{name:"geo",type:"GeoPoint"}],type:"MessageMedia"},{id:"1585262393",predicate:"messageMediaContact",params:[{name:"phone_number",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"user_id",type:"int"}],type:"MessageMedia"},{id:"-1618676578",predicate:"messageMediaUnsupported",params:[],type:"MessageMedia"},{id:"-1230047312",predicate:"messageActionEmpty",params:[],type:"MessageAction"},{id:"-1503425638",predicate:"messageActionChatCreate",params:[{name:"title",type:"string"},{name:"users",type:"Vector<int>"}],type:"MessageAction"},{id:"-1247687078",predicate:"messageActionChatEditTitle",params:[{name:"title",type:"string"}],type:"MessageAction"},{id:"2144015272",predicate:"messageActionChatEditPhoto",params:[{name:"photo",type:"Photo"}],type:"MessageAction"},{id:"-1780220945",predicate:"messageActionChatDeletePhoto",params:[],type:"MessageAction"},{id:"1217033015",predicate:"messageActionChatAddUser",params:[{name:"users",type:"Vector<int>"}],type:"MessageAction"},{id:"-1297179892",predicate:"messageActionChatDeleteUser",params:[{name:"user_id",type:"int"}],type:"MessageAction"},{id:"1728035348",predicate:"dialog",params:[{name:"flags",type:"#"},{name:"pinned",type:"flags.2?true"},{name:"peer",type:"Peer"},{name:"top_message",type:"int"},{name:"read_inbox_max_id",type:"int"},{name:"read_outbox_max_id",type:"int"},{name:"unread_count",type:"int"},{name:"notify_settings",type:"PeerNotifySettings"},{name:"pts",type:"flags.0?int"},{name:"draft",type:"flags.1?DraftMessage"}],type:"Dialog"},{id:"590459437",predicate:"photoEmpty",params:[{name:"id",type:"long"}],type:"Photo"},{id:"-1836524247",predicate:"photo",params:[{name:"flags",type:"#"},{name:"has_stickers",type:"flags.0?true"},{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"sizes",type:"Vector<PhotoSize>"}],type:"Photo"},{id:"236446268",predicate:"photoSizeEmpty",params:[{name:"type",type:"string"}],type:"PhotoSize"},{id:"2009052699",predicate:"photoSize",params:[{name:"type",type:"string"},{name:"location",type:"FileLocation"},{name:"w",type:"int"},{name:"h",type:"int"},{name:"size",type:"int"}],type:"PhotoSize"},{id:"-374917894",predicate:"photoCachedSize",params:[{name:"type",type:"string"},{name:"location",type:"FileLocation"},{name:"w",type:"int"},{name:"h",type:"int"},{name:"bytes",type:"bytes"}],type:"PhotoSize"},{id:"286776671",predicate:"geoPointEmpty",params:[],type:"GeoPoint"},{id:"541710092",predicate:"geoPoint",params:[{name:"long",type:"double"},{name:"lat",type:"double"}],type:"GeoPoint"},{id:"-2128698738",predicate:"auth.checkedPhone",params:[{name:"phone_registered",type:"Bool"}],type:"auth.CheckedPhone"},{id:"1577067778",predicate:"auth.sentCode",params:[{name:"flags",type:"#"},{name:"phone_registered",type:"flags.0?true"},{name:"type",type:"auth.SentCodeType"},{name:"phone_code_hash",type:"string"},{name:"next_type",type:"flags.1?auth.CodeType"},{name:"timeout",type:"flags.2?int"}],type:"auth.SentCode"},{id:"-855308010",predicate:"auth.authorization",params:[{name:"flags",type:"#"},{name:"tmp_sessions",type:"flags.0?int"},{name:"user",type:"User"}],type:"auth.Authorization"},{id:"-543777747",predicate:"auth.exportedAuthorization",params:[{name:"id",type:"int"},{name:"bytes",type:"bytes"}],type:"auth.ExportedAuthorization"},{id:"-1195615476",predicate:"inputNotifyPeer",params:[{name:"peer",type:"InputPeer"}],type:"InputNotifyPeer"},{id:"423314455",predicate:"inputNotifyUsers",params:[],type:"InputNotifyPeer"},{id:"1251338318",predicate:"inputNotifyChats",params:[],type:"InputNotifyPeer"},{id:"-1540769658",predicate:"inputNotifyAll",params:[],type:"InputNotifyPeer"},{id:"-265263912",predicate:"inputPeerNotifyEventsEmpty",params:[],type:"InputPeerNotifyEvents"},{id:"-395694988",predicate:"inputPeerNotifyEventsAll",params:[],type:"InputPeerNotifyEvents"},{id:"949182130",predicate:"inputPeerNotifySettings",params:[{name:"flags",type:"#"},{name:"show_previews",type:"flags.0?true"},{name:"silent",type:"flags.1?true"},{name:"mute_until",type:"int"},{name:"sound",type:"string"}],type:"InputPeerNotifySettings"},{id:"-1378534221",predicate:"peerNotifyEventsEmpty",params:[],type:"PeerNotifyEvents"},{id:"1830677896",predicate:"peerNotifyEventsAll",params:[],type:"PeerNotifyEvents"},{id:"1889961234",predicate:"peerNotifySettingsEmpty",params:[],type:"PeerNotifySettings"},{id:"-1697798976",predicate:"peerNotifySettings",params:[{name:"flags",type:"#"},{name:"show_previews",type:"flags.0?true"},{name:"silent",type:"flags.1?true"},{name:"mute_until",type:"int"},{name:"sound",type:"string"}],type:"PeerNotifySettings"},{id:"-2122045747",predicate:"peerSettings",params:[{name:"flags",type:"#"},{name:"report_spam",type:"flags.0?true"}],type:"PeerSettings"},{id:"-860866985",predicate:"wallPaper",params:[{name:"id",type:"int"},{name:"title",type:"string"},{name:"sizes",type:"Vector<PhotoSize>"},{name:"color",type:"int"}],type:"WallPaper"},{id:"1490799288",predicate:"inputReportReasonSpam",params:[],type:"ReportReason"},{id:"505595789",predicate:"inputReportReasonViolence",params:[],type:"ReportReason"},{id:"777640226",predicate:"inputReportReasonPornography",params:[],type:"ReportReason"},{id:"-512463606",predicate:"inputReportReasonOther",params:[{name:"text",type:"string"}],type:"ReportReason"},{id:"253890367",predicate:"userFull",params:[{name:"flags",type:"#"},{name:"blocked",type:"flags.0?true"},{name:"phone_calls_available",type:"flags.4?true"},{name:"phone_calls_private",type:"flags.5?true"},{name:"user",type:"User"},{name:"about",type:"flags.1?string"},{name:"link",type:"contacts.Link"},{name:"profile_photo",type:"flags.2?Photo"},{name:"notify_settings",type:"PeerNotifySettings"},{name:"bot_info",type:"flags.3?BotInfo"},{name:"common_chats_count",type:"int"}],type:"UserFull"},{id:"-116274796",predicate:"contact",params:[{name:"user_id",type:"int"},{name:"mutual",type:"Bool"}],type:"Contact"},{id:"-805141448",predicate:"importedContact",params:[{name:"user_id",type:"int"},{name:"client_id",type:"long"}],type:"ImportedContact"},{id:"1444661369",predicate:"contactBlocked",params:[{name:"user_id",type:"int"},{name:"date",type:"int"}],type:"ContactBlocked"},{id:"-748155807",predicate:"contactStatus",params:[{name:"user_id",type:"int"},{name:"status",type:"UserStatus"}],type:"ContactStatus"},{id:"986597452",predicate:"contacts.link",params:[{name:"my_link",type:"ContactLink"},{name:"foreign_link",type:"ContactLink"},{name:"user",type:"User"}],type:"contacts.Link"},{id:"-1219778094",predicate:"contacts.contactsNotModified",params:[],type:"contacts.Contacts"},{id:"1871416498",predicate:"contacts.contacts",params:[{name:"contacts",type:"Vector<Contact>"},{name:"users",type:"Vector<User>"}],type:"contacts.Contacts"},{id:"-1387117803",predicate:"contacts.importedContacts",params:[{name:"imported",type:"Vector<ImportedContact>"},{name:"retry_contacts",type:"Vector<long>"},{name:"users",type:"Vector<User>"}],type:"contacts.ImportedContacts"},{id:"471043349",predicate:"contacts.blocked",params:[{name:"blocked",type:"Vector<ContactBlocked>"},{name:"users",type:"Vector<User>"}],type:"contacts.Blocked"},{id:"-1878523231",predicate:"contacts.blockedSlice",params:[{name:"count",type:"int"},{name:"blocked",type:"Vector<ContactBlocked>"},{name:"users",type:"Vector<User>"}],type:"contacts.Blocked"},{id:"364538944",predicate:"messages.dialogs",params:[{name:"dialogs",type:"Vector<Dialog>"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Dialogs"},{id:"1910543603",predicate:"messages.dialogsSlice",params:[{name:"count",type:"int"},{name:"dialogs",type:"Vector<Dialog>"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Dialogs"},{id:"-1938715001",predicate:"messages.messages",params:[{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Messages"},{id:"189033187",predicate:"messages.messagesSlice",params:[{name:"count",type:"int"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Messages"},{id:"1694474197",predicate:"messages.chats",params:[{name:"chats",type:"Vector<Chat>"}],type:"messages.Chats"},{id:"-438840932",predicate:"messages.chatFull",params:[{name:"full_chat",type:"ChatFull"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.ChatFull"},{id:"-1269012015",predicate:"messages.affectedHistory",params:[{name:"pts",type:"int"},{name:"pts_count",type:"int"},{name:"offset",type:"int"}],type:"messages.AffectedHistory"},{id:"1474492012",predicate:"inputMessagesFilterEmpty",params:[],type:"MessagesFilter"},{id:"-1777752804",predicate:"inputMessagesFilterPhotos",params:[],type:"MessagesFilter"},{id:"-1614803355",predicate:"inputMessagesFilterVideo",params:[],type:"MessagesFilter"},{id:"1458172132",predicate:"inputMessagesFilterPhotoVideo",params:[],type:"MessagesFilter"},{id:"-648121413",predicate:"inputMessagesFilterPhotoVideoDocuments",params:[],type:"MessagesFilter"},{id:"-1629621880",predicate:"inputMessagesFilterDocument",params:[],type:"MessagesFilter"},{id:"2129714567",predicate:"inputMessagesFilterUrl",params:[],type:"MessagesFilter"},{id:"-3644025",predicate:"inputMessagesFilterGif",params:[],type:"MessagesFilter"},{id:"522914557",predicate:"updateNewMessage",params:[{name:"message",type:"Message"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"1318109142",predicate:"updateMessageID",params:[{name:"id",type:"int"},{name:"random_id",type:"long"}],type:"Update"},{id:"-1576161051",predicate:"updateDeleteMessages",params:[{name:"messages",type:"Vector<int>"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"1548249383",predicate:"updateUserTyping",params:[{name:"user_id",type:"int"},{name:"action",type:"SendMessageAction"}],type:"Update"},{id:"-1704596961",predicate:"updateChatUserTyping",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"int"},{name:"action",type:"SendMessageAction"}],type:"Update"},{id:"125178264",predicate:"updateChatParticipants",params:[{name:"participants",type:"ChatParticipants"}],type:"Update"},{id:"469489699",predicate:"updateUserStatus",params:[{name:"user_id",type:"int"},{name:"status",type:"UserStatus"}],type:"Update"},{id:"-1489818765",predicate:"updateUserName",params:[{name:"user_id",type:"int"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"username",type:"string"}],type:"Update"},{id:"-1791935732",predicate:"updateUserPhoto",params:[{name:"user_id",type:"int"},{name:"date",type:"int"},{name:"photo",type:"UserProfilePhoto"},{name:"previous",type:"Bool"}],type:"Update"},{id:"628472761",predicate:"updateContactRegistered",params:[{name:"user_id",type:"int"},{name:"date",type:"int"}],type:"Update"},{id:"-1657903163",predicate:"updateContactLink",params:[{name:"user_id",type:"int"},{name:"my_link",type:"ContactLink"},{name:"foreign_link",type:"ContactLink"}],type:"Update"},{id:"-1519637954",predicate:"updates.state",params:[{name:"pts",type:"int"},{name:"qts",type:"int"},{name:"date",type:"int"},{name:"seq",type:"int"},{name:"unread_count",type:"int"}],type:"updates.State"},{id:"1567990072",predicate:"updates.differenceEmpty",params:[{name:"date",type:"int"},{name:"seq",type:"int"}],type:"updates.Difference"},{id:"16030880",predicate:"updates.difference",params:[{name:"new_messages",type:"Vector<Message>"},{name:"new_encrypted_messages",type:"Vector<EncryptedMessage>"},{name:"other_updates",type:"Vector<Update>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"state",type:"updates.State"}],type:"updates.Difference"},{id:"-1459938943",predicate:"updates.differenceSlice",params:[{name:"new_messages",type:"Vector<Message>"},{name:"new_encrypted_messages",type:"Vector<EncryptedMessage>"},{name:"other_updates",type:"Vector<Update>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"intermediate_state",type:"updates.State"}],type:"updates.Difference"},{id:"-484987010",predicate:"updatesTooLong",params:[],type:"Updates"},{id:"-1857044719",predicate:"updateShortMessage",params:[{name:"flags",type:"#"},{name:"out",type:"flags.1?true"},{name:"mentioned",type:"flags.4?true"},{name:"media_unread",type:"flags.5?true"},{name:"silent",type:"flags.13?true"},{name:"id",type:"int"},{name:"user_id",type:"int"},{name:"message",type:"string"},{name:"pts",type:"int"},{name:"pts_count",type:"int"},{name:"date",type:"int"},{name:"fwd_from",type:"flags.2?MessageFwdHeader"},{name:"via_bot_id",type:"flags.11?int"},{name:"reply_to_msg_id",type:"flags.3?int"},{name:"entities",type:"flags.7?Vector<MessageEntity>"}],type:"Updates"},{id:"377562760",predicate:"updateShortChatMessage",params:[{name:"flags",type:"#"},{name:"out",type:"flags.1?true"},{name:"mentioned",type:"flags.4?true"},{name:"media_unread",type:"flags.5?true"},{name:"silent",type:"flags.13?true"},{name:"id",type:"int"},{name:"from_id",type:"int"},{name:"chat_id",type:"int"},{name:"message",type:"string"},{name:"pts",type:"int"},{name:"pts_count",type:"int"},{name:"date",type:"int"},{name:"fwd_from",type:"flags.2?MessageFwdHeader"},{name:"via_bot_id",type:"flags.11?int"},{name:"reply_to_msg_id",type:"flags.3?int"},{name:"entities",type:"flags.7?Vector<MessageEntity>"}],type:"Updates"},{id:"2027216577",predicate:"updateShort",params:[{name:"update",type:"Update"},{name:"date",type:"int"}],type:"Updates"},{id:"1918567619",predicate:"updatesCombined",params:[{name:"updates",type:"Vector<Update>"},{name:"users",type:"Vector<User>"},{name:"chats",type:"Vector<Chat>"},{name:"date",type:"int"},{name:"seq_start",type:"int"},{name:"seq",type:"int"}],type:"Updates"},{id:"1957577280",predicate:"updates",params:[{name:"updates",type:"Vector<Update>"},{name:"users",type:"Vector<User>"},{name:"chats",type:"Vector<Chat>"},{name:"date",type:"int"},{name:"seq",type:"int"}],type:"Updates"},{id:"-1916114267",predicate:"photos.photos",params:[{name:"photos",type:"Vector<Photo>"},{name:"users",type:"Vector<User>"}],type:"photos.Photos"},{id:"352657236",predicate:"photos.photosSlice",params:[{name:"count",type:"int"},{name:"photos",type:"Vector<Photo>"},{name:"users",type:"Vector<User>"}],type:"photos.Photos"},{id:"539045032",predicate:"photos.photo",params:[{name:"photo",type:"Photo"},{name:"users",type:"Vector<User>"}],type:"photos.Photo"},{id:"157948117",predicate:"upload.file",params:[{name:"type",type:"storage.FileType"},{name:"mtime",type:"int"},{name:"bytes",type:"bytes"}],type:"upload.File"},{id:"98092748",predicate:"dcOption",params:[{name:"flags",type:"#"},{name:"ipv6",type:"flags.0?true"},{name:"media_only",type:"flags.1?true"},{name:"tcpo_only",type:"flags.2?true"},{name:"cdn",type:"flags.3?true"},{name:"id",type:"int"},{name:"ip_address",type:"string"},{name:"port",type:"int"}],type:"DcOption"},{id:"-882895228",predicate:"config",params:[{name:"flags",type:"#"},{name:"phonecalls_enabled",type:"flags.1?true"},{name:"date",type:"int"},{name:"expires",type:"int"},{name:"test_mode",type:"Bool"},{name:"this_dc",type:"int"},{name:"dc_options",type:"Vector<DcOption>"},{name:"chat_size_max",type:"int"},{name:"megagroup_size_max",type:"int"},{name:"forwarded_count_max",type:"int"},{name:"online_update_period_ms",type:"int"},{name:"offline_blur_timeout_ms",type:"int"},{name:"offline_idle_timeout_ms",type:"int"},{name:"online_cloud_timeout_ms",type:"int"},{name:"notify_cloud_delay_ms",type:"int"},{name:"notify_default_delay_ms",type:"int"},{name:"chat_big_size",type:"int"},{name:"push_chat_period_ms",type:"int"},{name:"push_chat_limit",type:"int"},{name:"saved_gifs_limit",type:"int"},{name:"edit_time_limit",type:"int"},{name:"rating_e_decay",type:"int"},{name:"stickers_recent_limit",type:"int"},{name:"tmp_sessions",type:"flags.0?int"},{name:"pinned_dialogs_count_max",type:"int"},{name:"call_receive_timeout_ms",type:"int"},{name:"call_ring_timeout_ms",type:"int"},{name:"call_connect_timeout_ms",type:"int"},{name:"call_packet_timeout_ms",type:"int"},{name:"me_url_prefix",type:"string"},{name:"disabled_features",type:"Vector<DisabledFeature>"}],type:"Config"},{id:"-1910892683",predicate:"nearestDc",params:[{name:"country",type:"string"},{name:"this_dc",type:"int"},{name:"nearest_dc",type:"int"}],type:"NearestDc"},{id:"-1987579119",predicate:"help.appUpdate",params:[{name:"id",type:"int"},{name:"critical",type:"Bool"},{name:"url",type:"string"},{name:"text",type:"string"}],type:"help.AppUpdate"},{id:"-1000708810",predicate:"help.noAppUpdate",params:[],type:"help.AppUpdate"},{id:"415997816",predicate:"help.inviteText",params:[{name:"message",type:"string"}],type:"help.InviteText"},{id:"1662091044",predicate:"wallPaperSolid",params:[{name:"id",type:"int"},{name:"title",type:"string"},{name:"bg_color",type:"int"},{name:"color",type:"int"}],type:"WallPaper"},{id:"314359194",predicate:"updateNewEncryptedMessage",params:[{name:"message",type:"EncryptedMessage"},{name:"qts",type:"int"}],type:"Update"},{id:"386986326",predicate:"updateEncryptedChatTyping",params:[{name:"chat_id",type:"int"}],type:"Update"},{id:"-1264392051",predicate:"updateEncryption",params:[{name:"chat",type:"EncryptedChat"},{name:"date",type:"int"}],type:"Update"},{id:"956179895",predicate:"updateEncryptedMessagesRead",params:[{name:"chat_id",type:"int"},{name:"max_date",type:"int"},{name:"date",type:"int"}],type:"Update"},{id:"-1417756512",predicate:"encryptedChatEmpty",params:[{name:"id",type:"int"}],type:"EncryptedChat"},{id:"1006044124",predicate:"encryptedChatWaiting",params:[{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"}],type:"EncryptedChat"},{id:"-931638658",predicate:"encryptedChatRequested",params:[{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"g_a",type:"bytes"}],type:"EncryptedChat"},{id:"-94974410",predicate:"encryptedChat",params:[{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"g_a_or_b",type:"bytes"},{name:"key_fingerprint",type:"long"}],type:"EncryptedChat"},{id:"332848423",predicate:"encryptedChatDiscarded",params:[{name:"id",type:"int"}],type:"EncryptedChat"},{id:"-247351839",predicate:"inputEncryptedChat",params:[{name:"chat_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputEncryptedChat"},{id:"-1038136962",predicate:"encryptedFileEmpty",params:[],type:"EncryptedFile"},{id:"1248893260",predicate:"encryptedFile",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"size",type:"int"},{name:"dc_id",type:"int"},{name:"key_fingerprint",type:"int"}],type:"EncryptedFile"},{id:"406307684",predicate:"inputEncryptedFileEmpty",params:[],type:"InputEncryptedFile"},{id:"1690108678",predicate:"inputEncryptedFileUploaded",params:[{name:"id",type:"long"},{name:"parts",type:"int"},{name:"md5_checksum",type:"string"},{name:"key_fingerprint",type:"int"}],type:"InputEncryptedFile"},{id:"1511503333",predicate:"inputEncryptedFile",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputEncryptedFile"},{id:"-182231723",predicate:"inputEncryptedFileLocation",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputFileLocation"},{id:"-317144808",predicate:"encryptedMessage",params:[{name:"random_id",type:"long"},{name:"chat_id",type:"int"},{name:"date",type:"int"},{name:"bytes",type:"bytes"},{name:"file",type:"EncryptedFile"}],type:"EncryptedMessage"},{id:"594758406",predicate:"encryptedMessageService",params:[{name:"random_id",type:"long"},{name:"chat_id",type:"int"},{name:"date",type:"int"},{name:"bytes",type:"bytes"}],type:"EncryptedMessage"},{id:"-1058912715",predicate:"messages.dhConfigNotModified",params:[{name:"random",type:"bytes"}],type:"messages.DhConfig"},{id:"740433629",predicate:"messages.dhConfig",params:[{name:"g",type:"int"},{name:"p",type:"bytes"},{name:"version",type:"int"},{name:"random",type:"bytes"}],type:"messages.DhConfig"},{id:"1443858741",predicate:"messages.sentEncryptedMessage",params:[{name:"date",type:"int"}],type:"messages.SentEncryptedMessage"},{id:"-1802240206",predicate:"messages.sentEncryptedFile",params:[{name:"date",type:"int"},{name:"file",type:"EncryptedFile"}],type:"messages.SentEncryptedMessage"},{id:"-95482955",predicate:"inputFileBig",params:[{name:"id",type:"long"},{name:"parts",type:"int"},{name:"name",type:"string"}],type:"InputFile"},{id:"767652808",predicate:"inputEncryptedFileBigUploaded",params:[{name:"id",type:"long"},{name:"parts",type:"int"},{name:"key_fingerprint",type:"int"}],type:"InputEncryptedFile"},{id:"-364179876",predicate:"updateChatParticipantAdd",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"},{name:"version",type:"int"}],type:"Update"},{id:"1851755554",predicate:"updateChatParticipantDelete",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"int"},{name:"version",type:"int"}],type:"Update"},{id:"-1906403213",predicate:"updateDcOptions",params:[{name:"dc_options",type:"Vector<DcOption>"}],type:"Update"},{id:"-797904407",predicate:"inputMediaUploadedDocument",params:[{name:"flags",type:"#"},{name:"file",type:"InputFile"},{name:"mime_type",type:"string"},{name:"attributes",type:"Vector<DocumentAttribute>"},{name:"caption",type:"string"},{name:"stickers",type:"flags.0?Vector<InputDocument>"}],type:"InputMedia"},{id:"1356369070",predicate:"inputMediaUploadedThumbDocument",params:[{name:"flags",type:"#"},{name:"file",type:"InputFile"},{name:"thumb",type:"InputFile"},{name:"mime_type",type:"string"},{name:"attributes",type:"Vector<DocumentAttribute>"},{name:"caption",type:"string"},{name:"stickers",type:"flags.0?Vector<InputDocument>"}],type:"InputMedia"},{id:"444068508",predicate:"inputMediaDocument",params:[{name:"id",type:"InputDocument"},{name:"caption",type:"string"}],type:"InputMedia"},{id:"-203411800",predicate:"messageMediaDocument",params:[{name:"document",type:"Document"},{name:"caption",type:"string"}],type:"MessageMedia"},{id:"1928391342",predicate:"inputDocumentEmpty",params:[],type:"InputDocument"},{id:"410618194",predicate:"inputDocument",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputDocument"},{id:"1125058340",predicate:"inputDocumentFileLocation",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"version",type:"int"}],type:"InputFileLocation"},{id:"922273905",predicate:"documentEmpty",params:[{name:"id",type:"long"}],type:"Document"},{id:"-2027738169",predicate:"document",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"mime_type",type:"string"},{name:"size",type:"int"},{name:"thumb",type:"PhotoSize"},{name:"dc_id",type:"int"},{name:"version",type:"int"},{name:"attributes",type:"Vector<DocumentAttribute>"}],type:"Document"},{id:"398898678",predicate:"help.support",params:[{name:"phone_number",type:"string"},{name:"user",type:"User"}],type:"help.Support"},{id:"-1613493288",predicate:"notifyPeer",params:[{name:"peer",type:"Peer"}],type:"NotifyPeer"},{id:"-1261946036",predicate:"notifyUsers",params:[],type:"NotifyPeer"},{id:"-1073230141",predicate:"notifyChats",params:[],type:"NotifyPeer"},{id:"1959820384",predicate:"notifyAll",params:[],type:"NotifyPeer"},{
id:"-2131957734",predicate:"updateUserBlocked",params:[{name:"user_id",type:"int"},{name:"blocked",type:"Bool"}],type:"Update"},{id:"-1094555409",predicate:"updateNotifySettings",params:[{name:"peer",type:"NotifyPeer"},{name:"notify_settings",type:"PeerNotifySettings"}],type:"Update"},{id:"381645902",predicate:"sendMessageTypingAction",params:[],type:"SendMessageAction"},{id:"-44119819",predicate:"sendMessageCancelAction",params:[],type:"SendMessageAction"},{id:"-1584933265",predicate:"sendMessageRecordVideoAction",params:[],type:"SendMessageAction"},{id:"-378127636",predicate:"sendMessageUploadVideoAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"-718310409",predicate:"sendMessageRecordAudioAction",params:[],type:"SendMessageAction"},{id:"-212740181",predicate:"sendMessageUploadAudioAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"-774682074",predicate:"sendMessageUploadPhotoAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"-1441998364",predicate:"sendMessageUploadDocumentAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"393186209",predicate:"sendMessageGeoLocationAction",params:[],type:"SendMessageAction"},{id:"1653390447",predicate:"sendMessageChooseContactAction",params:[],type:"SendMessageAction"},{id:"446822276",predicate:"contacts.found",params:[{name:"results",type:"Vector<Peer>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"contacts.Found"},{id:"-337352679",predicate:"updateServiceNotification",params:[{name:"flags",type:"#"},{name:"popup",type:"flags.0?true"},{name:"inbox_date",type:"flags.1?int"},{name:"type",type:"string"},{name:"message",type:"string"},{name:"media",type:"MessageMedia"},{name:"entities",type:"Vector<MessageEntity>"}],type:"Update"},{id:"-496024847",predicate:"userStatusRecently",params:[],type:"UserStatus"},{id:"129960444",predicate:"userStatusLastWeek",params:[],type:"UserStatus"},{id:"2011940674",predicate:"userStatusLastMonth",params:[],type:"UserStatus"},{id:"-298113238",predicate:"updatePrivacy",params:[{name:"key",type:"PrivacyKey"},{name:"rules",type:"Vector<PrivacyRule>"}],type:"Update"},{id:"1335282456",predicate:"inputPrivacyKeyStatusTimestamp",params:[],type:"InputPrivacyKey"},{id:"-1137792208",predicate:"privacyKeyStatusTimestamp",params:[],type:"PrivacyKey"},{id:"218751099",predicate:"inputPrivacyValueAllowContacts",params:[],type:"InputPrivacyRule"},{id:"407582158",predicate:"inputPrivacyValueAllowAll",params:[],type:"InputPrivacyRule"},{id:"320652927",predicate:"inputPrivacyValueAllowUsers",params:[{name:"users",type:"Vector<InputUser>"}],type:"InputPrivacyRule"},{id:"195371015",predicate:"inputPrivacyValueDisallowContacts",params:[],type:"InputPrivacyRule"},{id:"-697604407",predicate:"inputPrivacyValueDisallowAll",params:[],type:"InputPrivacyRule"},{id:"-1877932953",predicate:"inputPrivacyValueDisallowUsers",params:[{name:"users",type:"Vector<InputUser>"}],type:"InputPrivacyRule"},{id:"-123988",predicate:"privacyValueAllowContacts",params:[],type:"PrivacyRule"},{id:"1698855810",predicate:"privacyValueAllowAll",params:[],type:"PrivacyRule"},{id:"1297858060",predicate:"privacyValueAllowUsers",params:[{name:"users",type:"Vector<int>"}],type:"PrivacyRule"},{id:"-125240806",predicate:"privacyValueDisallowContacts",params:[],type:"PrivacyRule"},{id:"-1955338397",predicate:"privacyValueDisallowAll",params:[],type:"PrivacyRule"},{id:"209668535",predicate:"privacyValueDisallowUsers",params:[{name:"users",type:"Vector<int>"}],type:"PrivacyRule"},{id:"1430961007",predicate:"account.privacyRules",params:[{name:"rules",type:"Vector<PrivacyRule>"},{name:"users",type:"Vector<User>"}],type:"account.PrivacyRules"},{id:"-1194283041",predicate:"accountDaysTTL",params:[{name:"days",type:"int"}],type:"AccountDaysTTL"},{id:"314130811",predicate:"updateUserPhone",params:[{name:"user_id",type:"int"},{name:"phone",type:"string"}],type:"Update"},{id:"1815593308",predicate:"documentAttributeImageSize",params:[{name:"w",type:"int"},{name:"h",type:"int"}],type:"DocumentAttribute"},{id:"297109817",predicate:"documentAttributeAnimated",params:[],type:"DocumentAttribute"},{id:"1662637586",predicate:"documentAttributeSticker",params:[{name:"flags",type:"#"},{name:"mask",type:"flags.1?true"},{name:"alt",type:"string"},{name:"stickerset",type:"InputStickerSet"},{name:"mask_coords",type:"flags.0?MaskCoords"}],type:"DocumentAttribute"},{id:"250621158",predicate:"documentAttributeVideo",params:[{name:"flags",type:"#"},{name:"round_message",type:"flags.0?true"},{name:"duration",type:"int"},{name:"w",type:"int"},{name:"h",type:"int"}],type:"DocumentAttribute"},{id:"-1739392570",predicate:"documentAttributeAudio",params:[{name:"flags",type:"#"},{name:"voice",type:"flags.10?true"},{name:"duration",type:"int"},{name:"title",type:"flags.0?string"},{name:"performer",type:"flags.1?string"},{name:"waveform",type:"flags.2?bytes"}],type:"DocumentAttribute"},{id:"358154344",predicate:"documentAttributeFilename",params:[{name:"file_name",type:"string"}],type:"DocumentAttribute"},{id:"-244016606",predicate:"messages.stickersNotModified",params:[],type:"messages.Stickers"},{id:"-1970352846",predicate:"messages.stickers",params:[{name:"hash",type:"string"},{name:"stickers",type:"Vector<Document>"}],type:"messages.Stickers"},{id:"313694676",predicate:"stickerPack",params:[{name:"emoticon",type:"string"},{name:"documents",type:"Vector<long>"}],type:"StickerPack"},{id:"-395967805",predicate:"messages.allStickersNotModified",params:[],type:"messages.AllStickers"},{id:"-302170017",predicate:"messages.allStickers",params:[{name:"hash",type:"int"},{name:"sets",type:"Vector<StickerSet>"}],type:"messages.AllStickers"},{id:"-1369215196",predicate:"disabledFeature",params:[{name:"feature",type:"string"},{name:"description",type:"string"}],type:"DisabledFeature"},{id:"-1721631396",predicate:"updateReadHistoryInbox",params:[{name:"peer",type:"Peer"},{name:"max_id",type:"int"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"791617983",predicate:"updateReadHistoryOutbox",params:[{name:"peer",type:"Peer"},{name:"max_id",type:"int"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-2066640507",predicate:"messages.affectedMessages",params:[{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"messages.AffectedMessages"},{id:"1599050311",predicate:"contactLinkUnknown",params:[],type:"ContactLink"},{id:"-17968211",predicate:"contactLinkNone",params:[],type:"ContactLink"},{id:"646922073",predicate:"contactLinkHasPhone",params:[],type:"ContactLink"},{id:"-721239344",predicate:"contactLinkContact",params:[],type:"ContactLink"},{id:"2139689491",predicate:"updateWebPage",params:[{name:"webpage",type:"WebPage"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-350980120",predicate:"webPageEmpty",params:[{name:"id",type:"long"}],type:"WebPage"},{id:"-981018084",predicate:"webPagePending",params:[{name:"id",type:"long"},{name:"date",type:"int"}],type:"WebPage"},{id:"1594340540",predicate:"webPage",params:[{name:"flags",type:"#"},{name:"id",type:"long"},{name:"url",type:"string"},{name:"display_url",type:"string"},{name:"hash",type:"int"},{name:"type",type:"flags.0?string"},{name:"site_name",type:"flags.1?string"},{name:"title",type:"flags.2?string"},{name:"description",type:"flags.3?string"},{name:"photo",type:"flags.4?Photo"},{name:"embed_url",type:"flags.5?string"},{name:"embed_type",type:"flags.5?string"},{name:"embed_width",type:"flags.6?int"},{name:"embed_height",type:"flags.6?int"},{name:"duration",type:"flags.7?int"},{name:"author",type:"flags.8?string"},{name:"document",type:"flags.9?Document"},{name:"cached_page",type:"flags.10?Page"}],type:"WebPage"},{id:"-1557277184",predicate:"messageMediaWebPage",params:[{name:"webpage",type:"WebPage"}],type:"MessageMedia"},{id:"2079516406",predicate:"authorization",params:[{name:"hash",type:"long"},{name:"flags",type:"int"},{name:"device_model",type:"string"},{name:"platform",type:"string"},{name:"system_version",type:"string"},{name:"api_id",type:"int"},{name:"app_name",type:"string"},{name:"app_version",type:"string"},{name:"date_created",type:"int"},{name:"date_active",type:"int"},{name:"ip",type:"string"},{name:"country",type:"string"},{name:"region",type:"string"}],type:"Authorization"},{id:"307276766",predicate:"account.authorizations",params:[{name:"authorizations",type:"Vector<Authorization>"}],type:"account.Authorizations"},{id:"-1764049896",predicate:"account.noPassword",params:[{name:"new_salt",type:"bytes"},{name:"email_unconfirmed_pattern",type:"string"}],type:"account.Password"},{id:"2081952796",predicate:"account.password",params:[{name:"current_salt",type:"bytes"},{name:"new_salt",type:"bytes"},{name:"hint",type:"string"},{name:"has_recovery",type:"Bool"},{name:"email_unconfirmed_pattern",type:"string"}],type:"account.Password"},{id:"-1212732749",predicate:"account.passwordSettings",params:[{name:"email",type:"string"}],type:"account.PasswordSettings"},{id:"-2037289493",predicate:"account.passwordInputSettings",params:[{name:"flags",type:"#"},{name:"new_salt",type:"flags.0?bytes"},{name:"new_password_hash",type:"flags.0?bytes"},{name:"hint",type:"flags.0?string"},{name:"email",type:"flags.1?string"}],type:"account.PasswordInputSettings"},{id:"326715557",predicate:"auth.passwordRecovery",params:[{name:"email_pattern",type:"string"}],type:"auth.PasswordRecovery"},{id:"673687578",predicate:"inputMediaVenue",params:[{name:"geo_point",type:"InputGeoPoint"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"provider",type:"string"},{name:"venue_id",type:"string"}],type:"InputMedia"},{id:"2031269663",predicate:"messageMediaVenue",params:[{name:"geo",type:"GeoPoint"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"provider",type:"string"},{name:"venue_id",type:"string"}],type:"MessageMedia"},{id:"-1551583367",predicate:"receivedNotifyMessage",params:[{name:"id",type:"int"},{name:"flags",type:"int"}],type:"ReceivedNotifyMessage"},{id:"1776236393",predicate:"chatInviteEmpty",params:[],type:"ExportedChatInvite"},{id:"-64092740",predicate:"chatInviteExported",params:[{name:"link",type:"string"}],type:"ExportedChatInvite"},{id:"1516793212",predicate:"chatInviteAlready",params:[{name:"chat",type:"Chat"}],type:"ChatInvite"},{id:"-613092008",predicate:"chatInvite",params:[{name:"flags",type:"#"},{name:"channel",type:"flags.0?true"},{name:"broadcast",type:"flags.1?true"},{name:"public",type:"flags.2?true"},{name:"megagroup",type:"flags.3?true"},{name:"title",type:"string"},{name:"photo",type:"ChatPhoto"},{name:"participants_count",type:"int"},{name:"participants",type:"flags.4?Vector<User>"}],type:"ChatInvite"},{id:"-123931160",predicate:"messageActionChatJoinedByLink",params:[{name:"inviter_id",type:"int"}],type:"MessageAction"},{id:"1757493555",predicate:"updateReadMessagesContents",params:[{name:"messages",type:"Vector<int>"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-4838507",predicate:"inputStickerSetEmpty",params:[],type:"InputStickerSet"},{id:"-1645763991",predicate:"inputStickerSetID",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputStickerSet"},{id:"-2044933984",predicate:"inputStickerSetShortName",params:[{name:"short_name",type:"string"}],type:"InputStickerSet"},{id:"-852477119",predicate:"stickerSet",params:[{name:"flags",type:"#"},{name:"installed",type:"flags.0?true"},{name:"archived",type:"flags.1?true"},{name:"official",type:"flags.2?true"},{name:"masks",type:"flags.3?true"},{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"title",type:"string"},{name:"short_name",type:"string"},{name:"count",type:"int"},{name:"hash",type:"int"}],type:"StickerSet"},{id:"-1240849242",predicate:"messages.stickerSet",params:[{name:"set",type:"StickerSet"},{name:"packs",type:"Vector<StickerPack>"},{name:"documents",type:"Vector<Document>"}],type:"messages.StickerSet"},{id:"773059779",predicate:"user",params:[{name:"flags",type:"#"},{name:"self",type:"flags.10?true"},{name:"contact",type:"flags.11?true"},{name:"mutual_contact",type:"flags.12?true"},{name:"deleted",type:"flags.13?true"},{name:"bot",type:"flags.14?true"},{name:"bot_chat_history",type:"flags.15?true"},{name:"bot_nochats",type:"flags.16?true"},{name:"verified",type:"flags.17?true"},{name:"restricted",type:"flags.18?true"},{name:"min",type:"flags.20?true"},{name:"bot_inline_geo",type:"flags.21?true"},{name:"id",type:"int"},{name:"access_hash",type:"flags.0?long"},{name:"first_name",type:"flags.1?string"},{name:"last_name",type:"flags.2?string"},{name:"username",type:"flags.3?string"},{name:"phone",type:"flags.4?string"},{name:"photo",type:"flags.5?UserProfilePhoto"},{name:"status",type:"flags.6?UserStatus"},{name:"bot_info_version",type:"flags.14?int"},{name:"restriction_reason",type:"flags.18?string"},{name:"bot_inline_placeholder",type:"flags.19?string"},{name:"lang_code",type:"flags.22?string"}],type:"User"},{id:"-1032140601",predicate:"botCommand",params:[{name:"command",type:"string"},{name:"description",type:"string"}],type:"BotCommand"},{id:"-1729618630",predicate:"botInfo",params:[{name:"user_id",type:"int"},{name:"description",type:"string"},{name:"commands",type:"Vector<BotCommand>"}],type:"BotInfo"},{id:"-1560655744",predicate:"keyboardButton",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"2002815875",predicate:"keyboardButtonRow",params:[{name:"buttons",type:"Vector<KeyboardButton>"}],type:"KeyboardButtonRow"},{id:"-1606526075",predicate:"replyKeyboardHide",params:[{name:"flags",type:"#"},{name:"selective",type:"flags.2?true"}],type:"ReplyMarkup"},{id:"-200242528",predicate:"replyKeyboardForceReply",params:[{name:"flags",type:"#"},{name:"single_use",type:"flags.1?true"},{name:"selective",type:"flags.2?true"}],type:"ReplyMarkup"},{id:"889353612",predicate:"replyKeyboardMarkup",params:[{name:"flags",type:"#"},{name:"resize",type:"flags.0?true"},{name:"single_use",type:"flags.1?true"},{name:"selective",type:"flags.2?true"},{name:"rows",type:"Vector<KeyboardButtonRow>"}],type:"ReplyMarkup"},{id:"2072935910",predicate:"inputPeerUser",params:[{name:"user_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputPeer"},{id:"-668391402",predicate:"inputUser",params:[{name:"user_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputUser"},{id:"-1148011883",predicate:"messageEntityUnknown",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"-100378723",predicate:"messageEntityMention",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1868782349",predicate:"messageEntityHashtag",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1827637959",predicate:"messageEntityBotCommand",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1859134776",predicate:"messageEntityUrl",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1692693954",predicate:"messageEntityEmail",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"-1117713463",predicate:"messageEntityBold",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"-2106619040",predicate:"messageEntityItalic",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"681706865",predicate:"messageEntityCode",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1938967520",predicate:"messageEntityPre",params:[{name:"offset",type:"int"},{name:"length",type:"int"},{name:"language",type:"string"}],type:"MessageEntity"},{id:"1990644519",predicate:"messageEntityTextUrl",params:[{name:"offset",type:"int"},{name:"length",type:"int"},{name:"url",type:"string"}],type:"MessageEntity"},{id:"301019932",predicate:"updateShortSentMessage",params:[{name:"flags",type:"#"},{name:"out",type:"flags.1?true"},{name:"id",type:"int"},{name:"pts",type:"int"},{name:"pts_count",type:"int"},{name:"date",type:"int"},{name:"media",type:"flags.9?MessageMedia"},{name:"entities",type:"flags.7?Vector<MessageEntity>"}],type:"Updates"},{id:"-292807034",predicate:"inputChannelEmpty",params:[],type:"InputChannel"},{id:"-1343524562",predicate:"inputChannel",params:[{name:"channel_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputChannel"},{id:"-1109531342",predicate:"peerChannel",params:[{name:"channel_id",type:"int"}],type:"Peer"},{id:"548253432",predicate:"inputPeerChannel",params:[{name:"channel_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputPeer"},{id:"-1588737454",predicate:"channel",params:[{name:"flags",type:"#"},{name:"creator",type:"flags.0?true"},{name:"kicked",type:"flags.1?true"},{name:"left",type:"flags.2?true"},{name:"editor",type:"flags.3?true"},{name:"moderator",type:"flags.4?true"},{name:"broadcast",type:"flags.5?true"},{name:"verified",type:"flags.7?true"},{name:"megagroup",type:"flags.8?true"},{name:"restricted",type:"flags.9?true"},{name:"democracy",type:"flags.10?true"},{name:"signatures",type:"flags.11?true"},{name:"min",type:"flags.12?true"},{name:"id",type:"int"},{name:"access_hash",type:"flags.13?long"},{name:"title",type:"string"},{name:"username",type:"flags.6?string"},{name:"photo",type:"ChatPhoto"},{name:"date",type:"int"},{name:"version",type:"int"},{name:"restriction_reason",type:"flags.9?string"}],type:"Chat"},{id:"-2059962289",predicate:"channelForbidden",params:[{name:"flags",type:"#"},{name:"broadcast",type:"flags.5?true"},{name:"megagroup",type:"flags.8?true"},{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"title",type:"string"}],type:"Chat"},{id:"2131196633",predicate:"contacts.resolvedPeer",params:[{name:"peer",type:"Peer"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"contacts.ResolvedPeer"},{id:"-1009430225",predicate:"channelFull",params:[{name:"flags",type:"#"},{name:"can_view_participants",type:"flags.3?true"},{name:"can_set_username",type:"flags.6?true"},{name:"id",type:"int"},{name:"about",type:"string"},{name:"participants_count",type:"flags.0?int"},{name:"admins_count",type:"flags.1?int"},{name:"kicked_count",type:"flags.2?int"},{name:"read_inbox_max_id",type:"int"},{name:"read_outbox_max_id",type:"int"},{name:"unread_count",type:"int"},{name:"chat_photo",type:"Photo"},{name:"notify_settings",type:"PeerNotifySettings"},{name:"exported_invite",type:"ExportedChatInvite"},{name:"bot_info",type:"Vector<BotInfo>"},{name:"migrated_from_chat_id",type:"flags.4?int"},{name:"migrated_from_max_id",type:"flags.4?int"},{name:"pinned_msg_id",type:"flags.5?int"}],type:"ChatFull"},{id:"182649427",predicate:"messageRange",params:[{name:"min_id",type:"int"},{name:"max_id",type:"int"}],type:"MessageRange"},{id:"-1725551049",predicate:"messages.channelMessages",params:[{name:"flags",type:"#"},{name:"pts",type:"int"},{name:"count",type:"int"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"messages.Messages"},{id:"-1781355374",predicate:"messageActionChannelCreate",params:[{name:"title",type:"string"}],type:"MessageAction"},{id:"-352032773",predicate:"updateChannelTooLong",params:[{name:"flags",type:"#"},{name:"channel_id",type:"int"},{name:"pts",type:"flags.0?int"}],type:"Update"},{id:"-1227598250",predicate:"updateChannel",params:[{name:"channel_id",type:"int"}],type:"Update"},{id:"1656358105",predicate:"updateNewChannelMessage",params:[{name:"message",type:"Message"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"1108669311",predicate:"updateReadChannelInbox",params:[{name:"channel_id",type:"int"},{name:"max_id",type:"int"}],type:"Update"},{id:"-1015733815",predicate:"updateDeleteChannelMessages",params:[{name:"channel_id",type:"int"},{name:"messages",type:"Vector<int>"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-1734268085",predicate:"updateChannelMessageViews",params:[{name:"channel_id",type:"int"},{name:"id",type:"int"},{name:"views",type:"int"}],type:"Update"},{id:"1041346555",predicate:"updates.channelDifferenceEmpty",params:[{name:"flags",type:"#"},{name:"final",type:"flags.0?true"},{name:"pts",type:"int"},{name:"timeout",type:"flags.1?int"}],type:"updates.ChannelDifference"},{id:"1091431943",predicate:"updates.channelDifferenceTooLong",params:[{name:"flags",type:"#"},{name:"final",type:"flags.0?true"},{name:"pts",type:"int"},{name:"timeout",type:"flags.1?int"},{name:"top_message",type:"int"},{name:"read_inbox_max_id",type:"int"},{name:"read_outbox_max_id",type:"int"},{name:"unread_count",type:"int"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"updates.ChannelDifference"},{id:"543450958",predicate:"updates.channelDifference",params:[{name:"flags",type:"#"},{name:"final",type:"flags.0?true"},{name:"pts",type:"int"},{name:"timeout",type:"flags.1?int"},{name:"new_messages",type:"Vector<Message>"},{name:"other_updates",type:"Vector<Update>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"updates.ChannelDifference"},{id:"-1798033689",predicate:"channelMessagesFilterEmpty",params:[],type:"ChannelMessagesFilter"},{id:"-847783593",predicate:"channelMessagesFilter",params:[{name:"flags",type:"#"},{name:"exclude_new_messages",type:"flags.1?true"},{name:"ranges",type:"Vector<MessageRange>"}],type:"ChannelMessagesFilter"},{id:"367766557",predicate:"channelParticipant",params:[{name:"user_id",type:"int"},{name:"date",type:"int"}],type:"ChannelParticipant"},{id:"-1557620115",predicate:"channelParticipantSelf",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChannelParticipant"},{id:"-1861910545",predicate:"channelParticipantModerator",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChannelParticipant"},{id:"-1743180447",predicate:"channelParticipantEditor",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChannelParticipant"},{id:"-1933187430",predicate:"channelParticipantKicked",params:[{name:"user_id",type:"int"},{name:"kicked_by",type:"int"},{name:"date",type:"int"}],type:"ChannelParticipant"},{id:"-471670279",predicate:"channelParticipantCreator",params:[{name:"user_id",type:"int"}],type:"ChannelParticipant"},{id:"-566281095",predicate:"channelParticipantsRecent",params:[],type:"ChannelParticipantsFilter"},{id:"-1268741783",predicate:"channelParticipantsAdmins",params:[],type:"ChannelParticipantsFilter"},{id:"1010285434",predicate:"channelParticipantsKicked",params:[],type:"ChannelParticipantsFilter"},{id:"-1299865402",predicate:"channelRoleEmpty",params:[],type:"ChannelParticipantRole"},{id:"-1776756363",predicate:"channelRoleModerator",params:[],type:"ChannelParticipantRole"},{id:"-2113143156",predicate:"channelRoleEditor",params:[],type:"ChannelParticipantRole"},{id:"-177282392",predicate:"channels.channelParticipants",params:[{name:"count",type:"int"},{name:"participants",type:"Vector<ChannelParticipant>"},{name:"users",type:"Vector<User>"}],type:"channels.ChannelParticipants"},{id:"-791039645",predicate:"channels.channelParticipant",params:[{name:"participant",type:"ChannelParticipant"},{name:"users",type:"Vector<User>"}],type:"channels.ChannelParticipant"},{id:"-636267638",predicate:"chatParticipantCreator",params:[{name:"user_id",type:"int"}],type:"ChatParticipant"},{id:"-489233354",predicate:"chatParticipantAdmin",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChatParticipant"},{id:"1855224129",predicate:"updateChatAdmins",params:[{name:"chat_id",type:"int"},{name:"enabled",type:"Bool"},{name:"version",type:"int"}],type:"Update"},{id:"-1232070311",predicate:"updateChatParticipantAdmin",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"int"},{name:"is_admin",type:"Bool"},{name:"version",type:"int"}],type:"Update"},{id:"1371385889",predicate:"messageActionChatMigrateTo",params:[{name:"channel_id",type:"int"}],type:"MessageAction"},{id:"-1336546578",predicate:"messageActionChannelMigrateFrom",params:[{name:"title",type:"string"},{name:"chat_id",type:"int"}],type:"MessageAction"},{id:"-1328445861",predicate:"channelParticipantsBots",params:[],type:"ChannelParticipantsFilter"},{id:"-236044656",predicate:"help.termsOfService",params:[{name:"text",type:"string"}],type:"help.TermsOfService"},{id:"1753886890",predicate:"updateNewStickerSet",params:[{name:"stickerset",type:"messages.StickerSet"}],type:"Update"},{id:"196268545",predicate:"updateStickerSetsOrder",params:[{name:"flags",type:"#"},{name:"masks",type:"flags.0?true"},{name:"order",type:"Vector<long>"}],type:"Update"},{id:"1135492588",predicate:"updateStickerSets",params:[],type:"Update"},{id:"372165663",predicate:"foundGif",params:[{name:"url",type:"string"},{name:"thumb_url",type:"string"},{name:"content_url",type:"string"},{name:"content_type",type:"string"},{name:"w",type:"int"},{name:"h",type:"int"}],type:"FoundGif"},{id:"-1670052855",predicate:"foundGifCached",params:[{name:"url",type:"string"},{name:"photo",type:"Photo"},{name:"document",type:"Document"}],type:"FoundGif"},{id:"1212395773",predicate:"inputMediaGifExternal",params:[{name:"url",type:"string"},{name:"q",type:"string"}],type:"InputMedia"},{id:"1158290442",predicate:"messages.foundGifs",params:[{name:"next_offset",type:"int"},{name:"results",type:"Vector<FoundGif>"}],type:"messages.FoundGifs"},{id:"-402498398",predicate:"messages.savedGifsNotModified",params:[],type:"messages.SavedGifs"},{id:"772213157",predicate:"messages.savedGifs",params:[{name:"hash",type:"int"},{name:"gifs",type:"Vector<Document>"}],type:"messages.SavedGifs"},{id:"-1821035490",predicate:"updateSavedGifs",params:[],type:"Update"},{id:"691006739",predicate:"inputBotInlineMessageMediaAuto",params:[{name:"flags",type:"#"},{name:"caption",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"1036876423",predicate:"inputBotInlineMessageText",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.0?true"},{name:"message",type:"string"},{name:"entities",type:"flags.1?Vector<MessageEntity>"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"750510426",predicate:"inputBotInlineResult",params:[{name:"flags",type:"#"},{name:"id",type:"string"},{name:"type",type:"string"},{name:"title",type:"flags.1?string"},{name:"description",type:"flags.2?string"},{name:"url",type:"flags.3?string"},{name:"thumb_url",type:"flags.4?string"},{name:"content_url",type:"flags.5?string"},{name:"content_type",type:"flags.5?string"},{name:"w",type:"flags.6?int"},{name:"h",type:"flags.6?int"},{name:"duration",type:"flags.7?int"},{name:"send_message",type:"InputBotInlineMessage"}],type:"InputBotInlineResult"},{id:"175419739",predicate:"botInlineMessageMediaAuto",params:[{name:"flags",type:"#"},{name:"caption",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"-1937807902",predicate:"botInlineMessageText",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.0?true"},{name:"message",type:"string"},{name:"entities",type:"flags.1?Vector<MessageEntity>"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"-1679053127",predicate:"botInlineResult",params:[{name:"flags",type:"#"},{name:"id",type:"string"},{name:"type",type:"string"},{name:"title",type:"flags.1?string"},{name:"description",type:"flags.2?string"},{name:"url",type:"flags.3?string"},{name:"thumb_url",type:"flags.4?string"},{name:"content_url",type:"flags.5?string"},{name:"content_type",type:"flags.5?string"},{name:"w",type:"flags.6?int"},{name:"h",type:"flags.6?int"},{name:"duration",type:"flags.7?int"},{name:"send_message",type:"BotInlineMessage"}],type:"BotInlineResult"},{id:"-858565059",predicate:"messages.botResults",params:[{name:"flags",type:"#"},{name:"gallery",type:"flags.0?true"},{name:"query_id",type:"long"},{name:"next_offset",type:"flags.1?string"},{name:"switch_pm",type:"flags.2?InlineBotSwitchPM"},{name:"results",type:"Vector<BotInlineResult>"},{name:"cache_time",type:"int"}],type:"messages.BotResults"},{id:"1417832080",predicate:"updateBotInlineQuery",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"user_id",type:"int"},{name:"query",type:"string"},{name:"geo",type:"flags.0?GeoPoint"},{name:"offset",type:"string"}],type:"Update"},{id:"239663460",predicate:"updateBotInlineSend",params:[{name:"flags",type:"#"},{name:"user_id",type:"int"},{name:"query",type:"string"},{name:"geo",type:"flags.0?GeoPoint"},{name:"id",type:"string"},{name:"msg_id",type:"flags.1?InputBotInlineMessageID"}],type:"Update"},{id:"1358283666",predicate:"inputMessagesFilterVoice",params:[],type:"MessagesFilter"},{id:"928101534",predicate:"inputMessagesFilterMusic",params:[],type:"MessagesFilter"},{id:"-1107622874",predicate:"inputPrivacyKeyChatInvite",params:[],type:"InputPrivacyKey"},{id:"1343122938",predicate:"privacyKeyChatInvite",params:[],type:"PrivacyKey"},{id:"524838915",predicate:"exportedMessageLink",params:[{name:"link",type:"string"}],type:"ExportedMessageLink"},{id:"-947462709",predicate:"messageFwdHeader",params:[{name:"flags",type:"#"},{name:"from_id",type:"flags.0?int"},{name:"date",type:"int"},{name:"channel_id",type:"flags.1?int"},{name:"channel_post",type:"flags.2?int"}],type:"MessageFwdHeader"},{id:"457133559",predicate:"updateEditChannelMessage",params:[{name:"message",type:"Message"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-1738988427",predicate:"updateChannelPinnedMessage",params:[{name:"channel_id",type:"int"},{name:"id",type:"int"}],type:"Update"},{id:"-1799538451",predicate:"messageActionPinMessage",params:[],type:"MessageAction"},{id:"1923290508",predicate:"auth.codeTypeSms",params:[],type:"auth.CodeType"},{id:"1948046307",predicate:"auth.codeTypeCall",params:[],type:"auth.CodeType"},{id:"577556219",predicate:"auth.codeTypeFlashCall",params:[],type:"auth.CodeType"},{id:"1035688326",predicate:"auth.sentCodeTypeApp",params:[{name:"length",type:"int"}],type:"auth.SentCodeType"},{id:"-1073693790",predicate:"auth.sentCodeTypeSms",params:[{name:"length",type:"int"}],type:"auth.SentCodeType"},{id:"1398007207",predicate:"auth.sentCodeTypeCall",params:[{name:"length",type:"int"}],type:"auth.SentCodeType"},{id:"-1425815847",predicate:"auth.sentCodeTypeFlashCall",params:[{name:"pattern",type:"string"}],type:"auth.SentCodeType"},{id:"629866245",predicate:"keyboardButtonUrl",params:[{name:"text",type:"string"},{name:"url",type:"string"}],type:"KeyboardButton"},{id:"1748655686",predicate:"keyboardButtonCallback",params:[{name:"text",type:"string"},{name:"data",type:"bytes"}],type:"KeyboardButton"},{id:"-1318425559",predicate:"keyboardButtonRequestPhone",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"-59151553",predicate:"keyboardButtonRequestGeoLocation",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"90744648",predicate:"keyboardButtonSwitchInline",params:[{name:"flags",type:"#"},{name:"same_peer",type:"flags.0?true"},{name:"text",type:"string"},{name:"query",type:"string"}],type:"KeyboardButton"},{id:"1218642516",predicate:"replyInlineMarkup",params:[{name:"rows",type:"Vector<KeyboardButtonRow>"}],type:"ReplyMarkup"},{id:"911761060",predicate:"messages.botCallbackAnswer",params:[{name:"flags",type:"#"},{name:"alert",type:"flags.1?true"},{name:"has_url",type:"flags.3?true"},{name:"message",type:"flags.0?string"},{name:"url",type:"flags.2?string"},{name:"cache_time",type:"int"}],type:"messages.BotCallbackAnswer"},{id:"-415938591",predicate:"updateBotCallbackQuery",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"user_id",
type:"int"},{name:"peer",type:"Peer"},{name:"msg_id",type:"int"},{name:"chat_instance",type:"long"},{name:"data",type:"flags.0?bytes"},{name:"game_short_name",type:"flags.1?string"}],type:"Update"},{id:"649453030",predicate:"messages.messageEditData",params:[{name:"flags",type:"#"},{name:"caption",type:"flags.0?true"}],type:"messages.MessageEditData"},{id:"-469536605",predicate:"updateEditMessage",params:[{name:"message",type:"Message"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-190472735",predicate:"inputBotInlineMessageMediaGeo",params:[{name:"flags",type:"#"},{name:"geo_point",type:"InputGeoPoint"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"-1431327288",predicate:"inputBotInlineMessageMediaVenue",params:[{name:"flags",type:"#"},{name:"geo_point",type:"InputGeoPoint"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"provider",type:"string"},{name:"venue_id",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"766443943",predicate:"inputBotInlineMessageMediaContact",params:[{name:"flags",type:"#"},{name:"phone_number",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"982505656",predicate:"botInlineMessageMediaGeo",params:[{name:"flags",type:"#"},{name:"geo",type:"GeoPoint"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"1130767150",predicate:"botInlineMessageMediaVenue",params:[{name:"flags",type:"#"},{name:"geo",type:"GeoPoint"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"provider",type:"string"},{name:"venue_id",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"904770772",predicate:"botInlineMessageMediaContact",params:[{name:"flags",type:"#"},{name:"phone_number",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"-1462213465",predicate:"inputBotInlineResultPhoto",params:[{name:"id",type:"string"},{name:"type",type:"string"},{name:"photo",type:"InputPhoto"},{name:"send_message",type:"InputBotInlineMessage"}],type:"InputBotInlineResult"},{id:"-459324",predicate:"inputBotInlineResultDocument",params:[{name:"flags",type:"#"},{name:"id",type:"string"},{name:"type",type:"string"},{name:"title",type:"flags.1?string"},{name:"description",type:"flags.2?string"},{name:"document",type:"InputDocument"},{name:"send_message",type:"InputBotInlineMessage"}],type:"InputBotInlineResult"},{id:"400266251",predicate:"botInlineMediaResult",params:[{name:"flags",type:"#"},{name:"id",type:"string"},{name:"type",type:"string"},{name:"photo",type:"flags.0?Photo"},{name:"document",type:"flags.1?Document"},{name:"title",type:"flags.2?string"},{name:"description",type:"flags.3?string"},{name:"send_message",type:"BotInlineMessage"}],type:"BotInlineResult"},{id:"-1995686519",predicate:"inputBotInlineMessageID",params:[{name:"dc_id",type:"int"},{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputBotInlineMessageID"},{id:"-103646630",predicate:"updateInlineBotCallbackQuery",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"user_id",type:"int"},{name:"msg_id",type:"InputBotInlineMessageID"},{name:"chat_instance",type:"long"},{name:"data",type:"flags.0?bytes"},{name:"game_short_name",type:"flags.1?string"}],type:"Update"},{id:"1008755359",predicate:"inlineBotSwitchPM",params:[{name:"text",type:"string"},{name:"start_param",type:"string"}],type:"InlineBotSwitchPM"},{id:"863093588",predicate:"messages.peerDialogs",params:[{name:"dialogs",type:"Vector<Dialog>"},{name:"messages",type:"Vector<Message>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"},{name:"state",type:"updates.State"}],type:"messages.PeerDialogs"},{id:"-305282981",predicate:"topPeer",params:[{name:"peer",type:"Peer"},{name:"rating",type:"double"}],type:"TopPeer"},{id:"-1419371685",predicate:"topPeerCategoryBotsPM",params:[],type:"TopPeerCategory"},{id:"344356834",predicate:"topPeerCategoryBotsInline",params:[],type:"TopPeerCategory"},{id:"104314861",predicate:"topPeerCategoryCorrespondents",params:[],type:"TopPeerCategory"},{id:"-1122524854",predicate:"topPeerCategoryGroups",params:[],type:"TopPeerCategory"},{id:"371037736",predicate:"topPeerCategoryChannels",params:[],type:"TopPeerCategory"},{id:"-75283823",predicate:"topPeerCategoryPeers",params:[{name:"category",type:"TopPeerCategory"},{name:"count",type:"int"},{name:"peers",type:"Vector<TopPeer>"}],type:"TopPeerCategoryPeers"},{id:"-567906571",predicate:"contacts.topPeersNotModified",params:[],type:"contacts.TopPeers"},{id:"1891070632",predicate:"contacts.topPeers",params:[{name:"categories",type:"Vector<TopPeerCategoryPeers>"},{name:"chats",type:"Vector<Chat>"},{name:"users",type:"Vector<User>"}],type:"contacts.TopPeers"},{id:"892193368",predicate:"messageEntityMentionName",params:[{name:"offset",type:"int"},{name:"length",type:"int"},{name:"user_id",type:"int"}],type:"MessageEntity"},{id:"546203849",predicate:"inputMessageEntityMentionName",params:[{name:"offset",type:"int"},{name:"length",type:"int"},{name:"user_id",type:"InputUser"}],type:"MessageEntity"},{id:"975236280",predicate:"inputMessagesFilterChatPhotos",params:[],type:"MessagesFilter"},{id:"634833351",predicate:"updateReadChannelOutbox",params:[{name:"channel_id",type:"int"},{name:"max_id",type:"int"}],type:"Update"},{id:"-299124375",predicate:"updateDraftMessage",params:[{name:"peer",type:"Peer"},{name:"draft",type:"DraftMessage"}],type:"Update"},{id:"-1169445179",predicate:"draftMessageEmpty",params:[],type:"DraftMessage"},{id:"-40996577",predicate:"draftMessage",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"message",type:"string"},{name:"entities",type:"flags.3?Vector<MessageEntity>"},{name:"date",type:"int"}],type:"DraftMessage"},{id:"-1615153660",predicate:"messageActionHistoryClear",params:[],type:"MessageAction"},{id:"82699215",predicate:"messages.featuredStickersNotModified",params:[],type:"messages.FeaturedStickers"},{id:"-123893531",predicate:"messages.featuredStickers",params:[{name:"hash",type:"int"},{name:"sets",type:"Vector<StickerSetCovered>"},{name:"unread",type:"Vector<long>"}],type:"messages.FeaturedStickers"},{id:"1461528386",predicate:"updateReadFeaturedStickers",params:[],type:"Update"},{id:"186120336",predicate:"messages.recentStickersNotModified",params:[],type:"messages.RecentStickers"},{id:"1558317424",predicate:"messages.recentStickers",params:[{name:"hash",type:"int"},{name:"stickers",type:"Vector<Document>"}],type:"messages.RecentStickers"},{id:"-1706939360",predicate:"updateRecentStickers",params:[],type:"Update"},{id:"1338747336",predicate:"messages.archivedStickers",params:[{name:"count",type:"int"},{name:"sets",type:"Vector<StickerSetCovered>"}],type:"messages.ArchivedStickers"},{id:"946083368",predicate:"messages.stickerSetInstallResultSuccess",params:[],type:"messages.StickerSetInstallResult"},{id:"904138920",predicate:"messages.stickerSetInstallResultArchive",params:[{name:"sets",type:"Vector<StickerSetCovered>"}],type:"messages.StickerSetInstallResult"},{id:"1678812626",predicate:"stickerSetCovered",params:[{name:"set",type:"StickerSet"},{name:"cover",type:"Document"}],type:"StickerSetCovered"},{id:"-1574314746",predicate:"updateConfig",params:[],type:"Update"},{id:"861169551",predicate:"updatePtsChanged",params:[],type:"Update"},{id:"-1252045032",predicate:"inputMediaPhotoExternal",params:[{name:"url",type:"string"},{name:"caption",type:"string"}],type:"InputMedia"},{id:"-437690244",predicate:"inputMediaDocumentExternal",params:[{name:"url",type:"string"},{name:"caption",type:"string"}],type:"InputMedia"},{id:"872932635",predicate:"stickerSetMultiCovered",params:[{name:"set",type:"StickerSet"},{name:"covers",type:"Vector<Document>"}],type:"StickerSetCovered"},{id:"-1361650766",predicate:"maskCoords",params:[{name:"n",type:"int"},{name:"x",type:"double"},{name:"y",type:"double"},{name:"zoom",type:"double"}],type:"MaskCoords"},{id:"-1744710921",predicate:"documentAttributeHasStickers",params:[],type:"DocumentAttribute"},{id:"1251549527",predicate:"inputStickeredMediaPhoto",params:[{name:"id",type:"InputPhoto"}],type:"InputStickeredMedia"},{id:"70813275",predicate:"inputStickeredMediaDocument",params:[{name:"id",type:"InputDocument"}],type:"InputStickeredMedia"},{id:"-1107729093",predicate:"game",params:[{name:"flags",type:"#"},{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"short_name",type:"string"},{name:"title",type:"string"},{name:"description",type:"string"},{name:"photo",type:"Photo"},{name:"document",type:"flags.0?Document"}],type:"Game"},{id:"1336154098",predicate:"inputBotInlineResultGame",params:[{name:"id",type:"string"},{name:"short_name",type:"string"},{name:"send_message",type:"InputBotInlineMessage"}],type:"InputBotInlineResult"},{id:"1262639204",predicate:"inputBotInlineMessageGame",params:[{name:"flags",type:"#"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"-38694904",predicate:"messageMediaGame",params:[{name:"game",type:"Game"}],type:"MessageMedia"},{id:"-750828557",predicate:"inputMediaGame",params:[{name:"id",type:"InputGame"}],type:"InputMedia"},{id:"53231223",predicate:"inputGameID",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputGame"},{id:"-1020139510",predicate:"inputGameShortName",params:[{name:"bot_id",type:"InputUser"},{name:"short_name",type:"string"}],type:"InputGame"},{id:"1358175439",predicate:"keyboardButtonGame",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"-1834538890",predicate:"messageActionGameScore",params:[{name:"game_id",type:"long"},{name:"score",type:"int"}],type:"MessageAction"},{id:"1493171408",predicate:"highScore",params:[{name:"pos",type:"int"},{name:"user_id",type:"int"},{name:"score",type:"int"}],type:"HighScore"},{id:"-1707344487",predicate:"messages.highScores",params:[{name:"scores",type:"Vector<HighScore>"},{name:"users",type:"Vector<User>"}],type:"messages.HighScores"},{id:"1258196845",predicate:"updates.differenceTooLong",params:[{name:"pts",type:"int"}],type:"updates.Difference"},{id:"1081547008",predicate:"updateChannelWebPage",params:[{name:"channel_id",type:"int"},{name:"webpage",type:"WebPage"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-1663561404",predicate:"messages.chatsSlice",params:[{name:"count",type:"int"},{name:"chats",type:"Vector<Chat>"}],type:"messages.Chats"},{id:"-599948721",predicate:"textEmpty",params:[],type:"RichText"},{id:"1950782688",predicate:"textPlain",params:[{name:"text",type:"string"}],type:"RichText"},{id:"1730456516",predicate:"textBold",params:[{name:"text",type:"RichText"}],type:"RichText"},{id:"-653089380",predicate:"textItalic",params:[{name:"text",type:"RichText"}],type:"RichText"},{id:"-1054465340",predicate:"textUnderline",params:[{name:"text",type:"RichText"}],type:"RichText"},{id:"-1678197867",predicate:"textStrike",params:[{name:"text",type:"RichText"}],type:"RichText"},{id:"1816074681",predicate:"textFixed",params:[{name:"text",type:"RichText"}],type:"RichText"},{id:"1009288385",predicate:"textUrl",params:[{name:"text",type:"RichText"},{name:"url",type:"string"},{name:"webpage_id",type:"long"}],type:"RichText"},{id:"-564523562",predicate:"textEmail",params:[{name:"text",type:"RichText"},{name:"email",type:"string"}],type:"RichText"},{id:"2120376535",predicate:"textConcat",params:[{name:"texts",type:"Vector<RichText>"}],type:"RichText"},{id:"324435594",predicate:"pageBlockUnsupported",params:[],type:"PageBlock"},{id:"1890305021",predicate:"pageBlockTitle",params:[{name:"text",type:"RichText"}],type:"PageBlock"},{id:"-1879401953",predicate:"pageBlockSubtitle",params:[{name:"text",type:"RichText"}],type:"PageBlock"},{id:"-1162877472",predicate:"pageBlockAuthorDate",params:[{name:"author",type:"RichText"},{name:"published_date",type:"int"}],type:"PageBlock"},{id:"-1076861716",predicate:"pageBlockHeader",params:[{name:"text",type:"RichText"}],type:"PageBlock"},{id:"-248793375",predicate:"pageBlockSubheader",params:[{name:"text",type:"RichText"}],type:"PageBlock"},{id:"1182402406",predicate:"pageBlockParagraph",params:[{name:"text",type:"RichText"}],type:"PageBlock"},{id:"-1066346178",predicate:"pageBlockPreformatted",params:[{name:"text",type:"RichText"},{name:"language",type:"string"}],type:"PageBlock"},{id:"1216809369",predicate:"pageBlockFooter",params:[{name:"text",type:"RichText"}],type:"PageBlock"},{id:"-618614392",predicate:"pageBlockDivider",params:[],type:"PageBlock"},{id:"-837994576",predicate:"pageBlockAnchor",params:[{name:"name",type:"string"}],type:"PageBlock"},{id:"978896884",predicate:"pageBlockList",params:[{name:"ordered",type:"Bool"},{name:"items",type:"Vector<RichText>"}],type:"PageBlock"},{id:"641563686",predicate:"pageBlockBlockquote",params:[{name:"text",type:"RichText"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"1329878739",predicate:"pageBlockPullquote",params:[{name:"text",type:"RichText"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"-372860542",predicate:"pageBlockPhoto",params:[{name:"photo_id",type:"long"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"-640214938",predicate:"pageBlockVideo",params:[{name:"flags",type:"#"},{name:"autoplay",type:"flags.0?true"},{name:"loop",type:"flags.1?true"},{name:"video_id",type:"long"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"972174080",predicate:"pageBlockCover",params:[{name:"cover",type:"PageBlock"}],type:"PageBlock"},{id:"-840826671",predicate:"pageBlockEmbed",params:[{name:"flags",type:"#"},{name:"full_width",type:"flags.0?true"},{name:"allow_scrolling",type:"flags.3?true"},{name:"url",type:"flags.1?string"},{name:"html",type:"flags.2?string"},{name:"poster_photo_id",type:"flags.4?long"},{name:"w",type:"int"},{name:"h",type:"int"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"690781161",predicate:"pageBlockEmbedPost",params:[{name:"url",type:"string"},{name:"webpage_id",type:"long"},{name:"author_photo_id",type:"long"},{name:"author",type:"string"},{name:"date",type:"int"},{name:"blocks",type:"Vector<PageBlock>"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"145955919",predicate:"pageBlockCollage",params:[{name:"items",type:"Vector<PageBlock>"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"319588707",predicate:"pageBlockSlideshow",params:[{name:"items",type:"Vector<PageBlock>"},{name:"caption",type:"RichText"}],type:"PageBlock"},{id:"-1913754556",predicate:"pagePart",params:[{name:"blocks",type:"Vector<PageBlock>"},{name:"photos",type:"Vector<Photo>"},{name:"videos",type:"Vector<Document>"}],type:"Page"},{id:"-677274263",predicate:"pageFull",params:[{name:"blocks",type:"Vector<PageBlock>"},{name:"photos",type:"Vector<Photo>"},{name:"videos",type:"Vector<Document>"}],type:"Page"},{id:"-2054908813",predicate:"webPageNotModified",params:[],type:"WebPage"},{id:"-88417185",predicate:"inputPrivacyKeyPhoneCall",params:[],type:"InputPrivacyKey"},{id:"1030105979",predicate:"privacyKeyPhoneCall",params:[],type:"PrivacyKey"},{id:"-580219064",predicate:"sendMessageGamePlayAction",params:[],type:"SendMessageAction"},{id:"-2048646399",predicate:"phoneCallDiscardReasonMissed",params:[],type:"PhoneCallDiscardReason"},{id:"-527056480",predicate:"phoneCallDiscardReasonDisconnect",params:[],type:"PhoneCallDiscardReason"},{id:"1471006352",predicate:"phoneCallDiscardReasonHangup",params:[],type:"PhoneCallDiscardReason"},{id:"-84416311",predicate:"phoneCallDiscardReasonBusy",params:[],type:"PhoneCallDiscardReason"},{id:"-686710068",predicate:"updateDialogPinned",params:[{name:"flags",type:"#"},{name:"pinned",type:"flags.0?true"},{name:"peer",type:"Peer"}],type:"Update"},{id:"-657787251",predicate:"updatePinnedDialogs",params:[{name:"flags",type:"#"},{name:"order",type:"flags.0?Vector<Peer>"}],type:"Update"},{id:"2104790276",predicate:"dataJSON",params:[{name:"data",type:"string"}],type:"DataJSON"},{id:"-2095595325",predicate:"updateBotWebhookJSON",params:[{name:"data",type:"DataJSON"}],type:"Update"},{id:"-1684914010",predicate:"updateBotWebhookJSONQuery",params:[{name:"query_id",type:"long"},{name:"data",type:"DataJSON"},{name:"timeout",type:"int"}],type:"Update"},{id:"-886477832",predicate:"labeledPrice",params:[{name:"label",type:"string"},{name:"amount",type:"long"}],type:"LabeledPrice"},{id:"-1022713000",predicate:"invoice",params:[{name:"flags",type:"#"},{name:"test",type:"flags.0?true"},{name:"name_requested",type:"flags.1?true"},{name:"phone_requested",type:"flags.2?true"},{name:"email_requested",type:"flags.3?true"},{name:"shipping_address_requested",type:"flags.4?true"},{name:"flexible",type:"flags.5?true"},{name:"currency",type:"string"},{name:"prices",type:"Vector<LabeledPrice>"}],type:"Invoice"},{id:"-1844103547",predicate:"inputMediaInvoice",params:[{name:"flags",type:"#"},{name:"title",type:"string"},{name:"description",type:"string"},{name:"photo",type:"flags.0?InputWebDocument"},{name:"invoice",type:"Invoice"},{name:"payload",type:"bytes"},{name:"provider",type:"string"},{name:"start_param",type:"string"}],type:"InputMedia"},{id:"-368917890",predicate:"paymentCharge",params:[{name:"id",type:"string"},{name:"provider_charge_id",type:"string"}],type:"PaymentCharge"},{id:"-1892568281",predicate:"messageActionPaymentSentMe",params:[{name:"flags",type:"#"},{name:"currency",type:"string"},{name:"total_amount",type:"long"},{name:"payload",type:"bytes"},{name:"info",type:"flags.0?PaymentRequestedInfo"},{name:"shipping_option_id",type:"flags.1?string"},{name:"charge",type:"PaymentCharge"}],type:"MessageAction"},{id:"-2074799289",predicate:"messageMediaInvoice",params:[{name:"flags",type:"#"},{name:"shipping_address_requested",type:"flags.1?true"},{name:"test",type:"flags.3?true"},{name:"title",type:"string"},{name:"description",type:"string"},{name:"photo",type:"flags.0?WebDocument"},{name:"receipt_msg_id",type:"flags.2?int"},{name:"currency",type:"string"},{name:"total_amount",type:"long"},{name:"start_param",type:"string"}],type:"MessageMedia"},{id:"512535275",predicate:"postAddress",params:[{name:"street_line1",type:"string"},{name:"street_line2",type:"string"},{name:"city",type:"string"},{name:"state",type:"string"},{name:"country_iso2",type:"string"},{name:"post_code",type:"string"}],type:"PostAddress"},{id:"-1868808300",predicate:"paymentRequestedInfo",params:[{name:"flags",type:"#"},{name:"name",type:"flags.0?string"},{name:"phone",type:"flags.1?string"},{name:"email",type:"flags.2?string"},{name:"shipping_address",type:"flags.3?PostAddress"}],type:"PaymentRequestedInfo"},{id:"-1344716869",predicate:"keyboardButtonBuy",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"1080663248",predicate:"messageActionPaymentSent",params:[{name:"currency",type:"string"},{name:"total_amount",type:"long"}],type:"MessageAction"},{id:"-842892769",predicate:"paymentSavedCredentialsCard",params:[{name:"id",type:"string"},{name:"title",type:"string"}],type:"PaymentSavedCredentials"},{id:"-971322408",predicate:"webDocument",params:[{name:"url",type:"string"},{name:"access_hash",type:"long"},{name:"size",type:"int"},{name:"mime_type",type:"string"},{name:"attributes",type:"Vector<DocumentAttribute>"},{name:"dc_id",type:"int"}],type:"WebDocument"},{id:"-1678949555",predicate:"inputWebDocument",params:[{name:"url",type:"string"},{name:"size",type:"int"},{name:"mime_type",type:"string"},{name:"attributes",type:"Vector<DocumentAttribute>"}],type:"InputWebDocument"},{id:"-1036396922",predicate:"inputWebFileLocation",params:[{name:"url",type:"string"},{name:"access_hash",type:"long"}],type:"InputWebFileLocation"},{id:"568808380",predicate:"upload.webFile",params:[{name:"size",type:"int"},{name:"mime_type",type:"string"},{name:"file_type",type:"storage.FileType"},{name:"mtime",type:"int"},{name:"bytes",type:"bytes"}],type:"upload.WebFile"},{id:"1062645411",predicate:"payments.paymentForm",params:[{name:"flags",type:"#"},{name:"can_save_credentials",type:"flags.2?true"},{name:"password_missing",type:"flags.3?true"},{name:"bot_id",type:"int"},{name:"invoice",type:"Invoice"},{name:"provider_id",type:"int"},{name:"url",type:"string"},{name:"native_provider",type:"flags.4?string"},{name:"native_params",type:"flags.4?DataJSON"},{name:"saved_info",type:"flags.0?PaymentRequestedInfo"},{name:"saved_credentials",type:"flags.1?PaymentSavedCredentials"},{name:"users",type:"Vector<User>"}],type:"payments.PaymentForm"},{id:"-784000893",predicate:"payments.validatedRequestedInfo",params:[{name:"flags",type:"#"},{name:"id",type:"flags.0?string"},{name:"shipping_options",type:"flags.1?Vector<ShippingOption>"}],type:"payments.ValidatedRequestedInfo"},{id:"1314881805",predicate:"payments.paymentResult",params:[{name:"updates",type:"Updates"}],type:"payments.PaymentResult"},{id:"1800845601",predicate:"payments.paymentVerficationNeeded",params:[{name:"url",type:"string"}],type:"payments.PaymentResult"},{id:"1342771681",predicate:"payments.paymentReceipt",params:[{name:"flags",type:"#"},{name:"date",type:"int"},{name:"bot_id",type:"int"},{name:"invoice",type:"Invoice"},{name:"provider_id",type:"int"},{name:"info",type:"flags.0?PaymentRequestedInfo"},{name:"shipping",type:"flags.1?ShippingOption"},{name:"currency",type:"string"},{name:"total_amount",type:"long"},{name:"credentials_title",type:"string"},{name:"users",type:"Vector<User>"}],type:"payments.PaymentReceipt"},{id:"-74456004",predicate:"payments.savedInfo",params:[{name:"flags",type:"#"},{name:"has_saved_credentials",type:"flags.1?true"},{name:"saved_info",type:"flags.0?PaymentRequestedInfo"}],type:"payments.SavedInfo"},{id:"-1056001329",predicate:"inputPaymentCredentialsSaved",params:[{name:"id",type:"string"},{name:"tmp_password",type:"bytes"}],type:"InputPaymentCredentials"},{id:"873977640",predicate:"inputPaymentCredentials",params:[{name:"flags",type:"#"},{name:"save",type:"flags.0?true"},{name:"data",type:"DataJSON"}],type:"InputPaymentCredentials"},{id:"-614138572",predicate:"account.tmpPassword",params:[{name:"tmp_password",type:"bytes"},{name:"valid_until",type:"int"}],type:"account.TmpPassword"},{id:"-1239335713",predicate:"shippingOption",params:[{name:"id",type:"string"},{name:"title",type:"string"},{name:"prices",type:"Vector<LabeledPrice>"}],type:"ShippingOption"},{id:"-523384512",predicate:"updateBotShippingQuery",params:[{name:"query_id",type:"long"},{name:"user_id",type:"int"},{name:"payload",type:"bytes"},{name:"shipping_address",type:"PostAddress"}],type:"Update"},{id:"1563376297",predicate:"updateBotPrecheckoutQuery",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"user_id",type:"int"},{name:"payload",type:"bytes"},{name:"info",type:"flags.0?PaymentRequestedInfo"},{name:"shipping_option_id",type:"flags.1?string"},{name:"currency",type:"string"},{name:"total_amount",type:"long"}],type:"Update"},{id:"-6249322",predicate:"inputStickerSetItem",params:[{name:"flags",type:"#"},{name:"document",type:"InputDocument"},{name:"emoji",type:"string"},{name:"mask_coords",type:"flags.0?MaskCoords"}],type:"InputStickerSetItem"},{id:"-1425052898",predicate:"updatePhoneCall",params:[{name:"phone_call",type:"PhoneCall"}],type:"Update"},{id:"506920429",predicate:"inputPhoneCall",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputPhoneCall"},{id:"1399245077",predicate:"phoneCallEmpty",params:[{name:"id",type:"long"}],type:"PhoneCall"},{id:"462375633",predicate:"phoneCallWaiting",params:[{name:"flags",type:"#"},{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"protocol",type:"PhoneCallProtocol"},{name:"receive_date",type:"flags.0?int"}],type:"PhoneCall"},{id:"-2089411356",predicate:"phoneCallRequested",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"g_a_hash",type:"bytes"},{name:"protocol",type:"PhoneCallProtocol"}],type:"PhoneCall"},{id:"1828732223",predicate:"phoneCallAccepted",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"g_b",type:"bytes"},{name:"protocol",type:"PhoneCallProtocol"}],type:"PhoneCall"},{id:"-1660057",predicate:"phoneCall",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"date",type:"int"},{name:"admin_id",type:"int"},{name:"participant_id",type:"int"},{name:"g_a_or_b",type:"bytes"},{name:"key_fingerprint",type:"long"},{name:"protocol",type:"PhoneCallProtocol"},{name:"connection",type:"PhoneConnection"},{name:"alternative_connections",type:"Vector<PhoneConnection>"},{name:"start_date",type:"int"}],type:"PhoneCall"},{id:"1355435489",predicate:"phoneCallDiscarded",params:[{name:"flags",type:"#"},{name:"need_rating",type:"flags.2?true"},{name:"need_debug",type:"flags.3?true"},{name:"id",type:"long"},{name:"reason",type:"flags.0?PhoneCallDiscardReason"},{name:"duration",type:"flags.1?int"}],type:"PhoneCall"},{id:"-1655957568",predicate:"phoneConnection",params:[{name:"id",type:"long"},{name:"ip",type:"string"},{name:"ipv6",type:"string"},{name:"port",type:"int"},{name:"peer_tag",type:"bytes"}],type:"PhoneConnection"},{id:"-1564789301",predicate:"phoneCallProtocol",params:[{name:"flags",type:"#"},{name:"udp_p2p",type:"flags.0?true"},{name:"udp_reflector",type:"flags.1?true"},{name:"min_layer",type:"int"},{name:"max_layer",type:"int"}],type:"PhoneCallProtocol"},{id:"-326966976",predicate:"phone.phoneCall",params:[{name:"phone_call",type:"PhoneCall"},{name:"users",type:"Vector<User>"}],type:"phone.PhoneCall"},{id:"-2134272152",predicate:"inputMessagesFilterPhoneCalls",params:[{name:"flags",type:"#"},{name:"missed",type:"flags.0?true"}],type:"MessagesFilter"},{id:"-2132731265",predicate:"messageActionPhoneCall",params:[{name:"flags",type:"#"},{name:"call_id",type:"long"},{name:"reason",type:"flags.0?PhoneCallDiscardReason"},{name:"duration",type:"flags.1?int"}],type:"MessageAction"},{id:"2054952868",predicate:"inputMessagesFilterRoundVoice",params:[],type:"MessagesFilter"},{id:"-1253451181",predicate:"inputMessagesFilterRoundVideo",params:[],type:"MessagesFilter"},{id:"-1997373508",predicate:"sendMessageRecordRoundAction",params:[],type:"SendMessageAction"},{id:"608050278",predicate:"sendMessageUploadRoundAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"352864346",predicate:"upload.fileCdnRedirect",params:[{name:"dc_id",type:"int"},{name:"file_token",type:"bytes"},{name:"encryption_key",type:"bytes"},{name:"encryption_iv",type:"bytes"}],type:"upload.File"},{id:"-290921362",predicate:"upload.cdnFileReuploadNeeded",params:[{name:"request_token",type:"bytes"}],type:"upload.CdnFile"},{id:"-1449145777",predicate:"upload.cdnFile",params:[{name:"bytes",type:"bytes"}],type:"upload.CdnFile"},{id:"-914167110",predicate:"cdnPublicKey",params:[{name:"dc_id",type:"int"},{name:"public_key",type:"string"}],type:"CdnPublicKey"},{id:"1462101002",predicate:"cdnConfig",params:[{name:"public_keys",type:"Vector<CdnPublicKey>"}],type:"CdnConfig"},{id:"-283684427",predicate:"pageBlockChannel",params:[{name:"channel",type:"Chat"}],type:"PageBlock"}],methods:[{id:"-878758099",method:"invokeAfterMsg",params:[{name:"msg_id",type:"long"},{name:"query",type:"!X"}],type:"X"},{id:"1036301552",method:"invokeAfterMsgs",params:[{name:"msg_ids",type:"Vector<long>"},{name:"query",type:"!X"}],type:"X"},{id:"1877286395",method:"auth.checkPhone",params:[{name:"phone_number",type:"string"}],type:"auth.CheckedPhone"},{id:"-2035355412",method:"auth.sendCode",params:[{name:"flags",type:"#"},{name:"allow_flashcall",type:"flags.0?true"},{name:"phone_number",type:"string"},{name:"current_number",type:"flags.0?Bool"},{name:"api_id",type:"int"},{name:"api_hash",type:"string"}],type:"auth.SentCode"},{id:"453408308",method:"auth.signUp",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"auth.Authorization"},{id:"-1126886015",method:"auth.signIn",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"}],type:"auth.Authorization"},{id:"1461180992",method:"auth.logOut",params:[],type:"Bool"},{id:"-1616179942",method:"auth.resetAuthorizations",params:[],type:"Bool"},{id:"1998331287",method:"auth.sendInvites",params:[{name:"phone_numbers",type:"Vector<string>"},{name:"message",type:"string"}],type:"Bool"},{id:"-440401971",method:"auth.exportAuthorization",params:[{name:"dc_id",type:"int"}],type:"auth.ExportedAuthorization"},{id:"-470837741",method:"auth.importAuthorization",params:[{name:"id",type:"int"},{name:"bytes",type:"bytes"}],type:"auth.Authorization"},{id:"-841733627",method:"auth.bindTempAuthKey",params:[{name:"perm_auth_key_id",type:"long"},{name:"nonce",type:"long"},{name:"expires_at",type:"int"},{name:"encrypted_message",type:"bytes"}],type:"Bool"},{id:"1669245048",method:"account.registerDevice",params:[{name:"token_type",type:"int"},{name:"token",type:"string"}],type:"Bool"},{id:"1707432768",method:"account.unregisterDevice",params:[{name:"token_type",type:"int"},{name:"token",type:"string"}],type:"Bool"},{id:"-2067899501",method:"account.updateNotifySettings",params:[{name:"peer",type:"InputNotifyPeer"},{name:"settings",type:"InputPeerNotifySettings"}],type:"Bool"},{id:"313765169",method:"account.getNotifySettings",params:[{name:"peer",type:"InputNotifyPeer"}],type:"PeerNotifySettings"},{id:"-612493497",method:"account.resetNotifySettings",params:[],type:"Bool"},{id:"2018596725",method:"account.updateProfile",params:[{name:"flags",type:"#"},{name:"first_name",type:"flags.0?string"},{name:"last_name",type:"flags.1?string"},{name:"about",type:"flags.2?string"}],type:"User"},{id:"1713919532",method:"account.updateStatus",params:[{name:"offline",type:"Bool"}],type:"Bool"},{id:"-1068696894",method:"account.getWallPapers",params:[],type:"Vector<WallPaper>"},{id:"-1374118561",method:"account.reportPeer",params:[{name:"peer",type:"InputPeer"},{name:"reason",type:"ReportReason"}],type:"Bool"},{id:"227648840",method:"users.getUsers",params:[{name:"id",type:"Vector<InputUser>"}],type:"Vector<User>"},{id:"-902781519",method:"users.getFullUser",params:[{name:"id",type:"InputUser"}],type:"UserFull"},{id:"-995929106",method:"contacts.getStatuses",params:[],type:"Vector<ContactStatus>"},{id:"583445000",method:"contacts.getContacts",params:[{name:"hash",type:"string"}],type:"contacts.Contacts"},{id:"-634342611",method:"contacts.importContacts",params:[{name:"contacts",type:"Vector<InputContact>"},{name:"replace",type:"Bool"}],type:"contacts.ImportedContacts"},{id:"-1902823612",method:"contacts.deleteContact",params:[{name:"id",type:"InputUser"}],type:"contacts.Link"},{id:"1504393374",method:"contacts.deleteContacts",params:[{name:"id",type:"Vector<InputUser>"}],type:"Bool"},{id:"858475004",method:"contacts.block",params:[{name:"id",type:"InputUser"}],type:"Bool"},{id:"-448724803",method:"contacts.unblock",params:[{name:"id",type:"InputUser"}],type:"Bool"},{id:"-176409329",method:"contacts.getBlocked",params:[{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"contacts.Blocked"},{id:"-2065352905",method:"contacts.exportCard",params:[],type:"Vector<int>"},{id:"1340184318",method:"contacts.importCard",params:[{name:"export_card",type:"Vector<int>"}],type:"User"},{id:"1109588596",method:"messages.getMessages",params:[{name:"id",type:"Vector<int>"}],type:"messages.Messages"},{id:"421243333",method:"messages.getDialogs",params:[{name:"flags",
type:"#"},{name:"exclude_pinned",type:"flags.0?true"},{name:"offset_date",type:"int"},{name:"offset_id",type:"int"},{name:"offset_peer",type:"InputPeer"},{name:"limit",type:"int"}],type:"messages.Dialogs"},{id:"-1347868602",method:"messages.getHistory",params:[{name:"peer",type:"InputPeer"},{name:"offset_id",type:"int"},{name:"offset_date",type:"int"},{name:"add_offset",type:"int"},{name:"limit",type:"int"},{name:"max_id",type:"int"},{name:"min_id",type:"int"}],type:"messages.Messages"},{id:"-732523960",method:"messages.search",params:[{name:"flags",type:"#"},{name:"peer",type:"InputPeer"},{name:"q",type:"string"},{name:"filter",type:"MessagesFilter"},{name:"min_date",type:"int"},{name:"max_date",type:"int"},{name:"offset",type:"int"},{name:"max_id",type:"int"},{name:"limit",type:"int"}],type:"messages.Messages"},{id:"238054714",method:"messages.readHistory",params:[{name:"peer",type:"InputPeer"},{name:"max_id",type:"int"}],type:"messages.AffectedMessages"},{id:"469850889",method:"messages.deleteHistory",params:[{name:"flags",type:"#"},{name:"just_clear",type:"flags.0?true"},{name:"peer",type:"InputPeer"},{name:"max_id",type:"int"}],type:"messages.AffectedHistory"},{id:"-443640366",method:"messages.deleteMessages",params:[{name:"flags",type:"#"},{name:"revoke",type:"flags.0?true"},{name:"id",type:"Vector<int>"}],type:"messages.AffectedMessages"},{id:"94983360",method:"messages.receivedMessages",params:[{name:"max_id",type:"int"}],type:"Vector<ReceivedNotifyMessage>"},{id:"-1551737264",method:"messages.setTyping",params:[{name:"peer",type:"InputPeer"},{name:"action",type:"SendMessageAction"}],type:"Bool"},{id:"-91733382",method:"messages.sendMessage",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"clear_draft",type:"flags.7?true"},{name:"peer",type:"InputPeer"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"message",type:"string"},{name:"random_id",type:"long"},{name:"reply_markup",type:"flags.2?ReplyMarkup"},{name:"entities",type:"flags.3?Vector<MessageEntity>"}],type:"Updates"},{id:"-923703407",method:"messages.sendMedia",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"clear_draft",type:"flags.7?true"},{name:"peer",type:"InputPeer"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"media",type:"InputMedia"},{name:"random_id",type:"long"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"Updates"},{id:"1888354709",method:"messages.forwardMessages",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"with_my_score",type:"flags.8?true"},{name:"from_peer",type:"InputPeer"},{name:"id",type:"Vector<int>"},{name:"random_id",type:"Vector<long>"},{name:"to_peer",type:"InputPeer"}],type:"Updates"},{id:"-820669733",method:"messages.reportSpam",params:[{name:"peer",type:"InputPeer"}],type:"Bool"},{id:"-1460572005",method:"messages.hideReportSpam",params:[{name:"peer",type:"InputPeer"}],type:"Bool"},{id:"913498268",method:"messages.getPeerSettings",params:[{name:"peer",type:"InputPeer"}],type:"PeerSettings"},{id:"1013621127",method:"messages.getChats",params:[{name:"id",type:"Vector<int>"}],type:"messages.Chats"},{id:"998448230",method:"messages.getFullChat",params:[{name:"chat_id",type:"int"}],type:"messages.ChatFull"},{id:"-599447467",method:"messages.editChatTitle",params:[{name:"chat_id",type:"int"},{name:"title",type:"string"}],type:"Updates"},{id:"-900957736",method:"messages.editChatPhoto",params:[{name:"chat_id",type:"int"},{name:"photo",type:"InputChatPhoto"}],type:"Updates"},{id:"-106911223",method:"messages.addChatUser",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"InputUser"},{name:"fwd_limit",type:"int"}],type:"Updates"},{id:"-530505962",method:"messages.deleteChatUser",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"InputUser"}],type:"Updates"},{id:"164303470",method:"messages.createChat",params:[{name:"users",type:"Vector<InputUser>"},{name:"title",type:"string"}],type:"Updates"},{id:"-304838614",method:"updates.getState",params:[],type:"updates.State"},{id:"630429265",method:"updates.getDifference",params:[{name:"flags",type:"#"},{name:"pts",type:"int"},{name:"pts_total_limit",type:"flags.0?int"},{name:"date",type:"int"},{name:"qts",type:"int"}],type:"updates.Difference"},{id:"-256159406",method:"photos.updateProfilePhoto",params:[{name:"id",type:"InputPhoto"}],type:"UserProfilePhoto"},{id:"1328726168",method:"photos.uploadProfilePhoto",params:[{name:"file",type:"InputFile"}],type:"photos.Photo"},{id:"-2016444625",method:"photos.deletePhotos",params:[{name:"id",type:"Vector<InputPhoto>"}],type:"Vector<long>"},{id:"-1291540959",method:"upload.saveFilePart",params:[{name:"file_id",type:"long"},{name:"file_part",type:"int"},{name:"bytes",type:"bytes"}],type:"Bool"},{id:"-475607115",method:"upload.getFile",params:[{name:"location",type:"InputFileLocation"},{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"upload.File"},{id:"-990308245",method:"help.getConfig",params:[],type:"Config"},{id:"531836966",method:"help.getNearestDc",params:[],type:"NearestDc"},{id:"-1372724842",method:"help.getAppUpdate",params:[],type:"help.AppUpdate"},{id:"1862465352",method:"help.saveAppLog",params:[{name:"events",type:"Vector<InputAppEvent>"}],type:"Bool"},{id:"1295590211",method:"help.getInviteText",params:[],type:"help.InviteText"},{id:"-1848823128",method:"photos.getUserPhotos",params:[{name:"user_id",type:"InputUser"},{name:"offset",type:"int"},{name:"max_id",type:"long"},{name:"limit",type:"int"}],type:"photos.Photos"},{id:"865483769",method:"messages.forwardMessage",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"random_id",type:"long"}],type:"Updates"},{id:"651135312",method:"messages.getDhConfig",params:[{name:"version",type:"int"},{name:"random_length",type:"int"}],type:"messages.DhConfig"},{id:"-162681021",method:"messages.requestEncryption",params:[{name:"user_id",type:"InputUser"},{name:"random_id",type:"int"},{name:"g_a",type:"bytes"}],type:"EncryptedChat"},{id:"1035731989",method:"messages.acceptEncryption",params:[{name:"peer",type:"InputEncryptedChat"},{name:"g_b",type:"bytes"},{name:"key_fingerprint",type:"long"}],type:"EncryptedChat"},{id:"-304536635",method:"messages.discardEncryption",params:[{name:"chat_id",type:"int"}],type:"Bool"},{id:"2031374829",method:"messages.setEncryptedTyping",params:[{name:"peer",type:"InputEncryptedChat"},{name:"typing",type:"Bool"}],type:"Bool"},{id:"2135648522",method:"messages.readEncryptedHistory",params:[{name:"peer",type:"InputEncryptedChat"},{name:"max_date",type:"int"}],type:"Bool"},{id:"-1451792525",method:"messages.sendEncrypted",params:[{name:"peer",type:"InputEncryptedChat"},{name:"random_id",type:"long"},{name:"data",type:"bytes"}],type:"messages.SentEncryptedMessage"},{id:"-1701831834",method:"messages.sendEncryptedFile",params:[{name:"peer",type:"InputEncryptedChat"},{name:"random_id",type:"long"},{name:"data",type:"bytes"},{name:"file",type:"InputEncryptedFile"}],type:"messages.SentEncryptedMessage"},{id:"852769188",method:"messages.sendEncryptedService",params:[{name:"peer",type:"InputEncryptedChat"},{name:"random_id",type:"long"},{name:"data",type:"bytes"}],type:"messages.SentEncryptedMessage"},{id:"1436924774",method:"messages.receivedQueue",params:[{name:"max_qts",type:"int"}],type:"Vector<long>"},{id:"1259113487",method:"messages.reportEncryptedSpam",params:[{name:"peer",type:"InputEncryptedChat"}],type:"Bool"},{id:"-562337987",method:"upload.saveBigFilePart",params:[{name:"file_id",type:"long"},{name:"file_part",type:"int"},{name:"file_total_parts",type:"int"},{name:"bytes",type:"bytes"}],type:"Bool"},{id:"1769565673",method:"initConnection",params:[{name:"api_id",type:"int"},{name:"device_model",type:"string"},{name:"system_version",type:"string"},{name:"app_version",type:"string"},{name:"lang_code",type:"string"},{name:"query",type:"!X"}],type:"X"},{id:"-1663104819",method:"help.getSupport",params:[],type:"help.Support"},{id:"916930423",method:"messages.readMessageContents",params:[{name:"id",type:"Vector<int>"}],type:"messages.AffectedMessages"},{id:"655677548",method:"account.checkUsername",params:[{name:"username",type:"string"}],type:"Bool"},{id:"1040964988",method:"account.updateUsername",params:[{name:"username",type:"string"}],type:"User"},{id:"301470424",method:"contacts.search",params:[{name:"q",type:"string"},{name:"limit",type:"int"}],type:"contacts.Found"},{id:"-623130288",method:"account.getPrivacy",params:[{name:"key",type:"InputPrivacyKey"}],type:"account.PrivacyRules"},{id:"-906486552",method:"account.setPrivacy",params:[{name:"key",type:"InputPrivacyKey"},{name:"rules",type:"Vector<InputPrivacyRule>"}],type:"account.PrivacyRules"},{id:"1099779595",method:"account.deleteAccount",params:[{name:"reason",type:"string"}],type:"Bool"},{id:"150761757",method:"account.getAccountTTL",params:[],type:"AccountDaysTTL"},{id:"608323678",method:"account.setAccountTTL",params:[{name:"ttl",type:"AccountDaysTTL"}],type:"Bool"},{id:"-627372787",method:"invokeWithLayer",params:[{name:"layer",type:"int"},{name:"query",type:"!X"}],type:"X"},{id:"-113456221",method:"contacts.resolveUsername",params:[{name:"username",type:"string"}],type:"contacts.ResolvedPeer"},{id:"149257707",method:"account.sendChangePhoneCode",params:[{name:"flags",type:"#"},{name:"allow_flashcall",type:"flags.0?true"},{name:"phone_number",type:"string"},{name:"current_number",type:"flags.0?Bool"}],type:"auth.SentCode"},{id:"1891839707",method:"account.changePhone",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"}],type:"User"},{id:"479598769",method:"messages.getAllStickers",params:[{name:"hash",type:"int"}],type:"messages.AllStickers"},{id:"954152242",method:"account.updateDeviceLocked",params:[{name:"period",type:"int"}],type:"Bool"},{id:"1738800940",method:"auth.importBotAuthorization",params:[{name:"flags",type:"int"},{name:"api_id",type:"int"},{name:"api_hash",type:"string"},{name:"bot_auth_token",type:"string"}],type:"auth.Authorization"},{id:"623001124",method:"messages.getWebPagePreview",params:[{name:"message",type:"string"}],type:"MessageMedia"},{id:"-484392616",method:"account.getAuthorizations",params:[],type:"account.Authorizations"},{id:"-545786948",method:"account.resetAuthorization",params:[{name:"hash",type:"long"}],type:"Bool"},{id:"1418342645",method:"account.getPassword",params:[],type:"account.Password"},{id:"-1131605573",method:"account.getPasswordSettings",params:[{name:"current_password_hash",type:"bytes"}],type:"account.PasswordSettings"},{id:"-92517498",method:"account.updatePasswordSettings",params:[{name:"current_password_hash",type:"bytes"},{name:"new_settings",type:"account.PasswordInputSettings"}],type:"Bool"},{id:"174260510",method:"auth.checkPassword",params:[{name:"password_hash",type:"bytes"}],type:"auth.Authorization"},{id:"-661144474",method:"auth.requestPasswordRecovery",params:[],type:"auth.PasswordRecovery"},{id:"1319464594",method:"auth.recoverPassword",params:[{name:"code",type:"string"}],type:"auth.Authorization"},{id:"-1080796745",method:"invokeWithoutUpdates",params:[{name:"query",type:"!X"}],type:"X"},{id:"2106086025",method:"messages.exportChatInvite",params:[{name:"chat_id",type:"int"}],type:"ExportedChatInvite"},{id:"1051570619",method:"messages.checkChatInvite",params:[{name:"hash",type:"string"}],type:"ChatInvite"},{id:"1817183516",method:"messages.importChatInvite",params:[{name:"hash",type:"string"}],type:"Updates"},{id:"639215886",method:"messages.getStickerSet",params:[{name:"stickerset",type:"InputStickerSet"}],type:"messages.StickerSet"},{id:"-946871200",method:"messages.installStickerSet",params:[{name:"stickerset",type:"InputStickerSet"},{name:"archived",type:"Bool"}],type:"messages.StickerSetInstallResult"},{id:"-110209570",method:"messages.uninstallStickerSet",params:[{name:"stickerset",type:"InputStickerSet"}],type:"Bool"},{id:"-421563528",method:"messages.startBot",params:[{name:"bot",type:"InputUser"},{name:"peer",type:"InputPeer"},{name:"random_id",type:"long"},{name:"start_param",type:"string"}],type:"Updates"},{id:"-1877938321",method:"help.getAppChangelog",params:[{name:"prev_app_version",type:"string"}],type:"Updates"},{id:"-993483427",method:"messages.getMessagesViews",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"Vector<int>"},{name:"increment",type:"Bool"}],type:"Vector<int>"},{id:"-871347913",method:"channels.readHistory",params:[{name:"channel",type:"InputChannel"},{name:"max_id",type:"int"}],type:"Bool"},{id:"-2067661490",method:"channels.deleteMessages",params:[{name:"channel",type:"InputChannel"},{name:"id",type:"Vector<int>"}],type:"messages.AffectedMessages"},{id:"-787622117",method:"channels.deleteUserHistory",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"}],type:"messages.AffectedHistory"},{id:"-32999408",method:"channels.reportSpam",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"},{name:"id",type:"Vector<int>"}],type:"Bool"},{id:"-1814580409",method:"channels.getMessages",params:[{name:"channel",type:"InputChannel"},{name:"id",type:"Vector<int>"}],type:"messages.Messages"},{id:"618237842",method:"channels.getParticipants",params:[{name:"channel",type:"InputChannel"},{name:"filter",type:"ChannelParticipantsFilter"},{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"channels.ChannelParticipants"},{id:"1416484774",method:"channels.getParticipant",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"}],type:"channels.ChannelParticipant"},{id:"176122811",method:"channels.getChannels",params:[{name:"id",type:"Vector<InputChannel>"}],type:"messages.Chats"},{id:"141781513",method:"channels.getFullChannel",params:[{name:"channel",type:"InputChannel"}],type:"messages.ChatFull"},{id:"-192332417",method:"channels.createChannel",params:[{name:"flags",type:"#"},{name:"broadcast",type:"flags.0?true"},{name:"megagroup",type:"flags.1?true"},{name:"title",type:"string"},{name:"about",type:"string"}],type:"Updates"},{id:"333610782",method:"channels.editAbout",params:[{name:"channel",type:"InputChannel"},{name:"about",type:"string"}],type:"Bool"},{id:"-344583728",method:"channels.editAdmin",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"},{name:"role",type:"ChannelParticipantRole"}],type:"Updates"},{id:"1450044624",method:"channels.editTitle",params:[{name:"channel",type:"InputChannel"},{name:"title",type:"string"}],type:"Updates"},{id:"-248621111",method:"channels.editPhoto",params:[{name:"channel",type:"InputChannel"},{name:"photo",type:"InputChatPhoto"}],type:"Updates"},{id:"283557164",method:"channels.checkUsername",params:[{name:"channel",type:"InputChannel"},{name:"username",type:"string"}],type:"Bool"},{id:"890549214",method:"channels.updateUsername",params:[{name:"channel",type:"InputChannel"},{name:"username",type:"string"}],type:"Bool"},{id:"615851205",method:"channels.joinChannel",params:[{name:"channel",type:"InputChannel"}],type:"Updates"},{id:"-130635115",method:"channels.leaveChannel",params:[{name:"channel",type:"InputChannel"}],type:"Updates"},{id:"429865580",method:"channels.inviteToChannel",params:[{name:"channel",type:"InputChannel"},{name:"users",type:"Vector<InputUser>"}],type:"Updates"},{id:"-1502421484",method:"channels.kickFromChannel",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"},{name:"kicked",type:"Bool"}],type:"Updates"},{id:"-950663035",method:"channels.exportInvite",params:[{name:"channel",type:"InputChannel"}],type:"ExportedChatInvite"},{id:"-1072619549",method:"channels.deleteChannel",params:[{name:"channel",type:"InputChannel"}],type:"Updates"},{id:"51854712",method:"updates.getChannelDifference",params:[{name:"flags",type:"#"},{name:"force",type:"flags.0?true"},{name:"channel",type:"InputChannel"},{name:"filter",type:"ChannelMessagesFilter"},{name:"pts",type:"int"},{name:"limit",type:"int"}],type:"updates.ChannelDifference"},{id:"-326379039",method:"messages.toggleChatAdmins",params:[{name:"chat_id",type:"int"},{name:"enabled",type:"Bool"}],type:"Updates"},{id:"-1444503762",method:"messages.editChatAdmin",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"InputUser"},{name:"is_admin",type:"Bool"}],type:"Bool"},{id:"363051235",method:"messages.migrateChat",params:[{name:"chat_id",type:"int"}],type:"Updates"},{id:"-1640190800",method:"messages.searchGlobal",params:[{name:"q",type:"string"},{name:"offset_date",type:"int"},{name:"offset_peer",type:"InputPeer"},{name:"offset_id",type:"int"},{name:"limit",type:"int"}],type:"messages.Messages"},{id:"889286899",method:"help.getTermsOfService",params:[],type:"help.TermsOfService"},{id:"2016638777",method:"messages.reorderStickerSets",params:[{name:"flags",type:"#"},{name:"masks",type:"flags.0?true"},{name:"order",type:"Vector<long>"}],type:"Bool"},{id:"864953444",method:"messages.getDocumentByHash",params:[{name:"sha256",type:"bytes"},{name:"size",type:"int"},{name:"mime_type",type:"string"}],type:"Document"},{id:"-1080395925",method:"messages.searchGifs",params:[{name:"q",type:"string"},{name:"offset",type:"int"}],type:"messages.FoundGifs"},{id:"-2084618926",method:"messages.getSavedGifs",params:[{name:"hash",type:"int"}],type:"messages.SavedGifs"},{id:"846868683",method:"messages.saveGif",params:[{name:"id",type:"InputDocument"},{name:"unsave",type:"Bool"}],type:"Bool"},{id:"1364105629",method:"messages.getInlineBotResults",params:[{name:"flags",type:"#"},{name:"bot",type:"InputUser"},{name:"peer",type:"InputPeer"},{name:"geo_point",type:"flags.0?InputGeoPoint"},{name:"query",type:"string"},{name:"offset",type:"string"}],type:"messages.BotResults"},{id:"-346119674",method:"messages.setInlineBotResults",params:[{name:"flags",type:"#"},{name:"gallery",type:"flags.0?true"},{name:"private",type:"flags.1?true"},{name:"query_id",type:"long"},{name:"results",type:"Vector<InputBotInlineResult>"},{name:"cache_time",type:"int"},{name:"next_offset",type:"flags.2?string"},{name:"switch_pm",type:"flags.3?InlineBotSwitchPM"}],type:"Bool"},{id:"-1318189314",method:"messages.sendInlineBotResult",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"clear_draft",type:"flags.7?true"},{name:"peer",type:"InputPeer"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"random_id",type:"long"},{name:"query_id",type:"long"},{name:"id",type:"string"}],type:"Updates"},{id:"1231065863",method:"channels.toggleInvites",params:[{name:"channel",type:"InputChannel"},{name:"enabled",type:"Bool"}],type:"Updates"},{id:"-934882771",method:"channels.exportMessageLink",params:[{name:"channel",type:"InputChannel"},{name:"id",type:"int"}],type:"ExportedMessageLink"},{id:"527021574",method:"channels.toggleSignatures",params:[{name:"channel",type:"InputChannel"},{name:"enabled",type:"Bool"}],type:"Updates"},{id:"-1490162350",method:"channels.updatePinnedMessage",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.0?true"},{name:"channel",type:"InputChannel"},{name:"id",type:"int"}],type:"Updates"},{id:"1056025023",method:"auth.resendCode",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"}],type:"auth.SentCode"},{id:"520357240",method:"auth.cancelCode",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"}],type:"Bool"},{id:"-39416522",method:"messages.getMessageEditData",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"int"}],type:"messages.MessageEditData"},{id:"-829299510",method:"messages.editMessage",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"message",type:"flags.11?string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"},{name:"entities",type:"flags.3?Vector<MessageEntity>"}],type:"Updates"},{id:"319564933",method:"messages.editInlineBotMessage",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"id",type:"InputBotInlineMessageID"},{name:"message",type:"flags.11?string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"},{name:"entities",type:"flags.3?Vector<MessageEntity>"}],type:"Bool"},{id:"-2130010132",method:"messages.getBotCallbackAnswer",params:[{name:"flags",type:"#"},{name:"game",type:"flags.1?true"},{name:"peer",type:"InputPeer"},{name:"msg_id",type:"int"},{name:"data",type:"flags.0?bytes"}],type:"messages.BotCallbackAnswer"},{id:"-712043766",method:"messages.setBotCallbackAnswer",params:[{name:"flags",type:"#"},{name:"alert",type:"flags.1?true"},{name:"query_id",type:"long"},{name:"message",type:"flags.0?string"},{name:"url",type:"flags.2?string"},{name:"cache_time",type:"int"}],type:"Bool"},{id:"-728224331",method:"contacts.getTopPeers",params:[{name:"flags",type:"#"},{name:"correspondents",type:"flags.0?true"},{name:"bots_pm",type:"flags.1?true"},{name:"bots_inline",type:"flags.2?true"},{name:"phone_calls",type:"flags.3?true"},{name:"groups",type:"flags.10?true"},{name:"channels",type:"flags.15?true"},{name:"offset",type:"int"},{name:"limit",type:"int"},{name:"hash",type:"int"}],type:"contacts.TopPeers"},{id:"451113900",method:"contacts.resetTopPeerRating",params:[{name:"category",type:"TopPeerCategory"},{name:"peer",type:"InputPeer"}],type:"Bool"},{id:"764901049",method:"messages.getPeerDialogs",params:[{name:"peers",type:"Vector<InputPeer>"}],type:"messages.PeerDialogs"},{id:"-1137057461",method:"messages.saveDraft",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"peer",type:"InputPeer"},{name:"message",type:"string"},{name:"entities",type:"flags.3?Vector<MessageEntity>"}],type:"Bool"},{id:"1782549861",method:"messages.getAllDrafts",params:[],type:"Updates"},{id:"766298703",method:"messages.getFeaturedStickers",params:[{name:"hash",type:"int"}],type:"messages.FeaturedStickers"},{id:"1527873830",method:"messages.readFeaturedStickers",params:[{name:"id",type:"Vector<long>"}],type:"Bool"},{id:"1587647177",method:"messages.getRecentStickers",params:[{name:"flags",type:"#"},{name:"attached",type:"flags.0?true"},{name:"hash",type:"int"}],type:"messages.RecentStickers"},{id:"958863608",method:"messages.saveRecentSticker",params:[{name:"flags",type:"#"},{name:"attached",type:"flags.0?true"},{name:"id",type:"InputDocument"},{name:"unsave",type:"Bool"}],type:"Bool"},{id:"-1986437075",method:"messages.clearRecentStickers",params:[{name:"flags",type:"#"},{name:"attached",type:"flags.0?true"}],type:"Bool"},{id:"1475442322",method:"messages.getArchivedStickers",params:[{name:"flags",type:"#"},{name:"masks",type:"flags.0?true"},{name:"offset_id",type:"long"},{name:"limit",type:"int"}],type:"messages.ArchivedStickers"},{id:"353818557",method:"account.sendConfirmPhoneCode",params:[{name:"flags",type:"#"},{name:"allow_flashcall",type:"flags.0?true"},{name:"hash",type:"string"},{name:"current_number",type:"flags.0?Bool"}],type:"auth.SentCode"},{id:"1596029123",method:"account.confirmPhone",params:[{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"}],type:"Bool"},{id:"-1920105769",method:"channels.getAdminedPublicChannels",params:[],type:"messages.Chats"},{id:"1706608543",method:"messages.getMaskStickers",params:[{name:"hash",type:"int"}],type:"messages.AllStickers"},{id:"-866424884",method:"messages.getAttachedStickers",params:[{name:"media",type:"InputStickeredMedia"}],type:"Vector<StickerSetCovered>"},{id:"-1907842680",method:"auth.dropTempAuthKeys",params:[{name:"except_auth_keys",type:"Vector<long>"}],type:"Bool"},{id:"-1896289088",method:"messages.setGameScore",params:[{name:"flags",type:"#"},{name:"edit_message",type:"flags.0?true"},{name:"force",type:"flags.1?true"},{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"user_id",type:"InputUser"},{name:"score",type:"int"}],type:"Updates"},{id:"363700068",method:"messages.setInlineGameScore",params:[{name:"flags",type:"#"},{name:"edit_message",type:"flags.0?true"},{name:"force",type:"flags.1?true"},{name:"id",type:"InputBotInlineMessageID"},{name:"user_id",type:"InputUser"},{name:"score",type:"int"}],type:"Bool"},{id:"-400399203",method:"messages.getGameHighScores",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"user_id",type:"InputUser"}],type:"messages.HighScores"},{id:"258170395",method:"messages.getInlineGameHighScores",params:[{name:"id",type:"InputBotInlineMessageID"},{name:"user_id",type:"InputUser"}],type:"messages.HighScores"},{id:"218777796",method:"messages.getCommonChats",params:[{name:"user_id",type:"InputUser"},{name:"max_id",type:"int"},{name:"limit",type:"int"}],type:"messages.Chats"},{id:"-341307408",method:"messages.getAllChats",params:[{name:"except_ids",type:"Vector<int>"}],type:"messages.Chats"},{id:"-333262899",method:"help.setBotUpdatesStatus",params:[{name:"pending_updates_count",type:"int"},{name:"message",type:"string"}],type:"Bool"},{id:"852135825",method:"messages.getWebPage",params:[{name:"url",type:"string"},{name:"hash",type:"int"}],type:"WebPage"},{id:"847887978",method:"messages.toggleDialogPin",params:[{name:"flags",type:"#"},{name:"pinned",type:"flags.0?true"},{name:"peer",type:"InputPeer"}],type:"Bool"},{id:"-1784678844",method:"messages.reorderPinnedDialogs",params:[{name:"flags",type:"#"},{name:"force",type:"flags.0?true"},{name:"order",type:"Vector<InputPeer>"}],type:"Bool"},{id:"-497756594",method:"messages.getPinnedDialogs",params:[],type:"messages.PeerDialogs"},{id:"-1440257555",method:"bots.sendCustomRequest",params:[{name:"custom_method",type:"string"},{name:"params",type:"DataJSON"}],type:"DataJSON"},{id:"-434028723",method:"bots.answerWebhookJSONQuery",params:[{name:"query_id",type:"long"},{name:"data",type:"DataJSON"}],type:"Bool"},{id:"619086221",method:"upload.getWebFile",params:[{name:"location",type:"InputWebFileLocation"},{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"upload.WebFile"},{id:"-1712285883",method:"payments.getPaymentForm",params:[{name:"msg_id",type:"int"}],type:"payments.PaymentForm"},{id:"-1601001088",method:"payments.getPaymentReceipt",params:[{name:"msg_id",type:"int"}],type:"payments.PaymentReceipt"},{id:"1997180532",method:"payments.validateRequestedInfo",params:[{name:"flags",type:"#"},{name:"save",type:"flags.0?true"},{name:"msg_id",type:"int"},{name:"info",type:"PaymentRequestedInfo"}],type:"payments.ValidatedRequestedInfo"},{id:"730364339",method:"payments.sendPaymentForm",params:[{name:"flags",type:"#"},{name:"msg_id",type:"int"},{name:"requested_info_id",type:"flags.0?string"},{name:"shipping_option_id",type:"flags.1?string"},{name:"credentials",type:"InputPaymentCredentials"}],type:"payments.PaymentResult"},{id:"1250046590",method:"account.getTmpPassword",params:[{name:"password_hash",type:"bytes"},{name:"period",type:"int"}],type:"account.TmpPassword"},{id:"578650699",method:"payments.getSavedInfo",params:[],type:"payments.SavedInfo"},{id:"-667062079",method:"payments.clearSavedInfo",params:[{name:"flags",type:"#"},{name:"credentials",type:"flags.0?true"},{name:"info",type:"flags.1?true"}],type:"Bool"},{id:"-436833542",method:"messages.setBotShippingResults",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"error",type:"flags.0?string"},{name:"shipping_options",type:"flags.1?Vector<ShippingOption>"}],type:"Bool"},{id:"163765653",method:"messages.setBotPrecheckoutResults",params:[{name:"flags",type:"#"},{name:"success",type:"flags.1?true"},{name:"query_id",type:"long"},{name:"error",type:"flags.0?string"}],type:"Bool"},{id:"-1680314774",method:"stickers.createStickerSet",params:[{name:"flags",type:"#"},{name:"masks",type:"flags.0?true"},{name:"user_id",type:"InputUser"},{name:"title",type:"string"},{name:"short_name",type:"string"},{name:"stickers",type:"Vector<InputStickerSetItem>"}],type:"messages.StickerSet"},{id:"69556532",method:"stickers.removeStickerFromSet",params:[{name:"sticker",type:"InputDocument"}],type:"Bool"},{id:"1322714570",method:"stickers.changeStickerPosition",params:[{name:"sticker",type:"InputDocument"},{name:"position",type:"int"}],type:"Bool"},{id:"-2041315650",method:"stickers.addStickerToSet",params:[{name:"stickerset",type:"InputStickerSet"},{name:"sticker",type:"InputStickerSetItem"}],type:"messages.StickerSet"},{id:"1369162417",method:"messages.uploadMedia",params:[{name:"peer",type:"InputPeer"},{name:"media",type:"InputMedia"}],type:"MessageMedia"},{id:"1430593449",method:"phone.getCallConfig",params:[],type:"DataJSON"},{id:"1536537556",method:"phone.requestCall",params:[{name:"user_id",type:"InputUser"},{name:"random_id",type:"int"},{name:"g_a_hash",type:"bytes"},{name:"protocol",type:"PhoneCallProtocol"}],type:"phone.PhoneCall"},{id:"1003664544",method:"phone.acceptCall",params:[{name:"peer",type:"InputPhoneCall"},{name:"g_b",type:"bytes"},{name:"protocol",type:"PhoneCallProtocol"}],type:"phone.PhoneCall"},{id:"788404002",method:"phone.confirmCall",params:[{name:"peer",type:"InputPhoneCall"},{name:"g_a",type:"bytes"},{name:"key_fingerprint",type:"long"},{name:"protocol",type:"PhoneCallProtocol"}],type:"phone.PhoneCall"},{id:"399855457",method:"phone.receivedCall",params:[{name:"peer",type:"InputPhoneCall"}],type:"Bool"},{id:"2027164582",method:"phone.discardCall",params:[{name:"peer",type:"InputPhoneCall"},{name:"duration",type:"int"},{name:"reason",type:"PhoneCallDiscardReason"},{name:"connection_id",type:"long"}],type:"Updates"},{id:"475228724",method:"phone.setCallRating",params:[{name:"peer",type:"InputPhoneCall"},{name:"rating",type:"int"},{name:"comment",type:"string"}],type:"Updates"},{id:"662363518",method:"phone.saveCallDebug",params:[{name:"peer",type:"InputPhoneCall"},{name:"debug",type:"DataJSON"}],type:"Bool"},{id:"536919235",method:"upload.getCdnFile",params:[{name:"file_token",type:"bytes"},{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"upload.CdnFile"},{id:"779755552",method:"upload.reuploadCdnFile",params:[{name:"file_token",type:"bytes"},{name:"request_token",type:"bytes"}],type:"Bool"},{id:"1375900482",method:"help.getCdnConfig",params:[],type:"CdnConfig"}]},Config.Schema.API.layer=66,Config.Emoji={"00a9":["©",["copyright"]],"00ae":["®",["registered"]],"203c":["‼",["bangbang"]],2049:["⁉",["interrobang"]],2122:["™",["tm"]],2139:["ℹ",["information_source"]],2194:["↔",["left_right_arrow"]],2195:["↕",["arrow_up_down"]],2196:["↖",["arrow_upper_left"]],2197:["↗",["arrow_upper_right"]],2198:["↘",["arrow_lower_right"]],2199:["↙",["arrow_lower_left"]],"21a9":["↩",["leftwards_arrow_with_hook"]],"21aa":["↪",["arrow_right_hook"]],"231a":["⌚",["watch"]],"231b":["⌛",["hourglass"]],"23e9":["⏩",["fast_forward"]],"23ea":["⏪",["rewind"]],"23eb":["⏫",["arrow_double_up"]],"23ec":["⏬",["arrow_double_down"]],"23f0":["⏰",["alarm_clock"]],"23f3":["⏳",["hourglass_flowing_sand"]],"24c2":["Ⓜ",["m"]],"25aa":["▪",["black_small_square"]],"25ab":["▫",["white_small_square"]],"25b6":["▶",["arrow_forward"]],"25c0":["◀",["arrow_backward"]],"25fb":["◻",["white_medium_square"]],"25fc":["◼",["black_medium_square"]],"25fd":["◽",["white_medium_small_square"]],"25fe":["◾",["black_medium_small_square"]],2600:["☀",["sunny"]],2601:["☁",["cloud"]],"260e":["☎",["phone","telephone"]],2611:["☑",["ballot_box_with_check"]],2614:["☔",["umbrella"]],2615:["☕",["coffee"]],"261d":["☝",["point_up"]],"263a":["☺",["relaxed"]],2648:["♈",["aries"]],2649:["♉",["taurus"]],"264a":["♊",["gemini"]],"264b":["♋",["cancer"]],"264c":["♌",["leo"]],"264d":["♍",["virgo"]],"264e":["♎",["libra"]],"264f":["♏",["scorpius"]],2650:["♐",["sagittarius"]],2651:["♑",["capricorn"]],2652:["♒",["aquarius"]],2653:["♓",["pisces"]],2660:["♠",["spades"]],2663:["♣",["clubs"]],2665:["♥",["hearts"]],2666:["♦",["diamonds"]],2668:["♨",["hotsprings"]],"267b":["♻",["recycle"]],"267f":["♿",["wheelchair"]],2693:["⚓",["anchor"]],"26a0":["⚠",["warning"]],
"26a1":["⚡",["zap"]],"26aa":["⚪",["white_circle"]],"26ab":["⚫",["black_circle"]],"26bd":["⚽",["soccer"]],"26be":["⚾",["baseball"]],"26c4":["⛄",["snowman"]],"26c5":["⛅",["partly_sunny"]],"26ce":["⛎",["ophiuchus"]],"26d4":["⛔",["no_entry"]],"26ea":["⛪",["church"]],"26f2":["⛲",["fountain"]],"26f3":["⛳",["golf"]],"26f5":["⛵",["boat","sailboat"]],"26fa":["⛺",["tent"]],"26fd":["⛽",["fuelpump"]],2702:["✂",["scissors"]],2705:["✅",["white_check_mark"]],2708:["✈",["airplane"]],2709:["✉",["email","envelope"]],"270a":["✊",["fist"]],"270b":["✋",["hand","raised_hand"]],"270c":["✌",["v"]],"270f":["✏",["pencil2"]],2712:["✒",["black_nib"]],2714:["✔",["heavy_check_mark"]],2716:["✖",["heavy_multiplication_x"]],2728:["✨",["sparkles"]],2733:["✳",["eight_spoked_asterisk"]],2734:["✴",["eight_pointed_black_star"]],2744:["❄",["snowflake"]],2747:["❇",["sparkle"]],"274c":["❌",["x"]],"274e":["❎",["negative_squared_cross_mark"]],2753:["❓",["question"]],2754:["❔",["grey_question"]],2755:["❕",["grey_exclamation"]],2757:["❗",["exclamation","heavy_exclamation_mark"]],2764:["❤",["heart"],"<3"],2795:["➕",["heavy_plus_sign"]],2796:["➖",["heavy_minus_sign"]],2797:["➗",["heavy_division_sign"]],"27a1":["➡",["arrow_right"]],"27b0":["➰",["curly_loop"]],"27bf":["➿",["loop"]],2934:["⤴",["arrow_heading_up"]],2935:["⤵",["arrow_heading_down"]],"2b05":["⬅",["arrow_left"]],"2b06":["⬆",["arrow_up"]],"2b07":["⬇",["arrow_down"]],"2b1b":["⬛",["black_large_square"]],"2b1c":["⬜",["white_large_square"]],"2b50":["⭐",["star"]],"2b55":["⭕",["o"]],3030:["〰",["wavy_dash"]],"303d":["〽",["part_alternation_mark"]],3297:["㊗",["congratulations"]],3299:["㊙",["secret"]],"1f004":["🀄",["mahjong"]],"1f0cf":["🃏",["black_joker"]],"1f170":["🅰",["a"]],"1f171":["🅱",["b"]],"1f17e":["🅾",["o2"]],"1f17f":["🅿",["parking"]],"1f18e":["🆎",["ab"]],"1f191":["🆑",["cl"]],"1f192":["🆒",["cool"]],"1f193":["🆓",["free"]],"1f194":["🆔",["id"]],"1f195":["🆕",["new"]],"1f196":["🆖",["ng"]],"1f197":["🆗",["ok"]],"1f198":["🆘",["sos"]],"1f199":["🆙",["up"]],"1f19a":["🆚",["vs"]],"1f201":["🈁",["koko"]],"1f202":["🈂",["sa"]],"1f21a":["🈚",["u7121"]],"1f22f":["🈯",["u6307"]],"1f232":["🈲",["u7981"]],"1f233":["🈳",["u7a7a"]],"1f234":["🈴",["u5408"]],"1f235":["🈵",["u6e80"]],"1f236":["🈶",["u6709"]],"1f237":["🈷",["u6708"]],"1f238":["🈸",["u7533"]],"1f239":["🈹",["u5272"]],"1f23a":["🈺",["u55b6"]],"1f250":["🉐",["ideograph_advantage"]],"1f251":["🉑",["accept"]],"1f300":["🌀",["cyclone"]],"1f301":["🌁",["foggy"]],"1f302":["🌂",["closed_umbrella"]],"1f303":["🌃",["night_with_stars"]],"1f304":["🌄",["sunrise_over_mountains"]],"1f305":["🌅",["sunrise"]],"1f306":["🌆",["city_sunset"]],"1f307":["🌇",["city_sunrise"]],"1f308":["🌈",["rainbow"]],"1f309":["🌉",["bridge_at_night"]],"1f30a":["🌊",["ocean"]],"1f30b":["🌋",["volcano"]],"1f30c":["🌌",["milky_way"]],"1f30d":["🌍",["earth_africa"]],"1f30e":["🌎",["earth_americas"]],"1f30f":["🌏",["earth_asia"]],"1f310":["🌐",["globe_with_meridians"]],"1f311":["🌑",["new_moon"]],"1f312":["🌒",["waxing_crescent_moon"]],"1f313":["🌓",["first_quarter_moon"]],"1f314":["🌔",["moon","waxing_gibbous_moon"]],"1f315":["🌕",["full_moon"]],"1f316":["🌖",["waning_gibbous_moon"]],"1f317":["🌗",["last_quarter_moon"]],"1f318":["🌘",["waning_crescent_moon"]],"1f319":["🌙",["crescent_moon"]],"1f320":["🌠",["stars"]],"1f31a":["🌚",["new_moon_with_face"]],"1f31b":["🌛",["first_quarter_moon_with_face"]],"1f31c":["🌜",["last_quarter_moon_with_face"]],"1f31d":["🌝",["full_moon_with_face"]],"1f31e":["🌞",["sun_with_face"]],"1f31f":["🌟",["star2"]],"1f330":["🌰",["chestnut"]],"1f331":["🌱",["seedling"]],"1f332":["🌲",["evergreen_tree"]],"1f333":["🌳",["deciduous_tree"]],"1f334":["🌴",["palm_tree"]],"1f335":["🌵",["cactus"]],"1f337":["🌷",["tulip"]],"1f338":["🌸",["cherry_blossom"]],"1f339":["🌹",["rose"]],"1f33a":["🌺",["hibiscus"]],"1f33b":["🌻",["sunflower"]],"1f33c":["🌼",["blossom"]],"1f33d":["🌽",["corn"]],"1f33e":["🌾",["ear_of_rice"]],"1f33f":["🌿",["herb"]],"1f340":["🍀",["four_leaf_clover"]],"1f341":["🍁",["maple_leaf"]],"1f342":["🍂",["fallen_leaf"]],"1f343":["🍃",["leaves"]],"1f344":["🍄",["mushroom"]],"1f345":["🍅",["tomato"]],"1f346":["🍆",["eggplant"]],"1f347":["🍇",["grapes"]],"1f348":["🍈",["melon"]],"1f349":["🍉",["watermelon"]],"1f34a":["🍊",["tangerine"]],"1f34b":["🍋",["lemon"]],"1f34c":["🍌",["banana"]],"1f34d":["🍍",["pineapple"]],"1f34e":["🍎",["apple"]],"1f34f":["🍏",["green_apple"]],"1f350":["🍐",["pear"]],"1f351":["🍑",["peach"]],"1f352":["🍒",["cherries"]],"1f353":["🍓",["strawberry"]],"1f354":["🍔",["hamburger"]],"1f355":["🍕",["pizza"]],"1f356":["🍖",["meat_on_bone"]],"1f357":["🍗",["poultry_leg"]],"1f358":["🍘",["rice_cracker"]],"1f359":["🍙",["rice_ball"]],"1f35a":["🍚",["rice"]],"1f35b":["🍛",["curry"]],"1f35c":["🍜",["ramen"]],"1f35d":["🍝",["spaghetti"]],"1f35e":["🍞",["bread"]],"1f35f":["🍟",["fries"]],"1f360":["🍠",["sweet_potato"]],"1f361":["🍡",["dango"]],"1f362":["🍢",["oden"]],"1f363":["🍣",["sushi"]],"1f364":["🍤",["fried_shrimp"]],"1f365":["🍥",["fish_cake"]],"1f366":["🍦",["icecream"]],"1f367":["🍧",["shaved_ice"]],"1f368":["🍨",["ice_cream"]],"1f369":["🍩",["doughnut"]],"1f36a":["🍪",["cookie"]],"1f36b":["🍫",["chocolate_bar"]],"1f36c":["🍬",["candy"]],"1f36d":["🍭",["lollipop"]],"1f36e":["🍮",["custard"]],"1f36f":["🍯",["honey_pot"]],"1f370":["🍰",["cake"]],"1f371":["🍱",["bento"]],"1f372":["🍲",["stew"]],"1f373":["🍳",["egg"]],"1f374":["🍴",["fork_and_knife"]],"1f375":["🍵",["tea"]],"1f376":["🍶",["sake"]],"1f377":["🍷",["wine_glass"]],"1f378":["🍸",["cocktail"]],"1f379":["🍹",["tropical_drink"]],"1f37a":["🍺",["beer"]],"1f37b":["🍻",["beers"]],"1f37c":["🍼",["baby_bottle"]],"1f380":["🎀",["ribbon"]],"1f381":["🎁",["gift"]],"1f382":["🎂",["birthday"]],"1f383":["🎃",["jack_o_lantern"]],"1f384":["🎄",["christmas_tree"]],"1f385":["🎅",["santa"]],"1f386":["🎆",["fireworks"]],"1f387":["🎇",["sparkler"]],"1f388":["🎈",["balloon"]],"1f389":["🎉",["tada"]],"1f38a":["🎊",["confetti_ball"]],"1f38b":["🎋",["tanabata_tree"]],"1f38c":["🎌",["crossed_flags"]],"1f38d":["🎍",["bamboo"]],"1f38e":["🎎",["dolls"]],"1f38f":["🎏",["flags"]],"1f390":["🎐",["wind_chime"]],"1f391":["🎑",["rice_scene"]],"1f392":["🎒",["school_satchel"]],"1f393":["🎓",["mortar_board"]],"1f3a0":["🎠",["carousel_horse"]],"1f3a1":["🎡",["ferris_wheel"]],"1f3a2":["🎢",["roller_coaster"]],"1f3a3":["🎣",["fishing_pole_and_fish"]],"1f3a4":["🎤",["microphone"]],"1f3a5":["🎥",["movie_camera"]],"1f3a6":["🎦",["cinema"]],"1f3a7":["🎧",["headphones"]],"1f3a8":["🎨",["art"]],"1f3a9":["🎩",["tophat"]],"1f3aa":["🎪",["circus_tent"]],"1f3ab":["🎫",["ticket"]],"1f3ac":["🎬",["clapper"]],"1f3ad":["🎭",["performing_arts"]],"1f3ae":["🎮",["video_game"]],"1f3af":["🎯",["dart"]],"1f3b0":["🎰",["slot_machine"]],"1f3b1":["🎱",["8ball"]],"1f3b2":["🎲",["game_die"]],"1f3b3":["🎳",["bowling"]],"1f3b4":["🎴",["flower_playing_cards"]],"1f3b5":["🎵",["musical_note"]],"1f3b6":["🎶",["notes"]],"1f3b7":["🎷",["saxophone"]],"1f3b8":["🎸",["guitar"]],"1f3b9":["🎹",["musical_keyboard"]],"1f3ba":["🎺",["trumpet"]],"1f3bb":["🎻",["violin"]],"1f3bc":["🎼",["musical_score"]],"1f3bd":["🎽",["running_shirt_with_sash"]],"1f3be":["🎾",["tennis"]],"1f3bf":["🎿",["ski"]],"1f3c0":["🏀",["basketball"]],"1f3c1":["🏁",["checkered_flag"]],"1f3c2":["🏂",["snowboarder"]],"1f3c3":["🏃",["runner","running"]],"1f3c4":["🏄",["surfer"]],"1f3c6":["🏆",["trophy"]],"1f3c7":["🏇",["horse_racing"]],"1f3c8":["🏈",["football"]],"1f3c9":["🏉",["rugby_football"]],"1f3ca":["🏊",["swimmer"]],"1f3e0":["🏠",["house"]],"1f3e1":["🏡",["house_with_garden"]],"1f3e2":["🏢",["office"]],"1f3e3":["🏣",["post_office"]],"1f3e4":["🏤",["european_post_office"]],"1f3e5":["🏥",["hospital"]],"1f3e6":["🏦",["bank"]],"1f3e7":["🏧",["atm"]],"1f3e8":["🏨",["hotel"]],"1f3e9":["🏩",["love_hotel"]],"1f3ea":["🏪",["convenience_store"]],"1f3eb":["🏫",["school"]],"1f3ec":["🏬",["department_store"]],"1f3ed":["🏭",["factory"]],"1f3ee":["🏮",["izakaya_lantern","lantern"]],"1f3ef":["🏯",["japanese_castle"]],"1f3f0":["🏰",["european_castle"]],"1f400":["🐀",["rat"]],"1f401":["🐁",["mouse2"]],"1f402":["🐂",["ox"]],"1f403":["🐃",["water_buffalo"]],"1f404":["🐄",["cow2"]],"1f405":["🐅",["tiger2"]],"1f406":["🐆",["leopard"]],"1f407":["🐇",["rabbit2"]],"1f408":["🐈",["cat2"]],"1f409":["🐉",["dragon"]],"1f40a":["🐊",["crocodile"]],"1f40b":["🐋",["whale2"]],"1f40c":["🐌",["snail"]],"1f40d":["🐍",["snake"]],"1f40e":["🐎",["racehorse"]],"1f40f":["🐏",["ram"]],"1f410":["🐐",["goat"]],"1f411":["🐑",["sheep"]],"1f412":["🐒",["monkey"]],"1f413":["🐓",["rooster"]],"1f414":["🐔",["chicken"]],"1f415":["🐕",["dog2"]],"1f416":["🐖",["pig2"]],"1f417":["🐗",["boar"]],"1f418":["🐘",["elephant"]],"1f419":["🐙",["octopus"]],"1f41a":["🐚",["shell"]],"1f41b":["🐛",["bug"]],"1f41c":["🐜",["ant"]],"1f41d":["🐝",["bee","honeybee"]],"1f41e":["🐞",["beetle"]],"1f41f":["🐟",["fish"]],"1f420":["🐠",["tropical_fish"]],"1f421":["🐡",["blowfish"]],"1f422":["🐢",["turtle"]],"1f423":["🐣",["hatching_chick"]],"1f424":["🐤",["baby_chick"]],"1f425":["🐥",["hatched_chick"]],"1f426":["🐦",["bird"]],"1f427":["🐧",["penguin"]],"1f428":["🐨",["koala"]],"1f429":["🐩",["poodle"]],"1f42a":["🐪",["dromedary_camel"]],"1f42b":["🐫",["camel"]],"1f42c":["🐬",["dolphin","flipper"]],"1f42d":["🐭",["mouse"]],"1f42e":["🐮",["cow"]],"1f42f":["🐯",["tiger"]],"1f430":["🐰",["rabbit"]],"1f431":["🐱",["cat"]],"1f432":["🐲",["dragon_face"]],"1f433":["🐳",["whale"]],"1f434":["🐴",["horse"]],"1f435":["🐵",["monkey_face"]],"1f436":["🐶",["dog"]],"1f437":["🐷",["pig"]],"1f438":["🐸",["frog"]],"1f439":["🐹",["hamster"]],"1f43a":["🐺",["wolf"]],"1f43b":["🐻",["bear"]],"1f43c":["🐼",["panda_face"]],"1f43d":["🐽",["pig_nose"]],"1f43e":["🐾",["feet","paw_prints"]],"1f440":["👀",["eyes"]],"1f442":["👂",["ear"]],"1f443":["👃",["nose"]],"1f444":["👄",["lips"]],"1f445":["👅",["tongue"]],"1f446":["👆",["point_up_2"]],"1f447":["👇",["point_down"]],"1f448":["👈",["point_left"]],"1f449":["👉",["point_right"]],"1f44a":["👊",["facepunch","punch"]],"1f44b":["👋",["wave"]],"1f44c":["👌",["ok_hand"]],"1f44d":["👍",["+1","thumbsup"]],"1f44e":["👎",["-1","thumbsdown"]],"1f44f":["👏",["clap"]],"1f450":["👐",["open_hands"]],"1f451":["👑",["crown"]],"1f452":["👒",["womans_hat"]],"1f453":["👓",["eyeglasses"]],"1f454":["👔",["necktie"]],"1f455":["👕",["shirt","tshirt"]],"1f456":["👖",["jeans"]],"1f457":["👗",["dress"]],"1f458":["👘",["kimono"]],"1f459":["👙",["bikini"]],"1f45a":["👚",["womans_clothes"]],"1f45b":["👛",["purse"]],"1f45c":["👜",["handbag"]],"1f45d":["👝",["pouch"]],"1f45e":["👞",["mans_shoe","shoe"]],"1f45f":["👟",["athletic_shoe"]],"1f460":["👠",["high_heel"]],"1f461":["👡",["sandal"]],"1f462":["👢",["boot"]],"1f463":["👣",["footprints"]],"1f464":["👤",["bust_in_silhouette"]],"1f465":["👥",["busts_in_silhouette"]],"1f466":["👦",["boy"]],"1f467":["👧",["girl"]],"1f468":["👨",["man"]],"1f469":["👩",["woman"]],"1f46a":["👪",["family"]],"1f46b":["👫",["couple"]],"1f46c":["👬",["two_men_holding_hands"]],"1f46d":["👭",["two_women_holding_hands"]],"1f46e":["👮",["cop"]],"1f46f":["👯",["dancers"]],"1f470":["👰",["bride_with_veil"]],"1f471":["👱",["person_with_blond_hair"]],"1f472":["👲",["man_with_gua_pi_mao"]],"1f473":["👳",["man_with_turban"]],"1f474":["👴",["older_man"]],"1f475":["👵",["older_woman"]],"1f476":["👶",["baby"]],"1f477":["👷",["construction_worker"]],"1f478":["👸",["princess"]],"1f479":["👹",["japanese_ogre"]],"1f47a":["👺",["japanese_goblin"]],"1f47b":["👻",["ghost"]],"1f47c":["👼",["angel"]],"1f47d":["👽",["alien"]],"1f47e":["👾",["space_invader"]],"1f47f":["👿",["imp"]],"1f480":["💀",["skull"]],"1f481":["💁",["information_desk_person"]],"1f482":["💂",["guardsman"]],"1f483":["💃",["dancer"]],"1f484":["💄",["lipstick"]],"1f485":["💅",["nail_care"]],"1f486":["💆",["massage"]],"1f487":["💇",["haircut"]],"1f488":["💈",["barber"]],"1f489":["💉",["syringe"]],"1f48a":["💊",["pill"]],"1f48b":["💋",["kiss"]],"1f48c":["💌",["love_letter"]],"1f48d":["💍",["ring"]],"1f48e":["💎",["gem"]],"1f48f":["💏",["couplekiss"]],"1f490":["💐",["bouquet"]],"1f491":["💑",["couple_with_heart"]],"1f492":["💒",["wedding"]],"1f493":["💓",["heartbeat"]],"1f494":["💔",["broken_heart"],"</3"],"1f495":["💕",["two_hearts"]],"1f496":["💖",["sparkling_heart"]],"1f497":["💗",["heartpulse"]],"1f498":["💘",["cupid"]],"1f499":["💙",["blue_heart"],"<3"],"1f49a":["💚",["green_heart"],"<3"],"1f49b":["💛",["yellow_heart"],"<3"],"1f49c":["💜",["purple_heart"],"<3"],"1f49d":["💝",["gift_heart"]],"1f49e":["💞",["revolving_hearts"]],"1f49f":["💟",["heart_decoration"]],"1f4a0":["💠",["diamond_shape_with_a_dot_inside"]],"1f4a1":["💡",["bulb"]],"1f4a2":["💢",["anger"]],"1f4a3":["💣",["bomb"]],"1f4a4":["💤",["zzz"]],"1f4a5":["💥",["boom","collision"]],"1f4a6":["💦",["sweat_drops"]],"1f4a7":["💧",["droplet"]],"1f4a8":["💨",["dash"]],"1f4a9":["💩",["hankey","poop","shit"]],"1f4aa":["💪",["muscle"]],"1f4ab":["💫",["dizzy"]],"1f4ac":["💬",["speech_balloon"]],"1f4ad":["💭",["thought_balloon"]],"1f4ae":["💮",["white_flower"]],"1f4af":["💯",["100"]],"1f4b0":["💰",["moneybag"]],"1f4b1":["💱",["currency_exchange"]],"1f4b2":["💲",["heavy_dollar_sign"]],"1f4b3":["💳",["credit_card"]],"1f4b4":["💴",["yen"]],"1f4b5":["💵",["dollar"]],"1f4b6":["💶",["euro"]],"1f4b7":["💷",["pound"]],"1f4b8":["💸",["money_with_wings"]],"1f4b9":["💹",["chart"]],"1f4ba":["💺",["seat"]],"1f4bb":["💻",["computer"]],"1f4bc":["💼",["briefcase"]],"1f4bd":["💽",["minidisc"]],"1f4be":["💾",["floppy_disk"]],"1f4bf":["💿",["cd"]],"1f4c0":["📀",["dvd"]],"1f4c1":["📁",["file_folder"]],"1f4c2":["📂",["open_file_folder"]],"1f4c3":["📃",["page_with_curl"]],"1f4c4":["📄",["page_facing_up"]],"1f4c5":["📅",["date"]],"1f4c6":["📆",["calendar"]],"1f4c7":["📇",["card_index"]],"1f4c8":["📈",["chart_with_upwards_trend"]],"1f4c9":["📉",["chart_with_downwards_trend"]],"1f4ca":["📊",["bar_chart"]],"1f4cb":["📋",["clipboard"]],"1f4cc":["📌",["pushpin"]],"1f4cd":["📍",["round_pushpin"]],"1f4ce":["📎",["paperclip"]],"1f4cf":["📏",["straight_ruler"]],"1f4d0":["📐",["triangular_ruler"]],"1f4d1":["📑",["bookmark_tabs"]],"1f4d2":["📒",["ledger"]],"1f4d3":["📓",["notebook"]],"1f4d4":["📔",["notebook_with_decorative_cover"]],"1f4d5":["📕",["closed_book"]],"1f4d6":["📖",["book","open_book"]],"1f4d7":["📗",["green_book"]],"1f4d8":["📘",["blue_book"]],"1f4d9":["📙",["orange_book"]],"1f4da":["📚",["books"]],"1f4db":["📛",["name_badge"]],"1f4dc":["📜",["scroll"]],"1f4dd":["📝",["memo","pencil"]],"1f4de":["📞",["telephone_receiver"]],"1f4df":["📟",["pager"]],"1f4e0":["📠",["fax"]],"1f4e1":["📡",["satellite"]],"1f4e2":["📢",["loudspeaker"]],"1f4e3":["📣",["mega"]],"1f4e4":["📤",["outbox_tray"]],"1f4e5":["📥",["inbox_tray"]],"1f4e6":["📦",["package"]],"1f4e7":["📧",["e-mail"]],"1f4e8":["📨",["incoming_envelope"]],"1f4e9":["📩",["envelope_with_arrow"]],"1f4ea":["📪",["mailbox_closed"]],"1f4eb":["📫",["mailbox"]],"1f4ec":["📬",["mailbox_with_mail"]],"1f4ed":["📭",["mailbox_with_no_mail"]],"1f4ee":["📮",["postbox"]],"1f4ef":["📯",["postal_horn"]],"1f4f0":["📰",["newspaper"]],"1f4f1":["📱",["iphone"]],"1f4f2":["📲",["calling"]],"1f4f3":["📳",["vibration_mode"]],"1f4f4":["📴",["mobile_phone_off"]],"1f4f5":["📵",["no_mobile_phones"]],"1f4f6":["📶",["signal_strength"]],"1f4f7":["📷",["camera"]],"1f4f9":["📹",["video_camera"]],"1f4fa":["📺",["tv"]],"1f4fb":["📻",["radio"]],"1f4fc":["📼",["vhs"]],"1f500":["🔀",["twisted_rightwards_arrows"]],"1f501":["🔁",["repeat"]],"1f502":["🔂",["repeat_one"]],"1f503":["🔃",["arrows_clockwise"]],"1f504":["🔄",["arrows_counterclockwise"]],"1f505":["🔅",["low_brightness"]],"1f506":["🔆",["high_brightness"]],"1f507":["🔇",["mute"]],"1f508":["🔉",["speaker"]],"1f509":["🔉",["sound"]],"1f50a":["🔊",["loud_sound"]],"1f50b":["🔋",["battery"]],"1f50c":["🔌",["electric_plug"]],"1f50d":["🔍",["mag"]],"1f50e":["🔎",["mag_right"]],"1f50f":["🔏",["lock_with_ink_pen"]],"1f510":["🔐",["closed_lock_with_key"]],"1f511":["🔑",["key"]],"1f512":["🔒",["lock"]],"1f513":["🔓",["unlock"]],"1f514":["🔔",["bell"]],"1f515":["🔕",["no_bell"]],"1f516":["🔖",["bookmark"]],"1f517":["🔗",["link"]],"1f518":["🔘",["radio_button"]],"1f519":["🔙",["back"]],"1f51a":["🔚",["end"]],"1f51b":["🔛",["on"]],"1f51c":["🔜",["soon"]],"1f51d":["🔝",["top"]],"1f51e":["🔞",["underage"]],"1f51f":["🔟",["keycap_ten"]],"1f520":["🔠",["capital_abcd"]],"1f521":["🔡",["abcd"]],"1f522":["🔢",["1234"]],"1f523":["🔣",["symbols"]],"1f524":["🔤",["abc"]],"1f525":["🔥",["fire"]],"1f526":["🔦",["flashlight"]],"1f527":["🔧",["wrench"]],"1f528":["🔨",["hammer"]],"1f529":["🔩",["nut_and_bolt"]],"1f52a":["🔪",["hocho"]],"1f52b":["🔫",["gun"]],"1f52c":["🔬",["microscope"]],"1f52d":["🔭",["telescope"]],"1f52e":["🔮",["crystal_ball"]],"1f52f":["🔯",["six_pointed_star"]],"1f530":["🔰",["beginner"]],"1f531":["🔱",["trident"]],"1f532":["🔲",["black_square_button"]],"1f533":["🔳",["white_square_button"]],"1f534":["🔴",["red_circle"]],"1f535":["🔵",["large_blue_circle"]],"1f536":["🔶",["large_orange_diamond"]],"1f537":["🔷",["large_blue_diamond"]],"1f538":["🔸",["small_orange_diamond"]],"1f539":["🔹",["small_blue_diamond"]],"1f53a":["🔺",["small_red_triangle"]],"1f53b":["🔻",["small_red_triangle_down"]],"1f53c":["🔼",["arrow_up_small"]],"1f53d":["🔽",["arrow_down_small"]],"1f550":["🕐",["clock1"]],"1f551":["🕑",["clock2"]],"1f552":["🕒",["clock3"]],"1f553":["🕓",["clock4"]],"1f554":["🕔",["clock5"]],"1f555":["🕕",["clock6"]],"1f556":["🕖",["clock7"]],"1f557":["🕗",["clock8"]],"1f558":["🕘",["clock9"]],"1f559":["🕙",["clock10"]],"1f55a":["🕚",["clock11"]],"1f55b":["🕛",["clock12"]],"1f55c":["🕜",["clock130"]],"1f55d":["🕝",["clock230"]],"1f55e":["🕞",["clock330"]],"1f55f":["🕟",["clock430"]],"1f560":["🕠",["clock530"]],"1f561":["🕡",["clock630"]],"1f562":["🕢",["clock730"]],"1f563":["🕣",["clock830"]],"1f564":["🕤",["clock930"]],"1f565":["🕥",["clock1030"]],"1f566":["🕦",["clock1130"]],"1f567":["🕧",["clock1230"]],"1f5fb":["🗻",["mount_fuji"]],"1f5fc":["🗼",["tokyo_tower"]],"1f5fd":["🗽",["statue_of_liberty"]],"1f5fe":["🗾",["japan"]],"1f5ff":["🗿",["moyai"]],"1f600":["😀",["grinning"]],"1f601":["😁",["grin"]],"1f602":["😂",["joy"]],"1f603":["😃",["smiley"],":)"],"1f604":["😄",["smile"],":)"],"1f605":["😅",["sweat_smile"]],"1f606":["😆",["laughing","satisfied"]],"1f607":["😇",["innocent"]],"1f608":["😈",["smiling_imp"]],"1f609":["😉",["wink"],";)"],"1f60a":["😊",["blush"]],"1f60b":["😋",["yum"]],"1f60c":["😌",["relieved"]],"1f60d":["😍",["heart_eyes"]],"1f60e":["😎",["sunglasses"]],"1f60f":["😏",["smirk"]],"1f610":["😐",["neutral_face"]],"1f611":["😑",["expressionless"]],"1f612":["😒",["unamused"]],"1f613":["😓",["sweat"]],"1f614":["😔",["pensive"]],"1f615":["😕",["confused"]],"1f616":["😖",["confounded"]],"1f617":["😗",["kissing"]],"1f618":["😘",["kissing_heart"]],"1f619":["😙",["kissing_smiling_eyes"]],"1f61a":["😚",["kissing_closed_eyes"]],"1f61b":["😛",["stuck_out_tongue"]],"1f61c":["😜",["stuck_out_tongue_winking_eye"],";p"],"1f61d":["😝",["stuck_out_tongue_closed_eyes"]],"1f61e":["😞",["disappointed"],":("],"1f61f":["😟",["worried"]],"1f620":["😠",["angry"]],"1f621":["😡",["rage"]],"1f622":["😢",["cry"],":'("],"1f623":["😣",["persevere"]],"1f624":["😤",["triumph"]],"1f625":["😥",["disappointed_relieved"]],"1f626":["😦",["frowning"]],"1f627":["😧",["anguished"]],"1f628":["😨",["fearful"]],"1f629":["😩",["weary"]],"1f62a":["😪",["sleepy"]],"1f62b":["😫",["tired_face"]],"1f62c":["😬",["grimacing"]],"1f62d":["😭",["sob"],":'("],"1f62e":["😮",["open_mouth"]],"1f62f":["😯",["hushed"]],"1f630":["😰",["cold_sweat"]],"1f631":["😱",["scream"]],"1f632":["😲",["astonished"]],"1f633":["😳",["flushed"]],"1f634":["😴",["sleeping"]],"1f635":["😵",["dizzy_face"]],"1f636":["😶",["no_mouth"]],"1f637":["😷",["mask"]],"1f638":["😸",["smile_cat"]],"1f639":["😹",["joy_cat"]],"1f63a":["😺",["smiley_cat"]],"1f63b":["😻",["heart_eyes_cat"]],"1f63c":["😼",["smirk_cat"]],"1f63d":["😽",["kissing_cat"]],"1f63e":["😾",["pouting_cat"]],"1f63f":["😿",["crying_cat_face"]],"1f640":["🙀",["scream_cat"]],"1f645":["🙅",["no_good"]],"1f646":["🙆",["ok_woman"]],"1f647":["🙇",["bow"]],"1f648":["🙈",["see_no_evil"]],"1f649":["🙉",["hear_no_evil"]],"1f64a":["🙊",["speak_no_evil"]],"1f64b":["🙋",["raising_hand"]],"1f64c":["🙌",["raised_hands"]],"1f64d":["🙍",["person_frowning"]],"1f64e":["🙎",["person_with_pouting_face"]],"1f64f":["🙏",["pray"]],"1f680":["🚀",["rocket"]],"1f681":["🚁",["helicopter"]],"1f682":["🚂",["steam_locomotive"]],"1f683":["🚃",["railway_car"]],"1f68b":["🚋",["train"]],"1f684":["🚄",["bullettrain_side"]],"1f685":["🚅",["bullettrain_front"]],"1f686":["🚆",["train2"]],"1f687":["🚇",["metro"]],"1f688":["🚈",["light_rail"]],"1f689":["🚉",["station"]],"1f68a":["🚊",["tram"]],"1f68c":["🚌",["bus"]],"1f68d":["🚍",["oncoming_bus"]],"1f68e":["🚎",["trolleybus"]],"1f68f":["🚏",["busstop"]],"1f690":["🚐",["minibus"]],"1f691":["🚑",["ambulance"]],"1f692":["🚒",["fire_engine"]],"1f693":["🚓",["police_car"]],"1f694":["🚔",["oncoming_police_car"]],"1f695":["🚕",["taxi"]],"1f696":["🚖",["oncoming_taxi"]],"1f697":["🚗",["car","red_car"]],"1f698":["🚘",["oncoming_automobile"]],"1f699":["🚙",["blue_car"]],"1f69a":["🚚",["truck"]],"1f69b":["🚛",["articulated_lorry"]],"1f69c":["🚜",["tractor"]],"1f69d":["🚝",["monorail"]],"1f69e":["🚞",["mountain_railway"]],"1f69f":["🚟",["suspension_railway"]],"1f6a0":["🚠",["mountain_cableway"]],"1f6a1":["🚡",["aerial_tramway"]],"1f6a2":["🚢",["ship"]],"1f6a3":["🚣",["rowboat"]],"1f6a4":["🚤",["speedboat"]],"1f6a5":["🚥",["traffic_light"]],"1f6a6":["🚦",["vertical_traffic_light"]],"1f6a7":["🚧",["construction"]],"1f6a8":["🚨",["rotating_light"]],"1f6a9":["🚩",["triangular_flag_on_post"]],"1f6aa":["🚪",["door"]],"1f6ab":["🚫",["no_entry_sign"]],"1f6ac":["🚬",["smoking"]],"1f6ad":["🚭",["no_smoking"]],"1f6ae":["🚮",["put_litter_in_its_place"]],"1f6af":["🚯",["do_not_litter"]],"1f6b0":["🚰",["potable_water"]],"1f6b1":["🚱",["non-potable_water"]],"1f6b2":["🚲",["bike"]],"1f6b3":["🚳",["no_bicycles"]],"1f6b4":["🚴",["bicyclist"]],"1f6b5":["🚵",["mountain_bicyclist"]],"1f6b6":["🚶",["walking"]],"1f6b7":["🚷",["no_pedestrians"]],"1f6b8":["🚸",["children_crossing"]],"1f6b9":["🚹",["mens"]],"1f6ba":["🚺",["womens"]],"1f6bb":["🚻",["restroom"]],"1f6bc":["🚼",["baby_symbol"]],"1f6bd":["🚽",["toilet"]],"1f6be":["🚾",["wc"]],"1f6bf":["🚿",["shower"]],"1f6c0":["🛀",["bath"]],"1f6c1":["🛁",["bathtub"]],"1f6c2":["🛂",["passport_control"]],"1f6c3":["🛃",["customs"]],"1f6c4":["🛄",["baggage_claim"]],"1f6c5":["🛅",["left_luggage"]],"0023":["#",["hash"]],"0030":["0",["zero"]],"0031":["1",["one"]],"0032":["2",["two"]],"0033":["3",["three"]],"0034":["4",["four"]],"0035":["5",["five"]],"0036":["6",["six"]],"0037":["7",["seven"]],"0038":["8",["eight"]],"0039":["9",["nine"]],"1f1e8-1f1f3":["🇨🇳",["cn"]],"1f1e9-1f1ea":["🇩🇪",["de"]],"1f1ea-1f1f8":["🇪🇸",["es"]],"1f1eb-1f1f7":["🇫🇷",["fr"]],"1f1ec-1f1e7":["🇬🇧",["gb","uk"]],"1f1ee-1f1f9":["🇮🇹",["it"]],"1f1ef-1f1f5":["🇯🇵",["jp"]],"1f1f0-1f1f7":["🇰🇷",["kr"]],"1f1f7-1f1fa":["🇷🇺",["ru"]],"1f1fa-1f1f8":["🇺🇸",["us"]]},Config.EmojiCategories=[["1f604","1f603","1f600","1f60a","263a","1f609","1f60d","1f618","1f61a","1f617","1f619","1f61c","1f61d","1f61b","1f633","1f601","1f614","1f60c","1f612","1f61e","1f623","1f622","1f602","1f62d","1f62a","1f625","1f630","1f605","1f613","1f629","1f62b","1f628","1f631","1f620","1f621","1f624","1f616","1f606","1f60b","1f637","1f60e","1f634","1f635","1f632","1f61f","1f626","1f627","1f608","1f47f","1f62e","1f62c","1f610","1f615","1f62f","1f636","1f607","1f60f","1f611","1f472","1f473","1f46e","1f477","1f482","1f476","1f466","1f467","1f468","1f469","1f474","1f475","1f471","1f47c","1f478","1f63a","1f638","1f63b","1f63d","1f63c","1f640","1f63f","1f639","1f63e","1f479","1f47a","1f648","1f649","1f64a","1f480","1f47d","1f4a9","1f525","2728","1f31f","1f4ab","1f4a5","1f4a2","1f4a6","1f4a7","1f4a4","1f4a8","1f442","1f440","1f443","1f445","1f444","1f44d","1f44e","1f44c","1f44a","270a","270c","1f44b","270b","1f450","1f446","1f447","1f449","1f448","1f64c","1f64f","261d","1f44f","1f4aa","1f6b6","1f3c3","1f483","1f46b","1f46a","1f46c","1f46d","1f48f","1f491","1f46f","1f646","1f645","1f481","1f64b","1f486","1f487","1f485","1f470","1f64e","1f64d","1f647","1f3a9","1f451","1f452","1f45f","1f45e","1f461","1f460","1f462","1f455","1f454","1f45a","1f457","1f3bd","1f456","1f458","1f459","1f4bc","1f45c","1f45d","1f45b","1f453","1f380","1f302","1f484","1f49b","1f499","1f49c","1f49a","2764","1f494","1f497","1f493","1f495","1f496","1f49e","1f498","1f48c","1f48b","1f48d","1f48e","1f464","1f465","1f4ac","1f463","1f4ad"],["1f436","1f43a","1f431","1f42d","1f439","1f430","1f438","1f42f","1f428","1f43b","1f437","1f43d","1f42e","1f417","1f435","1f412","1f434","1f411","1f418","1f43c","1f427","1f426","1f424","1f425","1f423","1f414","1f40d","1f422","1f41b","1f41d","1f41c","1f41e","1f40c","1f419","1f41a","1f420","1f41f","1f42c","1f433","1f40b","1f404","1f40f","1f400","1f403","1f405","1f407","1f409","1f40e","1f410","1f413","1f415","1f416","1f401","1f402","1f432","1f421","1f40a","1f42b","1f42a","1f406","1f408","1f429","1f43e","1f490","1f338","1f337","1f340","1f339","1f33b","1f33a","1f341","1f343","1f342","1f33f","1f33e","1f344","1f335","1f334","1f332","1f333","1f330","1f331","1f33c","1f310","1f31e","1f31d","1f31a","1f311","1f312","1f313","1f314","1f315","1f316","1f317","1f318","1f31c","1f31b","1f319","1f30d","1f30e","1f30f","1f30b","1f30c","1f320","2b50","2600","26c5","2601","26a1","2614","2744","26c4","1f300","1f301","1f308","1f30a"],["1f38d","1f49d","1f38e","1f392","1f393","1f38f","1f386","1f387","1f390","1f391","1f383","1f47b","1f385","1f384","1f381","1f38b","1f389","1f38a","1f388","1f38c","1f52e","1f3a5","1f4f7","1f4f9","1f4fc","1f4bf","1f4c0","1f4bd","1f4be","1f4bb","1f4f1","260e","1f4de","1f4df","1f4e0","1f4e1","1f4fa","1f4fb","1f50a","1f509","1f508","1f507","1f514","1f515","1f4e3","1f4e2","23f3","231b","23f0","231a","1f513","1f512","1f50f","1f510","1f511","1f50e","1f4a1","1f526","1f506","1f505","1f50c","1f50b","1f50d","1f6c0","1f6c1","1f6bf","1f6bd","1f527","1f529","1f528","1f6aa","1f6ac","1f4a3","1f52b","1f52a","1f48a","1f489","1f4b0","1f4b4","1f4b5","1f4b7","1f4b6","1f4b3","1f4b8","1f4f2","1f4e7","1f4e5","1f4e4","2709","1f4e9","1f4e8","1f4ef","1f4eb","1f4ea","1f4ec","1f4ed","1f4ee","1f4e6","1f4dd","1f4c4","1f4c3","1f4d1","1f4ca","1f4c8","1f4c9","1f4dc","1f4cb","1f4c5","1f4c6","1f4c7","1f4c1","1f4c2","2702","1f4cc","1f4ce","2712","270f","1f4cf","1f4d0","1f4d5","1f4d7","1f4d8","1f4d9","1f4d3","1f4d4","1f4d2","1f4da","1f4d6","1f516","1f4db","1f52c","1f52d","1f4f0","1f3a8","1f3ac","1f3a4","1f3a7","1f3bc","1f3b5","1f3b6","1f3b9","1f3bb","1f3ba","1f3b7","1f3b8","1f47e","1f3ae","1f0cf","1f3b4","1f004","1f3b2","1f3af","1f3c8","1f3c0","26bd","26be","1f3be","1f3b1","1f3c9","1f3b3","26f3","1f6b5","1f6b4","1f3c1","1f3c7","1f3c6","1f3bf","1f3c2","1f3ca","1f3c4","1f3a3","2615","1f375","1f376","1f37c","1f37a","1f37b","1f378","1f379","1f377","1f374","1f355","1f354","1f35f","1f357","1f356","1f35d","1f35b","1f364","1f371","1f363","1f365","1f359","1f358","1f35a","1f35c","1f372","1f362","1f361","1f373","1f35e","1f369","1f36e","1f366","1f368","1f367","1f382","1f370","1f36a","1f36b","1f36c","1f36d","1f36f","1f34e","1f34f","1f34a","1f34b","1f352","1f347","1f349","1f353","1f351","1f348","1f34c","1f350","1f34d","1f360","1f346","1f345","1f33d"],["1f3e0","1f3e1","1f3eb","1f3e2","1f3e3","1f3e5","1f3e6","1f3ea","1f3e9","1f3e8","1f492","26ea","1f3ec","1f3e4","1f307","1f306","1f3ef","1f3f0","26fa","1f3ed","1f5fc","1f5fe","1f5fb","1f304","1f305","1f303","1f5fd","1f309","1f3a0","1f3a1","26f2","1f3a2","1f6a2","26f5","1f6a4","1f6a3","2693","1f680","2708","1f4ba","1f681","1f682","1f68a","1f689","1f69e","1f686","1f684","1f685","1f688","1f687","1f69d","1f683","1f68b","1f68e","1f68c","1f68d","1f699","1f698","1f697","1f695","1f696","1f69b","1f69a","1f6a8","1f693","1f694","1f692","1f691","1f690","1f6b2","1f6a1","1f69f","1f6a0","1f69c","1f488","1f68f","1f3ab","1f6a6","1f6a5","26a0","1f6a7","1f530","26fd","1f3ee","1f3b0","2668","1f5ff","1f3aa","1f3ad","1f4cd","1f6a9","1f1ef-1f1f5","1f1f0-1f1f7","1f1e9-1f1ea","1f1e8-1f1f3","1f1fa-1f1f8","1f1eb-1f1f7","1f1ea-1f1f8","1f1ee-1f1f9","1f1f7-1f1fa","1f1ec-1f1e7"],["0031","0032","0033","0034","0035","0036","0037","0038","0039","0030","1f51f","1f522","0023","1f523","2b06","2b07","2b05","27a1","1f520","1f521","1f524","2197","2196","2198","2199","2194","2195","1f504","25c0","25b6","1f53c","1f53d","21a9","21aa","2139","23ea","23e9","23eb","23ec","2935","2934","1f197","1f500","1f501","1f502","1f195","1f199","1f192","1f193","1f196","1f4f6","1f3a6","1f201","1f22f","1f233","1f235","1f234","1f232","1f250","1f239","1f23a","1f236","1f21a","1f6bb","1f6b9","1f6ba","1f6bc","1f6be","1f6b0","1f6ae","1f17f","267f","1f6ad","1f237","1f238","1f202","24c2","1f6c2","1f6c4","1f6c5","1f6c3","1f251","3299","3297","1f191","1f198","1f194","1f6ab","1f51e","1f4f5","1f6af","1f6b1","1f6b3","1f6b7","1f6b8","26d4","2733","2747","274e","2705","2734","1f49f","1f19a","1f4f3","1f4f4","1f170","1f171","1f18e","1f17e","1f4a0","27bf","267b","2648","2649","264a","264b","264c","264d","264e","264f","2650","2651","2652","2653","26ce","1f52f","1f3e7","1f4b9","1f4b2","1f4b1","00a9","00ae","2122","274c","203c","2049","2757","2753","2755","2754","2b55","1f51d","1f51a","1f519","1f51b","1f51c","1f503","1f55b","1f567","1f550","1f55c","1f551","1f55d","1f552","1f55e","1f553","1f55f","1f554","1f560","1f555","1f556","1f557","1f558","1f559","1f55a","1f561","1f562","1f563","1f564","1f565","1f566","2716","2795","2796","2797","2660","2665","2663","2666","1f4ae","1f4af","2714","2611","1f518","1f517","27b0","3030","303d","1f531","25fc","25fb","25fe","25fd","25aa","25ab","1f53a","1f532","1f533","26ab","26aa","1f534","1f535","1f53b","2b1c","2b1b","1f536","1f537","1f538","1f539"]],Config.EmojiCategorySpritesheetDimens=[[7,27],[4,29],[7,33],[3,34],[7,34]],Config.LatinizeMap={"Á":"A","Ă":"A","Ắ":"A","Ặ":"A","Ằ":"A","Ẳ":"A","Ẵ":"A","Ǎ":"A","Â":"A","Ấ":"A","Ậ":"A","Ầ":"A","Ẩ":"A","Ẫ":"A","Ä":"A","Ǟ":"A","Ȧ":"A","Ǡ":"A","Ạ":"A","Ȁ":"A","À":"A","Ả":"A","Ȃ":"A","Ā":"A","Ą":"A","Å":"A","Ǻ":"A","Ḁ":"A","Ⱥ":"A","Ã":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ḃ":"B","Ḅ":"B","Ɓ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ć":"C","Č":"C","Ç":"C","Ḉ":"C","Ĉ":"C","Ċ":"C","Ƈ":"C","Ȼ":"C","Ď":"D","Ḑ":"D","Ḓ":"D","Ḋ":"D","Ḍ":"D","Ɗ":"D","Ḏ":"D","Dz":"D","Dž":"D","Đ":"D","Ƌ":"D","DZ":"DZ","DŽ":"DZ","É":"E","Ĕ":"E","Ě":"E","Ȩ":"E","Ḝ":"E","Ê":"E","Ế":"E","Ệ":"E","Ề":"E","Ể":"E","Ễ":"E","Ḙ":"E","Ë":"E","Ė":"E","Ẹ":"E","Ȅ":"E","È":"E","Ẻ":"E","Ȇ":"E","Ē":"E","Ḗ":"E","Ḕ":"E","Ę":"E","Ɇ":"E","Ẽ":"E","Ḛ":"E","Ꝫ":"ET","Ḟ":"F","Ƒ":"F","Ǵ":"G","Ğ":"G","Ǧ":"G","Ģ":"G","Ĝ":"G","Ġ":"G","Ɠ":"G","Ḡ":"G","Ǥ":"G","Ḫ":"H","Ȟ":"H","Ḩ":"H","Ĥ":"H","Ⱨ":"H","Ḧ":"H","Ḣ":"H","Ḥ":"H","Ħ":"H","Í":"I","Ĭ":"I","Ǐ":"I","Î":"I","Ï":"I","Ḯ":"I","İ":"I","Ị":"I","Ȉ":"I","Ì":"I","Ỉ":"I","Ȋ":"I","Ī":"I","Į":"I","Ɨ":"I","Ĩ":"I","Ḭ":"I","Ꝺ":"D","Ꝼ":"F","Ᵹ":"G","Ꞃ":"R","Ꞅ":"S","Ꞇ":"T","Ꝭ":"IS","Ĵ":"J","Ɉ":"J","Ḱ":"K","Ǩ":"K","Ķ":"K","Ⱪ":"K","Ꝃ":"K","Ḳ":"K","Ƙ":"K","Ḵ":"K","Ꝁ":"K","Ꝅ":"K","Ĺ":"L","Ƚ":"L","Ľ":"L","Ļ":"L","Ḽ":"L","Ḷ":"L","Ḹ":"L","Ⱡ":"L","Ꝉ":"L","Ḻ":"L","Ŀ":"L","Ɫ":"L","Lj":"L","Ł":"L","LJ":"LJ","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ń":"N","Ň":"N","Ņ":"N","Ṋ":"N","Ṅ":"N","Ṇ":"N","Ǹ":"N","Ɲ":"N","Ṉ":"N","Ƞ":"N","Nj":"N","Ñ":"N","NJ":"NJ","Ó":"O","Ŏ":"O","Ǒ":"O","Ô":"O","Ố":"O","Ộ":"O","Ồ":"O","Ổ":"O","Ỗ":"O","Ö":"O","Ȫ":"O","Ȯ":"O","Ȱ":"O","Ọ":"O","Ő":"O","Ȍ":"O","Ò":"O","Ỏ":"O","Ơ":"O","Ớ":"O","Ợ":"O","Ờ":"O","Ở":"O","Ỡ":"O","Ȏ":"O","Ꝋ":"O","Ꝍ":"O","Ō":"O","Ṓ":"O","Ṑ":"O","Ɵ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Õ":"O","Ṍ":"O","Ṏ":"O","Ȭ":"O","Ƣ":"OI","Ꝏ":"OO","Ɛ":"E","Ɔ":"O","Ȣ":"OU","Ṕ":"P","Ṗ":"P","Ꝓ":"P","Ƥ":"P","Ꝕ":"P","Ᵽ":"P","Ꝑ":"P","Ꝙ":"Q","Ꝗ":"Q","Ŕ":"R","Ř":"R","Ŗ":"R","Ṙ":"R","Ṛ":"R","Ṝ":"R","Ȑ":"R","Ȓ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꜿ":"C","Ǝ":"E","Ś":"S","Ṥ":"S","Š":"S","Ṧ":"S","Ş":"S","Ŝ":"S","Ș":"S","Ṡ":"S","Ṣ":"S","Ṩ":"S","ẞ":"SS","Ť":"T","Ţ":"T","Ṱ":"T","Ț":"T","Ⱦ":"T","Ṫ":"T","Ṭ":"T","Ƭ":"T","Ṯ":"T","Ʈ":"T","Ŧ":"T","Ɐ":"A","Ꞁ":"L",
"Ɯ":"M","Ʌ":"V","Ꜩ":"TZ","Ú":"U","Ŭ":"U","Ǔ":"U","Û":"U","Ṷ":"U","Ü":"U","Ǘ":"U","Ǚ":"U","Ǜ":"U","Ǖ":"U","Ṳ":"U","Ụ":"U","Ű":"U","Ȕ":"U","Ù":"U","Ủ":"U","Ư":"U","Ứ":"U","Ự":"U","Ừ":"U","Ử":"U","Ữ":"U","Ȗ":"U","Ū":"U","Ṻ":"U","Ų":"U","Ů":"U","Ũ":"U","Ṹ":"U","Ṵ":"U","Ꝟ":"V","Ṿ":"V","Ʋ":"V","Ṽ":"V","Ꝡ":"VY","Ẃ":"W","Ŵ":"W","Ẅ":"W","Ẇ":"W","Ẉ":"W","Ẁ":"W","Ⱳ":"W","Ẍ":"X","Ẋ":"X","Ý":"Y","Ŷ":"Y","Ÿ":"Y","Ẏ":"Y","Ỵ":"Y","Ỳ":"Y","Ƴ":"Y","Ỷ":"Y","Ỿ":"Y","Ȳ":"Y","Ɏ":"Y","Ỹ":"Y","Ź":"Z","Ž":"Z","Ẑ":"Z","Ⱬ":"Z","Ż":"Z","Ẓ":"Z","Ȥ":"Z","Ẕ":"Z","Ƶ":"Z","IJ":"IJ","Œ":"OE","ᴀ":"A","ᴁ":"AE","ʙ":"B","ᴃ":"B","ᴄ":"C","ᴅ":"D","ᴇ":"E","ꜰ":"F","ɢ":"G","ʛ":"G","ʜ":"H","ɪ":"I","ʁ":"R","ᴊ":"J","ᴋ":"K","ʟ":"L","ᴌ":"L","ᴍ":"M","ɴ":"N","ᴏ":"O","ɶ":"OE","ᴐ":"O","ᴕ":"OU","ᴘ":"P","ʀ":"R","ᴎ":"N","ᴙ":"R","ꜱ":"S","ᴛ":"T","ⱻ":"E","ᴚ":"R","ᴜ":"U","ᴠ":"V","ᴡ":"W","ʏ":"Y","ᴢ":"Z","á":"a","ă":"a","ắ":"a","ặ":"a","ằ":"a","ẳ":"a","ẵ":"a","ǎ":"a","â":"a","ấ":"a","ậ":"a","ầ":"a","ẩ":"a","ẫ":"a","ä":"a","ǟ":"a","ȧ":"a","ǡ":"a","ạ":"a","ȁ":"a","à":"a","ả":"a","ȃ":"a","ā":"a","ą":"a","ᶏ":"a","ẚ":"a","å":"a","ǻ":"a","ḁ":"a","ⱥ":"a","ã":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ḃ":"b","ḅ":"b","ɓ":"b","ḇ":"b","ᵬ":"b","ᶀ":"b","ƀ":"b","ƃ":"b","ɵ":"o","ć":"c","č":"c","ç":"c","ḉ":"c","ĉ":"c","ɕ":"c","ċ":"c","ƈ":"c","ȼ":"c","ď":"d","ḑ":"d","ḓ":"d","ȡ":"d","ḋ":"d","ḍ":"d","ɗ":"d","ᶑ":"d","ḏ":"d","ᵭ":"d","ᶁ":"d","đ":"d","ɖ":"d","ƌ":"d","ı":"i","ȷ":"j","ɟ":"j","ʄ":"j","dz":"dz","dž":"dz","é":"e","ĕ":"e","ě":"e","ȩ":"e","ḝ":"e","ê":"e","ế":"e","ệ":"e","ề":"e","ể":"e","ễ":"e","ḙ":"e","ë":"e","ė":"e","ẹ":"e","ȅ":"e","è":"e","ẻ":"e","ȇ":"e","ē":"e","ḗ":"e","ḕ":"e","ⱸ":"e","ę":"e","ᶒ":"e","ɇ":"e","ẽ":"e","ḛ":"e","ꝫ":"et","ḟ":"f","ƒ":"f","ᵮ":"f","ᶂ":"f","ǵ":"g","ğ":"g","ǧ":"g","ģ":"g","ĝ":"g","ġ":"g","ɠ":"g","ḡ":"g","ᶃ":"g","ǥ":"g","ḫ":"h","ȟ":"h","ḩ":"h","ĥ":"h","ⱨ":"h","ḧ":"h","ḣ":"h","ḥ":"h","ɦ":"h","ẖ":"h","ħ":"h","ƕ":"hv","í":"i","ĭ":"i","ǐ":"i","î":"i","ï":"i","ḯ":"i","ị":"i","ȉ":"i","ì":"i","ỉ":"i","ȋ":"i","ī":"i","į":"i","ᶖ":"i","ɨ":"i","ĩ":"i","ḭ":"i","ꝺ":"d","ꝼ":"f","ᵹ":"g","ꞃ":"r","ꞅ":"s","ꞇ":"t","ꝭ":"is","ǰ":"j","ĵ":"j","ʝ":"j","ɉ":"j","ḱ":"k","ǩ":"k","ķ":"k","ⱪ":"k","ꝃ":"k","ḳ":"k","ƙ":"k","ḵ":"k","ᶄ":"k","ꝁ":"k","ꝅ":"k","ĺ":"l","ƚ":"l","ɬ":"l","ľ":"l","ļ":"l","ḽ":"l","ȴ":"l","ḷ":"l","ḹ":"l","ⱡ":"l","ꝉ":"l","ḻ":"l","ŀ":"l","ɫ":"l","ᶅ":"l","ɭ":"l","ł":"l","lj":"lj","ſ":"s","ẜ":"s","ẛ":"s","ẝ":"s","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ᵯ":"m","ᶆ":"m","ń":"n","ň":"n","ņ":"n","ṋ":"n","ȵ":"n","ṅ":"n","ṇ":"n","ǹ":"n","ɲ":"n","ṉ":"n","ƞ":"n","ᵰ":"n","ᶇ":"n","ɳ":"n","ñ":"n","nj":"nj","ó":"o","ŏ":"o","ǒ":"o","ô":"o","ố":"o","ộ":"o","ồ":"o","ổ":"o","ỗ":"o","ö":"o","ȫ":"o","ȯ":"o","ȱ":"o","ọ":"o","ő":"o","ȍ":"o","ò":"o","ỏ":"o","ơ":"o","ớ":"o","ợ":"o","ờ":"o","ở":"o","ỡ":"o","ȏ":"o","ꝋ":"o","ꝍ":"o","ⱺ":"o","ō":"o","ṓ":"o","ṑ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","õ":"o","ṍ":"o","ṏ":"o","ȭ":"o","ƣ":"oi","ꝏ":"oo","ɛ":"e","ᶓ":"e","ɔ":"o","ᶗ":"o","ȣ":"ou","ṕ":"p","ṗ":"p","ꝓ":"p","ƥ":"p","ᵱ":"p","ᶈ":"p","ꝕ":"p","ᵽ":"p","ꝑ":"p","ꝙ":"q","ʠ":"q","ɋ":"q","ꝗ":"q","ŕ":"r","ř":"r","ŗ":"r","ṙ":"r","ṛ":"r","ṝ":"r","ȑ":"r","ɾ":"r","ᵳ":"r","ȓ":"r","ṟ":"r","ɼ":"r","ᵲ":"r","ᶉ":"r","ɍ":"r","ɽ":"r","ↄ":"c","ꜿ":"c","ɘ":"e","ɿ":"r","ś":"s","ṥ":"s","š":"s","ṧ":"s","ş":"s","ŝ":"s","ș":"s","ṡ":"s","ṣ":"s","ṩ":"s","ʂ":"s","ᵴ":"s","ᶊ":"s","ȿ":"s","ɡ":"g","ß":"ss","ᴑ":"o","ᴓ":"o","ᴝ":"u","ť":"t","ţ":"t","ṱ":"t","ț":"t","ȶ":"t","ẗ":"t","ⱦ":"t","ṫ":"t","ṭ":"t","ƭ":"t","ṯ":"t","ᵵ":"t","ƫ":"t","ʈ":"t","ŧ":"t","ᵺ":"th","ɐ":"a","ᴂ":"ae","ǝ":"e","ᵷ":"g","ɥ":"h","ʮ":"h","ʯ":"h","ᴉ":"i","ʞ":"k","ꞁ":"l","ɯ":"m","ɰ":"m","ᴔ":"oe","ɹ":"r","ɻ":"r","ɺ":"r","ⱹ":"r","ʇ":"t","ʌ":"v","ʍ":"w","ʎ":"y","ꜩ":"tz","ú":"u","ŭ":"u","ǔ":"u","û":"u","ṷ":"u","ü":"u","ǘ":"u","ǚ":"u","ǜ":"u","ǖ":"u","ṳ":"u","ụ":"u","ű":"u","ȕ":"u","ù":"u","ủ":"u","ư":"u","ứ":"u","ự":"u","ừ":"u","ử":"u","ữ":"u","ȗ":"u","ū":"u","ṻ":"u","ų":"u","ᶙ":"u","ů":"u","ũ":"u","ṹ":"u","ṵ":"u","ᵫ":"ue","ꝸ":"um","ⱴ":"v","ꝟ":"v","ṿ":"v","ʋ":"v","ᶌ":"v","ⱱ":"v","ṽ":"v","ꝡ":"vy","ẃ":"w","ŵ":"w","ẅ":"w","ẇ":"w","ẉ":"w","ẁ":"w","ⱳ":"w","ẘ":"w","ẍ":"x","ẋ":"x","ᶍ":"x","ý":"y","ŷ":"y","ÿ":"y","ẏ":"y","ỵ":"y","ỳ":"y","ƴ":"y","ỷ":"y","ỿ":"y","ȳ":"y","ẙ":"y","ɏ":"y","ỹ":"y","ź":"z","ž":"z","ẑ":"z","ʑ":"z","ⱬ":"z","ż":"z","ẓ":"z","ȥ":"z","ẕ":"z","ᵶ":"z","ᶎ":"z","ʐ":"z","ƶ":"z","ɀ":"z","ff":"ff","ffi":"ffi","ffl":"ffl","fi":"fi","fl":"fl","ij":"ij","œ":"oe","st":"st","ₐ":"a","ₑ":"e","ᵢ":"i","ⱼ":"j","ₒ":"o","ᵣ":"r","ᵤ":"u","ᵥ":"v","ₓ":"x","Ё":"YO","Й":"I","Ц":"TS","У":"U","К":"K","Е":"E","Н":"N","Г":"G","Ш":"SH","Щ":"SCH","З":"Z","Х":"H","Ъ":"","ё":"yo","й":"i","ц":"ts","у":"u","к":"k","е":"e","н":"n","г":"g","ш":"sh","щ":"sch","з":"z","х":"h","ъ":"","Ф":"F","Ы":"I","В":"V","А":"A","П":"P","Р":"R","О":"O","Л":"L","Д":"D","Ж":"ZH","Э":"E","ф":"f","ы":"i","в":"v","а":"a","п":"p","р":"r","о":"o","л":"l","д":"d","ж":"zh","э":"e","Я":"Ya","Ч":"CH","С":"S","М":"M","И":"I","Т":"T","Ь":"","Б":"B","Ю":"YU","я":"ya","ч":"ch","с":"s","м":"m","и":"i","т":"t","ь":"","б":"b","ю":"yu"},Config.CountryCodes=[["AB","country_select_modal_country_ab","+7 840","+7 940","+995 44"],["AF","country_select_modal_country_af","+93"],["AX","country_select_modal_country_ax","+358 18"],["AL","country_select_modal_country_al","+355"],["DZ","country_select_modal_country_dz","+213"],["AS","country_select_modal_country_as","+1 684"],["AD","country_select_modal_country_ad","+376"],["AO","country_select_modal_country_ao","+244"],["AI","country_select_modal_country_ai","+1 264"],["AG","country_select_modal_country_ag","+1 268"],["AR","country_select_modal_country_ar","+54"],["AM","country_select_modal_country_am","+374"],["AW","country_select_modal_country_aw","+297"],["SH","country_select_modal_country_sh_ac","+247"],["AU","country_select_modal_country_au","+61"],["AU","country_select_modal_country_au_et","+672"],["AT","country_select_modal_country_at","+43"],["AZ","country_select_modal_country_az","+994"],["BS","country_select_modal_country_bs","+1 242"],["BH","country_select_modal_country_bh","+973"],["BD","country_select_modal_country_bd","+880"],["BB","country_select_modal_country_bb","+1 246"],["AG","country_select_modal_country_ag_bar","+1 268"],["BY","country_select_modal_country_by","+375"],["BE","country_select_modal_country_be","+32"],["BZ","country_select_modal_country_bz","+501"],["BJ","country_select_modal_country_bj","+229"],["BM","country_select_modal_country_bm","+1 441"],["BT","country_select_modal_country_bt","+975"],["BO","country_select_modal_country_bo","+591"],["BQ","country_select_modal_country_bq","+599 7"],["BA","country_select_modal_country_ba","+387"],["BW","country_select_modal_country_bw","+267"],["BR","country_select_modal_country_br","+55"],["IO","country_select_modal_country_io","+246"],["VG","country_select_modal_country_vg","+1 284"],["BN","country_select_modal_country_bn","+673"],["BG","country_select_modal_country_bg","+359"],["BF","country_select_modal_country_bf","+226"],["MY","country_select_modal_country_mm","+95"],["BI","country_select_modal_country_bi","+257"],["KH","country_select_modal_country_kh","+855"],["CM","country_select_modal_country_cm","+237"],["CA","country_select_modal_country_ca","+1"],["CV","country_select_modal_country_cv","+238"],["KY","country_select_modal_country_ky","+1 345"],["CF","country_select_modal_country_cf","+236"],["TD","country_select_modal_country_td","+235"],["CL","country_select_modal_country_cl","+56"],["CN","country_select_modal_country_cn","+86"],["CX","country_select_modal_country_cx","+61"],["CC","country_select_modal_country_cc","+61"],["CO","country_select_modal_country_co","+57"],["KM","country_select_modal_country_km","+269"],["CG","country_select_modal_country_cg","+242"],["CD","country_select_modal_country_cd","+243"],["CK","country_select_modal_country_ck","+682"],["CR","country_select_modal_country_cr","+506"],["CI","country_select_modal_country_ci","+225"],["HR","country_select_modal_country_hr","+385"],["CU","country_select_modal_country_cu","+53"],["CW","country_select_modal_country_cw","+599 9"],["CY","country_select_modal_country_cy","+357"],["CZ","country_select_modal_country_cz","+420"],["DK","country_select_modal_country_dk","+45"],["DG","country_select_modal_country_dg","+246"],["DJ","country_select_modal_country_dj","+253"],["DM","country_select_modal_country_dm","+1 767"],["DO","country_select_modal_country_do","+1 809","+1 829","+1 849"],["TL","country_select_modal_country_tl","+670"],["EC","country_select_modal_country_ec","+593"],["EG","country_select_modal_country_eg","+20"],["SV","country_select_modal_country_sv","+503"],["GQ","country_select_modal_country_gq","+240"],["ER","country_select_modal_country_er","+291"],["EE","country_select_modal_country_ee","+372"],["ET","country_select_modal_country_et","+251"],["FK","country_select_modal_country_fk","+500"],["FO","country_select_modal_country_fo","+298"],["FJ","country_select_modal_country_fj","+679"],["FI","country_select_modal_country_fi","+358"],["FR","country_select_modal_country_fr","+33"],["GF","country_select_modal_country_gf","+594"],["PF","country_select_modal_country_pf","+689"],["GA","country_select_modal_country_ga","+241"],["GM","country_select_modal_country_gm","+220"],["GE","country_select_modal_country_ge","+995"],["DE","country_select_modal_country_de","+49"],["GH","country_select_modal_country_gh","+233"],["GI","country_select_modal_country_gi","+350"],["GR","country_select_modal_country_gr","+30"],["GL","country_select_modal_country_gl","+299"],["GD","country_select_modal_country_gd","+1 473"],["GP","country_select_modal_country_gp","+590"],["GU","country_select_modal_country_gu","+1 671"],["GT","country_select_modal_country_gt","+502"],["GG","country_select_modal_country_gg","+44"],["GN","country_select_modal_country_gn","+224"],["GW","country_select_modal_country_gw","+245"],["GY","country_select_modal_country_gy","+592"],["HT","country_select_modal_country_ht","+509"],["HN","country_select_modal_country_hn","+504"],["HK","country_select_modal_country_hk","+852"],["HU","country_select_modal_country_hu","+36"],["IS","country_select_modal_country_is","+354"],["IN","country_select_modal_country_in","+91"],["ID","country_select_modal_country_id","+62"],["IR","country_select_modal_country_ir","+98"],["IQ","country_select_modal_country_iq","+964"],["IE","country_select_modal_country_ie","+353"],["IL","country_select_modal_country_il","+972"],["IT","country_select_modal_country_it","+39"],["JM","country_select_modal_country_jm","+1 876"],["SJ","country_select_modal_country_sj","+47 79"],["JP","country_select_modal_country_jp","+81"],["JE","country_select_modal_country_je","+44"],["JO","country_select_modal_country_jo","+962"],["KZ","country_select_modal_country_kz","+7 6","+7 7"],["KE","country_select_modal_country_ke","+254"],["KI","country_select_modal_country_ki","+686"],["KP","country_select_modal_country_kp","+850"],["KR","country_select_modal_country_kr","+82"],["KW","country_select_modal_country_kw","+965"],["KG","country_select_modal_country_kg","+996"],["LA","country_select_modal_country_la","+856"],["LV","country_select_modal_country_lv","+371"],["LB","country_select_modal_country_lb","+961"],["LS","country_select_modal_country_ls","+266"],["LR","country_select_modal_country_lr","+231"],["LY","country_select_modal_country_ly","+218"],["LI","country_select_modal_country_li","+423"],["LT","country_select_modal_country_lt","+370"],["LU","country_select_modal_country_lu","+352"],["MO","country_select_modal_country_mo","+853"],["MK","country_select_modal_country_mk","+389"],["MG","country_select_modal_country_mg","+261"],["MW","country_select_modal_country_mw","+265"],["MY","country_select_modal_country_my","+60"],["MV","country_select_modal_country_mv","+960"],["ML","country_select_modal_country_ml","+223"],["MT","country_select_modal_country_mt","+356"],["MH","country_select_modal_country_mh","+692"],["MQ","country_select_modal_country_mq","+596"],["MR","country_select_modal_country_mr","+222"],["MU","country_select_modal_country_mu","+230"],["YT","country_select_modal_country_yt","+262"],["MX","country_select_modal_country_mx","+52"],["FM","country_select_modal_country_fm","+691"],["MD","country_select_modal_country_md","+373"],["MC","country_select_modal_country_mc","+377"],["MN","country_select_modal_country_mn","+976"],["ME","country_select_modal_country_me","+382"],["MS","country_select_modal_country_ms","+1 664"],["MA","country_select_modal_country_ma","+212"],["MZ","country_select_modal_country_mz","+258"],["NA","country_select_modal_country_na","+264"],["NR","country_select_modal_country_nr","+674"],["NP","country_select_modal_country_np","+977"],["NL","country_select_modal_country_nl","+31"],["NC","country_select_modal_country_nc","+687"],["NZ","country_select_modal_country_nz","+64"],["NI","country_select_modal_country_ni","+505"],["NE","country_select_modal_country_ne","+227"],["NG","country_select_modal_country_ng","+234"],["NU","country_select_modal_country_nu","+683"],["NF","country_select_modal_country_nf","+672"],["MP","country_select_modal_country_mp","+1 670"],["NO","country_select_modal_country_no","+47"],["OM","country_select_modal_country_om","+968"],["PK","country_select_modal_country_pk","+92"],["PW","country_select_modal_country_pw","+680"],["PS","country_select_modal_country_ps","+970"],["PA","country_select_modal_country_pa","+507"],["PG","country_select_modal_country_pg","+675"],["PY","country_select_modal_country_py","+595"],["PE","country_select_modal_country_pe","+51"],["PH","country_select_modal_country_ph","+63"],["PN","country_select_modal_country_pn","+64"],["PL","country_select_modal_country_pl","+48"],["PT","country_select_modal_country_pt","+351"],["PR","country_select_modal_country_pr","+1 787","+1 939"],["QA","country_select_modal_country_qa","+974"],["RE","country_select_modal_country_re","+262"],["RO","country_select_modal_country_ro","+40"],["RU","country_select_modal_country_ru","+7"],["RW","country_select_modal_country_rw","+250"],["BL","country_select_modal_country_bl","+590"],["SH","country_select_modal_country_sh","+290"],["KN","country_select_modal_country_kn","+1 869"],["LC","country_select_modal_country_lc","+1 758"],["MF","country_select_modal_country_mf","+590"],["PM","country_select_modal_country_pm","+508"],["VC","country_select_modal_country_vc","+1 784"],["WS","country_select_modal_country_ws","+685"],["SM","country_select_modal_country_sm","+378"],["ST","country_select_modal_country_st","+239"],["SA","country_select_modal_country_sa","+966"],["SN","country_select_modal_country_sn","+221"],["RS","country_select_modal_country_rs","+381"],["SC","country_select_modal_country_sc","+248"],["SL","country_select_modal_country_sl","+232"],["SG","country_select_modal_country_sg","+65"],["BQ","country_select_modal_country_nl_bq3","+599 3"],["SX","country_select_modal_country_sx","+1 721"],["SK","country_select_modal_country_sk","+421"],["SI","country_select_modal_country_si","+386"],["SB","country_select_modal_country_sb","+677"],["SO","country_select_modal_country_so","+252"],["ZA","country_select_modal_country_za","+27"],["GS","country_select_modal_country_gs","+500"],[!1,"country_select_modal_country_ge_so","+995 34"],["SS","country_select_modal_country_ss","+211"],["ES","country_select_modal_country_es","+34"],["LK","country_select_modal_country_lk","+94"],["SD","country_select_modal_country_sd","+249"],["SR","country_select_modal_country_sr","+597"],["SJ","country_select_modal_country_sj_no","+47 79"],["SZ","country_select_modal_country_sz","+268"],["SE","country_select_modal_country_se","+46"],["CH","country_select_modal_country_ch","+41"],["SY","country_select_modal_country_sy","+963"],["TW","country_select_modal_country_tw","+886"],["TJ","country_select_modal_country_tj","+992"],["TZ","country_select_modal_country_tz","+255"],["TH","country_select_modal_country_th","+66"],["TG","country_select_modal_country_tg","+228"],["TK","country_select_modal_country_tk","+690"],["TO","country_select_modal_country_to","+676"],["TT","country_select_modal_country_tt","+1 868"],["TN","country_select_modal_country_tn","+216"],["TR","country_select_modal_country_tr","+90"],["TM","country_select_modal_country_tm","+993"],["TC","country_select_modal_country_tc","+1 649"],["TV","country_select_modal_country_tv","+688"],["UG","country_select_modal_country_ug","+256"],["UA","country_select_modal_country_ua","+380"],["AE","country_select_modal_country_ae","+971"],["UK","country_select_modal_country_uk","+44"],["US","country_select_modal_country_us","+1"],["UY","country_select_modal_country_uy","+598"],["VI","country_select_modal_country_vi","+1 340"],["UZ","country_select_modal_country_uz","+998"],["VU","country_select_modal_country_vu","+678"],["VE","country_select_modal_country_ve","+58"],["VA","country_select_modal_country_va","+39 06 698","+379"],["VN","country_select_modal_country_vn","+84"],["WF","country_select_modal_country_wf","+681"],["YE","country_select_modal_country_ye","+967"],["ZM","country_select_modal_country_zm","+260"],[!1,"country_select_modal_country_tz_uk","+255"],["ZW","country_select_modal_country_zw","+263"]],Config.LangCountries={es:"ES",ru:"RU",en:"US",de:"DE",it:"IT",nl:"NL",fr:"FR",ca:"ES","es-419":"MX",ar:"SA",he:"IL",tr:"TR",id:"ID",pl:"PL"},function(e){function t(e){l=e}function n(){c=!0}function a(){return c?(c=!1,""):l}function r(e,t){var n=!1;Array.isArray(e)||(e=Array.prototype.slice.call(arguments),t=e.pop(),n=1==e.length);var r,i,s,o=[],l=!0,c=a();for(i=0;i<e.length;i++)if(s=e[i]=c+e[i],"xt_"!=s.substr(0,3)&&void 0!==d[s])o.push(d[s]);else if(u){try{r=localStorage.getItem(s)}catch(m){u=!1}try{r=void 0!==r&&null!==r&&JSON.parse(r)}catch(m){r=!1}o.push(d[s]=r)}else p?l=!1:o.push(d[s]=!1);return l?t(n?o[0]:o):void chrome.storage.local.get(e,function(a){var r;for(o=[],i=0;i<e.length;i++)s=e[i],r=a[s],r=void 0!==r&&null!==r&&JSON.parse(r),o.push(d[s]=r);t(n?o[0]:o)})}function i(e,t){var n,r,i={},s=a();for(n in e)if(e.hasOwnProperty(n))if(r=e[n],n=s+n,d[n]=r,r=JSON.stringify(r),u)try{localStorage.setItem(n,r)}catch(o){u=!1}else i[n]=r;return u||!p?void(t&&t()):void chrome.storage.local.set(i,t)}function s(e,t){Array.isArray(e)||(e=Array.prototype.slice.call(arguments),"function"==typeof e[e.length-1]&&(t=e.pop()));var n,r,i=a();for(n=0;n<e.length;n++)if(r=e[n]=i+e[n],delete d[r],u)try{localStorage.removeItem(r)}catch(s){u=!1}p?chrome.storage.local.remove(e,t):t&&t()}function o(e){if(u)try{localStorage.clear()}catch(t){u=!1}p?chrome.storage.local.clear(function(){d={},e()}):(d={},e())}var l="",c=!1,d={},p=!!(e.chrome&&chrome.storage&&chrome.storage.local),u=!p&&!!e.localStorage;e.ConfigStorage={prefix:t,noPrefix:n,get:r,set:i,remove:s,clear:o}}(this),function(){try{window==window.top||window.chrome&&chrome.app&&chrome.app.window?document.documentElement.style.display="block":top.location=self.location}catch(e){console.error("CJ protection",e)}var t=[Config.Navigator.osX?"osx":"non_osx",Config.Navigator.msie?"msie":"non_msie",Config.Navigator.retina?"is_2x":"is_1x"];Config.Modes.ios_standalone&&t.push("ios_standalone"),$(document.body).addClass(t.join(" ")),ConfigStorage.get("layout_selected","i18n_locale",function(e){var t=e[0],n=e[1],a="en-us",r={dom:!1,i18n_ng:!1,i18n_messages:!1,i18n_fallback:!1},i=function(){var e,t=!0;for(e in r)if(r.hasOwnProperty(e)&&r[e]===!1){t=!1;break}t&&(r.boot=!1,angular.bootstrap(document,["myApp"]))};switch(Config.Modes.force_mobile?t="mobile":Config.Modes.force_desktop&&(t="desktop"),t){case"mobile":Config.Mobile=!0;break;case"desktop":Config.Mobile=!1;break;default:var s=$(window).width();Config.Mobile=Config.Navigator.mobile||s>10&&s<480}$("head").append('<link rel="stylesheet" href="css/'+(Config.Mobile?"mobile.css":"desktop.css")+'" />'),n||(n=(navigator.language||"").toLowerCase(),n=Config.I18n.aliases[n]||n);for(var o=0;o<Config.I18n.supported.length;o++)if(Config.I18n.supported[o]==n){Config.I18n.locale=n;break}r.i18n_ng=Config.I18n.locale==a,$.getJSON("js/locales/"+Config.I18n.locale+".json").success(function(e){Config.I18n.messages=e,r.i18n_messages=!0,Config.I18n.locale==a&&(r.i18n_fallback=!0),i()}),Config.I18n.locale!=a&&$.getJSON("js/locales/"+a+".json").success(function(e){Config.I18n.fallback_messages=e,r.i18n_fallback=!0,i()}),$(document).ready(function(){r.dom=!0,r.i18n_ng?i():$("<script>").appendTo("body").on("load",function(){r.i18n_ng=!0,i()}).attr("src","vendor/angular/i18n/angular-locale_"+Config.I18n.locale+".js")})})}(),function(){function e(){t||safeConfirm({type:"WEBOGRAM_UPDATED_RELOAD",message:"A new version of Webogram is downloaded. Launch it?"},function(e){e?window.location.reload():t=!0})}if(window.safeConfirm=function(e,t){"string"==typeof e&&(e={message:e});var n=!1;try{n=confirm(e.message)}catch(a){n=!0}setTimeout(function(){t(n)},10)},(navigator.serviceWorker||window.applicationCache)&&!Config.Modes.packed&&window.addEventListener){var t=!1;if(navigator.serviceWorker)navigator.serviceWorker.register("service_worker.js").then(function(t){console.log("Offline worker registered"),t.addEventListener("updatefound",function(){var t=this.installing;t.addEventListener("statechange",function(){switch(t.state){case"installed":navigator.serviceWorker.controller&&e();break;case"redundant":console.error("The installing service worker became redundant.")}})})})["catch"](function(e){console.error("Offline register SW error",e)});else{var n=window.applicationCache,a=!1,r=function(e){clearTimeout(a),a=setTimeout(function(){try{n.update()}catch(e){console.log("appCache.update: "+e)}},e||3e5)};r(3e3),window.addEventListener("load",function(){n.addEventListener("updateready",function(){n.status==n.UPDATEREADY&&e()},!1),n.addEventListener("noupdate",function(){r()},!1),n.addEventListener("error",function(){r()},!1)})}}}(),function(e,t,n){"use strict";var a,r,i,s,o,l,c,d,p,u,m,g,h,f,_,y,v,b,w,k,$,C,S,M,x,I,A,E,T,D,P;S={paneClass:"nano-pane",sliderClass:"nano-slider",contentClass:"nano-content",iOSNativeScrolling:!1,preventPageScrolling:!1,disableResize:!1,alwaysVisible:!1,flashDelay:1500,sliderMinHeight:20,sliderMaxHeight:null,documentContext:null,windowContext:null},b="scrollbar",v="scroll",p="mousedown",u="mouseenter",m="mousemove",h="mousewheel",g="mouseup",y="resize",o="drag",l="enter",k="up",_="panedown",i="DOMMouseScroll",s="down",$="wheel",c="keydown",d="keyup",w="touchmove",a="Microsoft Internet Explorer"===t.navigator.appName&&/msie 7./i.test(t.navigator.appVersion)&&t.ActiveXObject,r=null,A=t.requestAnimationFrame,C=t.cancelAnimationFrame,T=n.createElement("div").style,P=function(){var e,t,n,a,r,i;for(a=["t","webkitT","MozT","msT","OT"],e=r=0,i=a.length;r<i;e=++r)if(n=a[e],t=a[e]+"ransform",t in T)return a[e].substr(0,a[e].length-1);return!1}(),D=function(e){return P!==!1&&(""===P?e:P+e.charAt(0).toUpperCase()+e.substr(1))},E=D("transform"),x=E!==!1,M=function(){var e,t,a;return e=n.createElement("div"),t=e.style,t.position="absolute",t.width="100px",t.height="100px",t.overflow=v,t.top="-9999px",n.body.appendChild(e),a=e.offsetWidth-e.clientWidth,n.body.removeChild(e),a},I=function(){var e,n,a;return n=t.navigator.userAgent,!!(e=/(?=.+Mac OS X)(?=.+Firefox)/.test(n))&&(a=/Firefox\/\d{2}\./.exec(n),a&&(a=a[0].replace(/\D+/g,"")),e&&+a>23)},f=function(){function c(a,i){this.el=a,this.options=i,r||(r=M()),this.$el=e(this.el),this.doc=e(this.options.documentContext||n),this.win=e(this.options.windowContext||t),this.body=this.doc.find("body"),this.$content=this.$el.children("."+i.contentClass),this.$content.attr("tabindex",this.options.tabIndex||0),this.content=this.$content[0],this.previousPosition=0,this.options.iOSNativeScrolling&&(null!=this.el.style.WebkitOverflowScrolling||navigator.userAgent.match(/mobi.+Gecko/i))?this.nativeScrolling():this.generate(),this.createEvents(),this.addEvents(),this.reset()}return c.prototype.preventScrolling=function(e,t){if(this.isActive)if(e.type===i)(t===s&&e.originalEvent.detail>0||t===k&&e.originalEvent.detail<0)&&e.preventDefault();else if(e.type===h){if(!e.originalEvent||!e.originalEvent.wheelDelta)return;(t===s&&e.originalEvent.wheelDelta<0||t===k&&e.originalEvent.wheelDelta>0)&&e.preventDefault()}},c.prototype.nativeScrolling=function(){this.$content.css({WebkitOverflowScrolling:"touch"}),this.iOSNativeScrolling=!0,this.isActive=!0},c.prototype.updateScrollValues=function(){var e,t;e=this.content,this.maxScrollTop=e.scrollHeight-e.clientHeight,this.prevScrollTop=this.contentScrollTop||0,this.contentScrollTop=e.scrollTop,t=this.contentScrollTop>this.previousPosition?"down":this.contentScrollTop<this.previousPosition?"up":"same",this.previousPosition=this.contentScrollTop,"same"!==t&&this.$el.trigger("update",{position:this.contentScrollTop,maximum:this.maxScrollTop,direction:t}),this.iOSNativeScrolling||(this.maxSliderTop=this.paneHeight-this.sliderHeight,this.sliderTop=0===this.maxScrollTop?0:this.contentScrollTop*this.maxSliderTop/this.maxScrollTop)},c.prototype.setOnScrollStyles=function(){var e;x?(e={},e[E]="translate(0, "+this.sliderTop+"px)"):e={top:this.sliderTop},A?(C&&this.scrollRAF&&C(this.scrollRAF),this.scrollRAF=A(function(t){return function(){return t.scrollRAF=null,t.slider.css(e)}}(this))):this.slider.css(e)},c.prototype.createEvents=function(){this.events={down:function(e){return function(t){return e.isBeingDragged=!0,e.offsetY=t.pageY-e.slider.offset().top,e.slider.is(t.target)||(e.offsetY=0),e.pane.addClass("active"),e.doc.bind(m,e.events[o]).bind(g,e.events[k]),e.body.bind(u,e.events[l]),!1}}(this),drag:function(e){return function(t){return e.sliderY=t.pageY-e.$el.offset().top-e.paneTop-(e.offsetY||.5*e.sliderHeight),e.scroll(),e.contentScrollTop>=e.maxScrollTop&&e.prevScrollTop!==e.maxScrollTop?e.$el.trigger("scrollend"):0===e.contentScrollTop&&0!==e.prevScrollTop&&e.$el.trigger("scrolltop"),!1}}(this),up:function(e){return function(t){return e.isBeingDragged=!1,e.pane.removeClass("active"),e.doc.unbind(m,e.events[o]).unbind(g,e.events[k]),e.body.unbind(u,e.events[l]),!1}}(this),resize:function(e){return function(t){e.reset()}}(this),panedown:function(e){return function(t){return e.sliderY=(t.offsetY||t.originalEvent.layerY)-.5*e.sliderHeight,e.scroll(),e.events.down(t),!1}}(this),scroll:function(e){return function(t){e.updateScrollValues(),e.isBeingDragged||(e.iOSNativeScrolling||(e.sliderY=e.sliderTop,e.setOnScrollStyles()),null!=t&&(e.contentScrollTop>=e.maxScrollTop?(e.options.preventPageScrolling&&e.preventScrolling(t,s),e.prevScrollTop!==e.maxScrollTop&&e.$el.trigger("scrollend")):0===e.contentScrollTop&&(e.options.preventPageScrolling&&e.preventScrolling(t,k),0!==e.prevScrollTop&&e.$el.trigger("scrolltop"))))}}(this),wheel:function(e){return function(t){var n;if(null!=t)return n=t.delta||t.wheelDelta||t.originalEvent&&t.originalEvent.wheelDelta||-t.detail||t.originalEvent&&-t.originalEvent.detail,n&&(e.sliderY+=-n/3),e.scroll(),!1}}(this),enter:function(e){return function(t){var n;if(e.isBeingDragged)return 1!==(t.buttons||t.which)?(n=e.events)[k].apply(n,arguments):void 0}}(this)}},c.prototype.addEvents=function(){var e;this.removeEvents(),e=this.events,this.options.disableResize||this.win.bind(y,e[y]),this.iOSNativeScrolling||(this.slider.bind(p,e[s]),this.pane.bind(p,e[_]).bind(""+h+" "+i,e[$])),this.$content.bind(""+v+" "+h+" "+i+" "+w,e[v])},c.prototype.removeEvents=function(){var e;e=this.events,this.win.unbind(y,e[y]),this.iOSNativeScrolling||(this.slider.unbind(),this.pane.unbind()),this.$content.unbind(""+v+" "+h+" "+i+" "+w,e[v])},c.prototype.generate=function(){var e,n,a,i,s,o,l;return i=this.options,o=i.paneClass,l=i.sliderClass,e=i.contentClass,(s=this.$el.children("."+o)).length||s.children("."+l).length||this.$el.append('<div class="'+o+'"><div class="'+l+'" /></div>'),this.pane=this.$el.children("."+o),this.slider=this.pane.find("."+l),0===r&&I()?(a=t.getComputedStyle(this.content,null).getPropertyValue("padding-right").replace(/[^0-9.]+/g,""),n={right:-14,paddingRight:+a+14}):r&&(n={right:-r},this.$el.addClass("has-scrollbar")),null!=n&&this.$content.css(n),this},c.prototype.restore=function(){this.stopped=!1,this.iOSNativeScrolling||this.pane.show(),this.addEvents()},c.prototype.reset=function(){var e,t,n,i,s,o,l,c,d,p,u,m;return this.iOSNativeScrolling?void(this.contentHeight=this.content.scrollHeight):(this.$el.find("."+this.options.paneClass).length||this.generate().stop(),this.stopped&&this.restore(),e=this.content,i=e.style,s=i.overflowY,a&&this.$content.css({height:this.$content.height()}),t=e.scrollHeight+r,p=parseInt(this.$el.css("max-height"),10),p>0&&(this.$el.height(""),this.$el.height(e.scrollHeight>p?p:e.scrollHeight)),l=this.pane.outerHeight(!1),d=parseInt(this.pane.css("top"),10),o=parseInt(this.pane.css("bottom"),10),c=l+d+o,m=Math.round(c/t*c),m<this.options.sliderMinHeight?m=this.options.sliderMinHeight:null!=this.options.sliderMaxHeight&&m>this.options.sliderMaxHeight&&(m=this.options.sliderMaxHeight),s===v&&i.overflowX!==v&&(m+=r),this.maxSliderTop=c-m,this.contentHeight=t,this.paneHeight=l,this.paneOuterHeight=c,this.sliderHeight=m,this.paneTop=d,this.slider.height(m),this.events.scroll(),this.pane.show(),this.isActive=!0,e.scrollHeight===e.clientHeight||this.pane.outerHeight(!0)>=e.scrollHeight&&s!==v?(this.pane.hide(),this.isActive=!1):this.el.clientHeight===e.scrollHeight&&s===v?this.slider.hide():this.slider.show(),this.$el.toggleClass("active-scrollbar",this.isActive),this.pane.css({opacity:this.options.alwaysVisible?1:"",visibility:this.options.alwaysVisible?"visible":""}),n=this.$content.css("position"),"static"!==n&&"relative"!==n||(u=parseInt(this.$content.css("right"),10),u&&this.$content.css({right:"",marginRight:u})),this)},c.prototype.scroll=function(){if(this.isActive)return this.sliderY=Math.max(0,this.sliderY),this.sliderY=Math.min(this.maxSliderTop,this.sliderY),this.$content.scrollTop(this.maxScrollTop*this.sliderY/this.maxSliderTop),this.iOSNativeScrolling||(this.updateScrollValues(),this.setOnScrollStyles()),this},c.prototype.scrollBottom=function(e){if(this.isActive)return this.$content.scrollTop(this.contentHeight-this.$content.height()-e).trigger(h),this.stop().restore(),this},c.prototype.scrollTop=function(e){if(this.isActive)return this.$content.scrollTop(+e).trigger(h),this.stop().restore(),this},c.prototype.scrollTo=function(e){if(this.isActive)return this.scrollTop(this.$el.find(e).get(0).offsetTop),this},c.prototype.stop=function(){return C&&this.scrollRAF&&(C(this.scrollRAF),this.scrollRAF=null),this.stopped=!0,this.removeEvents(),this.iOSNativeScrolling||this.pane.hide(),this},c.prototype.destroy=function(){return this.stopped||this.stop(),!this.iOSNativeScrolling&&this.pane.length&&this.pane.remove(),a&&this.$content.height(""),this.$content.removeAttr("tabindex"),this.$el.hasClass("has-scrollbar")&&(this.$el.removeClass("has-scrollbar"),this.$content.css({right:""})),this},c.prototype.flash=function(){if(!this.iOSNativeScrolling&&this.isActive)return this.reset(),this.pane.addClass("flashed"),setTimeout(function(e){return function(){e.pane.removeClass("flashed")}}(this),this.options.flashDelay),this},c}(),e.fn.nanoScroller=function(t){return this.each(function(){var n,a;if((a=this.nanoscroller)||(n=e.extend({},S,t),this.nanoscroller=a=new f(this,n)),t&&"object"==typeof t){if(e.extend(a.options,t),null!=t.scrollBottom)return a.scrollBottom(t.scrollBottom);if(null!=t.scrollTop)return a.scrollTop(t.scrollTop);if(t.scrollTo)return a.scrollTo(t.scrollTo);if("bottom"===t.scroll)return a.scrollBottom(0);if("top"===t.scroll)return a.scrollTop(0);if(t.scroll&&t.scroll instanceof e)return a.scrollTo(t.scroll);if(t.stop)return a.stop();if(t.destroy)return a.destroy();if(t.flash)return a.flash()}return a.reset()})},e.fn.nanoScroller.Constructor=f}(jQuery,window,document),function(e){"use strict";function t(e,t){return t=t||Error,function(){var n,a,r=2,i=arguments,s=i[0],o="["+(e?e+":":"")+s+"] ",l=i[1];for(o+=l.replace(/\{\d+\}/g,function(e){
var t=+e.slice(1,-1),n=t+r;return n<i.length?ye(i[n]):e}),o+="\nhttp://errors.angularjs.org/1.5.7/"+(e?e+"/":"")+s,a=r,n="?";a<i.length;a++,n="&")o+=n+"p"+(a-r)+"="+encodeURIComponent(ye(i[a]));return new t(o)}}function n(e){if(null==e||M(e))return!1;if(Ya(e)||w(e)||Oa&&e instanceof Oa)return!0;var t="length"in Object(e)&&e.length;return k(t)&&(t>=0&&(t-1 in e||e instanceof Array)||"function"==typeof e.item)}function a(e,t,r){var i,s;if(e)if(C(e))for(i in e)"prototype"==i||"length"==i||"name"==i||e.hasOwnProperty&&!e.hasOwnProperty(i)||t.call(r,e[i],i,e);else if(Ya(e)||n(e)){var o="object"!=typeof e;for(i=0,s=e.length;i<s;i++)(o||i in e)&&t.call(r,e[i],i,e)}else if(e.forEach&&e.forEach!==a)e.forEach(t,r,e);else if(b(e))for(i in e)t.call(r,e[i],i,e);else if("function"==typeof e.hasOwnProperty)for(i in e)e.hasOwnProperty(i)&&t.call(r,e[i],i,e);else for(i in e)Da.call(e,i)&&t.call(r,e[i],i,e);return e}function r(e,t,n){for(var a=Object.keys(e).sort(),r=0;r<a.length;r++)t.call(n,e[a[r]],a[r]);return a}function i(e){return function(t,n){e(n,t)}}function s(){return++Ka}function o(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function l(e,t,n){for(var a=e.$$hashKey,r=0,i=t.length;r<i;++r){var s=t[r];if(v(s)||C(s))for(var c=Object.keys(s),d=0,p=c.length;d<p;d++){var u=c[d],m=s[u];n&&v(m)?$(m)?e[u]=new Date(m.valueOf()):S(m)?e[u]=new RegExp(m):m.nodeName?e[u]=m.cloneNode(!0):N(m)?e[u]=m.clone():(v(e[u])||(e[u]=Ya(m)?[]:{}),l(e[u],[m],!0)):e[u]=m}}return o(e,a),e}function c(e){return l(e,ja.call(arguments,1),!1)}function d(e){return l(e,ja.call(arguments,1),!0)}function p(e){return parseInt(e,10)}function u(e,t){return c(Object.create(e),t)}function m(){}function g(e){return e}function h(e){return function(){return e}}function f(e){return C(e.toString)&&e.toString!==Va}function _(e){return"undefined"==typeof e}function y(e){return"undefined"!=typeof e}function v(e){return null!==e&&"object"==typeof e}function b(e){return null!==e&&"object"==typeof e&&!za(e)}function w(e){return"string"==typeof e}function k(e){return"number"==typeof e}function $(e){return"[object Date]"===Va.call(e)}function C(e){return"function"==typeof e}function S(e){return"[object RegExp]"===Va.call(e)}function M(e){return e&&e.window===e}function x(e){return e&&e.$evalAsync&&e.$watch}function I(e){return"[object File]"===Va.call(e)}function A(e){return"[object FormData]"===Va.call(e)}function E(e){return"[object Blob]"===Va.call(e)}function T(e){return"boolean"==typeof e}function D(e){return e&&C(e.then)}function P(e){return e&&k(e.length)&&Za.test(Va.call(e))}function R(e){return"[object ArrayBuffer]"===Va.call(e)}function N(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function F(e){var t,n={},a=e.split(",");for(t=0;t<a.length;t++)n[a[t]]=!0;return n}function U(e){return Pa(e.nodeName||e[0]&&e[0].nodeName)}function O(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),n}function B(e,t){function n(e,t){var n,a=t.$$hashKey;if(Ya(e))for(var i=0,s=e.length;i<s;i++)t.push(r(e[i]));else if(b(e))for(n in e)t[n]=r(e[n]);else if(e&&"function"==typeof e.hasOwnProperty)for(n in e)e.hasOwnProperty(n)&&(t[n]=r(e[n]));else for(n in e)Da.call(e,n)&&(t[n]=r(e[n]));return o(t,a),t}function r(e){if(!v(e))return e;var t=s.indexOf(e);if(t!==-1)return l[t];if(M(e)||x(e))throw Wa("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var a=!1,r=i(e);return void 0===r&&(r=Ya(e)?[]:Object.create(za(e)),a=!0),s.push(e),l.push(r),a?n(e,r):r}function i(e){switch(Va.call(e)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return new e.constructor(r(e.buffer),e.byteOffset,e.length);case"[object ArrayBuffer]":if(!e.slice){var t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e.slice(0);case"[object Boolean]":case"[object Number]":case"[object String]":case"[object Date]":return new e.constructor(e.valueOf());case"[object RegExp]":var n=new RegExp(e.source,e.toString().match(/[^\/]*$/)[0]);return n.lastIndex=e.lastIndex,n;case"[object Blob]":return new e.constructor([e],{type:e.type})}if(C(e.cloneNode))return e.cloneNode(!0)}var s=[],l=[];if(t){if(P(t)||R(t))throw Wa("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e===t)throw Wa("cpi","Can't copy! Source and destination are identical.");return Ya(t)?t.length=0:a(t,function(e,n){"$$hashKey"!==n&&delete t[n]}),s.push(e),l.push(t),n(e,t)}return r(e)}function L(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!==e&&t!==t)return!0;var n,a,r,i=typeof e,s=typeof t;if(i==s&&"object"==i){if(!Ya(e)){if($(e))return!!$(t)&&L(e.getTime(),t.getTime());if(S(e))return!!S(t)&&e.toString()==t.toString();if(x(e)||x(t)||M(e)||M(t)||Ya(t)||$(t)||S(t))return!1;r=ge();for(a in e)if("$"!==a.charAt(0)&&!C(e[a])){if(!L(e[a],t[a]))return!1;r[a]=!0}for(a in t)if(!(a in r)&&"$"!==a.charAt(0)&&y(t[a])&&!C(t[a]))return!1;return!0}if(!Ya(t))return!1;if((n=e.length)==t.length){for(a=0;a<n;a++)if(!L(e[a],t[a]))return!1;return!0}}return!1}function j(e,t,n){return e.concat(ja.call(t,n))}function H(e,t){return ja.call(e,t||0)}function q(e,t){var n=arguments.length>2?H(arguments,2):[];return!C(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,j(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function V(t,n){var a=n;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?a=void 0:M(n)?a="$WINDOW":n&&e.document===n?a="$DOCUMENT":x(n)&&(a="$SCOPE"),a}function z(e,t){if(!_(e))return k(t)||(t=t?2:null),JSON.stringify(e,V,t)}function W(e){return w(e)?JSON.parse(e):e}function G(e,t){e=e.replace(tr,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function K(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function Y(e,t,n){n=n?-1:1;var a=e.getTimezoneOffset(),r=G(t,a);return K(e,n*(r-a))}function Z(e){e=Oa(e).clone();try{e.empty()}catch(t){}var n=Oa("<div>").append(e).html();try{return e[0].nodeType===or?Pa(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(e,t){return"<"+Pa(t)})}catch(t){return Pa(n)}}function X(e){try{return decodeURIComponent(e)}catch(t){}}function J(e){var t={};return a((e||"").split("&"),function(e){var n,a,r;e&&(a=e=e.replace(/\+/g,"%20"),n=e.indexOf("="),n!==-1&&(a=e.substring(0,n),r=e.substring(n+1)),a=X(a),y(a)&&(r=!y(r)||X(r),Da.call(t,a)?Ya(t[a])?t[a].push(r):t[a]=[t[a],r]:t[a]=r))}),t}function Q(e){var t=[];return a(e,function(e,n){Ya(e)?a(e,function(e){t.push(te(n,!0)+(e===!0?"":"="+te(e,!0)))}):t.push(te(n,!0)+(e===!0?"":"="+te(e,!0)))}),t.length?t.join("&"):""}function ee(e){return te(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function te(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}function ne(e,t){var n,a,r=nr.length;for(a=0;a<r;++a)if(n=nr[a]+t,w(n=e.getAttribute(n)))return n;return null}function ae(e,t){var n,r,i={};a(nr,function(t){var a=t+"app";!n&&e.hasAttribute&&e.hasAttribute(a)&&(n=e,r=e.getAttribute(a))}),a(nr,function(t){var a,i=t+"app";!n&&(a=e.querySelector("["+i.replace(":","\\:")+"]"))&&(n=a,r=a.getAttribute(i))}),n&&(i.strictDi=null!==ne(n,"strict-di"),t(n,r?[r]:[],i))}function re(t,n,r){v(r)||(r={});var i={strictDi:!1};r=c(i,r);var s=function(){if(t=Oa(t),t.injector()){var a=t[0]===e.document?"document":Z(t);throw Wa("btstrpd","App already bootstrapped with this element '{0}'",a.replace(/</,"&lt;").replace(/>/,"&gt;"))}n=n||[],n.unshift(["$provide",function(e){e.value("$rootElement",t)}]),r.debugInfoEnabled&&n.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),n.unshift("ng");var i=at(n,r.strictDi);return i.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,a){e.$apply(function(){t.data("$injector",a),n(t)(e)})}]),i},o=/^NG_ENABLE_DEBUG_INFO!/,l=/^NG_DEFER_BOOTSTRAP!/;return e&&o.test(e.name)&&(r.debugInfoEnabled=!0,e.name=e.name.replace(o,"")),e&&!l.test(e.name)?s():(e.name=e.name.replace(l,""),Ga.resumeBootstrap=function(e){return a(e,function(e){n.push(e)}),s()},void(C(Ga.resumeDeferredBootstrap)&&Ga.resumeDeferredBootstrap()))}function ie(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function se(e){var t=Ga.element(e).injector();if(!t)throw Wa("test","no injector found for element argument to getTestability");return t.get("$$testability")}function oe(e,t){return t=t||"_",e.replace(ar,function(e,n){return(n?t:"")+e.toLowerCase()})}function le(){var t;if(!rr){var n=er();Ba=_(n)?e.jQuery:n?e[n]:void 0,Ba&&Ba.fn.on?(Oa=Ba,c(Ba.fn,{scope:Mr.scope,isolateScope:Mr.isolateScope,controller:Mr.controller,injector:Mr.injector,inheritedData:Mr.inheritedData}),t=Ba.cleanData,Ba.cleanData=function(e){for(var n,a,r=0;null!=(a=e[r]);r++)n=Ba._data(a,"events"),n&&n.$destroy&&Ba(a).triggerHandler("$destroy");t(e)}):Oa=Ae,Ga.element=Oa,rr=!0}}function ce(e,t,n){if(!e)throw Wa("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function de(e,t,n){return n&&Ya(e)&&(e=e[e.length-1]),ce(C(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function pe(e,t){if("hasOwnProperty"===e)throw Wa("badname","hasOwnProperty is not a valid {0} name",t)}function ue(e,t,n){if(!t)return e;for(var a,r=t.split("."),i=e,s=r.length,o=0;o<s;o++)a=r[o],e&&(e=(i=e)[a]);return!n&&C(e)?q(i,e):e}function me(e){for(var t,n=e[0],a=e[e.length-1],r=1;n!==a&&(n=n.nextSibling);r++)(t||e[r]!==n)&&(t||(t=Oa(ja.call(e,0,r))),t.push(n));return t||e}function ge(){return Object.create(null)}function he(e){function n(e,t,n){return e[t]||(e[t]=n())}var a=t("$injector"),r=t("ng"),i=n(e,"angular",Object);return i.$$minErr=i.$$minErr||t,n(i,"module",function(){var e={};return function(t,i,s){var o=function(e,t){if("hasOwnProperty"===e)throw r("badname","hasOwnProperty is not a valid {0} name",t)};return o(t,"module"),i&&e.hasOwnProperty(t)&&(e[t]=null),n(e,t,function(){function e(e,t,n,a){return a||(a=r),function(){return a[n||"push"]([e,t,arguments]),d}}function n(e,n){return function(a,i){return i&&C(i)&&(i.$$moduleName=t),r.push([e,n,arguments]),d}}if(!i)throw a("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",t);var r=[],o=[],l=[],c=e("$injector","invoke","push",o),d={_invokeQueue:r,_configBlocks:o,_runBlocks:l,requires:i,name:t,provider:n("$provide","provider"),factory:n("$provide","factory"),service:n("$provide","service"),value:e("$provide","value"),constant:e("$provide","constant","unshift"),decorator:n("$provide","decorator"),animation:n("$animateProvider","register"),filter:n("$filterProvider","register"),controller:n("$controllerProvider","register"),directive:n("$compileProvider","directive"),component:n("$compileProvider","component"),config:c,run:function(e){return l.push(e),this}};return s&&c(s),d})}})}function fe(e,t){if(Ya(e)){t=t||[];for(var n=0,a=e.length;n<a;n++)t[n]=e[n]}else if(v(e)){t=t||{};for(var r in e)"$"===r.charAt(0)&&"$"===r.charAt(1)||(t[r]=e[r])}return t||e}function _e(e){var t=[];return JSON.stringify(e,function(e,n){if(n=V(e,n),v(n)){if(t.indexOf(n)>=0)return"...";t.push(n)}return n})}function ye(e){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):_(e)?"undefined":"string"!=typeof e?_e(e):e}function ve(n){c(n,{bootstrap:re,copy:B,extend:c,merge:d,equals:L,element:Oa,forEach:a,injector:at,noop:m,bind:q,toJson:z,fromJson:W,identity:g,isUndefined:_,isDefined:y,isString:w,isFunction:C,isObject:v,isNumber:k,isElement:N,isArray:Ya,version:pr,isDate:$,lowercase:Pa,uppercase:Ra,callbacks:{counter:0},getTestability:se,$$minErr:t,$$csp:Qa,reloadWithDebugInfo:ie}),(La=he(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:Sn}),e.provider("$compile",gt).directive({a:Pi,input:Ji,textarea:Ji,form:Oi,script:Gs,select:Zs,style:Js,option:Xs,ngBind:ts,ngBindHtml:as,ngBindTemplate:ns,ngClass:is,ngClassEven:os,ngClassOdd:ss,ngCloak:ls,ngController:cs,ngForm:Bi,ngHide:Ls,ngIf:us,ngInclude:ms,ngInit:hs,ngNonBindable:Ts,ngPluralize:Ns,ngRepeat:Fs,ngShow:Bs,ngStyle:js,ngSwitch:Hs,ngSwitchWhen:qs,ngSwitchDefault:Vs,ngOptions:Rs,ngTransclude:Ws,ngModel:Is,ngList:fs,ngChange:rs,pattern:eo,ngPattern:eo,required:Qs,ngRequired:Qs,minlength:no,ngMinlength:no,maxlength:to,ngMaxlength:to,ngValue:es,ngModelOptions:Es}).directive({ngInclude:gs}).directive(Ri).directive(ds),e.provider({$anchorScroll:rt,$animate:Hr,$animateCss:zr,$$animateJs:Lr,$$animateQueue:jr,$$AnimateRunner:Vr,$$animateAsyncRun:qr,$browser:dt,$cacheFactory:pt,$controller:bt,$document:wt,$exceptionHandler:kt,$filter:Bn,$$forceReflow:Xr,$interpolate:Ft,$interval:Ut,$http:Dt,$httpParamSerializer:Ct,$httpParamSerializerJQLike:St,$httpBackend:Rt,$xhrFactory:Pt,$location:Jt,$log:Qt,$parse:vn,$rootScope:Cn,$q:bn,$$q:wn,$sce:An,$sceDelegate:In,$sniffer:En,$templateCache:ut,$templateRequest:Tn,$$testability:Dn,$timeout:Pn,$window:Fn,$$rAF:$n,$$jqLite:Ze,$$HashMap:Er,$$cookieReader:On})}])}function be(){return++mr}function we(e){return e.replace(fr,function(e,t,n,a){return a?n.toUpperCase():n}).replace(_r,"Moz$1")}function ke(e){return!wr.test(e)}function $e(e){var t=e.nodeType;return t===ir||!t||t===cr}function Ce(e){for(var t in ur[e.ng339])return!0;return!1}function Se(e){for(var t=0,n=e.length;t<n;t++)Pe(e[t])}function Me(e,t){var n,r,i,s,o=t.createDocumentFragment(),l=[];if(ke(e))l.push(t.createTextNode(e));else{for(n=n||o.appendChild(t.createElement("div")),r=(kr.exec(e)||["",""])[1].toLowerCase(),i=Cr[r]||Cr._default,n.innerHTML=i[1]+e.replace($r,"<$1></$2>")+i[2],s=i[0];s--;)n=n.lastChild;l=j(l,n.childNodes),n=o.firstChild,n.textContent=""}return o.textContent="",o.innerHTML="",a(l,function(e){o.appendChild(e)}),o}function xe(t,n){n=n||e.document;var a;return(a=br.exec(t))?[n.createElement(a[1])]:(a=Me(t,n))?a.childNodes:[]}function Ie(e,t){var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)}function Ae(e){if(e instanceof Ae)return e;var t;if(w(e)&&(e=Xa(e),t=!0),!(this instanceof Ae)){if(t&&"<"!=e.charAt(0))throw vr("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new Ae(e)}t?Be(this,xe(e)):Be(this,e)}function Ee(e){return e.cloneNode(!0)}function Te(e,t){if(t||Pe(e),e.querySelectorAll)for(var n=e.querySelectorAll("*"),a=0,r=n.length;a<r;a++)Pe(n[a])}function De(e,t,n,r){if(y(r))throw vr("offargs","jqLite#off() does not support the `selector` argument");var i=Re(e),s=i&&i.events,o=i&&i.handle;if(o)if(t){var l=function(t){var a=s[t];y(n)&&O(a||[],n),y(n)&&a&&a.length>0||(hr(e,t,o),delete s[t])};a(t.split(" "),function(e){l(e),yr[e]&&l(yr[e])})}else for(t in s)"$destroy"!==t&&hr(e,t,o),delete s[t]}function Pe(e,t){var n=e.ng339,a=n&&ur[n];if(a){if(t)return void delete a.data[t];a.handle&&(a.events.$destroy&&a.handle({},"$destroy"),De(e)),delete ur[n],e.ng339=void 0}}function Re(e,t){var n=e.ng339,a=n&&ur[n];return t&&!a&&(e.ng339=n=be(),a=ur[n]={events:{},data:{},handle:void 0}),a}function Ne(e,t,n){if($e(e)){var a=y(n),r=!a&&t&&!v(t),i=!t,s=Re(e,!r),o=s&&s.data;if(a)o[t]=n;else{if(i)return o;if(r)return o&&o[t];c(o,t)}}}function Fe(e,t){return!!e.getAttribute&&(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1}function Ue(e,t){t&&e.setAttribute&&a(t.split(" "),function(t){e.setAttribute("class",Xa((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+Xa(t)+" "," ")))})}function Oe(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");a(t.split(" "),function(e){e=Xa(e),n.indexOf(" "+e+" ")===-1&&(n+=e+" ")}),e.setAttribute("class",Xa(n))}}function Be(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var a=0;a<n;a++)e[e.length++]=t[a]}else e[e.length++]=t}}function Le(e,t){return je(e,"$"+(t||"ngController")+"Controller")}function je(e,t,n){e.nodeType==cr&&(e=e.documentElement);for(var a=Ya(t)?t:[t];e;){for(var r=0,i=a.length;r<i;r++)if(y(n=Oa.data(e,a[r])))return n;e=e.parentNode||e.nodeType===dr&&e.host}}function He(e){for(Te(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function qe(e,t){t||Te(e);var n=e.parentNode;n&&n.removeChild(e)}function Ve(t,n){n=n||e,"complete"===n.document.readyState?n.setTimeout(t):Oa(n).on("load",t)}function ze(e,t){var n=xr[t.toLowerCase()];return n&&Ir[U(e)]&&n}function We(e){return Ar[e]}function Ge(e,t){var n=function(n,a){n.isDefaultPrevented=function(){return n.defaultPrevented};var r=t[a||n.type],i=r?r.length:0;if(i){if(_(n.immediatePropagationStopped)){var s=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),s&&s.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0};var o=r.specialHandlerWrapper||Ke;i>1&&(r=fe(r));for(var l=0;l<i;l++)n.isImmediatePropagationStopped()||o(e,n,r[l])}};return n.elem=e,n}function Ke(e,t,n){n.call(e,t)}function Ye(e,t,n){var a=t.relatedTarget;a&&(a===e||Sr.call(e,a))||n.call(e,t)}function Ze(){this.$get=function(){return c(Ae,{hasClass:function(e,t){return e.attr&&(e=e[0]),Fe(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),Oe(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),Ue(e,t)}})}}function Xe(e,t){var n=e&&e.$$hashKey;if(n)return"function"==typeof n&&(n=e.$$hashKey()),n;var a=typeof e;return n="function"==a||"object"==a&&null!==e?e.$$hashKey=a+":"+(t||s)():a+":"+e}function Je(e,t){if(t){var n=0;this.nextUid=function(){return++n}}a(e,this.put,this)}function Qe(e){return Function.prototype.toString.call(e)+" "}function et(e){var t=Qe(e).replace(Nr,""),n=t.match(Tr)||t.match(Dr);return n}function tt(e){var t=et(e);return t?"function("+(t[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function nt(e,t,n){var r,i,s;if("function"==typeof e){if(!(r=e.$inject)){if(r=[],e.length){if(t)throw w(n)&&n||(n=e.name||tt(e)),Fr("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);i=et(e),a(i[1].split(Pr),function(e){e.replace(Rr,function(e,t,n){r.push(n)})})}e.$inject=r}}else Ya(e)?(s=e.length-1,de(e[s],"fn"),r=e.slice(0,s)):de(e,"fn",!0);return r}function at(e,t){function n(e){return function(t,n){return v(t)?void a(t,i(e)):e(t,n)}}function r(e,t){if(pe(e,"service"),(C(t)||Ya(t))&&(t=$.instantiate(t)),!t.$get)throw Fr("pget","Provider '{0}' must define $get factory method.",e);return k[e+f]=t}function s(e,t){return function(){var n=x.invoke(t,this);if(_(n))throw Fr("undef","Provider '{0}' must return a value from $get factory method.",e);return n}}function o(e,t,n){return r(e,{$get:n!==!1?s(e,t):t})}function l(e,t){return o(e,["$injector",function(e){return e.instantiate(t)}])}function c(e,t){return o(e,h(t),!1)}function d(e,t){pe(e,"constant"),k[e]=t,S[e]=t}function p(e,t){var n=$.get(e+f),a=n.$get;n.$get=function(){var e=x.invoke(a,n);return x.invoke(t,null,{$delegate:e})}}function u(e){ce(_(e)||Ya(e),"modulesToLoad","not an array");var t,n=[];return a(e,function(e){function a(e){var t,n;for(t=0,n=e.length;t<n;t++){var a=e[t],r=$.get(a[0]);r[a[1]].apply(r,a[2])}}if(!b.get(e)){b.put(e,!0);try{w(e)?(t=La(e),n=n.concat(u(t.requires)).concat(t._runBlocks),a(t._invokeQueue),a(t._configBlocks)):C(e)?n.push($.invoke(e)):Ya(e)?n.push($.invoke(e)):de(e,"module")}catch(r){throw Ya(e)&&(e=e[e.length-1]),r.message&&r.stack&&r.stack.indexOf(r.message)==-1&&(r=r.message+"\n"+r.stack),Fr("modulerr","Failed to instantiate module {0} due to:\n{1}",e,r.stack||r.message||r)}}}),n}function m(e,n){function a(t,a){if(e.hasOwnProperty(t)){if(e[t]===g)throw Fr("cdep","Circular dependency found: {0}",t+" <- "+y.join(" <- "));return e[t]}try{return y.unshift(t),e[t]=g,e[t]=n(t,a)}catch(r){throw e[t]===g&&delete e[t],r}finally{y.shift()}}function r(e,n,r){for(var i=[],s=at.$$annotate(e,t,r),o=0,l=s.length;o<l;o++){var c=s[o];if("string"!=typeof c)throw Fr("itkn","Incorrect injection token! Expected service name as string, got {0}",c);i.push(n&&n.hasOwnProperty(c)?n[c]:a(c,r))}return i}function i(e){return!(Ua<=11)&&("function"==typeof e&&/^(?:class\s|constructor\()/.test(Qe(e)))}function s(e,t,n,a){"string"==typeof n&&(a=n,n=null);var s=r(e,n,a);return Ya(e)&&(e=e[e.length-1]),i(e)?(s.unshift(null),new(Function.prototype.bind.apply(e,s))):e.apply(t,s)}function o(e,t,n){var a=Ya(e)?e[e.length-1]:e,i=r(e,t,n);return i.unshift(null),new(Function.prototype.bind.apply(a,i))}return{invoke:s,instantiate:o,get:a,annotate:at.$$annotate,has:function(t){return k.hasOwnProperty(t+f)||e.hasOwnProperty(t)}}}t=t===!0;var g={},f="Provider",y=[],b=new Je([],(!0)),k={$provide:{provider:n(r),factory:n(o),service:n(l),value:n(c),constant:n(d),decorator:p}},$=k.$injector=m(k,function(e,t){throw Ga.isString(t)&&y.push(t),Fr("unpr","Unknown provider: {0}",y.join(" <- "))}),S={},M=m(S,function(e,t){var n=$.get(e+f,t);return x.invoke(n.$get,n,void 0,e)}),x=M;k["$injector"+f]={$get:h(M)};var I=u(e);return x=M.get("$injector"),x.strictDi=t,a(I,function(e){e&&x.invoke(e)}),x}function rt(){var e=!0;this.disableAutoScrolling=function(){e=!1},this.$get=["$window","$location","$rootScope",function(t,n,a){function r(e){var t=null;return Array.prototype.some.call(e,function(e){if("a"===U(e))return t=e,!0}),t}function i(){var e=o.yOffset;if(C(e))e=e();else if(N(e)){var n=e[0],a=t.getComputedStyle(n);e="fixed"!==a.position?0:n.getBoundingClientRect().bottom}else k(e)||(e=0);return e}function s(e){if(e){e.scrollIntoView();var n=i();if(n){var a=e.getBoundingClientRect().top;t.scrollBy(0,a-n)}}else t.scrollTo(0,0)}function o(e){e=w(e)?e:n.hash();var t;e?(t=l.getElementById(e))?s(t):(t=r(l.getElementsByName(e)))?s(t):"top"===e&&s(null):s(null)}var l=t.document;return e&&a.$watch(function(){return n.hash()},function(e,t){e===t&&""===e||Ve(function(){a.$evalAsync(o)})}),o}]}function it(e,t){return e||t?e?t?(Ya(e)&&(e=e.join(" ")),Ya(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function st(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===Or)return n}}function ot(e){w(e)&&(e=e.split(" "));var t=ge();return a(e,function(e){e.length&&(t[e]=!0)}),t}function lt(e){return v(e)?e:{}}function ct(e,t,n,r){function i(e){try{e.apply(null,H(arguments,1))}finally{if(y--,0===y)for(;v.length;)try{v.pop()()}catch(t){n.error(t)}}}function s(e){var t=e.indexOf("#");return t===-1?"":e.substr(t)}function o(){C=null,l(),c()}function l(){b=S(),b=_(b)?null:b,L(b,I)&&(b=I),I=b}function c(){k===d.url()&&w===b||(k=d.url(),w=b,a(M,function(e){e(d.url(),b)}))}var d=this,p=e.location,u=e.history,g=e.setTimeout,h=e.clearTimeout,f={};d.isMock=!1;var y=0,v=[];d.$$completeOutstandingRequest=i,d.$$incOutstandingRequestCount=function(){y++},d.notifyWhenNoOutstandingRequests=function(e){0===y?e():v.push(e)};var b,w,k=p.href,$=t.find("base"),C=null,S=r.history?function(){try{return u.state}catch(e){}}:m;l(),w=b,d.url=function(t,n,a){if(_(a)&&(a=null),p!==e.location&&(p=e.location),u!==e.history&&(u=e.history),t){var i=w===a;if(k===t&&(!r.history||i))return d;var o=k&&qt(k)===qt(t);return k=t,w=a,!r.history||o&&i?(o||(C=t),n?p.replace(t):o?p.hash=s(t):p.href=t,p.href!==t&&(C=t)):(u[n?"replaceState":"pushState"](a,"",t),l(),w=b),C&&(C=t),d}return C||p.href.replace(/%27/g,"'")},d.state=function(){return b};var M=[],x=!1,I=null;d.onUrlChange=function(t){return x||(r.history&&Oa(e).on("popstate",o),Oa(e).on("hashchange",o),x=!0),M.push(t),t},d.$$applicationDestroyed=function(){Oa(e).off("hashchange popstate",o)},d.$$checkUrlChange=c,d.baseHref=function(){var e=$.attr("href");return e?e.replace(/^(https?\:)?\/\/[^\/]*/,""):""},d.defer=function(e,t){var n;return y++,n=g(function(){delete f[n],i(e)},t||0),f[n]=!0,n},d.defer.cancel=function(e){return!!f[e]&&(delete f[e],h(e),i(m),!0)}}function dt(){this.$get=["$window","$log","$sniffer","$document",function(e,t,n,a){return new ct(e,a,t,n)}]}function pt(){this.$get=function(){function e(e,a){function r(e){e!=u&&(m?m==e&&(m=e.n):m=e,i(e.n,e.p),i(e,u),u=e,u.n=null)}function i(e,t){e!=t&&(e&&(e.p=t),t&&(t.n=e))}if(e in n)throw t("$cacheFactory")("iid","CacheId '{0}' is already taken!",e);var s=0,o=c({},a,{id:e}),l=ge(),d=a&&a.capacity||Number.MAX_VALUE,p=ge(),u=null,m=null;return n[e]={put:function(e,t){if(!_(t)){if(d<Number.MAX_VALUE){var n=p[e]||(p[e]={key:e});r(n)}return e in l||s++,l[e]=t,s>d&&this.remove(m.key),t}},get:function(e){if(d<Number.MAX_VALUE){var t=p[e];if(!t)return;r(t)}return l[e]},remove:function(e){if(d<Number.MAX_VALUE){var t=p[e];if(!t)return;t==u&&(u=t.p),t==m&&(m=t.n),i(t.n,t.p),delete p[e]}e in l&&(delete l[e],s--)},removeAll:function(){l=ge(),s=0,p=ge(),u=m=null},destroy:function(){l=null,o=null,p=null,delete n[e]},info:function(){return c({},o,{size:s})}}}var n={};return e.info=function(){var e={};return a(n,function(t,n){e[n]=t.info()}),e},e.get=function(e){return n[e]},e}}function ut(){this.$get=["$cacheFactory",function(e){return e("templates")}]}function mt(){}function gt(t,n){function r(e,t,n){var r=/^\s*([@&<]|=(\*?))(\??)\s*(\w*)\s*$/,i=ge();return a(e,function(e,a){if(e in M)return void(i[a]=M[e]);var s=e.match(r);if(!s)throw Wr("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",t,a,e,n?"controller bindings definition":"isolate scope definition");i[a]={mode:s[1][0],collection:"*"===s[2],optional:"?"===s[3],attrName:s[4]||a},s[4]&&(M[e]=i[a])}),i}function s(e,t){var n={isolateScope:null,bindToController:null};if(v(e.scope)&&(e.bindToController===!0?(n.bindToController=r(e.scope,t,!0),n.isolateScope={}):n.isolateScope=r(e.scope,t,!1)),v(e.bindToController)&&(n.bindToController=r(e.bindToController,t,!0)),v(n.bindToController)){var a=e.controller,i=e.controllerAs;if(!a)throw Wr("noctrl","Cannot bind to controller without directive '{0}'s controller.",t);if(!vt(a,i))throw Wr("noident","Cannot bind to controller without identifier for directive '{0}'.",t)}return n}function o(e){var t=e.charAt(0);if(!t||t!==Pa(t))throw Wr("baddir","Directive/Component name '{0}' is invalid. The first character must be a lowercase letter",e);if(e!==e.trim())throw Wr("baddir","Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces",e)}function l(e){var t=e.require||e.controller&&e.name;return!Ya(t)&&v(t)&&a(t,function(e,n){var a=e.match($),r=e.substring(a[0].length);r||(t[n]=a[0]+n)}),t}var d={},p="Directive",f=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,b=/(([\w\-]+)(?:\:([^;]+))?;?)/,k=F("ngSrc,ngSrcset,src,srcset"),$=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,S=/^(on[a-z]+|formaction)$/,M=ge();this.directive=function E(e,n){return pe(e,"directive"),w(e)?(o(e),ce(n,"directiveFactory"),d.hasOwnProperty(e)||(d[e]=[],t.factory(e+p,["$injector","$exceptionHandler",function(t,n){var r=[];return a(d[e],function(a,i){try{var s=t.invoke(a);C(s)?s={compile:h(s)}:!s.compile&&s.link&&(s.compile=h(s.link)),s.priority=s.priority||0,s.index=i,s.name=s.name||e,s.require=l(s),s.restrict=s.restrict||"EA",s.$$moduleName=a.$$moduleName,r.push(s)}catch(o){n(o)}}),r}])),d[e].push(n)):a(e,i(E)),this},this.component=function(e,t){function n(e){function n(t){return C(t)||Ya(t)?function(n,a){return e.invoke(t,this,{$element:n,$attrs:a})}:t}var i=t.template||t.templateUrl?t.template:"",s={controller:r,controllerAs:vt(t.controller)||t.controllerAs||"$ctrl",template:n(i),templateUrl:n(t.templateUrl),transclude:t.transclude,scope:{},bindToController:t.bindings||{},restrict:"E",require:t.require};return a(t,function(e,t){"$"===t.charAt(0)&&(s[t]=e)}),s}var r=t.controller||function(){};return a(t,function(e,t){"$"===t.charAt(0)&&(n[t]=e,C(r)&&(r[t]=e))}),n.$inject=["$injector"],this.directive(e,n)},this.aHrefSanitizationWhitelist=function(e){return y(e)?(n.aHrefSanitizationWhitelist(e),this):n.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(e){return y(e)?(n.imgSrcSanitizationWhitelist(e),this):n.imgSrcSanitizationWhitelist()};var I=!0;this.debugInfoEnabled=function(e){return y(e)?(I=e,this):I};var A=10;this.onChangesTtl=function(e){return arguments.length?(A=e,this):A},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate","$$sanitizeUri",function(t,n,r,i,o,l,h,M,E,D){function P(){try{if(!--we)throw ye=void 0,Wr("infchng","{0} $onChanges() iterations reached. Aborting!\n",A);h.$apply(function(){for(var e=[],t=0,n=ye.length;t<n;++t)try{ye[t]()}catch(a){e.push(a)}if(ye=void 0,e.length)throw e})}finally{we++}}function R(e,t){if(t){var n,a,r,i=Object.keys(t);for(n=0,a=i.length;n<a;n++)r=i[n],this[r]=t[r]}else this.$attr={};this.$$element=e}function N(e,t,n){be.innerHTML="<span "+t+">";var a=be.firstChild.attributes,r=a[0];a.removeNamedItem(r.name),r.value=n,e.attributes.setNamedItem(r)}function F(e,t){try{e.addClass(t)}catch(n){}}function B(t,n,a,r,i){t instanceof Oa||(t=Oa(t));for(var s=/\S+/,o=0,l=t.length;o<l;o++){var c=t[o];c.nodeType===or&&c.nodeValue.match(s)&&Ie(c,t[o]=e.document.createElement("span"))}var d=V(t,n,t,a,r,i);B.$$addScopeClass(t);var p=null;return function(e,n,a){ce(e,"scope"),i&&i.needsNewScope&&(e=e.$parent.$new()),a=a||{};var r=a.parentBoundTranscludeFn,s=a.transcludeControllers,o=a.futureParentElement;r&&r.$$boundTransclude&&(r=r.$$boundTransclude),p||(p=j(o));var l;if(l="html"!==p?Oa(de(p,Oa("<div>").append(t).html())):n?Mr.clone.call(t):t,s)for(var c in s)l.data("$"+c+"Controller",s[c].instance);return B.$$addScopeInfo(l,e),n&&n(l,e),d&&d(e,l,l,r),l}}function j(e){var t=e&&e[0];return t&&"foreignobject"!==U(t)&&Va.call(t).match(/SVG/)?"svg":"html"}function V(e,t,n,a,r,i){function s(e,n,a,r){var i,s,o,l,c,d,p,u,h;if(m){var f=n.length;for(h=new Array(f),c=0;c<g.length;c+=3)p=g[c],h[p]=n[p]}else h=n;for(c=0,d=g.length;c<d;)o=h[g[c++]],i=g[c++],s=g[c++],i?(i.scope?(l=e.$new(),B.$$addScopeInfo(Oa(o),l)):l=e,u=i.transcludeOnThisElement?z(e,i.transclude,r):!i.templateOnThisElement&&r?r:!r&&t?z(e,t):null,i(s,l,o,a,u)):s&&s(e,o.childNodes,void 0,r)}for(var o,l,c,d,p,u,m,g=[],h=0;h<e.length;h++)o=new R,l=W(e[h],[],o,0===h?a:void 0,r),c=l.length?X(l,e[h],o,t,n,null,[],[],i):null,c&&c.scope&&B.$$addScopeClass(o.$$element),p=c&&c.terminal||!(d=e[h].childNodes)||!d.length?null:V(d,c?(c.transcludeOnThisElement||!c.templateOnThisElement)&&c.transclude:t),(c||p)&&(g.push(h,c,p),u=!0,m=m||c),i=null;return u?s:null}function z(e,t,n){function a(a,r,i,s,o){return a||(a=e.$new(!1,o),a.$$transcluded=!0),t(a,r,{parentBoundTranscludeFn:n,transcludeControllers:i,futureParentElement:s})}var r=a.$$slots=ge();for(var i in t.$$slots)t.$$slots[i]?r[i]=z(e,t.$$slots[i],n):r[i]=null;return a}function W(e,t,n,a,r){var i,s,o=e.nodeType,l=n.$attr;switch(o){case ir:te(t,ft(U(e)),"E",a,r);for(var c,d,p,u,m,g,h=e.attributes,_=0,y=h&&h.length;_<y;_++){var k=!1,$=!1;c=h[_],d=c.name,m=Xa(c.value),u=ft(d),(g=Me.test(u))&&(d=d.replace(Kr,"").substr(8).replace(/_(.)/g,function(e,t){return t.toUpperCase()}));var C=u.match(xe);C&&ne(C[1])&&(k=d,$=d.substr(0,d.length-5)+"end",d=d.substr(0,d.length-6)),p=ft(d.toLowerCase()),l[p]=d,!g&&n.hasOwnProperty(p)||(n[p]=m,ze(e,p)&&(n[p]=!0)),ue(e,t,m,p,g),te(t,p,"A",a,r,k,$)}if(s=e.className,v(s)&&(s=s.animVal),w(s)&&""!==s)for(;i=b.exec(s);)p=ft(i[2]),te(t,p,"C",a,r)&&(n[p]=Xa(i[3])),s=s.substr(i.index+i[0].length);break;case or:if(11===Ua)for(;e.parentNode&&e.nextSibling&&e.nextSibling.nodeType===or;)e.nodeValue=e.nodeValue+e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);le(t,e.nodeValue);break;case lr:try{i=f.exec(e.nodeValue),i&&(p=ft(i[1]),te(t,p,"M",a,r)&&(n[p]=Xa(i[2])))}catch(S){}}return t.sort(ie),t}function G(e,t,n){var a=[],r=0;if(t&&e.hasAttribute&&e.hasAttribute(t)){do{if(!e)throw Wr("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);e.nodeType==ir&&(e.hasAttribute(t)&&r++,
e.hasAttribute(n)&&r--),a.push(e),e=e.nextSibling}while(r>0)}else a.push(e);return Oa(a)}function K(e,t,n){return function(a,r,i,s,o){return r=G(r[0],t,n),e(a,r,i,s,o)}}function Y(e,t,n,a,r,i){var s;return e?B(t,n,a,r,i):function(){return s||(s=B(t,n,a,r,i),t=n=i=null),s.apply(this,arguments)}}function X(e,t,n,i,s,o,l,d,p){function u(e,t,n,a){e&&(n&&(e=K(e,n,a)),e.require=g.require,e.directiveName=h,(S===g||g.$$isolateScope)&&(e=he(e,{isolateScope:!0})),l.push(e)),t&&(n&&(t=K(t,n,a)),t.require=g.require,t.directiveName=h,(S===g||g.$$isolateScope)&&(t=he(t,{isolateScope:!0})),d.push(t))}function m(e,i,s,o,p){function u(e,t,n,a){var r;if(x(e)||(a=n,n=t,t=e,e=void 0),T&&(r=b),n||(n=T?I.parent():I),!a)return p(e,t,r,n,O);var i=p.$$slots[a];if(i)return i(e,t,r,n,O);if(_(i))throw Wr("noslot",'No parent directive that requires a transclusion with slot name "{0}". Element: {1}',a,Z(I))}var m,g,h,f,y,b,w,I,A,E;t===s?(A=n,I=n.$$element):(I=Oa(s),A=new R(I,n)),y=i,S?f=i.$new(!0):k&&(y=i.$parent),p&&(w=u,w.$$boundTransclude=p,w.isSlotFilled=function(e){return!!p.$$slots[e]}),$&&(b=Q(I,A,w,$,f,i,S)),S&&(B.$$addScopeInfo(I,f,!0,!(M&&(M===S||M===S.$$originalDirective))),B.$$addScopeClass(I,!0),f.$$isolateBindings=S.$$isolateBindings,E=_e(i,A,f,f.$$isolateBindings,S),E.removeWatches&&f.$on("$destroy",E.removeWatches));for(var D in b){var P=$[D],N=b[D],F=P.$$bindings.bindToController;N.identifier&&F?N.bindingInfo=_e(y,A,N.instance,F,P):N.bindingInfo={};var U=N();U!==N.instance&&(N.instance=U,I.data("$"+P.name+"Controller",U),N.bindingInfo.removeWatches&&N.bindingInfo.removeWatches(),N.bindingInfo=_e(y,A,N.instance,F,P))}for(a($,function(e,t){var n=e.require;e.bindToController&&!Ya(n)&&v(n)&&c(b[t].instance,J(t,n,I,b))}),a(b,function(e){var t=e.instance;if(C(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(n){r(n)}if(C(t.$onInit))try{t.$onInit()}catch(n){r(n)}C(t.$onDestroy)&&y.$on("$destroy",function(){t.$onDestroy()})}),m=0,g=l.length;m<g;m++)h=l[m],fe(h,h.isolateScope?f:i,I,A,h.require&&J(h.directiveName,h.require,I,b),w);var O=i;for(S&&(S.template||null===S.templateUrl)&&(O=f),e&&e(O,s.childNodes,void 0,p),m=d.length-1;m>=0;m--)h=d[m],fe(h,h.isolateScope?f:i,I,A,h.require&&J(h.directiveName,h.require,I,b),w);a(b,function(e){var t=e.instance;C(t.$postLink)&&t.$postLink()})}p=p||{};for(var g,h,f,y,b,w=-Number.MAX_VALUE,k=p.newScopeDirective,$=p.controllerDirectives,S=p.newIsolateScopeDirective,M=p.templateDirective,I=p.nonTlbTranscludeDirective,A=!1,E=!1,T=p.hasElementTranscludeDirective,D=n.$$element=Oa(t),P=o,N=i,F=!1,O=!1,L=0,j=e.length;L<j;L++){g=e[L];var V=g.$$start,z=g.$$end;if(V&&(D=G(t,V,z)),f=void 0,w>g.priority)break;if((b=g.scope)&&(g.templateUrl||(v(b)?(se("new/isolated scope",S||k,g,D),S=g):se("new/isolated scope",S,g,D)),k=k||g),h=g.name,!F&&(g.replace&&(g.templateUrl||g.template)||g.transclude&&!g.$$tlb)){for(var X,te=L+1;X=e[te++];)if(X.transclude&&!X.$$tlb||X.replace&&(X.templateUrl||X.template)){O=!0;break}F=!0}if(!g.templateUrl&&g.controller&&(b=g.controller,$=$||ge(),se("'"+h+"' controller",$[h],g,D),$[h]=g),b=g.transclude)if(A=!0,g.$$tlb||(se("transclusion",I,g,D),I=g),"element"==b)T=!0,w=g.priority,f=D,D=n.$$element=Oa(B.$$createComment(h,n[h])),t=D[0],me(s,H(f),t),f[0].$$parentNode=f[0].parentNode,N=Y(O,f,i,w,P&&P.name,{nonTlbTranscludeDirective:I});else{var ne=ge();if(f=Oa(Ee(t)).contents(),v(b)){f=[];var ie=ge(),oe=ge();a(b,function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,ie[e]=t,ne[t]=null,oe[t]=n}),a(D.contents(),function(e){var t=ie[ft(U(e))];t?(oe[t]=!0,ne[t]=ne[t]||[],ne[t].push(e)):f.push(e)}),a(oe,function(e,t){if(!e)throw Wr("reqslot","Required transclusion slot `{0}` was not filled.",t)});for(var le in ne)ne[le]&&(ne[le]=Y(O,ne[le],i))}D.empty(),N=Y(O,f,i,void 0,void 0,{needsNewScope:g.$$isolateScope||g.$$newScope}),N.$$slots=ne}if(g.template)if(E=!0,se("template",M,g,D),M=g,b=C(g.template)?g.template(D,n):g.template,b=Se(b),g.replace){if(P=g,f=ke(b)?[]:yt(de(g.templateNamespace,Xa(b))),t=f[0],1!=f.length||t.nodeType!==ir)throw Wr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",h,"");me(s,D,t);var ce={$attr:{}},pe=W(t,[],ce),ue=e.splice(L+1,e.length-(L+1));(S||k)&&ee(pe,S,k),e=e.concat(pe).concat(ue),ae(n,ce),j=e.length}else D.html(b);if(g.templateUrl)E=!0,se("template",M,g,D),M=g,g.replace&&(P=g),m=re(e.splice(L,e.length-L),D,n,s,A&&N,l,d,{controllerDirectives:$,newScopeDirective:k!==g&&k,newIsolateScopeDirective:S,templateDirective:M,nonTlbTranscludeDirective:I}),j=e.length;else if(g.compile)try{y=g.compile(D,n,N);var ye=g.$$originalDirective||g;C(y)?u(null,q(ye,y),V,z):y&&u(q(ye,y.pre),q(ye,y.post),V,z)}catch(ve){r(ve,Z(D))}g.terminal&&(m.terminal=!0,w=Math.max(w,g.priority))}return m.scope=k&&k.scope===!0,m.transcludeOnThisElement=A,m.templateOnThisElement=E,m.transclude=N,p.hasElementTranscludeDirective=T,m}function J(e,t,n,r){var i;if(w(t)){var s=t.match($),o=t.substring(s[0].length),l=s[1]||s[3],c="?"===s[2];if("^^"===l?n=n.parent():(i=r&&r[o],i=i&&i.instance),!i){var d="$"+o+"Controller";i=l?n.inheritedData(d):n.data(d)}if(!i&&!c)throw Wr("ctreq","Controller '{0}', required by directive '{1}', can't be found!",o,e)}else if(Ya(t)){i=[];for(var p=0,u=t.length;p<u;p++)i[p]=J(e,t[p],n,r)}else v(t)&&(i={},a(t,function(t,a){i[a]=J(e,t,n,r)}));return i||null}function Q(e,t,n,a,r,i,s){var o=ge();for(var c in a){var d=a[c],p={$scope:d===s||d.$$isolateScope?r:i,$element:e,$attrs:t,$transclude:n},u=d.controller;"@"==u&&(u=t[d.name]);var m=l(u,p,!0,d.controllerAs);o[d.name]=m,e.data("$"+d.name+"Controller",m.instance)}return o}function ee(e,t,n){for(var a=0,r=e.length;a<r;a++)e[a]=u(e[a],{$$isolateScope:t,$$newScope:n})}function te(e,n,a,i,o,l,c){if(n===o)return null;var m=null;if(d.hasOwnProperty(n))for(var g,h=t.get(n+p),f=0,y=h.length;f<y;f++)try{if(g=h[f],(_(i)||i>g.priority)&&g.restrict.indexOf(a)!=-1){if(l&&(g=u(g,{$$start:l,$$end:c})),!g.$$bindings){var b=g.$$bindings=s(g,g.name);v(b.isolateScope)&&(g.$$isolateBindings=b.isolateScope)}e.push(g),m=g}}catch(w){r(w)}return m}function ne(e){if(d.hasOwnProperty(e))for(var n,a=t.get(e+p),r=0,i=a.length;r<i;r++)if(n=a[r],n.multiElement)return!0;return!1}function ae(e,t){var n=t.$attr,r=e.$attr;e.$$element;a(e,function(a,r){"$"!=r.charAt(0)&&(t[r]&&t[r]!==a&&(a+=("style"===r?";":" ")+t[r]),e.$set(r,a,!0,n[r]))}),a(t,function(t,a){e.hasOwnProperty(a)||"$"===a.charAt(0)||(e[a]=t,"class"!==a&&"style"!==a&&(r[a]=n[a]))})}function re(e,t,n,r,s,o,l,c){var d,p,m=[],g=t[0],h=e.shift(),f=u(h,{templateUrl:null,transclude:null,replace:null,$$originalDirective:h}),_=C(h.templateUrl)?h.templateUrl(t,n):h.templateUrl,y=h.templateNamespace;return t.empty(),i(_).then(function(i){var u,b,w,k;if(i=Se(i),h.replace){if(w=ke(i)?[]:yt(de(y,Xa(i))),u=w[0],1!=w.length||u.nodeType!==ir)throw Wr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",h.name,_);b={$attr:{}},me(r,t,u);var $=W(u,[],b);v(h.scope)&&ee($,!0),e=$.concat(e),ae(n,b)}else u=g,t.html(i);for(e.unshift(f),d=X(e,u,n,s,t,h,o,l,c),a(r,function(e,n){e==u&&(r[n]=t[0])}),p=V(t[0].childNodes,s);m.length;){var C=m.shift(),S=m.shift(),M=m.shift(),x=m.shift(),I=t[0];if(!C.$$destroyed){if(S!==g){var A=S.className;c.hasElementTranscludeDirective&&h.replace||(I=Ee(u)),me(M,Oa(S),I),F(Oa(I),A)}k=d.transcludeOnThisElement?z(C,d.transclude,x):x,d(p,C,I,r,k)}}m=null}),function(e,t,n,a,r){var i=r;t.$$destroyed||(m?m.push(t,n,a,i):(d.transcludeOnThisElement&&(i=z(t,d.transclude,r)),d(p,t,n,a,i)))}}function ie(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function se(e,t,n,a){function r(e){return e?" (module: "+e+")":""}if(t)throw Wr("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",t.name,r(t.$$moduleName),n.name,r(n.$$moduleName),e,Z(a))}function le(e,t){var a=n(t,!0);a&&e.push({priority:0,compile:function(e){var t=e.parent(),n=!!t.length;return n&&B.$$addBindingClass(t),function(e,t){var r=t.parent();n||B.$$addBindingClass(r),B.$$addBindingInfo(r,a.expressions),e.$watch(a,function(e){t[0].nodeValue=e})}}})}function de(t,n){switch(t=Pa(t||"html")){case"svg":case"math":var a=e.document.createElement("div");return a.innerHTML="<"+t+">"+n+"</"+t+">",a.childNodes[0].childNodes;default:return n}}function pe(e,t){if("srcdoc"==t)return M.HTML;var n=U(e);return"xlinkHref"==t||"form"==n&&"action"==t||"img"!=n&&("src"==t||"ngSrc"==t)?M.RESOURCE_URL:void 0}function ue(e,t,a,r,i){var s=pe(e,r);i=k[r]||i;var o=n(a,!0,s,i);if(o){if("multiple"===r&&"select"===U(e))throw Wr("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",Z(e));t.push({priority:100,compile:function(){return{pre:function(e,t,l){var c=l.$$observers||(l.$$observers=ge());if(S.test(r))throw Wr("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");var d=l[r];d!==a&&(o=d&&n(d,!0,s,i),a=d),o&&(l[r]=o(e),(c[r]||(c[r]=[])).$$inter=!0,(l.$$observers&&l.$$observers[r].$$scope||e).$watch(o,function(e,t){"class"===r&&e!=t?l.$updateClass(e,t):l.$set(r,e)}))}}}})}}function me(t,n,a){var r,i,s=n[0],o=n.length,l=s.parentNode;if(t)for(r=0,i=t.length;r<i;r++)if(t[r]==s){t[r++]=a;for(var c=r,d=c+o-1,p=t.length;c<p;c++,d++)d<p?t[c]=t[d]:delete t[c];t.length-=o-1,t.context===s&&(t.context=a);break}l&&l.replaceChild(a,s);var u=e.document.createDocumentFragment();for(r=0;r<o;r++)u.appendChild(n[r]);for(Oa.hasData(s)&&(Oa.data(a,Oa.data(s)),Oa(s).off("$destroy")),Oa.cleanData(u.querySelectorAll("*")),r=1;r<o;r++)delete n[r];n[0]=a,n.length=1}function he(e,t){return c(function(){return e.apply(null,arguments)},e,t)}function fe(e,t,n,a,i,s){try{e(t,n,a,i,s)}catch(o){r(o,Z(n))}}function _e(e,t,r,i,s){function l(t,n,a){C(r.$onChanges)&&n!==a&&(ye||(e.$$postDigest(P),ye=[]),d||(d={},ye.push(c)),d[t]&&(a=d[t].previousValue),d[t]=new ht(a,n))}function c(){r.$onChanges(d),d=void 0}var d,p=[],u={};return a(i,function(a,i){var c,d,g,h,f,_=a.attrName,y=a.optional,v=a.mode;switch(v){case"@":y||Da.call(t,_)||(r[i]=t[_]=void 0),t.$observe(_,function(e){if(w(e)||T(e)){var t=r[i];l(i,e,t),r[i]=e}}),t.$$observers[_].$$scope=e,c=t[_],w(c)?r[i]=n(c)(e):T(c)&&(r[i]=c),u[i]=new ht(Gr,r[i]);break;case"=":if(!Da.call(t,_)){if(y)break;t[_]=void 0}if(y&&!t[_])break;d=o(t[_]),h=d.literal?L:function(e,t){return e===t||e!==e&&t!==t},g=d.assign||function(){throw c=r[i]=d(e),Wr("nonassign","Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!",t[_],_,s.name)},c=r[i]=d(e);var b=function(t){return h(t,r[i])||(h(t,c)?g(e,t=r[i]):r[i]=t),c=t};b.$stateful=!0,f=a.collection?e.$watchCollection(t[_],b):e.$watch(o(t[_],b),null,d.literal),p.push(f);break;case"<":if(!Da.call(t,_)){if(y)break;t[_]=void 0}if(y&&!t[_])break;d=o(t[_]);var k=r[i]=d(e);u[i]=new ht(Gr,r[i]),f=e.$watch(d,function(e,t){if(t===e){if(t===k)return;t=k}l(i,e,t),r[i]=e},d.literal),p.push(f);break;case"&":if(d=t.hasOwnProperty(_)?o(t[_]):m,d===m&&y)break;r[i]=function(t){return d(e,t)}}}),{initialChanges:u,removeWatches:p.length&&function(){for(var e=0,t=p.length;e<t;++e)p[e]()}}}var ye,ve=/^\w/,be=e.document.createElement("div"),we=A;R.prototype={$normalize:ft,$addClass:function(e){e&&e.length>0&&E.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&E.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=_t(e,t);n&&n.length&&E.addClass(this.$$element,n);var a=_t(t,e);a&&a.length&&E.removeClass(this.$$element,a)},$set:function(e,t,n,i){var s,o=this.$$element[0],l=ze(o,e),c=We(e),d=e;if(l?(this.$$element.prop(e,t),i=l):c&&(this[c]=t,d=c),this[e]=t,i?this.$attr[e]=i:(i=this.$attr[e],i||(this.$attr[e]=i=oe(e,"-"))),s=U(this.$$element),"a"===s&&("href"===e||"xlinkHref"===e)||"img"===s&&"src"===e)this[e]=t=D(t,"src"===e);else if("img"===s&&"srcset"===e&&y(t)){for(var p="",u=Xa(t),m=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,g=/\s/.test(u)?m:/(,)/,h=u.split(g),f=Math.floor(h.length/2),v=0;v<f;v++){var b=2*v;p+=D(Xa(h[b]),!0),p+=" "+Xa(h[b+1])}var w=Xa(h[2*v]).split(/\s/);p+=D(Xa(w[0]),!0),2===w.length&&(p+=" "+Xa(w[1])),this[e]=t=p}n!==!1&&(null===t||_(t)?this.$$element.removeAttr(i):ve.test(i)?this.$$element.attr(i,t):N(this.$$element[0],i,t));var k=this.$$observers;k&&a(k[d],function(e){try{e(t)}catch(n){r(n)}})},$observe:function(e,t){var n=this,a=n.$$observers||(n.$$observers=ge()),r=a[e]||(a[e]=[]);return r.push(t),h.$evalAsync(function(){r.$$inter||!n.hasOwnProperty(e)||_(n[e])||t(n[e])}),function(){O(r,t)}}};var $e=n.startSymbol(),Ce=n.endSymbol(),Se="{{"==$e&&"}}"==Ce?g:function(e){return e.replace(/\{\{/g,$e).replace(/}}/g,Ce)},Me=/^ngAttr[A-Z]/,xe=/^(.+)Start$/;return B.$$addBindingInfo=I?function(e,t){var n=e.data("$binding")||[];Ya(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:m,B.$$addBindingClass=I?function(e){F(e,"ng-binding")}:m,B.$$addScopeInfo=I?function(e,t,n,a){var r=n?a?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(r,t)}:m,B.$$addScopeClass=I?function(e,t){F(e,t?"ng-isolate-scope":"ng-scope")}:m,B.$$createComment=function(t,n){var a="";return I&&(a=" "+(t||"")+": ",n&&(a+=n+" ")),e.document.createComment(a)},B}]}function ht(e,t){this.previousValue=e,this.currentValue=t}function ft(e){return we(e.replace(Kr,""))}function _t(e,t){var n="",a=e.split(/\s+/),r=t.split(/\s+/);e:for(var i=0;i<a.length;i++){for(var s=a[i],o=0;o<r.length;o++)if(s==r[o])continue e;n+=(n.length>0?" ":"")+s}return n}function yt(e){e=Oa(e);var t=e.length;if(t<=1)return e;for(;t--;){var n=e[t];n.nodeType===lr&&Ha.call(e,t,1)}return e}function vt(e,t){if(t&&w(t))return t;if(w(e)){var n=Zr.exec(e);if(n)return n[3]}}function bt(){var e={},n=!1;this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){pe(t,"controller"),v(t)?c(e,t):e[t]=n},this.allowGlobals=function(){n=!0},this.$get=["$injector","$window",function(a,r){function i(e,n,a,r){if(!e||!v(e.$scope))throw t("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",r,n);e.$scope[n]=a}return function(t,s,o,l){var d,p,u,m;if(o=o===!0,l&&w(l)&&(m=l),w(t)){if(p=t.match(Zr),!p)throw Yr("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",t);u=p[1],m=m||p[3],t=e.hasOwnProperty(u)?e[u]:ue(s.$scope,u,!0)||(n?ue(r,u,!0):void 0),de(t,u,!0)}if(o){var g=(Ya(t)?t[t.length-1]:t).prototype;d=Object.create(g||null),m&&i(s,m,d,u||t.name);var h;return h=c(function(){var e=a.invoke(t,d,s,u);return e!==d&&(v(e)||C(e))&&(d=e,m&&i(s,m,d,u||t.name)),d},{instance:d,identifier:m})}return d=a.instantiate(t,s,u),m&&i(s,m,d,u||t.name),d}}]}function wt(){this.$get=["$window",function(e){return Oa(e.document)}]}function kt(){this.$get=["$log",function(e){return function(t,n){e.error.apply(e,arguments)}}]}function $t(e){return v(e)?$(e)?e.toISOString():z(e):e}function Ct(){this.$get=function(){return function(e){if(!e)return"";var t=[];return r(e,function(e,n){null===e||_(e)||(Ya(e)?a(e,function(e){t.push(te(n)+"="+te($t(e)))}):t.push(te(n)+"="+te($t(e))))}),t.join("&")}}}function St(){this.$get=function(){return function(e){function t(e,i,s){null===e||_(e)||(Ya(e)?a(e,function(e,n){t(e,i+"["+(v(e)?n:"")+"]")}):v(e)&&!$(e)?r(e,function(e,n){t(e,i+(s?"":"[")+n+(s?"":"]"))}):n.push(te(i)+"="+te($t(e))))}if(!e)return"";var n=[];return t(e,"",!0),n.join("&")}}}function Mt(e,t){if(w(e)){var n=e.replace(ni,"").trim();if(n){var a=t("Content-Type");(a&&0===a.indexOf(Jr)||xt(n))&&(e=W(n))}}return e}function xt(e){var t=e.match(ei);return t&&ti[t[0]].test(e)}function It(e){function t(e,t){e&&(r[e]=r[e]?r[e]+", "+t:t)}var n,r=ge();return w(e)?a(e.split("\n"),function(e){n=e.indexOf(":"),t(Pa(Xa(e.substr(0,n))),Xa(e.substr(n+1)))}):v(e)&&a(e,function(e,n){t(Pa(n),Xa(e))}),r}function At(e){var t;return function(n){if(t||(t=It(e)),n){var a=t[Pa(n)];return void 0===a&&(a=null),a}return t}}function Et(e,t,n,r){return C(r)?r(e,t,n):(a(r,function(a){e=a(e,t,n)}),e)}function Tt(e){return 200<=e&&e<300}function Dt(){var e=this.defaults={transformResponse:[Mt],transformRequest:[function(e){return!v(e)||I(e)||E(e)||A(e)?e:z(e)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:fe(Qr),put:fe(Qr),patch:fe(Qr)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},n=!1;this.useApplyAsync=function(e){return y(e)?(n=!!e,this):n};var r=!0;this.useLegacyPromiseExtensions=function(e){return y(e)?(r=!!e,this):r};var i=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(s,o,l,d,p,u){function m(n){function i(e){var t=c({},e);return t.data=Et(e.data,e.headers,e.status,l.transformResponse),Tt(e.status)?t:p.reject(t)}function s(e,t){var n,r={};return a(e,function(e,a){C(e)?(n=e(t),null!=n&&(r[a]=n)):r[a]=e}),r}function o(t){var n,a,r,i=e.headers,o=c({},t.headers);i=c({},i.common,i[Pa(t.method)]);e:for(n in i){a=Pa(n);for(r in o)if(Pa(r)===a)continue e;o[n]=i[n]}return s(o,fe(t))}if(!v(n))throw t("$http")("badreq","Http request configuration must be an object. Received: {0}",n);if(!w(n.url))throw t("$http")("badreq","Http request configuration url must be a string. Received: {0}",n.url);var l=c({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer},n);l.headers=o(n),l.method=Ra(l.method),l.paramSerializer=w(l.paramSerializer)?u.get(l.paramSerializer):l.paramSerializer;var d=function(t){var n=t.headers,r=Et(t.data,At(n),void 0,t.transformRequest);return _(r)&&a(n,function(e,t){"content-type"===Pa(t)&&delete n[t]}),_(t.withCredentials)&&!_(e.withCredentials)&&(t.withCredentials=e.withCredentials),f(t,r).then(i,i)},m=[d,void 0],g=p.when(l);for(a($,function(e){(e.request||e.requestError)&&m.unshift(e.request,e.requestError),(e.response||e.responseError)&&m.push(e.response,e.responseError)});m.length;){var h=m.shift(),y=m.shift();g=g.then(h,y)}return r?(g.success=function(e){return de(e,"fn"),g.then(function(t){e(t.data,t.status,t.headers,l)}),g},g.error=function(e){return de(e,"fn"),g.then(null,function(t){e(t.data,t.status,t.headers,l)}),g}):(g.success=ri("success"),g.error=ri("error")),g}function g(e){a(arguments,function(e){m[e]=function(t,n){return m(c({},n||{},{method:e,url:t}))}})}function h(e){a(arguments,function(e){m[e]=function(t,n,a){return m(c({},a||{},{method:e,url:t,data:n}))}})}function f(t,r){function i(e){if(e){var t={};return a(e,function(e,a){t[a]=function(t){function a(){e(t)}n?d.$applyAsync(a):d.$$phase?a():d.$apply(a)}}),t}}function l(e,t,a,r){function i(){c(t,e,a,r)}h&&(Tt(e)?h.put(S,[e,t,It(a),r]):h.remove(S)),n?d.$applyAsync(i):(i(),d.$$phase||d.$apply())}function c(e,n,a,r){n=n>=-1?n:0,(Tt(n)?w.resolve:w.reject)({data:e,status:n,headers:At(a),config:t,statusText:r})}function u(e){c(e.data,e.status,fe(e.headers()),e.statusText)}function g(){var e=m.pendingRequests.indexOf(t);e!==-1&&m.pendingRequests.splice(e,1)}var h,f,w=p.defer(),$=w.promise,C=t.headers,S=b(t.url,t.paramSerializer(t.params));if(m.pendingRequests.push(t),$.then(g,g),!t.cache&&!e.cache||t.cache===!1||"GET"!==t.method&&"JSONP"!==t.method||(h=v(t.cache)?t.cache:v(e.cache)?e.cache:k),h&&(f=h.get(S),y(f)?D(f)?f.then(u,u):Ya(f)?c(f[1],f[0],fe(f[2]),f[3]):c(f,200,{},"OK"):h.put(S,$)),_(f)){var M=Nn(t.url)?o()[t.xsrfCookieName||e.xsrfCookieName]:void 0;M&&(C[t.xsrfHeaderName||e.xsrfHeaderName]=M),s(t.method,S,r,l,C,t.timeout,t.withCredentials,t.responseType,i(t.eventHandlers),i(t.uploadEventHandlers))}return $}function b(e,t){return t.length>0&&(e+=(e.indexOf("?")==-1?"?":"&")+t),e}var k=l("$http");e.paramSerializer=w(e.paramSerializer)?u.get(e.paramSerializer):e.paramSerializer;var $=[];return a(i,function(e){$.unshift(w(e)?u.get(e):u.invoke(e))}),m.pendingRequests=[],g("get","delete","head","jsonp"),h("post","put","patch"),m.defaults=e,m}]}function Pt(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function Rt(){this.$get=["$browser","$window","$document","$xhrFactory",function(e,t,n,a){return Nt(e,a,e.defer,t.angular.callbacks,n[0])}]}function Nt(e,t,n,r,i){function s(e,t,n){var a=i.createElement("script"),s=null;return a.type="text/javascript",a.src=e,a.async=!0,s=function(e){hr(a,"load",s),hr(a,"error",s),i.body.removeChild(a),a=null;var o=-1,l="unknown";e&&("load"!==e.type||r[t].called||(e={type:"error"}),l=e.type,o="error"===e.type?404:200),n&&n(o,l)},gr(a,"load",s),gr(a,"error",s),i.body.appendChild(a),s}return function(i,o,l,c,d,p,u,g,h,f){function v(){k&&k(),$&&$.abort()}function b(t,a,r,i,s){y(M)&&n.cancel(M),k=$=null,t(a,r,i,s),e.$$completeOutstandingRequest(m)}if(e.$$incOutstandingRequestCount(),o=o||e.url(),"jsonp"==Pa(i)){var w="_"+(r.counter++).toString(36);r[w]=function(e){r[w].data=e,r[w].called=!0};var k=s(o.replace("JSON_CALLBACK","angular.callbacks."+w),w,function(e,t){b(c,e,r[w].data,"",t),r[w]=m})}else{var $=t(i,o);$.open(i,o,!0),a(d,function(e,t){y(e)&&$.setRequestHeader(t,e)}),$.onload=function(){var e=$.statusText||"",t="response"in $?$.response:$.responseText,n=1223===$.status?204:$.status;0===n&&(n=t?200:"file"==Rn(o).protocol?404:0),b(c,n,t,$.getAllResponseHeaders(),e)};var C=function(){b(c,-1,null,null,"")};if($.onerror=C,$.onabort=C,a(h,function(e,t){$.addEventListener(t,e)}),a(f,function(e,t){$.upload.addEventListener(t,e)}),u&&($.withCredentials=!0),g)try{$.responseType=g}catch(S){if("json"!==g)throw S}$.send(_(l)?null:l)}if(p>0)var M=n(v,p);else D(p)&&p.then(v)}}function Ft(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,a,r){function i(e){return"\\\\\\"+e}function s(n){return n.replace(m,e).replace(g,t)}function o(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=z(e)}return e}function l(e,t,n,a){var r;return r=e.$watch(function(e){return r(),a(e)},t,n)}function d(i,d,m,g){function f(e){try{return e=D(e),g&&!y(e)?e:o(e)}catch(t){a(ii.interr(i,t))}}if(!i.length||i.indexOf(e)===-1){var v;if(!d){var b=s(i);v=h(b),v.exp=i,v.expressions=[],v.$$watchDelegate=l}return v}g=!!g;for(var w,k,$,S=0,M=[],x=[],I=i.length,A=[],E=[];S<I;){if((w=i.indexOf(e,S))==-1||(k=i.indexOf(t,w+p))==-1){S!==I&&A.push(s(i.substring(S)));break}S!==w&&A.push(s(i.substring(S,w))),$=i.substring(w+p,k),M.push($),x.push(n($,f)),S=k+u,E.push(A.length),A.push("")}if(m&&A.length>1&&ii.throwNoconcat(i),!d||M.length){var T=function(e){for(var t=0,n=M.length;t<n;t++){if(g&&_(e[t]))return;A[E[t]]=e[t]}return A.join("")},D=function(e){return m?r.getTrusted(m,e):r.valueOf(e)};return c(function(e){var t=0,n=M.length,r=new Array(n);try{for(;t<n;t++)r[t]=x[t](e);return T(r)}catch(s){a(ii.interr(i,s))}},{exp:i,expressions:M,$$watchDelegate:function(e,t){var n;return e.$watchGroup(x,function(a,r){var i=T(a);C(t)&&t.call(this,i,a!==r?n:i,e),n=i})}})}}var p=e.length,u=t.length,m=new RegExp(e.replace(/./g,i),"g"),g=new RegExp(t.replace(/./g,i),"g");return d.startSymbol=function(){return e},d.endSymbol=function(){return t},d}]}function Ut(){this.$get=["$rootScope","$window","$q","$$q","$browser",function(e,t,n,a,r){function i(i,o,l,c){function d(){p?i.apply(null,u):i(h)}var p=arguments.length>4,u=p?H(arguments,4):[],m=t.setInterval,g=t.clearInterval,h=0,f=y(c)&&!c,_=(f?a:n).defer(),v=_.promise;return l=y(l)?l:0,v.$$intervalId=m(function(){f?r.defer(d):e.$evalAsync(d),_.notify(h++),l>0&&h>=l&&(_.resolve(h),g(v.$$intervalId),delete s[v.$$intervalId]),f||e.$apply()},o),s[v.$$intervalId]=_,v}var s={};return i.cancel=function(e){return!!(e&&e.$$intervalId in s)&&(s[e.$$intervalId].reject("canceled"),t.clearInterval(e.$$intervalId),delete s[e.$$intervalId],!0)},i}]}function Ot(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=ee(t[n]);return t.join("/")}function Bt(e,t){var n=Rn(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=p(n.port)||oi[n.protocol]||null}function Lt(e,t){var n="/"!==e.charAt(0);n&&(e="/"+e);var a=Rn(e);t.$$path=decodeURIComponent(n&&"/"===a.pathname.charAt(0)?a.pathname.substring(1):a.pathname),t.$$search=J(a.search),t.$$hash=decodeURIComponent(a.hash),t.$$path&&"/"!=t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function jt(e,t){return 0===e.lastIndexOf(t,0)}function Ht(e,t){if(jt(t,e))return t.substr(e.length)}function qt(e){var t=e.indexOf("#");return t==-1?e:e.substr(0,t)}function Vt(e){return e.replace(/(#.+)|#$/,"$1")}function zt(e){return e.substr(0,qt(e).lastIndexOf("/")+1)}function Wt(e){return e.substring(0,e.indexOf("/",e.indexOf("//")+2))}function Gt(e,t,n){this.$$html5=!0,n=n||"",Bt(e,this),this.$$parse=function(e){var n=Ht(t,e);if(!w(n))throw li("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);Lt(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=Q(this.$$search),n=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=Ot(this.$$path)+(e?"?"+e:"")+n,this.$$absUrl=t+this.$$url.substr(1)},this.$$parseLinkUrl=function(a,r){if(r&&"#"===r[0])return this.hash(r.slice(1)),!0;var i,s,o;return y(i=Ht(e,a))?(s=i,o=y(i=Ht(n,i))?t+(Ht("/",i)||i):e+s):y(i=Ht(t,a))?o=t+i:t==a+"/"&&(o=t),o&&this.$$parse(o),!!o}}function Kt(e,t,n){Bt(e,this),this.$$parse=function(a){function r(e,t,n){var a,r=/^\/[A-Z]:(\/.*)/;return jt(t,n)&&(t=t.replace(n,"")),r.exec(t)?e:(a=r.exec(e),a?a[1]:e)}var i,s=Ht(e,a)||Ht(t,a);_(s)||"#"!==s.charAt(0)?this.$$html5?i=s:(i="",_(s)&&(e=a,this.replace())):(i=Ht(n,s),_(i)&&(i=s)),Lt(i,this),this.$$path=r(this.$$path,i,e),this.$$compose()},this.$$compose=function(){var t=Q(this.$$search),a=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=Ot(this.$$path)+(t?"?"+t:"")+a,this.$$absUrl=e+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(t,n){return qt(e)==qt(t)&&(this.$$parse(t),!0)}}function Yt(e,t,n){this.$$html5=!0,Kt.apply(this,arguments),this.$$parseLinkUrl=function(a,r){if(r&&"#"===r[0])return this.hash(r.slice(1)),!0;var i,s;return e==qt(a)?i=a:(s=Ht(t,a))?i=e+n+s:t===a+"/"&&(i=t),i&&this.$$parse(i),!!i},this.$$compose=function(){var t=Q(this.$$search),a=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=Ot(this.$$path)+(t?"?"+t:"")+a,this.$$absUrl=e+n+this.$$url}}function Zt(e){return function(){return this[e]}}function Xt(e,t){return function(n){return _(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function Jt(){var e="",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return y(t)?(e=t,this):e},this.html5Mode=function(e){return T(e)?(t.enabled=e,this):v(e)?(T(e.enabled)&&(t.enabled=e.enabled),T(e.requireBase)&&(t.requireBase=e.requireBase),T(e.rewriteLinks)&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,a,r,i,s){function o(e,t,n){var r=c.url(),i=c.$$state;try{a.url(e,t,n),c.$$state=a.state()}catch(s){throw c.url(r),c.$$state=i,s}}function l(e,t){n.$broadcast("$locationChangeSuccess",c.absUrl(),e,c.$$state,t)}var c,d,p,u=a.baseHref(),m=a.url();if(t.enabled){if(!u&&t.requireBase)throw li("nobase","$location in HTML5 mode requires a <base> tag to be present!");p=Wt(m)+(u||"/"),d=r.history?Gt:Yt}else p=qt(m),d=Kt;var g=zt(p);c=new d(p,g,"#"+e),c.$$parseLinkUrl(m,m),c.$$state=a.state();var h=/^\s*(javascript|mailto):/i;i.on("click",function(e){if(t.rewriteLinks&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!=e.which&&2!=e.button){for(var r=Oa(e.target);"a"!==U(r[0]);)if(r[0]===i[0]||!(r=r.parent())[0])return;var o=r.prop("href"),l=r.attr("href")||r.attr("xlink:href");v(o)&&"[object SVGAnimatedString]"===o.toString()&&(o=Rn(o.animVal).href),h.test(o)||!o||r.attr("target")||e.isDefaultPrevented()||c.$$parseLinkUrl(o,l)&&(e.preventDefault(),c.absUrl()!=a.url()&&(n.$apply(),s.angular["ff-684208-preventDefault"]=!0))}}),Vt(c.absUrl())!=Vt(m)&&a.url(c.absUrl(),!0);var f=!0;return a.onUrlChange(function(e,t){return _(Ht(g,e))?void(s.location.href=e):(n.$evalAsync(function(){var a,r=c.absUrl(),i=c.$$state;e=Vt(e),c.$$parse(e),c.$$state=t,a=n.$broadcast("$locationChangeStart",e,r,t,i).defaultPrevented,c.absUrl()===e&&(a?(c.$$parse(r),c.$$state=i,o(r,!1,i)):(f=!1,l(r,i)))}),void(n.$$phase||n.$digest()))}),n.$watch(function(){var e=Vt(a.url()),t=Vt(c.absUrl()),i=a.state(),s=c.$$replace,d=e!==t||c.$$html5&&r.history&&i!==c.$$state;(f||d)&&(f=!1,n.$evalAsync(function(){var t=c.absUrl(),a=n.$broadcast("$locationChangeStart",t,e,c.$$state,i).defaultPrevented;c.absUrl()===t&&(a?(c.$$parse(e),c.$$state=i):(d&&o(t,s,i===c.$$state?null:c.$$state),l(e,i)))})),c.$$replace=!1}),c}]}function Qt(){var e=!0,t=this;this.debugEnabled=function(t){return y(t)?(e=t,this):e},this.$get=["$window",function(n){function r(e){return e instanceof Error&&(e.stack?e=e.message&&e.stack.indexOf(e.message)===-1?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function i(e){var t=n.console||{},i=t[e]||t.log||m,s=!1;try{s=!!i.apply}catch(o){}return s?function(){var e=[];return a(arguments,function(t){e.push(r(t))}),i.apply(t,e)}:function(e,t){i(e,null==t?"":t)}}return{log:i("log"),info:i("info"),warn:i("warn"),error:i("error"),debug:function(){var n=i("debug");return function(){e&&n.apply(t,arguments)}}()}}]}function en(e,t){if("__defineGetter__"===e||"__defineSetter__"===e||"__lookupGetter__"===e||"__lookupSetter__"===e||"__proto__"===e)throw di("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",t);return e}function tn(e){return e+""}function nn(e,t){if(e){if(e.constructor===e)throw di("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e.window===e)throw di("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",t);if(e.children&&(e.nodeName||e.prop&&e.attr&&e.find))throw di("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",t);if(e===Object)throw di("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",t)}return e}function an(e,t){if(e){if(e.constructor===e)throw di("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e===pi||e===ui||e===mi)throw di("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",t)}}function rn(e,t){if(e&&(e===(0).constructor||e===(!1).constructor||e==="".constructor||e==={}.constructor||e===[].constructor||e===Function.constructor))throw di("isecaf","Assigning to a constructor is disallowed! Expression: {0}",t)}function sn(e,t){return"undefined"!=typeof e?e:t}function on(e,t){return"undefined"==typeof e?t:"undefined"==typeof t?e:e+t}function ln(e,t){var n=e(t);return!n.$stateful}function cn(e,t){var n,r;switch(e.type){case _i.Program:n=!0,a(e.body,function(e){cn(e.expression,t),n=n&&e.expression.constant}),e.constant=n;break;case _i.Literal:e.constant=!0,e.toWatch=[];break;case _i.UnaryExpression:cn(e.argument,t),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case _i.BinaryExpression:cn(e.left,t),cn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case _i.LogicalExpression:cn(e.left,t),cn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case _i.ConditionalExpression:cn(e.test,t),cn(e.alternate,t),cn(e.consequent,t),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case _i.Identifier:e.constant=!1,e.toWatch=[e];break;case _i.MemberExpression:cn(e.object,t),e.computed&&cn(e.property,t),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=[e];break;case _i.CallExpression:n=!!e.filter&&ln(t,e.callee.name),r=[],a(e.arguments,function(e){cn(e,t),n=n&&e.constant,e.constant||r.push.apply(r,e.toWatch)}),e.constant=n,e.toWatch=e.filter&&ln(t,e.callee.name)?r:[e];break;case _i.AssignmentExpression:cn(e.left,t),cn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case _i.ArrayExpression:
n=!0,r=[],a(e.elements,function(e){cn(e,t),n=n&&e.constant,e.constant||r.push.apply(r,e.toWatch)}),e.constant=n,e.toWatch=r;break;case _i.ObjectExpression:n=!0,r=[],a(e.properties,function(e){cn(e.value,t),n=n&&e.value.constant&&!e.computed,e.value.constant||r.push.apply(r,e.value.toWatch)}),e.constant=n,e.toWatch=r;break;case _i.ThisExpression:e.constant=!1,e.toWatch=[];break;case _i.LocalsExpression:e.constant=!1,e.toWatch=[]}}function dn(e){if(1==e.length){var t=e[0].expression,n=t.toWatch;return 1!==n.length?n:n[0]!==t?n:void 0}}function pn(e){return e.type===_i.Identifier||e.type===_i.MemberExpression}function un(e){if(1===e.body.length&&pn(e.body[0].expression))return{type:_i.AssignmentExpression,left:e.body[0].expression,right:{type:_i.NGValueParameter},operator:"="}}function mn(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===_i.Literal||e.body[0].expression.type===_i.ArrayExpression||e.body[0].expression.type===_i.ObjectExpression)}function gn(e){return e.constant}function hn(e,t){this.astBuilder=e,this.$filter=t}function fn(e,t){this.astBuilder=e,this.$filter=t}function _n(e){return"constructor"==e}function yn(e){return C(e.valueOf)?e.valueOf():vi.call(e)}function vn(){var e,t,n=ge(),r=ge(),i={"true":!0,"false":!1,"null":null,undefined:void 0};this.addLiteral=function(e,t){i[e]=t},this.setIdentifierFns=function(n,a){return e=n,t=a,this},this.$get=["$filter",function(s){function o(e,t,a){var i,o,c;switch(a=a||b,typeof e){case"string":e=e.trim(),c=e;var f=a?r:n;if(i=f[c],!i){":"===e.charAt(0)&&":"===e.charAt(1)&&(o=!0,e=e.substring(2));var y=a?v:_,w=new fi(y),k=new yi(w,s,y);i=k.parse(e),i.constant?i.$$watchDelegate=g:o?i.$$watchDelegate=i.literal?u:p:i.inputs&&(i.$$watchDelegate=d),a&&(i=l(i)),f[c]=i}return h(i,t);case"function":return h(e,t);default:return h(m,t)}}function l(e){function t(t,n,a,r){var i=b;b=!0;try{return e(t,n,a,r)}finally{b=i}}if(!e)return e;t.$$watchDelegate=e.$$watchDelegate,t.assign=l(e.assign),t.constant=e.constant,t.literal=e.literal;for(var n=0;e.inputs&&n<e.inputs.length;++n)e.inputs[n]=l(e.inputs[n]);return t.inputs=e.inputs,t}function c(e,t){return null==e||null==t?e===t:("object"!=typeof e||(e=yn(e),"object"!=typeof e))&&(e===t||e!==e&&t!==t)}function d(e,t,n,a,r){var i,s=a.inputs;if(1===s.length){var o=c;return s=s[0],e.$watch(function(e){var t=s(e);return c(t,o)||(i=a(e,void 0,void 0,[t]),o=t&&yn(t)),i},t,n,r)}for(var l=[],d=[],p=0,u=s.length;p<u;p++)l[p]=c,d[p]=null;return e.$watch(function(e){for(var t=!1,n=0,r=s.length;n<r;n++){var o=s[n](e);(t||(t=!c(o,l[n])))&&(d[n]=o,l[n]=o&&yn(o))}return t&&(i=a(e,void 0,void 0,d)),i},t,n,r)}function p(e,t,n,a){var r,i;return r=e.$watch(function(e){return a(e)},function(e,n,a){i=e,C(t)&&t.apply(this,arguments),y(e)&&a.$$postDigest(function(){y(i)&&r()})},n)}function u(e,t,n,r){function i(e){var t=!0;return a(e,function(e){y(e)||(t=!1)}),t}var s,o;return s=e.$watch(function(e){return r(e)},function(e,n,a){o=e,C(t)&&t.call(this,e,n,a),i(e)&&a.$$postDigest(function(){i(o)&&s()})},n)}function g(e,t,n,a){var r;return r=e.$watch(function(e){return r(),a(e)},t,n)}function h(e,t){if(!t)return e;var n=e.$$watchDelegate,a=!1,r=n!==u&&n!==p,i=r?function(n,r,i,s){var o=a&&s?s[0]:e(n,r,i,s);return t(o,n,r)}:function(n,a,r,i){var s=e(n,a,r,i),o=t(s,n,a);return y(s)?o:s};return e.$$watchDelegate&&e.$$watchDelegate!==d?i.$$watchDelegate=e.$$watchDelegate:t.$stateful||(i.$$watchDelegate=d,a=!e.inputs,i.inputs=e.inputs?e.inputs:[e]),i}var f=Qa().noUnsafeEval,_={csp:f,expensiveChecks:!1,literals:B(i),isIdentifierStart:C(e)&&e,isIdentifierContinue:C(t)&&t},v={csp:f,expensiveChecks:!0,literals:B(i),isIdentifierStart:C(e)&&e,isIdentifierContinue:C(t)&&t},b=!1;return o.$$runningExpensiveChecks=function(){return b},o}]}function bn(){this.$get=["$rootScope","$exceptionHandler",function(e,t){return kn(function(t){e.$evalAsync(t)},t)}]}function wn(){this.$get=["$browser","$exceptionHandler",function(e,t){return kn(function(t){e.defer(t)},t)}]}function kn(e,n){function r(){this.$$state={status:0}}function i(e,t){return function(n){t.call(e,n)}}function s(e){var t,a,r;r=e.pending,e.processScheduled=!1,e.pending=void 0;for(var i=0,s=r.length;i<s;++i){a=r[i][0],t=r[i][e.status];try{C(t)?a.resolve(t(e.value)):1===e.status?a.resolve(e.value):a.reject(e.value)}catch(o){a.reject(o),n(o)}}}function o(t){!t.processScheduled&&t.pending&&(t.processScheduled=!0,e(function(){s(t)}))}function l(){this.promise=new r}function d(e){var t=new l,n=0,r=Ya(e)?[]:{};return a(e,function(e,a){n++,f(e).then(function(e){r.hasOwnProperty(a)||(r[a]=e,--n||t.resolve(r))},function(e){r.hasOwnProperty(a)||t.reject(e)})}),0===n&&t.resolve(r),t.promise}var p=t("$q",TypeError),u=function(){var e=new l;return e.resolve=i(e,e.resolve),e.reject=i(e,e.reject),e.notify=i(e,e.notify),e};c(r.prototype,{then:function(e,t,n){if(_(e)&&_(t)&&_(n))return this;var a=new l;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([a,e,t,n]),this.$$state.status>0&&o(this.$$state),a.promise},"catch":function(e){return this.then(null,e)},"finally":function(e,t){return this.then(function(t){return h(t,!0,e)},function(t){return h(t,!1,e)},t)}}),c(l.prototype,{resolve:function(e){this.promise.$$state.status||(e===this.promise?this.$$reject(p("qcycle","Expected promise to be resolved with value other than itself '{0}'",e)):this.$$resolve(e))},$$resolve:function(e){function t(e){l||(l=!0,s.$$resolve(e))}function a(e){l||(l=!0,s.$$reject(e))}var r,s=this,l=!1;try{(v(e)||C(e))&&(r=e&&e.then),C(r)?(this.promise.$$state.status=-1,r.call(e,t,a,i(this,this.notify))):(this.promise.$$state.value=e,this.promise.$$state.status=1,o(this.promise.$$state))}catch(c){a(c),n(c)}},reject:function(e){this.promise.$$state.status||this.$$reject(e)},$$reject:function(e){this.promise.$$state.value=e,this.promise.$$state.status=2,o(this.promise.$$state)},notify:function(t){var a=this.promise.$$state.pending;this.promise.$$state.status<=0&&a&&a.length&&e(function(){for(var e,r,i=0,s=a.length;i<s;i++){r=a[i][0],e=a[i][3];try{r.notify(C(e)?e(t):t)}catch(o){n(o)}}})}});var m=function(e){var t=new l;return t.reject(e),t.promise},g=function(e,t){var n=new l;return t?n.resolve(e):n.reject(e),n.promise},h=function(e,t,n){var a=null;try{C(n)&&(a=n())}catch(r){return g(r,!1)}return D(a)?a.then(function(){return g(e,t)},function(e){return g(e,!1)}):g(e,t)},f=function(e,t,n,a){var r=new l;return r.resolve(e),r.promise.then(t,n,a)},y=f,b=function(e){function t(e){a.resolve(e)}function n(e){a.reject(e)}if(!C(e))throw p("norslvr","Expected resolverFn, got '{0}'",e);var a=new l;return e(t,n),a.promise};return b.prototype=r.prototype,b.defer=u,b.reject=m,b.when=f,b.resolve=y,b.all=d,b}function $n(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,a=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,r=!!n,i=r?function(e){var t=n(e);return function(){a(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return i.supported=r,i}]}function Cn(){function e(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=s(),this.$$ChildScope=null}return t.prototype=e,t}var r=10,i=t("$rootScope"),o=null,l=null;this.digestTtl=function(e){return arguments.length&&(r=e),r},this.$get=["$exceptionHandler","$parse","$browser",function(t,c,d){function p(e){e.currentScope.$$destroyed=!0}function u(e){9===Ua&&(e.$$childHead&&u(e.$$childHead),e.$$nextSibling&&u(e.$$nextSibling)),e.$parent=e.$$nextSibling=e.$$prevSibling=e.$$childHead=e.$$childTail=e.$root=e.$$watchers=null}function g(){this.$id=s(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function h(e){if(S.$$phase)throw i("inprog","{0} already in progress",S.$$phase);S.$$phase=e}function f(){S.$$phase=null}function y(e,t){do e.$$watchersCount+=t;while(e=e.$parent)}function b(e,t,n){do e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n];while(e=e.$parent)}function w(){}function k(){for(;I.length;)try{I.shift()()}catch(e){t(e)}l=null}function $(){null===l&&(l=d.defer(function(){S.$apply(k)}))}g.prototype={constructor:g,$new:function(t,n){var a;return n=n||this,t?(a=new g,a.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=e(this)),a=new this.$$ChildScope),a.$parent=n,a.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=a,n.$$childTail=a):n.$$childHead=n.$$childTail=a,(t||n!=this)&&a.$on("$destroy",p),a},$watch:function(e,t,n,a){var r=c(e);if(r.$$watchDelegate)return r.$$watchDelegate(this,t,n,r,e);var i=this,s=i.$$watchers,l={fn:t,last:w,get:r,exp:a||e,eq:!!n};return o=null,C(t)||(l.fn=m),s||(s=i.$$watchers=[]),s.unshift(l),y(this,1),function(){O(s,l)>=0&&y(i,-1),o=null}},$watchGroup:function(e,t){function n(){l=!1,c?(c=!1,t(i,i,o)):t(i,r,o)}var r=new Array(e.length),i=new Array(e.length),s=[],o=this,l=!1,c=!0;if(!e.length){var d=!0;return o.$evalAsync(function(){d&&t(i,i,o)}),function(){d=!1}}return 1===e.length?this.$watch(e[0],function(e,n,a){i[0]=e,r[0]=n,t(i,e===n?i:r,a)}):(a(e,function(e,t){var a=o.$watch(e,function(e,a){i[t]=e,r[t]=a,l||(l=!0,o.$evalAsync(n))});s.push(a)}),function(){for(;s.length;)s.shift()()})},$watchCollection:function(e,t){function a(e){i=e;var t,a,r,o,l;if(!_(i)){if(v(i))if(n(i)){s!==m&&(s=m,f=s.length=0,p++),t=i.length,f!==t&&(p++,s.length=f=t);for(var c=0;c<t;c++)l=s[c],o=i[c],r=l!==l&&o!==o,r||l===o||(p++,s[c]=o)}else{s!==g&&(s=g={},f=0,p++),t=0;for(a in i)Da.call(i,a)&&(t++,o=i[a],l=s[a],a in s?(r=l!==l&&o!==o,r||l===o||(p++,s[a]=o)):(f++,s[a]=o,p++));if(f>t){p++;for(a in s)Da.call(i,a)||(f--,delete s[a])}}else s!==i&&(s=i,p++);return p}}function r(){if(h?(h=!1,t(i,i,l)):t(i,o,l),d)if(v(i))if(n(i)){o=new Array(i.length);for(var e=0;e<i.length;e++)o[e]=i[e]}else{o={};for(var a in i)Da.call(i,a)&&(o[a]=i[a])}else o=i}a.$stateful=!0;var i,s,o,l=this,d=t.length>1,p=0,u=c(e,a),m=[],g={},h=!0,f=0;return this.$watch(u,r)},$digest:function(){var e,n,a,s,c,p,u,m,g,_,y,v,b=r,$=this,I=[];h("$digest"),d.$$checkUrlChange(),this===S&&null!==l&&(d.defer.cancel(l),k()),o=null;do{m=!1,_=$;for(var E=0;E<M.length;E++){try{v=M[E],v.scope.$eval(v.expression,v.locals)}catch(T){t(T)}o=null}M.length=0;e:do{if(p=_.$$watchers)for(u=p.length;u--;)try{if(e=p[u])if(c=e.get,(n=c(_))===(a=e.last)||(e.eq?L(n,a):"number"==typeof n&&"number"==typeof a&&isNaN(n)&&isNaN(a))){if(e===o){m=!1;break e}}else m=!0,o=e,e.last=e.eq?B(n,null):n,s=e.fn,s(n,a===w?n:a,_),b<5&&(y=4-b,I[y]||(I[y]=[]),I[y].push({msg:C(e.exp)?"fn: "+(e.exp.name||e.exp.toString()):e.exp,newVal:n,oldVal:a}))}catch(T){t(T)}if(!(g=_.$$watchersCount&&_.$$childHead||_!==$&&_.$$nextSibling))for(;_!==$&&!(g=_.$$nextSibling);)_=_.$parent}while(_=g);if((m||M.length)&&!b--)throw f(),i("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",r,I)}while(m||M.length);for(f();A<x.length;)try{x[A++]()}catch(T){t(T)}x.length=A=0},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===S&&d.$$applicationDestroyed(),y(this,-this.$$watchersCount);for(var t in this.$$listenerCount)b(this,this.$$listenerCount[t],t);e&&e.$$childHead==this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail==this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=m,this.$on=this.$watch=this.$watchGroup=function(){return m},this.$$listeners={},this.$$nextSibling=null,u(this)}},$eval:function(e,t){return c(e)(this,t)},$evalAsync:function(e,t){S.$$phase||M.length||d.defer(function(){M.length&&S.$digest()}),M.push({scope:this,expression:c(e),locals:t})},$$postDigest:function(e){x.push(e)},$apply:function(e){try{h("$apply");try{return this.$eval(e)}finally{f()}}catch(n){t(n)}finally{try{S.$digest()}catch(n){throw t(n),n}}},$applyAsync:function(e){function t(){n.$eval(e)}var n=this;e&&I.push(t),e=c(e),$()},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var a=this;do a.$$listenerCount[e]||(a.$$listenerCount[e]=0),a.$$listenerCount[e]++;while(a=a.$parent);var r=this;return function(){var a=n.indexOf(t);a!==-1&&(n[a]=null,b(r,1,e))}},$emit:function(e,n){var a,r,i,s=[],o=this,l=!1,c={name:e,targetScope:o,stopPropagation:function(){l=!0},preventDefault:function(){c.defaultPrevented=!0},defaultPrevented:!1},d=j([c],arguments,1);do{for(a=o.$$listeners[e]||s,c.currentScope=o,r=0,i=a.length;r<i;r++)if(a[r])try{a[r].apply(null,d)}catch(p){t(p)}else a.splice(r,1),r--,i--;if(l)return c.currentScope=null,c;o=o.$parent}while(o);return c.currentScope=null,c},$broadcast:function(e,n){var a=this,r=a,i=a,s={name:e,targetScope:a,preventDefault:function(){s.defaultPrevented=!0},defaultPrevented:!1};if(!a.$$listenerCount[e])return s;for(var o,l,c,d=j([s],arguments,1);r=i;){for(s.currentScope=r,o=r.$$listeners[e]||[],l=0,c=o.length;l<c;l++)if(o[l])try{o[l].apply(null,d)}catch(p){t(p)}else o.splice(l,1),l--,c--;if(!(i=r.$$listenerCount[e]&&r.$$childHead||r!==a&&r.$$nextSibling))for(;r!==a&&!(i=r.$$nextSibling);)r=r.$parent}return s.currentScope=null,s}};var S=new g,M=S.$$asyncQueue=[],x=S.$$postDigestQueue=[],I=S.$$applyAsyncQueue=[],A=0;return S}]}function Sn(){var e=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(t){return y(t)?(e=t,this):e},this.imgSrcSanitizationWhitelist=function(e){return y(e)?(t=e,this):t},this.$get=function(){return function(n,a){var r,i=a?t:e;return r=Rn(n).href,""===r||r.match(i)?n:"unsafe:"+r}}}function Mn(e){if("self"===e)return e;if(w(e)){if(e.indexOf("***")>-1)throw bi("iwcard","Illegal sequence *** in string matcher. String: {0}",e);return e=Ja(e).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+e+"$")}if(S(e))return new RegExp("^"+e.source+"$");throw bi("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function xn(e){var t=[];return y(e)&&a(e,function(e){t.push(Mn(e))}),t}function In(){this.SCE_CONTEXTS=wi;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=xn(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=xn(e)),t},this.$get=["$injector",function(n){function a(e,t){return"self"===e?Nn(t):!!e.exec(t.href)}function r(n){var r,i,s=Rn(n.toString()),o=!1;for(r=0,i=e.length;r<i;r++)if(a(e[r],s)){o=!0;break}if(o)for(r=0,i=t.length;r<i;r++)if(a(t[r],s)){o=!1;break}return o}function i(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}function s(e,t){var n=p.hasOwnProperty(e)?p[e]:null;if(!n)throw bi("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||_(t)||""===t)return t;if("string"!=typeof t)throw bi("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new n(t)}function o(e){return e instanceof d?e.$$unwrapTrustedValue():e}function l(e,t){if(null===t||_(t)||""===t)return t;var n=p.hasOwnProperty(e)?p[e]:null;if(n&&t instanceof n)return t.$$unwrapTrustedValue();if(e===wi.RESOURCE_URL){if(r(t))return t;throw bi("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",t.toString())}if(e===wi.HTML)return c(t);throw bi("unsafe","Attempting to use an unsafe value in a safe context.")}var c=function(e){throw bi("unsafe","Attempting to use an unsafe value in a safe context.")};n.has("$sanitize")&&(c=n.get("$sanitize"));var d=i(),p={};return p[wi.HTML]=i(d),p[wi.CSS]=i(d),p[wi.URL]=i(d),p[wi.JS]=i(d),p[wi.RESOURCE_URL]=i(p[wi.URL]),{trustAs:s,getTrusted:l,valueOf:o}}]}function An(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sceDelegate",function(t,n){if(e&&Ua<8)throw bi("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var r=fe(wi);r.isEnabled=function(){return e},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,e||(r.trustAs=r.getTrusted=function(e,t){return t},r.valueOf=g),r.parseAs=function(e,n){var a=t(n);return a.literal&&a.constant?a:t(n,function(t){return r.getTrusted(e,t)})};var i=r.parseAs,s=r.getTrusted,o=r.trustAs;return a(wi,function(e,t){var n=Pa(t);r[we("parse_as_"+n)]=function(t){return i(e,t)},r[we("get_trusted_"+n)]=function(t){return s(e,t)},r[we("trust_as_"+n)]=function(t){return o(e,t)}}),r}]}function En(){this.$get=["$window","$document",function(e,t){var n,a,r={},i=e.chrome&&e.chrome.app&&e.chrome.app.runtime,s=!i&&e.history&&e.history.pushState,o=p((/android (\d+)/.exec(Pa((e.navigator||{}).userAgent))||[])[1]),l=/Boxee/i.test((e.navigator||{}).userAgent),c=t[0]||{},d=/^(Moz|webkit|ms)(?=[A-Z])/,u=c.body&&c.body.style,m=!1,g=!1;if(u){for(var h in u)if(a=d.exec(h)){n=a[0],n=n[0].toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in u&&"webkit"),m=!!("transition"in u||n+"Transition"in u),g=!!("animation"in u||n+"Animation"in u),!o||m&&g||(m=w(u.webkitTransition),g=w(u.webkitAnimation))}return{history:!(!s||o<4||l),hasEvent:function(e){if("input"===e&&Ua<=11)return!1;if(_(r[e])){var t=c.createElement("div");r[e]="on"+e in t}return r[e]},csp:Qa(),vendorPrefix:n,transitions:m,animations:g,android:o}}]}function Tn(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=["$templateCache","$http","$q","$sce",function(t,n,a,r){function i(s,o){function l(e){if(!o)throw ki("tpload","Failed to load template: {0} (HTTP status: {1} {2})",s,e.status,e.statusText);return a.reject(e)}i.totalPendingRequests++,w(s)&&!_(t.get(s))||(s=r.getTrustedResourceUrl(s));var d=n.defaults&&n.defaults.transformResponse;return Ya(d)?d=d.filter(function(e){return e!==Mt}):d===Mt&&(d=null),n.get(s,c({cache:t,transformResponse:d},e))["finally"](function(){i.totalPendingRequests--}).then(function(e){return t.put(s,e.data),e.data},l)}return i.totalPendingRequests=0,i}]}function Dn(){this.$get=["$rootScope","$browser","$location",function(e,t,n){var r={};return r.findBindings=function(e,t,n){var r=e.getElementsByClassName("ng-binding"),i=[];return a(r,function(e){var r=Ga.element(e).data("$binding");r&&a(r,function(a){if(n){var r=new RegExp("(^|\\s)"+Ja(t)+"(\\s|\\||$)");r.test(a)&&i.push(e)}else a.indexOf(t)!=-1&&i.push(e)})}),i},r.findModels=function(e,t,n){for(var a=["ng-","data-ng-","ng\\:"],r=0;r<a.length;++r){var i=n?"=":"*=",s="["+a[r]+"model"+i+'"'+t+'"]',o=e.querySelectorAll(s);if(o.length)return o}},r.getLocation=function(){return n.url()},r.setLocation=function(t){t!==n.url()&&(n.url(t),e.$digest())},r.whenStable=function(e){t.notifyWhenNoOutstandingRequests(e)},r}]}function Pn(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,a,r){function i(i,o,l){C(i)||(l=o,o=i,i=m);var c,d=H(arguments,3),p=y(l)&&!l,u=(p?a:n).defer(),g=u.promise;return c=t.defer(function(){try{u.resolve(i.apply(null,d))}catch(t){u.reject(t),r(t)}finally{delete s[g.$$timeoutId]}p||e.$apply()},o),g.$$timeoutId=c,s[c]=u,g}var s={};return i.cancel=function(e){return!!(e&&e.$$timeoutId in s)&&(s[e.$$timeoutId].reject("canceled"),delete s[e.$$timeoutId],t.defer.cancel(e.$$timeoutId))},i}]}function Rn(e){var t=e;return Ua&&($i.setAttribute("href",t),t=$i.href),$i.setAttribute("href",t),{href:$i.href,protocol:$i.protocol?$i.protocol.replace(/:$/,""):"",host:$i.host,search:$i.search?$i.search.replace(/^\?/,""):"",hash:$i.hash?$i.hash.replace(/^#/,""):"",hostname:$i.hostname,port:$i.port,pathname:"/"===$i.pathname.charAt(0)?$i.pathname:"/"+$i.pathname}}function Nn(e){var t=w(e)?Rn(e):e;return t.protocol===Ci.protocol&&t.host===Ci.host}function Fn(){this.$get=h(e)}function Un(e){function t(e){try{return decodeURIComponent(e)}catch(t){return e}}var n=e[0]||{},a={},r="";return function(){var e,i,s,o,l,c=n.cookie||"";if(c!==r)for(r=c,e=r.split("; "),a={},s=0;s<e.length;s++)i=e[s],o=i.indexOf("="),o>0&&(l=t(i.substring(0,o)),_(a[l])&&(a[l]=t(i.substring(o+1))));return a}}function On(){this.$get=Un}function Bn(e){function t(r,i){if(v(r)){var s={};return a(r,function(e,n){s[n]=t(n,e)}),s}return e.factory(r+n,i)}var n="Filter";this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+n)}}],t("currency",Vn),t("date",ia),t("filter",Ln),t("json",sa),t("limitTo",oa),t("lowercase",Ti),t("number",zn),t("orderBy",ca),t("uppercase",Di)}function Ln(){return function(e,a,r){if(!n(e)){if(null==e)return e;throw t("filter")("notarray","Expected array but received: {0}",e)}var i,s,o=qn(a);switch(o){case"function":i=a;break;case"boolean":case"null":case"number":case"string":s=!0;case"object":i=jn(a,r,s);break;default:return e}return Array.prototype.filter.call(e,i)}}function jn(e,t,n){var a,r=v(e)&&"$"in e;return t===!0?t=L:C(t)||(t=function(e,t){return!_(e)&&(null===e||null===t?e===t:!(v(t)||v(e)&&!f(e))&&(e=Pa(""+e),t=Pa(""+t),e.indexOf(t)!==-1))}),a=function(a){return r&&!v(a)?Hn(a,e.$,t,!1):Hn(a,e,t,n)}}function Hn(e,t,n,a,r){var i=qn(e),s=qn(t);if("string"===s&&"!"===t.charAt(0))return!Hn(e,t.substring(1),n,a);if(Ya(e))return e.some(function(e){return Hn(e,t,n,a)});switch(i){case"object":var o;if(a){for(o in e)if("$"!==o.charAt(0)&&Hn(e[o],t,n,!0))return!0;return!r&&Hn(e,t,n,!1)}if("object"===s){for(o in t){var l=t[o];if(!C(l)&&!_(l)){var c="$"===o,d=c?e:e[o];if(!Hn(d,l,n,c,c))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function qn(e){return null===e?"null":typeof e}function Vn(e){var t=e.NUMBER_FORMATS;return function(e,n,a){return _(n)&&(n=t.CURRENCY_SYM),_(a)&&(a=t.PATTERNS[1].maxFrac),null==e?e:Kn(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,a).replace(/\u00A4/g,n)}}function zn(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:Kn(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function Wn(e){var t,n,a,r,i,s=0;for((n=e.indexOf(Mi))>-1&&(e=e.replace(Mi,"")),(a=e.search(/e/i))>0?(n<0&&(n=a),n+=+e.slice(a+1),e=e.substring(0,a)):n<0&&(n=e.length),a=0;e.charAt(a)==xi;a++);if(a==(i=e.length))t=[0],n=1;else{for(i--;e.charAt(i)==xi;)i--;for(n-=a,t=[],r=0;a<=i;a++,r++)t[r]=+e.charAt(a)}return n>Si&&(t=t.splice(0,Si-1),s=n-1,n=1),{d:t,e:s,i:n}}function Gn(e,t,n,a){var r=e.d,i=r.length-e.i;t=_(t)?Math.min(Math.max(n,i),a):+t;var s=t+e.i,o=r[s];if(s>0){r.splice(Math.max(e.i,s));for(var l=s;l<r.length;l++)r[l]=0}else{i=Math.max(0,i),e.i=1,r.length=Math.max(1,s=t+1),r[0]=0;for(var c=1;c<s;c++)r[c]=0}if(o>=5)if(s-1<0){for(var d=0;d>s;d--)r.unshift(0),e.i++;r.unshift(1),e.i++}else r[s-1]++;for(;i<Math.max(0,t);i++)r.push(0);var p=r.reduceRight(function(e,t,n,a){return t+=e,a[n]=t%10,Math.floor(t/10)},0);p&&(r.unshift(p),e.i++)}function Kn(e,t,n,a,r){if(!w(e)&&!k(e)||isNaN(e))return"";var i,s=!isFinite(e),o=!1,l=Math.abs(e)+"",c="";if(s)c="∞";else{i=Wn(l),Gn(i,r,t.minFrac,t.maxFrac);var d=i.d,p=i.i,u=i.e,m=[];for(o=d.reduce(function(e,t){return e&&!t},!0);p<0;)d.unshift(0),p++;p>0?m=d.splice(p,d.length):(m=d,d=[0]);var g=[];for(d.length>=t.lgSize&&g.unshift(d.splice(-t.lgSize,d.length).join(""));d.length>t.gSize;)g.unshift(d.splice(-t.gSize,d.length).join(""));d.length&&g.unshift(d.join("")),c=g.join(n),m.length&&(c+=a+m.join("")),u&&(c+="e+"+u)}return e<0&&!o?t.negPre+c+t.negSuf:t.posPre+c+t.posSuf}function Yn(e,t,n,a){var r="";for((e<0||a&&e<=0)&&(a?e=-e+1:(e=-e,r="-")),e=""+e;e.length<t;)e=xi+e;return n&&(e=e.substr(e.length-t)),r+e}function Zn(e,t,n,a,r){return n=n||0,function(i){var s=i["get"+e]();return(n>0||s>-n)&&(s+=n),0===s&&n==-12&&(s=12),Yn(s,t,a,r)}}function Xn(e,t,n){return function(a,r){var i=a["get"+e](),s=(n?"STANDALONE":"")+(t?"SHORT":""),o=Ra(s+e);return r[o][i]}}function Jn(e,t,n){var a=-1*n,r=a>=0?"+":"";return r+=Yn(Math[a>0?"floor":"ceil"](a/60),2)+Yn(Math.abs(a%60),2)}function Qn(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t<=4?5:12)-t)}function ea(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+(4-e.getDay()))}function ta(e){return function(t){var n=Qn(t.getFullYear()),a=ea(t),r=+a-+n,i=1+Math.round(r/6048e5);return Yn(i,e)}}function na(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function aa(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}function ra(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}function ia(e){function t(e){var t;if(t=e.match(n)){var a=new Date(0),r=0,i=0,s=t[8]?a.setUTCFullYear:a.setFullYear,o=t[8]?a.setUTCHours:a.setHours;t[9]&&(r=p(t[9]+t[10]),i=p(t[9]+t[11])),s.call(a,p(t[1]),p(t[2])-1,p(t[3]));var l=p(t[4]||0)-r,c=p(t[5]||0)-i,d=p(t[6]||0),u=Math.round(1e3*parseFloat("0."+(t[7]||0)));return o.call(a,l,c,d,u),a}return e}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,i){var s,o,l="",c=[];if(r=r||"mediumDate",r=e.DATETIME_FORMATS[r]||r,w(n)&&(n=Ei.test(n)?p(n):t(n)),k(n)&&(n=new Date(n)),!$(n)||!isFinite(n.getTime()))return n;for(;r;)o=Ai.exec(r),o?(c=j(c,o,1),r=c.pop()):(c.push(r),r=null);var d=n.getTimezoneOffset();return i&&(d=G(i,d),n=Y(n,i,!0)),a(c,function(t){s=Ii[t],l+=s?s(n,e.DATETIME_FORMATS,d):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}}function sa(){return function(e,t){return _(t)&&(t=2),z(e,t)}}function oa(){return function(e,t,a){return t=Math.abs(Number(t))===1/0?Number(t):p(t),isNaN(t)?e:(k(e)&&(e=e.toString()),n(e)?(a=!a||isNaN(a)?0:p(a),a=a<0?Math.max(0,e.length+a):a,t>=0?la(e,a,a+t):0===a?la(e,t,e.length):la(e,Math.max(0,a+t),a)):e)}}function la(e,t,n){return w(e)?e.slice(t,n):ja.call(e,t,n)}function ca(e){function a(t){return t.map(function(t){var n=1,a=g;if(C(t))a=t;else if(w(t)&&("+"!=t.charAt(0)&&"-"!=t.charAt(0)||(n="-"==t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(a=e(t),a.constant))){var r=a();a=function(e){return e[r]}}return{get:a,descending:n}})}function r(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function i(e){return C(e.valueOf)&&(e=e.valueOf(),r(e))?e:f(e)&&(e=e.toString(),r(e))?e:e}function s(e,t){var n=typeof e;return null===e?(n="string",e="null"):"object"===n&&(e=i(e)),{value:e,type:n,index:t}}function o(e,t){var n=0,a=e.type,r=t.type;if(a===r){var i=e.value,s=t.value;"string"===a?(i=i.toLowerCase(),s=s.toLowerCase()):"object"===a&&(v(i)&&(i=e.index),v(s)&&(s=t.index)),i!==s&&(n=i<s?-1:1)}else n=a<r?-1:1;return n}return function(e,r,i,l){function c(e,t){return{value:e,tieBreaker:{value:t,type:"number",index:t},predicateValues:p.map(function(n){return s(n.get(e),t)})}}function d(e,t){for(var n=0,a=p.length;n<a;n++){var r=m(e.predicateValues[n],t.predicateValues[n]);if(r)return r*p[n].descending*u}return m(e.tieBreaker,t.tieBreaker)*u}if(null==e)return e;if(!n(e))throw t("orderBy")("notarray","Expected array but received: {0}",e);Ya(r)||(r=[r]),0===r.length&&(r=["+"]);var p=a(r),u=i?-1:1,m=C(l)?l:o,g=Array.prototype.map.call(e,c);return g.sort(d),e=g.map(function(e){return e.value})}}function da(e){return C(e)&&(e={link:e}),e.restrict=e.restrict||"AC",h(e)}function pa(e,t){e.$name=t}function ua(e,t,n,r,i){var s=this,o=[];s.$error={},s.$$success={},s.$pending=void 0,s.$name=i(t.name||t.ngForm||"")(n),s.$dirty=!1,s.$pristine=!0,s.$valid=!0,s.$invalid=!1,s.$submitted=!1,s.$$parentForm=Ni,s.$rollbackViewValue=function(){a(o,function(e){e.$rollbackViewValue()})},s.$commitViewValue=function(){a(o,function(e){e.$commitViewValue()})},s.$addControl=function(e){pe(e.$name,"input"),o.push(e),e.$name&&(s[e.$name]=e),e.$$parentForm=s},s.$$renameControl=function(e,t){var n=e.$name;s[n]===e&&delete s[n],s[t]=e,e.$name=t},s.$removeControl=function(e){e.$name&&s[e.$name]===e&&delete s[e.$name],a(s.$pending,function(t,n){s.$setValidity(n,null,e)}),a(s.$error,function(t,n){s.$setValidity(n,null,e)}),a(s.$$success,function(t,n){s.$setValidity(n,null,e)}),O(o,e),e.$$parentForm=Ni},xa({ctrl:this,$element:e,set:function(e,t,n){var a=e[t];if(a){var r=a.indexOf(n);r===-1&&a.push(n)}else e[t]=[n]},unset:function(e,t,n){var a=e[t];a&&(O(a,n),0===a.length&&delete e[t])},$animate:r}),s.$setDirty=function(){r.removeClass(e,vs),r.addClass(e,bs),s.$dirty=!0,s.$pristine=!1,s.$$parentForm.$setDirty()},s.$setPristine=function(){r.setClass(e,vs,bs+" "+Fi),s.$dirty=!1,s.$pristine=!0,s.$submitted=!1,a(o,function(e){e.$setPristine()})},s.$setUntouched=function(){a(o,function(e){e.$setUntouched()})},s.$setSubmitted=function(){r.addClass(e,Fi),s.$submitted=!0,s.$$parentForm.$setSubmitted()}}function ma(e){e.$formatters.push(function(t){return e.$isEmpty(t)?t:t.toString()})}function ga(e,t,n,a,r,i){ha(e,t,n,a,r,i),ma(a)}function ha(e,t,n,a,r,i){var s=Pa(t[0].type);if(!r.android){var o=!1;t.on("compositionstart",function(){o=!0}),t.on("compositionend",function(){o=!1,c()})}var l,c=function(e){if(l&&(i.defer.cancel(l),l=null),!o){var r=t.val(),c=e&&e.type;"password"===s||n.ngTrim&&"false"===n.ngTrim||(r=Xa(r)),(a.$viewValue!==r||""===r&&a.$$hasNativeValidators)&&a.$setViewValue(r,c)}};if(r.hasEvent("input"))t.on("input",c);else{var d=function(e,t,n){l||(l=i.defer(function(){l=null,t&&t.value===n||c(e)}))};t.on("keydown",function(e){var t=e.keyCode;91===t||15<t&&t<19||37<=t&&t<=40||d(e,this,this.value)}),r.hasEvent("paste")&&t.on("paste cut",d)}t.on("change",c),Zi[s]&&a.$$hasNativeValidators&&s===n.type&&t.on(Yi,function(e){if(!l){var t=this[Ta],n=t.badInput,a=t.typeMismatch;l=i.defer(function(){l=null,t.badInput===n&&t.typeMismatch===a||c(e)})}}),a.$render=function(){var e=a.$isEmpty(a.$viewValue)?"":a.$viewValue;t.val()!==e&&t.val(e)}}function fa(e,t){if($(e))return e;if(w(e)){Wi.lastIndex=0;var n=Wi.exec(e);if(n){var a=+n[1],r=+n[2],i=0,s=0,o=0,l=0,c=Qn(a),d=7*(r-1);return t&&(i=t.getHours(),s=t.getMinutes(),o=t.getSeconds(),l=t.getMilliseconds()),new Date(a,0,c.getDate()+d,i,s,o,l)}}return NaN}function _a(e,t){return function(n,r){var i,s;if($(n))return n;if(w(n)){if('"'==n.charAt(0)&&'"'==n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),Li.test(n))return new Date(n);if(e.lastIndex=0,i=e.exec(n))return i.shift(),s=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},a(i,function(e,n){n<t.length&&(s[t[n]]=+e)}),new Date(s.yyyy,s.MM-1,s.dd,s.HH,s.mm,s.ss||0,1e3*s.sss||0)}return NaN}}function ya(e,t,n,a){return function(r,i,s,o,l,c,d){function p(e){return e&&!(e.getTime&&e.getTime()!==e.getTime())}function u(e){return y(e)&&!$(e)?n(e)||void 0:e}va(r,i,s,o),ha(r,i,s,o,l,c);var m,g=o&&o.$options&&o.$options.timezone;if(o.$$parserName=e,o.$parsers.push(function(e){if(o.$isEmpty(e))return null;if(t.test(e)){var a=n(e,m);return g&&(a=Y(a,g)),a}}),o.$formatters.push(function(e){if(e&&!$(e))throw Ms("datefmt","Expected `{0}` to be a date",e);return p(e)?(m=e,m&&g&&(m=Y(m,g,!0)),d("date")(e,a,g)):(m=null,"")}),y(s.min)||s.ngMin){var h;o.$validators.min=function(e){return!p(e)||_(h)||n(e)>=h},s.$observe("min",function(e){h=u(e),o.$validate()})}if(y(s.max)||s.ngMax){var f;o.$validators.max=function(e){return!p(e)||_(f)||n(e)<=f},s.$observe("max",function(e){f=u(e),o.$validate()})}}}function va(e,t,n,a){var r=t[0],i=a.$$hasNativeValidators=v(r.validity);i&&a.$parsers.push(function(e){var n=t.prop(Ta)||{};return n.badInput||n.typeMismatch?void 0:e})}function ba(e,t,n,a,r,i){if(va(e,t,n,a),ha(e,t,n,a,r,i),a.$$parserName="number",a.$parsers.push(function(e){return a.$isEmpty(e)?null:qi.test(e)?parseFloat(e):void 0;
}),a.$formatters.push(function(e){if(!a.$isEmpty(e)){if(!k(e))throw Ms("numfmt","Expected `{0}` to be a number",e);e=e.toString()}return e}),y(n.min)||n.ngMin){var s;a.$validators.min=function(e){return a.$isEmpty(e)||_(s)||e>=s},n.$observe("min",function(e){y(e)&&!k(e)&&(e=parseFloat(e,10)),s=k(e)&&!isNaN(e)?e:void 0,a.$validate()})}if(y(n.max)||n.ngMax){var o;a.$validators.max=function(e){return a.$isEmpty(e)||_(o)||e<=o},n.$observe("max",function(e){y(e)&&!k(e)&&(e=parseFloat(e,10)),o=k(e)&&!isNaN(e)?e:void 0,a.$validate()})}}function wa(e,t,n,a,r,i){ha(e,t,n,a,r,i),ma(a),a.$$parserName="url",a.$validators.url=function(e,t){var n=e||t;return a.$isEmpty(n)||ji.test(n)}}function ka(e,t,n,a,r,i){ha(e,t,n,a,r,i),ma(a),a.$$parserName="email",a.$validators.email=function(e,t){var n=e||t;return a.$isEmpty(n)||Hi.test(n)}}function $a(e,t,n,a){_(n.name)&&t.attr("name",s());var r=function(e){t[0].checked&&a.$setViewValue(n.value,e&&e.type)};t.on("click",r),a.$render=function(){var e=n.value;t[0].checked=e==a.$viewValue},n.$observe("value",a.$render)}function Ca(e,t,n,a,r){var i;if(y(a)){if(i=e(a),!i.constant)throw Ms("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,a);return i(t)}return r}function Sa(e,t,n,a,r,i,s,o){var l=Ca(o,e,"ngTrueValue",n.ngTrueValue,!0),c=Ca(o,e,"ngFalseValue",n.ngFalseValue,!1),d=function(e){a.$setViewValue(t[0].checked,e&&e.type)};t.on("click",d),a.$render=function(){t[0].checked=a.$viewValue},a.$isEmpty=function(e){return e===!1},a.$formatters.push(function(e){return L(e,l)}),a.$parsers.push(function(e){return e?l:c})}function Ma(e,t){return e="ngClass"+e,["$animate",function(n){function r(e,t){var n=[];e:for(var a=0;a<e.length;a++){for(var r=e[a],i=0;i<t.length;i++)if(r==t[i])continue e;n.push(r)}return n}function i(e){var t=[];return Ya(e)?(a(e,function(e){t=t.concat(i(e))}),t):w(e)?e.split(" "):v(e)?(a(e,function(e,n){e&&(t=t.concat(n.split(" ")))}),t):e}return{restrict:"AC",link:function(s,o,l){function c(e){var t=p(e,1);l.$addClass(t)}function d(e){var t=p(e,-1);l.$removeClass(t)}function p(e,t){var n=o.data("$classCounts")||ge(),r=[];return a(e,function(e){(t>0||n[e])&&(n[e]=(n[e]||0)+t,n[e]===+(t>0)&&r.push(e))}),o.data("$classCounts",n),r.join(" ")}function u(e,t){var a=r(t,e),i=r(e,t);a=p(a,1),i=p(i,-1),a&&a.length&&n.addClass(o,a),i&&i.length&&n.removeClass(o,i)}function m(e){if(t===!0||(1&s.$index)===t){var n=i(e||[]);if(g){if(!L(e,g)){var a=i(g);u(a,n)}}else c(n)}g=Ya(e)?e.map(function(e){return fe(e)}):fe(e)}var g;s.$watch(l[e],m,!0),l.$observe("class",function(t){m(s.$eval(l[e]))}),"ngClass"!==e&&s.$watch("$index",function(n,a){var r=1&n;if(r!==(1&a)){var o=i(s.$eval(l[e]));r===t?c(o):d(o)}})}}}]}function xa(e){function t(e,t,o){_(t)?n("$pending",e,o):a("$pending",e,o),T(t)?t?(d(s.$error,e,o),c(s.$$success,e,o)):(c(s.$error,e,o),d(s.$$success,e,o)):(d(s.$error,e,o),d(s.$$success,e,o)),s.$pending?(r($s,!0),s.$valid=s.$invalid=void 0,i("",null)):(r($s,!1),s.$valid=Ia(s.$error),s.$invalid=!s.$valid,i("",s.$valid));var l;l=s.$pending&&s.$pending[e]?void 0:!s.$error[e]&&(!!s.$$success[e]||null),i(e,l),s.$$parentForm.$setValidity(e,l,s)}function n(e,t,n){s[e]||(s[e]={}),c(s[e],t,n)}function a(e,t,n){s[e]&&d(s[e],t,n),Ia(s[e])&&(s[e]=void 0)}function r(e,t){t&&!l[e]?(p.addClass(o,e),l[e]=!0):!t&&l[e]&&(p.removeClass(o,e),l[e]=!1)}function i(e,t){e=e?"-"+oe(e,"-"):"",r(_s+e,t===!0),r(ys+e,t===!1)}var s=e.ctrl,o=e.$element,l={},c=e.set,d=e.unset,p=e.$animate;l[ys]=!(l[_s]=o.hasClass(_s)),s.$setValidity=t}function Ia(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}function Aa(e){e[0].hasAttribute("selected")&&(e[0].selected=!0)}var Ea=/^\/(.+)\/([a-z]*)$/,Ta="validity",Da=Object.prototype.hasOwnProperty,Pa=function(e){return w(e)?e.toLowerCase():e},Ra=function(e){return w(e)?e.toUpperCase():e},Na=function(e){return w(e)?e.replace(/[A-Z]/g,function(e){return String.fromCharCode(32|e.charCodeAt(0))}):e},Fa=function(e){return w(e)?e.replace(/[a-z]/g,function(e){return String.fromCharCode(e.charCodeAt(0)&-33)}):e};"i"!=="I".toLowerCase()&&(Pa=Na,Ra=Fa);var Ua,Oa,Ba,La,ja=[].slice,Ha=[].splice,qa=[].push,Va=Object.prototype.toString,za=Object.getPrototypeOf,Wa=t("ng"),Ga=e.angular||(e.angular={}),Ka=0;Ua=e.document.documentMode,m.$inject=[],g.$inject=[];var Ya=Array.isArray,Za=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/,Xa=function(e){return w(e)?e.trim():e},Ja=function(e){return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Qa=function(){function t(){try{return new Function(""),!1}catch(e){return!0}}if(!y(Qa.rules)){var n=e.document.querySelector("[ng-csp]")||e.document.querySelector("[data-ng-csp]");if(n){var a=n.getAttribute("ng-csp")||n.getAttribute("data-ng-csp");Qa.rules={noUnsafeEval:!a||a.indexOf("no-unsafe-eval")!==-1,noInlineStyle:!a||a.indexOf("no-inline-style")!==-1}}else Qa.rules={noUnsafeEval:t(),noInlineStyle:!1}}return Qa.rules},er=function(){if(y(er.name_))return er.name_;var t,n,a,r,i=nr.length;for(n=0;n<i;++n)if(a=nr[n],t=e.document.querySelector("["+a.replace(":","\\:")+"jq]")){r=t.getAttribute(a+"jq");break}return er.name_=r},tr=/:/g,nr=["ng-","data-ng-","ng:","x-ng-"],ar=/[A-Z]/g,rr=!1,ir=1,sr=2,or=3,lr=8,cr=9,dr=11,pr={full:"1.5.7",major:1,minor:5,dot:7,codeName:"hexagonal-circumvolution"};Ae.expando="ng339";var ur=Ae.cache={},mr=1,gr=function(e,t,n){e.addEventListener(t,n,!1)},hr=function(e,t,n){e.removeEventListener(t,n,!1)};Ae._data=function(e){return this.cache[e[this.expando]]||{}};var fr=/([\:\-\_]+(.))/g,_r=/^moz([A-Z])/,yr={mouseleave:"mouseout",mouseenter:"mouseover"},vr=t("jqLite"),br=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,wr=/<|&#?\w+;/,kr=/<([\w:-]+)/,$r=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Cr={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Cr.optgroup=Cr.option,Cr.tbody=Cr.tfoot=Cr.colgroup=Cr.caption=Cr.thead,Cr.th=Cr.td;var Sr=e.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))},Mr=Ae.prototype={ready:function(t){function n(){a||(a=!0,t())}var a=!1;"complete"===e.document.readyState?e.setTimeout(n):(this.on("DOMContentLoaded",n),Ae(e).on("load",n))},toString:function(){var e=[];return a(this,function(t){e.push(""+t)}),"["+e.join(", ")+"]"},eq:function(e){return Oa(e>=0?this[e]:this[this.length+e])},length:0,push:qa,sort:[].sort,splice:[].splice},xr={};a("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(e){xr[Pa(e)]=e});var Ir={};a("input,select,option,textarea,button,form,details".split(","),function(e){Ir[e]=!0});var Ar={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};a({data:Ne,removeData:Pe,hasData:Ce,cleanData:Se},function(e,t){Ae[t]=e}),a({data:Ne,inheritedData:je,scope:function(e){return Oa.data(e,"$scope")||je(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return Oa.data(e,"$isolateScope")||Oa.data(e,"$isolateScopeNoTemplate")},controller:Le,injector:function(e){return je(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:Fe,css:function(e,t,n){return t=we(t),y(n)?void(e.style[t]=n):e.style[t]},attr:function(e,t,n){var a=e.nodeType;if(a!==or&&a!==sr&&a!==lr){var r=Pa(t);if(xr[r]){if(!y(n))return e[t]||(e.attributes.getNamedItem(t)||m).specified?r:void 0;n?(e[t]=!0,e.setAttribute(t,r)):(e[t]=!1,e.removeAttribute(r))}else if(y(n))e.setAttribute(t,n);else if(e.getAttribute){var i=e.getAttribute(t,2);return null===i?void 0:i}}},prop:function(e,t,n){return y(n)?void(e[t]=n):e[t]},text:function(){function e(e,t){if(_(t)){var n=e.nodeType;return n===ir||n===or?e.textContent:""}e.textContent=t}return e.$dv="",e}(),val:function(e,t){if(_(t)){if(e.multiple&&"select"===U(e)){var n=[];return a(e.options,function(e){e.selected&&n.push(e.value||e.text)}),0===n.length?null:n}return e.value}e.value=t},html:function(e,t){return _(t)?e.innerHTML:(Te(e,!0),void(e.innerHTML=t))},empty:He},function(e,t){Ae.prototype[t]=function(t,n){var a,r,i=this.length;if(e!==He&&_(2==e.length&&e!==Fe&&e!==Le?t:n)){if(v(t)){for(a=0;a<i;a++)if(e===Ne)e(this[a],t);else for(r in t)e(this[a],r,t[r]);return this}for(var s=e.$dv,o=_(s)?Math.min(i,1):i,l=0;l<o;l++){var c=e(this[l],t,n);s=s?s+c:c}return s}for(a=0;a<i;a++)e(this[a],t,n);return this}}),a({removeData:Pe,on:function(e,t,n,a){if(y(a))throw vr("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if($e(e)){var r=Re(e,!0),i=r.events,s=r.handle;s||(s=r.handle=Ge(e,i));for(var o=t.indexOf(" ")>=0?t.split(" "):[t],l=o.length,c=function(t,a,r){var o=i[t];o||(o=i[t]=[],o.specialHandlerWrapper=a,"$destroy"===t||r||gr(e,t,s)),o.push(n)};l--;)t=o[l],yr[t]?(c(yr[t],Ye),c(t,void 0,!0)):c(t)}},off:De,one:function(e,t,n){e=Oa(e),e.on(t,function a(){e.off(t,n),e.off(t,a)}),e.on(t,n)},replaceWith:function(e,t){var n,r=e.parentNode;Te(e),a(new Ae(t),function(t){n?r.insertBefore(t,n.nextSibling):r.replaceChild(t,e),n=t})},children:function(e){var t=[];return a(e.childNodes,function(e){e.nodeType===ir&&t.push(e)}),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===ir||n===dr){t=new Ae(t);for(var a=0,r=t.length;a<r;a++){var i=t[a];e.appendChild(i)}}},prepend:function(e,t){if(e.nodeType===ir){var n=e.firstChild;a(new Ae(t),function(t){e.insertBefore(t,n)})}},wrap:function(e,t){Ie(e,Oa(t).eq(0).clone()[0])},remove:qe,detach:function(e){qe(e,!0)},after:function(e,t){var n=e,a=e.parentNode;t=new Ae(t);for(var r=0,i=t.length;r<i;r++){var s=t[r];a.insertBefore(s,n.nextSibling),n=s}},addClass:Oe,removeClass:Ue,toggleClass:function(e,t,n){t&&a(t.split(" "),function(t){var a=n;_(a)&&(a=!Fe(e,t)),(a?Oe:Ue)(e,t)})},parent:function(e){var t=e.parentNode;return t&&t.nodeType!==dr?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:Ee,triggerHandler:function(e,t,n){var r,i,s,o=t.type||t,l=Re(e),d=l&&l.events,p=d&&d[o];p&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:m,type:o,target:e},t.type&&(r=c(r,t)),i=fe(p),s=n?[r].concat(n):[r],a(i,function(t){r.isImmediatePropagationStopped()||t.apply(e,s)}))}},function(e,t){Ae.prototype[t]=function(t,n,a){for(var r,i=0,s=this.length;i<s;i++)_(r)?(r=e(this[i],t,n,a),y(r)&&(r=Oa(r))):Be(r,e(this[i],t,n,a));return y(r)?r:this},Ae.prototype.bind=Ae.prototype.on,Ae.prototype.unbind=Ae.prototype.off}),Je.prototype={put:function(e,t){this[Xe(e,this.nextUid)]=t},get:function(e){return this[Xe(e,this.nextUid)]},remove:function(e){var t=this[e=Xe(e,this.nextUid)];return delete this[e],t}};var Er=[function(){this.$get=[function(){return Je}]}],Tr=/^([^\(]+?)=>/,Dr=/^[^\(]*\(\s*([^\)]*)\)/m,Pr=/,/,Rr=/^\s*(_?)(\S+?)\1\s*$/,Nr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Fr=t("$injector");at.$$annotate=nt;var Ur=t("$animate"),Or=1,Br="ng-animate",Lr=function(){this.$get=m},jr=function(){var e=new Je,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,r){function i(e,t,n){var r=!1;return t&&(t=w(t)?t.split(" "):Ya(t)?t:[],a(t,function(t){t&&(r=!0,e[t]=n)})),r}function s(){a(t,function(t){var n=e.get(t);if(n){var r=ot(t.attr("class")),i="",s="";a(n,function(e,t){var n=!!r[t];e!==n&&(e?i+=(i.length?" ":"")+t:s+=(s.length?" ":"")+t)}),a(t,function(e){i&&Oe(e,i),s&&Ue(e,s)}),e.remove(t)}}),t.length=0}function o(n,a,o){var l=e.get(n)||{},c=i(l,a,!0),d=i(l,o,!1);(c||d)&&(e.put(n,l),t.push(n),1===t.length&&r.$$postDigest(s))}return{enabled:m,on:m,off:m,pin:m,push:function(e,t,a,r){r&&r(),a=a||{},a.from&&e.css(a.from),a.to&&e.css(a.to),(a.addClass||a.removeClass)&&o(e,a.addClass,a.removeClass);var i=new n;return i.complete(),i}}}]},Hr=["$provide",function(e){var t=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,a){if(n&&"."!==n.charAt(0))throw Ur("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var r=n+"-animation";t.$$registeredAnimations[n.substr(1)]=r,e.factory(r,a)},this.classNameFilter=function(e){if(1===arguments.length&&(this.$$classNameFilter=e instanceof RegExp?e:null,this.$$classNameFilter)){var t=new RegExp("(\\s+|\\/)"+Br+"(\\s+|\\/)");if(t.test(this.$$classNameFilter.toString()))throw Ur("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',Br)}return this.$$classNameFilter},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var a=st(n);!a||a.parentNode||a.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.end&&e.end()},enter:function(n,a,r,i){return a=a&&Oa(a),r=r&&Oa(r),a=a||r.parent(),t(n,a,r),e.push(n,"enter",lt(i))},move:function(n,a,r,i){return a=a&&Oa(a),r=r&&Oa(r),a=a||r.parent(),t(n,a,r),e.push(n,"move",lt(i))},leave:function(t,n){return e.push(t,"leave",lt(n),function(){t.remove()})},addClass:function(t,n,a){return a=lt(a),a.addClass=it(a.addclass,n),e.push(t,"addClass",a)},removeClass:function(t,n,a){return a=lt(a),a.removeClass=it(a.removeClass,n),e.push(t,"removeClass",a)},setClass:function(t,n,a,r){return r=lt(r),r.addClass=it(r.addClass,n),r.removeClass=it(r.removeClass,a),e.push(t,"setClass",r)},animate:function(t,n,a,r,i){return i=lt(i),i.from=i.from?c(i.from,n):n,i.to=i.to?c(i.to,a):a,r=r||"ng-inline-animate",i.tempClasses=it(i.tempClasses,r),e.push(t,"animate",i)}}}]}],qr=function(){this.$get=["$$rAF",function(e){function t(t){n.push(t),n.length>1||e(function(){for(var e=0;e<n.length;e++)n[e]();n=[]})}var n=[];return function(){var e=!1;return t(function(){e=!0}),function(n){e?n():t(n)}}}]},Vr=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$document","$timeout",function(e,t,n,r,i){function s(e){this.setHost(e);var t=n(),a=function(e){i(e,0,!1)};this._doneCallbacks=[],this._tick=function(e){var n=r[0];n&&n.hidden?a(e):t(e)},this._state=0}var o=0,l=1,c=2;return s.chain=function(e,t){function n(){return a===e.length?void t(!0):void e[a](function(e){return e===!1?void t(!1):(a++,void n())})}var a=0;n()},s.all=function(e,t){function n(n){i=i&&n,++r===e.length&&t(i)}var r=0,i=!0;a(e,function(e){e.done(n)})},s.prototype={setHost:function(e){this.host=e||{}},done:function(e){this._state===c?e():this._doneCallbacks.push(e)},progress:m,getPromise:function(){if(!this.promise){var t=this;this.promise=e(function(e,n){t.done(function(t){t===!1?n():e()})})}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},"catch":function(e){return this.getPromise()["catch"](e)},"finally":function(e){return this.getPromise()["finally"](e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;t._state===o&&(t._state=l,t._tick(function(){t._resolve(e)}))},_resolve:function(e){this._state!==c&&(a(this._doneCallbacks,function(t){t(e)}),this._doneCallbacks.length=0,this._state=c)}},s}]},zr=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(e,t,n){return function(t,a){function r(){return e(function(){i(),o||l.complete(),o=!0}),l}function i(){s.addClass&&(t.addClass(s.addClass),s.addClass=null),s.removeClass&&(t.removeClass(s.removeClass),s.removeClass=null),s.to&&(t.css(s.to),s.to=null)}var s=a||{};s.$$prepared||(s=B(s)),s.cleanupStyles&&(s.from=s.to=null),s.from&&(t.css(s.from),s.from=null);var o,l=new n;return{start:r,end:r}}}]},Wr=t("$compile"),Gr=new mt;gt.$inject=["$provide","$$sanitizeUriProvider"],ht.prototype.isFirstChange=function(){return this.previousValue===Gr};var Kr=/^((?:x|data)[\:\-_])/i,Yr=t("$controller"),Zr=/^(\S+)(\s+as\s+([\w$]+))?$/,Xr=function(){this.$get=["$document",function(e){return function(t){return t?!t.nodeType&&t instanceof Oa&&(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},Jr="application/json",Qr={"Content-Type":Jr+";charset=utf-8"},ei=/^\[|^\{(?!\{)/,ti={"[":/]$/,"{":/}$/},ni=/^\)\]\}',?\n/,ai=t("$http"),ri=function(e){return function(){throw ai("legacy","The method `{0}` on the promise returned from `$http` has been disabled.",e)}},ii=Ga.$interpolateMinErr=t("$interpolate");ii.throwNoconcat=function(e){throw ii("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",e)},ii.interr=function(e,t){return ii("interr","Can't interpolate: {0}\n{1}",e,t.toString())};var si=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,oi={http:80,https:443,ftp:21},li=t("$location"),ci={$$absUrl:"",$$html5:!1,$$replace:!1,absUrl:Zt("$$absUrl"),url:function(e){if(_(e))return this.$$url;var t=si.exec(e);return(t[1]||""===e)&&this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:Zt("$$protocol"),host:Zt("$$host"),port:Zt("$$port"),path:Xt("$$path",function(e){return e=null!==e?e.toString():"","/"==e.charAt(0)?e:"/"+e}),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(w(e)||k(e))e=e.toString(),this.$$search=J(e);else{if(!v(e))throw li("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");e=B(e,{}),a(e,function(t,n){null==t&&delete e[n]}),this.$$search=e}break;default:_(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:Xt("$$hash",function(e){return null!==e?e.toString():""}),replace:function(){return this.$$replace=!0,this}};a([Yt,Kt,Gt],function(e){e.prototype=Object.create(ci),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==Gt||!this.$$html5)throw li("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=_(t)?null:t,this}});var di=t("$parse"),pi=Function.prototype.call,ui=Function.prototype.apply,mi=Function.prototype.bind,gi=ge();a("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(e){gi[e]=!0});var hi={n:"\n",f:"\f",r:"\r",t:"\t",v:"\x0B","'":"'",'"':'"'},fi=function(e){this.options=e};fi.prototype={constructor:fi,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;){var t=this.text.charAt(this.index);if('"'===t||"'"===t)this.readString(t);else if(this.isNumber(t)||"."===t&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(t,"(){}[].,;:?"))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),a=n+this.peek(2),r=gi[t],i=gi[n],s=gi[a];if(r||i||s){var o=s?a:i?n:t;this.tokens.push({index:this.index,text:o,operator:!0}),this.index+=o.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(e,t){return t.indexOf(e)!==-1},peek:function(e){var t=e||1;return this.index+t<this.text.length&&this.text.charAt(this.index+t)},isNumber:function(e){return"0"<=e&&e<="9"&&"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||"\t"===e||"\n"===e||"\x0B"===e||" "===e},isIdentifierStart:function(e){return this.options.isIdentifierStart?this.options.isIdentifierStart(e,this.codePointAt(e)):this.isValidIdentifierStart(e)},isValidIdentifierStart:function(e){return"a"<=e&&e<="z"||"A"<=e&&e<="Z"||"_"===e||"$"===e},isIdentifierContinue:function(e){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(e,this.codePointAt(e)):this.isValidIdentifierContinue(e)},isValidIdentifierContinue:function(e,t){return this.isValidIdentifierStart(e,t)||this.isNumber(e)},codePointAt:function(e){return 1===e.length?e.charCodeAt(0):(e.charCodeAt(0)<<10)+e.charCodeAt(1)-56613888},peekMultichar:function(){var e=this.text.charAt(this.index),t=this.peek();if(!t)return e;var n=e.charCodeAt(0),a=t.charCodeAt(0);return n>=55296&&n<=56319&&a>=56320&&a<=57343?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var a=y(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw di("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,a,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=Pa(this.text.charAt(this.index));if("."==n||this.isNumber(n))e+=n;else{var a=this.peek();if("e"==n&&this.isExpOperator(a))e+=n;else if(this.isExpOperator(n)&&a&&this.isNumber(a)&&"e"==e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||a&&this.isNumber(a)||"e"!=e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){var e=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var t=this.peekMultichar();if(!this.isIdentifierContinue(t))break;this.index+=t.length}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",a=e,r=!1;this.index<this.text.length;){var i=this.text.charAt(this.index);if(a+=i,r){if("u"===i){var s=this.text.substring(this.index+1,this.index+5);s.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+s+"]"),this.index+=4,n+=String.fromCharCode(parseInt(s,16))}else{var o=hi[i];n+=o||i}r=!1}else if("\\"===i)r=!0;else{if(i===e)return this.index++,void this.tokens.push({index:t,text:a,constant:!0,value:n});n+=i}this.index++}this.throwError("Unterminated quote",t)}};var _i=function(e,t){this.lexer=e,this.options=t};_i.Program="Program",_i.ExpressionStatement="ExpressionStatement",_i.AssignmentExpression="AssignmentExpression",_i.ConditionalExpression="ConditionalExpression",_i.LogicalExpression="LogicalExpression",_i.BinaryExpression="BinaryExpression",_i.UnaryExpression="UnaryExpression",_i.CallExpression="CallExpression",_i.MemberExpression="MemberExpression",_i.Identifier="Identifier",_i.Literal="Literal",_i.ArrayExpression="ArrayExpression",_i.Property="Property",_i.ObjectExpression="ObjectExpression",_i.ThisExpression="ThisExpression",_i.LocalsExpression="LocalsExpression",_i.NGValueParameter="NGValueParameter",_i.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t},program:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:_i.Program,body:e}},expressionStatement:function(){return{type:_i.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e,t=this.expression();e=this.expect("|");)t=this.filter(t);return t},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();return this.expect("=")&&(e={type:_i.AssignmentExpression,left:e,right:this.assignment(),operator:"="}),e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:_i.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:_i.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:_i.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:_i.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:_i.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:_i.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:_i.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:_i.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e;this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=B(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:_i.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());for(var t;t=this.expect("(","[",".");)"("===t.text?(e={type:_i.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:_i.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:_i.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:_i.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do e.push(this.filterChain());while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:_i.Identifier,name:e.text}},constant:function(){return{type:_i.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:_i.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:_i.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0,this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:_i.ObjectExpression,properties:t}},throwError:function(e,t){throw di("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw di("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw di("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,a){return this.peekAhead(0,e,t,n,a)},peekAhead:function(e,t,n,a,r){if(this.tokens.length>e){var i=this.tokens[e],s=i.text;if(s===t||s===n||s===a||s===r||!t&&!n&&!a&&!r)return i}return!1},expect:function(e,t,n,a){var r=this.peek(e,t,n,a);return!!r&&(this.tokens.shift(),r)},selfReferential:{"this":{type:_i.ThisExpression},$locals:{type:_i.LocalsExpression}}},hn.prototype={compile:function(e,t){var n=this,r=this.astBuilder.ast(e);this.state={nextId:0,filters:{},expensiveChecks:t,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},cn(r,n.$filter);var i,s="";if(this.stage="assign",i=un(r)){this.state.computing="assign";var o=this.nextId();this.recurse(i,o),this.return_(o),s="fn.assign="+this.generateFunction("assign","s,v,l")}var l=dn(r.body);n.stage="inputs",a(l,function(e,t){var a="fn"+t;n.state[a]={vars:[],body:[],own:{}},n.state.computing=a;var r=n.nextId();n.recurse(e,r),n.return_(r),n.state.inputs.push(a),e.watchId=t}),this.state.computing="fn",this.stage="main",this.recurse(r);var c='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+s+this.watchFns()+"return fn;",d=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",c)(this.$filter,en,nn,an,tn,rn,sn,on,e);return this.state=this.stage=void 0,d.literal=mn(r),d.constant=gn(r),d},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return a(t,function(t){e.push("var "+t+"="+n.generateFunction(t,"s"))}),t.length&&e.push("fn.inputs=["+t.join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return a(this.state.filters,function(n,a){e.push(n+"=$filter("+t.escape(a)+")")}),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,n,r,i,s){var o,l,c,d,p,u=this;if(r=r||m,!s&&y(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,n,r,i,!0));switch(e.type){case _i.Program:a(e.body,function(t,n){u.recurse(t.expression,void 0,void 0,function(e){l=e}),n!==e.body.length-1?u.current().body.push(l,";"):u.return_(l)});break;case _i.Literal:d=this.escape(e.value),this.assign(t,d),r(d);break;case _i.UnaryExpression:this.recurse(e.argument,void 0,void 0,function(e){l=e}),d=e.operator+"("+this.ifDefined(l,0)+")",this.assign(t,d),r(d);break;case _i.BinaryExpression:this.recurse(e.left,void 0,void 0,function(e){o=e}),this.recurse(e.right,void 0,void 0,function(e){l=e}),d="+"===e.operator?this.plus(o,l):"-"===e.operator?this.ifDefined(o,0)+e.operator+this.ifDefined(l,0):"("+o+")"+e.operator+"("+l+")",this.assign(t,d),r(d);break;case _i.LogicalExpression:t=t||this.nextId(),u.recurse(e.left,t),u.if_("&&"===e.operator?t:u.not(t),u.lazyRecurse(e.right,t)),r(t);break;case _i.ConditionalExpression:t=t||this.nextId(),u.recurse(e.test,t),u.if_(t,u.lazyRecurse(e.alternate,t),u.lazyRecurse(e.consequent,t)),r(t);break;case _i.Identifier:t=t||this.nextId(),n&&(n.context="inputs"===u.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),n.computed=!1,n.name=e.name),en(e.name),u.if_("inputs"===u.stage||u.not(u.getHasOwnProperty("l",e.name)),function(){u.if_("inputs"===u.stage||"s",function(){i&&1!==i&&u.if_(u.not(u.nonComputedMember("s",e.name)),u.lazyAssign(u.nonComputedMember("s",e.name),"{}")),u.assign(t,u.nonComputedMember("s",e.name))})},t&&u.lazyAssign(t,u.nonComputedMember("l",e.name))),(u.state.expensiveChecks||_n(e.name))&&u.addEnsureSafeObject(t),r(t);break;case _i.MemberExpression:o=n&&(n.context=this.nextId())||this.nextId(),t=t||this.nextId(),u.recurse(e.object,o,void 0,function(){u.if_(u.notNull(o),function(){i&&1!==i&&u.addEnsureSafeAssignContext(o),e.computed?(l=u.nextId(),u.recurse(e.property,l),u.getStringValue(l),u.addEnsureSafeMemberName(l),i&&1!==i&&u.if_(u.not(u.computedMember(o,l)),u.lazyAssign(u.computedMember(o,l),"{}")),d=u.ensureSafeObject(u.computedMember(o,l)),u.assign(t,d),n&&(n.computed=!0,n.name=l)):(en(e.property.name),i&&1!==i&&u.if_(u.not(u.nonComputedMember(o,e.property.name)),u.lazyAssign(u.nonComputedMember(o,e.property.name),"{}")),
d=u.nonComputedMember(o,e.property.name),(u.state.expensiveChecks||_n(e.property.name))&&(d=u.ensureSafeObject(d)),u.assign(t,d),n&&(n.computed=!1,n.name=e.property.name))},function(){u.assign(t,"undefined")}),r(t)},!!i);break;case _i.CallExpression:t=t||this.nextId(),e.filter?(l=u.filter(e.callee.name),c=[],a(e.arguments,function(e){var t=u.nextId();u.recurse(e,t),c.push(t)}),d=l+"("+c.join(",")+")",u.assign(t,d),r(t)):(l=u.nextId(),o={},c=[],u.recurse(e.callee,l,o,function(){u.if_(u.notNull(l),function(){u.addEnsureSafeFunction(l),a(e.arguments,function(e){u.recurse(e,u.nextId(),void 0,function(e){c.push(u.ensureSafeObject(e))})}),o.name?(u.state.expensiveChecks||u.addEnsureSafeObject(o.context),d=u.member(o.context,o.name,o.computed)+"("+c.join(",")+")"):d=l+"("+c.join(",")+")",d=u.ensureSafeObject(d),u.assign(t,d)},function(){u.assign(t,"undefined")}),r(t)}));break;case _i.AssignmentExpression:if(l=this.nextId(),o={},!pn(e.left))throw di("lval","Trying to assign a value to a non l-value");this.recurse(e.left,void 0,o,function(){u.if_(u.notNull(o.context),function(){u.recurse(e.right,l),u.addEnsureSafeObject(u.member(o.context,o.name,o.computed)),u.addEnsureSafeAssignContext(o.context),d=u.member(o.context,o.name,o.computed)+e.operator+l,u.assign(t,d),r(t||d)})},1);break;case _i.ArrayExpression:c=[],a(e.elements,function(e){u.recurse(e,u.nextId(),void 0,function(e){c.push(e)})}),d="["+c.join(",")+"]",this.assign(t,d),r(d);break;case _i.ObjectExpression:c=[],p=!1,a(e.properties,function(e){e.computed&&(p=!0)}),p?(t=t||this.nextId(),this.assign(t,"{}"),a(e.properties,function(e){e.computed?(o=u.nextId(),u.recurse(e.key,o)):o=e.key.type===_i.Identifier?e.key.name:""+e.key.value,l=u.nextId(),u.recurse(e.value,l),u.assign(u.member(t,o,e.computed),l)})):(a(e.properties,function(t){u.recurse(t.value,e.constant?void 0:u.nextId(),void 0,function(e){c.push(u.escape(t.key.type===_i.Identifier?t.key.name:""+t.key.value)+":"+e)})}),d="{"+c.join(",")+"}",this.assign(t,d)),r(t||d);break;case _i.ThisExpression:this.assign(t,"s"),r("s");break;case _i.LocalsExpression:this.assign(t,"l"),r("l");break;case _i.NGValueParameter:this.assign(t,"v"),r("v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,a=this.current().own;return a.hasOwnProperty(n)||(a[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),a[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(e===!0)t();else{var a=this.current().body;a.push("if(",e,"){"),t(),a.push("}"),n&&(a.push("else{"),n(),a.push("}"))}},not:function(e){return"!("+e+")"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){var n=/[$_a-zA-Z][$_a-zA-Z0-9]*/,a=/[^$_a-zA-Z0-9]/g;return n.test(t)?e+"."+t:e+'["'+t.replace(a,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},addEnsureSafeObject:function(e){this.current().body.push(this.ensureSafeObject(e),";")},addEnsureSafeMemberName:function(e){this.current().body.push(this.ensureSafeMemberName(e),";")},addEnsureSafeFunction:function(e){this.current().body.push(this.ensureSafeFunction(e),";")},addEnsureSafeAssignContext:function(e){this.current().body.push(this.ensureSafeAssignContext(e),";")},ensureSafeObject:function(e){return"ensureSafeObject("+e+",text)"},ensureSafeMemberName:function(e){return"ensureSafeMemberName("+e+",text)"},ensureSafeFunction:function(e){return"ensureSafeFunction("+e+",text)"},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},ensureSafeAssignContext:function(e){return"ensureSafeAssignContext("+e+",text)"},lazyRecurse:function(e,t,n,a,r,i){var s=this;return function(){s.recurse(e,t,n,a,r,i)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(w(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(k(e))return e.toString();if(e===!0)return"true";if(e===!1)return"false";if(null===e)return"null";if("undefined"==typeof e)return"undefined";throw di("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},fn.prototype={compile:function(e,t){var n=this,r=this.astBuilder.ast(e);this.expression=e,this.expensiveChecks=t,cn(r,n.$filter);var i,s;(i=un(r))&&(s=this.recurse(i));var o,l=dn(r.body);l&&(o=[],a(l,function(e,t){var a=n.recurse(e);e.input=a,o.push(a),e.watchId=t}));var c=[];a(r.body,function(e){c.push(n.recurse(e.expression))});var d=0===r.body.length?m:1===r.body.length?c[0]:function(e,t){var n;return a(c,function(a){n=a(e,t)}),n};return s&&(d.assign=function(e,t,n){return s(e,n,t)}),o&&(d.inputs=o),d.literal=mn(r),d.constant=gn(r),d},recurse:function(e,t,n){var r,i,s,o=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case _i.Literal:return this.value(e.value,t);case _i.UnaryExpression:return i=this.recurse(e.argument),this["unary"+e.operator](i,t);case _i.BinaryExpression:return r=this.recurse(e.left),i=this.recurse(e.right),this["binary"+e.operator](r,i,t);case _i.LogicalExpression:return r=this.recurse(e.left),i=this.recurse(e.right),this["binary"+e.operator](r,i,t);case _i.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case _i.Identifier:return en(e.name,o.expression),o.identifier(e.name,o.expensiveChecks||_n(e.name),t,n,o.expression);case _i.MemberExpression:return r=this.recurse(e.object,!1,!!n),e.computed||(en(e.property.name,o.expression),i=e.property.name),e.computed&&(i=this.recurse(e.property)),e.computed?this.computedMember(r,i,t,n,o.expression):this.nonComputedMember(r,i,o.expensiveChecks,t,n,o.expression);case _i.CallExpression:return s=[],a(e.arguments,function(e){s.push(o.recurse(e))}),e.filter&&(i=this.$filter(e.callee.name)),e.filter||(i=this.recurse(e.callee,!0)),e.filter?function(e,n,a,r){for(var o=[],l=0;l<s.length;++l)o.push(s[l](e,n,a,r));var c=i.apply(void 0,o,r);return t?{context:void 0,name:void 0,value:c}:c}:function(e,n,a,r){var l,c=i(e,n,a,r);if(null!=c.value){nn(c.context,o.expression),an(c.value,o.expression);for(var d=[],p=0;p<s.length;++p)d.push(nn(s[p](e,n,a,r),o.expression));l=nn(c.value.apply(c.context,d),o.expression)}return t?{value:l}:l};case _i.AssignmentExpression:return r=this.recurse(e.left,!0,1),i=this.recurse(e.right),function(e,n,a,s){var l=r(e,n,a,s),c=i(e,n,a,s);return nn(l.value,o.expression),rn(l.context),l.context[l.name]=c,t?{value:c}:c};case _i.ArrayExpression:return s=[],a(e.elements,function(e){s.push(o.recurse(e))}),function(e,n,a,r){for(var i=[],o=0;o<s.length;++o)i.push(s[o](e,n,a,r));return t?{value:i}:i};case _i.ObjectExpression:return s=[],a(e.properties,function(e){e.computed?s.push({key:o.recurse(e.key),computed:!0,value:o.recurse(e.value)}):s.push({key:e.key.type===_i.Identifier?e.key.name:""+e.key.value,computed:!1,value:o.recurse(e.value)})}),function(e,n,a,r){for(var i={},o=0;o<s.length;++o)s[o].computed?i[s[o].key(e,n,a,r)]=s[o].value(e,n,a,r):i[s[o].key]=s[o].value(e,n,a,r);return t?{value:i}:i};case _i.ThisExpression:return function(e){return t?{value:e}:e};case _i.LocalsExpression:return function(e,n){return t?{value:n}:n};case _i.NGValueParameter:return function(e,n,a){return t?{value:a}:a}}},"unary+":function(e,t){return function(n,a,r,i){var s=e(n,a,r,i);return s=y(s)?+s:0,t?{value:s}:s}},"unary-":function(e,t){return function(n,a,r,i){var s=e(n,a,r,i);return s=y(s)?-s:0,t?{value:s}:s}},"unary!":function(e,t){return function(n,a,r,i){var s=!e(n,a,r,i);return t?{value:s}:s}},"binary+":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s),l=t(a,r,i,s),c=on(o,l);return n?{value:c}:c}},"binary-":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s),l=t(a,r,i,s),c=(y(o)?o:0)-(y(l)?l:0);return n?{value:c}:c}},"binary*":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)*t(a,r,i,s);return n?{value:o}:o}},"binary/":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)/t(a,r,i,s);return n?{value:o}:o}},"binary%":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)%t(a,r,i,s);return n?{value:o}:o}},"binary===":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)===t(a,r,i,s);return n?{value:o}:o}},"binary!==":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)!==t(a,r,i,s);return n?{value:o}:o}},"binary==":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)==t(a,r,i,s);return n?{value:o}:o}},"binary!=":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)!=t(a,r,i,s);return n?{value:o}:o}},"binary<":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)<t(a,r,i,s);return n?{value:o}:o}},"binary>":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)>t(a,r,i,s);return n?{value:o}:o}},"binary<=":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)<=t(a,r,i,s);return n?{value:o}:o}},"binary>=":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)>=t(a,r,i,s);return n?{value:o}:o}},"binary&&":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)&&t(a,r,i,s);return n?{value:o}:o}},"binary||":function(e,t,n){return function(a,r,i,s){var o=e(a,r,i,s)||t(a,r,i,s);return n?{value:o}:o}},"ternary?:":function(e,t,n,a){return function(r,i,s,o){var l=e(r,i,s,o)?t(r,i,s,o):n(r,i,s,o);return a?{value:l}:l}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n,a,r){return function(i,s,o,l){var c=s&&e in s?s:i;a&&1!==a&&c&&!c[e]&&(c[e]={});var d=c?c[e]:void 0;return t&&nn(d,r),n?{context:c,name:e,value:d}:d}},computedMember:function(e,t,n,a,r){return function(i,s,o,l){var c,d,p=e(i,s,o,l);return null!=p&&(c=t(i,s,o,l),c=tn(c),en(c,r),a&&1!==a&&(rn(p),p&&!p[c]&&(p[c]={})),d=p[c],nn(d,r)),n?{context:p,name:c,value:d}:d}},nonComputedMember:function(e,t,n,a,r,i){return function(s,o,l,c){var d=e(s,o,l,c);r&&1!==r&&(rn(d),d&&!d[t]&&(d[t]={}));var p=null!=d?d[t]:void 0;return(n||_n(t))&&nn(p,i),a?{context:d,name:t,value:p}:p}},inputs:function(e,t){return function(n,a,r,i){return i?i[t]:e(n,a,r)}}};var yi=function(e,t,n){this.lexer=e,this.$filter=t,this.options=n,this.ast=new _i(e,n),this.astCompiler=n.csp?new fn(this.ast,t):new hn(this.ast,t)};yi.prototype={constructor:yi,parse:function(e){return this.astCompiler.compile(e,this.options.expensiveChecks)}};var vi=Object.prototype.valueOf,bi=t("$sce"),wi={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},ki=t("$compile"),$i=e.document.createElement("a"),Ci=Rn(e.location.href);Un.$inject=["$document"],Bn.$inject=["$provide"];var Si=22,Mi=".",xi="0";Vn.$inject=["$locale"],zn.$inject=["$locale"];var Ii={yyyy:Zn("FullYear",4,0,!1,!0),yy:Zn("FullYear",2,0,!0,!0),y:Zn("FullYear",1,0,!1,!0),MMMM:Xn("Month"),MMM:Xn("Month",!0),MM:Zn("Month",2,1),M:Zn("Month",1,1),LLLL:Xn("Month",!1,!0),dd:Zn("Date",2),d:Zn("Date",1),HH:Zn("Hours",2),H:Zn("Hours",1),hh:Zn("Hours",2,-12),h:Zn("Hours",1,-12),mm:Zn("Minutes",2),m:Zn("Minutes",1),ss:Zn("Seconds",2),s:Zn("Seconds",1),sss:Zn("Milliseconds",3),EEEE:Xn("Day"),EEE:Xn("Day",!0),a:na,Z:Jn,ww:ta(2),w:ta(1),G:aa,GG:aa,GGG:aa,GGGG:ra},Ai=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Ei=/^\-?\d+$/;ia.$inject=["$locale"];var Ti=h(Pa),Di=h(Ra);ca.$inject=["$parse"];var Pi=h({restrict:"E",compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===Va.call(t.prop("href"))?"xlink:href":"href";t.on("click",function(e){t.attr(n)||e.preventDefault()})}}}}),Ri={};a(xr,function(e,t){function n(e,n,r){e.$watch(r[a],function(e){r.$set(t,!!e)})}if("multiple"!=e){var a=ft("ng-"+t),r=n;"checked"===e&&(r=function(e,t,r){r.ngModel!==r[a]&&n(e,t,r)}),Ri[a]=function(){return{restrict:"A",priority:100,link:r}}}}),a(Ar,function(e,t){Ri[t]=function(){return{priority:100,link:function(e,n,a){if("ngPattern"===t&&"/"==a.ngPattern.charAt(0)){var r=a.ngPattern.match(Ea);if(r)return void a.$set("ngPattern",new RegExp(r[1],r[2]))}e.$watch(a[t],function(e){a.$set(t,e)})}}}}),a(["src","srcset","href"],function(e){var t=ft("ng-"+e);Ri[t]=function(){return{priority:99,link:function(n,a,r){var i=e,s=e;"href"===e&&"[object SVGAnimatedString]"===Va.call(a.prop("href"))&&(s="xlinkHref",r.$attr[s]="xlink:href",i=null),r.$observe(t,function(t){return t?(r.$set(s,t),void(Ua&&i&&a.prop(i,r[s]))):void("href"===e&&r.$set(s,null))})}}}});var Ni={$addControl:m,$$renameControl:pa,$removeControl:m,$setValidity:m,$setDirty:m,$setPristine:m,$setSubmitted:m},Fi="ng-submitted";ua.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Ui=function(e){return["$timeout","$parse",function(t,n){function a(e){return""===e?n('this[""]').assign:n(e).assign||m}var r={name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:ua,compile:function(n,r){n.addClass(vs).addClass(_s);var i=r.name?"name":!(!e||!r.ngForm)&&"ngForm";return{pre:function(e,n,r,s){var o=s[0];if(!("action"in r)){var l=function(t){e.$apply(function(){o.$commitViewValue(),o.$setSubmitted()}),t.preventDefault()};gr(n[0],"submit",l),n.on("$destroy",function(){t(function(){hr(n[0],"submit",l)},0,!1)})}var d=s[1]||o.$$parentForm;d.$addControl(o);var p=i?a(o.$name):m;i&&(p(e,o),r.$observe(i,function(t){o.$name!==t&&(p(e,void 0),o.$$parentForm.$$renameControl(o,t),(p=a(o.$name))(e,o))})),n.on("$destroy",function(){o.$$parentForm.$removeControl(o),p(e,void 0),c(o,Ni)})}}}};return r}]},Oi=Ui(),Bi=Ui(!0),Li=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,ji=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,Hi=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,qi=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Vi=/^(\d{4,})-(\d{2})-(\d{2})$/,zi=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Wi=/^(\d{4,})-W(\d\d)$/,Gi=/^(\d{4,})-(\d\d)$/,Ki=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Yi="keydown wheel mousedown",Zi=ge();a("date,datetime-local,month,time,week".split(","),function(e){Zi[e]=!0});var Xi={text:ga,date:ya("date",Vi,_a(Vi,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":ya("datetimelocal",zi,_a(zi,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:ya("time",Ki,_a(Ki,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:ya("week",Wi,fa,"yyyy-Www"),month:ya("month",Gi,_a(Gi,["yyyy","MM"]),"yyyy-MM"),number:ba,url:wa,email:ka,radio:$a,checkbox:Sa,hidden:m,button:m,submit:m,reset:m,file:m},Ji=["$browser","$sniffer","$filter","$parse",function(e,t,n,a){return{restrict:"E",require:["?ngModel"],link:{pre:function(r,i,s,o){o[0]&&(Xi[Pa(s.type)]||Xi.text)(r,i,s,o[0],t,e,n,a)}}}}],Qi=/^(true|false|\d+)$/,es=function(){return{restrict:"A",priority:100,compile:function(e,t){return Qi.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,function(e){n.$set("value",e)})}}}},ts=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,a){e.$$addBindingInfo(n,a.ngBind),n=n[0],t.$watch(a.ngBind,function(e){n.textContent=_(e)?"":e})}}}}],ns=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,a,r){var i=e(a.attr(r.$attr.ngBindTemplate));t.$$addBindingInfo(a,i.expressions),a=a[0],r.$observe("ngBindTemplate",function(e){a.textContent=_(e)?"":e})}}}}],as=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(a,r){var i=t(r.ngBindHtml),s=t(r.ngBindHtml,function(t){return e.valueOf(t)});return n.$$addBindingClass(a),function(t,a,r){n.$$addBindingInfo(a,r.ngBindHtml),t.$watch(s,function(){var n=i(t);a.html(e.getTrustedHtml(n)||"")})}}}}],rs=h({restrict:"A",require:"ngModel",link:function(e,t,n,a){a.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}}),is=Ma("",!0),ss=Ma("Odd",0),os=Ma("Even",1),ls=da({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),cs=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],ds={},ps={blur:!0,focus:!0};a("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(e){var t=ft("ng-"+e);ds[t]=["$parse","$rootScope",function(n,a){return{restrict:"A",compile:function(r,i){var s=n(i[t],null,!0);return function(t,n){n.on(e,function(n){var r=function(){s(t,{$event:n})};ps[e]&&a.$$phase?t.$evalAsync(r):t.$apply(r)})}}}}]});var us=["$animate","$compile",function(e,t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,a,r,i,s){var o,l,c;n.$watch(r.ngIf,function(n){n?l||s(function(n,i){l=i,n[n.length++]=t.$$createComment("end ngIf",r.ngIf),o={clone:n},e.enter(n,a.parent(),a)}):(c&&(c.remove(),c=null),l&&(l.$destroy(),l=null),o&&(c=me(o.clone),e.leave(c).then(function(){c=null}),o=null))})}}}],ms=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Ga.noop,compile:function(a,r){var i=r.ngInclude||r.src,s=r.onload||"",o=r.autoscroll;return function(a,r,l,c,d){var p,u,m,g=0,h=function(){u&&(u.remove(),u=null),p&&(p.$destroy(),p=null),m&&(n.leave(m).then(function(){u=null}),u=m,m=null)};a.$watch(i,function(i){var l=function(){!y(o)||o&&!a.$eval(o)||t()},u=++g;i?(e(i,!0).then(function(e){if(!a.$$destroyed&&u===g){var t=a.$new();c.template=e;var o=d(t,function(e){h(),n.enter(e,null,r).then(l)});p=t,m=o,p.$emit("$includeContentLoaded",i),a.$eval(s)}},function(){a.$$destroyed||u===g&&(h(),a.$emit("$includeContentError",i))}),a.$emit("$includeContentRequested",i)):(h(),c.template=null)})}}}}],gs=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,a,r,i){return Va.call(a[0]).match(/SVG/)?(a.empty(),void t(Me(i.template,e.document).childNodes)(n,function(e){a.append(e)},{futureParentElement:a})):(a.html(i.template),void t(a.contents())(n))}}}],hs=da({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),fs=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,r){var i=t.attr(n.$attr.ngList)||", ",s="false"!==n.ngTrim,o=s?Xa(i):i,l=function(e){if(!_(e)){var t=[];return e&&a(e.split(o),function(e){e&&t.push(s?Xa(e):e)}),t}};r.$parsers.push(l),r.$formatters.push(function(e){if(Ya(e))return e.join(i)}),r.$isEmpty=function(e){return!e||!e.length}}}},_s="ng-valid",ys="ng-invalid",vs="ng-pristine",bs="ng-dirty",ws="ng-untouched",ks="ng-touched",$s="ng-pending",Cs="ng-empty",Ss="ng-not-empty",Ms=t("ngModel"),xs=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(e,t,n,r,i,s,o,l,c,d){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=d(n.name||"",!1)(e),this.$$parentForm=Ni;var p,u=i(n.ngModel),g=u.assign,h=u,f=g,v=null,b=this;this.$$setOptions=function(e){if(b.$options=e,e&&e.getterSetter){var t=i(n.ngModel+"()"),a=i(n.ngModel+"($$$p)");h=function(e){var n=u(e);return C(n)&&(n=t(e)),n},f=function(e,t){C(u(e))?a(e,{$$$p:t}):g(e,t)}}else if(!u.assign)throw Ms("nonassign","Expression '{0}' is non-assignable. Element: {1}",n.ngModel,Z(r))},this.$render=m,this.$isEmpty=function(e){return _(e)||""===e||null===e||e!==e},this.$$updateEmptyClasses=function(e){b.$isEmpty(e)?(s.removeClass(r,Ss),s.addClass(r,Cs)):(s.removeClass(r,Cs),s.addClass(r,Ss))};var w=0;xa({ctrl:this,$element:r,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]},$animate:s}),this.$setPristine=function(){b.$dirty=!1,b.$pristine=!0,s.removeClass(r,bs),s.addClass(r,vs)},this.$setDirty=function(){b.$dirty=!0,b.$pristine=!1,s.removeClass(r,vs),s.addClass(r,bs),b.$$parentForm.$setDirty()},this.$setUntouched=function(){b.$touched=!1,b.$untouched=!0,s.setClass(r,ws,ks)},this.$setTouched=function(){b.$touched=!0,b.$untouched=!1,s.setClass(r,ks,ws)},this.$rollbackViewValue=function(){o.cancel(v),b.$viewValue=b.$$lastCommittedViewValue,b.$render()},this.$validate=function(){if(!k(b.$modelValue)||!isNaN(b.$modelValue)){var e=b.$$lastCommittedViewValue,t=b.$$rawModelValue,n=b.$valid,a=b.$modelValue,r=b.$options&&b.$options.allowInvalid;b.$$runValidators(t,e,function(e){r||n===e||(b.$modelValue=e?t:void 0,b.$modelValue!==a&&b.$$writeModelToScope())})}},this.$$runValidators=function(e,t,n){function r(){var e=b.$$parserName||"parse";return _(p)?(o(e,null),!0):(p||(a(b.$validators,function(e,t){o(t,null)}),a(b.$asyncValidators,function(e,t){o(t,null)})),o(e,p),p)}function i(){var n=!0;return a(b.$validators,function(a,r){var i=a(e,t);n=n&&i,o(r,i)}),!!n||(a(b.$asyncValidators,function(e,t){o(t,null)}),!1)}function s(){var n=[],r=!0;a(b.$asyncValidators,function(a,i){var s=a(e,t);if(!D(s))throw Ms("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",s);o(i,void 0),n.push(s.then(function(){o(i,!0)},function(){r=!1,o(i,!1)}))}),n.length?c.all(n).then(function(){l(r)},m):l(!0)}function o(e,t){d===w&&b.$setValidity(e,t)}function l(e){d===w&&n(e)}w++;var d=w;return r()&&i()?void s():void l(!1)},this.$commitViewValue=function(){var e=b.$viewValue;o.cancel(v),(b.$$lastCommittedViewValue!==e||""===e&&b.$$hasNativeValidators)&&(b.$$updateEmptyClasses(e),b.$$lastCommittedViewValue=e,b.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function t(){b.$modelValue!==i&&b.$$writeModelToScope()}var n=b.$$lastCommittedViewValue,a=n;if(p=!_(a)||void 0)for(var r=0;r<b.$parsers.length;r++)if(a=b.$parsers[r](a),_(a)){p=!1;break}k(b.$modelValue)&&isNaN(b.$modelValue)&&(b.$modelValue=h(e));var i=b.$modelValue,s=b.$options&&b.$options.allowInvalid;b.$$rawModelValue=a,s&&(b.$modelValue=a,t()),b.$$runValidators(a,b.$$lastCommittedViewValue,function(e){s||(b.$modelValue=e?a:void 0,t())})},this.$$writeModelToScope=function(){f(e,b.$modelValue),a(b.$viewChangeListeners,function(e){try{e()}catch(n){t(n)}})},this.$setViewValue=function(e,t){b.$viewValue=e,b.$options&&!b.$options.updateOnDefault||b.$$debounceViewValueCommit(t)},this.$$debounceViewValueCommit=function(t){var n,a=0,r=b.$options;r&&y(r.debounce)&&(n=r.debounce,k(n)?a=n:k(n[t])?a=n[t]:k(n["default"])&&(a=n["default"])),o.cancel(v),a?v=o(function(){b.$commitViewValue()},a):l.$$phase?b.$commitViewValue():e.$apply(function(){b.$commitViewValue()})},e.$watch(function(){var t=h(e);if(t!==b.$modelValue&&(b.$modelValue===b.$modelValue||t===t)){b.$modelValue=b.$$rawModelValue=t,p=void 0;for(var n=b.$formatters,a=n.length,r=t;a--;)r=n[a](r);b.$viewValue!==r&&(b.$$updateEmptyClasses(r),b.$viewValue=b.$$lastCommittedViewValue=r,b.$render(),b.$$runValidators(t,r,m))}return t})}],Is=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:xs,priority:1,compile:function(t){return t.addClass(vs).addClass(ws).addClass(_s),{pre:function(e,t,n,a){var r=a[0],i=a[1]||r.$$parentForm;r.$$setOptions(a[2]&&a[2].$options),i.$addControl(r),n.$observe("name",function(e){r.$name!==e&&r.$$parentForm.$$renameControl(r,e)}),e.$on("$destroy",function(){r.$$parentForm.$removeControl(r)})},post:function(t,n,a,r){var i=r[0];i.$options&&i.$options.updateOn&&n.on(i.$options.updateOn,function(e){i.$$debounceViewValueCommit(e&&e.type)}),n.on("blur",function(){i.$touched||(e.$$phase?t.$evalAsync(i.$setTouched):t.$apply(i.$setTouched))})}}}}}],As=/(\s+|^)default(\s+|$)/,Es=function(){return{restrict:"A",controller:["$scope","$attrs",function(e,t){var n=this;this.$options=B(e.$eval(t.ngModelOptions)),y(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=Xa(this.$options.updateOn.replace(As,function(){return n.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},Ts=da({terminal:!0,priority:1e3}),Ds=t("ngOptions"),Ps=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,Rs=["$compile","$document","$parse",function(t,r,i){function s(e,t,a){function r(e,t,n,a,r){this.selectValue=e,this.viewValue=t,this.label=n,this.group=a,this.disabled=r}function s(e){var t;if(!c&&n(e))t=e;else{t=[];for(var a in e)e.hasOwnProperty(a)&&"$"!==a.charAt(0)&&t.push(a)}return t}var o=e.match(Ps);if(!o)throw Ds("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,Z(t));var l=o[5]||o[7],c=o[6],d=/ as /.test(o[0])&&o[1],p=o[9],u=i(o[2]?o[1]:l),m=d&&i(d),g=m||u,h=p&&i(p),f=p?function(e,t){return h(a,t)}:function(e){return Xe(e)},_=function(e,t){return f(e,$(e,t))},y=i(o[2]||o[1]),v=i(o[3]||""),b=i(o[4]||""),w=i(o[8]),k={},$=c?function(e,t){return k[c]=t,k[l]=e,k}:function(e){return k[l]=e,k};return{trackBy:p,getTrackByValue:_,getWatchables:i(w,function(e){var t=[];e=e||[];for(var n=s(e),r=n.length,i=0;i<r;i++){var l=e===n?i:n[i],c=e[l],d=$(c,l),p=f(c,d);if(t.push(p),o[2]||o[1]){var u=y(a,d);t.push(u)}if(o[4]){var m=b(a,d);t.push(m)}}return t}),getOptions:function(){for(var e=[],t={},n=w(a)||[],i=s(n),o=i.length,l=0;l<o;l++){var c=n===i?l:i[l],d=n[c],u=$(d,c),m=g(a,u),h=f(m,u),k=y(a,u),C=v(a,u),S=b(a,u),M=new r(h,m,k,C,S);e.push(M),t[h]=M}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[_(e)]},getViewValueFromOption:function(e){return p?Ga.copy(e.viewValue):e.viewValue}}}}}function o(e,n,i,o){function d(e,t){var n=l.cloneNode(!1);t.appendChild(n),p(e,n)}function p(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label),e.value!==t.value&&(t.value=e.selectValue)}function u(){var e=$&&g.readValue();if($)for(var t=$.items.length-1;t>=0;t--){var a=$.items[t];qe(a.group?a.element.parentNode:a.element)}$=C.getOptions();var r={};if(w&&n.prepend(m),$.items.forEach(function(e){var t;y(e.group)?(t=r[e.group],t||(t=c.cloneNode(!1),S.appendChild(t),t.label=e.group,r[e.group]=t),d(e,t)):d(e,S)}),n[0].appendChild(S),h.$render(),!h.$isEmpty(e)){var i=g.readValue(),s=C.trackBy||f;(s?L(e,i):e===i)||(h.$setViewValue(i),h.$render())}}for(var m,g=o[0],h=o[1],f=i.multiple,_=0,v=n.children(),b=v.length;_<b;_++)if(""===v[_].value){m=v.eq(_);break}var w=!!m,k=Oa(l.cloneNode(!1));k.val("?");var $,C=s(i.ngOptions,n,e),S=r[0].createDocumentFragment(),M=function(){w||n.prepend(m),n.val(""),m.prop("selected",!0),m.attr("selected",!0)},x=function(){w||m.remove()},I=function(){n.prepend(k),n.val("?"),k.prop("selected",!0),k.attr("selected",!0)},A=function(){k.remove()};f?(h.$isEmpty=function(e){return!e||0===e.length},g.writeValue=function(e){$.items.forEach(function(e){e.element.selected=!1}),e&&e.forEach(function(e){var t=$.getOptionFromViewValue(e);t&&(t.element.selected=!0)})},g.readValue=function(){var e=n.val()||[],t=[];return a(e,function(e){var n=$.selectValueMap[e];n&&!n.disabled&&t.push($.getViewValueFromOption(n))}),t},C.trackBy&&e.$watchCollection(function(){if(Ya(h.$viewValue))return h.$viewValue.map(function(e){return C.getTrackByValue(e)})},function(){h.$render()})):(g.writeValue=function(e){var t=$.getOptionFromViewValue(e);t?(n[0].value!==t.selectValue&&(A(),x(),n[0].value=t.selectValue,t.element.selected=!0),t.element.setAttribute("selected","selected")):null===e||w?(A(),M()):(x(),I())},g.readValue=function(){var e=$.selectValueMap[n.val()];return e&&!e.disabled?(x(),A(),$.getViewValueFromOption(e)):null},C.trackBy&&e.$watch(function(){return C.getTrackByValue(h.$viewValue)},function(){h.$render()})),w?(m.remove(),t(m)(e),m.removeClass("ng-scope")):m=Oa(l.cloneNode(!1)),n.empty(),u(),e.$watchCollection(C.getWatchables,u)}var l=e.document.createElement("option"),c=e.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(e,t,n,a){a[0].registerOption=m},post:o}}}],Ns=["$locale","$interpolate","$log",function(e,t,n){var r=/{}/g,i=/^when(Minus)?(.+)$/;return{link:function(s,o,l){function c(e){o.text(e||"")}var d,p=l.count,u=l.$attr.when&&o.attr(l.$attr.when),g=l.offset||0,h=s.$eval(u)||{},f={},y=t.startSymbol(),v=t.endSymbol(),b=y+p+"-"+g+v,w=Ga.noop;a(l,function(e,t){var n=i.exec(t);if(n){var a=(n[1]?"-":"")+Pa(n[2]);h[a]=o.attr(l.$attr[t])}}),a(h,function(e,n){f[n]=t(e.replace(r,b))}),s.$watch(p,function(t){var a=parseFloat(t),r=isNaN(a);if(r||a in h||(a=e.pluralCat(a-g)),a!==d&&!(r&&k(d)&&isNaN(d))){w();var i=f[a];_(i)?(null!=t&&n.debug("ngPluralize: no rule defined for '"+a+"' in "+u),w=m,c()):w=s.$watch(i,c),d=a}})}}}],Fs=["$parse","$animate","$compile",function(e,r,i){var s="$$NG_REMOVED",o=t("ngRepeat"),l=function(e,t,n,a,r,i,s){e[n]=a,r&&(e[r]=i),e.$index=t,e.$first=0===t,e.$last=t===s-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0===(1&t))},c=function(e){return e.clone[0]},d=function(e){return e.clone[e.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(t,p){var u=p.ngRepeat,m=i.$$createComment("end ngRepeat",u),g=u.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!g)throw o("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",u);var h=g[1],f=g[2],_=g[3],y=g[4];if(g=h.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!g)throw o("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",h);var v=g[3]||g[1],b=g[2];if(_&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(_)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(_)))throw o("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",_);var w,k,$,C,S={$id:Xe};return y?w=e(y):($=function(e,t){return Xe(t)},C=function(e){return e}),function(e,t,i,p,g){w&&(k=function(t,n,a){return b&&(S[b]=t),S[v]=n,S.$index=a,w(e,S)});var h=ge();e.$watchCollection(f,function(i){var p,f,y,w,S,M,x,I,A,E,T,D,P=t[0],R=ge();if(_&&(e[_]=i),n(i))A=i,I=k||$;else{I=k||C,A=[];for(var N in i)Da.call(i,N)&&"$"!==N.charAt(0)&&A.push(N)}for(w=A.length,T=new Array(w),p=0;p<w;p++)if(S=i===A?p:A[p],M=i[S],x=I(S,M,p),h[x])E=h[x],delete h[x],R[x]=E,T[p]=E;else{if(R[x])throw a(T,function(e){e&&e.scope&&(h[e.id]=e)}),o("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",u,x,M);T[p]={id:x,scope:void 0,clone:void 0},R[x]=!0}for(var F in h){if(E=h[F],D=me(E.clone),r.leave(D),D[0].parentNode)for(p=0,f=D.length;p<f;p++)D[p][s]=!0;E.scope.$destroy()}for(p=0;p<w;p++)if(S=i===A?p:A[p],M=i[S],E=T[p],E.scope){y=P;do y=y.nextSibling;while(y&&y[s]);c(E)!=y&&r.move(me(E.clone),null,P),P=d(E),l(E.scope,p,v,M,b,S,w)}else g(function(e,t){E.scope=t;var n=m.cloneNode(!1);e[e.length++]=n,r.enter(e,null,P),P=n,E.clone=e,R[E.id]=E,l(E.scope,p,v,M,b,S,w)});h=R})}}}}],Us="ng-hide",Os="ng-hide-animate",Bs=["$animate",function(e){
return{restrict:"A",multiElement:!0,link:function(t,n,a){t.$watch(a.ngShow,function(t){e[t?"removeClass":"addClass"](n,Us,{tempClasses:Os})})}}}],Ls=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,a){t.$watch(a.ngHide,function(t){e[t?"addClass":"removeClass"](n,Us,{tempClasses:Os})})}}}],js=da(function(e,t,n){e.$watch(n.ngStyle,function(e,n){n&&e!==n&&a(n,function(e,n){t.css(n,"")}),e&&t.css(e)},!0)}),Hs=["$animate","$compile",function(e,t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,i,s){var o=i.ngSwitch||i.on,l=[],c=[],d=[],p=[],u=function(e,t){return function(){e.splice(t,1)}};n.$watch(o,function(n){var r,i;for(r=0,i=d.length;r<i;++r)e.cancel(d[r]);for(d.length=0,r=0,i=p.length;r<i;++r){var o=me(c[r].clone);p[r].$destroy();var m=d[r]=e.leave(o);m.then(u(d,r))}c.length=0,p.length=0,(l=s.cases["!"+n]||s.cases["?"])&&a(l,function(n){n.transclude(function(a,r){p.push(r);var i=n.element;a[a.length++]=t.$$createComment("end ngSwitchWhen");var s={clone:a};c.push(s),e.enter(a,i.parent(),i)})})})}}}],qs=da({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,a,r){a.cases["!"+n.ngSwitchWhen]=a.cases["!"+n.ngSwitchWhen]||[],a.cases["!"+n.ngSwitchWhen].push({transclude:r,element:t})}}),Vs=da({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,a,r){a.cases["?"]=a.cases["?"]||[],a.cases["?"].push({transclude:r,element:t})}}),zs=t("ngTransclude"),Ws=da({restrict:"EAC",link:function(e,t,n,a,r){function i(e){e.length&&(t.empty(),t.append(e))}if(n.ngTransclude===n.$attr.ngTransclude&&(n.ngTransclude=""),!r)throw zs("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",Z(t));var s=n.ngTransclude||n.ngTranscludeSlot;r(i,null,s)}}),Gs=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"==n.type){var a=n.id,r=t[0].text;e.put(a,r)}}}}],Ks={$setViewValue:m,$render:m},Ys=["$element","$scope",function(t,n){var a=this,r=new Je;a.ngModelCtrl=Ks,a.unknownOption=Oa(e.document.createElement("option")),a.renderUnknownOption=function(e){var n="? "+Xe(e)+" ?";a.unknownOption.val(n),t.prepend(a.unknownOption),t.val(n)},n.$on("$destroy",function(){a.renderUnknownOption=m}),a.removeUnknownOption=function(){a.unknownOption.parent()&&a.unknownOption.remove()},a.readValue=function(){return a.removeUnknownOption(),t.val()},a.writeValue=function(e){a.hasOption(e)?(a.removeUnknownOption(),t.val(e),""===e&&a.emptyOption.prop("selected",!0)):null==e&&a.emptyOption?(a.removeUnknownOption(),t.val("")):a.renderUnknownOption(e)},a.addOption=function(e,t){if(t[0].nodeType!==lr){pe(e,'"option value"'),""===e&&(a.emptyOption=t);var n=r.get(e)||0;r.put(e,n+1),a.ngModelCtrl.$render(),Aa(t)}},a.removeOption=function(e){var t=r.get(e);t&&(1===t?(r.remove(e),""===e&&(a.emptyOption=void 0)):r.put(e,t-1))},a.hasOption=function(e){return!!r.get(e)},a.registerOption=function(e,t,n,r,i){if(r){var s;n.$observe("value",function(e){y(s)&&a.removeOption(s),s=e,a.addOption(e,t)})}else i?e.$watch(i,function(e,r){n.$set("value",e),r!==e&&a.removeOption(r),a.addOption(e,t)}):a.addOption(n.value,t);t.on("$destroy",function(){a.removeOption(n.value),a.ngModelCtrl.$render()})}}],Zs=function(){function e(e,t,n,r){var i=r[1];if(i){var s=r[0];if(s.ngModelCtrl=i,t.on("change",function(){e.$apply(function(){i.$setViewValue(s.readValue())})}),n.multiple){s.readValue=function(){var e=[];return a(t.find("option"),function(t){t.selected&&e.push(t.value)}),e},s.writeValue=function(e){var n=new Je(e);a(t.find("option"),function(e){e.selected=y(n.get(e.value))})};var o,l=NaN;e.$watch(function(){l!==i.$viewValue||L(o,i.$viewValue)||(o=fe(i.$viewValue),i.$render()),l=i.$viewValue}),i.$isEmpty=function(e){return!e||0===e.length}}}}function t(e,t,n,a){var r=a[1];if(r){var i=a[0];r.$render=function(){i.writeValue(r.$viewValue)}}}return{restrict:"E",require:["select","?ngModel"],controller:Ys,priority:1,link:{pre:e,post:t}}},Xs=["$interpolate",function(e){return{restrict:"E",priority:100,compile:function(t,n){if(y(n.value))var a=e(n.value,!0);else{var r=e(t.text(),!0);r||n.$set("value",t.text())}return function(e,t,n){var i="$selectController",s=t.parent(),o=s.data(i)||s.parent().data(i);o&&o.registerOption(e,t,n,a,r)}}}}],Js=h({restrict:"E",terminal:!1}),Qs=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,a){a&&(n.required=!0,a.$validators.required=function(e,t){return!n.required||!a.$isEmpty(t)},n.$observe("required",function(){a.$validate()}))}}},eo=function(){return{restrict:"A",require:"?ngModel",link:function(e,n,a,r){if(r){var i,s=a.ngPattern||a.pattern;a.$observe("pattern",function(e){if(w(e)&&e.length>0&&(e=new RegExp("^"+e+"$")),e&&!e.test)throw t("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",s,e,Z(n));i=e||void 0,r.$validate()}),r.$validators.pattern=function(e,t){return r.$isEmpty(t)||_(i)||i.test(t)}}}}},to=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,a){if(a){var r=-1;n.$observe("maxlength",function(e){var t=p(e);r=isNaN(t)?-1:t,a.$validate()}),a.$validators.maxlength=function(e,t){return r<0||a.$isEmpty(t)||t.length<=r}}}}},no=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,a){if(a){var r=0;n.$observe("minlength",function(e){r=p(e)||0,a.$validate()}),a.$validators.minlength=function(e,t){return a.$isEmpty(t)||t.length>=r}}}}};return e.angular.bootstrap?void(e.console&&console.log("WARNING: Tried to load angular more than once.")):(le(),ve(Ga),Ga.module("ngLocale",[],["$provide",function(e){function t(e){e+="";var t=e.indexOf(".");return t==-1?0:e.length-t-1}function n(e,n){var a=n;void 0===a&&(a=Math.min(t(e),3));var r=Math.pow(10,a),i=(e*r|0)%r;return{v:a,f:i}}var a={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,t){var r=0|e,i=n(e,t);return 1==r&&0==i.v?a.ONE:a.OTHER}})}]),void Oa(e.document).ready(function(){ae(e.document,re)}))}(window),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'),function(e,t){"use strict";function n(e,t){if(o(e)){t=t||[];for(var n=0,a=e.length;n<a;n++)t[n]=e[n]}else if(l(e)){t=t||{};for(var r in e)"$"===r.charAt(0)&&"$"===r.charAt(1)||(t[r]=e[r])}return t||e}function a(){function e(e,n){return t.extend(Object.create(e),n)}function a(e,t){var n=t.caseInsensitiveMatch,a={originalPath:e,regexp:e},r=a.keys=[];return e=e.replace(/([().])/g,"\\$1").replace(/(\/)?:(\w+)(\*\?|[\?\*])?/g,function(e,t,n,a){var i="?"===a||"*?"===a?"?":null,s="*"===a||"*?"===a?"*":null;return r.push({name:n,optional:!!i}),t=t||"",""+(i?"":t)+"(?:"+(i?t:"")+(s&&"(.+?)"||"([^/]+)")+(i||"")+")"+(i||"")}).replace(/([\/$\*])/g,"\\$1"),a.regexp=new RegExp("^"+e+"$",n?"i":""),a}var r={};this.when=function(e,i){var s=n(i);if(t.isUndefined(s.reloadOnSearch)&&(s.reloadOnSearch=!0),t.isUndefined(s.caseInsensitiveMatch)&&(s.caseInsensitiveMatch=this.caseInsensitiveMatch),r[e]=t.extend(s,e&&a(e,s)),e){var o="/"==e[e.length-1]?e.substr(0,e.length-1):e+"/";r[o]=t.extend({redirectTo:e},a(o,s))}return this},this.caseInsensitiveMatch=!1,this.otherwise=function(e){return"string"==typeof e&&(e={redirectTo:e}),this.when(null,e),this},this.$get=["$rootScope","$location","$routeParams","$q","$injector","$templateRequest","$sce",function(n,a,i,s,o,l,c){function p(e,t){var n=t.keys,a={};if(!t.regexp)return null;var r=t.regexp.exec(e);if(!r)return null;for(var i=1,s=r.length;i<s;++i){var o=n[i-1],l=r[i];o&&l&&(a[o.name]=l)}return a}function u(e){var a=w.current;y=f(),v=y&&a&&y.$$route===a.$$route&&t.equals(y.pathParams,a.pathParams)&&!y.reloadOnSearch&&!b,v||!a&&!y||n.$broadcast("$routeChangeStart",y,a).defaultPrevented&&e&&e.preventDefault()}function m(){var e=w.current,r=y;v?(e.params=r.params,t.copy(e.params,i),n.$broadcast("$routeUpdate",e)):(r||e)&&(b=!1,w.current=r,r&&r.redirectTo&&(t.isString(r.redirectTo)?a.path(_(r.redirectTo,r.params)).search(r.params).replace():a.url(r.redirectTo(r.pathParams,a.path(),a.search())).replace()),s.when(r).then(g).then(function(a){r==w.current&&(r&&(r.locals=a,t.copy(r.params,i)),n.$broadcast("$routeChangeSuccess",r,e))},function(t){r==w.current&&n.$broadcast("$routeChangeError",r,e,t)}))}function g(e){if(e){var n=t.extend({},e.resolve);t.forEach(n,function(e,a){n[a]=t.isString(e)?o.get(e):o.invoke(e,null,null,a)});var a=h(e);return t.isDefined(a)&&(n.$template=a),s.all(n)}}function h(e){var n,a;return t.isDefined(n=e.template)?t.isFunction(n)&&(n=n(e.params)):t.isDefined(a=e.templateUrl)&&(t.isFunction(a)&&(a=a(e.params)),t.isDefined(a)&&(e.loadedTemplateUrl=c.valueOf(a),n=l(a))),n}function f(){var n,i;return t.forEach(r,function(r,s){!i&&(n=p(a.path(),r))&&(i=e(r,{params:t.extend({},a.search(),n),pathParams:n}),i.$$route=r)}),i||r[null]&&e(r[null],{params:{},pathParams:{}})}function _(e,n){var a=[];return t.forEach((e||"").split(":"),function(e,t){if(0===t)a.push(e);else{var r=e.match(/(\w+)(?:[?*])?(.*)/),i=r[1];a.push(n[i]),a.push(r[2]||""),delete n[i]}}),a.join("")}var y,v,b=!1,w={routes:r,reload:function(){b=!0;var e={defaultPrevented:!1,preventDefault:function(){this.defaultPrevented=!0,b=!1}};n.$evalAsync(function(){u(e),e.defaultPrevented||m()})},updateParams:function(e){if(!this.current||!this.current.$$route)throw d("norout","Tried updating route when with no current route");e=t.extend({},this.current.params,e),a.path(_(this.current.$$route.originalPath,e)),a.search(e)}};return n.$on("$locationChangeStart",u),n.$on("$locationChangeSuccess",m),w}]}function r(){this.$get=function(){return{}}}function i(e,n,a){return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",link:function(r,i,s,o,l){function c(){m&&(a.cancel(m),m=null),p&&(p.$destroy(),p=null),u&&(m=a.leave(u),m.then(function(){m=null}),u=null)}function d(){var s=e.current&&e.current.locals,o=s&&s.$template;if(t.isDefined(o)){var d=r.$new(),m=e.current,f=l(d,function(e){a.enter(e,null,u||i).then(function(){!t.isDefined(g)||g&&!r.$eval(g)||n()}),c()});u=f,p=m.scope=d,p.$emit("$viewContentLoaded"),p.$eval(h)}else c()}var p,u,m,g=s.autoscroll,h=s.onload||"";r.$on("$routeChangeSuccess",d),d()}}}function s(e,t,n){return{restrict:"ECA",priority:-400,link:function(a,r){var i=n.current,s=i.locals;r.html(s.$template);var o=e(r.contents());if(i.controller){s.$scope=a;var l=t(i.controller,s);i.controllerAs&&(a[i.controllerAs]=l),r.data("$ngControllerController",l),r.children().data("$ngControllerController",l)}a[i.resolveAs||"$resolve"]=s,o(a)}}}var o=t.isArray,l=t.isObject,c=t.module("ngRoute",["ng"]).provider("$route",a),d=t.$$minErr("ngRoute");c.provider("$routeParams",r),c.directive("ngView",i),c.directive("ngView",s),i.$inject=["$route","$anchorScroll","$animate"],s.$inject=["$compile","$controller","$route"]}(window,window.angular),function(e,t){"use strict";function n(e,t,n){if(!e)throw he("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function a(e,t){return e||t?e?t?(H(e)&&(e=e.join(" ")),H(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function r(e){var t={};return e&&(e.to||e.from)&&(t.to=e.to,t.from=e.from),t}function i(e,t,n){var a="";return e=H(e)?e:e&&q(e)&&e.length?e.split(/\s+/):[],j(e,function(e,r){e&&e.length>0&&(a+=r>0?" ":"",a+=n?t+e:e+t)}),a}function s(e,t){var n=e.indexOf(t);t>=0&&e.splice(n,1)}function o(e){if(e instanceof L)switch(e.length){case 0:return e;case 1:if(e[0].nodeType===Y)return e;break;default:return L(l(e))}if(e.nodeType===Y)return L(e)}function l(e){if(!e[0])return e;for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType==Y)return n}}function c(e,t,n){j(t,function(t){e.addClass(t,n)})}function d(e,t,n){j(t,function(t){e.removeClass(t,n)})}function p(e){return function(t,n){n.addClass&&(c(e,t,n.addClass),n.addClass=null),n.removeClass&&(d(e,t,n.removeClass),n.removeClass=null)}}function u(e){if(e=e||{},!e.$$prepared){var t=e.domOperation||U;e.domOperation=function(){e.$$domOperationFired=!0,t(),t=U},e.$$prepared=!0}return e}function m(e,t){g(e,t),h(e,t)}function g(e,t){t.from&&(e.css(t.from),t.from=null)}function h(e,t){t.to&&(e.css(t.to),t.to=null)}function f(e,t,n){var a=t.options||{},r=n.options||{},i=(a.addClass||"")+" "+(r.addClass||""),s=(a.removeClass||"")+" "+(r.removeClass||""),o=_(e.attr("class"),i,s);r.preparationClasses&&(a.preparationClasses=C(r.preparationClasses,a.preparationClasses),delete r.preparationClasses);var l=a.domOperation!==U?a.domOperation:null;return B(a,r),l&&(a.domOperation=l),o.addClass?a.addClass=o.addClass:a.addClass=null,o.removeClass?a.removeClass=o.removeClass:a.removeClass=null,t.addClass=a.addClass,t.removeClass=a.removeClass,a}function _(e,t,n){function a(e){q(e)&&(e=e.split(" "));var t={};return j(e,function(e){e.length&&(t[e]=!0)}),t}var r=1,i=-1,s={};e=a(e),t=a(t),j(t,function(e,t){s[t]=r}),n=a(n),j(n,function(e,t){s[t]=s[t]===r?null:i});var o={addClass:"",removeClass:""};return j(s,function(t,n){var a,s;t===r?(a="addClass",s=!e[n]):t===i&&(a="removeClass",s=e[n]),s&&(o[a].length&&(o[a]+=" "),o[a]+=n)}),o}function y(e){return e instanceof t.element?e[0]:e}function v(e,t,n){var a="";t&&(a=i(t,J,!0)),n.addClass&&(a=C(a,i(n.addClass,Z))),n.removeClass&&(a=C(a,i(n.removeClass,X))),a.length&&(n.preparationClasses=a,e.addClass(a))}function b(e,t){t.preparationClasses&&(e.removeClass(t.preparationClasses),t.preparationClasses=null),t.activeClasses&&(e.removeClass(t.activeClasses),t.activeClasses=null)}function w(e,t){var n=t?"-"+t+"s":"";return $(e,[me,n]),[me,n]}function k(e,t){var n=t?"paused":"",a=N+ce;return $(e,[a,n]),[a,n]}function $(e,t){var n=t[0],a=t[1];e.style[n]=a}function C(e,t){return e?t?e+" "+t:e:t}function S(e){return[ue,e+"s"]}function M(e,t){var n=t?pe:me;return[n,e+"s"]}function x(e,t,n){var a=Object.create(null),r=e.getComputedStyle(t)||{};return j(n,function(e,t){var n=r[e];if(n){var i=n.charAt(0);("-"===i||"+"===i||i>=0)&&(n=I(n)),0===n&&(n=null),a[t]=n}}),a}function I(e){var t=0,n=e.split(/\s*,\s*/);return j(n,function(e){"s"==e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),e=parseFloat(e)||0,t=t?Math.max(e,t):e}),t}function A(e){return 0===e||null!=e}function E(e,t){var n=P,a=e+"s";return t?n+=re:a+=" linear all",[n,a]}function T(){var e=Object.create(null);return{flush:function(){e=Object.create(null)},count:function(t){var n=e[t];return n?n.total:0},get:function(t){var n=e[t];return n&&n.value},put:function(t,n){e[t]?e[t].total++:e[t]={total:1,value:n}}}}function D(e,t,n){j(n,function(n){e[n]=W(e[n])?e[n]:t.style.getPropertyValue(n)})}var P,R,N,F,U=t.noop,O=t.copy,B=t.extend,L=t.element,j=t.forEach,H=t.isArray,q=t.isString,V=t.isObject,z=t.isUndefined,W=t.isDefined,G=t.isFunction,K=t.isElement,Y=1,Z="-add",X="-remove",J="ng-",Q="-active",ee="-prepare",te="ng-animate",ne="$$ngAnimateChildren",ae="";z(e.ontransitionend)&&W(e.onwebkittransitionend)?(ae="-webkit-",P="WebkitTransition",R="webkitTransitionEnd transitionend"):(P="transition",R="transitionend"),z(e.onanimationend)&&W(e.onwebkitanimationend)?(ae="-webkit-",N="WebkitAnimation",F="webkitAnimationEnd animationend"):(N="animation",F="animationend");var re="Duration",ie="Property",se="Delay",oe="TimingFunction",le="IterationCount",ce="PlayState",de=9999,pe=N+se,ue=N+re,me=P+se,ge=P+re,he=t.$$minErr("ng"),fe=["$$rAF",function(e){function t(e){a=a.concat(e),n()}function n(){if(a.length){for(var t=a.shift(),i=0;i<t.length;i++)t[i]();r||e(function(){r||n()})}}var a,r;return a=t.queue=[],t.waitUntilQuiet=function(t){r&&r(),r=e(function(){r=null,t(),n()})},t}],_e=["$interpolate",function(e){return{link:function(n,a,r){function i(e){e="on"===e||"true"===e,a.data(ne,e)}var s=r.ngAnimateChildren;t.isString(s)&&0===s.length?a.data(ne,!0):(i(e(s)(n)),r.$observe("ngAnimateChildren",i))}}}],ye="$$animateCss",ve=1e3,be=3,we=1.5,ke={transitionDuration:ge,transitionDelay:me,transitionProperty:P+ie,animationDuration:ue,animationDelay:pe,animationIterationCount:N+le},$e={transitionDuration:ge,transitionDelay:me,animationDuration:ue,animationDelay:pe},Ce=["$animateProvider",function(e){var t=T(),n=T();this.$get=["$window","$$jqLite","$$AnimateRunner","$timeout","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(e,a,o,l,c,d,f,_){function v(e,t){var n="$$ngAnimateParentKey",a=e.parentNode,r=a[n]||(a[n]=++L);return r+"-"+e.getAttribute("class")+"-"+t}function b(n,a,r,i){var s=t.get(r);return s||(s=x(e,n,i),"infinite"===s.animationIterationCount&&(s.animationIterationCount=1)),t.put(r,s),s}function C(r,s,o,l){var c;if(t.count(o)>0&&(c=n.get(o),!c)){var d=i(s,"-stagger");a.addClass(r,d),c=x(e,r,l),c.animationDuration=Math.max(c.animationDuration,0),c.transitionDuration=Math.max(c.transitionDuration,0),a.removeClass(r,d),n.put(o,c)}return c||{}}function I(e){q.push(e),f.waitUntilQuiet(function(){t.flush(),n.flush();for(var e=c(),a=0;a<q.length;a++)q[a](e);q.length=0})}function T(e,t,n){var a=b(e,t,n,ke),r=a.animationDelay,i=a.transitionDelay;return a.maxDelay=r&&i?Math.max(r,i):r||i,a.maxDuration=Math.max(a.animationDuration*a.animationIterationCount,a.transitionDuration),a}var B=p(a),L=0,q=[];return function(e,n){function c(){f()}function p(){f(!0)}function f(t){if(!(G||Y&&K)){G=!0,K=!1,V.$$skipPreparationClasses||a.removeClass(e,ke),a.removeClass(e,Se),k(W,!1),w(W,!1),j(ce,function(e){W.style[e[0]]=""}),B(e,V),m(e,V),Object.keys(z).length&&j(z,function(e,t){e?W.style.setProperty(t,e):W.style.removeProperty(t)}),V.onDone&&V.onDone(),me&&me.length&&e.off(me.join(" "),L);var n=e.data(ye);n&&(l.cancel(n[0].timer),e.removeData(ye)),ee&&ee.complete(!t)}}function b(e){Be.blockTransition&&w(W,e),Be.blockKeyframeAnimation&&k(W,!!e)}function x(){return ee=new o({end:c,cancel:p}),I(U),f(),{$$willAnimate:!1,start:function(){return ee},end:c}}function L(e){e.stopPropagation();var t=e.originalEvent||e,n=t.$manualTimeStamp||Date.now(),a=parseFloat(t.elapsedTime.toFixed(be));Math.max(n-le,0)>=ae&&a>=re&&(Y=!0,f())}function q(){function t(){if(!G){if(b(!1),j(ce,function(e){var t=e[0],n=e[1];W.style[t]=n}),B(e,V),a.addClass(e,Se),Be.recalculateTimingStyles){if(Ce=W.className+" "+ke,Ie=v(W,Ce),Ue=T(W,Ce,Ie),Oe=Ue.maxDelay,ne=Math.max(Oe,0),re=Ue.maxDuration,0===re)return void f();Be.hasTransitions=Ue.transitionDuration>0,Be.hasAnimations=Ue.animationDuration>0}if(Be.applyAnimationDelay&&(Oe="boolean"!=typeof V.delay&&A(V.delay)?parseFloat(V.delay):Oe,ne=Math.max(Oe,0),Ue.animationDelay=Oe,Le=M(Oe,!0),ce.push(Le),W.style[Le[0]]=Le[1]),ae=ne*ve,se=re*ve,V.easing){var t,r=V.easing;Be.hasTransitions&&(t=P+oe,ce.push([t,r]),W.style[t]=r),Be.hasAnimations&&(t=N+oe,ce.push([t,r]),W.style[t]=r)}Ue.transitionDuration&&me.push(R),Ue.animationDuration&&me.push(F),le=Date.now();var i=ae+we*se,s=le+i,o=e.data(ye)||[],c=!0;if(o.length){var d=o[0];c=s>d.expectedEndTime,c?l.cancel(d.timer):o.push(f)}if(c){var p=l(n,i,!1);o[0]={timer:p,expectedEndTime:s},o.push(f),e.data(ye,o)}me.length&&e.on(me.join(" "),L),V.to&&(V.cleanupStyles&&D(z,W,Object.keys(V.to)),h(e,V))}}function n(){var t=e.data(ye);if(t){for(var n=1;n<t.length;n++)t[n]();e.removeData(ye)}}if(!G){if(!W.parentNode)return void f();var r=function(e){if(Y)K&&e&&(K=!1,f());else if(K=!e,Ue.animationDuration){var t=k(W,K);K?ce.push(t):s(ce,t)}},i=Ne>0&&(Ue.transitionDuration&&0===Ae.transitionDuration||Ue.animationDuration&&0===Ae.animationDuration)&&Math.max(Ae.animationDelay,Ae.transitionDelay);i?l(t,Math.floor(i*Ne*ve),!1):t(),te.resume=function(){r(!0)},te.pause=function(){r(!1)}}}var V=n||{};V.$$prepared||(V=u(O(V)));var z={},W=y(e);if(!W||!W.parentNode||!_.enabled())return x();var G,K,Y,ee,te,ne,ae,re,se,le,ce=[],pe=e.attr("class"),ue=r(V),me=[];if(0===V.duration||!d.animations&&!d.transitions)return x();var ge=V.event&&H(V.event)?V.event.join(" "):V.event,he=ge&&V.structural,fe="",_e="";he?fe=i(ge,J,!0):ge&&(fe=ge),V.addClass&&(_e+=i(V.addClass,Z)),V.removeClass&&(_e.length&&(_e+=" "),_e+=i(V.removeClass,X)),V.applyClassesEarly&&_e.length&&B(e,V);var ke=[fe,_e].join(" ").trim(),Ce=pe+" "+ke,Se=i(ke,Q),Me=ue.to&&Object.keys(ue.to).length>0,xe=(V.keyframeStyle||"").length>0;if(!xe&&!Me&&!ke)return x();var Ie,Ae;if(V.stagger>0){var Ee=parseFloat(V.stagger);Ae={transitionDelay:Ee,animationDelay:Ee,transitionDuration:0,animationDuration:0}}else Ie=v(W,Ce),Ae=C(W,ke,Ie,$e);V.$$skipPreparationClasses||a.addClass(e,ke);var Te;if(V.transitionStyle){var De=[P,V.transitionStyle];$(W,De),ce.push(De)}if(V.duration>=0){Te=W.style[P].length>0;var Pe=E(V.duration,Te);$(W,Pe),ce.push(Pe)}if(V.keyframeStyle){var Re=[N,V.keyframeStyle];$(W,Re),ce.push(Re)}var Ne=Ae?V.staggerIndex>=0?V.staggerIndex:t.count(Ie):0,Fe=0===Ne;Fe&&!V.skipBlocking&&w(W,de);var Ue=T(W,Ce,Ie),Oe=Ue.maxDelay;ne=Math.max(Oe,0),re=Ue.maxDuration;var Be={};if(Be.hasTransitions=Ue.transitionDuration>0,Be.hasAnimations=Ue.animationDuration>0,Be.hasTransitionAll=Be.hasTransitions&&"all"==Ue.transitionProperty,Be.applyTransitionDuration=Me&&(Be.hasTransitions&&!Be.hasTransitionAll||Be.hasAnimations&&!Be.hasTransitions),Be.applyAnimationDuration=V.duration&&Be.hasAnimations,Be.applyTransitionDelay=A(V.delay)&&(Be.applyTransitionDuration||Be.hasTransitions),Be.applyAnimationDelay=A(V.delay)&&Be.hasAnimations,Be.recalculateTimingStyles=_e.length>0,(Be.applyTransitionDuration||Be.applyAnimationDuration)&&(re=V.duration?parseFloat(V.duration):re,Be.applyTransitionDuration&&(Be.hasTransitions=!0,Ue.transitionDuration=re,Te=W.style[P+ie].length>0,ce.push(E(re,Te))),Be.applyAnimationDuration&&(Be.hasAnimations=!0,Ue.animationDuration=re,ce.push(S(re)))),0===re&&!Be.recalculateTimingStyles)return x();if(null!=V.delay){var Le;"boolean"!=typeof V.delay&&(Le=parseFloat(V.delay),ne=Math.max(Le,0)),Be.applyTransitionDelay&&ce.push(M(Le)),Be.applyAnimationDelay&&ce.push(M(Le,!0))}return null==V.duration&&Ue.transitionDuration>0&&(Be.recalculateTimingStyles=Be.recalculateTimingStyles||Fe),ae=ne*ve,se=re*ve,V.skipBlocking||(Be.blockTransition=Ue.transitionDuration>0,Be.blockKeyframeAnimation=Ue.animationDuration>0&&Ae.animationDelay>0&&0===Ae.animationDuration),V.from&&(V.cleanupStyles&&D(z,W,Object.keys(V.from)),g(e,V)),Be.blockTransition||Be.blockKeyframeAnimation?b(re):V.skipBlocking||w(W,!1),{$$willAnimate:!0,end:c,start:function(){if(!G)return te={end:c,cancel:p,resume:null,pause:null},ee=new o(te),I(q),ee}}}}]}],Se=["$$animationProvider",function(e){function t(e){return e.parentNode&&11===e.parentNode.nodeType}e.drivers.push("$$animateCssDriver");var n="ng-animate-shim",a="ng-anchor",r="ng-anchor-out",i="ng-anchor-in";this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(e,s,o,l,c,d,u){function m(e){return e.replace(/\bng-\S+\b/g,"")}function g(e,t){return q(e)&&(e=e.split(" ")),q(t)&&(t=t.split(" ")),e.filter(function(e){return t.indexOf(e)===-1}).join(" ")}function h(t,s,l){function c(e){var t={},n=y(e).getBoundingClientRect();return j(["width","height","top","left"],function(e){var a=n[e];switch(e){case"top":a+=v.scrollTop;break;case"left":a+=v.scrollLeft}t[e]=Math.floor(a)+"px"}),t}function d(){var t=e(f,{addClass:r,delay:!0,from:c(s)});return t.$$willAnimate?t:null}function p(e){return e.attr("class")||""}function u(){var t=m(p(l)),n=g(t,_),a=g(_,t),s=e(f,{to:c(l),addClass:i+" "+n,removeClass:r+" "+a,delay:!0});return s.$$willAnimate?s:null}function h(){f.remove(),s.removeClass(n),l.removeClass(n)}var f=L(y(s).cloneNode(!0)),_=m(p(f));s.addClass(n),l.addClass(n),f.addClass(a),w.append(f);var b,k=d();if(!k&&(b=u(),!b))return h();var $=k||b;return{start:function(){function e(){n&&n.end()}var t,n=$.start();return n.done(function(){return n=null,!b&&(b=u())?(n=b.start(),n.done(function(){n=null,h(),t.complete()}),n):(h(),void t.complete())}),t=new o({end:e,cancel:e})}}}function f(e,t,n,a){var r=_(e,U),i=_(t,U),s=[];if(j(a,function(e){var t=e.out,a=e["in"],r=h(n,t,a);r&&s.push(r)}),r||i||0!==s.length)return{start:function(){function e(){j(t,function(e){e.end()})}var t=[];r&&t.push(r.start()),i&&t.push(i.start()),j(s,function(e){t.push(e.start())});var n=new o({end:e,cancel:e});return o.all(t,function(e){n.complete(e)}),n}}}function _(t){var n=t.element,a=t.options||{};t.structural&&(a.event=t.event,a.structural=!0,a.applyClassesEarly=!0,"leave"===t.event&&(a.onDone=a.domOperation)),a.preparationClasses&&(a.event=C(a.event,a.preparationClasses));var r=e(n,a);return r.$$willAnimate?r:null}if(!c.animations&&!c.transitions)return U;var v=u[0].body,b=y(l),w=L(t(b)||v.contains(b)?b:v);p(d);return function(e){return e.from&&e.to?f(e.from,e.to,e.classes,e.anchors):_(e)}}]}],Me=["$animateProvider",function(e){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(t,n,a){function r(n){n=H(n)?n:n.split(" ");for(var a=[],r={},i=0;i<n.length;i++){var s=n[i],o=e.$$registeredAnimations[s];o&&!r[s]&&(a.push(t.get(o)),r[s]=!0)}return a}var i=p(a);return function(e,t,a,s){function o(){s.domOperation(),i(e,s)}function l(){g=!0,o(),m(e,s)}function c(e,t,a,r,i){var s;switch(a){case"animate":s=[t,r.from,r.to,i];break;case"setClass":s=[t,_,y,i];break;case"addClass":s=[t,_,i];break;case"removeClass":s=[t,y,i];break;default:s=[t,i]}s.push(r);var o=e.apply(e,s);if(o)if(G(o.start)&&(o=o.start()),o instanceof n)o.done(i);else if(G(o))return o;return U}function d(e,t,a,r,i){var s=[];return j(r,function(r){var o=r[i];o&&s.push(function(){var r,i,s=!1,l=function(e){s||(s=!0,(i||U)(e),r.complete(!e))};return r=new n({end:function(){l()},cancel:function(){l(!0)}}),i=c(o,e,t,a,function(e){var t=e===!1;l(t)}),r})}),s}function p(e,t,a,r,i){var s=d(e,t,a,r,i);if(0===s.length){var o,l;"beforeSetClass"===i?(o=d(e,"removeClass",a,r,"beforeRemoveClass"),l=d(e,"addClass",a,r,"beforeAddClass")):"setClass"===i&&(o=d(e,"removeClass",a,r,"removeClass"),l=d(e,"addClass",a,r,"addClass")),o&&(s=s.concat(o)),l&&(s=s.concat(l))}if(0!==s.length)return function(e){var t=[];return s.length&&j(s,function(e){t.push(e())}),t.length?n.all(t,e):e(),function(e){j(t,function(t){e?t.cancel():t.end()})}}}var g=!1;3===arguments.length&&V(a)&&(s=a,a=null),s=u(s),a||(a=e.attr("class")||"",s.addClass&&(a+=" "+s.addClass),s.removeClass&&(a+=" "+s.removeClass));var h,f,_=s.addClass,y=s.removeClass,v=r(a);if(v.length){var b,w;"leave"==t?(w="leave",b="afterLeave"):(w="before"+t.charAt(0).toUpperCase()+t.substr(1),b=t),"enter"!==t&&"move"!==t&&(h=p(e,t,s,v,w)),f=p(e,t,s,v,b)}if(h||f){var k;return{$$willAnimate:!0,end:function(){return k?k.end():(l(),k=new n,k.complete(!0)),k},start:function(){function e(e){l(e),k.complete(e)}function t(t){g||((a||U)(t),e(t))}if(k)return k;k=new n;var a,r=[];return h&&r.push(function(e){a=h(e)}),r.length?r.push(function(e){o(),e(!0)}):o(),f&&r.push(function(e){a=f(e)}),k.setHost({end:function(){t()},cancel:function(){t(!0)}}),n.chain(r,e),k}}}}}]}],xe=["$$animationProvider",function(e){e.drivers.push("$$animateJsDriver"),this.$get=["$$animateJs","$$AnimateRunner",function(e,t){function n(t){var n=t.element,a=t.event,r=t.options,i=t.classes;return e(n,a,i,r)}return function(e){if(e.from&&e.to){var a=n(e.from),r=n(e.to);if(!a&&!r)return;return{start:function(){function e(){return function(){j(i,function(e){e.end()})}}function n(e){s.complete(e)}var i=[];a&&i.push(a.start()),r&&i.push(r.start()),t.all(i,n);var s=new t({end:e(),cancel:e()});return s}}}return n(e)}}]}],Ie="data-ng-animate",Ae="$ngAnimatePin",Ee=["$animateProvider",function(a){function r(e){if(!e)return null;var t=e.split(h),n=Object.create(null);return j(t,function(e){n[e]=!0}),n}function i(e,t){if(e&&t){var n=r(t);return e.split(h).some(function(e){return n[e]})}}function s(e,t,n,a){return _[e].some(function(e){return e(t,n,a)})}function c(e,t){var n=(e.addClass||"").length>0,a=(e.removeClass||"").length>0;return t?n&&a:n||a}var d=1,g=2,h=" ",_=this.rules={skip:[],cancel:[],join:[]};_.join.push(function(e,t,n){return!t.structural&&c(t)}),_.skip.push(function(e,t,n){return!t.structural&&!c(t)}),_.skip.push(function(e,t,n){return"leave"==n.event&&t.structural}),_.skip.push(function(e,t,n){return n.structural&&n.state===g&&!t.structural}),_.cancel.push(function(e,t,n){return n.structural&&t.structural}),_.cancel.push(function(e,t,n){return n.state===g&&t.structural}),_.cancel.push(function(e,t,n){if(n.structural)return!1;var a=t.addClass,r=t.removeClass,s=n.addClass,o=n.removeClass;return!(z(a)&&z(r)||z(s)&&z(o))&&(i(a,o)||i(r,s))}),this.$get=["$$rAF","$rootScope","$rootElement","$document","$$HashMap","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow",function(r,i,h,_,w,k,$,C,S,M){function x(){var e=!1;return function(t){e?t():i.$$postDigest(function(){e=!0,t()})}}function I(e,t){return f(e,t,{})}function A(e,t,n){var a=y(t),r=y(e),i=[],s=Q[n];return s&&j(s,function(e){re.call(e.node,a)?i.push(e.callback):"leave"===n&&re.call(e.node,r)&&i.push(e.callback)}),i}function E(e,t,n){var a=l(t);return e.filter(function(e){var t=e.node===a&&(!n||e.callback===n);return!t})}function T(e,t){"close"!==e||t[0].parentNode||ie.off(t)}function D(e,t,n){function a(t,n,a,i){S(function(){var t=A(h,e,n);t.length?r(function(){j(t,function(t){t(e,a,i)}),T(a,e)}):T(a,e)}),t.progress(n,a,i)}function l(t){b(e,w),ae(e,w),m(e,w),w.domOperation(),C.complete(!t)}var p,h,w=O(n);e=o(e),e&&(p=y(e),h=e.parent()),w=u(w);var C=new $,S=x();if(H(w.addClass)&&(w.addClass=w.addClass.join(" ")),w.addClass&&!q(w.addClass)&&(w.addClass=null),H(w.removeClass)&&(w.removeClass=w.removeClass.join(" ")),w.removeClass&&!q(w.removeClass)&&(w.removeClass=null),w.from&&!V(w.from)&&(w.from=null),w.to&&!V(w.to)&&(w.to=null),!p)return l(),C;var M=[p.className,w.addClass,w.removeClass].join(" ");if(!te(M))return l(),C;var E=["enter","move","leave"].indexOf(t)>=0,D=_[0].hidden,N=!X||D||Z.get(p),B=!N&&G.get(p)||{},L=!!B.state;if(N||L&&B.state==d||(N=!F(e,h,t)),N)return D&&a(C,t,"start"),l(),D&&a(C,t,"close"),C;E&&P(e);var z={structural:E,element:e,event:t,addClass:w.addClass,removeClass:w.removeClass,close:l,options:w,runner:C};if(L){var W=s("skip",e,z,B);if(W)return B.state===g?(l(),C):(f(e,B,z),B.runner);var K=s("cancel",e,z,B);if(K)if(B.state===g)B.runner.end();else{if(!B.structural)return f(e,B,z),B.runner;B.close()}else{var Y=s("join",e,z,B);if(Y){if(B.state!==g)return v(e,E?t:null,w),t=z.event=B.event,w=f(e,B,z),B.runner;I(e,z)}}}else I(e,z);var J=z.structural;if(J||(J="animate"===z.event&&Object.keys(z.options.to||{}).length>0||c(z)),!J)return l(),R(e),C;var Q=(B.counter||0)+1;return z.counter=Q,U(e,d,z),i.$$postDigest(function(){var n=G.get(p),r=!n;n=n||{};var i=e.parent()||[],s=i.length>0&&("animate"===n.event||n.structural||c(n));if(r||n.counter!==Q||!s)return r&&(ae(e,w),m(e,w)),(r||E&&n.event!==t)&&(w.domOperation(),
C.end()),void(s||R(e));t=!n.structural&&c(n,!0)?"setClass":n.event,U(e,g);var o=k(e,t,n.options);C.setHost(o),a(C,t,"start",{}),o.done(function(n){l(!n);var r=G.get(p);r&&r.counter===Q&&R(y(e)),a(C,t,"close",{})})}),C}function P(e){var t=y(e),n=t.querySelectorAll("["+Ie+"]");j(n,function(e){var t=parseInt(e.getAttribute(Ie)),n=G.get(e);if(n)switch(t){case g:n.runner.end();case d:G.remove(e)}})}function R(e){var t=y(e);t.removeAttribute(Ie),G.remove(t)}function N(e,t){return y(e)===y(t)}function F(e,t,n){var a,r=L(_[0].body),i=N(e,r)||"HTML"===e[0].nodeName,s=N(e,h),o=!1,l=Z.get(y(e)),c=L.data(e[0],Ae);for(c&&(t=c),t=y(t);t&&(s||(s=N(t,h)),t.nodeType===Y);){var d=G.get(t)||{};if(!o){var p=Z.get(t);if(p===!0&&l!==!1){l=!0;break}p===!1&&(l=!1),o=d.structural}if(z(a)||a===!0){var u=L.data(t,ne);W(u)&&(a=u)}if(o&&a===!1)break;if(i||(i=N(t,r)),i&&s)break;t=s||!(c=L.data(t,Ae))?t.parentNode:y(c)}var m=(!o||a)&&l!==!0;return m&&s&&i}function U(e,t,n){n=n||{},n.state=t;var a=y(e);a.setAttribute(Ie,t);var r=G.get(a),i=r?B(r,n):n;G.put(a,i)}var G=new w,Z=new w,X=null,J=i.$watch(function(){return 0===C.totalPendingRequests},function(e){e&&(J(),i.$$postDigest(function(){i.$$postDigest(function(){null===X&&(X=!0)})}))}),Q={},ee=a.classNameFilter(),te=ee?function(e){return ee.test(e)}:function(){return!0},ae=p(S),re=e.Node.prototype.contains||function(e){return this===e||!!(16&this.compareDocumentPosition(e))},ie={on:function(e,t,n){var a=l(t);Q[e]=Q[e]||[],Q[e].push({node:a,callback:n}),L(t).on("$destroy",function(){var r=G.get(a);r||ie.off(e,t,n)})},off:function(e,n,a){if(1!==arguments.length||t.isString(arguments[0])){var r=Q[e];r&&(Q[e]=1===arguments.length?null:E(r,n,a))}else{n=arguments[0];for(var i in Q)Q[i]=E(Q[i],n)}},pin:function(e,t){n(K(e),"element","not an element"),n(K(t),"parentElement","not an element"),e.data(Ae,t)},push:function(e,t,n,a){return n=n||{},n.domOperation=a,D(e,t,n)},enabled:function(e,t){var n=arguments.length;if(0===n)t=!!X;else{var a=K(e);if(a){var r=y(e),i=Z.get(r);1===n?t=!i:Z.put(r,!t)}else t=X=!!e}return t}};return ie}]}],Te=["$animateProvider",function(e){function t(e,t){e.data(o,t)}function n(e){e.removeData(o)}function r(e){return e.data(o)}var i="ng-animate-ref",s=this.drivers=[],o="$$animationRunner";this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$HashMap","$$rAFScheduler",function(e,o,l,c,d,g){function h(e){function t(e){if(e.processed)return e;e.processed=!0;var n=e.domNode,a=n.parentNode;i.put(n,e);for(var s;a;){if(s=i.get(a)){s.processed||(s=t(s));break}a=a.parentNode}return(s||r).children.push(e),e}function n(e){var t,n=[],a=[];for(t=0;t<e.children.length;t++)a.push(e.children[t]);var r=a.length,i=0,s=[];for(t=0;t<a.length;t++){var o=a[t];r<=0&&(r=i,i=0,n.push(s),s=[]),s.push(o.fn),o.children.forEach(function(e){i++,a.push(e)}),r--}return s.length&&n.push(s),n}var a,r={children:[]},i=new d;for(a=0;a<e.length;a++){var s=e[a];i.put(s.domNode,e[a]={domNode:s.domNode,fn:s.fn,children:[]})}for(a=0;a<e.length;a++)t(e[a]);return n(r)}var f=[],_=p(e);return function(d,p,v){function b(e){var t="["+i+"]",n=e.hasAttribute(i)?[e]:e.querySelectorAll(t),a=[];return j(n,function(e){var t=e.getAttribute(i);t&&t.length&&a.push(e)}),a}function w(e){var t=[],n={};j(e,function(e,a){var r=e.element,s=y(r),o=e.event,l=["enter","move"].indexOf(o)>=0,c=e.structural?b(s):[];if(c.length){var d=l?"to":"from";j(c,function(e){var t=e.getAttribute(i);n[t]=n[t]||{},n[t][d]={animationID:a,element:L(e)}})}else t.push(e)});var a={},r={};return j(n,function(n,i){var s=n.from,o=n.to;if(!s||!o){var l=s?s.animationID:o.animationID,c=l.toString();return void(a[c]||(a[c]=!0,t.push(e[l])))}var d=e[s.animationID],p=e[o.animationID],u=s.animationID.toString();if(!r[u]){var m=r[u]={structural:!0,beforeStart:function(){d.beforeStart(),p.beforeStart()},close:function(){d.close(),p.close()},classes:k(d.classes,p.classes),from:d,to:p,anchors:[]};m.classes.length?t.push(m):(t.push(d),t.push(p))}r[u].anchors.push({out:s.element,"in":o.element})}),t}function k(e,t){e=e.split(" "),t=t.split(" ");for(var n=[],a=0;a<e.length;a++){var r=e[a];if("ng-"!==r.substring(0,3))for(var i=0;i<t.length;i++)if(r===t[i]){n.push(r);break}}return n.join(" ")}function $(e){for(var t=s.length-1;t>=0;t--){var n=s[t],a=l.get(n),r=a(e);if(r)return r}}function C(){d.addClass(te),T&&e.addClass(d,T),D&&(e.removeClass(d,D),D=null)}function S(e,t){function n(e){var n=r(e);n&&n.setHost(t)}e.from&&e.to?(n(e.from.element),n(e.to.element)):n(e.element)}function M(){var e=r(d);!e||"leave"===p&&v.$$domOperationFired||e.end()}function x(t){d.off("$destroy",M),n(d),_(d,v),m(d,v),v.domOperation(),T&&e.removeClass(d,T),d.removeClass(te),A.complete(!t)}v=u(v);var I=["enter","move","leave"].indexOf(p)>=0,A=new c({end:function(){x()},cancel:function(){x(!0)}});if(!s.length)return x(),A;t(d,A);var E=a(d.attr("class"),a(v.addClass,v.removeClass)),T=v.tempClasses;T&&(E+=" "+T,v.tempClasses=null);var D;return I&&(D="ng-"+p+ee,e.addClass(d,D)),f.push({element:d,classes:E,event:p,structural:I,options:v,beforeStart:C,close:x}),d.on("$destroy",M),f.length>1?A:(o.$$postDigest(function(){var e=[];j(f,function(t){r(t.element)?e.push(t):t.close()}),f.length=0;var t=w(e),n=[];j(t,function(e){n.push({domNode:y(e.from?e.from.element:e.element),fn:function(){e.beforeStart();var t,n=e.close,a=e.anchors?e.from.element||e.to.element:e.element;if(r(a)){var i=$(e);i&&(t=i.start)}if(t){var s=t();s.done(function(e){n(!e)}),S(e,s)}else n()}})}),g(h(n))}),A)}}]}],De=["$animate","$rootScope",function(e,t){return{restrict:"A",transclude:"element",terminal:!0,priority:600,link:function(t,n,a,r,i){var s,o;t.$watchCollection(a.ngAnimateSwap||a["for"],function(a){s&&e.leave(s),o&&(o.$destroy(),o=null),(a||0===a)&&(o=t.$new(),i(o,function(t){s=t,e.enter(t,null,n)}))})}}}];t.module("ngAnimate",[]).directive("ngAnimateSwap",De).directive("ngAnimateChildren",_e).factory("$$rAFScheduler",fe).provider("$$animateQueue",Ee).provider("$$animation",Te).provider("$animateCss",Ce).provider("$$animateCssDriver",Se).provider("$$animateJs",Me).provider("$$animateJsDriver",xe)}(window,window.angular),function(e,t){"use strict";function n(){var e=!1;this.$get=["$$sanitizeUri",function(n){return e&&t.extend(k,b),function(e){var t=[];return i(e,l(t,function(e,t){return!/^unsafe:/.test(n(e,t))})),t.join("")}}],this.enableSvg=function(n){return t.isDefined(n)?(e=n,this):e}}function a(e){var n=[],a=l(n,t.noop);return a.chars(e),n.join("")}function r(e,n){var a,r={},i=e.split(",");for(a=0;a<i.length;a++)r[n?t.lowercase(i[a]):i[a]]=!0;return r}function i(t,n){null===t||void 0===t?t="":"string"!=typeof t&&(t=""+t),d.innerHTML=t;var a=5;do{if(0===a)throw p("uinput","Failed to sanitize html because the input is unstable");a--,e.document.documentMode&&c(d),t=d.innerHTML,d.innerHTML=t}while(t!==d.innerHTML);for(var r=d.firstChild;r;){switch(r.nodeType){case 1:n.start(r.nodeName.toLowerCase(),s(r.attributes));break;case 3:n.chars(r.textContent)}var i;if(!(i=r.firstChild)&&(1==r.nodeType&&n.end(r.nodeName.toLowerCase()),i=r.nextSibling,!i))for(;null==i&&(r=r.parentNode,r!==d);)i=r.nextSibling,1==r.nodeType&&n.end(r.nodeName.toLowerCase());r=i}for(;r=d.firstChild;)d.removeChild(r)}function s(e){for(var t={},n=0,a=e.length;n<a;n++){var r=e[n];t[r.name]=r.value}return t}function o(e){return e.replace(/&/g,"&amp;").replace(u,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(m,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function l(e,n){var a=!1,r=t.bind(e,e.push);return{start:function(e,i){e=t.lowercase(e),!a&&w[e]&&(a=e),a||k[e]!==!0||(r("<"),r(e),t.forEach(i,function(a,i){var s=t.lowercase(i),l="img"===e&&"src"===s||"background"===s;M[s]!==!0||$[s]===!0&&!n(a,l)||(r(" "),r(i),r('="'),r(o(a)),r('"'))}),r(">"))},end:function(e){e=t.lowercase(e),a||k[e]!==!0||g[e]===!0||(r("</"),r(e),r(">")),e==a&&(a=!1)},chars:function(e){a||r(o(e))}}}function c(t){if(t.nodeType===e.Node.ELEMENT_NODE)for(var n=t.attributes,a=0,r=n.length;a<r;a++){var i=n[a],s=i.name.toLowerCase();"xmlns:ns1"!==s&&0!==s.lastIndexOf("ns1:",0)||(t.removeAttributeNode(i),a--,r--)}var o=t.firstChild;o&&c(o),o=t.nextSibling,o&&c(o)}var d,p=t.$$minErr("$sanitize"),u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,m=/([^\#-~ |!])/g,g=r("area,br,col,hr,img,wbr"),h=r("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),f=r("rp,rt"),_=t.extend({},f,h),y=t.extend({},h,r("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")),v=t.extend({},f,r("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),b=r("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"),w=r("script,style"),k=t.extend({},g,y,v,_),$=r("background,cite,href,longdesc,src,xlink:href"),C=r("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"),S=r("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan",!0),M=t.extend({},$,S,C);!function(e){var t;if(!e.document||!e.document.implementation)throw p("noinert","Can't create an inert html document");t=e.document.implementation.createHTMLDocument("inert");var n=t.documentElement||t.getDocumentElement(),a=n.getElementsByTagName("body");if(1===a.length)d=a[0];else{var r=t.createElement("html");d=t.createElement("body"),r.appendChild(d),t.appendChild(r)}}(e),t.module("ngSanitize",[]).provider("$sanitize",n),t.module("ngSanitize").filter("linky",["$sanitize",function(e){var n=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,r=/^mailto:/i,i=t.$$minErr("linky"),s=t.isString;return function(o,l,c){function d(e){e&&_.push(a(e))}function p(e,n){var a,r=h(e);_.push("<a ");for(a in r)_.push(a+'="'+r[a]+'" ');!t.isDefined(l)||"target"in r||_.push('target="',l,'" '),_.push('href="',e.replace(/"/g,"&quot;"),'">'),d(n),_.push("</a>")}if(null==o||""===o)return o;if(!s(o))throw i("notstring","Expected string but received: {0}",o);for(var u,m,g,h=t.isFunction(c)?c:t.isObject(c)?function(){return c}:function(){return{}},f=o,_=[];u=f.match(n);)m=u[0],u[2]||u[4]||(m=(u[3]?"http://":"mailto:")+m),g=u.index,d(f.substr(0,g)),p(m,u[0].replace(r,"")),f=f.substring(g+u[0].length);return d(f),e(_.join(""))}}])}(window,window.angular),function(e,t){"use strict";function n(e){return t.lowercase(e.nodeName||e[0]&&e[0].nodeName)}function a(e,n){var a=!1,r=!1;this.ngClickOverrideEnabled=function(i){return t.isDefined(i)?(i&&!r&&(r=!0,s.$$moduleName="ngTouch",n.directive("ngClick",s),e.decorator("ngClickDirective",["$delegate",function(e){if(a)e.shift();else for(var t=e.length-1;t>=0;){if("ngTouch"===e[t].$$moduleName){e.splice(t,1);break}t--}return e}])),a=i,this):a},this.$get=function(){return{ngClickOverrideEnabled:function(){return a}}}}function r(e,n,a){i.directive(e,["$parse","$swipe",function(r,i){var s=75,o=.3,l=30;return function(c,d,p){function u(e){if(!m)return!1;var t=Math.abs(e.y-m.y),a=(e.x-m.x)*n;return g&&t<s&&a>0&&a>l&&t/a<o}var m,g,h=r(p[e]),f=["touch"];t.isDefined(p.ngSwipeDisableMouse)||f.push("mouse"),i.bind(d,{start:function(e,t){m=e,g=!0},cancel:function(e){g=!1},end:function(e,t){u(e)&&c.$apply(function(){d.triggerHandler(a),h(c,{$event:t})})}},f)}}])}var i=t.module("ngTouch",[]);i.provider("$touch",a),a.$inject=["$provide","$compileProvider"],i.factory("$swipe",[function(){function e(e){var t=e.originalEvent||e,n=t.touches&&t.touches.length?t.touches:[t],a=t.changedTouches&&t.changedTouches[0]||n[0];return{x:a.clientX,y:a.clientY}}function n(e,n){var a=[];return t.forEach(e,function(e){var t=r[e][n];t&&a.push(t)}),a.join(" ")}var a=10,r={mouse:{start:"mousedown",move:"mousemove",end:"mouseup"},touch:{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel"}};return{bind:function(t,r,i){var s,o,l,c,d=!1;i=i||["mouse","touch"],t.on(n(i,"start"),function(t){l=e(t),d=!0,s=0,o=0,c=l,r.start&&r.start(l,t)});var p=n(i,"cancel");p&&t.on(p,function(e){d=!1,r.cancel&&r.cancel(e)}),t.on(n(i,"move"),function(t){if(d&&l){var n=e(t);if(s+=Math.abs(n.x-c.x),o+=Math.abs(n.y-c.y),c=n,!(s<a&&o<a))return o>s?(d=!1,void(r.cancel&&r.cancel(t))):(t.preventDefault(),void(r.move&&r.move(n,t)))}}),t.on(n(i,"end"),function(t){d&&(d=!1,r.end&&r.end(e(t),t))})}}}]);var s=["$parse","$timeout","$rootElement",function(e,a,r){function i(e,t,n,a){return Math.abs(e-n)<f&&Math.abs(t-a)<f}function s(e,t,n){for(var a=0;a<e.length;a+=2)if(i(e[a],e[a+1],t,n))return e.splice(a,a+2),!0;return!1}function o(e){if(!(Date.now()-d>h)){var t=e.touches&&e.touches.length?e.touches:[e],a=t[0].clientX,r=t[0].clientY;a<1&&r<1||u&&u[0]===a&&u[1]===r||(u&&(u=null),"label"===n(e.target)&&(u=[a,r]),s(p,a,r)||(e.stopPropagation(),e.preventDefault(),e.target&&e.target.blur&&e.target.blur()))}}function l(e){var t=e.touches&&e.touches.length?e.touches:[e],n=t[0].clientX,r=t[0].clientY;p.push(n,r),a(function(){for(var e=0;e<p.length;e+=2)if(p[e]==n&&p[e+1]==r)return void p.splice(e,e+2)},h,!1)}function c(e,t){p||(r[0].addEventListener("click",o,!0),r[0].addEventListener("touchstart",l,!0),p=[]),d=Date.now(),s(p,e,t)}var d,p,u,m=750,g=12,h=2500,f=25,_="ng-click-active";return function(n,a,r){function i(){u=!1,a.removeClass(_)}var s,o,l,d,p=e(r.ngClick),u=!1;a.on("touchstart",function(e){u=!0,s=e.target?e.target:e.srcElement,3==s.nodeType&&(s=s.parentNode),a.addClass(_),o=Date.now();var t=e.originalEvent||e,n=t.touches&&t.touches.length?t.touches:[t],r=n[0];l=r.clientX,d=r.clientY}),a.on("touchcancel",function(e){i()}),a.on("touchend",function(e){var n=Date.now()-o,p=e.originalEvent||e,h=p.changedTouches&&p.changedTouches.length?p.changedTouches:p.touches&&p.touches.length?p.touches:[p],f=h[0],_=f.clientX,y=f.clientY,v=Math.sqrt(Math.pow(_-l,2)+Math.pow(y-d,2));u&&n<m&&v<g&&(c(_,y),s&&s.blur(),t.isDefined(r.disabled)&&r.disabled!==!1||a.triggerHandler("click",[e])),i()}),a.onclick=function(e){},a.on("click",function(e,t){n.$apply(function(){p(n,{$event:t||e})})}),a.on("mousedown",function(e){a.addClass(_)}),a.on("mousemove mouseup",function(e){a.removeClass(_)})}}];r("ngSwipeLeft",-1,"swipeleft"),r("ngSwipeRight",1,"swiperight")}(window,window.angular),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.dropdown","ui.bootstrap.tooltip","ui.bootstrap.position","ui.bootstrap.bindHtml","ui.bootstrap.modal","ui.bootstrap.transition"]),angular.module("ui.bootstrap.tpls",["template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/modal/backdrop.html","template/modal/window.html"]),angular.module("ui.bootstrap.dropdown",[]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document",function(e){var t=null;this.open=function(r){t||(e.bind("click",n),e.bind("keydown",a)),t&&t!==r&&(t.isOpen=!1),t=r},this.close=function(r){t===r&&(t=null,e.unbind("click",n),e.unbind("keydown",a))};var n=function(e){if(t){var n=t.getToggleElement();e&&n&&n[0].contains(e.target)||t.$apply(function(){t.isOpen=!1})}},a=function(e){27===e.which&&(t.focusToggleElement(),n())}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function(e,t,n,a,r,i){var s,o=this,l=e.$new(),c=a.openClass,d=angular.noop,p=t.onToggle?n(t.onToggle):angular.noop;this.init=function(a){o.$element=a,t.isOpen&&(s=n(t.isOpen),d=s.assign,e.$watch(s,function(e){l.isOpen=!!e}))},this.toggle=function(e){return l.isOpen=arguments.length?!!e:!l.isOpen},this.isOpen=function(){return l.isOpen},l.getToggleElement=function(){return o.toggleElement},l.focusToggleElement=function(){o.toggleElement&&o.toggleElement[0].focus()},l.$watch("isOpen",function(t,n){i[t?"addClass":"removeClass"](o.$element,c),t?(l.focusToggleElement(),r.open(l)):r.close(l),d(e,t),angular.isDefined(t)&&t!==n&&p(e,{open:!!t})}),e.$on("$locationChangeSuccess",function(){l.isOpen=!1}),e.$on("$destroy",function(){l.$destroy()})}]).directive("dropdown",function(){return{controller:"DropdownController",link:function(e,t,n,a){a.init(t)}}}).directive("dropdownToggle",function(){return{require:"?^dropdown",link:function(e,t,n,a){if(a){a.toggleElement=t;var r=function(r){r.preventDefault(),t.hasClass("disabled")||n.disabled||e.$apply(function(){a.toggle()})};t.bind("click",r),t.attr({"aria-haspopup":!0,"aria-expanded":!1}),e.$watch(a.isOpen,function(e){t.attr("aria-expanded",!!e)}),e.$on("$destroy",function(){t.unbind("click",r)})}}}}),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function e(e){var t=/[A-Z]/g,n="-";return e.replace(t,function(e,t){return(t?n:"")+e.toLowerCase()})}var t={placement:"top",animation:!0,popupDelay:0},n={mouseenter:"mouseleave",click:"click",focus:"blur"},a={};this.options=function(e){angular.extend(a,e)},this.setTriggers=function(e){angular.extend(n,e)},this.$get=["$window","$compile","$timeout","$document","$position","$interpolate",function(r,i,s,o,l,c){return function(r,d,p){function u(e){var t=e||m.trigger||p,a=n[t]||t;return{show:t,hide:a}}var m=angular.extend({},t,a),g=e(r),h=c.startSymbol(),f=c.endSymbol(),_="<div "+g+'-popup title="'+h+"title"+f+'" content="'+h+"content"+f+'" placement="'+h+"placement"+f+'" animation="animation" is-open="isOpen"></div>';return{restrict:"EA",compile:function(e,t){var n=i(_);return function(e,t,a){function i(){A.isOpen?p():c()}function c(){I&&!e.$eval(a[d+"Enable"])||(y(),A.popupDelay?S||(S=s(g,A.popupDelay,!1),S.then(function(e){e()})):g()())}function p(){e.$apply(function(){h()})}function g(){return S=null,C&&(s.cancel(C),C=null),A.content?(f(),k.css({top:0,left:0,display:"block"}),M?o.find("body").append(k):t.after(k),E(),A.isOpen=!0,A.$digest(),E):angular.noop}function h(){A.isOpen=!1,s.cancel(S),S=null,A.animation?C||(C=s(_,500)):_()}function f(){k&&_(),$=A.$new(),k=n($,angular.noop)}function _(){C=null,k&&(k.remove(),k=null),$&&($.$destroy(),$=null)}function y(){v(),b()}function v(){var e=a[d+"Placement"];A.placement=angular.isDefined(e)?e:m.placement}function b(){var e=a[d+"PopupDelay"],t=parseInt(e,10);A.popupDelay=isNaN(t)?m.popupDelay:t}function w(){var e=a[d+"Trigger"];T(),x=u(e),x.show===x.hide?t.bind(x.show,i):(t.bind(x.show,c),t.bind(x.hide,p))}var k,$,C,S,M=!!angular.isDefined(m.appendToBody)&&m.appendToBody,x=u(void 0),I=angular.isDefined(a[d+"Enable"]),A=e.$new(!0),E=function(){var e=l.positionElements(t,k,A.placement,M);e.top+="px",e.left+="px",k.css(e)};A.isOpen=!1,a.$observe(r,function(e){A.content=e,!e&&A.isOpen&&h()}),a.$observe(d+"Title",function(e){A.title=e});var T=function(){t.unbind(x.show,c),t.unbind(x.hide,p)};w();var D=e.$eval(a[d+"Animation"]);A.animation=angular.isDefined(D)?!!D:m.animation;var P=e.$eval(a[d+"AppendToBody"]);M=angular.isDefined(P)?P:M,M&&e.$on("$locationChangeSuccess",function(){A.isOpen&&h()}),e.$on("$destroy",function(){s.cancel(C),s.cancel(S),T(),_(),A=null})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(e){return e("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(e){return e("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(e,t){function n(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]}function a(e){return"static"===(n(e,"position")||"static")}var r=function(t){for(var n=e[0],r=t.offsetParent||n;r&&r!==n&&a(r);)r=r.offsetParent;return r||n};return{position:function(t){var n=this.offset(t),a={top:0,left:0},i=r(t[0]);i!=e[0]&&(a=this.offset(angular.element(i)),a.top+=i.clientTop-i.scrollTop,a.left+=i.clientLeft-i.scrollLeft);var s=t[0].getBoundingClientRect();return{width:s.width||t.prop("offsetWidth"),height:s.height||t.prop("offsetHeight"),top:n.top-a.top,left:n.left-a.left}},offset:function(n){var a=n[0].getBoundingClientRect();return{width:a.width||n.prop("offsetWidth"),height:a.height||n.prop("offsetHeight"),top:a.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:a.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}},positionElements:function(e,t,n,a){var r,i,s,o,l=n.split("-"),c=l[0],d=l[1]||"center";r=a?this.offset(e):this.position(e),i=t.prop("offsetWidth"),s=t.prop("offsetHeight");var p={center:function(){return r.left+r.width/2-i/2},left:function(){return r.left},right:function(){return r.left+r.width}},u={center:function(){return r.top+r.height/2-s/2},top:function(){return r.top},bottom:function(){return r.top+r.height}};switch(c){case"right":o={top:u[d](),left:p[c]()};break;case"left":o={top:u[d](),left:r.left-i};break;case"bottom":o={top:u[c](),left:p[d]()};break;default:o={top:r.top-s,left:p[d]()}}return o}}}]),angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(e,t,n){t.addClass("ng-binding").data("$binding",n.bindHtmlUnsafe),e.$watch(n.bindHtmlUnsafe,function(e){t.html(e||"")})}}),angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var e=[];return{add:function(t,n){e.push({key:t,value:n})},get:function(t){for(var n=0;n<e.length;n++)if(t==e[n].key)return e[n]},keys:function(){for(var t=[],n=0;n<e.length;n++)t.push(e[n].key);return t},top:function(){return e[e.length-1]},remove:function(t){for(var n=-1,a=0;a<e.length;a++)if(t==e[a].key){n=a;break}return e.splice(n,1)[0]},removeTop:function(){return e.splice(e.length-1,1)[0]},length:function(){return e.length}}}}}).directive("modalBackdrop",["$timeout",function(e){return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",link:function(t,n,a){t.backdropClass=a.backdropClass||"",t.animate=!1,e(function(){t.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout",function(e,t){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"template/modal/window.html"},link:function(n,a,r){a.addClass(r.windowClass||""),n.size=r.size,a.on("click",function(e){n.close(e)}),e.registerObserverCallback(function(e){n.hiddenBySingle=e||!1}),t(function(){n.animate=!0,a[0].querySelectorAll("[autofocus]").length||a[0].focus()}),n.close=function(t){var n=e.getTop();n&&n.value.backdrop&&"static"!=n.value.backdrop&&t.target===t.currentTarget&&(t.preventDefault(),t.stopPropagation(),e.dismiss(n.key,"backdrop click"))}}}}]).directive("modalTransclude",function(){return{link:function(e,t,n,a,r){r(e.$parent,function(e){t.empty(),t.append(e)})}}}).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function(e,t,n,a,r,i){function s(){angular.forEach(f,function(e,t){for(var n=!1,a=g.keys(),r=0;r<a.length;r++){var i=g.get(a[r]).value;if("single"==i.backdrop&&i.index>t){n=!0;break}}e(n)})}function o(){for(var e=-1,t=g.keys(),n=0;n<t.length;n++)g.get(t[n]).value.backdrop&&(e=n);return e}function l(e){var t=n.find("body").eq(0),a=g.get(e).value;g.remove(e),f.splice(a.index,1),d(a.modalDomEl,a.modalScope,0,function(){a.modalScope.$destroy(),t.toggleClass(m,g.length()>0),c()})}function c(){if(p&&o()==-1){var e=u;d(p,u,0,function(){e.$destroy(),e=null}),p=void 0,u=void 0}else s()}function d(n,a,r,i){function s(){s.done||(s.done=!0,n.remove(),i&&i())}a.animate=!1;var o=e.transitionEndEventName;if(o){var l=t(s,r);n.bind(o,function(){t.cancel(l),s(),a.$apply()})}else t(s)}var p,u,m="modal-open",g=i.createNew(),h={},f=[];return r.$watch(o,function(e){u&&(u.index=e)}),n.bind("keydown",function(e){var t;27===e.which&&(t=g.top(),t&&t.value.keyboard&&(e.preventDefault(),r.$apply(function(){h.dismiss(t.key,"escape key press")})))}),h.registerObserverCallback=function(e){f.push(e)},h.open=function(e,t){g.add(e,{deferred:t.deferred,modalScope:t.scope,backdrop:t.backdrop,keyboard:t.keyboard});var i=n.find("body").eq(0),l=o();if(l>=0&&!p){u=r.$new(!0),u.index=l;var c=angular.element("<div modal-backdrop></div>");c.attr("backdrop-class",t.backdropClass),p=a(c)(u),i.append(p)}var d=angular.element("<div modal-window></div>"),h=g.length()-1;d.attr({"template-url":t.windowTemplateUrl,"window-class":t.windowClass,size:t.size,index:h,animate:"animate"}).html(t.content);var f=a(d)(t.scope);g.top().value.modalDomEl=f,g.top().value.index=h,i.append(f),i.addClass(m),s()},h.close=function(e,t){var n=g.get(e);n&&(n.value.deferred.resolve(t),l(e))},h.dismiss=function(e,t){var n=g.get(e);n&&(n.value.deferred.reject(t),l(e))},h.dismissAll=function(e){for(var t=this.getTop();t;)this.dismiss(t.key,e),t=this.getTop()},h.getTop=function(){return g.top()},h}]).provider("$modal",function(){var e={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(t,n,a,r,i,s,o){function l(e){return e.template?a.when(e.template):r.get(angular.isFunction(e.templateUrl)?e.templateUrl():e.templateUrl,{cache:i}).then(function(e){return e.data})}function c(e){var n=[];return angular.forEach(e,function(e){(angular.isFunction(e)||angular.isArray(e))&&n.push(a.when(t.invoke(e)))}),n}var d={};return d.open=function(t){var r=a.defer(),i=a.defer(),d={result:r.promise,opened:i.promise,close:function(e){o.close(d,e)},dismiss:function(e){o.dismiss(d,e)}};if(t=angular.extend({},e.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");var p=a.all([l(t)].concat(c(t.resolve)));return p.then(function(e){var a=(t.scope||n).$new();a.$close=d.close,a.$dismiss=d.dismiss;var i,l={},c=1;t.controller&&(l.$scope=a,l.$modalInstance=d,angular.forEach(t.resolve,function(t,n){l[n]=e[c++]}),i=s(t.controller,l),t.controllerAs&&(a[t.controllerAs]=i)),o.open(d,{scope:a,deferred:r,content:e[0],backdrop:t.backdrop,keyboard:t.keyboard,backdropClass:t.backdropClass,windowClass:t.windowClass,windowTemplateUrl:t.windowTemplateUrl,size:t.size})},function(e){r.reject(e)}),p.then(function(){i.resolve(!0)},function(){i.reject(!1)}),d},d}]};return e}),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(e,t,n){function a(e){for(var t in e)if(void 0!==i.style[t])return e[t]}var r=function(a,i,s){s=s||{};var o=e.defer(),l=r[s.animation?"animationEndEventName":"transitionEndEventName"],c=function(e){n.$apply(function(){a.unbind(l,c),o.resolve(a)})};return l&&a.bind(l,c),t(function(){angular.isString(i)?a.addClass(i):angular.isFunction(i)?i(a):angular.isObject(i)&&a.css(i),l||o.resolve(a)}),o.promise.cancel=function(){l&&a.unbind(l,c),o.reject("Transition cancelled")},o.promise},i=document.createElement("trans"),s={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},o={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return r.transitionEndEventName=a(s),r.animationEndEventName=a(o),r}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" bind-html-unsafe="content"></div>\n</div>\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(e){e.put("template/modal/backdrop.html",'<div class="modal-backdrop fade {{ backdropClass }}"\n ng-class="{in: animate}"\n ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n')}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function(e){e.put("template/modal/window.html",'<div tabindex="-1" role="dialog" class="modal fade" ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10, display: hiddenBySingle ? \'none\' : \'block\'}">\n <div class="modal_close_wrap" ng-click="close($event)">\n <div class="modal_close"></div>\n </div>\n <div class="modal-dialog" ng-class="{\'modal-sm\': size == \'sm\', \'modal-lg\': size == \'lg\'}"><div class="modal-content" modal-transclude></div></div>\n</div>')}]),angular.module("mediaPlayer",["mediaPlayer.helpers"]).constant("mp.playerDefaults",{currentTrack:0,ended:void 0,network:void 0,playing:!1,seeking:!1,tracks:0,volume:1,formatDuration:"00:00",formatTime:"00:00",loadPercent:0}).directive("mediaPlayer",["$rootScope","$interpolate","$timeout","mp.throttle","mp.playerDefaults",function(e,t,n,a,r){function i(e){return function(t,a,r){var i,s=null;if(e.$attachPlaylist(t),void 0===t&&void 0!==a)return e.pause();if(e.currentTrack){i=a?a[e.currentTrack-1]:-1;for(var o=0;o<t.length;o++)if(angular.equals(t[o],i)){s=o;break}null!==s?(e.currentTrack=s+1,e.tracks=t.length):(e.pause(),t.length?n(function(){e.$clearSourceList(),e.$addSourceList(t[0]),e.load(),e.tracks=t.length}):e.reset())}else t.length?(e.$clearSourceList(),e.$addSourceList(t[0]),e.load(),e.tracks=t.length):e.reset()}}var s={load:function(e,t){"boolean"==typeof e?(t=e,e=null):"object"==typeof e&&(this.$clearSourceList(),this.$addSourceList(e)),this.$domEl.load(),this.ended=void 0,t&&this.$element.one("canplay",this.play.bind(this))},reset:function(e){angular.extend(this,r),this.$clearSourceList(),this.load(this.$playlist,e)},play:function(e,t){return"boolean"==typeof e&&(t=e,e=void 0),t&&(this.$selective=!0),this.$playlist.length>e?(this.currentTrack=e+1,this.load(this.$playlist[e],!0)):(!this.currentTrack&&this.$domEl.readyState&&this.currentTrack++,void(this.ended?this.load(!0):this.$domEl.play()))},playPause:function(e,t){"boolean"==typeof e&&(t=e,e=void 0),
t&&(this.$selective=!0),"number"==typeof e&&e+1!==this.currentTrack?this.play(e):this.playing?this.pause():this.play()},pause:function(){this.$domEl.pause()},stop:function(){this.reset()},toggleMute:function(){this.muted=this.$domEl.muted=!this.$domEl.muted},next:function(e){var t=this;if(t.currentTrack&&t.currentTrack<t.tracks){var a=e||t.playing;t.pause(),n(function(){t.$clearSourceList(),t.$addSourceList(t.$playlist[t.currentTrack]),t.load(a),t.currentTrack++})}},prev:function(e){var t=this;if(t.currentTrack&&t.currentTrack-1){var a=e||t.playing;t.pause(),n(function(){t.$clearSourceList(),t.$addSourceList(t.$playlist[t.currentTrack-2]),t.load(a),t.currentTrack--})}},setPlaybackRate:function(e){this.$domEl.playbackRate=e},setVolume:function(e){this.$domEl.volume=e},seek:function(e){var t,n=0;return"string"!=typeof e?this.$domEl.currentTime=e:(t=e.split(":"),n+=parseInt(t.pop(),10),t.length&&(n+=60*parseInt(t.pop(),10)),t.length&&(n+=3600*parseInt(t.pop(),10)),isNaN(n)?void 0:this.$domEl.currentTime=n)},on:function(e,t){return this.$element.on(e,t)},off:function(e,t){return this.$element.off(e,t)},one:function(e,t){return this.$element.one(e,t)},$addSourceList:function(e){var t=this;if(angular.isArray(e))angular.forEach(e,function(e,n){var a=document.createElement("SOURCE");["src","type","media"].forEach(function(t){void 0!==e[t]&&a.setAttribute(t,e[t])}),t.$element.append(a)});else if(angular.isObject(e)){var n=document.createElement("SOURCE");["src","type","media"].forEach(function(t){void 0!==e[t]&&n.setAttribute(t,e[t])}),t.$element.append(n)}},$clearSourceList:function(){this.$element.contents().remove()},$formatTime:function(e){if(e===1/0)return"∞";var t,n=parseInt(e/3600,10)%24,a=parseInt(e/60,10)%60,r=parseInt(e%60,10),i=(a<10?"0"+a:a)+":"+(r<10?"0"+r:r);return t=n>0?(n<10?"0"+n:n)+":"+i:i},$attachPlaylist:function(e){void 0===e||null===e?this.playlist=[]:this.$playlist=e}},o=function(e,t,n){var r={playing:function(){e.$apply(function(e){e.playing=!0,e.ended=!1})},pause:function(){e.$apply(function(e){e.playing=!1})},ended:function(){!e.$selective&&e.currentTrack<e.tracks?e.next(!0):e.$apply(function(e){e.ended=!0,e.playing=!1})},timeupdate:a(1e3,!1,function(){e.$apply(function(e){e.currentTime=t.currentTime,e.formatTime=e.$formatTime(e.currentTime)})}),loadedmetadata:function(){e.$apply(function(e){e.currentTrack||e.currentTrack++,e.duration=t.duration,e.formatDuration=e.$formatTime(e.duration),t.buffered.length&&(e.loadPercent=Math.round(t.buffered.end(t.buffered.length-1)/e.duration*100))})},progress:function(){e.$domEl.buffered.length&&e.$apply(function(e){e.loadPercent=Math.round(t.buffered.end(t.buffered.length-1)/e.duration*100),e.network="progress"})},volumechange:function(){e.$apply(function(e){e.volume=t.volume,e.muted=t.muted})},seeked:function(){e.$apply(function(e){e.seeking=!1})},seeking:function(){e.$apply(function(e){e.seeking=!0})},ratechange:function(){e.$apply(function(e){e.playbackRate=t.playbackRate})},stalled:function(){e.$apply(function(e){e.network="stalled"})},suspend:function(){e.$apply(function(e){e.network="suspend"})}};angular.forEach(r,function(e,t){n.on(t,e)})},l=function(t){var n=angular.extend(e.$new(!0),{$element:t,$domEl:t[0],$playlist:void 0,buffered:t[0].buffered,played:t[0].played,seekable:t[0].seekable},r,s);return o(n,t[0],t),n};return{scope:!1,link:function(e,t,n,a){var r=n.playlist,s=n.mediaPlayer||n.playerControl,o=new l(t),c=e[r];if(c=void 0===r?[]:void 0===e[r]?e[r]=[]:e[r],void 0!==s&&e.$eval(s+" = player",{player:o}),"AUDIO"!==t[0].tagName&&"VIDEO"!==t[0].tagName)return new Error("player directive works only when attached to an <audio>/<video> type tag");var d=[],p=t.find("source");1===p.length?c.unshift({src:p[0].src,type:p[0].type,media:p[0].media}):p.length>1&&(angular.forEach(p,function(e){d.push({src:e.src,type:e.type,media:e.media})}),c.unshift(d)),void 0===r?o.$attachPlaylist(c):c.length?(i(o)(c,void 0,e),e.$watch(r,i(o),!0)):e.$watch(r,i(o),!0)}}}]),angular.module("mediaPlayer.helpers",[]).factory("mp.throttle",["$timeout",function(e){return function(t,n,a,r){var i,s=0;"boolean"!=typeof n&&(r=a,a=n,n=void 0);var o=function(){var o=this,l=+new Date-s,c=arguments,d=function(){s=+new Date,a.apply(o,c)},p=function(){i=void 0};r&&!i&&d(),i&&e.cancel(i),void 0===r&&l>t?d():n!==!0&&(i=e(r?p:d,void 0===r?t-l:t))};return o}}]);var dbits,canary=0xdeadbeefcafe,j_lm=15715070==(16777215&canary);j_lm&&"Microsoft Internet Explorer"==navigator.appName?(BigInteger.prototype.am=am2,dbits=30):j_lm&&"Netscape"!=navigator.appName?(BigInteger.prototype.am=am1,dbits=26):(BigInteger.prototype.am=am3,dbits=28),BigInteger.prototype.DB=dbits,BigInteger.prototype.DM=(1<<dbits)-1,BigInteger.prototype.DV=1<<dbits;var BI_FP=52;BigInteger.prototype.FV=Math.pow(2,BI_FP),BigInteger.prototype.F1=BI_FP-dbits,BigInteger.prototype.F2=2*dbits-BI_FP;var BI_RM="0123456789abcdefghijklmnopqrstuvwxyz",BI_RC=new Array,rr,vv;for(rr="0".charCodeAt(0),vv=0;vv<=9;++vv)BI_RC[rr++]=vv;for(rr="a".charCodeAt(0),vv=10;vv<36;++vv)BI_RC[rr++]=vv;for(rr="A".charCodeAt(0),vv=10;vv<36;++vv)BI_RC[rr++]=vv;Classic.prototype.convert=cConvert,Classic.prototype.revert=cRevert,Classic.prototype.reduce=cReduce,Classic.prototype.mulTo=cMulTo,Classic.prototype.sqrTo=cSqrTo,Montgomery.prototype.convert=montConvert,Montgomery.prototype.revert=montRevert,Montgomery.prototype.reduce=montReduce,Montgomery.prototype.mulTo=montMulTo,Montgomery.prototype.sqrTo=montSqrTo,BigInteger.prototype.copyTo=bnpCopyTo,BigInteger.prototype.fromInt=bnpFromInt,BigInteger.prototype.fromString=bnpFromString,BigInteger.prototype.clamp=bnpClamp,BigInteger.prototype.dlShiftTo=bnpDLShiftTo,BigInteger.prototype.drShiftTo=bnpDRShiftTo,BigInteger.prototype.lShiftTo=bnpLShiftTo,BigInteger.prototype.rShiftTo=bnpRShiftTo,BigInteger.prototype.subTo=bnpSubTo,BigInteger.prototype.multiplyTo=bnpMultiplyTo,BigInteger.prototype.squareTo=bnpSquareTo,BigInteger.prototype.divRemTo=bnpDivRemTo,BigInteger.prototype.invDigit=bnpInvDigit,BigInteger.prototype.isEven=bnpIsEven,BigInteger.prototype.exp=bnpExp,BigInteger.prototype.toString=bnToString,BigInteger.prototype.negate=bnNegate,BigInteger.prototype.abs=bnAbs,BigInteger.prototype.compareTo=bnCompareTo,BigInteger.prototype.bitLength=bnBitLength,BigInteger.prototype.mod=bnMod,BigInteger.prototype.modPowInt=bnModPowInt,BigInteger.ZERO=nbv(0),BigInteger.ONE=nbv(1),NullExp.prototype.convert=nNop,NullExp.prototype.revert=nNop,NullExp.prototype.mulTo=nMulTo,NullExp.prototype.sqrTo=nSqrTo,Barrett.prototype.convert=barrettConvert,Barrett.prototype.revert=barrettRevert,Barrett.prototype.reduce=barrettReduce,Barrett.prototype.mulTo=barrettMulTo,Barrett.prototype.sqrTo=barrettSqrTo;var lowprimes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],lplim=(1<<26)/lowprimes[lowprimes.length-1];BigInteger.prototype.chunkSize=bnpChunkSize,BigInteger.prototype.toRadix=bnpToRadix,BigInteger.prototype.fromRadix=bnpFromRadix,BigInteger.prototype.fromNumber=bnpFromNumber,BigInteger.prototype.bitwiseTo=bnpBitwiseTo,BigInteger.prototype.changeBit=bnpChangeBit,BigInteger.prototype.addTo=bnpAddTo,BigInteger.prototype.dMultiply=bnpDMultiply,BigInteger.prototype.dAddOffset=bnpDAddOffset,BigInteger.prototype.multiplyLowerTo=bnpMultiplyLowerTo,BigInteger.prototype.multiplyUpperTo=bnpMultiplyUpperTo,BigInteger.prototype.modInt=bnpModInt,BigInteger.prototype.millerRabin=bnpMillerRabin,BigInteger.prototype.clone=bnClone,BigInteger.prototype.intValue=bnIntValue,BigInteger.prototype.byteValue=bnByteValue,BigInteger.prototype.shortValue=bnShortValue,BigInteger.prototype.signum=bnSigNum,BigInteger.prototype.toByteArray=bnToByteArray,BigInteger.prototype.equals=bnEquals,BigInteger.prototype.min=bnMin,BigInteger.prototype.max=bnMax,BigInteger.prototype.and=bnAnd,BigInteger.prototype.or=bnOr,BigInteger.prototype.xor=bnXor,BigInteger.prototype.andNot=bnAndNot,BigInteger.prototype.not=bnNot,BigInteger.prototype.shiftLeft=bnShiftLeft,BigInteger.prototype.shiftRight=bnShiftRight,BigInteger.prototype.getLowestSetBit=bnGetLowestSetBit,BigInteger.prototype.bitCount=bnBitCount,BigInteger.prototype.testBit=bnTestBit,BigInteger.prototype.setBit=bnSetBit,BigInteger.prototype.clearBit=bnClearBit,BigInteger.prototype.flipBit=bnFlipBit,BigInteger.prototype.add=bnAdd,BigInteger.prototype.subtract=bnSubtract,BigInteger.prototype.multiply=bnMultiply,BigInteger.prototype.divide=bnDivide,BigInteger.prototype.remainder=bnRemainder,BigInteger.prototype.divideAndRemainder=bnDivideAndRemainder,BigInteger.prototype.modPow=bnModPow,BigInteger.prototype.modInverse=bnModInverse,BigInteger.prototype.pow=bnPow,BigInteger.prototype.gcd=bnGCD,BigInteger.prototype.isProbablePrime=bnIsProbablePrime,BigInteger.prototype.square=bnSquare;var rng_state,rng_pool,rng_pptr;if(null==rng_pool){rng_pool=new Array,rng_pptr=0;var global="undefined"!=typeof window?window:this,t;if(global&&global.crypto&&global.crypto.getRandomValues){var ua=new Uint8Array(32);for(global.crypto.getRandomValues(ua),t=0;t<32;++t)rng_pool[rng_pptr++]=ua[t]}if("Netscape"==navigator.appName&&navigator.appVersion<"5"&&global&&global.crypto){var z=global.crypto.random(32);for(t=0;t<z.length;++t)rng_pool[rng_pptr++]=255&z.charCodeAt(t)}for(;rng_pptr<rng_psize;)t=Math.floor(65536*Math.random()),rng_pool[rng_pptr++]=t>>>8,rng_pool[rng_pptr++]=255&t;rng_pptr=0,rng_seed_time()}SecureRandom.prototype.nextBytes=rng_get_bytes,Arcfour.prototype.init=ARC4init,Arcfour.prototype.next=ARC4next;var rng_psize=256,CryptoJS=CryptoJS||function(e,t){var n={},a=n.lib={},r=a.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var n=new e;return t&&n.mixIn(t),n.hasOwnProperty("init")||(n.init=function(){n.$super.init.apply(this,arguments)}),n.init.prototype=n,n.$super=this,n},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),i=a.WordArray=r.extend({init:function(e,n){e=this.words=e||[],n!=t?this.sigBytes=n:this.sigBytes=4*e.length},toString:function(e){return(e||o).stringify(this)},concat:function(e){var t=this.words,n=e.words,a=this.sigBytes,r=e.sigBytes;if(this.clamp(),a%4)for(var i=0;i<r;i++){var s=n[i>>>2]>>>24-i%4*8&255;t[a+i>>>2]|=s<<24-(a+i)%4*8}else if(n.length>65535)for(var i=0;i<r;i+=4)t[a+i>>>2]=n[i>>>2];else for(var i=0;i<n.length;i++)t.push(n[i]);return this.sigBytes+=r,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n=[],a=0;a<t;a+=4)n.push(4294967296*e.random()|0);return new i.init(n,t)}}),s=n.enc={},o=s.Hex={stringify:function(e){for(var t=e.words,n=e.sigBytes,a=[],r=0;r<n;r++){var i=t[r>>>2]>>>24-r%4*8&255;a.push((i>>>4).toString(16)),a.push((15&i).toString(16))}return a.join("")},parse:function(e){for(var t=e.length,n=[],a=0;a<t;a+=2)n[a>>>3]|=parseInt(e.substr(a,2),16)<<24-a%8*4;return new i.init(n,t/2)}},l=s.Latin1={stringify:function(e){for(var t=e.words,n=e.sigBytes,a=[],r=0;r<n;r++){var i=t[r>>>2]>>>24-r%4*8&255;a.push(String.fromCharCode(i))}return a.join("")},parse:function(e){for(var t=e.length,n=[],a=0;a<t;a++)n[a>>>2]|=(255&e.charCodeAt(a))<<24-a%4*8;return new i.init(n,t)}},c=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(l.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(e){return l.parse(unescape(encodeURIComponent(e)))}},d=a.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new i.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=c.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,a=n.words,r=n.sigBytes,s=this.blockSize,o=4*s,l=r/o;l=t?e.ceil(l):e.max((0|l)-this._minBufferSize,0);var c=l*s,d=e.min(4*c,r);if(c){for(var p=0;p<c;p+=s)this._doProcessBlock(a,p);var u=a.splice(0,c);n.sigBytes-=d}return new i.init(u,d)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0}),p=(a.Hasher=d.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){d.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){e&&this._append(e);var t=this._doFinalize();return t},blockSize:16,_createHelper:function(e){return function(t,n){return new e.init(n).finalize(t)}},_createHmacHelper:function(e){return function(t,n){return new p.HMAC.init(e,n).finalize(t)}}}),n.algo={});return n}(Math);CryptoJS.lib.Cipher||function(e){var t=CryptoJS,n=t.lib,a=n.Base,r=n.WordArray,i=n.BufferedBlockAlgorithm,s=t.enc,o=(s.Utf8,s.Base64),l=t.algo,c=l.EvpKDF,d=n.Cipher=i.extend({cfg:a.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){i.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){e&&this._append(e);var t=this._doFinalize();return t},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?k:v}return function(t){return{encrypt:function(n,a,r){return e(a).encrypt(t,n,a,r)},decrypt:function(n,a,r){return e(a).decrypt(t,n,a,r)}}}}()}),p=(n.StreamCipher=d.extend({_doFinalize:function(){var e=this._process(!0);return e},blockSize:1}),t.mode={}),u=n.BlockCipherMode=a.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),m=p.CBC=function(){function t(t,n,a){var r=this._iv;if(r){var i=r;this._iv=e}else var i=this._prevBlock;for(var s=0;s<a;s++)t[n+s]^=i[s]}var n=u.extend();return n.Encryptor=n.extend({processBlock:function(e,n){var a=this._cipher,r=a.blockSize;t.call(this,e,n,r),a.encryptBlock(e,n),this._prevBlock=e.slice(n,n+r)}}),n.Decryptor=n.extend({processBlock:function(e,n){var a=this._cipher,r=a.blockSize,i=e.slice(n,n+r);a.decryptBlock(e,n),t.call(this,e,n,r),this._prevBlock=i}}),n}(),g=(p.IGE=function(){function t(e,t,n,a){for(var r=0;r<a;r++)e[n+r]^=t[r]}var n=u.extend();return n.Encryptor=n.extend({processBlock:function(n,a){var r=this._cipher,i=r.blockSize;this._ivp===e&&(this._ivp=this._iv.slice(0,i),this._iv2p=this._iv.slice(i,i+i));var s=n.slice(a,a+i);t(n,this._ivp,a,i),r.encryptBlock(n,a),t(n,this._iv2p,a,i),this._ivp=n.slice(a,a+i),this._iv2p=s}}),n.Decryptor=n.extend({processBlock:function(n,a){var r=this._cipher,i=r.blockSize;this._ivp===e&&(this._ivp=this._iv.slice(0,i),this._iv2p=this._iv.slice(i,2*i));var s=n.slice(a,a+i);t(n,this._iv2p,a,i),r.decryptBlock(n,a),t(n,this._ivp,a,i),this._ivp=s,this._iv2p=n.slice(a,a+i)}}),n}(),t.pad={}),h=g.Pkcs7={pad:function(e,t){for(var n=4*t,a=n-e.sigBytes%n,i=a<<24|a<<16|a<<8|a,s=[],o=0;o<a;o+=4)s.push(i);var l=r.create(s,a);e.concat(l)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},f=(g.NoPadding={pad:function(){},unpad:function(){}},n.BlockCipher=d.extend({cfg:d.cfg.extend({mode:m,padding:h}),reset:function(){d.reset.call(this);var e=this.cfg,t=e.iv,n=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var a=n.createEncryptor;else{var a=n.createDecryptor;this._minBufferSize=1}this._mode=a.call(n,this,t&&t.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else{var t=this._process(!0);e.unpad(t)}return t},blockSize:4}),n.CipherParams=a.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}})),_=t.format={},y=_.OpenSSL={stringify:function(e){var t=e.ciphertext,n=e.salt;if(n)var a=r.create([1398893684,1701076831]).concat(n).concat(t);else var a=t;return a.toString(o)},parse:function(e){var t=o.parse(e),n=t.words;if(1398893684==n[0]&&1701076831==n[1]){var a=r.create(n.slice(2,4));n.splice(0,4),t.sigBytes-=16}return f.create({ciphertext:t,salt:a})}},v=n.SerializableCipher=a.extend({cfg:a.extend({format:y}),encrypt:function(e,t,n,a){a=this.cfg.extend(a);var r=e.createEncryptor(n,a),i=r.finalize(t),s=r.cfg;return f.create({ciphertext:i,key:n,iv:s.iv,algorithm:e,mode:s.mode,padding:s.padding,blockSize:e.blockSize,formatter:a.format})},decrypt:function(e,t,n,a){a=this.cfg.extend(a),t=this._parse(t,a.format);var r=e.createDecryptor(n,a).finalize(t.ciphertext);return r},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),b=t.kdf={},w=b.OpenSSL={execute:function(e,t,n,a){a||(a=r.random(8));var i=c.create({keySize:t+n}).compute(e,a),s=r.create(i.words.slice(t),4*n);return i.sigBytes=4*t,f.create({key:i,iv:s,salt:a})}},k=n.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:w}),encrypt:function(e,t,n,a){a=this.cfg.extend(a);var r=a.kdf.execute(n,e.keySize,e.ivSize);a.iv=r.iv;var i=v.encrypt.call(this,e,t,r.key,a);return i.mixIn(r),i},decrypt:function(e,t,n,a){a=this.cfg.extend(a),t=this._parse(t,a.format);var r=a.kdf.execute(n,e.keySize,e.ivSize,t.salt);a.iv=r.iv;var i=v.decrypt.call(this,e,t,r.key,a);return i}})}(),function(){var e=CryptoJS,t=e.lib,n=t.BlockCipher,a=e.algo,r=[],i=[],s=[],o=[],l=[],c=[],d=[],p=[],u=[],m=[];!function(){for(var e=[],t=0;t<256;t++)t<128?e[t]=t<<1:e[t]=t<<1^283;for(var n=0,a=0,t=0;t<256;t++){var g=a^a<<1^a<<2^a<<3^a<<4;g=g>>>8^255&g^99,r[n]=g,i[g]=n;var h=e[n],f=e[h],_=e[f],y=257*e[g]^16843008*g;s[n]=y<<24|y>>>8,o[n]=y<<16|y>>>16,l[n]=y<<8|y>>>24,c[n]=y;var y=16843009*_^65537*f^257*h^16843008*n;d[g]=y<<24|y>>>8,p[g]=y<<16|y>>>16,u[g]=y<<8|y>>>24,m[g]=y,n?(n=h^e[e[e[_^h]]],a^=e[e[a]]):n=a=1}}();var g=[0,1,2,4,8,16,32,64,128,27,54],h=a.AES=n.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes/4,a=this._nRounds=n+6,i=4*(a+1),s=this._keySchedule=[],o=0;o<i;o++)if(o<n)s[o]=t[o];else{var l=s[o-1];o%n?n>6&&o%n==4&&(l=r[l>>>24]<<24|r[l>>>16&255]<<16|r[l>>>8&255]<<8|r[255&l]):(l=l<<8|l>>>24,l=r[l>>>24]<<24|r[l>>>16&255]<<16|r[l>>>8&255]<<8|r[255&l],l^=g[o/n|0]<<24),s[o]=s[o-n]^l}for(var c=this._invKeySchedule=[],h=0;h<i;h++){var o=i-h;if(h%4)var l=s[o];else var l=s[o-4];h<4||o<=4?c[h]=l:c[h]=d[r[l>>>24]]^p[r[l>>>16&255]]^u[r[l>>>8&255]]^m[r[255&l]]}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,s,o,l,c,r)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,d,p,u,m,i);var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,a,r,i,s,o){for(var l=this._nRounds,c=e[t]^n[0],d=e[t+1]^n[1],p=e[t+2]^n[2],u=e[t+3]^n[3],m=4,g=1;g<l;g++){var h=a[c>>>24]^r[d>>>16&255]^i[p>>>8&255]^s[255&u]^n[m++],f=a[d>>>24]^r[p>>>16&255]^i[u>>>8&255]^s[255&c]^n[m++],_=a[p>>>24]^r[u>>>16&255]^i[c>>>8&255]^s[255&d]^n[m++],y=a[u>>>24]^r[c>>>16&255]^i[d>>>8&255]^s[255&p]^n[m++];c=h,d=f,p=_,u=y}var h=(o[c>>>24]<<24|o[d>>>16&255]<<16|o[p>>>8&255]<<8|o[255&u])^n[m++],f=(o[d>>>24]<<24|o[p>>>16&255]<<16|o[u>>>8&255]<<8|o[255&c])^n[m++],_=(o[p>>>24]<<24|o[u>>>16&255]<<16|o[c>>>8&255]<<8|o[255&d])^n[m++],y=(o[u>>>24]<<24|o[c>>>16&255]<<16|o[d>>>8&255]<<8|o[255&p])^n[m++];e[t]=h,e[t+1]=f,e[t+2]=_,e[t+3]=y},keySize:8});e.AES=n._createHelper(h)}(),function(e){var t=CryptoJS,n=t.lib,a=n.WordArray,r=n.Hasher,i=t.algo,s=[],o=[];!function(){function t(t){for(var n=e.sqrt(t),a=2;a<=n;a++)if(!(t%a))return!1;return!0}function n(e){return 4294967296*(e-(0|e))|0}for(var a=2,r=0;r<64;)t(a)&&(r<8&&(s[r]=n(e.pow(a,.5))),o[r]=n(e.pow(a,1/3)),r++),a++}();var l=[],c=i.SHA256=r.extend({_doReset:function(){this._hash=new a.init(s.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,a=n[0],r=n[1],i=n[2],s=n[3],c=n[4],d=n[5],p=n[6],u=n[7],m=0;m<64;m++){if(m<16)l[m]=0|e[t+m];else{var g=l[m-15],h=(g<<25|g>>>7)^(g<<14|g>>>18)^g>>>3,f=l[m-2],_=(f<<15|f>>>17)^(f<<13|f>>>19)^f>>>10;l[m]=h+l[m-7]+_+l[m-16]}var y=c&d^~c&p,v=a&r^a&i^r&i,b=(a<<30|a>>>2)^(a<<19|a>>>13)^(a<<10|a>>>22),w=(c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25),k=u+w+y+o[m]+l[m],$=b+v;u=p,p=d,d=c,c=s+k|0,s=i,i=r,r=a,a=k+$|0}n[0]=n[0]+a|0,n[1]=n[1]+r|0,n[2]=n[2]+i|0,n[3]=n[3]+s|0,n[4]=n[4]+c|0,n[5]=n[5]+d|0,n[6]=n[6]+p|0,n[7]=n[7]+u|0},_doFinalize:function(){var t=this._data,n=t.words,a=8*this._nDataBytes,r=8*t.sigBytes;return n[r>>>5]|=128<<24-r%32,n[(r+64>>>9<<4)+14]=e.floor(a/4294967296),n[(r+64>>>9<<4)+15]=a,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=r._createHelper(c),t.HmacSHA256=r._createHmacHelper(c)}(Math),function(e){function t(e){"use strict";var t={fill:0},a=function(e){for(e+=9;e%64>0;e+=1);return e},r=function(e,t){for(var n=t>>2;n<e.length;n++)e[n]=0},s=function(e,t,n){e[t>>2]|=128<<24-(t%4<<3),e[((t>>2)+2&-16)+15]=n<<3},o=function(e,t,n,a,r){var i,s=this,o=r%4,l=a%4,c=a-l;if(c>0)switch(o){case 0:e[r+3|0]=s.charCodeAt(n);case 1:e[r+2|0]=s.charCodeAt(n+1);case 2:e[r+1|0]=s.charCodeAt(n+2);case 3:e[0|r]=s.charCodeAt(n+3)}for(i=o;i<c;i=i+4|0)t[r+i>>2]=s.charCodeAt(n+i)<<24|s.charCodeAt(n+i+1)<<16|s.charCodeAt(n+i+2)<<8|s.charCodeAt(n+i+3);switch(l){case 3:e[r+c+1|0]=s.charCodeAt(n+c+2);case 2:e[r+c+2|0]=s.charCodeAt(n+c+1);case 1:e[r+c+3|0]=s.charCodeAt(n+c)}},l=function(e,t,n,a,r){var i,s=this,o=r%4,l=a%4,c=a-l;if(c>0)switch(o){case 0:e[r+3|0]=s[n];case 1:e[r+2|0]=s[n+1];case 2:e[r+1|0]=s[n+2];case 3:e[0|r]=s[n+3]}for(i=4-o;i<c;i=i+=4)t[r+i>>2]=s[n+i]<<24|s[n+i+1]<<16|s[n+i+2]<<8|s[n+i+3];switch(l){case 3:e[r+c+1|0]=s[n+c+2];case 2:e[r+c+2|0]=s[n+c+1];case 1:e[r+c+3|0]=s[n+c]}},c=function(e){switch(i.getDataType(e)){case"string":return o.bind(e);case"array":return l.bind(e);case"buffer":return l.bind(e);case"arraybuffer":return l.bind(new Uint8Array(e));case"view":return l.bind(new Uint8Array(e.buffer))}},d=function(e){var t,n,a="0123456789abcdef",r=[],i=new Uint8Array(e);for(t=0;t<i.length;t++)n=i[t],r[t]=a.charAt(n>>4&15)+a.charAt(n>>0&15);return r.join("")},p=function(e){var t;if(e<=65536)return 65536;if(e<16777216)for(t=1;t<e;t<<=1);else for(t=16777216;t<e;t+=16777216);return t},u=function(e){if(e%64>0)throw new Error("Chunk size must be a multiple of 128 bit");t.maxChunkLen=e,t.padMaxChunkLen=a(e),t.heap=new ArrayBuffer(p(t.padMaxChunkLen+320+20)),t.h32=new Int32Array(t.heap),t.h8=new Int8Array(t.heap),t.core=n({Int32Array:Int32Array,DataView:DataView},{},t.heap),t.buffer=null};u(e||65536);var m=function(e,t){var n=new Int32Array(e,t+320,5);n[0]=1732584193,n[1]=-271733879,n[2]=-1732584194,n[3]=271733878,n[4]=-1009589776},g=function(e,n){var i=a(e),o=new Int32Array(t.heap,0,i>>2);return r(o,e),s(o,e,n),i},h=function(e,n,a){c(e)(t.h8,t.h32,n,a,0)},f=function(e,n,a,r,i){var s=a;i&&(s=g(a,r)),h(e,n,a),t.core.hash(s,t.padMaxChunkLen)},_=function(e,t){var n=new Int32Array(e,t+320,5),a=new Int32Array(5),r=new DataView(a.buffer);return r.setInt32(0,n[0],!1),r.setInt32(4,n[1],!1),r.setInt32(8,n[2],!1),r.setInt32(12,n[3],!1),r.setInt32(16,n[4],!1),a},y=this.rawDigest=function(e){var n=e.byteLength||e.length;m(t.heap,t.padMaxChunkLen);var a=0,r=t.maxChunkLen;for(a=0;n>a+r;a+=r)f(e,a,r,n,!1);return f(e,a,n-a,n,!0),_(t.heap,t.padMaxChunkLen)};this.digest=this.digestFromString=this.digestFromBuffer=this.digestFromArrayBuffer=function(e){return d(y(e).buffer)}}function n(e,t,n){"use asm";var a=new e.Int32Array(n);function r(e,t){e=e|0;t=t|0;var n=0,r=0,i=0,s=0,o=0,l=0,c=0,d=0,p=0,u=0,m=0,g=0,h=0,f=0;i=a[t+320>>2]|0;o=a[t+324>>2]|0;c=a[t+328>>2]|0;p=a[t+332>>2]|0;m=a[t+336>>2]|0;for(n=0;(n|0)<(e|0);n=n+64|0){s=i;l=o;d=c;u=p;g=m;for(r=0;(r|0)<64;r=r+4|0){f=a[n+r>>2]|0;h=((i<<5|i>>>27)+(o&c|~o&p)|0)+((f+m|0)+1518500249|0)|0;m=p;p=c;c=o<<30|o>>>2;o=i;i=h;a[e+r>>2]=f}for(r=e+64|0;(r|0)<(e+80|0);r=r+4|0){f=(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])<<1|(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])>>>31;h=((i<<5|i>>>27)+(o&c|~o&p)|0)+((f+m|0)+1518500249|0)|0;m=p;p=c;c=o<<30|o>>>2;o=i;i=h;a[r>>2]=f}for(r=e+80|0;(r|0)<(e+160|0);r=r+4|0){f=(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])<<1|(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])>>>31;h=((i<<5|i>>>27)+(o^c^p)|0)+((f+m|0)+1859775393|0)|0;m=p;p=c;c=o<<30|o>>>2;o=i;i=h;a[r>>2]=f}for(r=e+160|0;(r|0)<(e+240|0);r=r+4|0){f=(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])<<1|(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])>>>31;h=((i<<5|i>>>27)+(o&c|o&p|c&p)|0)+((f+m|0)-1894007588|0)|0;m=p;p=c;c=o<<30|o>>>2;o=i;i=h;a[r>>2]=f}for(r=e+240|0;(r|0)<(e+320|0);r=r+4|0){f=(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])<<1|(a[r-12>>2]^a[r-32>>2]^a[r-56>>2]^a[r-64>>2])>>>31;h=((i<<5|i>>>27)+(o^c^p)|0)+((f+m|0)-899497514|0)|0;m=p;p=c;c=o<<30|o>>>2;o=i;i=h;a[r>>2]=f}i=i+s|0;o=o+l|0;c=c+d|0;p=p+u|0;m=m+g|0}a[t+320>>2]=i;a[t+324>>2]=o;a[t+328>>2]=c;a[t+332>>2]=p;a[t+336>>2]=m}return{hash:r}}if("undefined"!=typeof module&&(module.exports=t),"undefined"!=typeof e&&(e.Rusha=t),"undefined"!=typeof FileReaderSync){var a=new FileReaderSync,r=new t(4194304);self.onmessage=function(e){var t,n=e.data.data;if(n instanceof Blob)try{n=a.readAsBinaryString(n)}catch(i){return void self.postMessage({id:e.data.id,error:i.name})}t=r.digest(n),self.postMessage({id:e.data.id,hash:t})}}var i={getDataType:function(t){if("string"==typeof t)return"string";if(t instanceof Array)return"array";if("undefined"!=typeof e&&e.Buffer&&e.Buffer.isBuffer(t))return"buffer";if(t instanceof ArrayBuffer)return"arraybuffer";if(t.buffer instanceof ArrayBuffer)return"view";throw new Error("Unsupported data type.")}}}(this),function(){"use strict";function e(e){throw e}function t(e,t){var n=e.split("."),a=p;!(n[0]in a)&&a.execScript&&a.execScript("var "+n[0]);for(var r;n.length&&(r=n.shift());)n.length||t===d?a=a[r]?a[r]:a[r]={}:a[r]=t}function n(e,t,n){var a,r="number"==typeof t?t:t=0,i="number"==typeof n?n:e.length;for(a=-1,r=7&i;r--;++t)a=a>>>8^_[255&(a^e[t])];for(r=i>>3;r--;t+=8)a=a>>>8^_[255&(a^e[t])],a=a>>>8^_[255&(a^e[t+1])],a=a>>>8^_[255&(a^e[t+2])],a=a>>>8^_[255&(a^e[t+3])],a=a>>>8^_[255&(a^e[t+4])],a=a>>>8^_[255&(a^e[t+5])],a=a>>>8^_[255&(a^e[t+6])],a=a>>>8^_[255&(a^e[t+7])];return(4294967295^a)>>>0}function a(){}function r(e){var t,n,a,r,i,s,o,l,c,d=e.length,p=0,m=Number.POSITIVE_INFINITY;for(l=0;l<d;++l)e[l]>p&&(p=e[l]),e[l]<m&&(m=e[l]);for(t=1<<p,n=new(u?Uint32Array:Array)(t),a=1,r=0,i=2;a<=p;){for(l=0;l<d;++l)if(e[l]===a){for(s=0,o=r,c=0;c<a;++c)s=s<<1|1&o,o>>=1;for(c=s;c<t;c+=i)n[c]=a<<16|l;++r}++a,r<<=1,i<<=1}return[n,p,m]}function i(t,n){switch(this.i=[],this.j=32768,this.d=this.f=this.c=this.n=0,this.input=u?new Uint8Array(t):t,this.o=!1,this.k=k,this.w=!1,!n&&(n={})||(n.index&&(this.c=n.index),n.bufferSize&&(this.j=n.bufferSize),n.bufferType&&(this.k=n.bufferType),n.resize&&(this.w=n.resize)),this.k){case w:this.a=32768,this.b=new(u?Uint8Array:Array)(32768+this.j+258);break;case k:this.a=0,this.b=new(u?Uint8Array:Array)(this.j),this.e=this.D,this.q=this.A,this.l=this.C;break;default:e(Error("invalid inflate mode"))}}function s(t,n){for(var a,r=t.f,i=t.d,s=t.input,o=t.c;i<n;)a=s[o++],a===d&&e(Error("input buffer is broken")),r|=a<<i,i+=8;return a=r&(1<<n)-1,t.f=r>>>n,t.d=i-n,t.c=o,a}function o(e,t){for(var n,a,r,i=e.f,s=e.d,o=e.input,l=e.c,c=t[0],p=t[1];s<p&&(n=o[l++],n!==d);)i|=n<<s,s+=8;return a=c[i&(1<<p)-1],r=a>>>16,e.f=i>>r,e.d=s-r,e.c=l,65535&a}function l(e){function t(e,t,n){var a,r,i,l;for(l=0;l<e;)switch(a=o(this,t)){case 16:for(i=3+s(this,2);i--;)n[l++]=r;break;case 17:for(i=3+s(this,3);i--;)n[l++]=0;r=0;break;case 18:for(i=11+s(this,7);i--;)n[l++]=0;r=0;break;default:r=n[l++]=a}return n}var n,a,i,l,c=s(e,5)+257,d=s(e,5)+1,p=s(e,4)+4,m=new(u?Uint8Array:Array)(M.length);for(l=0;l<p;++l)m[M[l]]=s(e,3);n=r(m),a=new(u?Uint8Array:Array)(c),i=new(u?Uint8Array:Array)(d),e.l(r(t.call(e,c,n,a)),r(t.call(e,d,n,i)))}function c(e){this.input=e,this.c=0,this.m=[],this.s=!1}var d=void 0,p=this,u="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array;new(u?Uint8Array:Array)(256);var m;for(m=0;256>m;++m)for(var g=m,h=7,g=g>>>1;g;g>>>=1)--h;var f=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],_=u?new Uint32Array(f):f;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 y,v=[];for(y=0;288>y;y++)switch(!0){case 143>=y:
v.push([y+48,8]);break;case 255>=y:v.push([y-144+400,9]);break;case 279>=y:v.push([y-256+0,7]);break;case 287>=y:v.push([y-280+192,8]);break;default:e("invalid literal: "+y)}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,r=[];for(n=3;258>=n;n++)a=t(n),r[n]=a[2]<<24|a[1]<<16|a[0];return r}();u&&new Uint32Array(b);var w=0,k=1;i.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,r=this.b,i=this.a,o=d,c=d,p=d,m=r.length,g=d;switch(this.d=this.f=0,o=n[a++],o===d&&e(Error("invalid uncompressed block header: LEN (first byte)")),c=o,o=n[a++],o===d&&e(Error("invalid uncompressed block header: LEN (second byte)")),c|=o<<8,o=n[a++],o===d&&e(Error("invalid uncompressed block header: NLEN (first byte)")),p=o,o=n[a++],o===d&&e(Error("invalid uncompressed block header: NLEN (second byte)")),p|=o<<8,c===~p&&e(Error("invalid uncompressed block header: length verify")),a+c>n.length&&e(Error("input buffer is broken")),this.k){case w:for(;i+c>r.length;){if(g=m-i,c-=g,u)r.set(n.subarray(a,a+g),i),i+=g,a+=g;else for(;g--;)r[i++]=n[a++];this.a=i,r=this.e(),i=this.a}break;case k:for(;i+c>r.length;)r=this.e({t:2});break;default:e(Error("invalid inflate mode"))}if(u)r.set(n.subarray(a,a+c),i),i+=c,a+=c;else for(;c--;)r[i++]=n[a++];this.c=a,this.a=i,this.b=r;break;case 1:this.l(O,L);break;case 2:l(this);break;default:e(Error("unknown BTYPE: "+t))}}return this.q()};var $,C,S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],M=u?new Uint16Array(S):S,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=u?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=u?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=u?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],R=u?new Uint8Array(P):P,N=new(u?Uint8Array:Array)(288);for($=0,C=N.length;$<C;++$)N[$]=143>=$?8:255>=$?9:279>=$?7:8;var F,U,O=r(N),B=new(u?Uint8Array:Array)(30);for(F=0,U=B.length;F<U;++F)B[F]=5;var L=r(B);i.prototype.l=function(e,t){var n=this.b,a=this.a;this.r=e;for(var r,i,l,c,d=n.length-258;256!==(r=o(this,e));)if(256>r)a>=d&&(this.a=a,n=this.e(),a=this.a),n[a++]=r;else for(i=r-257,c=I[i],0<E[i]&&(c+=s(this,E[i])),r=o(this,t),l=D[r],0<R[r]&&(l+=s(this,R[r])),a>=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},i.prototype.C=function(e,t){var n=this.b,a=this.a;this.r=e;for(var r,i,l,c,d=n.length;256!==(r=o(this,e));)if(256>r)a>=d&&(n=this.e(),d=n.length),n[a++]=r;else for(i=r-257,c=I[i],0<E[i]&&(c+=s(this,E[i])),r=o(this,t),l=D[r],0<R[r]&&(l+=s(this,R[r])),a+c>d&&(n=this.e(),d=n.length);c--;)n[a]=n[a++-l];for(;8<=this.d;)this.d-=8,this.c--;this.a=a},i.prototype.e=function(){var e,t,n=new(u?Uint8Array:Array)(this.a-32768),a=this.a-32768,r=this.b;if(u)n.set(r.subarray(32768,n.length));else for(e=0,t=n.length;e<t;++e)n[e]=r[e+32768];if(this.i.push(n),this.n+=n.length,u)r.set(r.subarray(a,a+32768));else for(e=0;32768>e;++e)r[e]=r[a+e];return this.a=32768,r},i.prototype.D=function(e){var t,n,a,r,i=this.input.length/this.c+1|0,s=this.input,o=this.b;return e&&("number"==typeof e.t&&(i=e.t),"number"==typeof e.z&&(i+=e.z)),2>i?(n=(s.length-this.c)/this.r[2],r=258*(n/2)|0,a=r<o.length?o.length+r:o.length<<1):a=o.length*i,u?(t=new Uint8Array(a),t.set(o)):t=o,this.b=t},i.prototype.q=function(){var e,t,n,a,r,i=0,s=this.b,o=this.i,l=new(u?Uint8Array:Array)(this.n+(this.a-32768));if(0===o.length)return u?this.b.subarray(32768,this.a):this.b.slice(32768,this.a);for(t=0,n=o.length;t<n;++t)for(e=o[t],a=0,r=e.length;a<r;++a)l[i++]=e[a];for(t=32768,n=this.a;t<n;++t)l[i++]=s[t];return this.i=[],this.buffer=l},i.prototype.A=function(){var e,t=this.a;return u?this.w?(e=new Uint8Array(t),e.set(this.b.subarray(0,t))):e=this.b.subarray(0,t):(this.b.length>t&&(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<t;){var r=new a,s=d,o=d,l=d,c=d,p=d,m=d,g=d,h=d,f=d,_=this.input,y=this.c;switch(r.u=_[y++],r.v=_[y++],(31!==r.u||139!==r.v)&&e(Error("invalid file signature:"+r.u+","+r.v)),r.p=_[y++],r.p){case 8:break;default:e(Error("unknown compression method: "+r.p))}if(r.h=_[y++],h=_[y++]|_[y++]<<8|_[y++]<<16|_[y++]<<24,r.H=new Date(1e3*h),r.N=_[y++],r.M=_[y++],0<(4&r.h)&&(r.I=_[y++]|_[y++]<<8,y+=r.I),0<(8&r.h)){for(g=[],m=0;0<(p=_[y++]);)g[m++]=String.fromCharCode(p);r.name=g.join("")}if(0<(16&r.h)){for(g=[],m=0;0<(p=_[y++]);)g[m++]=String.fromCharCode(p);r.J=g.join("")}0<(2&r.h)&&(r.B=65535&n(_,0,y),r.B!==(_[y++]|_[y++]<<8)&&e(Error("invalid header crc16"))),s=_[_.length-4]|_[_.length-3]<<8|_[_.length-2]<<16|_[_.length-1]<<24,_.length-y-4-4<512*s&&(c=s),o=new i(_,{index:y,bufferSize:c}),r.data=l=o.g(),y=o.c,r.K=f=(_[y++]|_[y++]<<8|_[y++]<<16|_[y++]<<24)>>>0,n(l,d,d)!==f&&e(Error("invalid CRC-32 checksum: 0x"+n(l,d,d).toString(16)+" / 0x"+f.toString(16))),r.L=s=(_[y++]|_[y++]<<8|_[y++]<<16|_[y++]<<24)>>>0,(4294967295&l.length)!==s&&e(Error("invalid input size: "+(4294967295&l.length)+" / "+s)),this.m.push(r),this.c=y}this.s=!0;var v,b,w,k=this.m,$=0,C=0;for(v=0,b=k.length;v<b;++v)C+=k[v].data.length;if(u)for(w=new Uint8Array(C),v=0;v<b;++v)w.set(k[v].data,$),$+=k[v].data.length;else{for(w=[],v=0;v<b;++v)w[v]=k[v].data;w=Array.prototype.concat.apply([],w)}return w},t("Zlib.Gunzip",c),t("Zlib.Gunzip.prototype.decompress",c.prototype.g),t("Zlib.Gunzip.prototype.getMembers",c.prototype.F)}.call(this),this.goog={provide:function(){},math:{}},goog.provide("goog.math.Long"),goog.math.Long=function(e,t){this.low_=0|e,this.high_=0|t},goog.math.Long.IntCache_={},goog.math.Long.fromInt=function(e){if(-128<=e&&e<128){var t=goog.math.Long.IntCache_[e];if(t)return t}var n=new goog.math.Long(0|e,e<0?-1:0);return-128<=e&&e<128&&(goog.math.Long.IntCache_[e]=n),n},goog.math.Long.fromNumber=function(e){return isNaN(e)||!isFinite(e)?goog.math.Long.ZERO:e<=-goog.math.Long.TWO_PWR_63_DBL_?goog.math.Long.MIN_VALUE:e+1>=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<n)throw Error("radix out of range: "+n);if("-"==e.charAt(0))return goog.math.Long.fromString(e.substring(1),n).negate();if(e.indexOf("-")>=0)throw Error('number format error: interior "-" character: '+e);for(var a=goog.math.Long.fromNumber(Math.pow(n,8)),r=goog.math.Long.ZERO,i=0;i<e.length;i+=8){var s=Math.min(8,e.length-i),o=parseInt(e.substring(i,i+s),n);if(s<8){var l=goog.math.Long.fromNumber(Math.pow(n,s));r=r.multiply(l).add(goog.math.Long.fromNumber(o))}else r=r.multiply(a),r=r.add(goog.math.Long.fromNumber(o))}return r},goog.math.Long.TWO_PWR_16_DBL_=65536,goog.math.Long.TWO_PWR_24_DBL_=1<<24,goog.math.Long.TWO_PWR_32_DBL_=goog.math.Long.TWO_PWR_16_DBL_*goog.math.Long.TWO_PWR_16_DBL_,goog.math.Long.TWO_PWR_31_DBL_=goog.math.Long.TWO_PWR_32_DBL_/2,goog.math.Long.TWO_PWR_48_DBL_=goog.math.Long.TWO_PWR_32_DBL_*goog.math.Long.TWO_PWR_16_DBL_,goog.math.Long.TWO_PWR_64_DBL_=goog.math.Long.TWO_PWR_32_DBL_*goog.math.Long.TWO_PWR_32_DBL_,goog.math.Long.TWO_PWR_63_DBL_=goog.math.Long.TWO_PWR_64_DBL_/2,goog.math.Long.ZERO=goog.math.Long.fromInt(0),goog.math.Long.ONE=goog.math.Long.fromInt(1),goog.math.Long.NEG_ONE=goog.math.Long.fromInt(-1),goog.math.Long.MAX_VALUE=goog.math.Long.fromBits(-1,2147483647),goog.math.Long.MIN_VALUE=goog.math.Long.fromBits(0,-2147483648),goog.math.Long.TWO_PWR_24_=goog.math.Long.fromInt(1<<24),goog.math.Long.prototype.toInt=function(){return this.low_},goog.math.Long.prototype.toNumber=function(){return this.high_*goog.math.Long.TWO_PWR_32_DBL_+this.getLowBitsUnsigned()},goog.math.Long.prototype.toString=function(e){var t=e||10;if(t<2||36<t)throw Error("radix out of range: "+t);if(this.isZero())return"0";if(this.isNegative()){if(this.equals(goog.math.Long.MIN_VALUE)){var n=goog.math.Long.fromNumber(t),a=this.div(n),r=a.multiply(n).subtract(this);return a.toString(t)+r.toInt().toString(t)}return"-"+this.negate().toString(t)}for(var i=goog.math.Long.fromNumber(Math.pow(t,6)),r=this,s="";;){var o=r.div(i),l=r.subtract(o.multiply(i)).toInt(),c=l.toString(t);if(r=o,r.isZero())return c+s;for(;c.length<6;)c="0"+c;s=""+c+s}},goog.math.Long.prototype.getHighBits=function(){return this.high_},goog.math.Long.prototype.getLowBits=function(){return this.low_},goog.math.Long.prototype.getLowBitsUnsigned=function(){return this.low_>=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<<t);t--);return 0!=this.high_?t+33:t+1},goog.math.Long.prototype.isZero=function(){return 0==this.high_&&0==this.low_},goog.math.Long.prototype.isNegative=function(){return this.high_<0},goog.math.Long.prototype.isOdd=function(){return 1==(1&this.low_)},goog.math.Long.prototype.equals=function(e){return this.high_==e.high_&&this.low_==e.low_},goog.math.Long.prototype.notEquals=function(e){return this.high_!=e.high_||this.low_!=e.low_},goog.math.Long.prototype.lessThan=function(e){return this.compare(e)<0},goog.math.Long.prototype.lessThanOrEqual=function(e){return this.compare(e)<=0},goog.math.Long.prototype.greaterThan=function(e){return this.compare(e)>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,r=65535&this.low_,i=e.high_>>>16,s=65535&e.high_,o=e.low_>>>16,l=65535&e.low_,c=0,d=0,p=0,u=0;return u+=r+l,p+=u>>>16,u&=65535,p+=a+o,d+=p>>>16,p&=65535,d+=n+s,c+=d>>>16,d&=65535,c+=t+i,c&=65535,goog.math.Long.fromBits(p<<16|u,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,r=65535&this.low_,i=e.high_>>>16,s=65535&e.high_,o=e.low_>>>16,l=65535&e.low_,c=0,d=0,p=0,u=0;return u+=r*l,p+=u>>>16,u&=65535,p+=a*l,d+=p>>>16,p&=65535,p+=r*o,d+=p>>>16,p&=65535,d+=n*l,c+=d>>>16,d&=65535,d+=a*o,c+=d>>>16,d&=65535,d+=r*s,c+=d>>>16,d&=65535,c+=t*l+n*o+a*s+r*i,c&=65535,goog.math.Long.fromBits(p<<16|u,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)),r=n.add(a.div(e));return r}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 i=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),o=s<=48?1:Math.pow(2,s-48),l=goog.math.Long.fromNumber(n),c=l.multiply(e);c.isNegative()||c.greaterThan(a);)n-=o,l=goog.math.Long.fromNumber(n),c=l.multiply(e);l.isZero()&&(l=goog.math.Long.ONE),i=i.add(l),a=a.subtract(c)}return i},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<<e,n<<e|t>>>32-e)}return goog.math.Long.fromBits(0,t<<e-32)},goog.math.Long.prototype.shiftRight=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 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<<bpe+1>1<<bpe;bpe++);bpe>>=1,mask=(1<<bpe)-1,radix=mask+1,one=int2bigInt(1,1,1),t=new Array(0),ss=t,s0=t,s1=t,s2=t,s3=t,s4=t,s5=t,s6=t,s7=t,T=t,sa=t,mr_x1=t,mr_r=t,mr_a=t,eg_v=t,eg_u=t,eg_A=t,eg_B=t,eg_C=t,eg_D=t,md_q1=t,md_q2=t,md_q3=t,md_r=t,md_r1=t,md_r2=t,md_tt=t,primes=t,pows=t,s_i=t,s_i2=t,s_R=t,s_rm=t,s_q=t,s_n1=t,s_a=t,s_r2=t,s_n=t,s_b=t,s_d=t,s_x1=t,s_x2=t,s_aa=t,rpprb=t,function(){function e(e){return JSON.parse(JSON.stringify(e))}function t(e,t,n,a,r){for(i=0;i<r;++i)e[t+i]=n[a+i]}function n(e){var t,n=[],a=e.length;for(t=0;t<a;++t)n.push(e[t]);return n}function a(t,n){var a=[];a.push(e(t));var r;for(r=0;r<n;++r)a.push(e(t));return a.push(0),a}function r(e,t){var n,a=[];for(n=0;n<t;++n)a.push(e);return a.push(0),a}function s(e,t,n,a,r){var i;for(i=0;i<r;i++)e[t+i]=n[a+i]}function o(e,t,n,a){var r;for(r=0;r<a;++r)e[t+r]=n}function l(e,t,n,a){var r,i="";for(r=0;r<a;++r)i+=String.fromCharCode(e[t+r]);return n==i?0:1}function c(e,t){var n,a=[];for(n=0;n<e;++n)a.push(t);return a}function d(t,n){var a,r=[];for(a=0;a<t;++a)r.push(e(n));return r}function p(t,n){var a;for(a=t.length-1;0<=a;--a)n=e(c(t[a],n));return n}function u(e){if(!e)throw Error("assert :P")}var m,g=void 0,h=null,f=0,_=0,y=f,v=f,b=0,w=0;window.WebPDecoder=function(){function k(e){return e==Wt||e==Gt||e==Kt||e==Yt}function $(e){return M(e,1)}function C(e,t){var n=1+((e.la-1)*t>>8),a=n<<8,r=f;for(e.Z>=a?(r=1,e.la-=n,e.Z-=a):(r=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 r}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=h,e.bc=0),e.la=255,e.gc=0}function M(e,t){for(var n=0,a=f,a=t-1;0<=a;a--)n|=C(e,128)<<a;return n}function x(e,t){var n=M(e,t);return $(e)?-n:n}function I(e,t,n,a){var r=w;for(u(e!=h),u(t!=h),u(4294967288>a),e.qa=t,e.Ia=n,e.ya=a,e.T=0,e.Q=0,e.g=0,e.L=0,r=e.fa=0;4>r&&r<e.ya;++r)e.T|=e.qa[e.Ia+e.Q]<<8*r,++e.Q}function A(e){for(;8<=e.g&&e.Q<e.ya;)e.T>>>=8,e.T+=e.qa[e.Ia+e.Q]<<24>>>0,++e.Q,e.g-=8}function E(e){8<=e.g&&A(e),e.Q==e.ya&&32==e.g&&(e.L=1)}function T(e,t){var n=0;if(u(0<=t),!e.L&&t<fn){if(e.Q==e.ya&&32<=e.g+t&&(e.L=1,32<e.g+t))return n;n=e.T>>e.g&_n[t],e.g+=t,8<=e.g&&8<=e.g&&A(e)}else e.fa=1;return n}function D(e){return e.Pa==e.gb}function P(e,t){return u(e!=h),0==t?0:(e.gb=2*t-1,e.Y=d(e.gb,Wn),e.Y==h?0:(e.Y[0].s=-1,e.Pa=1))}function R(e){e!=h&&(e.Y=h,e.Y=h,e.gb=0,e.Pa=0)}function N(e,t,n,a){for(var r=e.Y,i=0,s=+e.gb;0<a--;){if(i>=s)return 0;if(0>r[i].s){if(D(e))return 0;var o=e,l=o.Y,c=+o.Pa;r[i].s=c-i,o.Pa+=2,l[c+0].s=-1,l[c+1].s=-1}else if(0==r[i].s)return 0;i+=r[i].s+(n>>a&1)}if(0>r[i].s)r[i].s=0;else if(0!=r[i].s)return 0;return r[i].kc=t,1}function F(e,t,n){var a=f,r=0,i=0;for(u(e!=h),u(t!=h),a=0;a<n;++a)0<t[a]&&(++r,i=a);if(!P(e,r))return 0;if(1==r)return 0>i||i>=n?(R(e),0):N(e,i,0,0);if(r=0,i=c(n,f),i==h)return(r=r&&D(e))||R(e),r;var s=f,s=f,a=c(xn+1,0),o=f,l=c(xn+1,0),d=0;for(u(t!=h),u(0<n),u(i!=h),s=0;s<n;++s)t[s]>d&&(d=t[s]);if(d>xn)a=0;else{for(s=0;s<n;++s)++a[t[s]];for(o=a[0]=0,l[0]=-1,s=1;s<=d;++s)o=o+a[s-1]<<1,l[s]=o;for(s=0;s<n;++s)i[s]=0<t[s]?l[t[s]]++:Kn;a=1}if(!a)return(r=r&&D(e))||R(e),r;for(a=0;a<n;++a)if(0<t[a]&&!N(e,a,i[a],t[a]))return(r=r&&D(e))||R(e),r;return(r=D(e))||R(e),r}function U(e,t,n,a,r,i,s){for(var o=f,o=0;o<s;++o)r[i+o]=e[t+o]+n[a+o]&255}function O(n,a,r){var i=n.P.l;if(!(r=0>a||0>r||a+r>n.P.v)&&(r=0==a)){e:{var s=n.Ga,o=n.G,l=n.ub;r=n.P.l;var d=n.P.v,p=n.Xb,m=[h],g=h,_=d*r,y=h,v=h,v="WEBP_FILTER_TYPE",b=f,m=f,w=0,k=f;if(u(0<r&&0<d&&i>=r),u(s!=h&&p!=h),l<=Nn)r=0;else if(k=s[o+0]>>0&3,v=s[o+0]>>2&3,b=s[o+0]>>4&3,m=s[o+0]>>6&3,k<Fn||k>Un||v>=Fa||b>On||0!=m)r=0;else{if(k==Fn)w=l>=_,m=s,g=o+Nn;else{if(m=c(_,0),g=0,m==h){r=0;break e}var w=o+Nn,l=l-Nn,o=m,y=e(pn),$=0,C=Qe();C==h?w=0:(C.l=r,C.v=d,C.N=y,ve(Ot),y.put=It,y.Mb=xt,y.Pb=At,y.ka=h,y.ka=o,y.fd=0,y.width=r,y.height=d,C.a=en,I(C.o,s,w,l),C.Wa=Ea,tt(r,d,1,C,h)&&nt(C,r)&&(C.Wa=Aa,$=Xe(C,C.V,C.Ha,C.l,C.v,at)),C!=h&&et(C),w=$)}if(w){for(s=Ua[v],s!=h?(y=c(_,0),v=0,y==h&&(w=0,k!=Fn&&(g=m=h)),s(m,g,r,d,1,r,y,v),_=y,k=v):(_=m,k=g),s=0;0<d--;)t(p,s,_,k,r),k+=r,s+=i;b==On&&(w=m==h||0>=g||0>=r?0:1)}r=w}}r=!r}return r?h:0==a?n.Xb:+a*i}function B(e){var t=e.width,n=e.height,a=e.J;if(0>=t||0>=n||!(a>=Bt&&a<Jt))return nn;if(!e.Fc&&e.Jb==h){var r=h,i=0,s=0,o=0,l=0,r=b,d=t*Oa[a],p=d*n;if(a<Zt||(i=parseInt((t+1)/2,10),o=i*parseInt((n+1)/2,10),a==Xt&&(s=t,l=s*n)),r=p+2*o+l,r!=r)return nn;if(r=c(r,205),r==h)return tn;e.Jb=r,e.jc=h,a<Zt?(t=e.c.RGBA,t.ma=r,t.Sa=h,t.f=d,t.size=p):(t=e.c.Va,t.y=r,t.D=h,t.F=d,t.Wc=p,t.c=r,t.B=h+p,t.nb=i,t.Rc=o,t.S=r,t.C=h+p+o,t.rb=i,t.Uc=o,a==Xt&&(t.p=r,t.q=h+p+2*o),t.Wb=l,t.Fa=s)}return a=1,i=e.J,s=e.width,o=e.height,i>=Bt&&i<Jt?i<Zt?(e=e.c.RGBA,a&=e.f*o<=e.size,a&=e.f>=s*Oa[i],a&=e.ma!=h):(e=e.c.Va,l=e.nb*parseInt((o+1)/2,10),d=e.rb*parseInt((o+1)/2,10),p=e.Fa*o,a&=e.F*o<=e.Wc,a&=l<=e.Rc,a&=d<=e.Uc,a&=p<=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!=h,a&=e.c!=h,a&=e.S!=h,i==Xt&&(a&=e.Fa>=s,a&=p<=e.Wb,a&=e.p!=h)):a=0,a?en:nn}function L(e,t,n,a){if(a==h||0>=e||0>=t)return nn;if(n!=h){if(n.Ua){var r=n.wc,i=n.vc,s=n.t&-2,o=n.k&-2;if(0>s||0>o||0>=r||0>=i||s+r>e||o+i>t)return nn;e=r,t=i}if(n.I){if(0>=n.Ba||0>=n.Aa)return nn;e=n.Ba,t=n.Aa}}return a.width=e,a.height=t,B(a)}function H(e){return e&-256?0>e?0:255:e}function q(e,t,n,a){var r,i=c(16,0);r=0;var s;for(s=0;4>s;++s){var o=e[t+0]+e[t+8],l=e[t+0]-e[t+8],d=(e[t+4]*lr>>16)-(e[t+12]*or>>16),p=(e[t+4]*or>>16)+(e[t+12]*lr>>16);i[r+0]=o+p,i[r+1]=l+d,i[r+2]=l-d,i[r+3]=o-p,r+=4,t++}for(s=r=0;4>s;++s)e=i[r+0]+4,o=e+i[r+8],l=e-i[r+8],d=(i[r+4]*lr>>16)-(i[r+12]*or>>16),p=(i[r+4]*or>>16)+(i[r+12]*lr>>16),n[a+0+0*ma]=H(n[a+0+0*ma]+(o+p>>3)),n[a+1+0*ma]=H(n[a+1+0*ma]+(l+d>>3)),n[a+2+0*ma]=H(n[a+2+0*ma]+(l-d>>3)),n[a+3+0*ma]=H(n[a+3+0*ma]+(o-p>>3)),r++,a+=ma}function V(e,t,n,a,r){q(e,t,n,a),r&&q(e,t+16,n,a+4)}function z(e,t,n,a){Ba(e,t+0,n,a+0,1),Ba(e,t+32,n,a+4*ma,1)}function W(e,t,n,a){e=e[t+0]+4;var r;for(r=0;4>r;++r)for(t=0;4>t;++t)n[a+t+r*ma]=H(n[a+t+r*ma]+(e>>3))}function G(e,t,n,a){e[t+0]&&W(e,t+0,n,a+0),e[t+16]&&W(e,t+16,n,a+4),e[t+32]&&W(e,t+32,n,a+4*ma),e[t+48]&&W(e,t+48,n,a+4*ma+4)}function K(e,t,n){var a,r=t-ma,i=ir,s=255-e[r-1];for(a=0;a<n;++a){var o,l=i,c=s+e[t-1];for(o=0;o<n;++o)e[t+o]=l[c+e[r+o]];t+=ma}}function Y(e,t,n){var a;for(a=0;16>a;++a)for(i=0;16>i;++i)t[n+a*ma+i]=e}function Z(e,t,n){return e+2*t+n+2>>2}function X(e,t,n){var a,r;for(a=0;8>a;++a)for(r=0;8>r;++r)t[n+r+a*ma]=e}function J(e,t,n){var a=e[t-n],r=e[t+0],i=3*(r-a)+ar[1020+e[t-2*n]-e[t+n]],s=rr[112+(i+4>>3)];e[t-n]=ir[255+a+rr[112+(i+3>>3)]],e[t+0]=ir[255+r-s]}function Q(e,t,n,a){var r=e[t+0],i=e[t+n];return tr[255+e[t-2*n]-e[t-n]]>a||tr[255+i-r]>a}function ee(e,t,n,a,r){var i=e[t-3*n],s=e[t-2*n],o=e[t-n],l=e[t+0],c=e[t+n],d=e[t+2*n],p=e[t+3*n];return 2*tr[255+o-l]+nr[255+s-c]>a?0:tr[255+e[t-4*n]-i]<=r&&tr[255+i-s]<=r&&tr[255+s-o]<=r&&tr[255+p-d]<=r&&tr[255+d-c]<=r&&tr[255+c-l]<=r}function te(e,t,n,a){var r;for(r=0;16>r;++r)2*tr[255+e[t+r-n]-e[t+r+0]]+nr[255+e[t+r-2*n]-e[t+r+n]]<=a&&J(e,t+r,n)}function ne(e,t,n,a){var r;for(r=0;16>r;++r)2*tr[255+e[t+r*n-1]-e[t+r*n+0]]+nr[255+e[t+r*n-2]-e[t+r*n+1]]<=a&&J(e,t+r*n,1)}function ae(e,t,n,a){var r;for(r=3;0<r;--r)t+=4*n,te(e,t+0,n,a)}function re(e,t,n,a){var r;for(r=3;0<r;--r)t+=4,ne(e,t+0,n,a)}function ie(e,t,n,a,r,i,s,o){for(;0<r--;){if(ee(e,t+0,n,i,s))if(Q(e,t+0,n,o))J(e,t+0,n);else{var l=e,c=t+0,d=n,p=l[c-2*d],u=l[c-d],m=l[c+0],g=l[c+d],h=l[c+2*d],f=ar[1020+3*(m-u)+ar[1020+p-g]],_=27*f+63>>7,y=18*f+63>>7,f=9*f+63>>7;l[c-3*d]=ir[255+l[c-3*d]+f],l[c-2*d]=ir[255+p+y],l[c-d]=ir[255+u+_],l[c+0]=ir[255+m-_],l[c+d]=ir[255+g-y],l[c+2*d]=ir[255+h-f]}t+=a}}function se(e,t,n,a,r,i,s,o){for(;0<r--;){if(ee(e,t+0,n,i,s))if(Q(e,t+0,n,o))J(e,t+0,n);else{var l=e,c=t+0,d=n,p=l[c-d],u=l[c+0],m=l[c+d],g=3*(u-p),h=rr[112+(g+4>>3)],g=rr[112+(g+3>>3)],f=h+1>>1;l[c-2*d]=ir[255+l[c-2*d]+f],l[c-d]=ir[255+p+g],l[c+0]=ir[255+u-h],l[c+d]=ir[255+m-f]}t+=a}}function oe(e,t,n,a,r,i){ie(e,t+0,n,1,16,a,r,i)}function le(e,t,n,a,r,i){ie(e,t+0,1,n,16,a,r,i)}function ce(e,t,n,a,r,i){var s;for(s=3;0<s;--s)t+=4*n,se(e,t+0,n,1,16,a,r,i)}function de(e,t,n,a,r,i){var s;for(s=3;0<s;--s)t+=4,se(e,t+0,1,n,16,a,r,i)}function pe(e,t,n,a,r,i,s,o){ie(e,t,r,1,8,i,s,o),ie(n,a,r,1,8,i,s,o)}function ue(e,t,n,a,r,i,s,o){ie(e,t,1,r,8,i,s,o),ie(n,a,1,r,8,i,s,o)}function me(e,t,n,a,r,i,s,o){se(e,t+4*r,r,1,8,i,s,o),se(n,a+4*r,r,1,8,i,s,o)}function ge(e,t,n,a,r,i,s,o){se(e,t+4,1,r,8,i,s,o),se(n,a+4,1,r,8,i,s,o)}function he(e,t){return t==Xn?0==e.i?0==e.d?ra:aa:0==e.d?na:Xn:t}function fe(e,t,n,a){for(i=0;4>i;++i)e[t+i]=n[a+i]}function _e(e,t){return 0>e?0:e>t?t:e}function ye(e){e.a="VP8_STATUS_OK",e.xc="OK"}function ve(e){e>>>8!=Ot>>>8&&alert("mismatch error")}function be(e,t,n){return e.a==en&&(e.a=t,e.xc=n,e.za=0),0}function we(t,n){var a=[0],r=_,s=[w],o=e(ya),l=e(va),c=e(gn),s="VP8StatusCode",o=e(mn);if(t==h)return alert("(dec == null)"),0;if(ye(t),n==h)return be(t,"VP8_STATUS_INVALID_PARAM","null VP8Io passed to VP8GetHeaders()");if(o.data=n.data,o.b=n.b,o.e=n.e,o.b=[o.b],o.e=[o.e],o=[o],s=Pt(o),s!=en)return be(t,s,"Incorrect/incomplete header.");if(o=o[0],o.b=o.b[0],o.e=o.e[0],o.ia)return be(t,an,"Unexpected lossless format encountered.");if(t.Ga==h&&(u(0==t.ub),t.Ga=o.$,t.G=o.G,t.ub=o.pa),r=o.data,a=o.b+o.offset,s=o.e-o.offset,u(o.e>=o.offset),4>s[0])return be(t,ln,"Truncated header.");if(c=r[a+0]|r[a+1]<<8|r[a+2]<<16,o=t.Ac,o.fb=!(1&c)+0,o.Jc=c>>1&7,o.Nc=c>>4&1,o.Ra=c>>5,3<o.Jc)return be(t,"VP8_STATUS_BITSTREAM_ERROR","Incorrect keyframe parameters.");if(!o.Nc)return be(t,"VP8_STATUS_UNSUPPORTED_FEATURE","Frame not displayable.");if(a+=3,s-=3,l=t.P,o.fb){if(7>s)return be(t,"VP8_STATUS_NOT_ENOUGH_DATA","cannot parse picture header");if(!(3<=s&&157==r[a+0]&&1==r[a+1]&&42==r[a+2]))return be(t,"VP8_STATUS_BITSTREAM_ERROR","Bad code word");for(l.l=16383&(r[a+4]<<8|r[a+3]),l.gd=r[a+4]>>6,l.v=16383&(r[a+6]<<8|r[a+5]),l.hd=r[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;i<c.Ta.length;++i)c.Ta[i]=255;for(c.z=e(br),c=t.Ca,u(c!=h),c.pb=0,c.ob=0,c.tb=1,i=0;i<c.Kb.length;++i)c.Kb[i]=0;for(i=0;i<c.Cb.length;++i)c.Cb[i]=0;t.Lb=0}if(o.Ra>s)return be(t,"VP8_STATUS_NOT_ENOUGH_DATA","bad partition length");c=t.o,S(c,r,a,a+o.Ra),a+=o.Ra,s-=o.Ra,o.fb&&(l.uc=$(c),l.$c=$(c));var l=c,d=t.Ca,p=t.R;if(u(l!=h),u(d!=h),d.pb=$(l),d.pb){if(d.ob=$(l),$(l)){var m;for(d.tb=$(l),m=0;m<sa;++m)d.Kb[m]=$(l)?x(l,7):0;for(m=0;m<sa;++m)d.Cb[m]=$(l)?x(l,6):0}if(d.ob)for(m=0;m<ia;++m)p.Ta[m]=$(l)?M(l,8):255}else d.ob=0;if(l.Ab)return be(t,"VP8_STATUS_BITSTREAM_ERROR","cannot parse segment header");if(l=c,d=t.ga,d.Oc=$(l),d.Fb=M(l,6),d.kb=M(l,3),d.oc=$(l),d.oc&&$(l)){for(p=0;p<oa;++p)$(l)&&(d.Lc[p]=x(l,6));for(p=0;p<la;++p)$(l)&&(d.Gc[p]=x(l,6))}if(t.A=0==d.Fb?0:d.Oc?1:2,0<t.A)if(t.Ca.pb)for(p=0;p<sa;++p)m=t.Ca.Cb[p],t.Ca.tb||(m+=d.Fb),t.Zb[p]=m;else t.Zb[0]=d.Fb;if(l.Ab)return be(t,"VP8_STATUS_BITSTREAM_ERROR","cannot parse filter header");var l=r,g=a,d=g,s=g+s;m=0;var y=f,v=f;if(t.Hb=1<<M(t.o,2),y=t.Hb-1,p=l,m=g+3*y,s<m)s="VP8_STATUS_NOT_ENOUGH_DATA";else{for(v=0;v<y;++v){var g=p,b=m+(l[d+0]|l[d+1]<<8|l[d+2]<<16);b>s&&(g=l),S(t.ic[+v],p,m,b),p=g,m=b,d+=3}S(t.ic[+y],p,m,s),s=m<s?"VP8_STATUS_OK":"VP8_STATUS_SUSPENDED"}if("VP8_STATUS_OK"!=s)return be(t,"VP8_STATUS_BITSTREAM_ERROR","cannot parse partitions");for(y=t.o,s=M(y,7),l=$(y)?x(y,4):0,d=$(y)?x(y,4):0,p=$(y)?x(y,4):0,m=$(y)?x(y,4):0,y=$(y)?x(y,4):0,v=t.Ca,g=f,g=0;g<sa;++g){if(b=f,v.pb)b=v.Kb[g],v.tb||(b+=s);else{if(0<g){t.yb[g]=t.yb[0];continue}b=s}var k=t.yb[g];k.sc[0]=_r[_e(b+l,127)],k.sc[1]=yr[_e(b+0,127)],k.sb[0]=2*_r[_e(b+d,127)],k.sb[1]=101581*yr[_e(b+p,127)]>>16,8>k.sb[1]&&(k.sb[1]=8),k.qc[0]=_r[_e(b+m,117)],k.qc[1]=yr[_e(b+y,127)]}if(!o.fb)return be(t,rn,"Not a key frame.");for(t.Zc=259,$(c),s=t.R,l=0;l<ca;++l)for(d=0;d<da;++d)for(p=0;p<pa;++p)for(m=0;m<ua;++m)C(c,kr[l][d][p][m])&&(s.z[l][d][p][m]=M(c,8));if(t.pc=$(c),t.pc&&(t.Pc=M(c,8)),t.P.uc){if(a-=8,c=w,8>o.Ra||1!=r[a+8-1])return be(t,an,"RIFF: Inconsistent extra information.");c=r[a+0]<<0|r[a+1]<<8|r[a+2]<<16,t.fc=c,t.dd=h,t.cd=r[a+3]}return t.za=1}function ke(e,t,n,a,r,i){var s=t[r][n];if(!C(e,s[0]))return 0;for(;;){if(++r,C(e,s[1])){var o;if(C(e,s[2])){if(C(e,s[3]))if(C(e,s[6])){o=_,n=C(e,s[8]),s=C(e,s[9+n]),s=2*n+s,n=0,o=Cr[s];var l;for(l=0;l<o.length-1;++l)n+=n+C(e,o[l]);n+=3+(8<<s)}else C(e,s[7])?(n=7+2*C(e,165),n+=C(e,145)):n=5+C(e,159);else n=C(e,s[4])?3+C(e,s[5]):2;s=t[$r[r]][2]}else s=t[$r[r]][1],n=1;if(o=Sr[r-1],i[i[i.length-1]+o]=(C(e,128)?-n:n)*a[(0<o)+0],16==r||!C(e,s[0]))return r}else s=t[$r[r]][0];if(16==r)return 16}}function $e(e,t){return((16777216*e[0]+65536*e[1]+256*e[2]+1*e[3])*Ir&4278190080)>>t}function Ce(e,s){var l=0;if(e==h)return 0;if(s==h)return be(e,"VP8_STATUS_INVALID_PARAM","NULL VP8Io parameter in VP8Decode().");if(!e.za&&!we(e,s))return 0;u(e.za);var d;if(s.Mb&&!s.Mb(s))be(e,on,"Frame setup failed"),d=e.a;else{s.Za&&(e.A=0);var p=mr[e.A];2==e.A?(e.lb=0,e.mb=0):(e.lb=s.t-p>>4,e.mb=s.k-p>>4,0>e.lb&&(e.lb=0),0>e.mb&&(e.mb=0)),e.Ya=s.K+15+p>>4,e.wb=s.Ka+15+p>>4,e.wb>e.Ma&&(e.wb=e.Ma),e.Ya>e.hb&&(e.Ya=e.hb),d=en}if(l=d==en){if(l){var m;e:{if(e.Ja=0,e.qb){var y=e.rc;if(!WebPWorkerReset(y)){m=be(e,tn,"thread initialization failed.");break e}y.Qd=e,y.Rd=e.oa.N,y.Ud=FinishRow,e.jb=0<e.A?gr:gr-1}else e.jb=hr;m=1}var v;if(!(v=!m)){var b;e:{var w=e.jb,k=e.Ma,$=4*k,S=32*k,M=k+1,x=0<e.A?k*(e.qb?2:1):0,I=ga,A=S*(16*w+parseInt(3*mr[e.A]/2,10)),E=e.Ga!=h?e.P.l*e.P.v:0,T=$+S+M+x+I+384+A+E+ur;if(T!=T)b=0;else{if(T>e.Gb){if(e.ib=0,e.Gb=0,e.ib==h){b=be(e,"VP8_STATUS_OUT_OF_MEMORY","no memory during frame initialization.");break e}e.Gb=T}e.dc=205,e.Xc=r(205,16*k),e.Sc=r(205,8*k),e.Vc=r(205,8*k),e.M=x?a($a,x):h,e.Sd=x?0:h,e.oa.ha=0,e.oa.M=e.M,u(0==(I&ur)),e.Ea=r(205,1*I),e.z=-12851,e.H=16*k,e.r=8*k;var D=mr[e.A],P=D*e.H,R=D/2*e.r;e.ca=c(A,205),e.da=+P,e.aa=e.ca,e.ba=e.da+16*w*e.H+R,e.ra=e.aa,e.sa=e.ba+8*w*e.r+R,e.Xb=E?c(E,_):h,e.La=a(Ca,M),e.dc=r(Xn,$),b=1}}v=!b}if(v)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=h,s.q=h,!sr){var N;for(N=-255;255>=N;++N)tr[255+N]=0>N?-N:N,nr[255+N]=tr[255+N]>>1;for(N=-1020;1020>=N;++N)ar[1020+N]=-128>N?-128:127<N?127:N;for(N=-112;112>=N;++N)rr[112+N]=-16>N?-16:15<N?15:N;for(N=-255;510>=N;++N)ir[255+N]=0>N?0:255<N?255:N;sr=1}Ba=V,La=z,ja=W,Ha=G,qa=oe,Va=le,za=pe,Wa=ue,Ga=ce,Ka=de,Ya=me,Za=ge,Xa=te,Ja=ne,Qa=ae,er=re,l=1}}if(l)e:{for(e.d=0;e.d<e.Ya;++e.d){var F=e.ic[e.d&e.Hb-1],U=e,B=U.La[0];for(B.X=0,B.ua=0,o(U.cc,0,Xn,U.cc.length),U.W=(0<U.A&&U.d>=U.mb&&U.d<=U.Ya)+0,e.i=0;e.i<e.Ma;e.i++){var L,j=e,H=F,q=j.o,K=j.La[0],Y=j.La[1+j.i];j.Ca.ob&&(j.Lb=C(q,j.R.Ta[0])?2+C(q,j.R.Ta[2]):0+C(q,j.R.Ta[1])),Y.Nb=j.pc?C(q,j.Pc):0;var Z=j.dc;Z[Z.length-1]=0+4*j.i;var X=j.cc;if(j.wa=!C(q,145),j.wa)for(var J=j.Eb,Q=0,ee=g,ee=0;4>ee;++ee){var ie,se=X[ee];for(ie=0;4>ie;++ie){var _e=wr[Z[Z[Z.length-1]+ie]][se],ye=0;do ye=vr[2*ye+C(q,_e[ye])];while(0<ye);se=-ye,Z[Z[Z.length-1]+ie]=se,J[Q]=se,Q++}X[ee]=se}else{var se=C(q,156)?C(q,128)?ta:ea:C(q,163)?Qn:Jn;for(j.Eb[0]=se,ye=0;4>ye;++ye)Z[ye+Z[Z.length-1]]=se;for(ye=0;4>ye;++ye)X[ye]=se}if(j.Tc=C(q,142)?C(q,114)?C(q,183)?ta:ea:Qn:Jn,q.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 ve=g,Ce=g,Me=g,xe=Mr,Ie=j.yb[j.Lb],Ae=j.z,Ee=j.La[0],Te=c(4,0),De=c(4,0),Pe=c(4,0),Re=c(4,0),Ne=0,Fe=0,Ue=g,Oe=g,Be=g,Ae=r(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=(0<ke(H,j.R.z[1],je,Ie.sb,0,Le))+0;for(var Me=1,xe=j.R.z[0],He=Le,qe=Ae,Ve=c(16,f),ze=f,ze=0;4>ze;++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(xr[15&Y.X]),Re=n(xr[15&Ee.X]),Oe=0;4>Oe;++Oe){for(var Je=Re[Oe],Ue=0;4>Ue;++Ue){var je=Je+Pe[Ue],Qe=ke(H,xe,je,Ie.sc,Me,Ae);Pe[Ue]=Je=(0<Qe)+0,De[Ue]=(0!=Ae[Ae[Ae.length-1]+0])+0,Te[Ue]=(1<Qe)+0,Ae[Ae.length-1]+=16}Re[Oe]=Je,Fe|=$e(De,24-4*Oe),Ne|=$e(Te,24-4*Oe)}for(ve=$e(Pe,24),Ce=$e(Re,24),Pe=n(xr[Y.X>>4]),Re=n(xr[Ee.X>>4]),Be=0;4>Be;Be+=2){for(Oe=0;2>Oe;++Oe){for(Je=Re[Be+Oe],Ue=0;2>Ue;++Ue)je=Je+Pe[Be+Ue],Qe=ke(H,j.R.z[2],je,Ie.qc,0,Ae),Pe[Be+Ue]=Je=(0<Qe)+0,De[2*Oe+Ue]=(0!=Ae[Ae[Ae.length-1]+0])+0,Te[2*Oe+Ue]=(1<Qe)+0,Ae[Ae.length-1]+=16;Re[Be+Oe]=Je}Fe|=$e(De,8-2*Be),Ne|=$e(Te,8-2*Be)}ve|=$e(Pe,20),Ce|=$e(Re,20),Y.X=ve,Ee.X=Ce,j.z=Ae,j.Oa=Ne+0,j.ja=Ne|Fe,Y.Nb=!j.ja+0}L=!H.Ab}if(!L){l=be(e,"VP8_STATUS_NOT_ENOUGH_DATA","Premature end-of-file encountered."+e.i+" "+e.d);break e}var et=e,tt=et.Ea,nt=ha,at=et.Ea,rt=fa,it=et.Ea,st=_a;if(0<et.i){for(var ot=g,ot=-1;16>ot;++ot)fe(tt,nt+ot*ma-4,tt,nt+ot*ma+12);
for(ot=-1;8>ot;++ot)fe(at,rt+ot*ma-4,at,rt+ot*ma+4),fe(it,st+ot*ma-4,it,st+ot*ma+4)}else{for(ot=0;16>ot;++ot)tt[nt+ot*ma-1]=129;for(ot=0;8>ot;++ot)at[rt+ot*ma-1]=129,it[st+ot*ma-1]=129;0<et.d&&(tt[nt-1-ma]=at[rt-1-ma]=it[st-1-ma]=129)}var lt=et.Xc,ct=16*+et.i,dt=et.Sc,pt=8*+et.i,ut=et.Vc,mt=8*+et.i,gt=et.z,ht=g;if(0<et.d)t(tt,nt-ma,lt,ct,16),t(at,rt-ma,dt,pt,8),t(it,st-ma,ut,mt,8);else if(0==et.i){for(i=0;21>i;++i)tt[nt-ma-1+i]=127;for(i=0;9>i;++i)at[rt-ma-1+i]=127;for(i=0;9>i;++i)it[st-ma-1+i]=127}if(et.wa){var ft=nt-ma+16;0<et.d&&(et.i>=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*ma]=tt[_t+ft+4*ma]=tt[_t+ft+8*ma]=tt[_t+ft+12*ma]=tt[_t+ft+0];for(ht=0;16>ht;ht++){var yt=tt,vt=nt+fr[ht];cr[et.Eb[ht]](yt,vt),et.Oa&1<<ht?Ba(gt,16*+ht,yt,vt,0):et.ja&1<<ht&&ja(gt,16*+ht,yt,vt)}}else{var bt=he(et,et.Eb[0]);if(dr[bt](tt,nt),et.ja)for(ht=0;16>ht;ht++)yt=tt,vt=nt+fr[ht],et.Oa&1<<ht?Ba(gt,16*+ht,yt,vt,0):et.ja&1<<ht&&ja(gt,16*+ht,yt,vt)}if(bt=he(et,et.Tc),pr[bt](at,rt),pr[bt](it,st),983040&et.ja){var wt=et.z,kt=256;983040&et.Oa?La(wt,kt,at,rt):Ha(wt,kt,at,rt)}if(15728640&et.ja){var $t=et.z,kt=320;15728640&et.Oa?La($t,kt,it,st):Ha($t,kt,it,st)}et.d<et.hb-1&&(t(lt,ct,tt,nt+15*ma,16),t(dt,pt,at,rt+7*ma,8),t(ut,mt,it,st+7*ma,8));var Ct=e;if(0<Ct.A){var St=Ct.M[1+Ct.i],Mt=Ct.La[1+Ct.i].Nb,xt=Ct.Zb[Ct.Lb];Ct.ga.oc&&(xt+=Ct.ga.Lc[0],Ct.wa&&(xt+=Ct.ga.Gc[0])),xt=0>xt?0:63<xt?63:xt,St.zc=xt,0<Ct.ga.kb&&(xt=4<Ct.ga.kb?xt>>2:xt>>1,xt>9-Ct.ga.kb&&(xt=9-Ct.ga.kb)),St.yc=1>xt?1:xt,St.ab=(!Mt||Ct.wa)+0}for(var It=g,At=8*Ct.Ja*Ct.r,Et=Ct.ca,Tt=Ct.da+16*Ct.i+16*Ct.Ja*Ct.H,Dt=Ct.aa,Pt=Ct.ba+8*Ct.i+At,Rt=Ct.ra,Nt=Ct.sa+8*Ct.i+At,It=0;16>It;++It)t(Et,Tt+It*Ct.H,Ct.Ea,+ha+It*ma,16);for(It=0;8>It;++It)t(Dt,Pt+It*Ct.r,Ct.Ea,+fa+It*ma,8),t(Rt,Nt+It*Ct.r,Ct.Ea,+_a+It*ma,8)}var Ft=e,Ut=s,Ot=1,Bt=Ft.oa;if(Ft.qb){var Lt=Ft.rc,Ot=Ot&WebPWorkerSync(Lt);if(u(Lt.a==OK),Ot){if(Bt.N=Ut,Bt.ha=Ft.Ja,Bt.d=Ft.d,Bt.W=Ft.W,Bt.W){var jt=Bt.M;Bt.M=Ft.M,Ft.M=jt}WebPWorkerLaunch(Lt),++Ft.Ja==Ft.jb&&(Ft.Ja=0)}}else{Bt.d=Ft.d,Bt.W=Ft.W;t:{var Ht=1,qt=Ft.oa,Vt=mr[Ft.A],zt=Vt*Ft.H,Wt=parseInt(Vt/2)*Ft.r,Gt=16*qt.ha*Ft.H,Kt=8*qt.ha*Ft.r,Yt=Ft.ca,Zt=Ft.da-zt+Gt,Xt=Ft.aa,Jt=Ft.ba-Wt+Kt,Qt=Ft.ra,nn=Ft.sa-Wt+Kt,rn=0==qt.d,sn=(qt.d>=Ft.hb-1)+0,ln=16*qt.d,cn=16*(qt.d+1);if(qt.W){var dn=Ft,pn=f,un=dn.oa.d;for(u(dn.oa.W),pn=dn.lb;pn<dn.wb;++pn){var mn=dn,gn=pn,hn=un,fn=mn.oa,_n=mn.H,yn=fn.M[1+gn],vn=mn.ca,bn=mn.da+16*fn.ha*_n+16*gn,wn=yn.zc,kn=yn.yc,$n=2*wn+kn;if(0!=wn)if(1==mn.A)0<gn&&Ja(vn,bn,_n,$n+4),yn.ab&&er(vn,bn,_n,$n),0<hn&&Xa(vn,bn,_n,$n+4),yn.ab&&Qa(vn,bn,_n,$n);else{var Cn=mn.r,Sn=mn.aa,Mn=mn.ba+8*fn.ha*Cn+8*gn,xn=mn.ra,In=mn.sa+8*fn.ha*Cn+8*gn,An=mn.Ac.fb?40<=wn?2:15<=wn?1:0:40<=wn?3:20<=wn?2:15<=wn?1:0;0<gn&&(Va(vn,bn,_n,$n+4,kn,An),Wa(Sn,Mn,xn,In,Cn,$n+4,kn,An)),yn.ab&&(Ka(vn,bn,_n,$n,kn,An),Za(Sn,Mn,xn,In,Cn,$n,kn,An)),0<hn&&(qa(vn,bn,_n,$n+4,kn,An),za(Sn,Mn,xn,In,Cn,$n+4,kn,An)),yn.ab&&(Ga(vn,bn,_n,$n,kn,An),Ya(Sn,Mn,xn,In,Cn,$n,kn,An))}}}if(Ut.put){if(rn?(Ut.y=Ft.ca,Ut.D=Ft.da+Gt,Ut.c=Ft.aa,Ut.B=Ft.ba+Kt,Ut.S=Ft.ra,Ut.C=Ft.sa+Kt):(ln-=Vt,Ut.y=Yt,Ut.D=Zt,Ut.c=Xt,Ut.B=Jt,Ut.S=Qt,Ut.C=nn),sn||(cn-=Vt),cn>Ut.K&&(cn=Ut.K),Ft.Ga!=h&&ln<cn&&(0==ln?(Ut.p=O(Ft,ln,cn-ln),Ut.q=0):Ut.q=O(Ft,ln,cn-ln),Ut.p==h)){Ot=be(Ft,an,"Could not decode alpha data.");break t}if(ln<Ut.k){var En=Ut.k-ln,ln=Ut.k;u(!(1&En)),Ut.D+=Ft.H*En,Ut.B+=Ft.r*(En>>1),Ut.C+=Ft.r*(En>>1),Ut.p!=h&&(Ut.q+=Ut.width*En)}ln<cn&&(Ut.D+=Ut.t,Ut.B+=Ut.t>>1,Ut.C+=Ut.t>>1,Ut.p!=h&&(Ut.q+=Ut.t),Ut.w=ln-Ut.k,Ut.m=Ut.Ka-Ut.t,Ut.h=cn-ln,Ht=Ut.put(Ut))}qt.ha+1==Ft.jb&&!sn&&(t(Ft.ca,Ft.da-zt,Yt,Zt+16*Ft.H,zt),t(Ft.aa,Ft.ba-Wt,Xt,Jt+8*Ft.r,Wt),t(Ft.ra,Ft.sa-Wt,Qt,nn+8*Ft.r,Wt)),Ot=Ht}}if(!Ot){l=be(e,"VP8_STATUS_USER_ABORT","Output aborted.");break e}}var Tn;if(!(Tn=e.qb&&!WebPWorkerSync(e.rc))){var Dn;(Dn=0<e.fc)&&(u(e),u(0<e.fc),Dn=!1),Tn=Dn}l=Tn?0:1}var Pn=l;s.Pb&&s.Pb(s),l=1&Pn}return l?(e.za=0,l):(Se(e),0)}function Se(e){e!=h&&(e.ib&&(e.ib=0),e.ib=h,e.Gb=0,e.za=0)}function Me(e,t){return e+(1<<t)-1>>t}function xe(e,t,n,a,r){var i=Jr[n]+Qr[t]>>Ar;t=Xr[t],a[r+0]=ei[e+Zr[n]-Er],a[r+1]=ei[e+i-Er],a[r+2]=ei[e+t-Er]}function Ie(e,t,n,a,r){var i=Jr[n]+Qr[t]>>Ar;t=Xr[t],a[r+0]=248&ei[e+Zr[n]-Er]|ei[e+i-Er]>>5,a[r+1]=ei[e+i-Er]<<3&224|ei[e+t-Er]>>3}function Ae(e,t,n,a,r){a[r+0]=255,xe(e,t,n,a,r+1)}function Ee(e,t,n,a,r){var i=Xr[t];a[r+0]=ti[e+Zr[n]-Er]<<4|ti[e+(Jr[n]+Qr[t]>>Ar)-Er],a[r+1]=15|ti[e+i-Er]<<4}function Te(e,t,n,a,r){var i=Zr[n];n=Jr[n]+Qr[t]>>Ar,a[r+0]=ei[e+Xr[t]-Er],a[r+1]=ei[e+n-Er],a[r+2]=ei[e+i-Er]}function De(e,t,n,a,r){Te(e,t,n,a,r),a[r+3]=255}function Pe(e,t,n,a,r){xe(e,t,n,a,r),a[r+3]=255}function Re(e,t,n){e[t]=((((4278255360&e[t])>>>0)+((4278255360&n)>>>0)&4278255360)>>>0|(16711935&e[t])+(16711935&n)&16711935)>>>0}function Ne(e,t){return((4278124286&(e^t))>>>1)+((e&t)>>>0)>>>0}function Fe(e){return 256>e&&0<e?e:0>=e?0:~e>>24&255}function Ue(e,t){return Fe(e+parseInt((e-t)/2,10))}function Oe(){return Sn}function Be(e,t){return e&=255,t&=255,127<e&&(e-=256),127<t&&(t-=256),e*t>>>5}function Le(e,t,n,a,r,i,s){var o=f,l=8>>e.n,c=e.U,d=e.u;if(8>l){e=(1<<e.n)-1;for(var p=(1<<l)-1,o=t;o<n;++o){t=0;for(var u=f,u=0;u<c;++u)0==(u&e)&&(t=a[r++]>>8&255),i[s++]=d[t&p],t>>=l}}else for(o=t;o<n;++o)for(u=0;u<c;++u)i[s++]=d[a[r++]>>8&255]}function je(e,t,n,a,r){for(n=t+n;t<n;){var i=e[t++];a[r++]=i>>16&255,a[r++]=i>>8&255,a[r++]=i>>0&255,a[r++]=i>>24&255}}function He(e,t,n,a,r){for(n=t+n;t<n;){var i=e[t++];a[r++]=i>>16&240|i>>12&15,a[r++]=i>>0&240|i>>28&15}}function qe(e,t,n,a,r){for(n=t+n;t<n;){var i=e[t++];a[r++]=i>>24&255,a[r++]=i>>16&255,a[r++]=i>>8&255,a[r++]=i>>0&255}}function Ve(e,t,n,a){return T(e,8)!=vn?0:(t[0]=T(e,bn)+1,n[0]=T(e,bn)+1,a[0]=T(e,1),T(e,wn),1)}function ze(e,t){var n=f;return 4>e?e+1:(n=e-2>>1,(2+(1&e)<<n)+T(t,n)+1)}function We(e,t){if(t.Q+8>t.ya){var n=e.Y,a=0;for(u(n!=h);0!=n[a].s;){var r=n,i=t,s=i.T>>i.g&1;i.L?i.fa=1:(++i.g,8<=i.g&&A(i),i.Q==i.ya&&32==i.g&&(i.L=1)),a=a+r[a].s+s}return n[a].kc}for(n=e.Y,a=0,u(n!=h);0!=n[a].s;)r=n,i=t.T>>t.g&1,++t.g,a=a+r[a].s+i;return n[a].kc}function Ge(e,t){if(e!=h)for(var n=f,a=f,n=0;n<t;++n)for(var r=e[n].va,a=0;a<Cn;++a)R(r[a])}function Ke(e,t,n){return t=0==e.eb?0:e.ac[e.bd+e.Ec*(n>>e.eb)+(t>>e.eb)],u(t<e.hc),e.Db[+t]}function Ye(n,a,r,i){var o=n.Na,l=n.O,c=l+a,d=r,p=i;for(i=n.Xa,r=n.vb,t(i,r,d,p,n.l*a);0<o--;){a=n.nc[o];var m=l,g=c,_=d,y=p,p=i,d=r;switch(u(m<g),u(g<=a.Vb),a.Qc){case Pn:for(_=0,a=d+(g-m)*a.U;d<a;){var g=p,y=d,b=g[y]>>8&255,w=(16711935&g[y])>>>0,w=w+(b<<16|b),w=16711935&w;p[d++]=((4278255360&g[y])>>>0|w)>>>0,32==m&&_++}break;case Tn:var k=a,$=m,_=g,y=p,b=d,w=k.U;if(0==$){var C=f;for(Re(y,b,Sn),C=1;C<w;++C)Re(y,b+C,y[b+C-1]);b+=w,++$}for(var S=(1<<k.n)-1,M=Me(w,k.n),x=k.u,k=+($>>k.n)*M;$<_;){var I=x,A=k,E=h;for(Re(y,b,y[b-w+0]),E=Dr[I[A++]>>8&15],C=1;C<w;++C){var T=v;0==(C&S)&&(E=Dr[I[A++]>>8&15]),T=E(y[b+C-1],y,b+C-w),Re(y,b+C,T)}b+=w,++$,0==($&S)&&(k+=M)}g!=a.Vb&&(a=a.U,t(p,d-a,p,d+(g-m-1)*a,a));break;case Dn:for(_=a.U,y=(1<<a.n)-1,b=Me(_,a.n),w=a.u,a=+(m>>a.n)*b;m<g;){for(C=w,$=a,S=e(Pr),M=f,M=0;M<_;++M)0==(M&y)&&(x=C[$++],k=S,k.Cc=x>>0&255,k.Bc=x>>8&255,k.Kc=x>>16&255),x=p[d+M],k=x>>>8,I=x>>>16,A=x,I+=Be(S.Cc,k),I&=255,A+=Be(S.Bc,k),A+=Be(S.Kc,I),A&=255,p[d+M]=(4278255360&x|I<<16|A)>>>0;d+=_,++m,0==(m&y)&&(a+=b)}break;case Rn:_==p&&0<a.n?(_=(g-m)*Me(a.U,a.n),y=d+(g-m)*a.U-_,s(p,y,p,d,_),Le(a,m,g,p,y,p,d)):Le(a,m,g,_,y,p,d)}d=i,p=r}}function Ze(e,t){var n=e.V,a=e.Ha+e.l*e.O,r=t-e.O;if(!(0>=r)){Ye(e,r,n,a);var i=e.N,n=e.Xa,s=[e.vb],a=e.O,r=t,o=s,l=i.width;if(u(a<r),u(i.t<i.Ka),r>i.K&&(r=i.K),a<i.k){var c=i.k-a,a=i.k;o[0]+=l*c}if(a>=r?a=0:(o[0]+=i.t,i.w=a-i.k,i.m=i.Ka-i.t,i.h=r-a,a=1),a){if(s=s[0],a=e.Ib,r=i.width,a.J<Zt){var d=a.c.RGBA,o=d.ma,p=d.Sa+e.xa*d.f;if(i.I)n=EmitRescaledRows(e,n,s,r,i.h,o,p,d.f);else{for(var l=a.J,c=i.m,i=i.h,d=d.f,m=i;0<m--;){var g=n,h=s,f=c,_=o,y=p;switch(l){case Bt:for(f=h+f;h<f;){var v=g[h++];_[y++]=v>>16&255,_[y++]=v>>8&255,_[y++]=v>>0&255}break;case Lt:je(g,h,f,_,y);break;case Wt:je(g,h,f,_,y),WebPApplyAlphaMultiply(_,0,f,1,0);break;case jt:for(f=h+f;h<f;)v=g[h++],_[y++]=v>>0&255,_[y++]=v>>8&255,_[y++]=v>>16&255;break;case Ht:qe(g,h,f,_,y);break;case Gt:qe(g,h,f,_,y),WebPApplyAlphaMultiply(_,0,f,1,0);break;case qt:qe(g,h,f,_,y);break;case Kt:qe(g,h,f,_,y),WebPApplyAlphaMultiply(_,1,f,1,0);break;case Vt:He(g,h,f,_,y);break;case Yt:He(g,h,f,_,y),WebPApplyAlphaMultiply4444(_,f,1,0);break;case zt:for(f=h+f;h<f;)v=g[h++],_[y++]=v>>16&248|v>>13&7,_[y++]=v>>5&224|v>>3&31;break;default:u(0)}s+=r,p+=d}n=i}e.xa+=n}else e.xa=i.I?EmitRescaledRowsYUVA(e,n,s,r,i.h):EmitRowsYUVA(e,n,s,r,i.m,i.h);u(e.xa<=a.height)}e.O=t,u(e.O<=e.v)}}function Xe(e,t,n,a,r,i){var s=1,o=0,l=0,c=e.o,d=e.cb,p=d.Db,m=n,g=n;n+=a*r,r=In+An;var _=r+d.xb,y=0<d.xb?d.Yb:h,v=d.Dc,b=!1;u(p!=h);e:for(;!c.L&&m<n;){var w=f;if(b||(0==(o&v)&&(p=Ke(d,o,l)),E(c),w=We(p.va[Br],c)),w<In||b){if(!b){var k=s=b=f,$=f;E(c),b=We(p.va[Lr],c),s=w,E(c),k=We(p.va[jr],c),E(c),$=We(p.va[Hr],c),t[m]=($<<24>>>0)+(b<<16)+(s<<8)+k}if(b=!1,++m,++o,o>=a&&(o=0,++l,i!=h&&0==l%Rr&&i(e,l),y!=h))for(;g<m;)s=t[g++],y.ea[Zn*s>>>y.bb]=s}else if(w<r){for(k=k=f,s=ze(w-In,c),w=We(p.va[qr],c),E(c),k=ze(w,c),k>Gr?k-=Gr:(w=Kr[k-1],w=(w>>4)*a+(8-(15&w)),k=1<=w?w:1),w=f,w=0;w<s;++w)t[m+w]=t[m+w-k];for(m+=s,o+=s;o>=a;)o-=a,++l,i!=h&&0==l%Rr&&i(e,l);if(m<n&&(p=Ke(d,o,l),y!=h))for(;g<m;)s=t[g++],y.ea[Zn*s>>>y.bb]=s}else if(w<_){for(b=w-r,u(y!=h);g<m;)w=t[g++],y.ea[Zn*w>>>y.bb]=w;w=t,k=m,$=y,u(b<=-1>>>$.bb),w[k]=$.ea[b],b=!0;continue e}(s=!c.fa)||End}return i!=h&&i(e,l),c.fa||!s||c.L&&m<n?(s=0,e.a=c.L?sn:an):m==n&&(e.Ob=Aa),s}function Je(e){u(e),e.ac=h,Ge(e.Db,e.hc);var t=e.Yb;t!=h&&(t.ea=h,t.ea=h),u(e)}function Qe(){var t=e(Na);return t==h?h:(t.a=en,t.Wa=Ta,t.Ob=Ta,t)}function et(e){var t=f;if(e!=h){for(Je(e.cb),e.V=h,e.V=h,t=0;t<e.Na;++t){var n=e.nc[t];n.u=h,n.u=h}e.Na=0,e.Ub=0,e.Mc=h,e.Mc=h,e.Ib=h}}function tt(t,n,a,r,i){var s=1;t=[t],n=[n];for(var o=r.o,l=r.cb,p=h,m=h,m=0;;){if(a)for(;s&&T(o,1);){var g=t,_=n,y=r,v=1,b=y.o,s=y.nc[y.Na],w=T(b,2);if(y.Ub&1<<w)s=0;else{switch(y.Ub|=1<<w,s.Qc=w,s.U=g[0],s.Vb=_[0],s.u=[h],s.b=0,++y.Na,u(y.Na<=En),w){case Tn:case Dn:s.n=T(b,3)+2,v=tt(Me(s.U,s.n),Me(s.Vb,s.n),0,y,s.u);break;case Rn:if(_=T(b,8)+1,v=16<_?0:4<_?1:2<_?2:3,g[0]=Me(s.U,v),s.n=v,g=v=tt(_,1,0,y,s.u))if(g=_,y=s,v=f,_=1<<(8>>>y.n)>>>0,b=Array(_),b==h)g=0;else{var w=y.u[0],k=y.b;for(b[0]=y.u[0][y.b+0],v=1;v<g;++v)b[v]=((((4278255360&w[k+v])>>>0)+((4278255360&b[v-1])>>>0)&4278255360)>>>0|(16711935&w[k+v])+(16711935&b[v-1])&16711935)>>>0;for(;v<_;++v)b[v]=0;y.u[0]=h,y.b=h,y.u[0]=b,y.b=0,g=1}v=g;break;case Pn:break;default:u(0)}s.u=s.u[0],s=v}}if(s&&T(o,1)&&(m=T(o,4),s=1<=m&&m<=$n,!s)){r.a=an;break}if(s)e:{var s=r,$=t[0],C=n[0],g=m,k=w=f,k=s.o,y=s.cb,v=[h],_=h,b=1;if(a&&T(k,1)){var w=T(k,3)+2,$=Me($,w),S=Me(C,w),C=$*S;if(!tt($,S,0,s,v)){s.a=an,Ge(_,b),s=0;break e}for(v=v[0],y.eb=w,w=0;w<C;++w)$=v[w]>>>8&65535,v[w]=$,$>=b&&(b=$+1)}if(k.fa)Ge(_,b),s=0;else if(u(65536>=b),_=d(b,Pa),_==h)s.a=tn,Ge(_,b),s=0;else{for(w=0;w<b;++w)for(C=_[w].va,k=0;k<Cn;++k){$=Vr[k],0==k&&0<g&&($+=1<<g);t:{var M=$,$=s,x=C[+k],I=0,S=$.o;if(T(S,1)){var A=Array(2),U=Array(2),O=Array(2),I=T(S,1)+1,B=T(S,1);A[0]=T(S,0==B?1:8),U[0]=0,O[0]=I-1,2==I&&(A[1]=T(S,8),U[1]=1,O[1]=I-1);n:{var B=0,L=f;if(u(x!=h),u(O!=h),u(U!=h),u(A!=h),P(x,I)){for(L=0;L<I;++L)if(U[L]!=Kn){if(0>A[L]||A[L]>=M){(B=B&&D(x))||R(x),I=B;break n}if(!N(x,A[L],U[L],O[L])){(B=B&&D(x))||R(x),I=B;break n}}(B=(B=1)&&D(x))||R(x),I=B}else I=0}}else{if(I=f,U=[],A=T(S,4)+4,A>zr){$.a=an,$=0;break t}if(O=Array(M),O==h){$.a=tn,$=0;break t}for(I=0;I<A;++I)U[Wr[I]]=T(S,3);n:{var I=$,j=U,U=M,A=O,B=0,L=I.o,H=f,q=f,V=Mn,z=e(Gn);if(F(z,j,zr)){if(T(L,1)){if(H=2+2*T(L,3),q=2+T(L,H),q>U){I.a=an,R(z),I=B;break n}}else q=U;for(H=0;H<U;){var W=f;if(0==q--)break;if(E(L),W=We(z,L),W<Nr)A[H++]=W,0!=W&&(V=W);else{var j=W==Fr,W=W-Nr,G=Or[W],W=T(L,Ur[W])+G;if(H+W>U){I.a=an,R(z),I=B;break n}for(j=j?V:0;0<W--;)A[H++]=j}}B=1,R(z),I=B}else I.a=an,I=0}I&&(I=F(x,O,M))}(I=I&&!S.fa)?$=1:($.a=an,$=0)}if(!$){Ge(_,b),s=0;break e}}y.ac=v,y.hc=b,y.Db=_,s=1}}if(!s){r.a=an;break}if(0<m){if(l.xb=1<<m,g=l.Yb,y=1<<m,u(g!=h),u(0<m),g.ea=c(y,0),g.ea==h?m=0:(g.bb=32-m,m=1),!m){r.a=tn,s=0;break}}else l.xb=0;if(m=r,g=t[0],y=n[0],v=m.cb,_=v.eb,m.l=g,m.v=y,v.Ec=Me(g,_),v.Dc=0==_?-1:(1<<_)-1,a){r.Ob=Ea;break}if(p=Array(t*n),m=0,p==h){r.a=tn,s=0;break}s=(s=Xe(r,p,m,t,n,h))&&!o.fa;break}return s?(i!=h?i[0]=p:(u(p==h),u(a)),a||Je(l)):(Je(l),r.a==an&&r.o.L&&(r.a=sn)),s}function nt(e,t){var n=e.l*e.v,a=n+t+t*Rr;return u(e.l<=t),e.V=Array(a),e.Ha=0,e.V==h?(e.Xa=h,e.a=tn,0):(e.Xa=e.V,e.vb=e.Ha+n+t,1)}function at(e,t){var n=t-e.O,a=e.V,r=e.Ha+e.l*e.O;if(!(0>=n)){Ye(e,n,a,r);for(var r=e.N.width,n=r*n,a=e.N.ka,r=e.N.fd+r*e.O,i=e.Xa,s=e.vb,o=f,o=0;o<n;++o)a[r+o]=i[s+o]>>>8&255;e.O=e.xa=t}}function rt(e,t){var n=[f],a=[f],r=[f];return e==h?0:t==h?(e.a=nn,0):(e.N=t,e.a=en,I(e.o,t.data,t.b,t.e),Ve(e.o,n,a,r)?(e.Ob=Ta,t.width=n[0],t.height=a[0],e.Wa=Ea,tt(n[0],a[0],1,e,h)?1:(et(e),u(e.a!=en),0)):(e.a=an,et(e),u(e.a!=en),0))}function it(e){var t=h,n=h;return e==h?0:(t=e.N,u(t!=h),n=t.ka,u(n!=h),e.Ib=n.j,e.Hc=n.Hc,u(e.Ib!=h),Ut(n.Qa,t,Ht)?!nt(e,t.width)||t.I&&!AllocateAndInitRescaler(e,t)?(et(e),u(e.a!=en),0):(e.Wa=Aa,Xe(e,e.V,e.Ha,e.l,e.v,Ze)?(n.ec=e.xa,et(e),1):(et(e),u(e.a!=en),0)):(e.a=nn,et(e),u(e.a!=en),0))}function _e(e,t){return 0>e?0:e>t?t:e}function st(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,_,y){var v,b=f-1>>1,w=r[i+0]|s[o+0]<<16,k=l[c+0]|d[p+0]<<16;if(e){var $=3*w+k+131074>>2;_(e[t+0],255&$,$>>16,u,m)}for(n&&($=3*k+w+131074>>2,_(n[a+0],255&$,$>>16,g,h)),v=1;v<=b;++v){var C=r[i+v]|s[o+v]<<16,S=l[c+v]|d[p+v]<<16,$=w+C+k+S+524296,M=$+2*(C+k)>>3,x=$+2*(w+S)>>3;e&&($=M+w>>1,w=x+C>>1,_(e[t+2*v-1],255&$,$>>16,u,m+(2*v-1)*y),_(e[t+2*v-0],255&w,w>>16,u,m+(2*v-0)*y)),n&&($=x+k>>1,w=M+S>>1,_(n[a+2*v-1],255&$,$>>16,g,h+(2*v-1)*y),_(n[a+2*v+0],255&w,w>>16,g,h+(2*v+0)*y)),w=C,k=S}1&f||(e&&($=3*w+k+131074>>2,_(e[t+f-1],255&$,$>>16,u,m+(f-1)*y)),n&&($=3*k+w+131074>>2,_(n[a+f-1],255&$,$>>16,g,h+(f-1)*y)))}function ot(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f){st(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,xe,3)}function lt(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f){st(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,Te,3)}function ct(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f){st(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,Pe,4)}function dt(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f){st(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,De,4)}function pt(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f){st(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,Ae,4)}function ut(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f){st(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,Ee,2)}function mt(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f){st(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,Ie,2)}function gt(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g){var h;for(h=0;h<u-1;h+=2)m(e[t+0],r[i+0],s[o+0],l,c),m(e[t+1],r[i+0],s[o+0],l,c+g),m(n[a+0],r[i+0],s[o+0],d,p),m(n[a+1],r[i+0],s[o+0],d,p+g),t+=2,a+=2,i++,o++,c+=2*g,p+=2*g;h==u-1&&(m(e[t+0],r[i+0],s[o+0],l,c),m(n[a+0],r[i+0],s[o+0],d,p))}function ht(e,t,n,a,r,i,s,o,l,c,d,p,u){gt(e,t,n,a,r,i,s,o,l,c,d,p,u,Pe,4)}function ft(e,t,n,a,r,i,s,o,l,c,d,p,u){gt(e,t,n,a,r,i,s,o,l,c,d,p,u,De,4)}function _t(e,t,n,a,r,i,s,o,l,c,d,p,u){gt(e,t,n,a,r,i,s,o,l,c,d,p,u,Ae,4)}function yt(e,t,n,a,r,i,s,o,l,c,d,p,u){gt(e,t,n,a,r,i,s,o,l,c,d,p,u,Ee,2)}function vt(e,t,n,a,r,i){for(;0<r--;){for(var s=e,o=t+(n?1:0),l=e,c=t+(n?0:3),d=f,d=0;d<a;++d){var p=l[c+4*d];if(255!=p){var p=32897*p,u=s,m=o+4*d+0;s[o+4*d+0]*p>>>23,u[m]=g,u=s,m=o+4*d+1,s[o+4*d+1]*p>>>23,u[m]=g,u=s,m=o+4*d+2,s[o+4*d+2]*p>>>23,u[m]=g}}t+=i}}function bt(e,n){var a,r=n.j.c.Va,i=r.y,s=r.D+e.w*r.F,o=r.c,l=r.B+(e.w>>1)*r.nb,c=r.S,d=r.C+(e.w>>1)*r.rb,p=e.m,u=e.h,m=parseInt((p+1)/2,10),g=parseInt((u+1)/2,10);for(a=0;a<u;++a)t(i,s+a*r.F,e.y,e.D+a*e.F,p);for(a=0;a<g;++a)t(o,l+a*r.nb,e.c,e.B+a*e.Da,m),t(c,d+a*r.rb,e.S,e.C+a*e.Da,m);return e.h}function wt(e,t){var n,a=t.j,r=a.c.RGBA,i=r.ma,s=r.Sa+e.w*r.f,o=e.y,l=e.D,c=e.c,d=e.B,p=e.S,u=e.C,a=ri[a.J],m=e.m,g=e.h-1;for(n=0;n<g;n+=2)a(o,l,o,l+e.F,c,d,p,u,i,s,i,s+r.f,m),l+=2*e.F,d+=e.Da,u+=e.Da,s+=2*r.f;return n==g&&a(o,l,o,l,c,d,p,u,i,s,i,s,m),e.h}function kt(e,n){var a=e.h,r=n.j.c.RGBA,i=r.ma,s=r.Sa+e.w*r.f,o=ai[n.j.J],l=e.y,c=e.D,d=e.c,p=e.B,u=e.S,m=e.C,g=n.Qb,f=n.Rb,_=n.lc,y=n.mc,v=e.w,b=e.w+e.h,w=e.m,k=parseInt((w+1)/2,10);for(0==v?o(h,h,l,c,d,p,u,m,d,p,u,m,h,h,i,s,w):(o(n.Sb,n.Tb,l,c,g,f,_,y,d,p,u,m,i,s-r.f,i,s,w),++a);v+2<b;v+=2)g=d,f=p,_=u,y=m,p+=e.Da,m+=e.Da,s+=2*r.f,c+=2*e.F,o(l,c-e.F,l,c,g,f,_,y,d,p,u,m,i,s-r.f,i,s,w);return c+=e.F,e.k+b<e.K?(t(n.Sb,n.Tb,l,c,1*w),t(n.Qb,n.Rb,d,p,1*k),t(n.lc,n.mc,u,m,1*k),a--):1&b||o(l,c,h,h,d,p,u,m,d,p,u,m,i,s+r.f,h,h,w),a}function $t(e,n){var a=e.p,r=e.q,i=n.j.c.Va,s=e.m,l=e.h,c=i.p,d=i.q+e.w*i.Fa,a=e.p,r=e.q,p=f;if(a!=h)for(p=0;p<l;++p)t(c,d,a,r,1*s),r+=e.width,d+=i.Fa;else if(i.p!=h)for(p=0;p<l;++p)o(c,d,255,s),d+=i.Fa;return 0}function Ct(e,t,n){var a=e.w;return n[0]=e.h,e.Bb&&(0==a?--n[0]:(--a,t[0]-=e.width),e.k+e.w+e.h==e.K&&(n[0]=e.K-e.k-a)),a}function St(e,t){var n=e.p,a=[e.q];if(n!=h){for(var r=e.m,i=t.j.J,s=i==qt||i==Kt,o=t.j.c.RGBA,l=[f],c=Ct(e,a,l),a=a[0],d=o.ma,c=o.Sa+c*o.f,p=c+(s?0:3),u=255,m=f,g=f,g=0;g<l[0];++g){for(m=0;m<r;++m){var _=n[a+m];d[p+4*m]=_,u&=_}a+=e.width,p+=o.f}255!=u&&k(i)&&WebPApplyAlphaMultiply(d,c,s,r,l,o.f)}return 0}function Mt(e,t){var n=e.p,a=[e.q];if(n!=h){var r=e.m,i=t.j.J,s=t.j.c.RGBA,o=[f],l=Ct(e,a,o),a=a[0],c=s.ma,l=s.Sa+l*s.f,d=l+1,p=15,u=f;for(j=0;j<o[0];++j){for(u=0;u<r;++u){var m=n[a+u]>>4;c[d+2*u]=240&c[d+2*u]|m,p&=m}a+=e.width,d+=s.f}15!=p&&k(i)&&WebPApplyAlphaMultiply4444(c,l,r,o,s.f)}return 0}function xt(e){var t=e.ka,n=t.j.J,a=n<Zt,r=n==Lt||n==Ht||n==qt||n==Vt||n==Xt||k(n);if(t.memory=h,t.$a=h,t.zb=h,t.ad=h,!Ut(t.Qa,e,r?Zt:Xt))return 0;if(e.I){if(!(a?InitRGBRescaler(e,t):InitYUVRescaler(e,t)))return alert("memory error #1"),0}else{if(a){if(t.$a=wt,e.Bb){var i,s=e.m+1>>1,o=e.m+2*s,l=[];for(i=0;i<o;++i)l.push(205);if(l.push(0),t.memory=l,t.memory==h)return alert("memory error #2"),0;t.Sb=t.memory,t.Tb=0,t.Qb=t.Sb,t.Rb=t.Tb+e.m,t.lc=t.Qb,t.mc=t.Rb+s,t.$a=kt,ai[Bt]=ot,ai[Lt]=ct,ai[jt]=lt,ai[Ht]=dt,ai[qt]=pt,ai[Vt]=ut,ai[zt]=mt}}else t.$a=bt;r&&(k(n)&&(WebPApplyAlphaMultiply=vt,ai[Wt]=ct,ai[Gt]=dt,ai[Kt]=pt,ai[Yt]=ut),t.zb=n==Vt||n==Yt?Mt:a?St:$t)}if(a&&!ni){for(e=0;256>e;++e)Zr[e]=89858*(e-128)+Yr>>Ar,Qr[e]=-22014*(e-128)+Yr,Jr[e]=-45773*(e-128),Xr[e]=113618*(e-128)+Yr>>Ar;for(e=Er;e<Tr;++e)t=76283*(e-16)+Yr>>Ar,ei[e-Er]=_e(t,255),ti[e-Er]=_e(t+8>>4,15);ni=1}return 1}function It(e){var t=e.ka,n=e.m,a=e.h;return u(!(1&e.w)),0>=n||0>=a?0:(n=t.$a(e,t),t.ec+=n,t.zb&&t.zb(e,t),1)}function At(e){e=e.ka,e.memory="",e.memory=h}function Et(e,t){return e[t+0]|e[t+1]<<8|e[t+2]<<16}function Tt(e,t){return(Et(e,t)|e[t+3]<<24)>>>0}function Dt(t,n,a,r,i,s,o){var c=0,d=[0],p="VP8StatusCode",m=e(mn);if(t==h||a[0]<jn)return ln;m.data=t,m.b=[n[0]],m.e=[a[0]],m.na=[m.na];e:{if(c=m.na,u(t!=h),u(a!=h),u(c!=h),c[0]=0,a[0]>=jn&&!l(t,n[0],"RIFF",Bn)){if(l(t,n[0]+8,"WEBP",Bn)){p=an;break e}var y=Tt(t,n[0]+Bn);if(y<Bn+Ln){p=an;break e}c[0]=y,n[0]+=jn,a[0]-=jn}else c[0]=0;p=en}if(m.na=m.na[0],p!=en)return p;c=0<m.na,y=[0];e:if(p=Ln+Hn,u(t!=h),u(a!=h),u(d!=h),d[0]=0,a[0]<Ln)p=ln;else{if(!l(t,n[0],"VP8X",Bn)){var b=f,k=f,$=v;if(Tt(t,n[0]+Bn)!=Hn){p=an;break e}if(a[0]<p){p=ln;break e}if($=Tt(t,n[0]+8),b=1+Et(t,n[0]+12),k=1+Et(t,n[0]+15),b*k>=Vn){p=an;break e}y!=h&&(y[0]=$),r!=h&&(r[0]=b),i!=h&&(i[0]=k),n[0]+=p,a[0]-=p,d[0]=1}p=en}if(p!=en)return p;if(!c&&d[0])return an;if(s!=h&&(s[0]=!!(y[0]&qn)),d&&o==h)return en;if(a<Bn)return ln;if(c&&d[0]||!c&&!d[0]&&!l(t,n[0],"ALPH",Bn)){m.$=[m.$],m.G=[m.G],m.pa=[m.pa];e:{var d=m.na,c=m.$,y=m.G,p=m.pa,b=_,k=0,$=w,C=Bn+Ln+Hn;for(u(t!=h),u(a!=h),b=t,k=n[0],$=a[0],u(c!=h),u(p!=h),c[0]=h,y[0]=h,p[0]=0;;){var S=v,M=v;if(n[0]=k,a[0]=$,$<Ln){p=ln;break e}if(S=Tt(b,k+Bn),M=Ln+S+1&-2,C+=M,0<d&&C>d){p=an;break e}if($<M){p=ln;break e}if(l(b,k,"ALPH",Bn)){if(!l(b,k,"VP8 ",Bn)||!l(b,"VP8L",Bn)){p=en;break e}}else c[0]=b,y[0]=k+Ln,p[0]=S;k+=M,$-=M}p=g}if(m.$=m.$[0],m.G=m.G[0],m.pa=m.pa[0],p!=en)return p}m.ta=[m.ta],m.ia=[m.ia];e:if(d=m.na,c=m.ta,y=m.ia,k=!l(t,n[0],"VP8 ",Bn),p=!l(t,n[0],"VP8L",Bn),b=Bn+Ln,u(t!=h),u(a!=h),u(c!=h),u(y!=h),a[0]<Ln)p=ln;else{if(k||p){if(k=Tt(t,n[0]+Bn),d>=b&&k>d-b){p=an;break e}c[0]=k,n[0]+=Ln,a[0]-=Ln,y[0]=p}else y[0]=1<=a&&t[n+0]==vn,c[0]=a[0];p=en}if(m.ta=m.ta[0],m.ia=m.ia[0],p!=en)return p;if(m.ta>zn)return an;if(m.ia){if(a[0]<kn)return ln;d=n[0],c=a[0],r=r?r[0]:h,i=i?i[0]:h,y=s?s[0]:h,t==h||c<kn?t=0:(p=[f],b=[f],k=[f],$=e(hn),I($,t,d,c),Ve($,p,b,k)?(r!=h&&(r[0]=p[0]),i!=h&&(i[0]=b[0]),y!=h&&(y[0]=k[0]),t=1):t=0)}else{if(a<yn)return ln;d=n[0],c=a[0],r=r?r[0]:h,i=i?i[0]:h,!(t==h||c<yn)&&3<=c-3&&157==t[d+3+0]&&1==t[d+3+1]&&42==t[d+3+2]?(c=t[d+0]|t[d+1]<<8|t[d+2]<<16,y=16383&(t[d+7]<<8|t[d+6]),t=16383&(t[d+9]<<8|t[d+8]),!(!(1&c)+0)||3<(c>>1&7)||!(c>>4&1)||c>>5>=m.ta?t=0:(r&&(r[0]=y),i&&(i[0]=t),t=1)):t=0}return t?(s!=h&&(s[0]|=m.$!=h),o!=h&&(o[0]=m,o[0].offset=n[0]-o[0].b,u(n[0]-o[0].b<zn),u(o[0].offset==o[0].e-a[0])),en):an}function Pt(e){return u(e!=h),Dt(e[0].data,e[0].b,e[0].e,h,h,h,e)}function Rt(t,n,a,r){var i="VP8StatusCode",s=e(pn),o=e(mn);if(o.data=t,o.b=n,o.e=a,o.b=[o.b],o.e=[o.e],o=[o],i=Pt(o),i!=en)return i;if(o=o[0],o.b=o.b[0],o.e=o.e[0],u(r!=h),ve(Ot),s.data=o.data,s.b=n+o.offset,s.e=o.e-o.offset,s.put=It,s.Mb=xt,s.Pb=At,s.ka=r,o.ia){if(t=Qe(),t==h)return tn;rt(t,s)?(i=L(s.width,s.height,r.Qa,r.j),i==en&&!it(t)&&(i=t.a)):i=t.a,t!=h&&et(t)}else{if(i=e(Ia),i!=h&&(ye(i),i.za=0,i.Hb=1),t=i,t==h)return tn;t.qb=0,t.Ga=o.$,t.G=o.G,t.ub=o.pa,we(t,s)?(i=L(s.width,s.height,r.Qa,r.j),i==en&&!Ce(t,s)&&(i=t.a)):i=t.a,t!=h&&Se(t)}return i!=en&&(m||this).Yc(r.j),i}function Nt(t,n,a,r,i){var s={value:0};a={value:a};var o=e(un),l=e(Qt);o.j=l,l.J=t;var c,d={value:l.width},p={value:l.height};c=a;var u=e(cn);return Ft(n,s,c,u)!=en?c=0:(d!=h&&(d.value=u.width),p!=h&&(p.value=u.height),c=1),c?(l.width=d.value,l.height=p.value,r!=h&&(r.value=l.width.value),i!=h&&(i.value=l.height.value),Rt(n,s.value,a.value,o)!=en?h:t<Zt?l.c.RGBA.ma:l.c.Va.y):h}function Ft(e,t,n,a){return a==h||e==h?nn:(u(a!=h),a.tc=0,a.width=[a.width],a.height=[a.height],a.$b=[a.$b],Dt(e,t,n,a.width,a.height,a.$b,h))}function Ut(e,t,n){var a=t.width,r=t.height,i=0,s=0,o=a,l=r;if(t.Ua=e!=h&&0<e.Ua,t.Ua&&(o=e.wc,l=e.vc,i=e.t,s=e.k,n<Zt||(i&=-2,s&=-2),0>i||0>s||0>=o||0>=l||i+o>a||s+l>r))return 0;if(t.t=i,t.k=s,t.Ka=i+o,t.K=s+l,t.m=o,t.h=l,t.I=e!=h&&0<e.I,t.I){if(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==h||!e.ed,t.I&&(t.Za=t.Ba<3*a/4&&t.Aa<3*r/4,t.Bb=0),1}var Ot=512,Bt=0,Lt=1,jt=2,Ht=3,qt=4,Vt=5,zt=6,Wt=7,Gt=8,Kt=9,Yt=10,Zt=11,Xt=12,Jt=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 Qt={J:"WEBP_CSP_MODE",width:f,height:f,Fc:f,c:{RGBA:{ma:_,Sa:0,f:f,size:w},Va:{y:_,c:_,S:_,p:_,D:_,B:_,C:_,q:_,F:f,nb:f,rb:f,Fa:f,Wc:w,Rc:w,Uc:w,Wb:w}},Ic:c(4,v),Jb:h,jc:_},en=0,tn=1,nn=2,an=3,rn=4,sn=5,on=6,ln=7;this.VP8StatusCode=this.td={xd:0,yd:1,vd:2,ud:3,Ad:4,zd:5,Bd:6,wd:7};var cn={width:{value:f},height:{value:f},$b:{value:f},tc:f,Yd:f,rotate:f,be:f,Ic:c(3,v)};this.WebPGetFeatures=this.Md=function(e,t,n){var a="VP8StatusCode";return Ot>>>8!=Ot>>>8||n==h?e=nn:(t=[t],a=Ft(e,[0],t,n),e=a==ln?an:a),e};var dn={Za:f,ed:f,Ua:f,t:f,k:f,wc:f,vc:f,I:f,Ba:f,Aa:f,ae:f,Td:f,Xd:f,Ic:c(6,v)};this.WebPDecoderConfig=this.Kd={input:e(cn),j:e(Qt),options:e(dn)},this.WebPInitDecoderConfig=this.Nd=function(e){return Ot>>>8!=Ot>>>8||e==h?e=0:(e=e.input,u(e!=h),e.tc=0,e=1),e};var pn={width:f,height:f,w:f,m:f,h:f,y:_,c:_,S:_,D:0,B:0,C:0,F:f,Da:f,ka:0,put:0,Mb:0,Pb:0,Bb:f,e:w,data:_,b:0,Za:f,Ua:f,t:f,Ka:f,k:f,K:f,I:f,Ba:f,Aa:f,p:_,q:0},un={j:e(Qt),Sb:_,Qb:_,lc:_,Tb:0,Rb:0,mc:0,ec:f,Qa:e(dn),memory:0,$a:"(OutputFunc)",zb:"(OutputFunc)",ad:"(OutputRowFunc)"},mn={data:_,b:_,e:w,offset:w,$:h,G:_,pa:w,ta:w,na:w,ia:f},gn={qa:_,Ia:h,Pd:_,Ab:f,la:v,Z:v,gc:f},hn={T:b,qa:_,Ia:_,ya:w,Q:w,g:f,L:f,fa:f},fn=25,_n=[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],yn=10,vn=47,bn=14,wn=3,kn=5,$n=11,Cn=5,Sn=4278190080,Mn=8,xn=15,In=256,An=24,En=4,Tn=0,Dn=1,Pn=2,Rn=3,Nn=1,Fn=0,Un=1,On=1,Bn=4,Ln=8,jn=12,Hn=10,qn=16,Vn=1*Math.pow(2,32),zn=-1-Ln-1>>>0,Wn={kc:f,s:f},Gn={Y:"HuffmanTreeNode*",gb:f,Pa:f},Kn=-1,Yn={ea:v,bb:f},Zn=506832829,Xn=0,Jn=Xn,Qn=2,ea=3,ta=1,na=4,aa=5,ra=6,ia=3,sa=4,oa=4,la=4,ca=4,da=8,pa=3,ua=11,ma=32,ga=17*ma+9*ma,ha=1*ma+8,fa=ha+16*ma+ma,_a=fa+16,ya={fb:_,Jc:_,Nc:_,Ra:v},va={l:0,v:0,gd:_,hd:_,uc:_,$c:_},ba={pb:f,ob:f,tb:f,Kb:c(sa,0),Cb:c(sa,0)},wa={Ta:c(ia,_),z:p([ca,da,pa,ua],_)},ka={Oc:f,Fb:f,kb:f,oc:f,Lc:c(oa,f),Gc:c(oa,f)},$a={zc:f,yc:f,ab:f},Ca={X:f,ua:f,Nb:f},Sa=c(2,f),Ma={sc:e(Sa),sb:e(Sa),qc:e(Sa)},xa={ha:f,d:f,W:f,M:$a,N:pn},Ia={a:"VP8StatusCode",za:f,xc:0,o:e(gn),Ac:e(ya),P:e(va),ga:e(ka),Ca:e(ba),rc:"WebPWorker",qb:f,Ja:f,jb:f,oa:xa,Ma:f,hb:f,lb:f,mb:f,wb:f,Ya:f,Hb:f,ic:d(8,gn),Zc:v,yb:d(sa,Ma),R:e(wa),pc:f,Pc:_,dc:_,cc:c(4,_),Xc:_,Sc:_,Vc:_,La:e(Ca),M:e($a),Ea:_,z:0,ca:_,aa:_,ra:_,da:f,ba:f,sa:f,H:f,r:f,ib:0,Gb:w,i:f,d:f,wa:_,Eb:c(16,_),Vd:0,Tc:_,Lb:_,ja:v,Oa:v,A:f,W:f,Zb:c(sa,_),Ga:h,G:0,ub:w,Xb:_,Od:0,cd:f,dd:_,Wd:0,fc:w},Aa=0,Ea=1,Ta=2,Da={Qc:"VP8LImageTransformType",n:f,U:f,Vb:f,u:v,b:v},Pa={va:d(Cn,Gn)},Ra={xb:f,Yb:e(Yn),Dc:f,eb:f,Ec:f,ac:v,bd:v,hc:f,Db:"HTreeGroup"},Na={a:"VP8StatusCode",Wa:"VP8LDecodeState",Ob:"VP8LDecodeState",N:"VP8Io",Ib:"WebPDecBuffer",Hc:"WebPDecBuffer",V:v,Ha:v,Xa:v,vb:v,o:e(hn),l:f,v:f,O:f,xa:f,cb:e(Ra),Na:f,nc:d(En,Da),Ub:v,Mc:_,$d:_,Zd:"*WebPRescaler"},Fa=4,Ua=[h,function(e,n,a,r,i,s,o,l){var c=f,d=l;for(u(e!=h),u(o!=h),u(0<a),u(0<r),u(0<i),u(s>=a*i),c=0;c<r;++c)0==c?t(o,l,e,n,i):U(e,n,o,d-s,o,l,i),U(e,n+i,o,d,o,l+i,i*(a-1)),d+=s,n+=s,l+=s},function(e,n,a,r,i,s,o,l){var c=f,d=l;for(u(e!=h),u(o!=h),u(0<a),u(0<r),u(0<i),u(s>=a*i),t(o,l,e,n,i),U(e,n+i,o,d,o,l+i,i*(a-1)),c=1;c<r;++c)n+=s,l+=s,U(e,n,o,d,o,l,i*a),d+=s},function(e,n,a,r,i,s,o,l){var c=l,d=f;for(u(e!=h),u(o!=h),u(0<a),u(0<r),u(0<i),u(s>=a*i),t(o,l,e,n,i),U(e,n+i,o,c,o,l+i,i*(a-1)),d=1;d<r;++d){var p=f,c=c+s;for(n+=s,l+=s,U(e,n,o,c-s,o,l,i),p=i;p<a*i;++p){var m=o[c+p-i]+o[c+p-s]-o[c+p-s-i];o[l+p]=e[n+p]+(0>m?0:255<m?255:m)&255}}}],Oa=[3,4,3,4,4,2,2,4,4,4,2,1,1];this.WebPFreeDecBuffer=this.Yc=function(e){e!=h&&(e.Fc||(e.Jb=""),e.jc=0,e.Jb=e.jc=h)},m=this;var Ba,La,ja,Ha,qa,Va,za,Wa,Ga,Ka,Ya,Za,Xa,Ja,Qa,er,tr=c(511,_),nr=c(511,_),ar=c(2041,0),rr=c(225,0),ir=c(766,_),sr=0,or=85627,lr=35468,cr=[function(e,t){var n,a=4;for(n=0;4>n;++n)a+=e[t+n-ma]+e[t-1+n*ma];for(a>>=3,n=0;4>n;++n)o(e,t+n*ma,a,4)},function(e,t){K(e,t,4)},function(e,n){var a=n-ma,r=[];for(r.push(Z(e[a-1],e[a+0],e[a+1])),r.push(Z(e[a+0],e[a+1],e[a+2])),r.push(Z(e[a+1],e[a+2],e[a+3])),r.push(Z(e[a+2],e[a+3],e[a+4])),a=0;4>a;++a)t(e,n+a*ma,r,0,4)},function(e,t){var n=e[t-1],a=e[t-1+ma],r=e[t-1+2*ma],i=e[t-1+3*ma];e[t+0+0*ma]=e[t+1+0*ma]=e[t+2+0*ma]=e[t+3+0*ma]=Z(e[t-1-ma],n,a),e[t+0+1*ma]=e[t+1+1*ma]=e[t+2+1*ma]=e[t+3+1*ma]=Z(n,a,r),e[t+0+2*ma]=e[t+1+2*ma]=e[t+2+2*ma]=e[t+3+2*ma]=Z(a,r,i),e[t+0+3*ma]=e[t+1+3*ma]=e[t+2+3*ma]=e[t+3+3*ma]=Z(r,i,i)},function(e,t){var n=e[t-1+0*ma],a=e[t-1+1*ma],r=e[t-1+2*ma],i=e[t-1-ma],s=e[t+0-ma],o=e[t+1-ma],l=e[t+2-ma],c=e[t+3-ma];e[t+0+3*ma]=Z(a,r,e[t-1+3*ma]),e[t+0+2*ma]=e[t+1+3*ma]=Z(n,a,r),e[t+0+1*ma]=e[t+1+2*ma]=e[t+2+3*ma]=Z(i,n,a),e[t+0+0*ma]=e[t+1+1*ma]=e[t+2+2*ma]=e[t+3+3*ma]=Z(s,i,n),e[t+1+0*ma]=e[t+2+1*ma]=e[t+3+2*ma]=Z(o,s,i),e[t+2+0*ma]=e[t+3+1*ma]=Z(l,o,s),e[t+3+0*ma]=Z(c,l,o)},function(e,t){var n=e[t-1+0*ma],a=e[t-1+1*ma],r=e[t-1+2*ma],i=e[t-1-ma],s=e[t+0-ma],o=e[t+1-ma],l=e[t+2-ma],c=e[t+3-ma];e[t+0+0*ma]=e[t+1+2*ma]=i+s+1>>1,e[t+1+0*ma]=e[t+2+2*ma]=s+o+1>>1,e[t+2+0*ma]=e[t+3+2*ma]=o+l+1>>1,e[t+3+0*ma]=l+c+1>>1,e[t+0+3*ma]=Z(r,a,n),e[t+0+2*ma]=Z(a,n,i),e[t+0+1*ma]=e[t+1+3*ma]=Z(n,i,s),e[t+1+1*ma]=e[t+2+3*ma]=Z(i,s,o),e[t+2+1*ma]=e[t+3+3*ma]=Z(s,o,l),e[t+3+1*ma]=Z(o,l,c)},function(e,t){var n=e[t+1-ma],a=e[t+2-ma],r=e[t+3-ma],i=e[t+4-ma],s=e[t+5-ma],o=e[t+6-ma],l=e[t+7-ma];e[t+0+0*ma]=Z(e[t+0-ma],n,a),e[t+1+0*ma]=e[t+0+1*ma]=Z(n,a,r),e[t+2+0*ma]=e[t+1+1*ma]=e[t+0+2*ma]=Z(a,r,i),e[t+3+0*ma]=e[t+2+1*ma]=e[t+1+2*ma]=e[t+0+3*ma]=Z(r,i,s),e[t+3+1*ma]=e[t+2+2*ma]=e[t+1+3*ma]=Z(i,s,o),e[t+3+2*ma]=e[t+2+3*ma]=Z(s,o,l),e[t+3+3*ma]=Z(o,l,l)},function(e,t){var n=e[t+0-ma],a=e[t+1-ma],r=e[t+2-ma],i=e[t+3-ma],s=e[t+4-ma],o=e[t+5-ma],l=e[t+6-ma],c=e[t+7-ma];e[t+0+0*ma]=n+a+1>>1,e[t+1+0*ma]=e[t+0+2*ma]=a+r+1>>1,e[t+2+0*ma]=e[t+1+2*ma]=r+i+1>>1,e[t+3+0*ma]=e[t+2+2*ma]=i+s+1>>1,e[t+0+1*ma]=Z(n,a,r),e[t+1+1*ma]=e[t+0+3*ma]=Z(a,r,i),e[t+2+1*ma]=e[t+1+3*ma]=Z(r,i,s),e[t+3+1*ma]=e[t+2+3*ma]=Z(i,s,o),e[t+3+2*ma]=Z(s,o,l),e[t+3+3*ma]=Z(o,l,c)},function(e,t){var n=e[t-1+0*ma],a=e[t-1+1*ma],r=e[t-1+2*ma],i=e[t-1+3*ma],s=e[t-1-ma],o=e[t+0-ma],l=e[t+1-ma],c=e[t+2-ma];e[t+0+0*ma]=e[t+2+1*ma]=n+s+1>>1,e[t+0+1*ma]=e[t+2+2*ma]=a+n+1>>1,e[t+0+2*ma]=e[t+2+3*ma]=r+a+1>>1,e[t+0+3*ma]=i+r+1>>1,e[t+3+0*ma]=Z(o,l,c),e[t+2+0*ma]=Z(s,o,l),e[t+1+0*ma]=e[t+3+1*ma]=Z(n,s,o),e[t+1+1*ma]=e[t+3+2*ma]=Z(a,n,s),e[t+1+2*ma]=e[t+3+3*ma]=Z(r,a,n),e[t+1+3*ma]=Z(i,r,a)},function(e,t){var n=e[t-1+0*ma],a=e[t-1+1*ma],r=e[t-1+2*ma],i=e[t-1+3*ma];e[t+0+0*ma]=n+a+1>>1,e[t+2+0*ma]=e[t+0+1*ma]=a+r+1>>1,e[t+2+1*ma]=e[t+0+2*ma]=r+i+1>>1,e[t+1+0*ma]=Z(n,a,r),e[t+3+0*ma]=e[t+1+1*ma]=Z(a,r,i),e[t+3+1*ma]=e[t+1+2*ma]=Z(r,i,i),e[t+3+2*ma]=e[t+2+2*ma]=e[t+0+3*ma]=e[t+1+3*ma]=e[t+2+3*ma]=e[t+3+3*ma]=i}],dr=[function(e,t){var n,a=16;for(n=0;16>n;++n)a+=e[t-1+n*ma]+e[t+n-ma];Y(a>>5,e,t)},function(e,t){K(e,t,16)},function(e,n){var a;for(a=0;16>a;++a)t(e,n+a*ma,e,n-ma,16)},function(e,t){var n;for(n=16;0<n;--n)o(e,t+0,e[t-1],16),t+=ma},function(e,t){var n,a=8;for(n=0;16>n;++n)a+=e[t-1+n*ma];Y(a>>4,e,t)},function(e,t){var n,a=8;for(n=0;16>n;++n)a+=e[t+n-ma];Y(a>>4,e,t)},function(e,t){Y(128,e,t)}],pr=[function(e,t){var n,a=8;for(n=0;8>n;++n)a+=e[t+n-ma]+e[t-1+n*ma];X(1*(a>>4),e,t)},function(e,t){K(e,t,8)},function(e,n){var a;for(a=0;8>a;++a)t(e,n+a*ma,e,n-ma,8)},function(e,t){var n;for(n=0;8>n;++n)o(e,t+0,e[t-1],8),t+=ma},function(e,t){var n,a=4;for(n=0;8>n;++n)a+=e[t-1+n*ma];X(1*(a>>3),e,t)},function(e,t){var n,a=4;for(n=0;8>n;++n)a+=e[t+n-ma];X(1*(a>>3),e,t)},function(e,t){X(128,e,t)}],ur=31,mr=[0,2,8],gr=3,hr=1,fr=[0+0*ma,4+0*ma,8+0*ma,12+0*ma,0+4*ma,4+4*ma,8+4*ma,12+4*ma,0+8*ma,4+8*ma,8+8*ma,12+8*ma,0+12*ma,4+12*ma,8+12*ma,12+12*ma],_r=[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],yr=[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],vr=[-Xn,1,-1,2,-2,3,4,6,-3,5,-4,-5,-6,7,-7,8,-8,-9],br=[[[[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]]]],wr=[[[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]]],kr=[[[[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 $r=[0,1,2,3,6,4,5,6,6,6,6,6,6,6,6,7,0],Cr=[[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]],Sr=[0,1,4,8,5,2,3,6,9,12,13,10,7,11,14,15],Mr=p([pa,ua],"");c(4,_);var xr=[[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]],Ir=134480385,Ar=16,Er=-227,Tr=482,Dr=[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 Ne(Ne(e,t[n+1]),t[n+0])},function(e,t,n){return Ne(e,t[n-1])},function(e,t,n){return Ne(e,t[n+0])},function(e,t,n){return Ne(t[n-1],t[n+0])},function(e,t,n){return Ne(t[n+0],t[n+1])},function(e,t,n){return Ne(Ne(e,t[n-1]),Ne(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(Fe((e>>24&255)+(t[n+0]>>24&255)-(t[n-1]>>24&255))<<24|Fe((e>>16&255)+(t[n+0]>>16&255)-(t[n-1]>>16&255))<<16|Fe((e>>8&255)+(t[n+0]>>8&255)-(t[n-1]>>8&255))<<8|Fe((255&e)+(255&t[n+0])-(255&t[n-1])))>>>0},function(e,t,n){var a=t[n-1];return e=Ne(e,t[n+0]),(Ue(e>>24&255,a>>24&255)<<24|Ue(e>>16&255,a>>16&255)<<16|Ue(e>>8&255,a>>8&255)<<8|Ue(e>>0&255,a>>0&255))>>>0},Oe,Oe],Pr={Cc:_,Bc:_,Kc:_},Rr=16,Nr=16,Fr=16,Ur=[2,3,7],Or=[3,3,11],Br=0,Lr=1,jr=2,Hr=3,qr=4,Vr=[In+An,In,In,In,40],zr=19,Wr=[17,18,0,1,2,3,4,5,16,6,7,8,9,10,11,12,13,14,15],Gr=120,Kr=[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],Yr=1<<Ar-1,Zr=c(256,0),Xr=c(256,0),Jr=c(256,y),Qr=c(256,y),ei=c(Tr-Er,_),ti=c(Tr-Er,_),ni=0,ai=Array(Jt),ri=[function(e,t,n,a,r,i,s,o,l,c,d,p,u){gt(e,t,n,a,r,i,s,o,l,c,d,p,u,xe,3)},ht,function(e,t,n,a,r,i,s,o,l,c,d,p,u){gt(e,t,n,a,r,i,s,o,l,c,d,p,u,Te,3)},ft,_t,yt,function(e,t,n,a,r,i,s,o,l,c,d,p,u){gt(e,t,n,a,r,i,s,o,l,c,d,p,u,Ie,2)},ht,ft,_t,yt];this.Hd=function(e,t,n,a){return Nt(Bt,e,t,n,a)},this.Id=function(e,t,n,a){return Nt(Lt,e,t,n,a)},this.Jd=function(e,t,n,a){return Nt(Vt,e,t,n,a)},this.Ed=function(e,t,n,a){return Nt(qt,e,t,n,a)},this.Fd=function(e,t,n,a){return Nt(jt,e,t,n,a)},this.Gd=function(e,t,n,a){return Nt(Ht,e,t,n,a)},this.WebPDecode=this.Dd=function(t,n,a){var r=e(un),i="VP8StatusCode";return a==h?nn:(i=Ft(t,[0],[n],a.input),i!=en?i==ln?an:i:(r.j=a.j,r.Qa=a.Qa,i=Rt(t,0,[n],r)))}}}(),function(e,t){"use strict";angular.module("toaster",[]).constant("toasterConfig",{limit:0,"tap-to-dismiss":!0,"close-button":!1,"close-html":'<button class="toast-close-button" type="button">&times;</button>',"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,r,i,s,o,l,c){return angular.isString(t)?this.pop(e,t,n,a,r,i,s,o,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,r,i,s,o,l,c,d,p){if(angular.isObject(t)){var u=t;this.toast={type:u.type,title:u.title,body:u.body,timeout:u.timeout,bodyOutputType:u.bodyOutputType,clickHandler:u.clickHandler,showCloseButton:u.showCloseButton,closeHtml:u.closeHtml,toastId:u.toastId,onShowCallback:u.onShowCallback,onHideCallback:u.onHideCallback,directiveData:u.directiveData},l=u.toasterId}else this.toast={type:t,title:n,body:r,timeout:i,bodyOutputType:s,clickHandler:o,showCloseButton:c,toastId:d,onHideCallback:p};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 r in t["icon-classes"])this[r]=n(r)}]).factory("toasterEventRegistry",["$rootScope",function(e){var t,n=null,a=null,r=[],i=[];return t={setup:function(){n||(n=e.$on("toaster-newToast",function(e,t,n){for(var a=0,i=r.length;a<i;a++)r[a](e,t,n)})),a||(a=e.$on("toaster-clearToasts",function(e,t,n){for(var a=0,r=i.length;a<r;a++)i[a](e,t,n)}))},subscribeToNewToastEvent:function(e){r.push(e)},subscribeToClearToastsEvent:function(e){i.push(e)},unsubscribeToNewToastEvent:function(e){var t=r.indexOf(e);t>=0&&r.splice(t,1),0===r.length&&(n(),n=null)},unsubscribeToClearToastsEvent:function(e){var t=i.indexOf(e);t>=0&&i.splice(t,1),0===i.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,r){n.$watch("directiveName",function(i){if(angular.isUndefined(i)||i.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(r.$normalize(i)+"Directive")}catch(o){throw new Error(i+" 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 "+i+".");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 '+i+".");n.directiveData&&(n.directiveData=angular.fromJson(n.directiveData));var c=e("<div "+i+"></div>")(n);a.append(c)})}}}]).directive("toasterContainer",["$parse","$rootScope","$interval","$sce","toasterConfig","toaster","toasterEventRegistry",function(e,t,n,a,r,i,s){return{replace:!0,restrict:"EA",scope:!0,link:function(t,o,l){function c(e,a){e.timeoutPromise=n(function(){t.removeToast(e.toastId)},a,1)}function d(n,r){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 i,s,o=!1;for(i=0,s=t.toasters.length;i<s;i++)if(t.toasters[i].toastId===r){o=!0;break}if(o)return}var l=g["close-button"];if("boolean"==typeof n.showCloseButton);else if("boolean"==typeof l)n.showCloseButton=l;else if("object"==typeof l){var c=l[n.type];"undefined"!=typeof c&&null!==c&&(n.showCloseButton=c)}else n.showCloseButton=!1;switch(n.showCloseButton&&(n.closeHtml=a.trustAsHtml(n.closeHtml||t.config.closeHtml)),n.bodyOutputType=n.bodyOutputType||g["body-output-type"],n.bodyOutputType){case"trustedHtml":n.html=a.trustAsHtml(n.body);break;case"template":n.bodyTemplate=n.body||g["body-template"];break;case"templateWithData":var d=e(n.body||g["body-template"]),p=d(t);n.bodyTemplate=p.template,n.data=p.data;break;case"directive":n.html=n.body}t.configureTimer(n),g["newest-on-top"]===!0?(t.toasters.unshift(n),g.limit>0&&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 p(e){var a=t.toasters[e];a.timeoutPromise&&n.cancel(a.timeoutPromise),t.toasters.splice(e,1),angular.isFunction(a.onHideCallback)&&a.onHideCallback()}function u(e){for(var n=t.toasters.length-1;n>=0;n--)m(e)?p(n):t.toasters[n].toastId==e&&p(n)}function m(e){return angular.isUndefined(e)||null===e}var g;g=angular.extend({},r,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<a;n++)if(t.toasters[n].toastId===e){p(n);break}},t.toasters=[],t._onNewToast=function(e,n,a){(m(t.config.toasterId)&&m(n)||!m(t.config.toasterId)&&!m(n)&&t.config.toasterId==n)&&d(i.toast,a)},t._onClearToasts=function(e,n,a){("*"==n||m(t.config.toasterId)&&m(n)||!m(t.config.toasterId)&&!m(n)&&t.config.toasterId==n)&&u(a)},s.setup(),s.subscribeToNewToastEvent(t._onNewToast),s.subscribeToClearToastsEvent(t._onClearToasts)},controller:["$scope","$element","$attrs",function(e,t,a){e.stopTimer=function(t){e.config.mouseoverTimer===!0&&t.timeoutPromise&&(n.cancel(t.timeoutPromise),t.timeoutPromise=null)},e.restartTimer=function(t){e.config.mouseoverTimer===!0?t.timeoutPromise||e.configureTimer(t):null===t.timeoutPromise&&e.removeToast(t.toastId)},e.click=function(t,n){if(e.config.tap===!0||t.showCloseButton===!0&&n===!0){var a=!0;t.clickHandler&&(angular.isFunction(t.clickHandler)?a=t.clickHandler(t,n):angular.isFunction(e.$parent.$eval(t.clickHandler))?a=e.$parent.$eval(t.clickHandler)(t,n):console.log("TOAST-NOTE: Your click handler is not inside a parent scope of toaster-container.")),a&&e.removeToast(t.toastId)}}}],template:'<div id="toast-container" ng-class="[config.position, config.animation]"><div ng-repeat="toaster in toasters" class="toast" ng-class="toaster.type" ng-click="click(toaster)" ng-mouseover="stopTimer(toaster)" ng-mouseout="restartTimer(toaster)"><div ng-if="toaster.showCloseButton" ng-click="click(toaster, true)" ng-bind-html="toaster.closeHtml"></div><div ng-class="config.title">{{toaster.title}}</div><div ng-class="config.message" ng-switch on="toaster.bodyOutputType"><div ng-switch-when="trustedHtml" ng-bind-html="toaster.html"></div><div ng-switch-when="template"><div ng-include="toaster.bodyTemplate"></div></div><div ng-switch-when="templateWithData"><div ng-include="toaster.bodyTemplate"></div></div><div ng-switch-when="directive"><div directive-template directive-name="{{toaster.html}}" directive-data="{{toaster.directiveData}}"></div></div><div ng-switch-default >{{toaster.body}}</div></div></div></div>'}}])}(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 r(s,o){if(!n[s]){if(!e[s]){var l="function"==typeof require&&require;if(!o&&l)return l(s,!0);if(i)return i(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 r(n?n:t)},d,d.exports,t,e,n,a)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<a.length;s++)r(a[s]);return r}({1:[function(e,t,n){var a=e("matches-selector");t.exports=function(e,t,n){for(var r=n?e:e.parentNode;r&&r!==document;){if(a(r,t))return r;r=r.parentNode}}},{"matches-selector":5}],2:[function(e,t,n){function a(e,t,n,a,i){var s=r.apply(this,arguments);return e.addEventListener(n,s,i),{destroy:function(){e.removeEventListener(n,s,i)}}}function r(e,t,n,a){return function(n){n.delegateTarget=i(n.target,t,!0),n.delegateTarget&&a.call(e,n)}}var i=e("closest");t.exports=a},{closest:1}],3:[function(e,t,n){n.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},n.nodeList=function(e){var t=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===t||"[object HTMLCollection]"===t)&&"length"in e&&(0===e.length||n.node(e[0]))},n.string=function(e){return"string"==typeof e||e instanceof String},n.fn=function(e){var t=Object.prototype.toString.call(e);return"[object Function]"===t}},{}],4:[function(e,t,n){function a(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!o.string(t))throw new TypeError("Second argument must be a String");if(!o.fn(n))throw new TypeError("Third argument must be a Function");if(o.node(e))return r(e,t,n);if(o.nodeList(e))return i(e,t,n);if(o.string(e))return s(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function r(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}function i(e,t,n){return Array.prototype.forEach.call(e,function(e){e.addEventListener(t,n)}),{destroy:function(){Array.prototype.forEach.call(e,function(e){e.removeEventListener(t,n)})}}}function s(e,t,n){return l(document.body,e,t,n)}var o=e("./is"),l=e("delegate");t.exports=a},{"./is":3,delegate:2}],5:[function(e,t,n){function a(e,t){if(i)return i.call(e,t);for(var n=e.parentNode.querySelectorAll(t),a=0;a<n.length;++a)if(n[a]==e)return!0;return!1}var r=Element.prototype,i=r.matchesSelector||r.webkitMatchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector;t.exports=a},{}],6:[function(e,t,n){function a(e){var t;if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName)e.focus(),e.setSelectionRange(0,e.value.length),t=e.value;else{e.hasAttribute("contenteditable")&&e.focus();var n=window.getSelection(),a=document.createRange();a.selectNodeContents(e),n.removeAllRanges(),n.addRange(a),t=n.toString()}return t}t.exports=a},{}],7:[function(e,t,n){function a(){}a.prototype={on:function(e,t,n){var a=this.e||(this.e={});return(a[e]||(a[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){function a(){r.off(e,a),t.apply(n,arguments)}var r=this;return a._=t,this.on(e,a,n)},emit:function(e){var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),a=0,r=n.length;for(a;a<r;a++)n[a].fn.apply(n[a].ctx,t);return this},off:function(e,t){var n=this.e||(this.e={}),a=n[e],r=[];if(a&&t)for(var i=0,s=a.length;i<s;i++)a[i].fn!==t&&a[i].fn._!==t&&r.push(a[i]);return r.length?n[e]=r:delete n[e],this}},t.exports=a},{}],8:[function(t,n,a){!function(r,i){if("function"==typeof e&&e.amd)e(["module","select"],i);else if("undefined"!=typeof a)i(n,t("select"));else{var s={exports:{}};i(s,r.select),r.clipboardAction=s.exports}}(this,function(e,t){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=n(t),i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}(),o=function(){function e(t){a(this,e),this.resolveOptions(t),this.initSelection()}return e.prototype.resolveOptions=function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action=e.action,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""},e.prototype.initSelection=function(){this.text?this.selectFake():this.target&&this.selectTarget()},e.prototype.selectFake=function(){var e=this,t="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},setTimeout(function(){e.fakeHandler=document.body.addEventListener("click",e.fakeHandlerCallback)||!0},0),this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[t?"right":"left"]="-9999px",this.fakeElem.style.top=(window.pageYOffset||document.documentElement.scrollTop)+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,document.body.appendChild(this.fakeElem),this.selectedText=(0,r["default"])(this.fakeElem),this.copyText()},e.prototype.removeFake=function(){this.fakeHandler&&(document.body.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(document.body.removeChild(this.fakeElem),this.fakeElem=null)},e.prototype.selectTarget=function(){this.selectedText=(0,r["default"])(this.target),this.copyText()},e.prototype.copyText=function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)},e.prototype.handleResult=function(e){e?this.emitter.emit("success",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)}):this.emitter.emit("error",{action:this.action,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})},e.prototype.clearSelection=function(){this.target&&this.target.blur(),window.getSelection().removeAllRanges()},e.prototype.destroy=function(){this.removeFake()},s(e,[{key:"action",set:function(){var e=arguments.length<=0||void 0===arguments[0]?"copy":arguments[0];if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(e){if(void 0!==e){if(!e||"object"!==("undefined"==typeof e?"undefined":i(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function(){return this._target}}]),e}();e.exports=o})},{select:6}],9:[function(t,n,a){!function(r,i){if("function"==typeof e&&e.amd)e(["module","./clipboard-action","tiny-emitter","good-listener"],i);else if("undefined"!=typeof a)i(n,t("./clipboard-action"),t("tiny-emitter"),t("good-listener"));else{var s={exports:{}};i(s,r.clipboardAction,r.tinyEmitter,r.goodListener),r.clipboard=s.exports}}(this,function(e,t,n,a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function l(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var c=r(t),d=r(n),p=r(a),u=function(e){function t(n,a){i(this,t);var r=s(this,e.call(this));return r.resolveOptions(a),r.listenClick(n),r}return o(t,e),t.prototype.resolveOptions=function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText},t.prototype.listenClick=function(e){var t=this;this.listener=(0,p["default"])(e,"click",function(e){return t.onClick(e)})},t.prototype.onClick=function(e){var t=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new c["default"]({action:this.action(t),target:this.target(t),text:this.text(t),trigger:t,emitter:this})},t.prototype.defaultAction=function(e){return l("action",e)},t.prototype.defaultTarget=function(e){var t=l("target",e);if(t)return document.querySelector(t)},t.prototype.defaultText=function(e){return l("text",e)},t.prototype.destroy=function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)},t}(d["default"]);e.exports=u})},{"./clipboard-action":8,"good-listener":4,"tiny-emitter":7}]},{},[9])(9)});var _logTimer=(new Date).getTime();Config.Modes.animations&&"function"==typeof window.requestAnimationFrame?window.onAnimationFrameCallback=function(e){return function(){window.requestAnimationFrame(e)}}:window.onAnimationFrameCallback=function(e){return e},function(e){function t(){return{shortIndexes:{},fullTexts:{}}}function n(e){var t="%"==e.charAt(0);return e=e.replace(s," ").replace(o,""),e=e.replace(/[^A-Za-z0-9]/g,function(e){return Config.LatinizeMap[e]||e}),e=e.toLowerCase(),t&&(e="%"+e),e}function a(e){return e&&e.toLowerCase()||""}function r(e,t,a){if(void 0!==a.fullTexts[e])return!1;if(t=n(t),!t.length)return!1;var r=a.shortIndexes;a.fullTexts[e]=t,angular.forEach(t.split(" "),function(t){var n,a,i=Math.min(t.length,3);for(a=1;a<=i;a++)n=t.substr(0,a),void 0===r[n]?r[n]=[e]:r[n].push(e)})}function i(e,t){var a=t.shortIndexes,r=t.fullTexts;e=n(e);var i,s,o,l,c,d=e.split(" "),p=!1;for(s=0;s<d.length;s++){if(i=a[d[s].substr(0,3)],!i){p=[];break}(p===!1||p.length>i.length)&&(p=i)}for(i={},o=0;o<p.length;o++){for(c=!0,l=r[p[o]],s=0;s<d.length;s++)if(l.indexOf(d[s])==-1){c=!1;break}c&&(i[p[o]]=!0)}return i}var s=/[`~!@#$%^&*()\-_=+\[\]\\|{}'";:\/?.>,<\s]+/g,o=/^\s+|\s$/g;e.SearchIndexManager={createIndex:t,indexObject:r,cleanSearchText:n,cleanUsername:a,search:i}}(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=[],r=0;r<this.offset;r++)a.push(this.byteView[r]);return a},TLSerialization.prototype.checkLength=function(e){if(!(this.offset+e<this.maxLength)){console.trace("Increase buffer",this.offset,e,this.maxLength),this.maxLength=4*Math.ceil(Math.max(2*this.maxLength,this.offset+e+16)/4);var t=this.buffer,n=new Int32Array(t);this.createBuffer(),new Int32Array(this.buffer).set(n)}},TLSerialization.prototype.writeInt=function(e,t){this.debug&&console.log(">>>",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),r=new Float64Array(n);r[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 r=0;r<a;r++)this.byteView[this.offset++]=n.charCodeAt(r);for(;this.offset%4;)this.byteView[this.offset++]=0},TLSerialization.prototype.storeBytes=function(e,t){e instanceof ArrayBuffer?e=new Uint8Array(e):void 0===e&&(e=[]),this.debug&&console.log(">>>",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,r=!1;for(n=0;n<a.methods.length;n++)if(a.methods[n].method==e){r=a.methods[n];break}if(!r)throw new Error("No method "+e+" found");this.storeInt(intToUint(r.id),e+"[id]");var i,s,n,o,l,c=r.params.length;for(n=0;n<c;n++){if(i=r.params[n],s=i.type,s.indexOf("?")!==-1){if(o=s.split("?"),l=o[0].split("."),!(t[l[0]]&1<<l[1]))continue;s=o[1]}this.storeObject(t[i.name],s,e+"["+i.name+"]")}return r.type},TLSerialization.prototype.storeObject=function(e,t,n){switch(t){case"#":case"int":return this.storeInt(e,n);case"long":return this.storeLong(e,n);case"int128":return this.storeIntBytes(e,128,n);case"int256":return this.storeIntBytes(e,256,n);case"int512":return this.storeIntBytes(e,512,n);case"string":return this.storeString(e,n);case"bytes":return this.storeBytes(e,n);case"double":return this.storeDouble(e,n);case"Bool":return this.storeBool(e,n);case"true":return}if(angular.isArray(e)){if("Vector"==t.substr(0,6))this.writeInt(481674261,n+"[id]");else if("vector"!=t.substr(0,6))throw new Error("Invalid vector type "+t);var a=t.substr(7,t.length-8);this.writeInt(e.length,n+"[count]");for(var r=0;r<e.length;r++)this.storeObject(e[r],a,n+"["+r+"]");return!0}if("vector"==t.substr(0,6).toLowerCase())throw new Error("Invalid vector object");if(!angular.isObject(e))throw new Error("Invalid object for type "+t);var r,i=this.mtproto?Config.Schema.MTProto:Config.Schema.API,s=e._,o=!1,l=!1;for((o="%"==t.charAt(0))&&(t=t.substr(1)),r=0;r<i.constructors.length;r++)if(i.constructors[r].predicate==s){l=i.constructors[r];break}if(!l)throw new Error("No predicate "+s+" found");s==t&&(o=!0),o||this.writeInt(intToUint(l.id),n+"["+s+"][id]");var c,t,r,d,p,u=l.params.length;for(r=0;r<u;r++){if(c=l.params[r],t=c.type,t.indexOf("?")!==-1){if(d=t.split("?"),p=d[0].split("."),!(e[p[0]]&1<<p[1]))continue;t=d[1]}this.storeObject(e[c.name],t,n+"["+s+"]["+c.name+"]")}return l.type},TLDeserialization.prototype.readInt=function(e){if(this.offset>=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;a<t;a++)n+=String.fromCharCode(this.byteView[this.offset++]);for(;this.offset%4;)this.offset++;try{var r=decodeURIComponent(escape(n))}catch(i){var r=n}return this.debug&&console.log("<<<",r,(e||"")+":string"),r},TLDeserialization.prototype.fetchBytes=function(e){var t=this.byteView[this.offset++];254==t&&(t=this.byteView[this.offset++]|this.byteView[this.offset++]<<8|this.byteView[this.offset++]<<16);var n=this.byteView.subarray(this.offset,this.offset+t);for(this.offset+=t;this.offset%4;)this.offset++;return this.debug&&console.log("<<<",bytesToHex(n),(e||"")+":bytes"),n},TLDeserialization.prototype.fetchIntBytes=function(e,t,n){if(e%32)throw new Error("Invalid bits: "+e);var a=e/8;if(t){var r=this.byteView.subarray(this.offset,this.offset+a);return this.offset+=a,r}for(var i=[],s=0;s<a;s++)i.push(this.byteView[this.offset++]);return this.debug&&console.log("<<<",bytesToHex(i),(n||"")+":int"+e),i},TLDeserialization.prototype.fetchRawBytes=function(e,t,n){if(e===!1&&(e=this.readInt((n||"")+"_length"),e>this.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=[],r=0;r<e;r++)a.push(this.byteView[this.offset++]);return this.debug&&console.log("<<<",bytesToHex(a),n||""),a},TLDeserialization.prototype.fetchObject=function(e,t){switch(e){case"#":case"int":return this.fetchInt(t);case"long":return this.fetchLong(t);case"int128":return this.fetchIntBytes(128,!1,t);case"int256":return this.fetchIntBytes(256,!1,t);case"int512":return this.fetchIntBytes(512,!1,t);case"string":return this.fetchString(t);case"bytes":return this.fetchBytes(t);case"double":return this.fetchDouble(t);case"Bool":return this.fetchBool(t);case"true":return!0}if(t=t||e||"Object","Vector"==e.substr(0,6)||"vector"==e.substr(0,6)){if("V"==e.charAt(0)){var n=this.readInt(t+"[id]"),a=uintToInt(n);if(812830625==a){var r=this.fetchBytes(t+"[packed_string]"),i=gzipUncompress(r),s=bytesToArrayBuffer(i),o=new TLDeserialization(s);return o.fetchObject(e,t)}if(481674261!=a)throw new Error("Invalid vector constructor "+n)}var l=this.readInt(t+"[count]"),c=[];if(l>0)for(var d=e.substr(7,e.length-8),p=0;p<l;p++)c.push(this.fetchObject(d,t+"["+p+"]"));return c}var u=this.mtproto?Config.Schema.MTProto:Config.Schema.API,m=!1,g=!1;if("%"==e.charAt(0)){for(var h=e.substr(1),p=0;p<u.constructors.length;p++)if(u.constructors[p].type==h){g=u.constructors[p];break}if(!g)throw new Error("Constructor not found for type: "+e);
}else if(e.charAt(0)>=97&&e.charAt(0)<=122){for(var p=0;p<u.constructors.length;p++)if(u.constructors[p].predicate==e){g=u.constructors[p];break}if(!g)throw new Error("Constructor not found for predicate: "+e)}else{var n=this.readInt(t+"[id]"),a=uintToInt(n);if(812830625==a){var r=this.fetchBytes(t+"[packed_string]"),i=gzipUncompress(r),s=bytesToArrayBuffer(i),o=new TLDeserialization(s);return o.fetchObject(e,t)}var f=u.constructorsIndex;if(!f){u.constructorsIndex=f={};for(var p=0;p<u.constructors.length;p++)f[u.constructors[p].id]=p}var p=f[a];p&&(g=u.constructors[p]);var _=!1;if(!g&&this.mtproto){var y=Config.Schema.API;for(p=0;p<y.constructors.length;p++)if(y.constructors[p].id==a){g=y.constructors[p],delete this.mtproto,_=!0;break}}if(!g)throw new Error("Constructor not found: "+n+" "+this.fetchInt()+" "+this.fetchInt())}m=g.predicate;var c={_:m},v=(this.mtproto?"mt_":"")+m,b=this;if(this.override[v])this.override[v].apply(this,[c,t+"["+m+"]"]);else{var p,w,e,k,$,C,S,l=g.params.length;for(p=0;p<l;p++){if(w=g.params[p],e=w.type,"#"==e&&void 0===c.pFlags&&(c.pFlags={}),k=e.indexOf("?")!==-1){if($=e.split("?"),C=$[0].split("."),!(c[C[0]]&1<<C[1]))continue;e=$[1]}S=b.fetchObject(e,t+"["+m+"]["+w.name+"]"),k&&"true"===e?c.pFlags[w.name]=S:c[w.name]=S}}return _&&(this.mtproto=!0),c},TLDeserialization.prototype.getOffset=function(){return this.offset},TLDeserialization.prototype.fetchEnd=function(){if(this.offset!=this.byteView.length)throw new Error("Fetch end with non-empty buffer");return!0},angular.module("izhukov.utils",[]).provider("Storage",function(){this.setPrefix=function(e){ConfigStorage.prefix(e)},this.$get=["$q",function(e){var t={};return angular.forEach(["get","set","remove","clear"],function(n){t[n]=function(){var t=e.defer(),a=Array.prototype.slice.call(arguments);return a.push(function(e){t.resolve(e)}),ConfigStorage[n].apply(ConfigStorage,a),t.promise}}),t.noPrefix=function(){ConfigStorage.noPrefix()},t}]}).service("qSync",function(){return{when:function(e){return{then:function(t){return t(e)}}},reject:function(e){return{then:function(t,n){if(n)return n(e)}}}}}).service("FileManager",["$window","$q","$timeout","qSync",function(e,t,n,a){function r(){return f}function i(e,n){return l(n).then(function(n){return s(n,e).then(function(){return n},function(e){try{n.truncate(0)}catch(a){}return t.reject(e)})})}function s(e,n){var a=t.defer();if(e.onwriteend=function(e){a.resolve()},e.onerror=function(e){a.reject(e)},n.file)n.file(function(t){e.write(t)},function(e){a.reject(e)});else if(n instanceof Blob)e.write(n);else try{var r=blobConstruct([bytesToArrayBuffer(n)]);e.write(r)}catch(i){a.reject(i)}return a.promise}function o(n,r,i){if(!e.chrome||!chrome.fileSystem||!chrome.fileSystem.chooseEntry)return a.reject();var s=t.defer();return chrome.fileSystem.chooseEntry({type:"saveFile",suggestedName:n,accepts:[{mimeTypes:[i],extensions:[r]}]},function(e){s.resolve(e)}),s.promise}function l(e){var n=t.defer();return e.createWriter(function(e){n.resolve(e)},function(e){n.reject(e)}),n.promise}function c(e,t){var n=[],a={write:function(e){return f?(n.push(e),void setZeroTimeout(function(){a.onwriteend&&a.onwriteend()})):(a.onerror&&a.onerror(new Error("Blob not supported by browser")),!1)},truncate:function(){n=[]},finalize:function(){var a=blobConstruct(n,e);return t&&t(a),a}};return a}function d(e,t){var n=blobSafeMimeType(t);return void 0!==e.toURL?e.toURL(n):e instanceof Blob?URL.createObjectURL(e):"data:"+n+";base64,"+bytesToBase64(e)}function p(e){if(e instanceof Blob){var n=t.defer();try{var a=new FileReader;return a.onloadend=function(e){n.resolve(new Uint8Array(e.target.result))},a.onerror=function(e){n.reject(e)},a.readAsArrayBuffer(e),n.promise}catch(r){return t.reject(r)}}else if(e.file){var n=t.defer();return e.file(function(e){p(e).then(function(e){n.resolve(e)},function(e){n.reject(e)})},function(e){n.reject(e)}),n.promise}return t.when(e)}function u(e){var n;try{var a=new FileReader;a.onloadend=function(){n.resolve(a.result)},a.readAsDataURL(e)}catch(r){return t.reject(r)}return n=t.defer(),n.promise}function m(e,t){if(h&&e instanceof Blob){var t=e.type||e.mimeType||t||"";if(!t.match(/image\/(jpeg|gif|png|bmp)|video\/quicktime/))return u(e)}return a.when(d(e,t))}function g(e,t,a){if(window.navigator&&void 0!==navigator.msSaveBlob)return window.navigator.msSaveBlob(e,a),!1;if(window.navigator&&navigator.getDeviceStorage){var r="sdcard",i="telegram/";switch(t.split("/")[0]){case"video":r="videos";break;case"audio":r="music";break;case"image":r="pictures"}var s=navigator.getDeviceStorage(r),o=s.addNamed(e,i+a);return o.onsuccess=function(){console.log("Device storage save result",this.result)},void(o.onerror=function(){})}var l=!1;window.safari&&(l=window.open()),m(e,t).then(function(e){if(l)try{return void(l.location.href=e)}catch(t){}var r=document.createElementNS("http://www.w3.org/1999/xhtml","a");r.href=e,r.target="_blank",r.download=a,r.dataset&&(r.dataset.downloadurl=["video/quicktime",a,e].join(":")),$(r).css({position:"absolute",top:1,left:1}).appendTo("body");try{var i=document.createEvent("MouseEvents");i.initMouseEvent("click",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),r.dispatchEvent(i)}catch(t){console.error("Download click error",t);try{r[0].click()}catch(t){window.open(e,"_blank")}}n(function(){$(r).remove()},100)})}e.URL=e.URL||e.webkitURL,e.BlobBuilder=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder;var h=navigator.userAgent.indexOf("Safari")!=-1&&navigator.userAgent.indexOf("Chrome")==-1,f=!0;try{blobConstruct([],"")}catch(_){f=!1}return{isAvailable:r,copy:i,write:s,getFileWriter:l,getFakeFileWriter:c,chooseSave:o,getUrl:d,getDataUrl:u,getByteArray:p,getFileCorrectUrl:m,download:g}}]).service("IdbFileStorage",["$q","$window","FileManager",function(e,t,n){function a(){return h}function r(){if(p)return p;try{var t=indexedDB.open(u,g),n=e.defer(),a=function(e){e.createObjectStore(m)};if(!t)throw new Exception}catch(r){return console.error("error opening db",r.message),h=!1,e.reject(r)}var i=!1;return setTimeout(function(){i||t.onerror({type:"IDB_CREATE_TIMEOUT"})},3e3),t.onsuccess=function(e){i=!0;var a=t.result;a.onerror=function(e){h=!1,console.error("Error creating/accessing IndexedDB database",e),n.reject(e)},n.resolve(a)},t.onerror=function(e){i=!0,h=!1,console.error("Error creating/accessing IndexedDB database",e),n.reject(e)},t.onupgradeneeded=function(e){i=!0,console.warn("performing idb upgrade from",e.oldVersion,"to",e.newVersion);var t=e.target.result;1==e.oldVersion&&t.deleteObjectStore(m),a(t)},p=n.promise}function i(t,n){return r().then(function(a){if(!f)return s(a,t,n);n instanceof Blob||(n=blobConstruct([n]));try{var r=a.transaction([m],IDBTransaction.READ_WRITE||"readwrite").objectStore(m),i=r.put(n,t)}catch(o){return f?(f=!1,s(a,t,n)):(h=!1,e.reject(o))}var l=e.defer();return i.onsuccess=function(e){l.resolve(n)},i.onerror=function(e){l.reject(e)},l.promise})}function s(t,n,a){if(l(a)>10485760)return e.reject();if(!(a instanceof Blob)){var r=blobSafeMimeType(a.type||"image/jpeg"),i="data:"+r+";base64,"+bytesToBase64(a);return o(t,n,i).then(function(){return a})}try{var s=new FileReader}catch(c){return h=!1,e.reject()}var d=e.defer();s.onloadend=function(){o(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 o(t,n,a){try{var r=t.transaction([m],IDBTransaction.READ_WRITE||"readwrite").objectStore(m),i=r.put(a,n)}catch(s){return h=!1,e.reject(s)}var o=e.defer();return i.onsuccess=function(e){o.resolve()},i.onerror=function(e){o.reject(e)},o.promise}function l(e){return e.size||e.byteLength||e.length}function c(t){return r().then(function(n){var a=e.defer(),r=n.transaction([m],IDBTransaction.READ||"readonly").objectStore(m),i=r.get(t);return i.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)},i.onerror=function(e){a.reject(e)},a.promise})}function d(t,a){var r=n.getFakeFileWriter(a,function(e){i(t,e)});return e.when(r)}t.indexedDB=t.indexedDB||t.webkitIndexedDB||t.mozIndexedDB||t.OIndexedDB||t.msIndexedDB,t.IDBTransaction=t.IDBTransaction||t.webkitIDBTransaction||t.OIDBTransaction||t.msIDBTransaction;var p,u="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 r(),{name:"IndexedDB",isAvailable:a,saveFile:i,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 r(){return Config.allow_tmpfs&&c}function i(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 o(e).then(function(e){return n.write(e,t).then(function(){return e.finalize()})})}function o(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:r,saveFile:s,getFile:i,getFileWriter:o}}]).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 r(t,n){return e.when(s[t]=n)}function i(n,a){var i=t.getFakeFileWriter(a,function(e){r(n,e)});return e.when(i)}var s={};return{name:"Memory",isAvailable:n,saveFile:r,getFile:a,getFileWriter:i}}]).service("WebpManager",["qSync","$q",function(e,t){function n(e){var t=(tsNow(),new WebPDecoder),n=t.WebPDecoderConfig,a=n.j||n.output,r=n.input;if(!t.WebPInitDecoderConfig(n))return console.error("[webpjs] Library version mismatch!"),!1;var i=t.VP8StatusCode;status=t.WebPGetFeatures(e,e.length,r),status!=(i.VP8_STATUS_OK||0)&&console.error("[webpjs] status error",status,i);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,i),!1;var d=a.c.RGBA.ma;if(!d)return!1;var p=a.height,u=a.width;s&&o?o.clearRect(0,0,s.width,s.height):(s=document.createElement("canvas"),o=s.getContext("2d")),s.height=p,s.width=u;for(var m=o.createImageData(s.width,s.height),g=m.data,h=0;h<p;h++)for(var f=0;f<u;f++)g[0+4*f+4*u*h]=d[1+4*f+4*u*h],g[1+4*f+4*u*h]=d[2+4*f+4*u*h],g[2+4*f+4*u*h]=d[3+4*f+4*u*h],g[3+4*f+4*u*h]=d[0+4*f+4*u*h];return o.putImageData(m,0,0),!0}function a(a){if(!n(a))return t.reject({type:"WEBP_PROCESS_FAILED"});if(void 0===s.toBlob)return e.when(dataUrlToBlob(s.toDataURL("image/png")));var r=t.defer();return s.toBlob(function(e){r.resolve(e)},"image/png"),r.promise}var r=!1,i=new Image;i.onload=function(){r=2===this.width&&1===this.height},i.onerror=function(){r=!1},i.src="data:image/webp;base64,UklGRjIAAABXRUJQVlA4ICYAAACyAgCdASoCAAEALmk0mk0iIiIiIgBoSygABc6zbAAA/v56QAAAAA==";var s,o;return{isWebpSupported:function(){return r},getPngBlobFromWebp:a}}]).service("CryptoWorker",["$timeout","$q",function(e,t){function n(e,n,r){var o=t.defer();return s[i]=o,n.task=e,n.taskID=i,(r||a).postMessage(n),i++,o.promise}var a=!1,r=!1,i=0,s={},o=Config.Modes.webcrypto&&window.crypto&&(window.crypto.subtle||window.crypto.webkitSubtle),l=o&&void 0!==o.digest,c=o&&void 0!==o.digest,d=function(e,t){var n=s[e];void 0!==n&&(n.resolve(t),delete s[e])};if(Config.Modes.nacl&&navigator.mimeTypes&&void 0!==navigator.mimeTypes["application/x-pnacl"]){var p=$('<div id="nacl_listener"><embed id="mtproto_crypto" width="0" height="0" src="nacl/mtproto_crypto.nmf" type="application/x-pnacl" /></div>').appendTo($("body"))[0];p.addEventListener("load",function(e){r=p.firstChild,console.log(dT(),"NaCl ready")},!0),p.addEventListener("message",function(e){d(e.data.taskID,e.data.result)},!0),p.addEventListener("error",function(e){console.error("NaCl error",e)},!0)}if(window.Worker){var u=new Worker("js/lib/crypto_worker.js");u.onmessage=function(e){a?d(e.data.taskID,e.data.result):a=u},u.onerror=function(e){console.error("CW error",e,e.stack),a=!1}}return{sha1Hash:function(n){if(l){var a=t.defer(),r=Array.isArray(n)?convertToUint8Array(n):n;return o.digest({name:"SHA-1"},r).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(),r=Array.isArray(n)?convertToUint8Array(n):n;return o.digest({name:"SHA-256"},r).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,i){return r?n("aes-encrypt",{bytes:addPadding(convertToArrayBuffer(t)),keyBytes:convertToArrayBuffer(a),ivBytes:convertToArrayBuffer(i)},r):e(function(){return convertToArrayBuffer(aesEncryptSync(t,a,i))})},aesDecrypt:function(t,a,i){return r?n("aes-decrypt",{encryptedBytes:addPadding(convertToArrayBuffer(t)),keyBytes:convertToArrayBuffer(a),ivBytes:convertToArrayBuffer(i)},r):e(function(){return convertToArrayBuffer(aesDecryptSync(t,a,i))})},factorize:function(t){return t=convertToByteArray(t),r&&t.length<=8?n("factorize",{bytes:t},r):a?n("factorize",{bytes:t}):e(function(){return pqPrimeFactorization(t)})},modPow:function(t,r,i){return a?n("mod-pow",{x:t,y:r,m:i}):e(function(){return bytesModPow(t,r,i)})}}}]).service("ExternalResourcesManager",["$q","$http","$sce",function(e,t,n){function a(a){return void 0!==r[a]?r[a]:r[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 r={};return{downloadByURL:a}}]).service("IdleManager",["$rootScope","$window","$timeout",function(e,t,n){function a(){o||(o=!0,$(t).on(c+" blur focus keydown mousedown touchstart",r),setTimeout(function(){r({type:"blur",fake_initial:!0})},0))}function r(a){if("mousemove"==a.type){var a=a.originalEvent||a;if(a&&0===a.movementX&&0===a.movementY)return;$(t).off("mousemove",r)}var o="blur"==a.type||"timeout"==a.type;l&&document[l]&&(o=!0),n.cancel(i),o||(i=n(function(){r({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!=o&&(s=n(function(){e.idle.isIDLE=o,o&&"timeout"==a.type&&$(t).on("mousemove",r)},c))}e.idle={isIDLE:!1,initial:!0};var i,s,o=!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 r=e.defer();return navigator.geolocation.getCurrentPosition(function(e){a={lat:e.coords.latitude,"long":e.coords.longitude},r.resolve(a)},function(e){r.reject(e)}),r.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,r,i=0;i<Config.EmojiCategories.length;i++)if(r=Config.EmojiCategorySpritesheetDimens[i][1],t=Config.EmojiCategories[i].indexOf(e),t>-1)return n=Math.floor(t/r),a=t%r,{category:i,row:n,column:a};return console.error("emoji not found in spritesheet",e),null}function a(e,t){t=t||{};for(var a,r,i,s,o,l=e,c=[],p=0;a=l.match(S);){if(o=p+a.index,a[3])c.push({_:"messageEntityMention",offset:o+a[1].length,length:a[2].length+a[3].length});else if(a[4])if(M.test(a[4]))c.push({_:"messageEntityEmail",offset:o,length:a[4].length});else{var r=!1,u=a[5],m=a[6],g="";if(m){if(u||"xn--"!==m.substr(0,4)&&Config.TLD.indexOf(m.toLowerCase())===-1||(u="http://"),u){var f=d(a[4]);f.length!==a[4].length&&(g=a[4].substring(f.length),a[4]=f),r=(a[5]?"":u)+a[4]}}else r=(a[5]?"":"http://")+a[4];r&&c.push({_:"messageEntityUrl",offset:o,length:a[4].length})}else a[7]?c.push({_:"messageEntityLinebreak",offset:o,length:1}):a[8]?(i=EmojiHelper.emojiMap[a[8]])&&(s=n(i))&&c.push({_:"messageEntityEmoji",offset:o,length:a[0].length,coords:s,title:h[i][1][0]}):a[10]?c.push({_:"messageEntityHashtag",offset:o+a[9].length,length:a[10].length}):a[12]&&c.push({_:"messageEntityBotCommand",offset:o+a[11].length,length:1+a[12].length+(a[13]?1+a[13].length:0)});l=l.substr(a.index+a[0].length),p+=a.index+a[0].length}return c}function r(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 i(e,t,n){if(!x.test(e))return n?e:e.trim();for(var a,r,i=e,s=[],o=0;a=i.match(I);){r=o+a.index,s.push(i.substr(0,a.index));var e=a[3]||a[8]||a[11];o-=e.length,e=e.replace(/^\s+|\s+$/g,""),o+=e.length,e.match(/^`*$/)?s.push(a[0]):a[3]?("\n"==a[5]&&(a[5]="",o-=1),s.push(a[1]+e+a[5]),t.push({_:"messageEntityPre",language:"",offset:r+a[1].length,length:e.length}),o-=a[2].length+a[4].length):a[7]?(s.push(a[6]+e+a[9]),t.push({_:T[a[7]],offset:r+a[6].length,length:e.length}),o-=2*a[7].length):a[11]&&(s.push(e),t.push({_:"messageEntityMentionName",user_id:a[10],offset:r,length:e.length}),o-=a[0].length-e.length),i=i.substr(a.index+a[0].length),o+=a.index+a[0].length}return s.push(i),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,r,i,s,o,l,c,d,p,u=t.slice(),m=e.length,g=t.length,h=0;for(a=0;a<m;a++)if(i=e[a],!n||"messageEntityLinebreak"==i._||"messageEntityEmoji"==i._){for(o=i.offset,l=o+i.length,p=!1,r=h;r<g;r++){if(s=t[r],c=s.offset,d=c+s.length,c<=o&&(h=r),o>=c&&o<d||l>c&&l<=d){n&&o>=c&&l<=d&&(void 0===s.nested&&(s.nested=[]),i.offset-=c,s.nested.push(angular.copy(i))),p=!0;break}if(c>=l)break}p||u.push(i)}return u.sort(function(e,t){return e.offset-t.offset}),u}function o(e,t,n){return void 0===t?encodeEntities(e):(n.hasNested=!0,l(e,{entities:t,nested:!0}))}function l(n,r){if(!n||!n.length)return"";r=r||{};var i=r.entities,s=r.contextSite||"Telegram",l="Telegram"!=s,c=!1;void 0===i&&(i=a(n,r));var d,u,g,h,_=0,y=i.length,v=[],b=0,w=r.emojiIconSize||f;for(_=0;_<y;_++){if(d=i[_],d.offset>b)v.push(encodeEntities(n.substr(b,d.offset-b)));else if(d.offset<b)continue;switch(g=!1,u=n.substr(d.offset,d.length),d._){case"messageEntityMention":var k=!r.noLinks&&E[s];if(!k){g=!0;break}var $=u.substr(1),C="";r.highlightUsername&&r.highlightUsername.toLowerCase()==$.toLowerCase()&&(C='class="im_message_mymention"'),v.push("<a ",C,l?' target="_blank" rel="noopener noreferrer" ':"",' href="',k.replace("{1}",encodeURIComponent($)),'">',encodeEntities(u),"</a>");break;case"messageEntityMentionName":if(r.noLinks){g=!0;break}v.push('<a href="#/im?p=u',encodeURIComponent(d.user_id),'">',encodeEntities(u),"</a>");break;case"messageEntityHashtag":var k=!r.noLinks&&A[s];if(!k){g=!0;break}var S=u.substr(1);v.push("<a ",l?' target="_blank" rel="noopener noreferrer" ':"",'href="',k.replace("{1}",encodeURIComponent(S)),'">',encodeEntities(u),"</a>");break;case"messageEntityEmail":if(r.noLinks){g=!0;break}v.push('<a href="',encodeEntities("mailto:"+u),'" target="_blank" rel="noopener noreferrer">',encodeEntities(u),"</a>");break;case"messageEntityUrl":case"messageEntityTextUrl":var M;"messageEntityTextUrl"==d._?(h=d.url,h=m(h,!0),M=o(u,d.nested,r)):(h=m(u,!1),M=encodeEntities(p(u))),r.noLinks?v.push(M):v.push('<a href="',encodeEntities(h),'" target="_blank" rel="noopener noreferrer">',M,"</a>");break;case"messageEntityLinebreak":v.push(r.noLinebreaks?" ":"<br/>");break;case"messageEntityEmoji":v.push('<span class="emoji emoji-',d.coords.category,"-",w*d.coords.column,"-",w*d.coords.row,'" ','title="',d.title,'">',":",d.title,":</span>"),c=!0;break;case"messageEntityBotCommand":if(r.noLinks||r.noCommands||l){g=!0;break}var x,I,T=u.substr(1);(I=T.indexOf("@"))!=-1?(x=T.substr(I+1),T=T.substr(0,I)):x=r.fromBot,v.push('<a href="',encodeEntities("tg://bot_command?command="+encodeURIComponent(T)+(x?"&bot="+encodeURIComponent(x):"")),'">',encodeEntities(u),"</a>");break;case"messageEntityBold":v.push("<strong>",o(u,d.nested,r),"</strong>");break;case"messageEntityItalic":v.push("<em>",o(u,d.nested,r),"</em>");break;case"messageEntityCode":v.push("<code>",encodeEntities(u),"</code>");break;case"messageEntityPre":v.push("<pre><code",d.language?' class="language-'+encodeEntities(d.language)+'"':"",">",encodeEntities(u),"</code></pre>");break;default:g=!0}b=d.offset+(g?0:d.length)}if(v.push(encodeEntities(n.substr(b))),n=t(v.join("")),!r.nested&&(c||r.hasNested)){n=n.replace(/\ufe0f|&#65039;|&#65533;|&#8205;/g,"",n);var D=18==w?"":" emoji-w"+w;n=n.replace(/<span((?: [^>]*)?) class="emoji emoji-(\d)-(\d+)-(\d+)"(.+?)<\/span>/g,'<span$1 class="emoji '+D+' emoji-spritesheet-$2" style="background-position: -$3px -$4px;" $5</span>')}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 r,i,s,o=0,l=n.length,c=[],d=0;for(o=0;o<l;o++){if(r=n[o],r.offset>d)c.push(e.substr(d,r.offset-d));else if(r.offset<d)continue;switch(s=!1,i=e.substr(r.offset,r.length),r._){case"messageEntityEmoji":c.push(":",r.title,":");break;case"messageEntityCode":c.push("`",i,"`");break;case"messageEntityBold":c.push("**",i,"**");break;case"messageEntityItalic":c.push("__",i,"__");break;case"messageEntityPre":c.push("```",i,"```");break;case"messageEntityMentionName":c.push("@",r.user_id," (",i,")");break;default:s=!0}d=r.offset+(s?0:r.length)}return c.push(e.substr(d)),c.join("")}function d(e){for(var t=e.length,n=e.split("(").length-1,a=e.split(")").length-1;a>n&&")"===e.charAt(t-1);)e=e.substr(0,t-1),a--,t--;return n>a&&(e=e.replace(/\)+$/,"")),e}function p(e){return e.replace(/(%[A-Z\d]{2})+/g,function(e){try{return decodeURIComponent(e)}catch(t){return e}})}function u(e,t){if(_)return e;if(!e||!e.length)return"";t=t||{},e=e.replace(/\ufe0f/g,"",e);for(var n,a,r=e,e=[];n=r.match(S);)e.push(r.substr(0,n.index)),n[8]&&(g=EmojiHelper.emojiMap[n[8]])&&(a=h[g][1][0])?e.push(":"+a+":"):e.push(n[0]),r=r.substr(n.index+n[0].length);return e.push(r),e.join("")}function m(e,t){e.match(/^(https?|tg):\/\//i)||(e="http://"+e);var n,a;if(2==t)e="tg://unsafe_url?url="+encodeURIComponent(e);else if(n=e.match(/^https?:\/\/t(?:elegram)?\.me\/(.+)/)){var r=n[1].split("/");switch(r[0]){case"joinchat":e="tg://join?invite="+r[1];break;case"addstickers":e="tg://addstickers?set="+r[1];break;default:if(r[1]&&r[1].match(/^\d+$/))e="tg://resolve?domain="+r[0]+"&post="+r[1];else if(!r[1]){var i=r[0].split("?");e="tg://resolve?domain="+i[0]+(i[1]?"&"+i[1]:"")}}}else(a=e.match(/^https?:\/\/telesco\.pe\/([^\/?]+)\/(\d+)/))?e="tg://resolve?domain="+a[1]+"&post="+a[2]:t&&(e="tg://unsafe_url?url="+encodeURIComponent(e));return e}var g,h=Config.Emoji,f=18,_=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<EFBFBD>]\\uD83C[\\uDDEA-\\uDDFA<EFBFBD>]|[0-9]\\u20e3|\\uD83C[\\uDC00-\\uDFFF]",v="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",b="0-9_"+v,w="·",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}|["+v+"0-9]["+v+w+"0-9-]{0,64}(?:\\.["+v+"0-9]["+v+w+"0-9-]{0,64}){0,10}(?:\\.(xn--[0-9a-z]{2,16}|["+v+"]{2,24})))(?::\\d{2,5})?(?:/(?:\\S{0,255}[^\\s.;,(\\[\\]{}<>\"'])?)?",$="[a-zA-Z\\d_]{5,32}",C="\\/([a-zA-Z\\d_]{1,32})(?:@("+$+"))?(\\b|$)",S=new RegExp("(^| )(@)("+$+")|("+k+")|(\\n)|("+y+")|(^|[\\s\\(\\]])(#["+b+"]{2,64})|(^|\\s)"+C,"i"),M=/^(([^<>()[\]\\.,;:\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,}))$/,x=/[`_*@]/,I=/(^|\s|\n)(````?)([\s\S]+?)(````?)([\s\n\.,:?!;]|$)|(^|\s)(`|\*\*|__)([^\n]+?)\7([\s\.,:?!;]|$)|@(\d+)\s*\((.+?)\)/m,A={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}"},E={Telegram:"#/im?p=%40{1}",Twitter:"https://twitter.com/{1}",Instagram:"https://instagram.com/{1}/",GitHub:"https://github.com/{1}"},T={"`":"messageEntityCode","**":"messageEntityBold",__:"messageEntityItalic"};return{wrapRichText:l,wrapPlainText:u,wrapDraftText:c,wrapUrl:m,parseEntities:a,parseMarkdown:i,parseEmojis:r,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 r=n-Math.floor(+a/1e3),i=0,s={midnightOffset:r,serverTimeOffset:i};return e.get("server_time_offset").then(function(e){e&&(i=e,s.serverTimeOffset=e)}),s}]).service("WebPushApiManager",["$window","$timeout","$q","$rootScope","_","AppRuntimeManager",function(e,t,n,a,r,i){function s(){w||(w=!0,l(),h())}function o(){b=!1}function l(){y&&navigator.serviceWorker.ready.then(function(e){e.pushManager.getSubscription().then(function(e){v=!!e,f("init",e)})["catch"](function(e){console.log("Error during getSubscription()",e)})})}function c(){y&&navigator.serviceWorker.ready.then(function(e){e.pushManager.subscribe({userVisibleOnly:C}).then(function(e){v=!0,f("subscribe",e)})["catch"](function(e){"denied"===Notification.permission?console.log("Permission for Notifications was denied"):(console.log("Unable to subscribe to push.",e),C||(C=!0,setTimeout(c,0)))})})}function d(){y&&navigator.serviceWorker.ready.then(function(e){e.pushManager.getSubscription().then(function(e){v=!1,e&&(f("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 p(){y&&navigator.serviceWorker.ready.then(function(e){e.pushManager.getSubscription().then(function(e){console.warn("force unsubscribe",e),e&&e.unsubscribe().then(function(e){console.warn("force unsubscribe successful",e),v=!1})["catch"](function(e){console.error("Unsubscription error: ",e)})})["catch"](function(e){console.error("Error thrown while unsubscribing from push messaging.",e)})})}function u(){if(!(!y||a.idle&&a.idle.deactivated)){k.baseUrl=(location.href||"").replace(/#.*$/,"")+"#/im";var e={type:"ping",localNotifications:b,lang:{push_action_mute1d:r(Config.Mobile?"push_action_mute1d_mobile_raw":"push_action_mute1d_raw"),push_action_settings:r(Config.Mobile?"push_action_settings_mobile_raw":"push_action_settings_raw"),push_message_nopreview:r("push_message_nopreview_raw")},settings:k};navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage(e),_=setTimeout(u,1e4)}}function m(e){k=angular.copy(e),clearTimeout(_),u()}function g(){if(y&&navigator.serviceWorker.controller){var e={type:"notifications_clear"};navigator.serviceWorker.controller.postMessage(e)}}function h(){y&&(navigator.serviceWorker.addEventListener("message",function(e){if(e.data&&"push_click"==e.data.type){if(a.idle&&a.idle.deactivated)return void i.reload();a.$emit("push_notification_click",e.data.data)}}),navigator.serviceWorker.ready.then(u))}function f(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(),y=!1,f(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 _,y=!0,v=!1,b=!0,w=!1,k={},$=navigator.userAgent.toLowerCase().indexOf("firefox")>-1,C=!$;return"PushManager"in window&&"Notification"in window&&"serviceWorker"in navigator||(console.warn("Push messaging is not supported."),y=!1,b=!1),y&&"denied"===Notification.permission&&console.warn("The user has blocked notifications."),{isAvailable:y,start:s,isPushEnabled:v,subscribe:c,unsubscribe:d,forceUnsubscribe:p,hidePushNotifications:g,setLocalNotificationsDisabled:o,setSettings:m}}]),angular.module("myApp.i18n",["izhukov.utils"]).factory("_",["$rootScope","$locale",function(e,t){function n(e,t){return e.replace(l,function(a,r,i){var s=t[r];return void 0===s?(console.warn("[i18n] missing param "+r+' for message "'+e+'"'),""):(void 0!==i&&(s=n(s,i.split("|"))),s.toString().trim())})}function a(e,t){return e=e.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>").replace(/\n|&#10;/g,"<br/>")}function r(e,t){var r=!1,l=e;if("_raw"===e.substr(-4)&&(r=!0,e=e.substr(0,e.length-4)),s.hasOwnProperty(e))l=s[e];else{if(!o.hasOwnProperty(e))return console.warn("[i18n] missing key "+e),e;l=o[e],console.warn("[i18n] missing locale key "+i+" / "+e)}return r||(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 i=Config.I18n.locale,s=Config.I18n.messages,o=Config.I18n.fallback_messages,l=/\{\s*([a-zA-Z\d\-_]+)(?:\s*:\s*(.*?))?\s*\}/g;return r.locale=function(){return i},r.pluralize=function(n){var a=e.$eval(r(n+"_raw"));
return function(e){return(a[t.pluralCat(e)]||"").replace("{}",e)}},r}]).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 r=angular.element(a),i=r.attr("my-i18n")||r.attr("msgid")||r.attr("my-i18n-format")||r.html().replace(/\s+/g," ").trim();if(r.hasClass("nocopy")){var s=e(i+"_raw",n);r.attr("data-content",s)}else{var s=e(i,n);r.html(s)}})}}}]),angular.module("izhukov.mtproto",["izhukov.utils"]).factory("MtpDcConfigurator",function(){function e(e,r){if(void 0===a[e]){var i,s,o=!1;if(Config.Modes.ssl||!Config.Modes.http){var l=t[e-1]+(r?"-1":""),c=Config.Modes.test?"apiw_test1":"apiw1";return o="https://"+l+".web.telegram.org/"+c}for(i=0;i<n.length;i++)if(s=n[i],s.id==e){o="http://"+s.host+(80!=s.port?":"+s.port:"")+"/apiw1";break}a[e]=o}return a[e]}var t=["pluto","venus","aurora","vesta","flora"],n=Config.Modes.test?[{id:1,host:"149.154.175.10",port:80},{id:2,host:"149.154.167.40",port:80},{id:3,host:"149.154.175.117",port:80}]:[{id:1,host:"149.154.175.50",port:80},{id:2,host:"149.154.167.51",port:80},{id:3,host:"149.154.175.100",port:80},{id:4,host:"149.154.167.91",port:80},{id:5,host:"149.154.171.5",port:80}],a={};return{chooseServer:e}}).factory("MtpRsaKeysManager",function(){function e(){if(!r){for(var e=0;e<n.length;e++){var t=n[e],i=new TLSerialization;i.storeBytes(bytesFromHex(t.modulus),"n"),i.storeBytes(bytesFromHex(t.exponent),"e");var s=i.getBuffer(),o=sha1BytesSync(s).slice(-8);o.reverse(),a[bytesToHex(o)]={modulus:t.modulus,exponent:t.exponent}}r=!0}}function t(t){e();var n,r,i;for(i=0;i<t.length;i++)if(n=bigStringInt(t[i]).toString(16),r=a[n])return angular.extend({fingerprint:t[i]},r);return!1}var n=[{modulus:"c150023e2f70db7985ded064759cfecf0af328e69a41daf4d6f01b538135a6f91f8f8b2a0ec9ba9720ce352efcf6c5680ffc424bd634864902de0b4bd6d49f4e580230e3ae97d95c8b19442b3c0a10d8f5633fecedd6926a7f6dab0ddb7d457f9ea81b8465fcd6fffeed114011df91c059caedaf97625f6c96ecc74725556934ef781d866b34f011fce4d835a090196e9a5f0e4449af7eb697ddb9076494ca5f81104a305b6dd27665722c46b60e5df680fb16b210607ef217652e60236c255f6a28315f4083a96791d7214bf64c1df4fd0db1944fb26a2a57031b32eee64ad15a8ba68885cde74a5bfc920f6abf59ba5c75506373e7130f9042da922179251f",exponent:"010001"}],a={},r=!1;return{prepare:e,select:t}}).service("MtpSecureRandom",["$window",function(e){return $(e).on("click keydown",rng_seed_time),new SecureRandom}]).factory("MtpTimeManager",["Storage",function(e){function t(){var e=tsNow(),t=Math.floor(e/1e3)+r,n=e%1e3,i=nextRandomInt(65535),s=[t,n<<21|i<<3|4];return(a[0]>s[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 i=t-Math.floor((n||tsNow())/1e3),s=Math.abs(r-i)>10;return e.set({server_time_offset:i}),a=[0,0],r=i,console.log(dT(),"Apply server time",t,n,i,s),s}var a=[0,0],r=0;return e.get("server_time_offset").then(function(e){e&&(r=e)}),{generateID:t,applyServerTime:n}}]).factory("MtpAuthorizer",["MtpDcConfigurator","MtpRsaKeysManager","MtpSecureRandom","MtpTimeManager","CryptoWorker","$http","$q","$timeout",function(e,t,n,a,r,i,s,o){function l(t,n){var r=n.byteLength,o=new Int32Array(n),l=new TLSerialization;l.storeLongP(0,0,"auth_key_id"),l.storeLong(a.generateID(),"msg_id"),l.storeInt(r,"request_length");var c=l.getBuffer(),d=new Int32Array(c),p=c.byteLength,u=new ArrayBuffer(p+r),m=new Int32Array(u);m.set(d),m.set(o,d.length);var g,h=_?u:m,f=e.chooseServer(t),y={code:406,type:"NETWORK_BAD_RESPONSE",url:f};try{g=i.post(f,h,{responseType:"arraybuffer",transformRequest:null})}catch(v){g=s.reject(angular.extend(y,{originalError:v}))}return g.then(function(e){if(!e.data||!e.data.byteLength)return s.reject(y);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(y,{originalError:n}))}return t},function(e){return e.message||e.type||(e=angular.extend(y,{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 i=a.fetchObject("ResPQ");if("resPQ"!=i._)throw new Error("[MT] resPQ response invalid: "+i._);if(!bytesCmp(e.nonce,i.nonce))throw new Error("[MT] resPQ nonce mismatch");if(e.serverNonce=i.server_nonce,e.pq=i.pq,e.fingerprints=i.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),r.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)}),o(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 r=sha1BytesSync(a.getBuffer()).concat(a.getBytes()),i=new TLSerialization({mtproto:!0});i.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,r)}),console.log(dT(),"Send req_DH_params"),l(e.dcID,i.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 r=sha1BytesSync(e.newNonce).slice(-16);return bytesCmp(r,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{p(e,a.encrypted_answer)}catch(i){return t.reject(i),!1}m(e)},function(e){t.reject(e)})}function p(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),r=n.slice(0,20),i=n.slice(20),s=bytesToArrayBuffer(i),o=new TLDeserialization(s,{mtproto:!0}),l=o.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,u(e.g,e.dhPrime,e.gA);var c=o.getOffset();if(!bytesCmp(r,sha1BytesSync(i.slice(0,c))))throw new Error("[MT] server_DH_inner_data SHA1-hash mismatch");a.applyServerTime(e.serverTime,e.localTime)}function u(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 r=new BigInteger(bytesToHex(n),16),i=new BigInteger(a,16);if(r.compareTo(BigInteger.ONE)<=0)throw new Error("[MT] DH params are not verified: gA <= 1");if(r.compareTo(i.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 o=s.pow(1984);if(r.compareTo(o)<0)throw new Error("[MT] DH params are not verified: gA < 2^{2048-64}");if(r.compareTo(i.subtract(o))>=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),r.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 i=sha1BytesSync(a.getBuffer()).concat(a.getBytes()),s=aesEncryptSync(i,e.tmpAesKey,e.tmpAesIv),o=new TLSerialization({mtproto:!0});o.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,o.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 r.modPow(e.gA,e.b,e.dhPrime).then(function(n){var r=sha1BytesSync(n),i=r.slice(0,8),s=r.slice(-8);switch(console.log(dT(),"Got Set_client_DH_params_answer",a._),a._){case"dh_gen_ok":var o=sha1BytesSync(e.newNonce.concat([1],i)).slice(-16);if(!bytesCmp(o,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],i)).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],i)).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!==y[t])return y[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 r={dcID:t,nonce:n,deferred:s.defer()};return o(function(){c(r)}),y[t]=r.deferred.promise,y[t]["catch"](function(){delete y[t]}),y[t]}var h=navigator.userAgent.match(/Chrome\/(\d+(\.\d+)?)/),f=h&&parseFloat(h[1])||!1,_=!("ArrayBufferView"in window)&&(!f||f<30);delete i.defaults.headers.post["Content-Type"],delete i.defaults.headers.common.Accept;var y={};return{auth:g}}]).factory("MtpNetworkerFactory",["MtpDcConfigurator","MtpTimeManager","MtpSecureRandom","Storage","CryptoWorker","AppRuntimeManager","$http","$q","$timeout","$interval","$rootScope",function(e,t,n,a,r,i,s,o,l,c,d){function p(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 u(){_&&(_=!1,g({_:"new_session_created"},!0))}function m(){_=!0}var g,h=0,f=!1,_=!1,y=navigator.userAgent.match(/Chrome\/(\d+(\.\d+)?)/),v=y&&parseFloat(y[1])||!1,b=!("ArrayBufferView"in window)&&(!v||v<30);return delete s.defaults.headers.post["Content-Type"],delete s.defaults.headers.common.Accept,d.retryOnline=function(){$(document.body).trigger("online")},p.prototype.updateSession=function(){this.seqNo=0,this.prevSessionID=this.sessionID,this.sessionID=new Array(8),n.nextBytes(this.sessionID)},p.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())})},p.prototype.updateSentMessage=function(e){var n=this.sentMessages[e];if(!n)return!1;var a=this;if(n.container){var r=[];angular.forEach(n.inner,function(e){var t=a.updateSentMessage(e);t&&r.push(t.msg_id)}),n.inner=r}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},p.prototype.generateSeqNo=function(e){var t=2*this.seqNo;return e||(t++,this.seqNo++),t},p.prototype.wrapMtpCall=function(e,n,a){var r=new TLSerialization({mtproto:!0});r.storeMethod(e,n);var i=t.generateID(),s=this.generateSeqNo(),o={msg_id:i,seq_no:s,body:r.getBytes()};return Config.Modes.debug&&console.log(dT(),"MT call",e,n,i,s),this.pushMessage(o,a)},p.prototype.wrapMtpMessage=function(e,n){n=n||{};var a=new TLSerialization({mtproto:!0});a.storeObject(e,"Object");var r=t.generateID(),i=this.generateSeqNo(n.notContentRelated),s={msg_id:r,seq_no:i,body:a.getBytes()};return Config.Modes.debug&&console.log(dT(),"MT message",e,r,i),this.pushMessage(s,n)},p.prototype.wrapApiCall=function(e,n,a){var r=new TLSerialization(a);this.connectionInited||(r.storeInt(3667594509,"invokeWithLayer"),r.storeInt(Config.Schema.API.layer,"layer"),r.storeInt(1769565673,"initConnection"),r.storeInt(Config.App.id,"api_id"),r.storeString(navigator.userAgent||"Unknown UserAgent","device_model"),r.storeString(navigator.platform||"Unknown Platform","system_version"),r.storeString(Config.App.version,"app_version"),r.storeString(navigator.language||"en","lang_code")),a.afterMessageID&&(r.storeInt(3416209197,"invokeAfterMsg"),r.storeLong(a.afterMessageID,"msg_id")),a.resultType=r.storeMethod(e,n);var i=t.generateID(),s=this.generateSeqNo(),o={msg_id:i,seq_no:s,body:r.getBytes(!0),isAPI:!0};return Config.Modes.debug?console.log(dT(),"Api call",e,n,i,s,a):console.log(dT(),"Api call",e),this.pushMessage(o,a)},p.prototype.checkLongPoll=function(e){var t=this.cleanupSent();if(this.longPollPending&&tsNow()<this.longPollPending||this.offline||_)return!1;var n=this;a.get("dc").then(function(e){t&&(e!=n.dcID||n.upload||n.sleepAfter&&tsNow()>n.sleepAfter)||n.sendLongPoll()})},p.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")})},p.prototype.pushMessage=function(e,t){var n=o.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},p.prototype.pushResend=function(e,t){var n=t?tsNow()+t:0,a=this.sentMessages[e];if(a.container)for(var r=0;r<a.inner.length;r++)this.pendingMessages[a.inner[r]]=n;else this.pendingMessages[e]=n;this.sheduleRequest(t)},p.prototype.getMsgKeyIv=function(e,t){var n=this.authKeyUint8,a=t?0:8,i=new Uint8Array(48),s=new Uint8Array(48),l=new Uint8Array(48),c=new Uint8Array(48),d={};return i.set(e,0),i.set(n.subarray(a,a+32),16),d.sha1a=r.sha1Hash(i),s.set(n.subarray(a+32,a+48),0),s.set(e,16),s.set(n.subarray(a+48,a+64),32),d.sha1b=r.sha1Hash(s),l.set(n.subarray(a+64,a+96),0),l.set(e,32),d.sha1c=r.sha1Hash(l),c.set(e,0),c.set(n.subarray(a+96,a+128),16),d.sha1d=r.sha1Hash(c),o.all(d).then(function(e){var t=new Uint8Array(32),n=new Uint8Array(32);return sha1a=new Uint8Array(e.sha1a),sha1b=new Uint8Array(e.sha1b),sha1c=new Uint8Array(e.sha1c),sha1d=new Uint8Array(e.sha1d),t.set(sha1a.subarray(0,8)),t.set(sha1b.subarray(8,20),8),t.set(sha1c.subarray(4,16),20),n.set(sha1a.subarray(8,20)),n.set(sha1b.subarray(0,8),12),n.set(sha1c.subarray(16,20),20),n.set(sha1d.subarray(0,8),24),[t,n]})},p.prototype.checkConnection=function(e){d.offlineConnecting=!0,console.log(dT(),"Check connection",e),l.cancel(this.checkConnectionPromise);var n=new TLSerialization({mtproto:!0}),a=[nextRandomInt(4294967295),nextRandomInt(4294967295)];n.storeMethod("ping",{ping_id:a});var r={msg_id:t.generateID(),seq_no:this.generateSeqNo(!0),body:n.getBytes()},i=this;this.sendEncryptedRequest(r,{timeout:15e3}).then(function(e){delete d.offlineConnecting,i.toggleOffline(!1)},function(){console.log(dT(),"Delay ",1e3*i.checkConnectionPeriod),i.checkConnectionPromise=l(i.checkConnection.bind(i),parseInt(1e3*i.checkConnectionPeriod)),i.checkConnectionPeriod=Math.min(60,1.5*i.checkConnectionPeriod),l(function(){delete d.offlineConnecting},1e3)})},p.prototype.toggleOffline=function(e){return(void 0===this.offline||this.offline!=e)&&(this.offline=e,d.offline=e,d.offlineConnecting=!1,void(this.offline?(l.cancel(this.nextReqPromise),delete this.nextReq,this.checkConnectionPeriod<1.5&&(this.checkConnectionPeriod=0),this.checkConnectionPromise=l(this.checkConnection.bind(this),parseInt(1e3*this.checkConnectionPeriod)),this.checkConnectionPeriod=Math.min(30,1.5*(1+this.checkConnectionPeriod)),this.onOnlineCb=this.checkConnection.bind(this),$(document.body).on("online focus",this.onOnlineCb)):(delete this.longPollPending,this.checkLongPoll(),this.sheduleRequest(),this.onOnlineCb&&$(document.body).off("online focus",this.onOnlineCb),l.cancel(this.checkConnectionPromise))))},p.prototype.performSheduledRequest=function(){if(this.offline||_)return console.log(dT(),"Cancel sheduled"),!1;if(delete this.nextReq,this.pendingAcks.length){for(var e=[],n=0;n<this.pendingAcks.length;n++)e.push(this.pendingAcks[n]);this.wrapMtpMessage({_:"msgs_ack",msg_ids:e},{notContentRelated:!0,noShedule:!0})}if(this.pendingResends.length){for(var a=[],r={noShedule:!0,notContentRelated:!0},n=0;n<this.pendingResends.length;n++)a.push(this.pendingResends[n]);this.wrapMtpMessage({_:"msg_resend_req",msg_ids:a},r),this.lastResendReq={req_msg_id:r.messageID,resend_msg_ids:a}}var i,s=[],o=0,l=tsNow(),c=!1,d=!1,p=!1,u=0,m=this;if(angular.forEach(this.pendingMessages,function(e,t){if(!e||e>=l){if(i=m.sentMessages[t]){var n=(i.body.byteLength||i.body.length)+32;if(!i.notContentRelated&&p)return;if(!i.notContentRelated&&o&&o+n>655360)return void(p=!0);if(i.singleInRequest&&(u++,u>1))return;s.push(i),o+=n,i.isAPI?c=!0:i.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:o+64});f.storeInt(1945237724,"CONTAINER[id]"),f.storeInt(s.length,"CONTAINER[count]");for(var y=[],n=0;n<s.length;n++)f.storeLong(s[n].msg_id,"CONTAINER["+n+"][msg_id]"),y.push(s[n].msg_id),f.storeInt(s[n].seq_no,"CONTAINER["+n+"][seq_no]"),f.storeInt(s[n].body.length,"CONTAINER["+n+"][bytes]"),f.storeRawBytes(s[n].body,"CONTAINER["+n+"][body]"),s[n].noResponse&&h.push(s[n].msg_id);var v={msg_id:t.generateID(),seq_no:this.generateSeqNo(!0),container:!0,inner:y};i=angular.extend({body:f.getBytes(!0)},v),this.sentMessages[i.msg_id]=v,Config.Modes.debug&&console.log(dT(),"Container",y,i.msg_id,i.seq_no)}else i.noResponse&&h.push(i.msg_id),this.sentMessages[i.msg_id]=i;this.pendingAcks=[];var m=this;this.sendEncryptedRequest(i).then(function(e){m.toggleOffline(!1),m.parseResponse(e.data).then(function(e){Config.Modes.debug&&console.log(dT(),"Server response",m.dcID,e),m.processMessage(e.response,e.messageID,e.sessionID),angular.forEach(h,function(e){if(m.sentMessages[e]){var t=m.sentMessages[e].deferred;delete m.sentMessages[e],t.resolve()}}),m.checkLongPoll(),this.checkConnectionPeriod=Math.max(1.1,Math.sqrt(this.checkConnectionPeriod))})},function(e){console.log("Encrypted request failed",e),i.container?(angular.forEach(i.inner,function(e){m.pendingMessages[e]=0}),delete m.sentMessages[i.msg_id]):m.pendingMessages[i.msg_id]=0,angular.forEach(h,function(e){if(m.sentMessages[e]){var t=m.sentMessages[e].deferred;delete m.sentMessages[e],delete m.pendingMessages[e],t.reject()}}),m.toggleOffline(!0)}),(p||u>1)&&this.sheduleRequest()}},p.prototype.getEncryptedMessage=function(e){var t=this;return r.sha1Hash(e).then(function(n){var a=new Uint8Array(n).subarray(4,20);return t.getMsgKeyIv(a,!0).then(function(t){return r.aesEncrypt(e,t[0],t[1]).then(function(e){return{bytes:e,msgKey:a}})})})},p.prototype.getDecryptedMessage=function(e,t){return this.getMsgKeyIv(e,!1).then(function(e){return r.aesDecrypt(t,e[0],e[1])})},p.prototype.sendEncryptedRequest=function(t,n){var a=this;n=n||{};var r=new TLSerialization({startMaxLength:t.body.length+64});return r.storeIntBytes(this.serverSalt,64,"salt"),r.storeIntBytes(this.sessionID,64,"session_id"),r.storeLong(t.msg_id,"message_id"),r.storeInt(t.seq_no,"seq_no"),r.storeInt(t.body.length,"message_data_length"),r.storeRawBytes(t.body,"message_data"),this.getEncryptedMessage(r.getBuffer()).then(function(t){var r=new TLSerialization({startMaxLength:t.bytes.byteLength+256});r.storeIntBytes(a.authKeyID,64,"auth_key_id"),r.storeIntBytes(t.msgKey,128,"msg_key"),r.storeRawBytes(t.bytes,"encrypted_data");var i,l=b?r.getBuffer():r.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}),i=s.post(c,l,n)}catch(p){i=o.reject(p)}return i.then(function(e){return e.data&&e.data.byteLength?e:o.reject(d)},function(e){return e.message||e.type||(e=angular.extend(d,{type:"NETWORK_BAD_REQUEST",originalError:e})),o.reject(e)})})},p.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 i=n.fetchIntBytes(128,!0,"msg_key"),s=n.fetchRawBytes(e.byteLength-n.getOffset(),!0,"encrypted_data");return this.getDecryptedMessage(i,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 o=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 p=n.fetchRawBytes(d,!0,"message_data"),l=n.getOffset(),u=c-l;if(u<0||u>15)throw new Error("[MT] Invalid padding length: "+u);var m=convertToUint8Array(e).subarray(0,l);return r.sha1Hash(m).then(function(e){if(!bytesCmp(i,bytesFromArrayBuffer(e).slice(-16)))throw console.warn(i,bytesFromArrayBuffer(e)),new Error("[MT] server msgKey mismatch");var n=bytesToArrayBuffer(p),r={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],r=a&&a.resultType||"Object";e.req_msg_id&&!a||(e.result=this.fetchObject(r,n+"[result]"))}}},l=new TLDeserialization(n,r),c=l.fetchObject("","INPUT");return{response:c,messageID:s,sessionID:a,seqNo:o}})})},p.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},p.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))},p.prototype.ackMessage=function(e){this.pendingAcks.push(e),this.sheduleRequest(3e4)},p.prototype.reqResendMessage=function(e){console.log(dT(),"Req resend",e),this.pendingResends.push(e),this.sheduleRequest(100)},p.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 r=0;r<n.inner.length;r++)if(void 0!==e.sentMessages[n.inner[r]])return void(t=!0);delete e.sentMessages[a]}else t=!0}),!t},p.prototype.processMessageAck=function(e){var t=this.sentMessages[e];return!(!t||t.acked)&&(delete t.body,t.acked=!0,!0)},p.prototype.processError=function(e){var t=(e.error_message||"").match(/^([A-Z_0-9]+\b)(: (.+))?/)||[];return e.error_code=uintToInt(e.error_code),{code:!e.error_code||e.error_code<=0?500:e.error_code,type:t[1]||"UNKNOWN",description:t[3]||"CODE#"+e.error_code+" "+e.error_message,originalError:e}},p.prototype.processMessage=function(e,n,r){var i=parseInt(n.toString(10).substr(0,-10),10);if(i%2)return void console.warn("[MT] Server even message id: ",n,e);switch(e._){case"msg_container":for(var s=e.messages.length,o=0;o<s;o++)this.processMessage(e.messages[o],e.messages[o].msg_id,r);break;case"bad_server_salt":console.log(dT(),"Bad server salt",e);var l=this.sentMessages[e.bad_msg_id];if(!l||l.seq_no!=e.bad_msg_seqno)throw console.log(e.bad_msg_id,e.bad_msg_seqno),new Error("[MT] Bad server salt for invalid message");this.applyServerSalt(e.new_server_salt),this.pushResend(e.bad_msg_id),this.ackMessage(n);break;case"bad_msg_notification":console.log(dT(),"Bad msg notification",e);var l=this.sentMessages[e.bad_msg_id];if(!l||l.seq_no!=e.bad_msg_seqno)throw console.log(e.bad_msg_id,e.bad_msg_seqno),new Error("[MT] Bad msg notification for invalid message");if(16==e.error_code||17==e.error_code){t.applyServerTime(bigStringInt(n).shiftRight(32).toString(10))&&(console.log(dT(),"Update session"),this.updateSession());var c=this.updateSentMessage(e.bad_msg_id);this.pushResend(c.msg_id),this.ackMessage(n)}break;case"message":if(this.lastServerMessages.indexOf(n)!=-1)return void this.ackMessage(n);this.lastServerMessages.push(n),this.lastServerMessages.length>100&&this.lastServerMessages.shift(),this.processMessage(e.body,e.msg_id,r);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 o=0;o<e.msg_ids.length;o++)this.processMessageAck(e.msg_ids[o]);break;case"msg_detailed_info":if(!this.sentMessages[e.msg_id]){this.ackMessage(e.answer_msg_id);break}case"msg_new_detailed_info":this.reqResendMessage(e.answer_msg_id);break;case"msgs_state_info":if(this.ackMessage(e.answer_msg_id),this.lastResendReq&&this.lastResendReq.req_msg_id==e.req_msg_id&&this.pendingResends.length){var o,p,u;for(o=0;o<this.lastResendReq.resend_msg_ids.length;o++)p=this.lastResendReq.resend_msg_ids[o],u=this.pendingResends.indexOf(p),u!=-1&&this.pendingResends.splice(u,1)}break;case"rpc_result":this.ackMessage(n);var m=e.req_msg_id,l=this.sentMessages[m];if(this.processMessageAck(m),l){var h=l.deferred;if("rpc_error"==e.result._){var f=this.processError(e.result);console.log(dT(),"Rpc error",f),h&&h.reject(f)}else{if(h){if(Config.Modes.debug)console.log(dT(),"Rpc response",e.result);else{var _=e.result._;_||(_=e.result.length>5?"[.."+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 p(e,t,n,a)},setUpdatesProcessor:function(e){g=e},stopAll:m,startAll:u}}]),angular.module("izhukov.mtproto.wrapper",["izhukov.utils","izhukov.mtproto"]).factory("MtpApiManager",["Storage","MtpAuthorizer","MtpNetworkerFactory","MtpSingleInstanceService","AppRuntimeManager","ErrorService","qSync","$rootScope","$q","WebPushApiManager","TelegramMeWebService",function(e,t,n,a,r,i,s,o,l,c,d){function p(e){v!==e&&(v=e,d.setAuthorized(v))}function u(t,n){var a=angular.extend({dcID:t},n);e.set({dc:t,user_auth:a}),p(!0),o.$broadcast("user_auth",a),$=t}function m(){for(var t=[],n=1;n<=5;n++)t.push("dc"+n+"_auth_key");return c.forceUnsubscribe(),e.get(t).then(function(n){for(var a=[],r=0;r<n.length;r++)n[r]&&a.push(f("auth.logOut",{},{dcID:r+1,ignoreErrors:!0}));return l.all(a).then(function(){return e.remove("dc","user_auth"),$=!1,p(!1),g()},function(n){return t.push("dc","user_auth"),e.remove(t),$=!1,n.handled=!0,p(!1),g()})})}function g(){for(var t=["user_auth","t_user_auth","dc","t_dc"],n=1;n<=5;n++)t.push("dc"+n+"_auth_key"),t.push("t_dc"+n+"_auth_key");e.noPrefix(),e.get(t).then(function(n){e.clear().then(function(){var a={};return angular.forEach(t,function(e,t){var r=n[t];r!==!1&&void 0!==r&&(a[e]=r)}),e.noPrefix(),e.set(a)})})}function h(a,r){r=r||{};var i=r.fileUpload||r.fileDownload?w:b;if(!a)throw new Exception("get Networker without dcID");if(void 0!==i[a])return s.when(i[a]);var o="dc"+a+"_auth_key",c="dc"+a+"_server_salt";return e.get(o,c).then(function(s){if(void 0!==i[a])return i[a];var d=s[0],p=s[1];if(d&&512==d.length){p&&16==p.length||(p="AAAAAAAAAAAAAAAA");var u=bytesFromHex(d),m=bytesFromHex(p);return i[a]=n.getNetworker(a,u,m,r)}return r.createNetworker?t.auth(a).then(function(t){var s={};return s[o]=bytesToHex(t.authKey),s[c]=bytesToHex(t.serverSalt),e.set(s),i[a]=n.getNetworker(a,t.authKey,t.serverSalt,r)},function(e){return console.log("Get networker error",e,e.stack),l.reject(e)}):l.reject({type:"AUTH_KEY_EMPTY",code:401})})}function f(t,n,a){a=a||{};var s,o,c=l.defer(),d=function(e){e?angular.isObject(e)||(e={message:e}):e={type:"ERROR_EMPTY"},c.reject(e),a.ignoreErrors||(406==e.code&&(e.handled=!0),a.noErrorBox||(e.input=t,e.stack=u||e.originalError&&e.originalError.stack||e.stack||(new Error).stack,setTimeout(function(){e.handled||(401==e.code?m()["finally"](function(){"http:"!=location.protocol||Config.Modes.http||Config.App.domains.indexOf(location.hostname)==-1?(location.hash="/login",r.reload()):location.href=location.href.replace(/^http:/,"https:")}):i.show({error:e}),e.handled=!0)},100)))},u=(new Error).stack||"empty stack",g=function(r){
return(o=r).wrapApiCall(t,n,a).then(function(e){c.resolve(e)},function(i){if(console.error(dT(),"Error",i.code,i.type,$,s),401==i.code&&$==s)e.remove("dc","user_auth"),p(!1),d(i);else if(401==i.code&&$&&s!=$){if(void 0===k[s]){var u=l.defer();f("auth.exportAuthorization",{dc_id:s},{noErrorBox:!0}).then(function(e){f("auth.importAuthorization",{id:e.id,bytes:e.bytes},{dcID:s,noErrorBox:!0}).then(function(){u.resolve()},function(e){u.reject(e)})},function(e){u.reject(e)}),k[s]=u.promise}k[s].then(function(){(o=r).wrapApiCall(t,n,a).then(function(e){c.resolve(e)},d)},d)}else if(303==i.code){var m=i.type.match(/^(PHONE_MIGRATE_|NETWORK_MIGRATE_|USER_MIGRATE_)(\d+)/)[2];m!=s&&(a.dcID?a.dcID=m:e.set({dc:$=m}),h(m,a).then(function(e){e.wrapApiCall(t,n,a).then(function(e){c.resolve(e)},d)},d))}else if(a.rawError||420!=i.code)if(a.rawError||500!=i.code&&"MSG_WAIT_FAILED"!=i.type)d(i);else{var _=tsNow();if(a.stopTime){if(_>=a.stopTime)return d(i)}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(){g(o)},1e3*a.waitTime)}else{var y=i.type.match(/^FLOOD_WAIT_(\d+)/)[1]||10;if(y>(a.timeout||60))return d(i);setTimeout(function(){g(o)},1e3*y)}})};return(s=a.dcID||$)?h(s,a).then(g,d):e.get("dc").then(function(e){h(s=e||2,a).then(g,d)}),c.promise}function _(){return e.get("user_auth").then(function(e){return p(e&&e.id>0||!1),e.id||0})}function y(){return $||!1}var v,b={},w={},k={},$=!1;return a.start(),e.get("dc").then(function(e){e&&($=e)}),{getBaseDcID:y,getUserID:_,invokeApi:f,getNetworker:h,setUserAuth:u,logOut:m}}]).factory("MtpApiFileManager",["MtpApiManager","$q","qSync","FileManager","IdbFileStorage","TmpfsFileStorage","MemoryFileStorage","WebpManager",function(e,t,n,a,r,i,s,o){function l(e,n,a){void 0===w[e]&&(w[e]=[],k[e]=0);var r=w[e],i=t.defer();return r.push({cb:n,deferred:i,activeDelta:a}),setZeroTimeout(function(){c(e)}),i.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(),r=a.activeDelta||1;k[e]+=r;$++;a.cb().then(function(t){k[e]-=r,c(e),a.deferred.resolve(t)},function(t){k[e]-=r,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&&!o.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=o.isWebpSupported()?"webp":"png"),e.volume_id+"_"+e.local_id+"_"+e.secret+"."+n}}function p(e){if(!e)return!1;var t=d(e);return b[t]||!1}function u(){if(!Config.Modes.memory_only){if(i.isAvailable())return i;if(r.isAvailable())return r}return s}function m(e,t){var n=d(e);return y[n]||(y[n]=u().saveFile(n,t).then(function(e){return b[n]=e},function(e){delete y[n]})),y[n]}function g(r){if(!a.isAvailable())return t.reject({type:"BROWSER_BLOB_NOT_SUPPORTED"});var i=d(r),s=r.sticker?"image/webp":"image/jpeg",c=y[i]||v[i];if(c)return c;var p=u();return v[i]=p.getFile(i).then(function(e){return b[i]=e},function(){var t=l(r.dc_id,function(){var t=r;return t._&&"fileLocation"!=t._||(t=angular.extend({},r,{_:"inputFileLocation"})),e.invokeApi("upload.getFile",{location:t,offset:0,limit:1048576},{dcID:r.dc_id,fileDownload:!0,createNetworker:!0,noErrorBox:!0})}),c=function(e){return!r.sticker||o.isWebpSupported()?n.when(e):o.getPngBlobFromWebp(e)};return p.getFileWriter(i,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[i]=e.finalize()})})})})})}function h(e,t){var n=u(),a=d(e);return n.getFile(a,t)}function f(r,i,s,c){if(!a.isAvailable())return t.reject({type:"BROWSER_BLOB_NOT_SUPPORTED"});c=c||{};var p=!1;i.sticker&&!o.isWebpSupported()&&(c.toFileEntry||s>524288?delete i.sticker:(p=!0,c.mime="image/png"));var m=d(i),g=c.toFileEntry||null,h=y[m]||v[m],f=u();if(h)return g?h.then(function(e){return a.copy(e,g)}):h;var _,w=t.defer(),k=!1,$=!1,C=c.mime||"image/jpeg",S=function(e){w.reject(e),S=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()},S):w.resolve(b[m]=e)},function(){var c=g?a.getFileWriter(g):f.getFileWriter(m,C),d=function(e){return p?o.getPngBlobFromWebp(e):n.when(e)};c.then(function(n){_=n;var o,c,p=524288,u=0,h=t.when();if(n.length){if(u=n.length,u>=s)return void(g?w.resolve():w.resolve(b[m]=n.finalize()));n.seek(u),w.notify({done:u,total:s})}for(o=u;o<s;o+=p)c=t.defer(),function(o,c,u,h){return l(r,function(){return k?t.when():e.invokeApi("upload.getFile",{location:i,offset:c,limit:p},{dcID:r,fileDownload:!0,singleInRequest:void 0!==window.safari,createNetworker:!0})},2).then(function(e){h.then(function(){return k?t.when():d(e.bytes).then(function(e){return a.write(n,e).then(function(){u.resolve()},S).then(function(){o?($=!0,g?w.resolve():w.resolve(b[m]=n.finalize())):w.notify({done:c+p,total:s})})})})})}(o+p>=s,o,c,h),h=c.promise})}),w.promise.cancel=function(){k||$||(k=!0,delete v[m],S({type:"DOWNLOAD_CANCELED"}))},g||(v[m]=w.promise),w.promise}function _(n){var a=n.size,r=a>=10485760,i=!1,s=!1,o=0,c=262144,d=2;a>67108864?(c=524288,d=4):a<102400&&(c=32768,d=1);var p=Math.ceil(a/c);if(p>3e3)return t.reject({type:"FILE_TOO_BIG"});var u,m=[nextRandomInt(4294967295),nextRandomInt(4294967295)],g=t.defer(),h=function(e){g.reject(e),i=!0,h=angular.noop},f=0,_={_:r?"inputFileBig":"inputFile",id:m,parts:p,name:n.name,md5_checksum:""};for(u=0;u<a;u+=c)!function(u,f){l("upload",function(){var l=t.defer(),d=new FileReader,y=n.slice(u,u+c);return d.onloadend=function(t){return i?void l.reject():void(t.target.readyState==FileReader.DONE&&e.invokeApi(r?"upload.saveBigFilePart":"upload.saveFilePart",{file_id:m,file_part:f,file_total_parts:p,bytes:t.target.result},{startMaxLength:c+256,fileUpload:!0,singleInRequest:!0}).then(function(e){o++,l.resolve(),o>=p?(g.resolve(_),s=!0):(console.log(dT(),"Progress",o*c/a),g.notify({done:o*c,total:a}))},h))},d.readAsArrayBuffer(y),l.promise},d)}(u,f++);return g.promise.cancel=function(){console.log("cancel upload",i,s),i||s||(i=!0,h({type:"UPLOAD_CANCELED"}))},g.promise}var y={},v={},b={},w={},k={},$=0;return{getCachedFile:p,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,r,i,s,o,l,c,d){function p(){if(!f&&!Config.Navigator.mobile&&!Config.Modes.packed){f=!0,l.start(),t.$watch("idle.isIDLE",g),r(g,5e3),g();try{$($window).on("beforeunload",u)}catch(e){}}}function u(){_&&!v&&(console.warn("clear master instance"),s.remove("xt_instance"))}function m(){if(_||v)return!1;console.log(dT(),"deactivate"),y=!1,v=!0,u(),i.dismissAll(),document.title=e("inactive_tab_title_raw");var a=n("<ng-include src=\"'partials/desktop/inactive.html'\"></ng-include>"),r=t.$new(!0);r.close=function(){o.close()},r.reload=function(){o.reload()},a(r,function(e){$(".page_wrap").hide(),$(e).appendTo($("body"))}),t.idle.deactivated=!0}function g(){if(v)return!1;var e=tsNow(),n=t.idle&&t.idle.isIDLE,r={id:h,idle:n,time:e};s.get("xt_instance").then(function(t){!n||!t||t.id==h||t.time<e-2e4?(s.set({xt_instance:r}),_||(d.startAll(),b?console.warn(dT(),"now master instance",r):b=!0,_=!0),y&&(a.cancel(y),y=!1)):_&&(d.stopAll(),console.warn(dT(),"now idle instance",r),y||(y=a(m,3e4)),_=!1)})}var h=nextRandomInt(4294967295),f=!1,_=!1,y=!1,v=!1,b=!1;return{start:p}}]);var extraModules=[];Config.Modes.animations&&extraModules.push("ngAnimate"),angular.module("myApp",["ngRoute","ngSanitize","ngTouch","ui.bootstrap","mediaPlayer","toaster","izhukov.utils","izhukov.mtproto","izhukov.mtproto.wrapper","myApp.filters","myApp.services","myApp.templates","myApp.directives","myApp.controllers"].concat(extraModules)).config(["$locationProvider","$routeProvider","$compileProvider","StorageProvider",function(e,t,n,a){n.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|file|blob|filesystem|chrome-extension|app):|data:image\//),n.aHrefSanitizationWhitelist(/^\s*(https?|ftp|file|tg|mailto|blob|filesystem|chrome-extension|app):|data:/),n.debugInfoEnabled(!1),Config.Modes.test&&a.setPrefix("t_"),t.when("/",{template:"",controller:"AppWelcomeController"}),t.when("/login",{templateUrl:templateUrl("login"),controller:"AppLoginController"}),t.when("/im",{templateUrl:templateUrl("im"),controller:"AppIMController",reloadOnSearch:!1}),t.otherwise({redirectTo:"/"})}]),angular.module("myApp.services",["myApp.i18n","izhukov.utils"]).service("AppUsersManager",["$rootScope","$modal","$modalStack","$filter","$q","qSync","MtpApiManager","RichTextProcessor","ServerTimeManager","Storage","_",function(e,t,n,a,r,i,s,o,l,c,d){function p(){return F?F:F=s.invokeApi("contacts.getContacts",{hash:""}).then(function(e){var t,n;U=[],h(e.users);for(var n=0;n<e.contacts.length;n++)t=e.contacts[n].user_id,U.push(t),SearchIndexManager.indexObject(t,u(t),q);return U})}function u(e){var t=B[e];return!!t&&(t.first_name||"")+" "+(t.last_name||"")+" "+(t.phone||"")+" "+(t.username||"")}function m(e){return p().then(function(t){if(angular.isString(e)&&e.length){for(var n=SearchIndexManager.search(e,q),a=[],r=0;r<t.length;r++)n[t[r]]&&a.push(t[r]);t=a}return t})}function g(e){return L[e]||0}function h(e){angular.forEach(e,f)}function f(t,n){if(angular.isObject(t)&&!(n&&angular.isObject(B[t.id])&&B[t.id].first_name)){var r=t.id,i=B[r];if(void 0===t.pFlags&&(t.pFlags={}),!t.pFlags.min||void 0===i){if(t.phone&&(t.rPhone=a("phoneNumber")(t.phone)),t.num=Math.abs(r)%8+1,t.first_name?(t.rFirstName=o.wrapRichText(t.first_name,{noLinks:!0,noLinebreaks:!0}),t.rFullName=t.last_name?o.wrapRichText(t.first_name+" "+(t.last_name||""),{noLinks:!0,noLinebreaks:!0}):t.rFirstName):(t.rFirstName=o.wrapRichText(t.last_name,{noLinks:!0,noLinebreaks:!0})||t.rPhone||d("user_first_name_deleted"),t.rFullName=o.wrapRichText(t.last_name,{noLinks:!0,noLinebreaks:!0})||t.rPhone||d("user_name_deleted")),t.username){var s=SearchIndexManager.cleanUsername(t.username);L[s]=r}t.sortName=t.pFlags.deleted?"":SearchIndexManager.cleanSearchText(t.first_name+" "+(t.last_name||""));var c=t.sortName.split(" "),p=c.shift(),u=c.pop();t.initials=p.charAt(0)+(u?u.charAt(0):p.charAt(1)),t.status&&(t.status.expires&&(t.status.expires-=l.serverTimeOffset),t.status.was_online&&(t.status.was_online-=l.serverTimeOffset)),t.pFlags.bot?t.sortStatus=-1:t.sortStatus=y(t.status);var i=B[r];void 0===i?i=B[r]=t:safeReplaceObject(i,t),e.$broadcast("user_update",r),void 0!==H[r]&&safeReplaceObject(H[r],t&&t.photo&&t.photo.photo_small||{empty:!0})}}}function _(e,t){j[e]=t}function y(e){if(e){var t=e.expires||e.was_online;if(t)return t;var n=tsNow(!0);switch(e._){case"userStatusRecently":return n-259200;case"userStatusLastWeek":return n-604800;case"userStatusLastMonth":return n-2592e3}}return 0}function v(e){return angular.isObject(e)?e:B[e]||{id:e,deleted:!0,num:1,access_hash:j[e]}}function b(){return v(O)}function w(e){return B[e]&&B[e].pFlags.bot}function k(e,t){var n=B[e];return angular.isObject(n)&&(t||!n.pFlags.min)}function $(e){var t=v(e);return 333e3==e?{placeholder:"img/placeholders/DialogListAvatarSystem@2x.png"}:(void 0===H[e]&&(H[e]=t&&t.photo&&t.photo.photo_small||{empty:!0}),{num:t.num,placeholder:"img/placeholders/UserAvatar"+t.num+"@2x.png",location:H[e]})}function C(e){var t=v(e);return"u"+e+(t.access_hash?"_"+t.access_hash:"")}function S(e){var t=v(e);return t.pFlags.self?{_:"inputUserSelf"}:{_:"inputUser",user_id:e,access_hash:t.access_hash||0}}function M(){var t=tsNow(!0);angular.forEach(B,function(n){n.status&&"userStatusOnline"==n.status._&&n.status.expires<t&&(n.status=n.status.wasStatus||{_:"userStatusOffline",was_online:n.status.expires},delete n.status.wasStatus,e.$broadcast("user_update",n.id))})}function x(t){if(!w(t)){var n=v(t);if(n&&n.status&&"userStatusOnline"!=n.status._&&"userStatusEmpty"!=n.status._){var a;"userStatusOffline"!=n.status._&&(delete n.status.wasStatus,a=angular.copy(n.status)),n.status={_:"userStatusOnline",expires:tsNow(!0)+60,wasStatus:a},n.sortStatus=y(n.status),e.$broadcast("user_update",t)}}}function I(e){var t=v(e);return t}function A(n,a){var r=e.$new();r.userID=n,r.override=a||{};t.open({templateUrl:templateUrl("user_modal"),controller:"UserModalController",scope:r,windowClass:"user_modal_window mobile_modal",backdrop:"single"})}function E(e,t,n){return s.invokeApi("contacts.importContacts",{contacts:[{_:"inputPhoneContact",client_id:"1",phone:e,first_name:t,last_name:n}],replace:!1}).then(function(e){h(e.users);var t=!1;return angular.forEach(e.imported,function(e){P(t=e.user_id,!0)}),t||!1})}function T(e){var t,n,a=[];for(t=0;t<e.length;t++)for(n=0;n<e[t].phones.length;n++)a.push({_:"inputPhoneContact",client_id:(t<<16|n).toString(10),phone:e[t].phones[n],first_name:e[t].first_name,last_name:e[t].last_name});return s.invokeApi("contacts.importContacts",{contacts:a,replace:!1}).then(function(e){h(e.users);var t=[];return angular.forEach(e.imported,function(e){P(e.user_id,!0),t.push(e.user_id)}),t})}function D(e){var t=[];return angular.forEach(e,function(e){t.push(S(e))}),s.invokeApi("contacts.deleteContacts",{id:t}).then(function(){angular.forEach(e,function(e){P(e,!1)})})}function P(t,n){if(t=parseInt(t),angular.isArray(U)){var a=r=U.indexOf(t),r=a!=-1;n!=r&&(n?(U.push(t),SearchIndexManager.indexObject(t,u(t),q)):U.splice(a,1),e.$broadcast("contacts_update",t))}}function R(){return t.open({templateUrl:templateUrl("import_contact_modal"),controller:"ImportContactModalController",windowClass:"md_simple_modal_window mobile_modal"}).result.then(function(e){return e?e:r.reject()})}function N(t,n){if(!w(t)){var a=B[t];if(a){var r=n?{_:"userStatusOffline",was_online:tsNow(!0)}:{_:"userStatusOnline",expires:tsNow(!0)+500};a.status=r,a.sortStatus=y(a.status),e.$broadcast("user_update",t)}}}var F,U,O,B={},L={},j={},H={},q=SearchIndexManager.createIndex();return s.getUserID().then(function(e){O=e}),e.$on("apiUpdate",function(t,n){switch(n._){case"updateUserStatus":var a=n.user_id,r=B[a];r&&(r.status=n.status,r.status&&(r.status.expires&&(r.status.expires-=l.serverTimeOffset),r.status.was_online&&(r.status.was_online-=l.serverTimeOffset)),r.sortStatus=y(r.status),e.$broadcast("user_update",a));break;case"updateUserPhoto":var a=n.user_id,r=B[a];r&&(x(a),r.photo?safeReplaceObject(r.photo,n.photo):r.photo=n.photo,void 0!==H[a]&&safeReplaceObject(H[a],n.photo&&n.photo.photo_small||{empty:!0}),e.$broadcast("user_update",a));break;case"updateContactLink":P(n.user_id,"contactLinkContact"==n.my_link._)}}),e.$on("user_auth",function(e,t){O=t&&t.id||0}),setInterval(M,6e4),e.$on("stateSynchronized",M),{getContacts:m,saveApiUsers:h,saveApiUser:f,saveUserAccess:_,getUser:v,getSelf:b,getUserInput:S,setUserStatus:N,forceUserOnline:x,getUserPhoto:$,getUserString:C,getUserSearchText:u,hasUser:k,isBot:w,importContact:E,importContacts:T,deleteContacts:D,wrapForFull:I,openUser:A,resolveUsername:g,openImportContact:R}}]).service("PhonebookContactsService",["$q","$modal","$sce","FileManager",function(e,t,n,a){function r(){if(Config.Mobile&&Config.Navigator.ffos&&Config.Modes.packed)try{return navigator.mozContacts&&navigator.mozContacts.getAll}catch(e){return console.error(dT(),"phonebook n/a",e),!1}return!1}function i(){return t.open({templateUrl:templateUrl("phonebook_modal"),controller:"PhonebookModalController",windowClass:"phonebook_modal_window mobile_modal"})}function s(){try{var t=window.navigator.mozContacts.getAll({})}catch(r){return e.reject(r)}var i=e.defer(),s=[],o=0;return t.onsuccess=function(){if(this.result){var e={id:o,first_name:(this.result.givenName||[]).join(" "),last_name:(this.result.familyName||[]).join(" "),phones:[]};if(void 0!=this.result.tel)for(var t=0;t<this.result.tel.length;t++)e.phones.push(this.result.tel[t].value);if(this.result.photo&&this.result.photo[0])try{e.photo=a.getUrl(this.result.photo[0])}catch(r){}e.photo||(e.photo="img/placeholders/UserAvatar"+(Math.abs(o)%8+1)+"@2x.png"),e.photo=n.trustAsResourceUrl(e.photo),o++,s.push(e)}return!this.result||o>=1e3?void i.resolve(s):void this["continue"]()},t.onerror=function(e){console.log("phonebook error",e,e.type,e.message),i.reject(e)},i.promise}return{isAvailable:r,openPhonebookImport:i,getPhonebookContacts:s}}]).service("AppChatsManager",["$q","$rootScope","$modal","_","MtpApiManager","AppUsersManager","AppPhotosManager","RichTextProcessor",function(e,t,n,a,r,i,s,o){function l(e){angular.forEach(e,c)}function c(e){if(angular.isObject(e)){e.rTitle=o.wrapRichText(e.title,{noLinks:!0,noLinebreaks:!0})||a("chat_title_deleted");var n=S[e.id],r=SearchIndexManager.cleanSearchText(e.title||"").split(" "),i=r.shift(),s=r.pop();if(e.initials=i.charAt(0)+(s?s.charAt(0):i.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=S[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 S[e]||{id:e,deleted:!0,access_hash:x[e]}}function p(e,t){if(void 0===S[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 u(e){return M[e]||0}function m(e,t){x[e]=t}function g(e){I[e]=!0}function h(e){var t=S[e];return!((!t||"channel"!=t._&&"channelForbidden"!=t._)&&!x[e])}function f(e){if(I[e])return!0;var t=S[e];return!(!t||"channel"!=t._||!t.pFlags.megagroup)}function _(e){return h(e)&&!f(e)}function y(e){return e||0}function v(e){return e?{_:"inputChannel",channel_id:e,access_hash:d(e).access_hash||x[e]||0}:{_:"inputChannelEmpty"}}function b(e,t){var n=S[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._&&r.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=i.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=i.getUser(e.user_id)})}return n.about&&(n.rAbout=o.wrapRichText(n.about,{noLinebreaks:!0})),n.peerString=k(e),n.chat=a,n}function C(e,a){var r=t.$new();if(r.chatID=e,h(e)){n.open({templateUrl:templateUrl("channel_modal"),controller:"ChannelModalController",scope:r,windowClass:"chat_modal_window channel_modal_window mobile_modal"})}else{n.open({templateUrl:templateUrl("chat_modal"),controller:"ChatModalController",scope:r,windowClass:"chat_modal_window mobile_modal"})}}var S={},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:p,saveChannelAccess:m,saveIsMegagroup:g,getChatInput:y,getChannelInput:v,getChatPhoto:w,getChatString:k,resolveUsername:u,hasChat:b,wrapForFull:$,openChat:C}}]).service("AppPeersManager",["$q","qSync","AppUsersManager","AppChatsManager","MtpApiManager",function(e,t,n,a,r){function i(e){var t=e.charAt(0),r=e.substr(1).split("_");return"u"==t?(n.saveUserAccess(r[0],r[1]),{_:"inputPeerUser",user_id:r[0],access_hash:r[1]}):"c"==t||"s"==t?(a.saveChannelAccess(r[0],r[1]),"s"==t&&a.saveIsMegagroup(r[0]),{_:"inputPeerChannel",channel_id:r[0],access_hash:r[1]||0}):{_:"inputPeerChat",chat_id:r[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 o(e){var t;if(e>0)t="%pu "+n.getUserSearchText(e);else if(e<0){var r=a.getChat(-e);t="%pg "+(r.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 i=SearchIndexManager.cleanUsername(e);if(i.match(/^\d+$/))return t.when(!1);var s,o,l;return(s=n.resolveUsername(i))&&(l=n.getUser(s).username,SearchIndexManager.cleanUsername(l)==i)?t.when(s):(o=a.resolveUsername(i))&&(l=a.getChat(o).username,SearchIndexManager.cleanUsername(l)==i)?t.when(-o):r.invokeApi("contacts.resolveUsername",{username:e}).then(function(e){return n.saveApiUsers(e.users),a.saveApiChats(e.chats),p(e.peer)})}function p(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 u(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 y(e){return e>0&&n.isBot(e)}return{getInputPeer:i,getInputPeerByID:s,getPeerSearchText:o,getPeerString:l,getOutputPeer:c,getPeerID:p,getPeer:u,getPeerPhoto:m,resolveUsername:d,isChannel:g,isAnyGroup:f,isMegagroup:h,isBroadcast:_,isBot:y}}]).service("AppProfileManager",["$q","$rootScope","AppUsersManager","AppChatsManager","AppPeersManager","AppPhotosManager","NotificationsManager","MtpApiManager","ApiUpdatesManager","RichTextProcessor",function(e,t,n,a,r,i,s,o,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 p(e,t){return o.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&&i.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 u(t){var a=[];return t>=0&&!n.isBot(t)||r.isChannel(t)&&!r.isMegagroup(t)?e.when(a):t>=0?p(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(r){if(a.isChannel(r))return f(r);if(void 0!==y[r]){var l=a.getChat(r);if(l.version==y[r].participants.version||l.pFlags.left)return e.when(y[r])}return void 0!==v[r]?v[r]:v[r]=o.invokeApi("messages.getFullChat",{chat_id:a.getChatInput(r)}).then(function(e){a.saveApiChats(e.chats),n.saveApiUsers(e.users);var o=e.full_chat;return o&&o.chat_photo.id&&i.savePhoto(o.chat_photo),s.savePeerSettings(-r,o.notify_settings),delete v[r],y[r]=o,t.$broadcast("chat_full_update",r),o})}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 r;return r=a.isChannel(e)?o.invokeApi("channels.exportInvite",{channel:a.getChannelInput(e)}):o.invokeApi("messages.exportChatInvite",{chat_id:a.getChatInput(e)}),r.then(function(t){return void 0!==y[e]&&(y[e].exported_invite=t),t.link})})}function h(e){return o.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 r=t.participants,i=a.getChat(e);if(!i.pFlags.kicked&&!i.pFlags.left){for(var s,o=n.getSelf().id,l=!1,c=0,d=r.length;c<d;c++)if(r[c].user_id==o){l=c;break}l!==!1?(s=r[c],r.splice(c,1)):s={_:"channelParticipantSelf",user_id:o},r.unshift(s)}return r})}function f(r,c){return void 0===y[r]||c?void 0!==v[r]?v[r]:v[r]=o.invokeApi("channels.getFullChannel",{channel:a.getChannelInput(r)}).then(function(o){a.saveApiChats(o.chats),n.saveApiUsers(o.users);var l=o.full_chat;a.getChat(r);l&&l.chat_photo.id&&i.savePhoto(l.chat_photo),s.savePeerSettings(-r,l.notify_settings);var c;return c=8&l.flags?h(r).then(function(e){delete v[r],l.participants={_:"channelParticipants",participants:e}},function(e){e.handled=!0}):e.when(),c.then(function(){return delete v[r],y[r]=l,t.$broadcast("chat_full_update",r),l})},function(t){switch(t.type){case"CHANNEL_PRIVATE":var n=a.getChat(r);n={_:"channelForbidden",access_hash:n.access_hash,title:n.title},l.processUpdateMessage({_:"updates",updates:[{_:"updateChannel",channel_id:r}],chats:[n],users:[]})}return e.reject(t)}):e.when(y[r])}var _={},y={},v={};return t.$on("apiUpdate",function(e,n){switch(n._){case"updateChatParticipants":var a=n.participants,r=y[a.id];void 0!==r&&(r.participants=n.participants,t.$broadcast("chat_full_update",chatID));break;case"updateChatParticipantAdd":var r=y[n.chat_id];if(void 0!==r){for(var a=r.participants.participants||[],i=0,s=a.length;i<s;i++)if(a[i].user_id==n.user_id)return;a.push({_:"chatParticipant",user_id:n.user_id,inviter_id:n.inviter_id,date:tsNow(!0)}),r.participants.version=n.version,t.$broadcast("chat_full_update",n.chat_id)}break;case"updateChatParticipantDelete":var r=y[n.chat_id];if(void 0!==r)for(var a=r.participants.participants||[],i=0,s=a.length;i<s;i++)if(a[i].user_id==n.user_id)return a.splice(i,1),r.participants.version=n.version,void t.$broadcast("chat_full_update",n.chat_id)}}),t.$on("chat_update",function(e,n){var r=y[n],s=a.getChat(n);if(s.photo&&r){var o="chatPhotoEmpty"==s.photo._;if(o!=("photoEmpty"==r.chat_photo._))return delete y[n],void t.$broadcast("chat_full_update",n);if(!o){var l=s.photo.photo_small,c=i.choosePhotoSize(r.chat_photo,0,0);angular.equals(l,c.location)||(delete y[n],t.$broadcast("chat_full_update",n))}}}),{getPeerBots:u,getProfile:p,getChatInviteLink:g,getChatFull:m,getChannelFull:f}}]).service("AppPhotosManager",["$modal","$window","$rootScope","MtpApiManager","MtpApiFileManager","AppUsersManager","FileManager",function(e,t,n,a,r,i,s){function o(e,t){t&&angular.extend(e,t),f[e.id]=e,angular.forEach(e.sizes,function(e){"photoCachedSize"==e._&&(r.saveSmallFile(e.location,e.bytes),e.size=e.bytes.length,delete e.bytes,e._="photoSize")})}function l(e,t,n){Config.Navigator.retina&&(t*=2,n*=2);var a={_:"photoSizeEmpty"},r=16777215;return angular.forEach(e.sizes,function(e){var i=Math.abs(e.w*e.h-t*n);i<r&&(a=e,r=i)}),a}function c(e,t,n){var r=i.getUserInput(e);return a.invokeApi("photos.getUserPhotos",{user_id:r,offset:0,limit:n||20,max_id:t||0}).then(function(t){i.saveApiUsers(t.users);for(var n=[],a={user_id:e},r=0;r<t.photos.length;r++)o(t.photos[r],a),n.push(t.photos[r].id);return{count:t.count||t.photos.length,photos:n}})}function d(e){if(f[e]){var n=f[e],a=$(window).width()-(Config.Mobile?20:32),i=$(t).height()-(Config.Mobile?150:116);a>800&&(a-=208);var s=l(n,a,i);s&&!s.preloaded&&(s.preloaded=!0,s.size?r.downloadFile(s.location.dc_id,{_:"inputFileLocation",volume_id:s.location.volume_id,local_id:s.location.local_id,secret:s.location.secret},s.size):r.downloadSmallFile(s.location))}}function p(e){return f[e]||{_:"photoEmpty"}}function u(e,t){t=t||{};var n=angular.copy(f[e])||{_:"photoEmpty"},a=t.website?64:Math.min(_-80,Config.Mobile?210:260),r=t.website?64:Math.min(y-100,Config.Mobile?210:260),i=l(n,a,r),s={placeholder:"img/placeholders/PhotoThumbConversation.gif",width:a,height:r};if(t.website&&Config.Mobile&&(a=50,r=50),i&&"photoSizeEmpty"!=i._){var o=calcImageInBox(i.w,i.h,a,r);s.width=o.w,s.height=o.h,s.location=i.location,s.size=i.size}else s.width=100,s.height=100;return n.thumb=s,n}function m(e){var n=u(e),a=$(window).width()-(Config.Mobile?0:32),r=$(t).height()-(Config.Mobile?0:116);!Config.Mobile&&a>800&&(a-=208);var i=l(n,a,r),s={placeholder:"img/placeholders/PhotoThumbModal.gif"};if(s.width=a,s.height=r,i&&"photoSizeEmpty"!=i._){var o=calcImageInBox(i.w,i.h,a,r,!0);s.width=o.w,s.height=o.h,s.modalWidth=Math.max(s.width,Math.min(400,a)),s.location=i.location,s.size=i.size}return n.full=s,n}function g(t,a){if(!t||"0"===t)return!1;var r=n.$new(!0);r.photoID=t;var i="PhotoModalController";a&&a.p>0?(i="UserpicModalController",r.userID=a.p):a&&a.p<0?(i="ChatpicModalController",r.chatID=-a.p):a&&a.m>0&&(r.messageID=a.m,a.w&&(r.webpageID=a.w));e.open({templateUrl:templateUrl("photo_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:i,scope:r,windowClass:"photo_modal_window"})}function h(e){var n=f[e],a="jpg",i="image/jpeg",o="photo"+e+"."+a,c=Math.max(screen.width||0,$(window).width()-36,800),d=Math.max(screen.height||0,$(t).height()-150,800),p=l(n,c,d),u={_:"inputFileLocation",volume_id:p.location.volume_id,local_id:p.location.local_id,secret:p.location.secret};s.chooseSave(o,a,i).then(function(e){e&&r.downloadFile(p.location.dc_id,u,p.size,{mime:i,toFileEntry:e}).then(function(){},function(e){console.log("photo download failed",e)})},function(){var e=r.getCachedFile(u);return e?s.download(e,i,o):void r.downloadFile(p.location.dc_id,u,p.size,{mime:i}).then(function(e){s.download(e,i,o)},function(e){console.log("photo download failed",e)})})}var f={},_=$(window).width(),y=$(window).height();return n.preloadPhoto=d,n.openPhoto=g,{savePhoto:o,preloadPhoto:d,getUserPhotos:c,getPhoto:p,choosePhotoSize:l,wrapForHistory:u,wrapForFull:m,openPhoto:g,downloadPhoto:h}}]).service("AppWebPagesManager",["$modal","$sce","$window","$rootScope","MtpApiManager","AppPhotosManager","AppDocsManager","RichTextProcessor",function(e,t,n,a,r,i,s,o){function l(e,t,n){e.photo&&"photo"===e.photo._?i.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 r=e.site_name,l=e.title||e.author||r||"";r&&l==r&&delete e.site_name,l.length>100&&(l=l.substr(0,80)+"..."),e.rTitle=o.wrapRichText(l,{noLinks:!0,noLinebreaks:!0});var c="";if("GitHub"==r){var d=e.url.match(/(https?:\/\/github\.com\/[^\/]+\/[^\/]+)/);d&&(c=d[0]+"/issues/{1}")}var p=e.description||"";if(p.length>180&&(p=p.substr(0,150).replace(/(\n|\s)+$/,"")+"..."),e.rDescription=o.wrapRichText(p,{contextSite:r||"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,u[e.id]=e),void 0===u[e.id]?u[e.id]=e:safeReplaceObject(u[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 r=a.$new(!0);r.webpageID=t,r.messageID=n,e.open({templateUrl:templateUrl("embed_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"EmbedModalController",scope:r,windowClass:"photo_modal_window"})}function d(e){var t=angular.copy(u[e])||{_:"webPageEmpty"};return t.photo&&t.photo.id&&(t.photo=i.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 p(e){var a=d(e);if(!a.embed_url)return a;var r=$(window).width()-(Config.Mobile?0:10),i=$(n).height()-(Config.Mobile?92:150);!Config.Mobile&&r>800&&(r-=208);var s={width:r,height:i};if(a.embed_width&&a.embed_height){var o=calcImageInBox(a.embed_width,a.embed_height,r,i);s.width=o.w,s.height=o.h}else s.height=s.width=Math.min(r,i);var l=Config.Modes.chrome_packed?"webview":"iframe",c="iframe"!=a.embed_type?a.embed_type||"text/html":"text/html",p="<"+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;"></'+l+">";return s.html=t.trustAs("html",p),a.full=s,a}var u={},m={};return a.$on("apiUpdate",function(e,t){switch(t._){case"updateWebPage":l(t.webpage)}}),{saveWebPage:l,openEmbed:c,wrapForFull:p,wrapForHistory:d}}]).service("AppGamesManager",["$modal","$sce","$window","$rootScope","MtpApiManager","AppPhotosManager","AppDocsManager","RichTextProcessor",function(e,t,n,a,r,i,s,o){function l(e,t,n){e.photo&&"photo"===e.photo._?i.savePhoto(e.photo,n):delete e.photo,e.document&&"document"===e.document._?s.saveDoc(e.document,n):delete e.document,e.rTitle=o.wrapRichText(e.title,{noLinks:!0,noLinebreaks:!0}),e.rDescription=o.wrapRichText(e.description||"",{}),void 0===u[e.id]?u[e.id]=e:safeReplaceObject(u[e.id],e)}function c(t,n,r){var i=a.$new(!0);i.gameID=t,i.messageID=n,i.embedUrl=r,e.open({templateUrl:templateUrl("game_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"GameModalController",scope:i,windowClass:"photo_modal_window mobile_modal"})}function d(e){var t=angular.copy(u[e])||{_:"gameEmpty"};return t.photo&&t.photo.id&&(t.photo=i.wrapForHistory(t.photo.id)),t.document&&t.document.id&&(t.document=s.wrapForHistory(t.document.id)),t}function p(e,a,r){var i=d(e),s=$(window).width()-(Config.Mobile?0:10),o=$(n).height()-(Config.Mobile?51:150);!Config.Mobile&&s>800&&(s-=208);var l={width:s,height:o},c=Config.Modes.chrome_packed?"webview":"iframe",p="text/html",u="<"+c+' src="'+encodeEntities(r)+'" type="'+encodeEntities(p)+'" 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"></'+c+">";return l.html=t.trustAs("html",u),i.full=l,i}var u={};return{saveGame:l,openGame:c,wrapForFull:p,wrapForHistory:d}}]).service("AppDocsManager",["$sce","$rootScope","$modal","$window","$q","$timeout","RichTextProcessor","MtpApiFileManager","FileManager","qSync",function(e,t,n,a,r,i,s,o,l,c){function d(e,t){if(w[e.id]=e,t&&angular.extend(e,t),e.thumb&&"photoCachedSize"==e.thumb._&&(o.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&&t.pFlags.round_message?e.type="round":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":case"round":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 p(e){return w[e]||{_:"documentEmpty"}}function u(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,r,i=angular.copy(w[e]),s=i.thumb,o=!1;switch(i.type){case"video":t=Math.min(C-80,Config.Mobile?210:150),n=Math.min(S-100,Config.Mobile?210:150);break;case"sticker":o=!0,t=Math.min(C-80,Config.Mobile?128:192),n=Math.min(S-100,Config.Mobile?128:192);break;case"gif":o=!0,t=Math.min(C-80,Config.Mobile?210:260),n=Math.min(S-100,Config.Mobile?210:260);break;case"round":o=!0,t=Math.min(C-80,200),n=Math.min(S-100,200);break;default:t=n=100}return o&&i.w&&i.h?r=calcImageInBox(i.w,i.h,t,n):s&&(r=calcImageInBox(s.w,s.h,t,n)),r?(a={width:r.w,height:r.h},s&&(a.location=s.location,a.size=s.size)):a=!1,i.thumb=a,i.withPreview=!Config.Mobile&&i.mime_type.match(/^image\/(gif|png|jpeg|jpg|bmp|tiff)/)?1:0,k[e]=i}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&&o.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||{},p={_:"inputDocumentFileLocation",id:n,access_hash:s.access_hash,version:s.version,file_name:m(s)};if("documentEmpty"==s._)return r.reject();if(d.downloaded&&!a){var u=o.getCachedFile(p);if(u)return c.when(u)}d.progress={enabled:!d.downloaded,percent:1,total:s.size};var g=o.downloadFile(s.dc_id,p,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,i(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 r=t.$new(!0);r.docID=e,r.messageID=a;n.open({templateUrl:templateUrl("document_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"DocumentModalController",scope:r,windowClass:"document_modal_window"})}function y(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 v(e){var t=g(e),n=Math.min($(window).width()-(Config.Mobile?0:60),542),a=$(window).height()-(Config.Mobile?92:150),r={placeholder:"img/placeholders/docThumbModal.gif",width:n,height:a};if(t.w&&t.h){var i=calcImageInBox(t.w,t.h,n,a);r.width=i.w,r.height=i.h}else r.height=r.width=Math.min(n,a);return t.full=r,t.fullThumb=angular.copy(t.thumb),t.fullThumb.width=r.width,t.fullThumb.height=r.height,t}function b(e,a){var r=t.$new(!0);return r.docID=e,r.messageID=a,n.open({templateUrl:templateUrl("video_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"VideoModalController",scope:r,windowClass:"video_modal_window"})}var w={},k={},C=$(window).width(),S=$(window).height();return{saveDoc:d,getDoc:p,hasDoc:u,wrapForHistory:g,wrapVideoForFull:v,updateDocDownloaded:h,downloadDoc:f,openDoc:_,openVideo:b,saveDocFile:y}}]).service("AppStickersManager",["$q","$rootScope","$modal","_","FileManager","MtpApiManager","AppDocsManager","Storage","ApiUpdatesManager",function(e,t,n,a,r,i,s,o,l){function c(){k||(k=!0,setTimeout(d,1e3))}function d(e){return o.get("all_stickers").then(function(t){var n=Config.Schema.API.layer;return t.layer==n&&void 0!==t.emojiIndex||(t=!1),t&&t.date>tsNow(!0)&&!e?(S=t.emojiIndex,p(t)):i.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?(o.set({all_stickers:e}),S=e.emojiIndex,p(e)):g(e,t&&t.fullSets).then(function(){return o.set({all_stickers:e}),p(e)})})})}function p(e){if($!==e.hash){$=e.hash;var t,n,r,i,o,l,c,d;for(C=[],r=e.sets.length,t=0;t<r;t++)if(l=e.sets[t],!l.pFlags.disabled){for(d=e.fullSets[l.id].documents,i=d.length,c=[],n=0;n<i;n++)o=d[n],s.saveDoc(o),c.push(o.id);l.docIDs=c,C.push(l)}}return h().then(function(e){var t=C;if(e.length){t=C.slice();var n,r,i=[];for(n=0,r=e.length;n<r;n++)i.push(e[n].id);t.unshift({id:0,title:a("im_stickers_tab_recent_raw"),short_name:"",docIDs:i})}return t})}function u(e){angular.forEach(e.packs,function(e){for(var t=e.emoticon,n=!1;t.length&&(n=EmojiHelper.emojiMap[t],void 0===n);)t=t.substr(0,-1);if(void 0!==n){var a=S[n];void 0===a&&(S[n]=a=[]),angular.forEach(e.documents,function(e){a.indexOf(e)===-1&&a.push(e)})}})}function m(e){return h().then(function(){var t=S[e],n=[];if(void 0===t)return n;var a=[];return angular.forEach(C,function(e){a.push(e.id)}),angular.forEach(t,function(e){var t=s.getDoc(e);if(t&&t.stickerSetInput){var r=t.stickerSetInput.id;a.indexOf(r)!=-1&&n.push(t)}}),n.sort(function(e,t){return a.indexOf(e.stickerSetInput.id)-a.indexOf(t.stickerSetInput.id)}),n})}function g(t,n){var a=[],r=n||t.fullSets||{};return t.fullSets={},S=t.emojiIndex={},angular.forEach(t.sets,function(e){var n=r[e.id];if(n&&n.set.hash==e.hash)t.fullSets[e.id]=n,u(n);else{var s=i.invokeApi("messages.getStickerSet",{stickerset:{_:"inputStickerSetID",id:e.id,access_hash:e.access_hash}}).then(function(n){t.fullSets[e.id]=n,u(n)});a.push(s)}}),e.all(a)}function h(){return o.get("stickers_popular").then(function(e){var t,n,a,r=[];if(e&&e.length)for(t=0,n=e.length;t<n;t++)a=e[t][0],s.hasDoc(a)&&r.push({id:a,rate:e[t][1]});return r})}function f(e){h().then(function(t){for(var n=!1,a=t.length,r=[],i=0;i<a;i++)t[i].id==e&&(n=!0,t[i].rate++),r.push([t[i].id,t[i].rate]);n?r.sort(function(e,t){return t[1]-e[1]}):(r.length>15&&(r=r.slice(0,15)),r.push([e,1])),ConfigStorage.set({stickers_popular:r})})}function _(e){return i.invokeApi("messages.getStickerSet",{stickerset:e}).then(function(e){for(var t=0;t<e.documents.length;t++)s.saveDoc(e.documents[t]);return e})}function y(e,t){var n=t?"messages.uninstallStickerSet":"messages.installStickerSet",a={_:"inputStickerSetID",id:e.set.id,access_hash:e.set.access_hash};return i.invokeApi(n,{stickerset:a,disabled:!1}).then(function(n){var a;a=t?{_:"updateDelStickerSet",id:e.set.id}:{_:"updateNewStickerSet",stickerset:e},l.processUpdateMessage({_:"updateShort",update:a})})}function v(e){return b({_:"inputStickerSetShortName",short_name:e})}function b(e){var a=t.$new(!0);a.inputStickerset=e;n.open({templateUrl:templateUrl("stickerset_modal"),controller:"StickersetModalController",scope:a,windowClass:"stickerset_modal_window mobile_modal"})}function w(e){for(var t,n=0,a=0;a<e.length;a++)t=e[a],!t.pFlags.disabled&&t.pFlags.installed&&(n=(20261*n+2147483648+t.hash)%2147483648);return n}var k=!1,$=!1,C=[],S={};return t.$on("apiUpdate",function(e,n){return("updateStickerSets"==n._||"updateNewStickerSet"==n._||"updateDelStickerSet"==n._||"updateStickerSetsOrder"==n._)&&o.get("all_stickers").then(function(e){switch(e&&e.layer==Config.Schema.API.layer||t.$broadcast("stickers_changed"),n._){case"updateNewStickerSet":var a=n.stickerset,r=a.set;if(r.pFlags.masks)return!1;for(var i=!1,s=0,l=e.sets.length;s<l;s++)if(e.sets[s].id==r.id){i=s;break}i!==!1&&e.sets.splice(i,1),r.pFlags.installed=!0,e.sets.unshift(r),e.fullSets[r.id]=a,u(a);break;case"updateDelStickerSet":for(var r,s=0,l=e.sets.length;s<l;s++)if(r=e.sets[s],r.id==n.id){r.pFlags.installed=!1,e.sets.splice(s,1);break}delete e.fullSets[n.id];break;case"updateStickerSetsOrder":if(n.pFlags.masks)return;var c=n.order;e.sets.sort(function(e,t){return c.indexOf(e.id)-c.indexOf(t.id)})}e.hash=w(e.sets),e.date=0,o.set({all_stickers:e}).then(function(){t.$broadcast("stickers_changed")})})}),{start:c,getStickers:d,openStickersetLink:v,openStickerset:b,installStickerset:y,pushPopularSticker:f,searchStickers:m,getStickerset:_}}]).service("AppInlineBotsManager",["qSync","$q","$rootScope","toaster","Storage","ErrorService","MtpApiManager","AppMessagesManager","AppMessagesIDsManager","AppDocsManager","AppPhotosManager","AppGamesManager","RichTextProcessor","AppUsersManager","AppPeersManager","LocationParamsService","PeersSelectService","GeoLocationManager",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,_){function y(){return r.get("inline_bots_popular").then(function(e){var t,n,a,r=[];if(e&&e.length){var i=tsNow(!0);for(t=0,n=e.length;t<n;t++)i-e[t][3]>1209600||(a=e[t][0],m.hasUser(a)||m.saveApiUser(e[t][1]),r.push({id:a,rate:e[t][2],date:e[t][3]}))}return r})}function v(e){y().then(function(t){for(var a=!1,r=t.length,i=[],s=0;s<r;s++){t[s].id==e&&(a=!0,t[s].rate++,t[s].date=tsNow(!0));var o=m.getUser(t[s].id);i.push([t[s].id,o,t[s].rate,t[s].date])}a?i.sort(function(e,t){return t[2]-e[2]}):(i.length>15&&(i=i.slice(0,15)),i.push([e,m.getUser(e),1,tsNow(!0)])),ConfigStorage.set({inline_bots_popular:i}),n.$broadcast("inline_bots_popular")})}function b(n){return g.resolveUsername(n).then(function(a){if(a>0){var r=m.getUser(a);if(r.pFlags.bot&&void 0!==r.bot_inline_placeholder){var i={username:n,id:a,placeholder:r.bot_inline_placeholder};return r.pFlags.bot_inline_geo&&_.isAvailable()?T(a).then(function(){return _.getPosition().then(function(t){return i.geo=t,e.when(i)})})["catch"](function(){return e.when(i)}):e.when(i)}}return t.reject()},function(e){return e.handled=!0,t.reject(e)})}function w(e,t,n,a,r){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:r},{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=u.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=u.wrapRichText(e.title,{noLinebreaks:!0,noLinks:!0}),e.rDescription=u.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","gif","sticker"].indexOf(e[0].type)!=-1){var a=[];angular.forEach(e,function(e){var t,n,r,i;if("botInlineMediaResult"==e._){if(r=e.document)t=e.document.w,n=e.document.h;else if(i=e.photo){var s=(i.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 r=[],i=0,s=0;angular.forEach(a,function(e){var a=e*n;s+=a,!i||i<4&&s<1.1*t?i++:(r.push(i),i=1,s=a)}),i&&r.push(i);var o=0,l=r.length-1;angular.forEach(r,function(r,i){var s=i==l,c=a.slice(o,o+r),d=0;angular.forEach(c,function(e){d+=e}),angular.forEach(c,function(a,r){var i=n,l=t*a/d,c=i*a;s&&l>c&&(l=c);var p=e[o+r];p.thumbW=Math.floor(l)-2,p.thumbH=Math.floor(i)-2}),o+=r})}}function $(e,t,a){var i=g.getPeerString(e),s={};s["inline_switch_pm"+t]={peer:i,time:tsNow()},r.set(s),n.$broadcast("history_focus",{peerString:g.getPeerString(t)}),o.startBot(t,0,a)}function C(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 r.get(a).then(function(e){return!!(e&&(r.remove(a),tsNow()-e.time<36e5))&&e.peer})}function S(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=o.getMessage(e),a=n.viaBotID||n.fromID;if(t.pFlags&&t.pFlags.same_peer){var r=o.getMessagePeer(n),i=g.getPeerString(r);return void S(a,i,t.query)}return C(a).then(function(e){return e?S(a,e,t.query):void f.selectPeer({canSend:!0}).then(function(e){return S(a,e,t.query)})})}function x(e,t){var n=o.getMessage(e),a=(n.fromID,o.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=u.wrapUrl(e.url,!0);h.openUrl(t)}})}function I(e){var t=o.getMessage(e),n=o.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&&p.openGame(t.media.game.id,e,n.url)})}function A(e,t){if("string"==typeof e&&e.length){var n=u.wrapRichText(e,{noLinks:!0,noLinebreaks:!0});t?i.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;v(a.botID);var r=t.split("_"),i=r.shift(),s=r.join("_");if(n=n||{},n.viaBotID=a.botID,n.queryID=i,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,o.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,p=a.photo;c=d?{_:"inputMediaDocument",id:{_:"inputDocument",id:d.id,access_hash:d.access_hash},caption:l}:{_:"inputMediaPhoto",id:{_:"inputPhoto",id:p.id,access_hash:p.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}}),o.sendOther(e,c,n)}}function T(e){var n="bot_access_geo"+e;return r.get(n).then(function(e){return!(!e||!e.granted)||i.confirm({type:"BOT_ACCESS_GEO_INLINE"}).then(function(){var e={};return e[n]={granted:!0,time:tsNow()},r.set(e),!0},function(){var e={};return e[n]={denied:!0,time:tsNow()},r.set(e),t.reject()})})}var D={};return{resolveInlineMention:b,getPopularBots:y,sendInlineResult:E,getInlineResults:w,regroupWrappedResults:k,switchToPM:$,checkSwitchReturn:C,switchInlineButtonClick:M,callbackButtonClick:x,gameButtonClick:I}}]).service("ApiUpdatesManager",["$rootScope","MtpNetworkerFactory","AppUsersManager","AppChatsManager","AppPeersManager","MtpApiManager",function(e,t,n,a,r,i){function s(){var e=_.seq+1,t=_.pendingSeqUpdates[e];if(!t)return!1;for(var n,a,r=t.updates,n=0,a=r.length;n<a;n++)h(r[n]);return _.seq=t.seq,t.date&&_.date<t.date&&(_.date=t.date),delete _.pendingSeqUpdates[e],!s()&&_.syncPending&&_.syncPending.seqAwaiting&&_.seq>=_.syncPending.seqAwaiting&&(_.syncPending.ptsAwaiting?delete _.syncPending.seqAwaiting:(clearTimeout(_.syncPending.timeout),_.syncPending=!1)),!0}function o(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,r=!1,i=!1,s=0,o=t.pendingPtsUpdates.length;s<o;s++)n=t.pendingPtsUpdates[s],a+=n.pts_count,a>=n.pts&&(r=n.pts,i=s);if(!r)return!1;for(console.log(dT(),"pop pending pts updates",r,t.pendingPtsUpdates.slice(0,i+1)),t.pts=r,s=0;s<=i;s++)n=t.pendingPtsUpdates[s],h(n);return t.pendingPtsUpdates.splice(0,i+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 i={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,i);break;case"updateShortMessage":case"updateShortChatMessage":var s=2&e.flags,o=e.from_id||(s?v:e.user_id),c=e.chat_id?-e.chat_id:s?e.user_id:v;g({_:"updateNewMessage",message:{_:"message",flags:e.flags,pFlags:e.pFlags,id:e.id,from_id:o,to_id:r.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},i);break;case"updatesCombined":case"updates":n.saveApiUsers(e.users),a.saveApiChats(e.chats),angular.forEach(e.updates,function(e){g(e,i)});break;default:console.warn(dT(),"Unknown update message",e)}}function d(){_.syncLoading||(_.syncLoading=!0,_.pendingSeqUpdates={},_.pendingPtsUpdates=[]),_.syncPending&&(clearTimeout(_.syncPending.timeout),_.syncPending=!1),i.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 r=t.intermediate_state||t.state;_.seq=r.seq,_.pts=r.pts,_.date=r.date,"updates.differenceSlice"==t._?d():(e.$broadcast("stateSynchronized"),_.syncLoading=!1)})}function p(t){var r=m(t);r.syncLoading||(r.syncLoading=!0,r.pendingPtsUpdates=[]),r.syncPending&&(clearTimeout(r.syncPending.timeout),r.syncPending=!1),i.invokeApi("updates.getChannelDifference",{channel:a.getChannelInput(t),filter:{_:"channelMessagesFilterEmpty"},pts:r.pts,limit:30}).then(function(i){return r.pts=i.pts,"updates.channelDifferenceEmpty"==i._?(console.log(dT(),"apply channel empty diff",i),r.syncLoading=!1,e.$broadcast("stateSynchronized"),!1):"updates.channelDifferenceTooLong"==i._?(console.log(dT(),"channel diff too long",i),r.syncLoading=!1,delete y[t],h({_:"updateChannelReload",channel_id:t}),!1):(n.saveApiUsers(i.users),a.saveApiChats(i.chats),console.log(dT(),"applying",i.other_updates.length,"channel other updates"),angular.forEach(i.other_updates,function(e){h(e)}),console.log(dT(),"applying",i.new_messages.length,"channel new messages"),angular.forEach(i.new_messages,function(e){h({_:"updateNewChannelMessage",message:e,pts:r.pts,pts_count:0})}),console.log(dT(),"apply channel diff",r.pts),void("updates.channelDifference"!=i._||i.pFlags["final"]?(console.log(dT(),"finished channel get diff"),e.$broadcast("stateSynchronized"),r.syncLoading=!1):p(t)))})}function u(e,t){if(!t)throw new Error("Add channel state without pts "+e);return void 0===y[e]&&(y[e]={pts:t,pendingPtsUpdates:[],syncPending:!1,syncLoading:!1},!0)}function m(e,t){return void 0===y[e]&&u(e,t),y[e]}function g(e,t){t=t||{};var i=!1;switch(e._){case"updateNewChannelMessage":case"updateEditChannelMessage":i=-r.getPeerID(e.message.to_id);break;case"updateDeleteChannelMessages":i=e.channel_id;break;case"updateChannelTooLong":if(i=e.channel_id,void 0===y[i])return!1}var c=i?m(i,e.pts):_;if(c.syncLoading)return!1;if("updateChannelTooLong"==e._)return p(i),!1;if("updateNewMessage"==e._||"updateEditMessage"==e._||"updateNewChannelMessage"==e._||"updateEditChannelMessage"==e._){var u=e.message,g=r.getPeerID(u.to_id),f=u.fwd_from||{};if(u.from_id&&!n.hasUser(u.from_id,u.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",u),i&&a.hasChat(i)?p(i):l(),!1}else if(i&&!a.hasChat(i))return!1;var v,b;if(e.pts){var w=c.pts+(e.pts_count||0);if(w<e.pts)return console.warn(dT(),"Pts hole",c,e,i&&a.getChat(i)),c.pendingPtsUpdates.push(e),c.syncPending||(c.syncPending={timeout:setTimeout(function(){i?p(i):d()},5e3)}),c.syncPending.ptsAwaiting=!0,!1;if(e.pts>c.pts)c.pts=e.pts,v=!0;else if(e.pts_count)return!1;i&&t.date&&_.date<t.date&&(_.date=t.date)}else if(!i&&t.seq>0){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.date<t.date&&(c.date=t.date),b=!0)}h(e),v?o(i):b&&s()}function h(t){e.$broadcast("apiUpdate",t)}function f(){t.setUpdatesProcessor(c),i.invokeApi("updates.getState",{},{noErrorBox:!0}).then(function(e){_.seq=e.seq,_.pts=e.pts,_.date=e.date,setTimeout(function(){_.syncLoading=!1},1e3)})}var _={pendingPtsUpdates:[],pendingSeqUpdates:{},syncPending:!1,syncLoading:!0},y={},v=0;return i.getUserID().then(function(e){v=e}),{processUpdateMessage:c,addChannelState:u,attach:f}}]).service("StatusManager",["$timeout","$rootScope","MtpApiManager","AppUsersManager","IdleManager",function(e,t,n,a,r){function i(){p||(p=!0,t.$watch("idle.isIDLE",o),t.$watch("offline",o))}function s(e){var r=tsNow();if(!(e&&!d||!e&&r-d<5e4||t.offline))return d=e?0:r,a.setUserStatus(u,e),n.invokeApi("account.updateStatus",{offline:e},{noErrorBox:!0})}function o(){c&&e.cancel(c),t.idle.isIDLE?c=e(function(){s(!0)},5e3):(s(!1),c=e(o,6e4))}function l(){return!!m&&(!(tsNow()>m)||(m=!1,!1))}var c,d=0,p=!1,u=0,m=!1;return n.getUserID().then(function(e){u=e}),t.$on("apiUpdate",function(e,t){"updateUserStatus"==t._&&t.user_id==u&&(m=tsNow()+("userStatusOnline"==t.status._?3e5:0))}),{start:i,isOtherDeviceActive:l}}]).service("NotificationsManager",["$rootScope","$window","$interval","$q","$modal","_","toaster","MtpApiManager","AppPeersManager","AppChatsManager","AppUsersManager","IdleManager","Storage","AppRuntimeManager","FileManager","WebPushApiManager",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h){function f(){u.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 y(e){return void 0!==K[e]?K[e]:K[e]=o.invokeApi("account.getNotifySettings",{peer:{_:"inputNotifyPeer",peer:l.getInputPeerByID(e)}})}function v(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",o.invokeApi("account.updateNotifySettings",{peer:{_:"inputNotifyPeer",peer:l.getInputPeerByID(e)},settings:n})}function k(e){return y(e).then(function(e){return"peerNotifySettings"==e._&&1e3*e.mute_until>tsNow()})}function C(){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 S(){D(),n.cancel(O),v(),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,r=e.key||"k"+a;if("Notification"in window)try{n=new Notification(e.title,{icon:e.image||"",body:e.message||"",tag:e.tag||"",silent:e.silent||!1})}catch(i){return L=!1,void h.setLocalNotificationsDisabled()}else if("mozNotification"in navigator)n=navigator.mozNotification.createNotification(e.title,e.message||"",e.image||"");else{if(!F)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[r],D())},n.show&&n.show(),j[r]=n,Config.Navigator.mobile||setTimeout(function(){E(r)},8e3)}}}function I(e){var t=tsNow();if(!(W&&t<W&&G==e)){W=t+1e3,G=e;var n="img/sound_a.mp3",a=$("#notify_sound").html('<audio autoplay="autoplay" mozaudiochannel="notification"><source src="'+n+'" type="audio/mpeg" /><embed hidden="true" autostart="true" loop="false" volume="'+100*e+'" src="'+n+'" /></audio>');a.find("audio")[0].volume=e}}function A(e){var t=j[e];if(t){q>0&&q--;try{t.close?t.close():F&&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(){F?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 o.invokeApi("account.registerDevice",{token_type:e.tokenType,token:e.tokenValue}).then(function(){te=e},function(e){e.handled=!0})}function R(e){return!!te&&void o.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 F=!1;try{window.external&&window.external.msIsSiteMode()&&(F=!0)}catch(U){}var O,B,L=F||"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=i.pluralize("page_title_pluralize_notifications"),X=document.title,J=!1,Q=!1,ee={};e.$watch("idle.deactivated",function(e){e&&S()}),e.$watch("idle.isIDLE",function(e){Q||(e||D(),Config.Navigator.mobile||(n.cancel(O),e?(X=document.title,O=n(function(){J||!q?(J=!1,document.title=X,v()):(J=!0,document.title=Z(q),v("favicon_unread.ico"))},1e3)):(J=!1,document.title=X,v())))}),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?R(t):t?P(t):h.subscribe()}),e.$on("push_subscribe",function(e,t){P(t)}),e.$on("push_unsubscribe",function(e,t){R(t)});var ae=a.defer(),re=e.$on("dialogs_multiupdate",function(){re(),ae.resolve()}),ie=ae.promise;return e.$on("push_notification_click",function(t,n){if("push_settings"==n.action)return void ie.then(function(){r.open({templateUrl:templateUrl("settings_modal"),controller:"SettingsModalController",windowClass:"settings_modal_window mobile_modal",backdrop:"single"})});if("mute1d"==n.action)return void o.invokeApi("account.updateDeviceLocked",function(){}).then(function(){var e=s.pop({type:"info",body:i("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&&ie.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:C,notify:x,cancel:A,clear:D,soundReset:T,getPeerSettings:y,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,r,i){function s(e){return a.invokeApi("account.getPassword",{},e).then(function(e){return e})}function o(e,n){var r,s,o={new_settings:{_:"account.passwordInputSettings",flags:0,hint:n.hint||""}};if(r="string"==typeof n.cur_password&&n.cur_password.length>0?p(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);i.nextBytes(l),s=p(c,n.new_password),o.new_settings.new_salt=c,o.new_settings.flags|=1}else"string"==typeof n.new_password&&(o.new_settings.flags|=1,o.new_settings.new_salt=[]),s=t.when([]);return"string"==typeof n.email&&(o.new_settings.flags|=2,o.new_settings.email=n.email||""),t.all([r,s]).then(function(e){return o.current_password_hash=e[0],o.new_settings.new_password_hash=e[1],a.invokeApi("account.updatePasswordSettings",o)})}function l(e,t,n){return p(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 p(e,t){for(var n=unescape(encodeURIComponent(t)),a=new ArrayBuffer(n.length),i=new Uint8Array(a),s=0,o=n.length;s<o;s++)i[s]=n.charCodeAt(s);return a=bufferConcat(bufferConcat(e,i),e),r.sha256Hash(a)}return{check:l,getState:s,requestRecovery:c,recover:d,updateSettings:o}}]).service("ErrorService",["$rootScope","$modal","$window",function(e,t,n){function a(n,a){if(s>=1)return console.log("Skip error box, too many open",s,n,a),!1;a=a||{};var r=e.$new();angular.extend(r,n),s++;var i=t.open({templateUrl:templateUrl("error_modal"),scope:r,windowClass:a.windowClass||"error_modal_window"});return i.result["finally"](function(){s--}),i}function r(e,t){return a({title:e,description:t})}function i(n,a,r){a=a||{},r=r||{};var i=e.$new();angular.extend(i,n),angular.extend(i,{data:r});var s=t.open({templateUrl:templateUrl("confirm_modal"),scope:i,windowClass:a.windowClass||"confirm_modal_window"});return s.result}var s=0;return n.safeConfirm=function(e,t){"string"==typeof e&&(e={message:e}),i(e).then(function(e){t(e||!0)},function(){t(!1)})},{show:a,alert:r,confirm:i}}]).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 r=e.$new();return r.multiSelect=!0,r.noMessages=!0,a&&angular.extend(r,a),t.open({templateUrl:templateUrl("peer_select"),controller:"PeerSelectController",scope:r,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 r=e.$new();return r.multiSelect=n,angular.extend(r,a),!r.action&&n&&(r.action="select"),t.open({templateUrl:templateUrl("contacts_modal"),controller:"ContactsModalController",scope:r,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","$timeout","MtpApiManager","ApiUpdatesManager",function(e,t,n,a,r,i){function s(){r.getUserID().then(function(t){t&&a(function(){e.get("last_version").then(function(t){t!=Config.App.version&&(t?r.invokeApi("help.getAppChangelog",{prev_app_version:t},{noErrorBox:!0}).then(function(t){return!("updates"==t._&&!t.updates.length)&&(i.processUpdateMessage(t),void e.set({last_version:Config.App.version}))}):e.set({last_version:Config.App.version}))})},5e3)})}function o(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:s,showChangelog:o}}]).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(){r||"http:"!=location.protocol||Config.Modes.http||Config.App.domains.indexOf(location.hostname)==-1||(r=!0,setTimeout(n,12e4))}var r=!1;return{start:a,check:n}}]).service("LayoutSwitchService",["ErrorService","Storage","AppRuntimeManager","$window",function(e,t,n,a){function r(e){ConfigStorage.noPrefix(),t.set({layout_selected:e?"mobile":"desktop",layout_width:$(window).width()}).then(function(){n.reload()})}function i(n){if(!l){var a=$(window).width(),i=a<600;!a||!n&&(Config.Navigator.mobile?a<=800:i)||i!=Config.Mobile&&(ConfigStorage.noPrefix(),t.get("layout_width").then(function(n){return a!=n&&(l=!0,void e.confirm({type:i?"SWITCH_MOBILE_VERSION":"SWITCH_DESKTOP_VERSION"}).then(function(){r(i)},function(){ConfigStorage.noPrefix(),t.set({layout_width:a}),l=!1}))}))}}function s(){o||Config.Navigator.mobile||(o=!0,i(),$(a).on("resize",i))}var o=!1,l=!1;return{start:s,switchLayout:r}}]).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 r=$("<script>").appendTo("body").on("load error",function(){r.remove()}).attr("src","//telegram.me/_websync_?authed="+(t?"1":"0")),i=$("<script>").appendTo("body").on("load error",function(){i.remove()}).attr("src","//t.me/_websync_?authed="+(t?"1":"0"))})}var n=Config.Modes.test||Config.App.domains.indexOf(location.hostname)==-1||"http:"!=location.protocol&&"https:"!=location.protocol||"https:"==location.protocol&&"web.telegram.org"!=location.hostname;return{setAuthorized:t}}]).service("LocationParamsService",["qSync","$rootScope","$routeParams","AppPeersManager","AppUsersManager","AppChatsManager","AppMessagesManager","AppMessagesIDsManager","MtpApiManager","ApiUpdatesManager","PeersSelectService","AppStickersManager","ErrorService",function(e,t,n,a,r,i,s,o,l,c,d,p,u){function m(){var e=n.tgaddr;if(e){if(!e.match(/[=&?]/))try{e=decodeURIComponent(e)}catch(t){}var a=e.match(b);a&&g(a[3])}}function g(e,n){var i;if(i=e.match(/^resolve\?domain=(.+?)(?:&(start|startgroup|post|game)=(.+))?$/))return a.resolveUsername(i[1]).then(function(e){if(e>0&&r.isBot(e)&&("startgroup"==i[2]||"game"==i[2])){var n="startgroup"==i[2];return d.selectPeer({confirm_type:n?"INVITE_TO_GROUP":"INVITE_TO_GAME",noUsers:n}).then(function(o){var l,c=a.getPeerID(o);if(n){var d=c<0?-c:0;l=s.startBot(e,d,i[3])}else inputGame={_:"inputGameShortName",bot_id:r.getUserInput(e),short_name:i[3]},l=s.shareGame(e,c,inputGame);l.then(function(){t.$broadcast("history_focus",{peerString:o})})}),!0}var l={peerString:a.getPeerString(e)};"start"==i[2]?l.startParam=i[3]:"post"==i[2]&&(l.messageID=o.getFullMessageID(parseInt(i[3]),-e)),t.$broadcast("history_focus",l)}),!0;if(i=e.match(/^join\?invite=(.+)$/))return v(i[1]),!0;if(i=e.match(/^addstickers\?set=(.+)$/))return p.openStickersetLink(i[1]),!0;if(i=e.match(/^msg_url\?url=([^&]+)(?:&text=(.*))?$/)){var e=decodeURIComponent(i[1]),l=i[2]?decodeURIComponent(i[2]):"";return y(e,l),!0}if(n&&(i=e.match(/^unsafe_url\?url=([^&]+)/))){var e=decodeURIComponent(i[1]);return u.confirm({type:"JUMP_EXT_URL",url:e}).then(function(){var t="_blank";0!==e.search("https://telegram.me/")&&0!==e.search("https://t.me/")||(t="_self");var n=window.open(e,t);try{n.opener=null}catch(a){}}),!0}if(i=e.match(/^search_hashtag\?hashtag=(.+?)$/))return t.$broadcast("dialogs_search",{query:"#"+decodeURIComponent(i[1])}),Config.Mobile&&t.$broadcast("history_focus",{peerString:""}),!0;if(n&&(i=e.match(/^bot_command\?command=(.+?)(?:&bot=(.+))?$/))){var c=t.selectedPeerID,l="/"+i[1];return c<0&&i[2]&&(l+="@"+i[2]),s.sendText(c,l),t.$broadcast("history_focus",{peerString:a.getPeerString(c)}),!0}return!1}function h(e,n){if(console.log(dT(),"Received activity",e,n),"share"==e&&n.url)y(n.url,"");else if("view"==e&&n.url){var i=n.url.match(b);i&&g(i[3])}else if("webrtc-call"==e&&n.contact){var o=n.contact,l=[];if(void 0!=o.tel)for(var c=0;c<o.tel.length;c++)l.push(o.tel[c].value);var p=(o.givenName||[]).join(" "),m=(o.familyName||[]).join(" ");l.length&&r.importContact(l[0],p,m).then(function(e){if(e){var n=a.getPeerString(e);t.$broadcast("history_focus",{peerString:n})}else u.show({error:{code:404,type:"USER_NOT_USING_TELEGRAM"}})})}else"share"===e&&n.blobs&&n.blobs.length>0&&d.selectPeers({confirm_type:"EXT_SHARE_PEER",canSend:!0}).then(function(e){angular.forEach(e,function(e){var t=a.getPeerID(e);angular.forEach(n.blobs,function(e){s.sendFile(t,e,{isMedia:!0})})}),1==e.length&&t.$broadcast("history_focus",{peerString:e[0]})})}function f(){w||(w=!0,window.navigator.mozSetMessageHandler&&(console.log(dT(),"Set activity message handler"),window.navigator.mozSetMessageHandler("activity",function(e){h(e.source.name,e.source.data)})),$(document).on("click",function(e){var t=e.target;if(t&&"A"==t.tagName&&!t.onclick&&!t.onmousedown){var n=$(t).attr("href")||t.href||"",a=n.match(b);if(a&&g(a[3],!0))return cancelEvent(e)}}),t.$on("$routeUpdate",m),m())}function _(e){var t=e.match(b);if(t&&g(t[3],!0))return!0;var n=window.open(e,"_blank");try{n.opener=null}catch(a){}return!!n}function y(n,a,r){var i={};r&&(i.shareLinkPromise=e.when(n)),d.selectPeer(i).then(function(e){t.$broadcast("history_focus",{peerString:e,attachment:{_:"share_url",url:n,text:a}})})}function v(e){return l.invokeApi("messages.checkChatInvite",{hash:e}).then(function(n){var a;if("chatInviteAlready"==n._){i.saveApiChat(n.chat);var r=!n.chat.pFlags.left||i.isChannel(n.chat.id)&&n.chat.username;if(r)return t.$broadcast("history_focus",{peerString:i.getChatString(n.chat.id)});a=n.chat.title}else a=n.title;u.confirm({type:n.pFlags.channel&&!n.pFlags.megagroup?"JOIN_CHANNEL_BY_LINK":"JOIN_GROUP_BY_LINK",title:a}).then(function(){return l.invokeApi("messages.importChatInvite",{hash:e}).then(function(e){if(c.processUpdateMessage(e),e.chats&&1==e.chats.length)t.$broadcast("history_focus",{peerString:i.getChatString(e.chats[0].id)});else if(e.updates&&e.updates.length)for(var n,a=0,r=e.updates.length;a<r;a++)if(n=e.updates[a],"updateNewMessage"==n._){t.$broadcast("history_focus",{peerString:i.getChatString(n.message.to_id.chat_id)});break}})})})}var b=/^(web\+)?tg:(\/\/)?(.+)/,w=!1;return{start:f,shareUrl:y,openUrl:_}}]).service("DraftsManager",["$rootScope","qSync","MtpApiManager","ApiUpdatesManager","AppMessagesIDsManager","AppChatsManager","AppPeersManager","RichTextProcessor","Storage","ServerTimeManager",function(e,t,n,a,r,i,s,o,l,c){function d(e,t){return l.get("draft"+e).then(function(n){"string"==typeof n&&(n=n.length>0&&{text:n}),n||t?console.warn(dT(),"local",n):n=p(e);var a=n&&n.replyToMsgID;if(a){var i=!!s.isChannel(e)&&-e;n.replyToMsgID=r.getFullMessageID(a,i)}return n})}function p(e){var t=v[e];return void 0!==t&&t}function u(t,n,a){a=a||{};var r=_(n);return v[t]=r,a.notify&&(m(t,r),e.$broadcast("draft_updated",{peerID:t,draft:r,local:a.local})),r}function m(e,t){e||console.trace("empty peerID"),e<0&&!i.hasRights(-e,"send")&&(t=!1),t||(t={text:"",replyToMsgID:0}),t.replyToMsgID=t.replyToMsgID?r.getMessageLocalID(t.replyToMsgID):0;var n="draft"+e;if(f(t))l.remove(n);else{var a={};a[n]=t,l.set(a)}}function g(e,t){m(e),a.processUpdateMessage({_:"updateShort",update:{_:"updateDraftMessage",peer:s.getOutputPeer(e),draft:{_:"draftMessageEmpty"},local:!0}}),t&&y(e)}function h(e,t){var n=f(e),a=f(t);return!(!n||!a)||n==a&&(e.replyToMsgID==t.replyToMsgID&&e.text==t.text)}function f(e){return!e||!(e.replyToMsgID>0)&&("string"!=typeof e.text||!e.text.length)}function _(e){if(!e||"draftMessage"!=e._)return!1;var t=o.parseEntities(e.message),n=e.entities||[];t=o.mergeEntities(t,n);var a=o.wrapDraftText(e.message,{entities:t}),r=o.wrapRichText(e.message,{noLinks:!0,noLinebreaks:!0});return{text:a,richMessage:r,replyToMsgID:e.reply_to_msg_id||0,date:e.date-c.serverTimeOffset}}function y(e){d(e,!0).then(function(t){var a=v[e];if(!h(a,t)){var r,i={flags:0,peer:s.getInputPeerByID(e)};if(f(t))r={_:"draftMessageEmpty"},i.message="";else{r={_:"draftMessage"};var l=t.text,d=[];l=o.parseEmojis(l),l=o.parseMarkdown(l,d,!0),t.replyToMsgID>0&&(i.flags|=1,i.reply_to_msg_id=t.replyToMsgID,r.reply_to_msg_id=t.replyToMsgID),d.length&&(i.flags|=8,i.entities=d,r.entities=d),i.message=l,r.message=l}n.invokeApi("messages.saveDraft",i).then(function(){r.date=tsNow(!0)+c.serverTimeOffset,u(e,r,{notify:!0,local:!0})})}})}var v={};return e.$on("apiUpdate",function(e,t){if("updateDraftMessage"==t._){var n=s.getPeerID(t.peer);u(n,t.draft,{notify:!0,local:t.local})}}),{getDraft:d,getServerDraft:p,saveDraft:u,changeDraft:m,clearDraft:g,syncDraft:y}}]),angular.module("myApp.controllers",["myApp.i18n"]).controller("AppWelcomeController",["$scope","$location","MtpApiManager","ChangelogNotifyService","LayoutSwitchService",function(e,t,n,a,r){n.getUserID().then(function(e){return e?void t.url("/im"):"http:"!=location.protocol||Config.Modes.http||Config.App.domains.indexOf(location.hostname)==-1?void t.url("/login"):void(location.href=location.href.replace(/^http:/,"https:"))}),a.checkUpdate(),r.start()}]).controller("AppLoginController",["$scope","$rootScope","$location","$timeout","$modal","$modalStack","MtpApiManager","ErrorService","NotificationsManager","PasswordManager","ChangelogNotifyService","IdleManager","LayoutSwitchService","WebPushApiManager","TelegramMeWebService","_",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h){function f(){var t=(navigator.language||"").toLowerCase(),n=Config.LangCountries[t],a=!Config.Navigator.mobile;if(_(["en","en-us","en-uk"].indexOf(t)==-1?void 0!==n?n:t.indexOf("-")>0?t.split("-")[1].toUpperCase():"US":"US"),a){var r=e.credentials.phone_country;s.invokeApi("help.getNearestDc",{},{dcID:2,createNetworker:!0}).then(function(t){r==e.credentials.phone_country&&_(t.country),t.nearest_dc!=t.this_dc&&s.getNetworker(t.nearest_dc,{createNetworker:!0})})}}function _(e){if(e){var t,n;for(t=0;t<Config.CountryCodes.length;t++)if(n=Config.CountryCodes[t],n[0]==e)return y({name:h(n[1]+"_raw"),code:n[2]})}return y({name:h("country_select_modal_country_us_raw"),code:"+1"})}function y(t){S=t,e.credentials.phone_country!=t.code?e.credentials.phone_country=t.code:v(),e.$broadcast("country_selected"),e.$broadcast("value_updated")}function v(){var t,n,a,r=((e.credentials.phone_country||"")+(e.credentials.phone_number||"")).replace(/\D+/g,""),i=0,s=!1;if(r.length)if(S&&!r.indexOf(S.code.replace(/\D+/g,"")))s=S.name;else for(t=0;t<Config.CountryCodes.length;t++)for(n=2;n<Config.CountryCodes[t].length;n++)a=Config.CountryCodes[t][n].replace(/\D+/g,""),a.length>i&&!r.indexOf(a)&&(i=a.length,s=h(Config.CountryCodes[t][1]+"_raw"));e.credentials.phone_full=r,e.credentials.phone_country_name=s||h("login_controller_unknown_country_raw")}function b(e){s.setUserAuth(C.dcID,{id:e.user.id}),a.cancel(M),n.url("/im")}function w(t){e.credentials.type=t.type,e.nextPending.type=t.next_type||!1,e.nextPending.remaining=t.timeout||!1,delete e.nextPending.progress,k(),onContentLoaded(function(){e.$broadcast("ui_height")})}function k(){a.cancel(M),e.nextPending.type&&e.nextPending.remaining!==!1&&--e.nextPending.remaining>0&&(M=a(k,1e3))}function $(){return c.getState(C).then(function(t){return e.password=t})}i.dismissAll(),p.start(),s.getUserID().then(function(e){return e?void n.url("/im"):"http:"!=location.protocol||Config.Modes.http||Config.App.domains.indexOf(location.hostname)==-1?(g.setAuthorized(!1),void m.forceUnsubscribe()):void(location.href=location.href.replace(/^http:/,"https:"))});var C={dcID:2,createNetworker:!0},S=!1;e.credentials={phone_country:"",phone_country_name:"",phone_number:"",phone_full:""},e.progress={},e.nextPending={},e.about={},e.chooseCountry=function(){var e=r.open({templateUrl:templateUrl("country_select_modal"),controller:"CountrySelectModalController",windowClass:"countries_modal_window mobile_modal",backdrop:"single"});e.result.then(y)},e.$watch("credentials.phone_country",v),e.$watch("credentials.phone_number",v),f();var M;e.sendCode=function(){a.cancel(M);var n=(e.credentials.phone_country||"")+(e.credentials.phone_number||""),r=!n.match(/^[\d\-+\s]+$/);return r||(n=n.replace(/\D/g,""),n.length<7&&(r=!0)),r?(e.progress.enabled=!1,void(e.error={field:"phone"})):void o.confirm({type:"LOGIN_PHONE_CORRECT",country_code:e.credentials.phone_country,phone_number:e.credentials.phone_number}).then(function(){e.progress.enabled=!0,onContentLoaded(function(){e.$broadcast("ui_height")});var n=tsNow();s.invokeApi("auth.sendCode",{flags:0,phone_number:e.credentials.phone_full,api_id:Config.App.id,api_hash:Config.App.hash,lang_code:navigator.language||"en"},C).then(function(t){e.progress.enabled=!1,e.error={},e.about={},e.credentials.phone_code_hash=t.phone_code_hash,w(t)},function(t){switch(e.progress.enabled=!1,console.log("sendCode error",t),t.type){case"PHONE_NUMBER_INVALID":e.error={field:"phone"},t.handled=!0;break;case"PHONE_NUMBER_APP_SIGNUP_FORBIDDEN":e.error={field:"phone"}}})["finally"](function(){(t.idle.isIDLE||tsNow()-n>6e4)&&l.notify({title:"Telegram",message:"Your authorization key was successfully generated! Open the app to log in.",tag:"auth_key"})})})},e.sendNext=function(){!e.nextPending.type||e.nextPending.remaining>0||(e.nextPending.progress=!0,s.invokeApi("auth.resendCode",{phone_number:e.credentials.phone_full,phone_code_hash:e.credentials.phone_code_hash},C).then(w))},e.editPhone=function(){a.cancel(M),e.credentials.phone_full&&e.credentials.phone_code_hash&&s.invokeApi("auth.cancelCode",{phone_number:e.credentials.phone_full,phone_code_hash:e.credentials.phone_code_hash},C),delete e.credentials.phone_code_hash,delete e.credentials.phone_unoccupied,delete e.credentials.phone_code_valid,delete e.nextPending.remaining},e.$watch("credentials.phone_code",function(t){t&&t.match(/^\d+$/)&&e.credentials.type&&e.credentials.type.length&&t.length==e.credentials.type.length&&e.logIn()}),e.logIn=function(t){if(!e.progress.enabled||e.progress.forceSignUp!=t){var n="auth.signIn",a={phone_number:e.credentials.phone_full,phone_code_hash:e.credentials.phone_code_hash,phone_code:e.credentials.phone_code};t&&(n="auth.signUp",angular.extend(a,{first_name:e.credentials.first_name||"",last_name:e.credentials.last_name||""})),e.progress.forceSignUp=t,e.progress.enabled=!0,s.invokeApi(n,a,C).then(b,function(t){if(e.progress.enabled=!1,400==t.code&&"PHONE_NUMBER_UNOCCUPIED"==t.type)return t.handled=!0,e.credentials.phone_code_valid=!0,e.credentials.phone_unoccupied=!0,void(e.about={});if(400==t.code&&"PHONE_NUMBER_OCCUPIED"==t.type)return t.handled=!0,e.logIn(!1);if(401==t.code&&"SESSION_PASSWORD_NEEDED"==t.type)return e.progress.enabled=!0,$().then(function(){e.progress.enabled=!1,e.credentials.phone_code_valid=!0,e.credentials.password_needed=!0,e.about={}}),void(t.handled=!0);switch(t.type){case"FIRSTNAME_INVALID":e.error={field:"first_name"},t.handled=!0;break;case"LASTNAME_INVALID":e.error={field:"last_name"},t.handled=!0;break;case"PHONE_CODE_INVALID":e.error={field:"phone_code"},delete e.credentials.phone_code_valid,t.handled=!0;break;case"PHONE_CODE_EXPIRED":e.editPhone(),t.handled=!0}})}},e.checkPassword=function(){return e.progress.enabled=!0,c.check(e.password,e.credentials.password,C).then(b,function(t){switch(e.progress.enabled=!1,t.type){case"PASSWORD_HASH_INVALID":e.error={field:"password"},t.handled=!0}})},e.forgotPassword=function(n){return c.requestRecovery(e.password,C).then(function(n){var a=t.$new();a.recovery=n,a.options=C;var i=r.open({scope:a,templateUrl:templateUrl("password_recovery_modal"),controller:"PasswordRecoveryModalController",windowClass:"md_simple_modal_window mobile_modal"});i.result.then(function(t){t&&t.user?b(t):e.canReset=!0})},function(t){switch(t.type){case"PASSWORD_EMPTY":e.logIn(),t.handled=!0;break;case"PASSWORD_RECOVERY_NA":a(function(){e.canReset=!0},1e3),t.handled=!0}}),cancelEvent(n)},e.resetAccount=function(){o.confirm({type:"RESET_ACCOUNT"}).then(function(){e.progress.enabled=!0,s.invokeApi("account.deleteAccount",{reason:"Forgot password"},C).then(function(){delete e.progress.enabled,delete e.credentials.password_needed,e.credentials.phone_unoccupied=!0},function(t){t.type&&"2FA_CONFIRM_WAIT_"==t.type.substr(0,17)&&(t.waitTime=t.type.substr(17),t.type="2FA_CONFIRM_WAIT_TIME"),delete e.progress.enabled})})},d.checkUpdate(),u.start()}]).controller("AppIMController",["$q","qSync","$scope","$location","$routeParams","$modal","$rootScope","$modalStack","MtpApiManager","AppUsersManager","AppChatsManager","AppMessagesManager","AppPeersManager","ContactsSelectService","ChangelogNotifyService","ErrorService","AppRuntimeManager","HttpsMigrateService","LayoutSwitchService","LocationParamsService","AppStickersManager",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,_,y,v,b){function w(){o.dismissAll();var e=k||{};k=!1,e.messageID=parseInt(e.messageID)||!1,e.startParam=e.startParam;var a;r.p&&"@"==r.p.charAt(0)?(void 0===n.curDialog&&(n.curDialog={peer:"",peerID:0}),a=u.resolveUsername(r.p.substr(1)).then(function(e){return t.when(u.getPeerString(e))})):a=t.when(r.p),a.then(function(t){n.curDialog=angular.extend({peer:t,peerID:u.getPeerID(t||"")},e),$&&(n.$broadcast("peer_draft_attachment",$),$=!1)})}n.$on("$routeUpdate",w);var k=!1,$=!1;n.$on("history_focus",function(e,t){if(t.peerString!=n.curDialog.peer||(t.messageID?t.messageID!=n.curDialog.messageID:n.curDialog.messageID)||t.startParam||t.attachment){var i=u.getPeerID(t.peerString),s=u.getPeer(i).username,o=s?"@"+s:t.peerString;k=!(!t.messageID&&!t.startParam)&&{messageID:t.messageID,startParam:t.startParam},t.attachment&&($=t.attachment),r.p!=o?a.url("/im?p="+o):w()}else t.messageID?n.$broadcast("ui_history_change_scroll",!0):n.$broadcast("ui_history_focus")}),n.$on("esc_no_more",function(){s.$apply(function(){a.url("/im")})}),n.isLoggedIn=!0,n.isEmpty={},n.search={},n.historyFilter={mediaType:!1},n.historyPeer={},n.historyState={selectActions:!1,botActions:!1,channelActions:!1,canReply:!1,canDelete:!1,canEdit:!1,actions:function(){return n.historyState.selectActions?"selected":n.historyState.botActions?"bot":!!n.historyState.channelActions&&"channel"},typing:[],missedCount:0,skipped:!1},n.openSettings=function(){i.open({templateUrl:templateUrl("settings_modal"),controller:"SettingsModalController",windowClass:"settings_modal_window mobile_modal",backdrop:"single"})},n.openFaq=function(){var e="https://telegram.org/faq";switch(Config.I18n.locale){case"es-es":e+="/es";break;case"it-it":e+="/it";break;case"de-de":e+="/de";break;case"ko-ko":e+="/ko";break;case"pt-br":e+="/br"}var t=window.open(e,"_blank");try{t.opener=null}catch(n){}},n.openContacts=function(){m.selectContact().then(function(e){n.dialogSelect(c.getUserString(e))})},n.openGroup=function(){m.selectContacts({action:"new_group"}).then(function(e){if(1==e.length)n.dialogSelect(c.getUserString(e[0]));else if(e.length>1){var t=s.$new();t.userIDs=e,i.open({templateUrl:templateUrl("chat_create_modal"),controller:"ChatCreateModalController",scope:t,windowClass:"md_simple_modal_window mobile_modal",backdrop:"single"})}})},n.importContact=function(){c.openImportContact().then(function(e){e&&s.$broadcast("history_focus",{peerString:c.getUserString(e)})})},n.searchClear=function(){n.search.query="",n.$broadcast("search_clear")},n.dialogSelect=function(e,t){var a={peerString:e};t?a.messageID=t:n.search.query&&n.searchClear();var r=u.getPeerID(e),i=p.convertMigratedPeer(r);i&&(a.peerString=u.getPeerString(i)),s.$broadcast("history_focus",a)},n.logOut=function(){h.confirm({type:"LOGOUT"}).then(function(){l.logOut().then(function(){location.hash="/login",f.reload()})})},n.openChangelog=function(){g.showChangelog(!1)},n.showPeerInfo=function(){n.curDialog.peerID>0?c.openUser(n.curDialog.peerID):n.curDialog.peerID<0&&d.openChat(-n.curDialog.peerID)},n.toggleEdit=function(){n.$broadcast("history_edit_toggle")},n.selectedFlush=function(){n.$broadcast("history_edit_flush")},n.toggleMedia=function(e){n.$broadcast("history_media_toggle",e)},n.returnToRecent=function(){n.$broadcast("history_return_recent")},n.toggleSearch=function(){n.$broadcast("dialogs_search_toggle")},w(),g.checkUpdate(),_.start(),y.start(),v.start(),b.start()}]).controller("AppImDialogsController",["$scope","$location","$q","$timeout","$routeParams","MtpApiManager","AppUsersManager","AppChatsManager","AppMessagesManager","AppProfileManager","AppPeersManager","PhonebookContactsService","ErrorService","AppRuntimeManager",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m){function g(t){for(var n=0;n<e.dialogs.length;n++)if(e.dialogs[n].peerID==t){e.dialogs.splice(n,1);break}}function h(){e.dialogs.sort(function(e,t){return t.index-e.index})}function f(t){var r=++S;if(a.cancel(A),w)return A=t||$?n.when():a(angular.noop,500),A.then(function(){var t=e.searchPeer||!1;return l.getSearch(t,e.search.query,{_:"inputMessagesFilterEmpty"},$).then(function(e){if(r!=S)return n.reject();var t=[];return angular.forEach(e.history,function(e){var n=l.getMessage(e),a=l.getMessagePeer(n);t.push({peerID:a,top_message:e,unread_count:-1})}),{dialogs:t}})});var i=e.search.query||"";return e.noUsers&&(i="%pg "+i),l.getConversations(i,k).then(function(e){return r!=S?n.reject():e})}function _(t){k=0,$=0,C=!1,w||(x={},b=!1),f(t).then(function(t){w||(e.dialogs=[],e.contacts=[],e.foundPeers=[]),e.foundMessages=[];var n=w?e.foundMessages:e.dialogs;t.dialogs.length?(angular.forEach(t.dialogs,function(t){if(!e.canSend||!d.isChannel(t.peerID)||o.hasRights(-t.peerID,"send")){var a=w?void 0:t,r=l.wrapForDialog(t.top_message,a);if(w&&e.searchPeer){var i=l.getMessage(t.top_message);i.fromID>0&&(r.peerID=i.fromID)}w?r.unreadCount=-1:x[t.peerID]=!0,n.push(r)}}),w?$=t.dialogs[t.dialogs.length-1].top_message:(k=t.dialogs[t.dialogs.length-1].index,delete e.isEmpty.dialogs),C=!0):C=!1,e.$broadcast("ui_dialogs_change"),e.search.query?y():(l.getConversations("",k,100),t.dialogs.length||(e.isEmpty.dialogs=!0,y()))})}function y(){if(!b||C&&(k||$))return C||w||e.noUsers||!e.search.query&&e.dialogs.length?void f().then(function(t){if(t.dialogs.length){var n=w?e.foundMessages:e.dialogs;angular.forEach(t.dialogs,function(t){if(!e.canSend||!d.isChannel(t.peerID)||o.hasRights(-t.peerID,"send")){var a=w?void 0:t,r=l.wrapForDialog(t.top_message,a);if(w)r.unreadCount=-1;else{if(x[t.peerID])return;x[t.peerID]=!0}if(w&&e.searchPeer){var i=l.getMessage(t.top_message);i.fromID>0&&(r.peerID=i.fromID)}n.push(r)}}),w?$=t.dialogs[t.dialogs.length-1].top_message:k=t.dialogs[t.dialogs.length-1].index,e.$broadcast("ui_dialogs_append"),C=!0}else C=!1}):void v()}function v(){b=!0;var t=++M;s.getContacts(e.search.query).then(function(n){t==M&&(e.contacts=[],angular.forEach(n,function(t){void 0===x[t]&&e.contacts.push({userID:t,user:s.getUser(t),peerString:s.getUserString(t)})}),n.length?delete e.isEmpty.contacts:e.search.query||(e.isEmpty.contacts=!0),e.$broadcast("ui_dialogs_append"))}),e.search.query&&e.search.query.length>=5&&a(function(){t==M&&i.invokeApi("contacts.search",{q:e.search.query,limit:10}).then(function(n){s.saveApiUsers(n.users),o.saveApiChats(n.chats),t==M&&(e.foundPeers=[],angular.forEach(n.results,function(t){var n=d.getPeerID(t);if(void 0===x[n]){if(e.canSend&&d.isChannel(n)&&!o.hasRights(-n,"send"))return;e.foundPeers.push({id:n,username:d.getPeer(n).username,peerString:s.getUserString(n)})}}))},function(e){400==e.code&&(e.handled=!0)})},500),e.search.query&&!e.noMessages&&(w=!0,_())}e.dialogs=[],e.contacts=[],e.foundPeers=[],e.foundMessages=[],void 0===e.search&&(e.search={}),void 0===e.isEmpty&&(e.isEmpty={}),e.phonebookAvailable=p.isAvailable();var b,w=!1,k=0,$=0,C=!1,S=0,M=0,x={},I={};e.$on("dialogs_need_more",function(){y()}),e.$on("dialog_unread",function(t,n){angular.forEach(e.dialogs,function(e){e.peerID==n.peerID&&(e.unreadCount=n.count)})}),e.$on("history_search",function(t,n){e.setSearchPeer(n)}),e.$on("esc_no_more",function(){e.setSearchPeer(!1)}),e.$on("dialogs_multiupdate",function(t,n){if(w)return!1;if(void 0!==e.search.query&&e.search.query.length)return!1;var a,r,i=!1,s=e.dialogs.length;for(a=0;a<s;a++)r=e.dialogs[a],n[r.peerID]&&(e.dialogs.splice(a,1),a--,s--,l.clearDialogCache(r.mid));angular.forEach(n,function(t,n){e.noUsers&&n>0||(x[n]||(x[n]=!0,i=!0),e.dialogs.unshift(l.wrapForDialog(t.top_message,t)))}),h(),i&&(delete e.isEmpty.dialogs,b&&v())}),e.$on("dialog_top",function(t,n){var a,r,i,s=e.dialogs.length;for(r=0;r<s;r++)if(a=e.dialogs[r],a.peerID==n.peerID){i=l.wrapForDialog(n.top_message,n),e.dialogs.splice(r,1,i);break}h(),i==e.dialogs[s-1]&&e.dialogs.splice(s-1,1)}),e.$on("dialog_flush",function(t,n){var a,r;for(r=0;r<e.dialogs.length;r++)if(a=e.dialogs[r],a.peerID==n.peerID){a.deleted=!0;break}}),e.$on("dialog_drop",function(e,t){g(t.peerID)}),e.$on("dialog_draft",function(t,n){var a,r;for(r=0;r<e.dialogs.length;r++)if(a=e.dialogs[r],a.peerID==n.peerID){a.draft=n.draft,n.index&&(a.index=n.index),h();break}}),e.$on("history_delete",function(t,n){for(var a=0;a<e.dialogs.length;a++)if(e.dialogs[a].peerID==n.peerID){n.msgs[e.dialogs[a].mid]&&(e.dialogs[a].deleted=!0);break}}),e.$on("apiUpdate",function(t,n){switch(n._){case"updateUserTyping":case"updateChatUserTyping":if(!s.hasUser(n.user_id))return void(n.chat_id&&o.hasChat(n.chat_id)&&!o.isChannel(n.chat_id)&&c.getChatFull(n.chat_id));var r="updateUserTyping"==n._?n.user_id:-n.chat_id;s.forceUserOnline(n.user_id);for(var i=0;i<e.dialogs.length;i++)if(e.dialogs[i].peerID==r){e.dialogs[i].typing=n.user_id,a.cancel(I[r]),I[r]=a(function(){for(var t=0;t<e.dialogs.length;t++)e.dialogs[t].peerID==r&&e.dialogs[t].typing==n.user_id&&delete e.dialogs[t].typing},6e3);break}}}),e.$watchCollection("search",function(){e.dialogs=[],e.foundMessages=[],w=!!e.searchPeer,M++,_()}),Config.Mobile&&e.$watch("curDialog.peer",function(){e.$broadcast("ui_dialogs_update")}),e.importPhonebook=function(){p.openPhonebookImport()},e.setSearchPeer=function(t){e.searchPeer=t||!1,e.searchClear(),t?(e.dialogs=[],e.foundPeers=[],w=!0,e.toggleSearch()):w=!1,_(!0)},e.$on("contacts_update",function(){b&&v()}),e.$on("ui_dialogs_search_clear",e.searchClear),e.noMessages||e.$on("dialogs_search",function(t,n){e.search.query=n.query||"",e.toggleSearch()});var A}]).controller("AppImHistoryController",["$scope","$location","$timeout","$modal","$rootScope","toaster","_","MtpApiManager","AppUsersManager","AppChatsManager","AppMessagesManager","AppPeersManager","ApiUpdatesManager","PeersSelectService","IdleManager","StatusManager","NotificationsManager","ErrorService","GeoLocationManager",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,_,y){function v(t,n){G=r.selectedPeerID=t.peerID,e.historyFilter.mediaType=!1,p.getInputPeer(t.peer||e.curDialog.peer||""),C(),U(!0),n.peer&&n.peer==t.peer&&t.messageID?M():G?($(!0),A()):E()}function b(t){var n,a,r,i=-1,s=10;for(n=0;n<e.peerHistories.length;n++)if(e.peerHistories[n].peerID==t){i=n;break}return i>-1?a=e.peerHistories[i]:(a={peerID:t,messages:[],ids:[]},e.peerHistories.unshift(a),r=e.peerHistories.length-s,
r>0&&e.peerHistories.splice(s-1,r),a)}function w(t){var n;for(n=0;n<e.peerHistories.length;n++)if(e.peerHistories[n].peerID==t)return e.peerHistories[n];return!1}function k(t){var n;for(n=0;n<e.peerHistories.length;n++)if(e.peerHistories[n].peerID==t)return e.peerHistories.splice(n,1),!0;return!1}function $(t){var n=p.getPeer(G);return!n||n.deleted?(safeReplaceObject(e.state,{loaded:!1}),!1):(K=b(G),safeReplaceObject(e.historyPeer,{id:G,data:n}),o.getUserID().then(function(t){e.ownID=t}),void(t&&(e.historyState.typing.splice(0,e.historyState.typing.length),e.$broadcast("ui_peer_change"),e.$broadcast("ui_history_change"),safeReplaceObject(e.state,{loaded:!0,empty:!K.messages.length,mayBeHasMore:!0}),C(),S())))}function C(){var t=e.historyState.botActions;!G||G<0||!l.isBot(G)||e.historyFilter.mediaType||e.curDialog.messageID?e.historyState.botActions=!1:e.state.empty||K&&1==K.messages.length&&K.messages[0].action&&"messageActionBotIntro"==K.messages[0].action._?e.historyState.botActions="start":e.curDialog.startParam?e.historyState.botActions="param":e.historyState.botActions=!1,t!=e.historyState.botActions&&e.$broadcast("ui_panel_update")}function S(){var t,n=e.historyState.channelActions;if(G&&p.isChannel(G)&&(t=c.getChat(-G))){var a=c.hasRights(-G,"send");a?e.historyState.channelActions=!1:t.pFlags.left?e.historyState.channelActions="join":(e.historyState.channelActions||(e.historyState.channelActions="mute"),f.getPeerMuted(G).then(function(t){e.historyState.channelActions=t?"unmute":"mute"})),e.historyState.canReply=a,e.historyState.canDelete=a||t.pFlags.moderator}else e.historyState.channelActions=!1,e.historyState.canReply=!0,e.historyState.canDelete=!0;n!=e.historyState.channelActions&&e.$broadcast("ui_panel_update")}function M(){var t=w(G);if(t&&t.ids.indexOf(e.curDialog.messageID)!=-1){e.historyUnread={};var n=e.curDialog.messageID||0;e.$broadcast("messages_focus",n),e.$broadcast("ui_history_change_scroll",!0)}else A()}function x(){if(X){if(re)return void(le=!0);le=!1,e.state.lessActive=oe=!0;var t=ne,n=++se,a=0,r=20;d.getHistory(e.curDialog.peerID,Q,a,r).then(function(a){if(e.state.lessActive=oe=!1,t==ne&&n==se){var i,s;for(i=a.history.length-1;i>=0;i--)s=a.history[i],s>Q&&(K.messages.push(d.wrapForHistory(s)),K.ids.push(s));a.history.length?(Q=a.history.length>=r?a.history[0]:0,d.regroupWrappedHistory(K.messages,-r)&&e.$broadcast("messages_regroup"),delete e.state.empty,e.$broadcast("ui_history_append")):Q=0,e.historyState.skipped=X=Q>0,ie&&I()}})}}function I(){if(Z){if(oe)return void(ie=!0);ie=!1,e.state.moreActive=re=!0;var t=ne,n=++ae,a=e.historyFilter.mediaType&&{_:te[e.historyFilter.mediaType]},r=Config.Mobile?20:0,i=a?d.getSearch(e.curDialog.peerID,"",a,J,r):d.getHistory(e.curDialog.peerID,J,r);i.then(function(a){e.state.moreActive=re=!1,t==ne&&n==ae&&(angular.forEach(a.history,function(e){K.messages.unshift(d.wrapForHistory(e)),K.ids.unshift(e)}),Z=null===a.count||a.history.length&&K.messages.length<a.count,a.history.length&&(delete e.state.empty,J=a.history[a.history.length-1],e.$broadcast("ui_history_prepend"),d.regroupWrappedHistory(K.messages,a.history.length+1)&&e.$broadcast("messages_regroup")),le&&x())})}}function A(t){e.historyState.missedCount=0,Z=!1,e.historyState.skipped=X=!1,J=0,Q=0,K=b(G);var n=0,a=0;e.curDialog.messageID?(J=parseInt(e.curDialog.messageID),n=20,a=20):t&&(n=10),e.state.moreActive=re=!1,ie=!1,e.state.lessActive=oe=!1,le=!1;var i=K.messages.length;i&&(J||a)&&(i=0,K.messages=[],K.ids=[],e.state.empty=!0);var s=++ne,o=e.historyFilter.mediaType&&{_:te[e.historyFilter.mediaType]},l=o?d.getSearch(e.curDialog.peerID,"",o,J):d.getHistory(e.curDialog.peerID,J,n,a,i);e.state.mayBeHasMore=!0,l.then(function(t){if(s==ne){var n=t.history.length;Q=t.unreadSkip||J&&t.history.indexOf(J)>=a-1?t.history[0]:0,J=t.history[t.history.length-1],e.historyState.skipped=X=Q>0,Z=null===t.count||n&&n<t.count,$(),safeReplaceObject(e.state,{loaded:!0,empty:!n}),K.messages=[],K.ids=[],angular.forEach(t.history,function(n){var a=d.wrapForHistory(n);e.historyState.skipped&&delete a.pFlags.unread,t.unreadOffset&&(a.unreadAfter=!0),K.messages.push(a),K.ids.push(n)}),K.messages.reverse(),K.ids.reverse(),d.regroupWrappedHistory(K.messages)&&e.$broadcast("messages_regroup"),t.unreadOffset?e.historyUnreadAfter=t.history[t.unreadOffset-1]:e.historyUnreadAfter&&delete e.historyUnreadAfter,e.$broadcast("messages_unread_after");var i=e.curDialog.messageID||0;onContentLoaded(function(){e.$broadcast("messages_focus",i)}),e.$broadcast("ui_history_change"),r.idle.isIDLE||d.readHistory(e.curDialog.peerID),C(),S()}},function(){safeReplaceObject(e.state,{error:!0,loaded:!0})})}function E(){ne++,safeReplaceObject(e.historyPeer,{}),safeReplaceObject(e.state,{notSelected:!0}),K=!1,Z=!1,e.$broadcast("ui_history_change")}function T(){d.startBot(G,0,e.curDialog.startParam),e.curDialog.startParam=!1}function D(){delete e.curDialog.startParam}function P(){o.invokeApi("channels.joinChannel",{channel:c.getChannelInput(-G)}).then(function(e){u.processUpdateMessage(e)})}function R(e){f.getPeerSettings(G).then(function(t){t.mute_until=e?2e9:0,f.updatePeerSettings(G,t)})}function N(t,n){if(e.historyState.botActions||r.idle.afterFocus)return!1;var i=d.getMessage(t);if("messageService"==i._)return!1;if(!e.historyState.selectActions){if(getSelectedText())return!1;for(var s=n.target;s;)if(s instanceof SVGElement)s=s.parentNode;else{if(s.className&&s.className.indexOf("im_message_outer_wrap")!=-1){if(Config.Mobile)return!1;break}if(s.className&&s.className.indexOf("im_message_date")!=-1)return p.isBroadcast(G)?L(t):H(t),!1;if(Config.Mobile&&s.className&&s.className.indexOf("im_message_body")!=-1)break;if("A"==s.tagName||hasOnclick(s))return!1;s=s.parentNode}if(Config.Mobile)return e.historyState.canEdit=d.canEditMessage(t),a.open({templateUrl:templateUrl("message_actions_modal"),windowClass:"message_actions_modal_window",scope:e.$new()}).result.then(function(n){switch(n){case"reply":H(t);break;case"edit":q(t);break;case"delete":B(t);break;case"forward":j(t);break;case"select":e.historyState.selectActions="selected",e.$broadcast("ui_panel_update"),N(t)}}),!1}var o=n&&n.shiftKey;if(o&&e.$broadcast("ui_selection_clear"),e.selectedMsgs[t])ee=!1,delete e.selectedMsgs[t],e.selectedCount--,e.selectedCount||(e.historyState.selectActions=!1,e.$broadcast("ui_panel_update"));else{if(o){if(ee!=t){var l,c,u,m=ee>t;for(l=0;l<K.messages.length;l++)if(K.messages[l].mid==ee){c=l;break}for(l=c;K.messages[l]&&(u=K.messages[l].mid)!=t;)e.selectedMsgs[u]||(e.selectedMsgs[u]=!0,e.selectedCount++),l+=m?-1:1}}else ee=t;e.selectedMsgs[t]=!0,e.selectedCount++,e.historyState.selectActions||(e.historyState.selectActions="selected",e.$broadcast("ui_panel_update"))}1==e.selectedCount&&angular.forEach(e.selectedMsgs,function(t,n){e.historyState.canEdit=d.canEditMessage(n)}),e.$broadcast("messages_select")}function F(t,n){return e.historyState.canReply&&e.$broadcast("inline_bot_select",t),cancelEvent(n)}function U(t){e.selectedMsgs={},e.selectedCount=0,e.historyState.selectActions=!1,ee=!1,t||e.$broadcast("ui_panel_update"),e.$broadcast("messages_select")}function O(){_.confirm({type:"HISTORY_FLUSH"}).then(function(){d.flushHistory(e.curDialog.peerID,!0).then(function(){U()})})}function B(t){var n=[];if(t?n.push(t):e.selectedCount>0&&angular.forEach(e.selectedMsgs,function(e,t){n.push(t)}),n.length){for(var a=e.curDialog.peerID,r=a>0,i=p.isChannel(a),s=p.isBroadcast(a),o=p.isMegagroup(a),l=!i&&!r,c=!i,u=0;c&&u<n.length;u++){var m=n[u];d.canRevokeMessage(m)||(c=!1)}_.confirm({type:"MESSAGES_DELETE",count:n.length,revocable:c,isUser:r,peerID:a,isChannel:s,isSupergroup:o,isUsualGroup:l},{},{revoke:!1}).then(function(e){d.deleteMessages(n,e.revoke).then(function(){U()})})}}function L(e){m.selectPeers({canSend:!0,confirm_type:"FORWARD_PEER",shareLinkPromise:d.getMessageShareLink(e)}).then(function(t){angular.forEach(t,function(t){var n=p.getPeerID(t);d.forwardMessages(n,[e])});var n=i.pop({type:"info",body:s("confirm_modal_forward_to_peer_success"),bodyOutputType:"trustedHtml",clickHandler:function(){r.$broadcast("history_focus",{peerString:t[0]}),i.clear(n)},showCloseButton:!1})})}function j(t){var n=[];t?n.push(t):e.selectedCount>0&&angular.forEach(e.selectedMsgs,function(e,t){n.push(t)}),n.length&&m.selectPeer({canSend:!0}).then(function(e){U(),r.$broadcast("history_focus",{peerString:e,attachment:{_:"fwd_messages",id:n}})})}function H(t){t||1!=e.selectedCount||angular.forEach(e.selectedMsgs,function(e,n){t=n}),t&&(U(),e.$broadcast("reply_selected",t))}function q(t){t||1!=e.selectedCount||angular.forEach(e.selectedMsgs,function(e,n){t=n}),t&&(U(),e.$broadcast("edit_selected",t))}function V(){e.historyState.selectActions?U():(e.historyState.selectActions="selected",e.$broadcast("ui_panel_update"))}function z(t){return"search"==t?void r.$broadcast("history_search",e.curDialog.peerID):(e.historyFilter.mediaType=t||!1,e.curDialog.messageID=!1,K.messages=[],K.ids=[],e.state.empty=!0,void A())}function W(){e.historyFilter.mediaType?z():e.curDialog.messageID?r.$broadcast("history_focus",{peerString:e.curDialog.peer}):A(!0)}e.$watchCollection("curDialog",v),u.attach(),g.start(),h.start(),e.peerHistories=[],e.selectedMsgs={},e.selectedCount=0,e.historyState.selectActions=!1,e.historyState.botActions=!1,e.historyState.channelActions=!1,e.historyState.canDelete=!1,e.historyState.canReply=!1,e.historyState.missedCount=0,e.historyState.skipped=!1,e.state={},e.toggleMessage=N,e.selectedDelete=B,e.selectedForward=j,e.selectedReply=H,e.selectedEdit=q,e.selectedCancel=U,e.selectedFlush=O,e.selectInlineBot=F,e.startBot=T,e.cancelBot=D,e.joinChannel=P,e.togglePeerMuted=R,e.toggleEdit=V,e.toggleMedia=z,e.returnToRecent=W,e.$on("history_edit_toggle",V),e.$on("history_edit_flush",O),e.$on("history_media_toggle",function(e,t){z(t)}),e.$on("history_return_recent",W);var G,K=!1,Y=!1,Z=!1,X=!1,J=0,Q=0,ee=!1,te={photos:"inputMessagesFilterPhotos",video:"inputMessagesFilterVideo",documents:"inputMessagesFilterDocument",audio:"inputMessagesFilterVoice"},ne=0,ae=0,re=!1,ie=!1,se=0,oe=!1,le=!1;e.$on("history_update",angular.noop);var ce=!1;e.$on("stateSynchronized",function(){ce&&(ce==e.curDialog.peerID&&A(),ce=!1)}),e.$on("reply_button_press",function(t,n){var a=e.historyState.replyKeyboard;if(a){var r={replyToMsgID:G<0&&a.mid};switch(n._){case"keyboardButtonRequestPhone":_.confirm({type:"BOT_ACCESS_PHONE"}).then(function(){var e=l.getSelf();d.sendOther(G,{_:"inputMediaContact",phone_number:e.phone,first_name:e.first_name,last_name:e.last_name},r)});break;case"keyboardButtonRequestGeoLocation":_.confirm({type:"BOT_ACCESS_GEO"}).then(function(){return y.getPosition().then(function(e){d.sendOther(G,{_:"inputMediaGeoPoint",geo_point:{_:"inputGeoPoint",lat:e.lat,"long":e["long"]}},r)},function(e){_.alert(s("error_modal_bad_request_title_raw"),s("error_modal_gelocation_na_raw"))})});break;default:d.sendText(G,n.text,r)}}}),e.$on("history_reload",function(t,n){n==e.curDialog.peerID&&A()}),e.$on("history_forbidden",function(n,a){a==e.curDialog.peerID&&t.url("/im"),k(a)}),e.$on("dialog_migrate",function(t,n){if(n.migrateFrom==e.curDialog.peerID){var a=p.getPeerString(n.migrateTo);r.$broadcast("history_focus",{peerString:a})}k(n.migrateFrom)}),e.$on("notify_settings",function(t,n){n.peerID==e.curDialog.peerID&&S()}),e.$on("channel_settings",function(t,n){n.channelID==-e.curDialog.peerID&&S()});var de={};e.$on("history_append",function(t,a){var i=w(a.peerID);if(i){var s=a.peerID==e.curDialog.peerID;if(s){if(e.historyFilter.mediaType||e.historyState.skipped)return void(a.my?W():e.historyState.missedCount++);e.curDialog.messageID&&a.my&&W(),delete e.state.empty}var o=d.wrapForHistory(a.messageID);i.messages.push(o),i.ids.push(a.messageID),d.regroupWrappedHistory(i.messages,-3)&&e.$broadcast("messages_regroup"),s&&(e.historyState.typing.splice(0,e.historyState.typing.length),e.$broadcast("ui_history_append_new",{my:a.my,idleScroll:Y&&!o.pFlags.out&&r.idle.isIDLE}),a.my&&e.historyUnreadAfter&&(delete e.historyUnreadAfter,e.$broadcast("messages_unread_after")),r.idle.isIDLE?!o.pFlags.unread||o.pFlags.out||(i.messages[i.messages.length-2]||{}).pFlags.unread||(e.historyUnreadAfter=o.mid,Y=!0,e.$broadcast("messages_unread_after")):n(function(){d.readHistory(e.curDialog.peerID)}),C(),S())}}),e.$on("history_multiappend",function(t,a){var i=!1,s=!1,o=r.idle.isIDLE;angular.forEach(a,function(t,a){var r=w(a);if(r){var l=a==e.curDialog.peerID,c=r.messages.length,p=t.length;if(l){if(e.historyFilter.mediaType||e.historyState.skipped)return void(e.historyState.missedCount+=p);delete e.state.empty}if((!l||o)&&c>(p>10?10:100))return console.warn(dT(),"Drop too many messages",p,c,o,l,a),void(l?(Q=r.messages[c-1].mid,e.historyState.skipped=X=Q>0,X&&(ce=a,e.$broadcast("ui_history_append"))):k(a));var u,m,g=!1,h=!1,f=r.messages[r.messages.length-1],_=!f||!f.pFlags.unread;for(m=0;m<p;m++)u=t[m],u>0&&u<J||r.ids.indexOf(u)!==-1||(f=d.wrapForHistory(u),r.messages.push(f),r.ids.push(u),!h&&o&&(f.pFlags.unread&&!f.pFlags.out&&_?h=u:_=!f.pFlags.unread),!g&&f.pFlags.out&&(g=!0));d.regroupWrappedHistory(r.messages,-p-2)&&(i=!0),l&&(e.historyState.typing.length&&e.historyState.typing.splice(0,e.historyState.typing.length),e.$broadcast("ui_history_append_new",{idleScroll:Y&&!g&&o}),o?h&&(e.historyUnreadAfter=h,Y=!0,s=!0):n(function(){d.readHistory(e.curDialog.peerID)}),C(),S())}}),i&&e.$broadcast("messages_regroup"),s&&e.$broadcast("messages_unread_after")}),e.$on("history_delete",function(t,n){var a=w(n.peerID);if(a){var r,i=[];for(r=0;r<a.messages.length;r++)n.msgs[a.messages[r].mid]||i.push(a.messages[r]);a.messages=i,d.regroupWrappedHistory(a.messages),e.$broadcast("messages_regroup"),n.peerID==e.curDialog.peerID&&(e.state.empty=!i.length,C())}}),e.$on("dialog_flush",function(t,n){var a=w(n.peerID);a&&(a.messages=[],a.ids=[],n.peerID==e.curDialog.peerID&&(e.state.empty=!0,C()))}),e.$on("history_focus",function(t,n){e.historyFilter.mediaType&&z()}),e.$on("apiUpdate",function(t,a){switch(a._){case"updateUserTyping":case"updateChatUserTyping":l.forceUserOnline(a.user_id),l.hasUser(a.user_id)&&e.curDialog.peerID==("updateUserTyping"==a._?a.user_id:-a.chat_id)&&(e.historyState.typing.indexOf(a.user_id)==-1&&e.historyState.typing.push(a.user_id),n.cancel(de[a.user_id]),de[a.user_id]=n(function(){var t=e.historyState.typing.indexOf(a.user_id);t!==-1&&e.historyState.typing.splice(t,1)},6e3))}}),e.$on("history_need_less",x),e.$on("history_need_more",I),r.$watch("idle.isIDLE",function(t){t||!e.curDialog||!e.curDialog.peerID||e.historyFilter.mediaType||e.historyState.skipped||d.readHistory(e.curDialog.peerID),t||(Y=!1,ce&&ce==e.curDialog.peerID&&(A(),ce=!1))})}]).controller("AppImPanelController",["$scope",function(e){e.$on("user_update",angular.noop)}]).controller("AppImSendController",["$rootScope","$q","$scope","$timeout","MtpApiManager","Storage","AppProfileManager","AppChatsManager","AppUsersManager","AppPeersManager","AppDocsManager","AppStickersManager","AppMessagesManager","AppInlineBotsManager","MtpApiFileManager","DraftsManager","RichTextProcessor",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f){function _(e){return n.$broadcast("ui_message_before_send"),a(function(){q?v():y()}),cancelEvent(e)}function y(){var e=n.draftMessage.text;if(angular.isString(e)&&e.length>0){e=f.parseEmojis(e);var t={replyToMsgID:n.draftMessage.replyToMsgID,clearDraft:!0};do u.sendText(n.curDialog.peerID,e.substr(0,4096),t),e=e.substr(4096),t=angular.copy(t),delete t.clearDraft;while(e.length)}E(),H==n.curDialog.peer&&(H=!1),k(),n.$broadcast("ui_message_send")}function v(){var e=n.draftMessage.text;e=f.parseEmojis(e),u.editMessage(q,e).then(function(){q=!1,k(),n.$broadcast("ui_message_send"),a(function(){n.$broadcast("ui_peer_reply")})})}function b(){var e=n.curDialog.peerID;if(!e)return safeReplaceObject(n.mentions,{}),void n.$broadcast("mentions_update");var a,r=[],i=SearchIndexManager.createIndex(),o=m.getPopularBots().then(function(e){var t=[];return angular.forEach(e,function(e){t.push(e.id)}),t});a=e<0?s.getChatFull(-e).then(function(e){var t=(e.participants||{}).participants||[],n=[];return angular.forEach(t,function(e){n.push(e.user_id)}),n}):t.when([]),t.all({pop:o,chat:a}).then(function(e){var t={},a=e.pop.concat(e.chat);angular.forEach(a,function(e){t[e]||(t[e]=!0,r.push(l.getUser(e)),SearchIndexManager.indexObject(e,l.getUserSearchText(e),i))}),safeReplaceObject(n.mentions,{users:r,index:i}),n.$broadcast("mentions_update")})}function w(){var e=n.curDialog.peerID;return e?void s.getPeerBots(e).then(function(t){if(!t.length)return safeReplaceObject(n.commands,{}),void n.$broadcast("mentions_update");var a=e<0,r=[],i=SearchIndexManager.createIndex();angular.forEach(t,function(e){var t="";if(a){var n=l.getUser(e.id);n&&n.username&&(t+="@"+n.username)}var s=l.getUserSearchText(e.id);angular.forEach(e.commands,function(n,a){var o="/"+a+t;r.push({botID:e.id,value:o,rDescription:f.wrapRichText(n,{noLinks:!0,noLineBreaks:!0})}),SearchIndexManager.indexObject(o,s+" "+a+" "+n,i)})}),safeReplaceObject(n.commands,{list:r,index:i}),n.$broadcast("mentions_update")}):(safeReplaceObject(n.commands,{}),void n.$broadcast("mentions_update"))}function k(e,t){var r=t?c.getPeerID(t):0;if(e!=t&&r)return n.$broadcast("ui_message_before_send"),void a(function(){h.syncDraft(r),k()});if(q=!1,b(),w(),I(),D(),delete n.draftMessage.inlineProgress,n.$broadcast("inline_results",!1),H){if(H==n.curDialog.peer)return n.draftMessage.isBroadcast=c.isBroadcast(n.curDialog.peerID),void n.$broadcast("ui_peer_draft");H=!1}A(),$()}function $(){if(n.curDialog.peerID){var e;e=q?u.getMessageEditData(q).then(function(e){return e.replyToMsgID=q,e},function(e){return console.warn(e),q=!1,$(),t.reject()}):h.getDraft(n.curDialog.peerID),e.then(function(e){if(n.draftMessage.type=q?"edit":"new",n.draftMessage.text=e?e.text:"",n.draftMessage.isBroadcast=c.isBroadcast(n.curDialog.peerID),e.replyToMsgID){var t=e.replyToMsgID;S(t)}else I();n.$broadcast("ui_peer_draft")})}else n.draftMessage.text="",n.$broadcast("ui_peer_draft")}function C(e,t){if(console.log(dT(),"apply draft attach",t),t&&t._)if("share_url"==t._){var r=t.url,i=t.text||" ";H=n.curDialog.peer,a(function(){n.draftMessage.text=r+"\n"+i,n.$broadcast("ui_peer_draft",{customSelection:[r+"\n",i,""]})},1e3)}else if("fwd_messages"==t._)H=n.curDialog.peer,a(function(){n.draftMessage.fwdMessages=t.id,n.$broadcast("ui_peer_reply")},100);else if("inline_query"==t._){var s=t.mention,o=t.query;H=n.curDialog.peer,a(function(){n.draftMessage.text=s+" "+o,n.$broadcast("ui_peer_draft",{customSelection:[s+" "+o,"",""]})},1e3)}}function S(e,t){return q&&t?void I():(n.draftMessage.replyToMsgID=e,n.$broadcast("ui_peer_reply"),j=!1,void(t&&!q&&h.changeDraft(n.curDialog.peerID,{text:n.draftMessage.text,replyToMsgID:e})))}function M(e){q=e,$()}function x(){return!(q||!n.curDialog.peerID)&&void u.getHistory(n.curDialog.peerID).then(function(e){for(var t,n=0;n<e.history.length;n++)if(t=e.history[n],u.canEditMessage(t)){M(t);break}})}function I(e){if(q)return q=!1,void $();var t=n.draftMessage.replyToMsgID;t&&n.historyState.replyKeyboard&&n.historyState.replyKeyboard.mid==t&&!n.historyState.replyKeyboard.pFlags.hidden&&(n.historyState.replyKeyboard.pFlags.hidden=!0,n.$broadcast("ui_keyboard_update")),delete n.draftMessage.replyToMsgID,n.$broadcast("ui_peer_reply"),e&&h.changeDraft(n.curDialog.peerID,{text:n.draftMessage.text})}function A(){n.draftMessage.fwdMessages&&n.draftMessage.fwdMessages.length&&(delete n.draftMessage.fwdMessages,n.$broadcast("ui_peer_reply"),H==n.curDialog.peer&&(H=!1))}function E(){if(n.draftMessage.fwdMessages&&n.draftMessage.fwdMessages.length){var e=n.draftMessage.fwdMessages.slice();A(),setZeroTimeout(function(){u.forwardMessages(n.curDialog.peerID,e)})}}function T(e){return n.draftMessage.text&&"/"==n.draftMessage.text.charAt(0)?n.draftMessage.text="":n.draftMessage.text="/",n.$broadcast("ui_peer_draft",{focus:!0}),cancelEvent(e)}function D(){var e=n.curDialog.peerID,t=u.getReplyKeyboard(e);t&&(t=u.wrapReplyMarkup(t)),n.historyState.replyKeyboard=t;var a=t&&!t.pFlags.hidden&&("replyKeyboardForceReply"==t._||"replyKeyboardMarkup"==t._&&e<0);a?(S(t.mid),j=!0):j&&I();var r=t&&!t.pFlags.hidden&&"replyKeyboardMarkup"==t._;n.$broadcast("ui_keyboard_update",{enabled:r}),n.$emit("ui_panel_update",{blur:r})}function P(e){var t=n.historyState.replyKeyboard;return t&&(t.pFlags.hidden=!t.pFlags.hidden,D()),cancelEvent(e)}function R(e,t,a){if((""!==e||""!==t)&&(e&&e.length&&(n.historyFilter.mediaType||n.historyState.skipped||u.readHistory(n.curDialog.peerID)),n.curDialog.peerID)){if(!q){var r=n.draftMessage.replyToMsgID;r&&n.historyState.replyKeyboard&&n.historyState.replyKeyboard.mid==r&&(r=0),h.changeDraft(n.curDialog.peerID,{text:e,replyToMsgID:r})}N(e)}}function N(e){W&&a.cancel(W);var r=++K;if(!e||!e.length)return delete n.draftMessage.inlineProgress,void n.$broadcast("inline_results",!1);var i=e.match(V);if(!i){if(i=e.match(z)){var s=EmojiHelper.shortcuts[i[1]];if(!s)return delete n.draftMessage.inlineProgress,void n.$broadcast("inline_results",!1);n.draftMessage.inlineProgress=!0,p.searchStickers(s).then(function(t){var a=[];angular.forEach(t,function(e){a.push({_:"botInlineMediaResult",qID:"_sticker_"+e.id,pFlags:{sticker:!0},id:e.id,type:"sticker",document:e,send_message:{_:"botInlineMessageMediaAuto"}})});var r={pFlags:{gallery:!0},query_id:0,results:a};r.text=e,n.$broadcast("inline_results",r),delete n.draftMessage.inlineProgress})}return delete n.draftMessage.inlineProgress,void n.$broadcast("inline_results",!1)}var o,l=i[1];n.draftMessage.inlineProgress=!0,o=G&&G.username==l?t.when(G):m.resolveInlineMention(l),o.then(function(t){r==K&&(G=t,n.$broadcast("inline_placeholder",{prefix:"@"+l+i[2],placeholder:t.placeholder}),W&&a.cancel(W),W=a(function(){var a=f.parseEmojis(i[3]);m.getInlineResults(n.curDialog.peerID,t.id,a,t.geo,"").then(function(t){W=!1,r==K&&(t.text=e,n.$broadcast("inline_results",t),delete n.draftMessage.inlineProgress)},function(){n.$broadcast("inline_results",!1),delete n.draftMessage.inlineProgress})},500))},function(e){n.$broadcast("inline_results",!1),delete n.draftMessage.inlineProgress})}function F(){return!c.isBroadcast(n.curDialog.peerID)&&void r.invokeApi("messages.setTyping",{peer:c.getInputPeerByID(n.curDialog.peerID),action:{_:"sendMessageTypingAction"}})["catch"](function(e){e.handled=!0})}function U(e){if(angular.isArray(e)&&e.length){var t={replyToMsgID:n.draftMessage.replyToMsgID,isMedia:n.draftMessage.isMedia};delete n.draftMessage.replyToMsgID,e[0].lastModified&&e.sort(function(e,t){return e.lastModified-t.lastModified});for(var a=0;a<e.length;a++)u.sendFile(n.curDialog.peerID,e[a],t),n.$broadcast("ui_message_send");E()}}function O(e){if(e){var t=d.getDoc(e);if(t.id&&t.access_hash){var a={_:"inputMediaDocument",id:{_:"inputDocument",id:t.id,access_hash:t.access_hash}},r={replyToMsgID:n.draftMessage.replyToMsgID};u.sendOther(n.curDialog.peerID,a,r),n.$broadcast("ui_message_send"),E(),I(!0)}delete n.draftMessage.sticker}}function B(e){e&&(u.sendText(n.curDialog.peerID,e,{clearDraft:!0}),H==n.curDialog.peer&&(H=!1),E(),k(),delete n.draftMessage.sticker,delete n.draftMessage.text,delete n.draftMessage.command,delete n.draftMessage.inlineResultID,n.$broadcast("ui_message_send"),n.$broadcast("ui_peer_draft"))}function L(e){if(e){if("_switch_pm_"==e.substr(0,11)){var t=G.id,a=e.substr(11);return m.switchToPM(n.curDialog.peerID,t,a)}var r={replyToMsgID:n.draftMessage.replyToMsgID,clearDraft:!0};if("_sticker_"==e.substr(0,9)){var i=e.substr(9),s=d.getDoc(i);if(s.id&&s.access_hash){var o={_:"inputMediaDocument",id:{_:"inputDocument",id:s.id,access_hash:s.access_hash}};u.sendOther(n.curDialog.peerID,o,r)}}else m.sendInlineResult(n.curDialog.peerID,e,r);H==n.curDialog.peer&&(H=!1),E(),k(),delete n.draftMessage.sticker,delete n.draftMessage.text,delete n.draftMessage.command,delete n.draftMessage.inlineResultID,n.$broadcast("ui_message_send"),n.$broadcast("ui_peer_draft")}}n.$watch("curDialog.peer",k),n.$on("user_update",angular.noop),n.$on("peer_draft_attachment",C),n.$on("reply_selected",function(e,t){S(t,!0)}),n.$on("edit_selected",function(e,t){M(t,!0)}),n.$on("ui_typing",F),n.draftMessage={text:"",send:_,replyClear:I,fwdsClear:A,type:"new"},n.mentions={},n.commands={},n.$watch("draftMessage.text",R),n.$watch("draftMessage.files",U),n.$watch("draftMessage.sticker",O),n.$watch("draftMessage.command",B),n.$watch("draftMessage.inlineResultID",L),n.$on("history_reply_markup",function(e,t){t.peerID==n.curDialog.peerID&&D()}),n.$on("inline_bot_select",function(e,t){var a=l.getUser(t);n.draftMessage.text="@"+a.username+" ",n.$broadcast("ui_peer_draft",{focus:!0})}),n.$on("inline_bots_popular",b),n.$on("last_message_edit",x),n.replyKeyboardToggle=P,n.toggleSlash=T,e.$watch("idle.isIDLE",function(t){e.idle.initial||t&&n.curDialog.peerID&&(n.$broadcast("ui_message_before_send"),a(function(){h.syncDraft(n.curDialog.peerID)}))}),n.$on("draft_updated",function(t,a){a.peerID!=n.curDialog.peerID||a.local||n.draftMessage.text&&!e.idle.isIDLE||$()});var j=!1,H=!1,q=!1,V=/^@([a-zA-Z\d_]{1,32})( | )([\s\S]*)$/,z=/^\s*:(\S+):\s*$/,W=!1,G=!1,K=0}]).controller("AppLangSelectController",["$scope","_","Storage","ErrorService","AppRuntimeManager",function(e,t,n,a,r){e.supportedLocales=Config.I18n.supported,e.langNames=Config.I18n.languages,e.curLocale=Config.I18n.locale,e.form={locale:Config.I18n.locale},e.localeSelect=function(t){t=t||e.form.locale,e.curLocale!==t&&a.confirm({type:"APPLY_LANG_WITH_RELOAD"}).then(function(){n.set({i18n_locale:t}).then(function(){r.reload()})},function(){e.form.locale=e.curLocale})}}]).controller("AppFooterController",["$scope","LayoutSwitchService",function(e,t){e.switchLayout=function(e){t.switchLayout(e)}}]).controller("PhotoModalController",["$q","$scope","$rootScope","$modalInstance","AppPhotosManager","AppMessagesManager","AppPeersManager","AppWebPagesManager","PeersSelectService","ErrorService",function(e,t,n,a,r,i,s,o,l,c){function d(e){var n=e<0?[-1,-2]:[1,2],a=_.indexOf(t.messageID);angular.forEach(n,function(e){var t=_[a+e];if(void 0!==t&&void 0===y[t]){y[t]=!0;var n=i.getMessage(t),s=n.media.photo.id;r.preloadPhoto(s)}})}function p(e){var n=_.indexOf(t.messageID);b?e&&(t.count=Math.max(e,_.length)):t.count=_.length,t.pos=t.count-n,t.nav.hasNext=n>0,t.nav.hasPrev=b||n<_.length-1,t.canForward=t.canDelete=t.messageID>0}function u(n){var a=_.indexOf(t.messageID),s=a>=0?a+n:0,o=++w,l=s>=_.length?m():e.when();l.then(function(){if(o==w){var e=_[s],a=i.getMessage(e),l=a&&a.media&&(a.media.photo&&a.media.photo.id||a.media.webpage&&a.media.webpage.photo&&a.media.webpage.photo.id);if(!l)return void console.error("Invalid photo message",s,_,e,a);t.messageID=e,t.photoID=l,t.photo=r.wrapForFull(t.photoID),y[t.messageID]=!0,p(),n>0&&b&&_.indexOf(e)+1>=_.length?m():d(n)}})}function m(){return k?k:k=i.getSearch(g,h,f,v).then(function(t){return t.history.length?(v=t.history[t.history.length-1],_=_.concat(t.history),b=_.length<t.count):b=!1,p(t.count),k=!1,t.history.length?e.reject():void d(1)})}if(t.photo=r.wrapForFull(t.photoID),t.nav={},t.download=function(){r.downloadPhoto(t.photoID)},t.messageID){t.forward=function(){var e=t.messageID;l.selectPeer({canSend:!0}).then(function(t){n.$broadcast("history_focus",{peerString:t,attachment:{_:"fwd_messages",id:[e]}})})},t.goToMessage=function(){var e=t.messageID,r=i.getMessagePeer(i.getMessage(e)),o=s.getPeerString(r);a.dismiss(),n.$broadcast("history_focus",{peerString:o,messageID:e})},t["delete"]=function(){var e=t.messageID;c.confirm({type:"MESSAGE_DELETE"}).then(function(){i.deleteMessages([e])})};var g=i.getMessagePeer(i.getMessage(t.messageID)),h=(s.getInputPeerByID(g),""),f={_:"inputMessagesFilterPhotos"},_=[t.messageID],y={},v=t.messageID,b=!0;if(y[t.messageID]=!0,p(),t.nav.next=function(){return!!t.nav.hasNext&&void u(-1)},t.nav.prev=function(){return!!t.nav.hasPrev&&void u(1)},t.$on("history_delete",function(e,n){if(n.peerID==g){if(n.msgs[t.messageID])if(t.nav.hasNext)t.nav.next();else{if(!t.nav.hasPrev)return a.dismiss();t.nav.prev()}for(var r=[],i=0;i<_.length;i++)n.msgs[_[i]]||r.push(_[i]);_=r}}),t.webpageID)return void(t.webpage=o.wrapForHistory(t.webpageID));i.getSearch(g,h,f,0,1e3).then(function(e){e.history.indexOf(t.messageID)>=0&&(_=e.history,v=_[_.length-1],p(),d(1)),m()},m);var w=0,k=!1}}]).controller("UserpicModalController",["$q","$scope","$rootScope","$modalInstance","MtpApiManager","AppPhotosManager","AppUsersManager","AppPeersManager","AppMessagesManager","ApiUpdatesManager","PeersSelectService","ErrorService",function(e,t,n,a,r,i,s,o,l,c,d,p){function u(n,a){var r=f.indexOf(t.photoID),s=r>=0?r+n:0,o=++w,l=s>=f.length?g():e.when();l.then(function(){if(o==w){t.photoID=f[s],t.photo=i.wrapForFull(t.photoID),t.photo.thumb={location:i.choosePhotoSize(t.photo,0,0).location};var e;a&&(f.splice(r,1),e=t.count-1),h(e),y[t.photoID]=!0,h(),n>0&&b&&f.indexOf(t.photoID)+1>=f.length?g():m(n)}})}function m(e){var n=e<0?[-1,-2]:[1,2],a=f.indexOf(t.photoID);angular.forEach(n,function(e){var t=f[a+e];void 0!==t&&void 0===y[t]&&(y[t]=!0,i.preloadPhoto(t))})}function g(){return k?k:k=i.getUserPhotos(t.userID,_).then(function(t){return t.photos.length?(_=t.photos[t.photos.length-1],f=f.concat(t.photos),b=f.length<t.count):b=!1,h(t.count),k=!1,t.photos.length?e.reject():void m(1)})}function h(e){var n=f.indexOf(t.photoID);b?e&&(t.count=Math.max(e,f.length)):t.count=f.length,t.pos=t.count-n,t.nav.hasNext=n>0,t.nav.hasPrev=b||n<f.length-1,t.canDelete=t.photo.user_id==v}t.photo=i.wrapForFull(t.photoID),t.photo.thumb={location:i.choosePhotoSize(t.photo,0,0).location},t.nav={},t.canForward=!0;var f=[t.photoID],_=t.photoID,y={},v=0,b=!0;h(),i.getUserPhotos(t.userID,0,1e3).then(function(e){e.photos.indexOf(t.photoID)>=0&&(f=e.photos,_=f[f.length-1]),b=f.length<e.count,h()}),r.getUserID().then(function(e){v=e,t.canDelete=t.photo.user_id==v});var w=0,k=!1;t.nav.next=function(){return!!t.nav.hasNext&&void u(-1)},t.nav.prev=function(){return!!t.nav.hasPrev&&void u(1)},t.forward=function(){d.selectPeer({confirm_type:"FORWARD_PEER",canSend:!0}).then(function(e){var a=o.getPeerID(e);l.sendOther(a,{_:"inputMediaPhoto",id:{_:"inputPhoto",id:t.photoID,access_hash:t.photo.access_hash}}),n.$broadcast("history_focus",{peerString:e})})},t["delete"]=function(){var e=t.photoID,n=s.getUser(v),i=function(){return t.nav.hasNext||t.nav.hasPrev?void u(t.nav.hasNext?-1:1,!0):a.dismiss()};p.confirm({type:"PHOTO_DELETE"}).then(function(){n&&n.photo&&n.photo.photo_id==e?r.invokeApi("photos.updateProfilePhoto",{id:{_:"inputPhotoEmpty"}}).then(function(e){c.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:v,date:tsNow(!0),photo:e,previous:!0}}),i()}):r.invokeApi("photos.deletePhotos",{id:[{_:"inputPhoto",id:e,access_hash:0}]}).then(i)})},t.download=function(){i.downloadPhoto(t.photoID)}}]).controller("ChatpicModalController",["$q","$scope","$rootScope","$modalInstance","MtpApiManager","AppPhotosManager","AppChatsManager","AppPeersManager","AppMessagesManager","ApiUpdatesManager","PeersSelectService","ErrorService",function(e,t,n,a,r,i,s,o,l,c,d,p){t.photo=i.wrapForFull(t.photoID),t.photo.thumb={location:i.choosePhotoSize(t.photo,0,0).location};var u=s.getChat(t.chatID),m=s.isChannel(t.chatID);t.canForward=!0,t.canDelete=!m||u.pFlags.creator,t.forward=function(){d.selectPeer({confirm_type:"FORWARD_PEER",canSend:!0}).then(function(e){var a=o.getPeerID(e);l.sendOther(a,{_:"inputMediaPhoto",id:{_:"inputPhoto",id:t.photoID,access_hash:t.photo.access_hash}}),n.$broadcast("history_focus",{peerString:e})})},t["delete"]=function(){p.confirm({type:"PHOTO_DELETE"}).then(function(){t.photo.updating=!0;var e;e=s.isChannel(t.chatID)?r.invokeApi("channels.editPhoto",{channel:s.getChannelInput(t.chatID),photo:{_:"inputChatPhotoEmpty"}}):r.invokeApi("messages.editChatPhoto",{chat_id:s.getChatInput(t.chatID),photo:{_:"inputChatPhotoEmpty"}}),e.then(function(e){c.processUpdateMessage(e),
a.dismiss(),n.$broadcast("history_focus",{peerString:s.getChatString(t.chatID)})})["finally"](function(){t.photo.updating=!1})})},t.download=function(){i.downloadPhoto(t.photoID)}}]).controller("VideoModalController",["$scope","$rootScope","$modalInstance","PeersSelectService","AppMessagesManager","AppDocsManager","AppPeersManager","ErrorService",function(e,t,n,a,r,i,s,o){e.video=i.wrapVideoForFull(e.docID),e.progress={enabled:!1},e.player={},e.forward=function(){var n=e.messageID;a.selectPeer({canSend:!0}).then(function(e){t.$broadcast("history_focus",{peerString:e,attachment:{_:"fwd_messages",id:[n]}})})},e["delete"]=function(){var t=e.messageID;o.confirm({type:"MESSAGE_DELETE"}).then(function(){r.deleteMessages([t])})},e.download=function(){i.saveDocFile(e.docID)},e.$on("history_delete",function(t,a){a&&a.msgs&&a.msgs[e.messageID]&&n.dismiss()})}]).controller("DocumentModalController",["$scope","$rootScope","$modalInstance","PeersSelectService","AppMessagesManager","AppDocsManager","AppPeersManager","ErrorService",function(e,t,n,a,r,i,s,o){e.document=i.wrapForHistory(e.docID),e.forward=function(){var n=e.messageID;a.selectPeer({canSend:!0}).then(function(e){t.$broadcast("history_focus",{peerString:e,attachment:{_:"fwd_messages",id:[n]}})})},e["delete"]=function(){var t=e.messageID;o.confirm({type:"MESSAGE_DELETE"}).then(function(){r.deleteMessages([t])})},e.download=function(){i.saveDocFile(e.docID)},e.$on("history_delete",function(t,a){a&&a.msgs&&a.msgs[e.messageID]&&n.dismiss()})}]).controller("EmbedModalController",["$q","$scope","$rootScope","$modalInstance","AppPhotosManager","AppMessagesManager","AppPeersManager","AppWebPagesManager","PeersSelectService","ErrorService",function(e,t,n,a,r,i,s,o,l,c){t.webpage=o.wrapForFull(t.webpageID),t.nav={},t.forward=function(){var e=t.messageID;l.selectPeer({canSend:!0}).then(function(t){n.$broadcast("history_focus",{peerString:t,attachment:{_:"fwd_messages",id:[e]}})})},t["delete"]=function(){var e=t.messageID;c.confirm({type:"MESSAGE_DELETE"}).then(function(){i.deleteMessages([e])})}}]).controller("GameModalController",["$q","$scope","$rootScope","$modalInstance","AppPhotosManager","AppMessagesManager","AppPeersManager","AppGamesManager","PeersSelectService","ErrorService",function(e,t,n,a,r,i,s,o,l,c){t.game=o.wrapForFull(t.gameID,t.messageID,t.embedUrl);var d=t.messageID,p=i.getMessage(d);t.botID=p.viaBotID||p.fromID,t.nav={},t.forward=function(e){l.selectPeer({canSend:!0,confirm_type:"INVITE_TO_GAME"}).then(function(t){var a=s.getPeerID(t);i.forwardMessages(a,[d],{withMyScore:e}).then(function(){n.$broadcast("history_focus",{peerString:t})})})},t.$on("game_frame_event",function(e,n){"share_score"==n.eventType&&t.forward(!0)})}]).controller("UserModalController",["$scope","$location","$rootScope","$modalInstance","AppProfileManager","$modal","AppUsersManager","MtpApiManager","NotificationsManager","AppPhotosManager","AppMessagesManager","AppPeersManager","PeersSelectService","ErrorService",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m){var g=s.getUserString(e.userID);e.user=s.getUser(e.userID),e.blocked=!1,e.settings={notifications:!0},r.getProfile(e.userID,e.override).then(function(t){e.blocked=t.pFlags.blocked,e.bot_info=t.bot_info,e.rAbout=t.rAbout,l.getPeerMuted(e.userID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t!==n&&void l.getPeerSettings(e.userID).then(function(n){n.mute_until=t?0:2e9,l.updatePeerSettings(e.userID,n)})})})}),e.goToHistory=function(){n.$broadcast("history_focus",{peerString:g})},e.flushHistory=function(n){m.confirm({type:n?"HISTORY_FLUSH":"HISTORY_FLUSH_AND_DELETE"}).then(function(){d.flushHistory(e.userID,n).then(function(){n?e.goToHistory():(a.close(),t.url("/im"))})})},e.importContact=function(t){var a=n.$new();a.importContact={phone:e.user.phone,first_name:e.user.first_name,last_name:e.user.last_name},i.open({templateUrl:templateUrl(t?"edit_contact_modal":"import_contact_modal"),controller:"ImportContactModalController",windowClass:"md_simple_modal_window mobile_modal",scope:a}).result.then(function(t){e.userID==t&&(e.user=s.getUser(e.userID))})},e.deleteContact=function(){s.deleteContacts([e.userID]).then(function(){e.user=s.getUser(e.userID)})},e.inviteToGroup=function(){u.selectPeer({confirm_type:"INVITE_TO_GROUP",noUsers:!0}).then(function(t){var a=p.getPeerID(t),r=a<0?-a:0;d.startBot(e.user.id,r).then(function(){n.$broadcast("history_focus",{peerString:t})})})},e.sendCommand=function(t){d.sendText(e.userID,"/"+t),n.$broadcast("history_focus",{peerString:g})},e.toggleBlock=function(t){o.invokeApi(t?"contacts.block":"contacts.unblock",{id:s.getUserInput(e.userID)}).then(function(){e.blocked=t})},e.shareContact=function(){u.selectPeer({confirm_type:"SHARE_CONTACT_PEER",canSend:!0}).then(function(t){var a=p.getPeerID(t);d.sendOther(a,{_:"inputMediaContact",phone_number:e.user.phone,first_name:e.user.first_name,last_name:e.user.last_name,user_id:e.user.id}),n.$broadcast("history_focus",{peerString:t})})}}]).controller("ChatModalController",["$scope","$modalInstance","$location","$timeout","$rootScope","$modal","AppUsersManager","AppChatsManager","AppProfileManager","AppPhotosManager","MtpApiManager","MtpApiFileManager","NotificationsManager","AppMessagesManager","AppPeersManager","ApiUpdatesManager","ContactsSelectService","ErrorService",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,_){function y(t){h.processUpdateMessage(t),r.$broadcast("history_focus",{peerString:e.chatFull.peerString})}function v(t){t&&t.type&&0===t.type.indexOf("image")&&(e.photo.updating=!0,p.uploadFile(t).then(function(t){return d.invokeApi("messages.editChatPhoto",{chat_id:o.getChatInput(e.chatID),photo:{_:"inputChatUploadedPhoto",file:t}}).then(y)})["finally"](function(){e.photo.updating=!1}))}e.chatFull=o.wrapForFull(e.chatID,{}),e.settings={notifications:!0},e.maxParticipants=200,l.getChatFull(e.chatID).then(function(t){e.chatFull=o.wrapForFull(e.chatID,t),e.$broadcast("ui_height"),e.needMigrate=e.chatFull&&e.chatFull.participants&&e.chatFull.participants.participants&&e.chatFull.participants.participants.length>=200,(Config.Modes.test||Config.Modes.debug)&&(e.needMigrate=!0),u.savePeerSettings(-e.chatID,t.notify_settings),u.getPeerMuted(-e.chatID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t!==n&&void u.getPeerSettings(-e.chatID).then(function(n){t?n.mute_until=0:n.mute_until=2e9,u.updatePeerSettings(-e.chatID,n)})})})}),e.leaveGroup=function(){_.confirm({type:"HISTORY_LEAVE_AND_FLUSH"}).then(function(){d.invokeApi("messages.deleteChatUser",{chat_id:o.getChatInput(e.chatID),user_id:{_:"inputUserSelf"}}).then(function(a){h.processUpdateMessage(a),m.flushHistory(-e.chatID).then(function(){t.close(),n.url("/im")})})})},e.inviteToGroup=function(){var t=[];angular.forEach(e.chatFull.participants.participants,function(e){t.push(e.user_id)}),f.selectContacts({disabled:t}).then(function(t){angular.forEach(t,function(t){d.invokeApi("messages.addChatUser",{chat_id:o.getChatInput(e.chatID),user_id:s.getUserInput(t),fwd_limit:100}).then(function(e){h.processUpdateMessage(e)})}),r.$broadcast("history_focus",{peerString:e.chatFull.peerString})})},e.migrateToSuperGroup=function(){_.confirm({type:"SUPERGROUP_MIGRATE"}).then(function(){d.invokeApi("messages.migrateChat",{chat_id:o.getChatInput(e.chatID)}).then(y)})},e.kickFromGroup=function(t){d.invokeApi("messages.deleteChatUser",{chat_id:o.getChatInput(e.chatID),user_id:s.getUserInput(t)}).then(y)},e.flushHistory=function(a){_.confirm({type:a?"HISTORY_FLUSH":"HISTORY_FLUSH_AND_DELETE"}).then(function(){m.flushHistory(-e.chatID,a).then(function(){a?r.$broadcast("history_focus",{peerString:e.chatFull.peerString}):(t.close(),n.url("/im"))})})},e.inviteViaLink=function(){var t=r.$new();t.chatID=e.chatID,i.open({templateUrl:templateUrl("chat_invite_link_modal"),controller:"ChatInviteLinkModalController",scope:t,windowClass:"md_simple_modal_window"})},e.photo={},e.$watch("photo.file",v),e.deletePhoto=function(){e.photo.updating=!0,d.invokeApi("messages.editChatPhoto",{chat_id:o.getChatInput(e.chatID),photo:{_:"inputChatPhotoEmpty"}}).then(y)["finally"](function(){e.photo.updating=!1})},e.editTitle=function(){var t=r.$new();t.chatID=e.chatID,i.open({templateUrl:templateUrl("chat_edit_modal"),controller:"ChatEditModalController",scope:t,windowClass:"md_simple_modal_window mobile_modal"})},e.hasRights=function(t){return o.hasRights(e.chatID,t)}}]).controller("ChannelModalController",["$scope","$timeout","$rootScope","$modal","AppUsersManager","AppChatsManager","AppProfileManager","AppPhotosManager","MtpApiManager","MtpApiFileManager","NotificationsManager","AppMessagesManager","AppPeersManager","ApiUpdatesManager","ContactsSelectService","ErrorService",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h){function f(t){m.processUpdateMessage(t),n.$broadcast("history_focus",{peerString:e.chatFull.peerString})}function _(t){t&&t.type&&0===t.type.indexOf("image")&&(e.photo.updating=!0,c.uploadFile(t).then(function(t){return l.invokeApi("channels.editPhoto",{channel:i.getChannelInput(e.chatID),photo:{_:"inputChatUploadedPhoto",file:t}}).then(f)})["finally"](function(){e.photo.updating=!1}))}e.chatFull=i.wrapForFull(e.chatID,{}),e.settings={notifications:!0},e.isMegagroup=i.isMegagroup(e.chatID),s.getChannelFull(e.chatID,!0).then(function(t){e.chatFull=i.wrapForFull(e.chatID,t),e.$broadcast("ui_height"),d.savePeerSettings(-e.chatID,t.notify_settings),d.getPeerMuted(-e.chatID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t!==n&&void d.getPeerSettings(-e.chatID).then(function(n){t?n.mute_until=0:n.mute_until=2e9,d.updatePeerSettings(-e.chatID,n)})})}),e.chatFull.chat&&e.chatFull.chat.pFlags.creator&&e.chatFull.exported_invite&&"chatInviteEmpty"==e.chatFull.exported_invite._&&s.getChatInviteLink(e.chatID,!0).then(function(t){e.chatFull.exported_invite={_:"chatInviteExported",link:t}})}),e.leaveChannel=function(){return h.confirm({type:e.isMegagroup?"MEGAGROUP_LEAVE":"CHANNEL_LEAVE"}).then(function(){l.invokeApi("channels.leaveChannel",{channel:i.getChannelInput(e.chatID)}).then(f)})},e.deleteChannel=function(){return h.confirm({type:e.isMegagroup?"MEGAGROUP_DELETE":"CHANNEL_DELETE"}).then(function(){l.invokeApi("channels.deleteChannel",{channel:i.getChannelInput(e.chatID)}).then(f)})},e.joinChannel=function(){l.invokeApi("channels.joinChannel",{channel:i.getChannelInput(e.chatID)}).then(f)},e.inviteToChannel=function(){var t=[];angular.forEach((e.chatFull.participants||{}).participants||[],function(e){t.push(e.user_id)}),g.selectContacts({disabled:t}).then(function(t){var n=[];angular.forEach(t,function(e){n.push(r.getUserInput(e))}),l.invokeApi("channels.inviteToChannel",{channel:i.getChannelInput(e.chatID),users:n}).then(f)})},e.kickFromChannel=function(t){l.invokeApi("channels.kickFromChannel",{channel:i.getChannelInput(e.chatID),user_id:r.getUserInput(t),kicked:!0}).then(f)},e.shareLink=function(t){var r=n.$new();return r.chatID=e.chatID,a.open({templateUrl:templateUrl("chat_invite_link_modal"),controller:"ChatInviteLinkModalController",scope:r,windowClass:"md_simple_modal_window"}),cancelEvent(t)},e.photo={},e.$watch("photo.file",_),e.deletePhoto=function(){e.photo.updating=!0,l.invokeApi("channels.editPhoto",{channel:i.getChannelInput(e.chatID),photo:{_:"inputChatPhotoEmpty"}}).then(f)["finally"](function(){e.photo.updating=!1})},e.editChannel=function(){var t=n.$new();t.chatID=e.chatID,a.open({templateUrl:templateUrl(e.isMegagroup?"megagroup_edit_modal":"channel_edit_modal"),controller:"ChannelEditModalController",scope:t,windowClass:"md_simple_modal_window mobile_modal"})},e.goToHistory=function(){n.$broadcast("history_focus",{peerString:e.chatFull.peerString})},e.hasRights=function(t){return i.hasRights(e.chatID,t)}}]).controller("SettingsModalController",["$rootScope","$scope","$timeout","$modal","AppUsersManager","AppChatsManager","AppPhotosManager","MtpApiManager","Storage","NotificationsManager","MtpApiFileManager","PasswordManager","ApiUpdatesManager","ChangelogNotifyService","LayoutSwitchService","WebPushApiManager","AppRuntimeManager","ErrorService","_",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,_,y){function v(){n.cancel(w),w=!1,p.getState().then(function(e){t.password=e,"account.noPassword"==e._&&e.email_unconfirmed_pattern&&!k&&(w=n(v,5e3))})}function b(e){e&&e.type&&0===e.type.indexOf("image")&&(t.photo.updating=!0,d.uploadFile(e).then(function(e){o.invokeApi("photos.uploadProfilePhoto",{file:e,caption:"",geo_point:{_:"inputGeoPointEmpty"}}).then(function(e){r.saveApiUsers(e.users),o.getUserID().then(function(n){s.savePhoto(e.photo,{user_id:n}),u.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:n,date:tsNow(!0),photo:r.getUser(n).photo,previous:!0}}),t.photo={}})})})["finally"](function(){delete t.photo.updating}))}t.profile={},t.photo={},t.version=Config.App.version,o.getUserID().then(function(e){t.profile=r.getUser(e)}),o.invokeApi("users.getFullUser",{id:{_:"inputUserSelf"}}).then(function(e){r.saveApiUser(e.user),e.profile_photo&&s.savePhoto(e.profile_photo,{user_id:e.user.id})}),t.notify={volume:.5},t.send={},t.$watch("photo.file",b),t.password={_:"account.noPassword"},v();var w=!1,k=!1;t.changePassword=function(n){if(n=n||{},"cancel_email"==n.action)return _.confirm({type:"PASSWORD_ABORT_SETUP"}).then(function(){p.updateSettings(t.password,{email:""}).then(v)});var r=e.$new();r.password=t.password,angular.extend(r,n);var i=a.open({scope:r,templateUrl:templateUrl("password_update_modal"),controller:"PasswordUpdateModalController",windowClass:"md_simple_modal_window mobile_modal"});i.result["finally"](v)},t.showSessions=function(){a.open({templateUrl:templateUrl("sessions_list_modal"),controller:"SessionsListModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.$on("$destroy",function(){n.cancel(w),k=!0}),t.deletePhoto=function(){t.photo.updating=!0,o.invokeApi("photos.updateProfilePhoto",{id:{_:"inputPhotoEmpty"}}).then(function(e){o.getUserID().then(function(n){u.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:n,date:tsNow(!0),photo:e,previous:!0}}),t.photo={}})})["finally"](function(){delete t.photo.updating})},t.editProfile=function(){a.open({templateUrl:templateUrl("profile_edit_modal"),controller:"ProfileEditModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.changeUsername=function(){a.open({templateUrl:templateUrl("username_edit_modal"),controller:"UsernameEditModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.terminateSessions=function(){_.confirm({type:"TERMINATE_SESSIONS"}).then(function(){o.invokeApi("auth.resetAuthorizations",{})})},l.get("notify_nodesktop","send_ctrlenter","notify_volume","notify_novibrate","notify_nopreview","notify_nopush").then(function(a){t.notify.desktop=!a[0],t.send.enter=a[1]?"":"1",t.notify.pushAvailable=h.isAvailable,t.notify.push=!a[5],a[2]!==!1?t.notify.volume=a[2]>0&&a[2]<=1?a[2]:0:t.notify.volume=.5,t.notify.canVibrate=c.getVibrateSupport(),t.notify.vibrate=!a[3],t.notify.preview=!a[4],t.notify.volumeOf4=function(){return 1+Math.ceil((t.notify.volume-.1)/.33)},t.toggleSound=function(){t.notify.volume?t.notify.volume=0:t.notify.volume=.5};var r;t.$watch("notify.volume",function(t,a){t!==a&&(l.set({notify_volume:t}),e.$broadcast("settings_changed"),c.clear(),r&&n.cancel(r),r=n(function(){c.testSound(t)},500))}),t.toggleDesktop=function(){t.notify.desktop=!t.notify.desktop,t.notify.desktop?l.remove("notify_nodesktop"):l.set({notify_nodesktop:!0}),e.$broadcast("settings_changed")},t.togglePush=function(){t.notify.push=!t.notify.push,t.notify.push?l.remove("notify_nopush"):l.set({notify_nopush:!0}),e.$broadcast("settings_changed")},t.togglePreview=function(){t.notify.preview=!t.notify.preview,t.notify.preview?l.remove("notify_nopreview"):l.set({notify_nopreview:!0}),e.$broadcast("settings_changed")},t.toggleVibrate=function(){t.notify.vibrate=!t.notify.vibrate,t.notify.vibrate?l.remove("notify_novibrate"):l.set({notify_novibrate:!0}),e.$broadcast("settings_changed")},t.toggleCtrlEnter=function(n){t.send.enter=n,t.send.enter?l.remove("send_ctrlenter"):l.set({send_ctrlenter:!0}),e.$broadcast("settings_changed")}}),t.openChangelog=function(){m.showChangelog(!1)},t.logOut=function(){_.confirm({type:"LOGOUT"}).then(function(){o.logOut().then(function(){location.hash="/login",f.reload()})})},t.switchBackToDesktop=Config.Mobile&&!Config.Navigator.mobile,t.switchToDesktop=function(){g.switchLayout(!1)}}]).controller("ChangelogModalController",["$scope","$modal",function(e,t){if(e.currentVersion=Config.App.version,!e.lastVersion){var n=e.currentVersion.split(".");e.lastVersion=n[0]+"."+n[1]+"."+Math.max(0,n[2]-1)}e.changelogHidden=!1,e.changelogShown=!1,e.canShowVersion=function(t){if(e.changelogShown)return!0;var n=versionCompare(t,e.lastVersion)>=0;return n||(e.changelogHidden=!0),n},e.showAllVersions=function(){e.changelogShown=!0,e.changelogHidden=!1,e.$emit("ui_height"),e.$broadcast("ui_height")},e.changeUsername=function(){t.open({templateUrl:templateUrl("username_edit_modal"),controller:"UsernameEditModalController",windowClass:"md_simple_modal_window mobile_modal"})}}]).controller("ProfileEditModalController",["$scope","$modalInstance","AppUsersManager","MtpApiManager",function(e,t,n,a){e.profile={},e.error={},a.getUserID().then(function(t){var a=n.getUser(t);e.profile={first_name:a.first_name,last_name:a.last_name}}),e.updateProfile=function(){e.profile.updating=!0;var r=3;a.invokeApi("account.updateProfile",{flags:r,first_name:e.profile.first_name||"",last_name:e.profile.last_name||""}).then(function(a){e.error={},n.saveApiUser(a),t.close()},function(n){switch(n.type){case"FIRSTNAME_INVALID":e.error={field:"first_name"},n.handled=!0;break;case"LASTNAME_INVALID":e.error={field:"last_name"},n.handled=!0;break;case"NAME_NOT_MODIFIED":n.handled=!0,t.close()}})["finally"](function(){delete e.profile.updating})}}]).controller("UsernameEditModalController",["$scope","$modalInstance","AppUsersManager","MtpApiManager",function(e,t,n,a){e.profile={},e.error={},a.getUserID().then(function(t){var a=n.getUser(t);e.profile={username:a.username}}),e.updateUsername=function(){e.profile.updating=!0,a.invokeApi("account.updateUsername",{username:e.profile.username||""}).then(function(a){e.checked={},n.saveApiUser(a),t.close()},function(e){switch(e.type){case"USERNAME_NOT_MODIFIED":e.handled=!0,t.close()}})["finally"](function(){delete e.profile.updating})},e.$watch("profile.username",function(t){return t&&t.length?void a.invokeApi("account.checkUsername",{username:t}).then(function(n){e.profile.username===t&&(n?e.checked={success:!0}:e.checked={error:!0})},function(n){if(e.profile.username===t)switch(n.type){case"USERNAME_INVALID":e.checked={error:!0},n.handled=!0}}):void(e.checked={})})}]).controller("SessionsListModalController",["$scope","$q","$timeout","_","MtpApiManager","ErrorService","$modalInstance",function(e,t,n,a,r,i,s){function o(){n.cancel(l),r.invokeApi("account.getAuthorizations").then(function(t){e.sessionsLoaded=!0,e.authorizations=t.authorizations;for(var a,r=0,i=e.authorizations.length;r<i;r++)a=e.authorizations[r],a.current=1==(1&a.flags);e.authorizations.sort(function(e,t){return e.current?-1:t.current?1:t.date_active-e.date_active}),c||(l=n(o,5e3))})}e.slice={limit:20,limitDelta:20};var l=!1,c=!1;e.terminateSession=function(e){i.confirm({type:"TERMINATE_SESSION"}).then(function(){r.invokeApi("account.resetAuthorization",{hash:e}).then(o)})},e.terminateAllSessions=function(){i.confirm({type:"TERMINATE_SESSIONS"}).then(function(){r.invokeApi("auth.resetAuthorizations",{})})},o(),e.$on("apiUpdate",function(e,t){"updateNewAuthorization"==t._&&o()}),e.$on("$destroy",function(){n.cancel(l),c=!0})}]).controller("PasswordUpdateModalController",["$scope","$q","_","PasswordManager","MtpApiManager","ErrorService","$modalInstance",function(e,t,n,a,r,i,s){switch(e.passwordSettings={},e.updatePassword=function(){delete e.passwordSettings.error_field;var r;if("disable"==e.action)r=t.when();else{if(!e.passwordSettings.new_password)return e.passwordSettings.error_field="new_password",e.$broadcast("new_password_focus"),!1;if(e.passwordSettings.new_password!=e.passwordSettings.confirm_password)return e.passwordSettings.error_field="confirm_password",e.$broadcast("confirm_password_focus"),!1;r=e.passwordSettings.email?t.when():i.confirm({type:"RECOVERY_EMAIL_EMPTY"})}e.passwordSettings.loading=!0,r.then(function(){a.updateSettings(e.password,{cur_password:e.passwordSettings.cur_password||"",new_password:e.passwordSettings.new_password,email:e.passwordSettings.email,hint:e.passwordSettings.hint}).then(function(t){delete e.passwordSettings.loading,s.close(!0),"disable"==e.action?i.alert(n("error_modal_password_disabled_title_raw"),n("error_modal_password_disabled_descripion_raw")):i.alert(n("error_modal_password_success_title_raw"),n("error_modal_password_success_descripion_raw"))},function(t){switch(t.type){case"PASSWORD_HASH_INVALID":case"NEW_PASSWORD_BAD":e.passwordSettings.error_field="cur_password",t.handled=!0,e.$broadcast("cur_password_focus");break;case"NEW_PASSWORD_BAD":e.passwordSettings.error_field="new_password",t.handled=!0;break;case"EMAIL_INVALID":e.passwordSettings.error_field="email",t.handled=!0;break;case"EMAIL_UNCONFIRMED":i.alert(n("error_modal_email_unconfirmed_title_raw"),n("error_modal_email_unconfirmed_descripion_raw")),s.close(!0),t.handled=!0}delete e.passwordSettings.loading})})},e.action){case"disable":e.passwordSettings.new_password="";break;case"create":onContentLoaded(function(){e.$broadcast("new_password_focus")})}e.$watch("passwordSettings.new_password",function(t){var n=t&&t.length||0;n?n<=3?e.passwordSettings.hint="***":e.passwordSettings.hint=t.charAt(0)+new Array(n-1).join("*")+t.charAt(n-1):e.passwordSettings.hint="",e.$broadcast("value_updated")})}]).controller("PasswordRecoveryModalController",["$scope","$q","_","PasswordManager","MtpApiManager","ErrorService","$modalInstance",function(e,t,n,a,r,i,s){e.checkCode=function(){e.recovery.updating=!0,a.recover(e.recovery.code,e.options).then(function(e){i.alert(n("error_modal_password_disabled_title_raw"),n("error_modal_password_disabled_descripion_raw")),s.close(e)},function(t){switch(delete e.recovery.updating,t.type){case"CODE_EMPTY":case"CODE_INVALID":e.recovery.error_field="code",t.handled=!0;break;case"PASSWORD_EMPTY":case"PASSWORD_RECOVERY_NA":case"PASSWORD_RECOVERY_EXPIRED":s.dismiss(),t.handled=!0}})}}]).controller("ContactsModalController",["$scope","$rootScope","$timeout","$modal","$modalInstance","MtpApiManager","AppUsersManager","ErrorService",function(e,t,n,a,r,i,s,o){function l(){e.selectedContacts={},e.selectedCount=0}function c(t){var a=++p,r=[];s.getContacts(t).then(function(n){a==p&&(e.contacts=[],e.slice.limit=20,angular.forEach(n,function(t){var n={userID:t,user:s.getUser(t)};r.push(t),e.contacts.push(n)}),e.contactsEmpty=!t&&!e.contacts.length,e.$broadcast("contacts_change"))}),t&&t.length>=5&&n(function(){a==p&&i.invokeApi("contacts.search",{q:t,limit:10}).then(function(t){s.saveApiUsers(t.users),a==p&&angular.forEach(t.results,function(t){var n=t.user_id;r.indexOf(n)==-1&&e.contacts.push({userID:n,user:s.getUser(n),peerString:s.getUserString(n),found:!0})})},function(e){400==e.code&&(e.handled=!0)})},500)}e.contacts=[],e.foundPeers=[],e.search={},e.slice={limit:20,limitDelta:20};var d,p=0;if(l(),e.disabledContacts={},e.disabled)for(d=0;d<e.disabled.length;d++)e.disabledContacts[e.disabled[d]]=!0;if(e.selected)for(d=0;d<e.selected.length;d++)e.selectedContacts[e.selected[d]]||(e.selectedContacts[e.selected[d]]=!0,e.selectedCount++);e.$watch("search.query",c),e.$on("contacts_update",function(){c(e.search&&e.search.query||"")}),e.toggleEdit=function(t){e.action=t?"edit":"",e.multiSelect=t,l()},e.contactSelect=function(t){return!e.disabledContacts[t]&&(e.multiSelect?void(e.selectedContacts[t]?(delete e.selectedContacts[t],e.selectedCount--):(e.selectedContacts[t]=!0,e.selectedCount++)):r.close(t))},e.submitSelected=function(){if(e.selectedCount>0){var t=[];return angular.forEach(e.selectedContacts,function(e,n){t.push(n)}),r.close(t)}},e.deleteSelected=function(){if(e.selectedCount>0){var t=[];angular.forEach(e.selectedContacts,function(e,n){t.push(n)}),s.deleteContacts(t).then(function(){e.toggleEdit(!1)})}},e.importContact=function(){s.openImportContact().then(function(e){e&&t.$broadcast("history_focus",{peerString:s.getUserString(e)})})}}]).controller("PeerSelectController",["$scope","$modalInstance","$q","AppPeersManager","ErrorService",function(e,t,n,a,r){e.selectedPeers={},e.selectedPeerIDs=[],e.selectedCount=0,e.shareLinkPromise&&(e.shareLink={loading:!0},e.shareLinkPromise.then(function(t){e.shareLink={url:t}},function(){delete e.shareLink})),e.dialogSelect=function(i){var s;if(!e.multiSelect){var o;if(e.confirm_type){s=a.getPeerID(i);var l=a.getPeer(s);o=r.confirm({type:e.confirm_type,peer_id:s,peer_data:l})}else o=n.when();return void o.then(function(){t.close(i)})}if(s=a.getPeerID(i),e.selectedPeers[s]){delete e.selectedPeers[s],e.selectedCount--;var c=e.selectedPeerIDs.indexOf(s);c>=0&&e.selectedPeerIDs.splice(c,1)}else e.selectedPeers[s]=a.getPeer(s),e.selectedCount++,e.selectedPeerIDs.unshift(s)},e.submitSelected=function(){if(e.selectedCount>0){var n=[];return angular.forEach(e.selectedPeers,function(e,t){n.push(a.getPeerString(t))}),t.close(n)}},e.toggleSearch=function(){e.$broadcast("dialogs_search_toggle")}}]).controller("ChatCreateModalController",["$scope","$modalInstance","$rootScope","MtpApiManager","AppUsersManager","AppChatsManager","ApiUpdatesManager",function(e,t,n,a,r,i,s){e.group={name:""},e.createGroup=function(){if(e.group.name){e.group.creating=!0;var o=[];return angular.forEach(e.userIDs,function(e){o.push(r.getUserInput(e))}),a.invokeApi("messages.createChat",{title:e.group.name,users:o}).then(function(e){if(s.processUpdateMessage(e),e.updates&&e.updates.length){for(var a,r=0,o=e.updates.length;r<o;r++)if(a=e.updates[r],"updateNewMessage"==a._){n.$broadcast("history_focus",{peerString:i.getChatString(a.message.to_id.chat_id)});break}t.close()}})["finally"](function(){delete e.group.creating})}}}]).controller("ChatEditModalController",["$scope","$modalInstance","$rootScope","MtpApiManager","AppUsersManager","AppChatsManager","ApiUpdatesManager",function(e,t,n,a,r,i,s){var o=i.getChat(e.chatID);e.group={name:o.title},e.updateGroup=function(){if(e.group.name){if(e.group.name==o.title)return t.close();e.group.updating=!0;var r;return r=i.isChannel(e.chatID)?a.invokeApi("channels.editTitle",{channel:i.getChannelInput(e.chatID),title:e.group.name}):a.invokeApi("messages.editChatTitle",{chat_id:i.getChatInput(e.chatID),title:e.group.name}),r.then(function(t){s.processUpdateMessage(t);var a=i.getChatString(e.chatID);n.$broadcast("history_focus",{peerString:a})})["finally"](function(){delete e.group.updating})}}}]).controller("ChannelEditModalController",["$q","$scope","$modalInstance","$rootScope","MtpApiManager","AppUsersManager","AppChatsManager","AppProfileManager","ApiUpdatesManager",function(e,t,n,a,r,i,s,o,l){function c(){return r.invokeApi("channels.editTitle",{channel:s.getChannelInput(t.chatID),title:t.channel.title}).then(function(e){l.processUpdateMessage(e)})}function d(){return r.invokeApi("channels.editAbout",{channel:s.getChannelInput(t.chatID),about:t.channel.about})}var p=s.getChat(t.chatID),u={title:p.title};t.channel={title:p.title},o.getChannelFull(t.chatID).then(function(e){u.about=e.about,t.channel.about=e.about}),t.updateChannel=function(){if(t.channel.title.length){var n=[];return t.channel.title!=u.title&&n.push(c()),t.channel.about!=u.about&&n.push(d()),t.channel.updating=!0,e.all(n).then(function(){var e=s.getChatString(t.chatID);a.$broadcast("history_focus",{peerString:e})})["finally"](function(){delete t.channel.updating})}}}]).controller("ChatInviteLinkModalController",["_","$scope","$timeout","$modalInstance","AppChatsManager","AppProfileManager","ErrorService",function(e,t,n,a,r,i,s){function o(){n(function(){t.$broadcast("ui_invite_select")},100)}function l(e){var n=r.getChat(t.chatID);return n.username?(t.exportedInvite={link:"https://t.me/"+n.username,"short":!0},void o()):(e&&(t.exportedInvite.revoking=!0),void i.getChatInviteLink(t.chatID,e).then(function(e){t.exportedInvite={link:e,canRevoke:!0},o()})["finally"](function(){delete t.exportedInvite.revoking}))}t.exportedInvite={link:e("group_invite_link_loading_raw")};var c=r.isChannel(t.chatID),d=r.isMegagroup(t.chatID);t.revokeLink=function(){s.confirm({type:c&&!d?"REVOKE_CHANNEL_INVITE_LINK":"REVOKE_GROUP_INVITE_LINK"}).then(function(){l(!0)})},l()}]).controller("ImportContactModalController",["$scope","$modalInstance","$rootScope","AppUsersManager","ErrorService","PhonebookContactsService",function(e,t,n,a,r,i){void 0===e.importContact&&(e.importContact={}),e.phonebookAvailable=i.isAvailable(),e.doImport=function(){e.importContact&&e.importContact.phone&&(e.progress={enabled:!0},a.importContact(e.importContact.phone,e.importContact.first_name||"",e.importContact.last_name||"").then(function(e){e||r.show({error:{code:404,type:"USER_NOT_USING_TELEGRAM"}}),t.close(e)})["finally"](function(){delete e.progress.enabled}))},e.importPhonebook=function(){i.openPhonebookImport().result.then(function(e){e?t.close(e[0]):t.dismiss()})}}]).controller("CountrySelectModalController",["$scope","$modalInstance","$rootScope","_",function(e,t,n,a){e.search={},e.slice={limit:20,limitDelta:20};for(var r=SearchIndexManager.createIndex(),i=0;i<Config.CountryCodes.length;i++){var s=Config.CountryCodes[i][0];s+=" "+a(Config.CountryCodes[i][1]+"_raw"),s+=" "+Config.CountryCodes[i].slice(2).join(" "),SearchIndexManager.indexObject(i,s,r)}e.$watch("search.query",function(t){var n=!1,i={};angular.isString(t)&&t.length&&(n=!0,i=SearchIndexManager.search(t,r)),e.countries=[],e.slice.limit=20;for(var s,o=0;o<Config.CountryCodes.length;o++)if(!n||i[o])for(s=2;s<Config.CountryCodes[o].length;s++)e.countries.push({name:a(Config.CountryCodes[o][1]+"_raw"),code:Config.CountryCodes[o][s]});String.prototype.localeCompare&&e.countries.sort(function(e,t){return e.name.localeCompare(t.name)})})}]).controller("PhonebookModalController",["$scope","$modalInstance","$rootScope","AppUsersManager","PhonebookContactsService","ErrorService",function(e,t,n,a,r,i){function s(){var t=!1,n={};if(angular.isString(e.search.query)&&e.search.query.length){t=!0,n=SearchIndexManager.search(e.search.query,o),e.contacts=[],delete e.contactsEmpty;for(var a=0;a<e.phonebook.length;a++)t&&!n[a]||e.contacts.push(e.phonebook[a])}else e.contacts=e.phonebook,e.contactsEmpty=!e.contacts.length;e.slice.limit=20}e.search={},e.phonebook=[],e.selectedContacts={},e.selectedCount=0,e.slice={limit:20,limitDelta:20},e.progress={enabled:!1},e.multiSelect=!0;var o=SearchIndexManager.createIndex(),l=!1;r.getPhonebookContacts().then(function(t){for(var n=0;n<t.length;n++)SearchIndexManager.indexObject(n,t[n].first_name+" "+t[n].last_name+" "+t[n].phones.join(" "),o);e.phonebook=t,e.toggleSelection(!0),l=!0,s()},function(e){i.show({error:{code:403,type:"PHONEBOOK_GET_CONTACTS_FAILED",originalError:e}})}),e.$watch("search.query",function(e){l&&s()}),e.contactSelect=function(n){return e.multiSelect?void(e.selectedContacts[n]?(delete e.selectedContacts[n],e.selectedCount--):(e.selectedContacts[n]=!0,e.selectedCount++)):t.close(e.phonebook[n])},e.toggleSelection=function(t){if(!e.selectedCount||t){e.selectedCount=e.phonebook.length;for(var n=0;n<e.phonebook.length;n++)e.selectedContacts[n]=!0}else e.selectedCount=0,e.selectedContacts={}},e.submitSelected=function(){e.selectedCount<=0&&t.dismiss();var n=[];angular.forEach(e.selectedContacts,function(t,a){n.push(e.phonebook[a])}),i.confirm({type:"CONTACTS_IMPORT_PERFORM"}).then(function(){e.progress.enabled=!0,a.importContacts(n).then(function(e){
e.length||i.show({error:{code:404,type:"USERS_NOT_USING_TELEGRAM"}}),t.close(e)})["finally"](function(){e.progress.enabled=!1})})}}]).controller("StickersetModalController",["$scope","$rootScope","$modalInstance","MtpApiManager","RichTextProcessor","AppStickersManager","AppDocsManager","AppMessagesManager","LocationParamsService",function(e,t,n,a,r,i,s,o,l){e.slice={limit:20,limitDelta:20};var c;i.getStickerset(e.inputStickerset).then(function(t){e.$broadcast("ui_height"),e.stickersetLoaded=!0,c=t,e.stickerset=t.set,e.stickersetInstalled=1==t.set.pFlags.installed,e.documents=t.documents,e.stickerEmojis={},e.stickerDimensions={},angular.forEach(e.documents,function(t){e.stickerEmojis[t.id]=r.wrapRichText(t.stickerEmojiRaw,{noLinks:!0,noLinebreaks:!0,emojiIconSize:26});var n=calcImageInBox(t.w,t.h,192,192);e.stickerDimensions[t.id]={width:n.w,height:n.h}})}),e.toggleInstalled=function(t){i.installStickerset(c,!t).then(function(){e.stickersetInstalled=t})},e.chooseSticker=function(e){var a=s.getDoc(e);if(a.id&&a.access_hash&&t.selectedPeerID){var r={_:"inputMediaDocument",id:{_:"inputDocument",id:a.id,access_hash:a.access_hash}};o.sendOther(t.selectedPeerID,r),n.close(a.id)}},e.share=function(){l.shareUrl("https://t.me/addstickers/"+e.stickerset.short_name,e.stickerset.title)}}]),angular.module("myApp.filters",["myApp.i18n"]).filter("userName",["_",function(e){return function(t){return t&&(t.first_name||t.last_name)?t.first_name?t.first_name+(t.last_name?" "+t.last_name:""):t.last_name:e("user_name_deleted")}}]).filter("userFirstName",["_",function(e){return function(t){return t&&(t.first_name||t.last_name)?t.first_name||t.last_name:e("user_first_name_deleted")}}]).filter("userStatus",["$filter","_",function(e,t){var n=e("relativeTime");return function(e,a){if(e&&!(e.id%1e3))return t(777e3===e.id?"user_status_service_notifications":"user_status_support");var r=e&&e.status&&e.status._;switch(r||(r=e&&e.pFlags&&e.pFlags.bot?"userStatusBot":"userStatusEmpty"),r){case"userStatusOnline":return t("user_status_online");case"userStatusOffline":return t("user_status_last_seen",n(e.status.was_online));case"userStatusRecently":return t("user_status_recently");case"userStatusLastWeek":return t("user_status_last_week");case"userStatusLastMonth":return t("user_status_last_month");case"userStatusBot":return t(a?e.pFlags.bot_chat_history?"user_status_bot_noprivacy":"user_status_bot_privacy":"user_status_bot");case"userStatusEmpty":default:return t("user_status_long_ago")}}}]).filter("chatTitle",["_",function(e){return function(t){return t&&t.title?t.title:e("chat_title_deleted")}}]).filter("dateOrTime",["$filter",function(e){var t=e("date");return function(e,n){if(!e)return"";var a=1e3*e,r=Math.abs(tsNow()-a),i="shortTime";return r>5184e5?i=n?"mediumDate":"shortDate":r>432e5&&(i=n?"EEEE":"EEE"),t(a,i)}}]).filter("time",["$filter",function(e){var t={},n=e("date"),a=Config.Mobile?"shortTime":"mediumTime";return function(e){return t[e]?t[e]:t[e]=n(1e3*e,a)}}]).filter("myDate",["$filter",function(e){var t={},n=e("date");return function(e){return t[e]?t[e]:t[e]=n(1e3*e,"fullDate")}}]).filter("duration",[function(){return function(e){e=parseInt(e),isNaN(e)&&(e=0);var t=Math.floor(e/3600),n=Math.floor(e%3600/60),a=e%60,r=(t?t+":":"")+n+":"+a;return r=r.replace(/:(\d(?::|$))/g,":0$1")}}]).filter("durationRemains",["$filter",function(e){var t=e("duration");return function(e,n){return"-"+t(n-e)}}]).filter("phoneNumber",[function(){return function(e){var t=" ";return e=(e||"").replace(/\D/g,""),"7"===e.charAt(0)&&11===e.length?"+"+e.charAt(0)+t+"("+e.substr(1,3)+")"+t+e.substr(4,3)+"-"+e.substr(7,2)+"-"+e.substr(9,2):"+"+e}}]).filter("formatSize",[function(){return function(e,t){if(!e)return"0";if(e<1024)return e+" b";if(e<1048576)return Math.round(e/1024)+" KB";var n=e/1048576;return n=t?n.toFixed(1):Math.round(10*n)/10,n+" MB"}}]).filter("formatSizeProgress",["$filter","_",function(e,t){var n=e("formatSize");return function(e){if(!e.total)return"";var a=n(e.done,!0),r=a.split(" "),i=n(e.total),s=i.split(" ");return s[1]===r[1]?t("format_size_progress_mulitple",{done:r[0],total:s[0],parts:r[1]}):t("format_size_progress",{done:a,total:i})}}]).filter("formatShortNumber",[function(){return function(e){var t;return e?e<1e3?e.toString():e<9e5?(t=e>1e4?1:10,Math.round(e/1e3*t)/t+"K"):(t=e>1e7?1:10,Math.round(e/1e6*t)/t+"M"):"0"}}]).filter("nl2br",[function(){return function(e){return e.replace(/\n/g,"<br/>")}}]).filter("shortUrl",[function(){return function(e){return"string"!=typeof e?e:e.replace(/^https?:\/\//,"").replace(/^www\./,"")}}]).filter("richText",["$filter",function(e){var t=e("linky");return function(e){return t(e,"_blank").replace(/\n|&#10;/g,"<br/>")}}]).filter("relativeTime",["$filter","_",function(e,t){var n=t.pluralize("relative_time_pluralize_minutes_ago"),a=t.pluralize("relative_time_pluralize_hours_ago"),r=e("dateOrTime");return function(e){var i=Math.abs(tsNow(!0)-e);if(i<60)return t("relative_time_just_now");if(i<3600){var s=Math.floor(i/60);return n(s)}if(i<86400){var o=Math.floor(i/3600);return a(o)}return r(e,!0)}}]),angular.module("myApp.services").service("AppMessagesManager",["$q","$rootScope","$location","$filter","$timeout","$sce","ApiUpdatesManager","AppUsersManager","AppChatsManager","AppPeersManager","AppPhotosManager","AppDocsManager","AppStickersManager","AppMessagesIDsManager","DraftsManager","AppWebPagesManager","AppGamesManager","MtpApiManager","MtpApiFileManager","ServerTimeManager","RichTextProcessor","NotificationsManager","Storage","AppProfileManager","TelegramMeWebService","ErrorService","StatusManager","_",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m,g,h,f,_,y,v,b,w,k,$,C,S,M,x){function I(t,n,a){var r=Ne,i=angular.isString(t)&&t.length;if(i){if(!a||qe.query!==t){qe.query=t;var s=SearchIndexManager.search(t,He);qe.dialogs=[],angular.forEach(Ne.dialogs,function(e){s[e.peerID]&&qe.dialogs.push(e)}),qe.count=qe.dialogs.length}r=qe}else qe.query=!1;var o=0;if(n>0)for(o=0;o<r.dialogs.length&&!(n>r.dialogs[o].index);o++);return a=a||20,i||tt||r.dialogs.length>=o+a?e.when({dialogs:r.dialogs.slice(o,o+a)}):T(a).then(function(){if(o=0,n>0)for(o=0;o<r.dialogs.length&&!(n>r.dialogs[o].index);o++);return{dialogs:r.dialogs.slice(o,o+a)}})}function A(e){for(var t=0;t<Ne.dialogs.length;t++)if(Ne.dialogs[t].peerID==e)return[Ne.dialogs[t],t];return[]}function E(e){var n=c.getPeerID(e.peer);if(!n)return!1;var a=c.isChannel(n)?-n:0,r=c.getPeerSearchText(n);SearchIndexManager.indexObject(n,r,He);c.isMegagroup(a);if(e.top_message)var i=m.getFullMessageID(e.top_message,a),d=V(i);else{var i=je--,d={_:"message",id:i,mid:i,from_id:o.getSelf().id,to_id:c.getOutputPeer(n),deleted:!0,flags:0,pFlags:{unread:!1,out:!0},date:0,message:""};te([d])}var p=d.date;if(!a&&n<0){var u=l.getChat(-n);if(u&&u.migrated_to&&u.pFlags.deactivated){var h=c.getPeerID(u.migrated_to);return it[n]=h,void(st[h]=n)}}e.top_message=i,e.read_inbox_max_id=m.getFullMessageID(e.read_inbox_max_id,a),e.read_outbox_max_id=m.getFullMessageID(e.read_outbox_max_id,a);var f=d.date;if(a){var _=l.getChat(a);(!f||_.date&&_.date>f)&&(f=_.date)}var y=g.saveDraft(n,e.draft);y&&y.date>f&&(f=y.date),e.pFlags.pinned&&(f=D()),e.index=P(f),e.peerID=n,R(e,p);var v=d.pFlags.out?"read_outbox_max_id":"read_inbox_max_id";if(d.mid&&d.mid>e[v]&&(d.pFlags.unread=!0),void 0===Re[n]&&!d.deleted){var b={count:null,history:[],pending:[]};b[i>0?"history":"pending"].push(i),i<0&&d.pFlags.unread&&e.unread_count++,Re[n]=b,H(b,d)&&t.$broadcast("history_reply_markup",{peerID:n})}if(w.savePeerSettings(n,e.notify_settings),a&&e.pts&&s.addChannelState(a,e.pts),Config.Modes.packed&&!a&&e.unread_count>0&&Xe&&e.top_message>Xe&&d.pFlags.unread&&!d.pFlags.out){var k=16&d.flags?d.from_id:n;w.getPeerMuted(k).then(function(e){e||Ce(d)})}}function T(e){var n=Ne.dialogs,a=0,i=0,s=0,d=0,p=0;return nt&&(a=nt+v.serverTimeOffset,d=65536*nt,p|=1),_.invokeApi("messages.getDialogs",{flags:p,offset_date:a,offset_id:m.getMessageLocalID(i),offset_peer:c.getInputPeerByID(s),limit:e},{timeout:300}).then(function(e){a||C.setAuthorized(!0),o.saveApiUsers(e.users),l.saveApiChats(e.chats),te(e.messages);var i=!!a,s=!1;e.dialogs.reverse(),angular.forEach(e.dialogs,function(e){E(e),d&&e.index>d&&(dt[e.peerID]=e,s=!0),i||c.isChannel(c.getPeerID(e.peer))||($e(e.top_message),i=!0)}),e.dialogs.reverse(),(!e.dialogs.length||!e.count||n.length>=e.count)&&(tt=!0),s&&!ct?ct=r(Me,0):t.$broadcast("dialogs_multiupdate",{})})}function D(){return 2147483392+(255&at++)}function P(e){return void 0===e&&(e=tsNow(!0)+v.serverTimeOffset),65536*e+(65535&++rt)}function R(e,t){var n=Ne.dialogs,a=A(e.peerID)[1];if(void 0!==a&&n.splice(a,1),t&&!e.pFlags.pinned&&(!nt||t<nt)){if(void 0!==a)return!1;nt=t}var r,i=e.index,s=n.length;if(!s||i<n[s-1].index)n.push(e);else if(i>=n[0].index)n.unshift(e);else for(r=0;r<s;r++)if(i>n[r].index){n.splice(r,0,e);break}}function N(t,n,a,r){var i=c.isChannel(t);i&&c.isMegagroup(t);return _.invokeApi("messages.getHistory",{peer:c.getInputPeerByID(t),offset_id:n?m.getMessageLocalID(n):0,add_offset:r||0,limit:a||0},{timeout:300,noErrorBox:!0}).then(function(e){o.saveApiUsers(e.users),l.saveApiChats(e.chats),te(e.messages),i&&s.addChannelState(-t,e.pts);var n=e.messages.length;return n&&e.messages[n-1].deleted&&(e.messages.splice(n-1,1),n--,e.count--),t<0||!o.isBot(t)||n==a&&a<e.count?e:$.getProfile(t).then(function(n){var a=n.bot_info&&n.bot_info.description;if(a){var r=je--,i={_:"messageService",id:r,from_id:t,to_id:c.getOutputPeer(t),flags:0,pFlags:{},date:tsNow(!0)+v.serverTimeOffset,action:{_:"messageActionBotIntro",description:a}};te([i]),e.messages.push(i),e.count&&e.count++}return e})},function(n){switch(n.type){case"CHANNEL_PRIVATE":var a=l.getChat(-t);a={_:"channelForbidden",access_hash:a.access_hash,title:a.title},s.processUpdateMessage({_:"updates",updates:[{_:"updateChannel",channel_id:-t}],chats:[a],users:[]})}return e.reject(n)})}function F(e,n,a,r){var i=it[e]&&!n?1:0;return N(e,n,a,i).then(function(i){r.count=i.count||i.messages.length;var s=0;if(!n&&i.messages.length&&(n=i.messages[0].mid+1),n>0)for(s=0;s<r.history.length&&!(n>r.history[s]);s++);var o=r.history.length;r.history.splice(s,r.history.length-s),angular.forEach(i.messages,function(n){H(r,n)&&t.$broadcast("history_reply_markup",{peerID:e}),r.history.push(n.mid)});var l=r.history.length;a-=l-o;var c=it[e],d=st[e],p=void 0!==c||void 0!==d;if(p&&(r.count=Math.max(r.count,l)+1),a>0){if(n=r.history[l-1],p){if(!i.messages.length){if(!d)return r.count=l,!0;n=0,e=d}return F(e,n,a,r)}if(l<r.count)return F(e,n,a,r)}return!0})}function U(t,n){var a=n.unreadOffset;if(a){var r,i;for(r=n.history.length-1;r>=0;r--)if(i=Te[n.history[r]],i&&!i.pFlags.out&&i.pFlags.unread){n.unreadOffset=r+1;break}}return e.when(n)}function O(e,n){if(!it[e]&&!st[n]&&l.hasChat(-n)){var a=l.getChat(-e);a&&a.migrated_to&&a.migrated_to.channel_id==-n&&(it[e]=n,st[n]=e,r(function(){var a=A(e);a.length&&(Ne.dialogs.splice(a[1],1),t.$broadcast("dialog_drop",{peerID:e})),t.$broadcast("dialog_migrate",{migrateFrom:e,migrateTo:n})},100))}}function B(e){if(it[e])return it[e]}function L(e,t,n,a,r){it[e]&&(e=it[e]);var i=Re[e],s=0,o=!1,l=!1,c=!1;r=r?Math.min(50,r):0,void 0===i&&(i=Re[e]={count:null,history:[],pending:[]}),t<0&&(t=0);var d=!1,p=e;if(st[e]&&(d=!0,t&&t<m.fullMsgIDModulus&&(p=st[e])),!n&&!t){var u=A(e)[0];if(u&&u.unread_count>1){var g=u.unread_count;(c=g>50)?u.read_inbox_max_id?(t=u.read_inbox_max_id,a=16,l=16,n=4):(n=20,l=16,s=g-l):(n=Math.max(10,r,g+2),l=g)}else Config.Mobile&&(n=20)}if(t>0)for(o=!0,s=0;s<i.history.length;s++)if(t>i.history[s]){o=!1;break}if(!o&&(null!==i.count&&i.history.length==i.count||i.history.length>=s+(n||1))){a?(a=Math.min(s,a),s=Math.max(0,s-a),n+=a):n=n||(s?20:r||5);var h=i.history.slice(s,s+n);return!t&&i.pending.length&&(h=i.pending.slice().concat(h)),U(e,{count:i.count,history:h,unreadOffset:l,unreadSkip:c})}return a||n||(n=r||20),o&&(s=0),a||c||t&&i.history.indexOf(t)==-1?(a&&(s=-a,n+=a),N(p,t,n,s).then(function(n){i.count=n.count||n.messages.length,d&&i.count++;var a=[];return angular.forEach(n.messages,function(e){a.push(e.mid)}),!t&&i.pending.length&&(a=i.pending.slice().concat(a)),U(e,{count:i.count,history:a,unreadOffset:l,unreadSkip:c})})):F(e,t,n,i).then(function(){if(s=0,t>0)for(s=0;s<i.history.length&&!(t>i.history[s]);s++);var a=i.history.slice(s,s+n);return!t&&i.pending.length&&(a=i.pending.slice().concat(a)),U(e,{count:i.count,history:a,unreadOffset:l,unreadSkip:c})})}function j(e){return(Re[e]||{}).reply_markup||!1}function H(e,t){if(!t.reply_markup&&!t.pFlags.out&&!t.action)return!1;if(t.reply_markup&&"replyInlineMarkup"==t.reply_markup._)return!1;var n=t.reply_markup,a=e.reply_markup;if(n)return!(a&&a.mid>=t.mid)&&(!(n.pFlags.selective&&!(16&t.flags))&&(e.maxOutID&&t.mid<e.maxOutID&&n.pFlags.single_use&&(n.pFlags.hidden=!0),n=angular.extend({mid:t.mid},n),"replyKeyboardHide"!=n._&&(n.fromID=t.from_id),e.reply_markup=n,!0));if(t.pFlags.out)if(a){if(a.pFlags.single_use&&!a.pFlags.hidden&&(t.mid>a.mid||t.mid<0)&&t.message)return a.pFlags.hidden=!0,!0}else(!e.maxOutID||t.mid>e.maxOutID)&&(e.maxOutID=t.mid);return!(!t.action||"messageActionChatDeleteUser"!=t.action._||(a?t.action.user_id!=a.fromID:!o.isBot(t.action.user_id)))&&(e.reply_markup={_:"replyKeyboardHide",mid:t.mid,flags:0,pFlags:{}},!0)}function q(t,n,a,r,i){t=t?parseInt(t):0;var s=[],d=!n,p={peer:t,filter:a},u=d&&angular.equals(Ve,p);if(d&&!u&&(Ve=p,ze=[]),t&&!r&&!n){var g=Re[t];if(void 0!==g&&g.history.length){var h,f,y,b={},w=i||20;switch(a._){case"inputMessagesFilterPhotos":b.messageMediaPhoto=!0;break;case"inputMessagesFilterPhotoVideo":b.messageMediaPhoto=!0,b.messageMediaDocument=!0,h="video";break;case"inputMessagesFilterVideo":b.messageMediaDocument=!0,h="video";break;case"inputMessagesFilterDocument":b.messageMediaDocument=!0,h=!1;break;case"inputMessagesFilterVoice":b.messageMediaDocument=!0,h="voice";break;default:return e.when({count:0,history:[]})}for(f=0;f<g.history.length;f++)if(y=Te[g.history[f]],y.media&&b[y.media._]){if(void 0!==h&&"messageMediaDocument"==y.media._&&y.media.document.type!=h)continue;if(s.push(y.mid),s.length>=w)break}}if(s.length<w&&ze.length&&u)for(var k=!!s.length&&s[s.length-1],f=0;f<ze.length&&!((k===!1||ze[f]<k)&&(s.push(ze[f]),s.length>=w));f++);}if(s.length||1e3==i)return d&&(ze=listMergeSorted(ze,s)),e.when({count:null,history:s});var $;if(t||!n)$=_.invokeApi("messages.search",{flags:0,peer:c.getInputPeerByID(t),q:n||"",filter:a||{_:"inputMessagesFilterEmpty"},min_date:0,max_date:0,limit:i||20,max_id:m.getMessageLocalID(r)||0},{timeout:300,noErrorBox:!0});else{var C=0,S=0,M=0,x=r&&V(r);x&&x.date&&(C=x.date+v.serverTimeOffset,M=x.id,S=ue(x)),$=_.invokeApi("messages.searchGlobal",{q:n,offset_date:C,offset_peer:c.getInputPeerByID(S),offset_id:m.getMessageLocalID(M),limit:i||20},{timeout:300,noErrorBox:!0})}return $.then(function(e){o.saveApiUsers(e.users),l.saveApiChats(e.chats),te(e.messages);var t=e.count||e.messages.length;return s=[],angular.forEach(e.messages,function(e){var t=ue(e);if(t<0){var n=l.getChat(-t);n.migrated_to&&O(t,-n.migrated_to.channel_id)}s.push(e.mid)}),d&&(!r||u&&ze.indexOf(r)>=0)&&(ze=listMergeSorted(ze,s)),{count:t,history:s}},function(t){return 400==t.code&&(t.handled=!0),e.reject(t)})}function V(e){return Te[e]||{_:"messageEmpty",deleted:!0,pFlags:{out:!1,unread:!1}}}function z(e){var t=["messageMediaPhoto","messageMediaDocument","messageMediaWebPage","messageMediaPending"];return!("message"!=e._||e.deleted||e.fwd_from||e.via_bot_id||e.media&&t.indexOf(e.media._)==-1||e.fromID&&o.isBot(e.fromID))&&(!e.media||"messageMediaDocument"!=e.media._||!e.media.document.sticker)}function W(e){if(e<=0||!Te[e])return!1;var t=Te[e];return!(!t||!t.canBeEdited)&&(ue(t)==o.getSelf().id||!(t.date<tsNow(!0)-172800||!t.pFlags.out))}function G(t){if(!W(t))return e.reject();var n=V(t);if(n.media&&"messageMediaEmpty"!=n.media._&&"messageMediaWebPage"!=n.media._)return e.when({caption:!0,text:"string"==typeof n.media.caption?n.media.caption:""});var a="string"==typeof n.message?n.message:"",r=b.parseEntities(a),i=n.entities||[];return r=b.mergeEntities(r,i),a=b.wrapDraftText(a,{entities:r}),e.when({caption:!1,text:a})}function K(e){if(e<=0||!Te[e])return!1;var t=Te[e];if("message"!=t._||t.deleted)return!1;var n=ue(t);if(n<0&&!l.isChannel(-n)){var a=l.getChat(-n);if(a.pFlags.creator||a.pFlags.admins_enabled&&a.pFlags.admin)return!0}return!(!t.pFlags.out||t.date<tsNow(!0)-172800)}function Y(t,n){var a=m.splitMessageIDsByChannels(t),r=[];return angular.forEach(a.msgIDs,function(e,t){var i;if(t>0){var o=l.getChat(t);if(!(o.pFlags.creator||o.pFlags.editor&&o.pFlags.megagroup)){var c=[];if((o.pFlags.editor||o.pFlags.megagroup)&&angular.forEach(e,function(e,n){var r=V(a.mids[t][n]);r.pFlags.out&&c.push(e)}),!c.length)return;e=c}i=_.invokeApi("channels.deleteMessages",{channel:l.getChannelInput(t),id:e}).then(function(n){s.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteChannelMessages",channel_id:t,messages:e,pts:n.pts,pts_count:n.pts_count}})})}else{var d=0;n&&(d|=1),i=_.invokeApi("messages.deleteMessages",{flags:d,id:e}).then(function(t){s.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteMessages",messages:e,pts:t.pts,pts_count:t.pts_count}})})}r.push(i)}),e.all(r)}function Z(t){var n=m.getMessageIDInfo(t),a=n[0],r=n[1];if(!r)return e.reject();var i=V(t),s=l.getChat(r);return i&&i.pFlags&&i.pFlags.post&&s.username?_.invokeApi("channels.exportMessageLink",{channel:l.getChannelInput(r),id:a}).then(function(e){return e.link}):e.reject()}function X(e){var n=c.isChannel(e),a=Re[e],r=A(e)[0];if(!r||!r.unread_count){if(!a||!a.history.length)return!1;var i,o,d=!1;for(u=a.history.length;u>=0;u--)if(i=a.history[u],o=Te[i],o&&!o.pFlags.out&&o.pFlags.unread){d=!0;break}if(!d)return!1}if(a.readPromise)return a.readPromise;var p;if(p=n?_.invokeApi("channels.readHistory",{channel:l.getChannelInput(-e),max_id:0}):_.invokeApi("messages.readHistory",{peer:c.getInputPeerByID(e),max_id:0}).then(function(e){s.processUpdateMessage({_:"updateShort",update:{_:"updatePts",pts:e.pts,pts_count:e.pts_count}})}),a.readPromise=p.then(function(){r&&(r.unread_count=0,t.$broadcast("dialog_unread",{peerID:e,count:0}),t.$broadcast("messages_read"),a&&a.history.length&&(r.read_inbox_max_id=a.history[0]))})["finally"](function(){delete a.readPromise}),a&&a.history.length){var i,o,u,e,r;for(u=0;u<a.history.length;u++)i=a.history[u],o=Te[i],o&&!o.pFlags.out&&(o.pFlags.unread=!1,De[i]&&(De[i].pFlags.unread=!1),Pe[i]&&(Pe[i].pFlags.unread=!1),w.cancel("msg"+i))}return w.soundReset(c.getPeerString(e)),a.readPromise}function J(e){_.invokeApi("messages.readMessageContents",{id:e}).then(function(t){s.processUpdateMessage({_:"updateShort",update:{_:"updateReadMessagesContents",messages:e,pts:t.pts,pts_count:t.pts_count}})})}function Q(e,t){var n=0;return t&&(n|=1),_.invokeApi("messages.deleteHistory",{flags:n,peer:e,max_id:0}).then(function(n){return s.processUpdateMessage({_:"updateShort",update:{_:"updatePts",pts:n.pts,pts_count:n.pts_count}}),!n.offset||Q(e,t)})}function ee(e,n){return Q(c.getInputPeerByID(e),n).then(function(){if(n)t.$broadcast("dialog_flush",{peerID:e});else{var a=A(e);a[0]&&Ne.dialogs.splice(a[1],1),delete Re[e],t.$broadcast("dialog_drop",{peerID:e})}})}function te(e,t){t=t||{},angular.forEach(e,function(e){if(void 0===e.pFlags&&(e.pFlags={}),e.pFlags.out||(e.pFlags.out=!1),e.pFlags.unread||(e.pFlags.unread=!1),"messageEmpty"!=e._){var n=ue(e),a="peerChannel"==e.to_id._,r=a?-n:0,i=a&&l.isBroadcast(r),s=m.getFullMessageID(e.id,r);e.mid=s;var o=A(n)[0];if(o&&s>0){var c=e.pFlags.out?"read_outbox_max_id":"read_inbox_max_id";e.pFlags.unread=s>o[c]}else t.isNew&&(e.pFlags.unread=!0);e.reply_to_msg_id&&(e.reply_to_mid=m.getFullMessageID(e.reply_to_msg_id,r)),e.date-=v.serverTimeOffset;var u=e.fwd_from;u&&(e.fwdFromID=u.channel_id?-u.channel_id:u.from_id,u.date-=v.serverTimeOffset),e.peerID=n,e.fromID=e.pFlags.post?n:e.from_id,e.signID=e.pFlags.post&&e.from_id||u&&u.channel_id&&u.from_id,e.via_bot_id>0&&(e.viaBotID=e.via_bot_id);var g={user_id:e.fromID,date:e.date};if(e.media)switch(e.media._){case"messageMediaEmpty":delete e.media;break;case"messageMediaPhoto":d.savePhoto(e.media.photo,g);break;case"messageMediaDocument":p.saveDoc(e.media.document,g);break;case"messageMediaWebPage":h.saveWebPage(e.media.webpage,e.mid,g);break;case"messageMediaGame":f.saveGame(e.media.game,e.mid,g),e.media.handleMessage=!0;break;case"messageMediaInvoice":e.media={_:"messageMediaUnsupported"}}if(e.action){var _,y;switch(e.action._){case"messageActionChatEditPhoto":d.savePhoto(e.action.photo,g),i&&(e.action._="messageActionChannelEditPhoto");break;case"messageActionChatEditTitle":i&&(e.action._="messageActionChannelEditTitle");break;case"messageActionChatDeletePhoto":i&&(e.action._="messageActionChannelDeletePhoto");break;case"messageActionChatAddUser":1==e.action.users.length?(e.action.user_id=e.action.users[0],e.fromID==e.action.user_id&&(a?e.action._="messageActionChatJoined":e.action._="messageActionChatReturn")):e.action.users.length>1&&(e.action._="messageActionChatAddUsers");break;case"messageActionChatDeleteUser":e.fromID==e.action.user_id&&(e.action._="messageActionChatLeave");break;case"messageActionChannelMigrateFrom":_=-e.action.chat_id,y=-r;break;case"messageActionChatMigrateTo":_=-r,y=-e.action.channel_id;break;case"messageActionHistoryClear":e.deleted=!0,e.clear_history=!0,e.pFlags.out=!1,e.pFlags.unread=!1;break;case"messageActionPhoneCall":delete e.fromID,e.action.type=(e.pFlags.out?"out_":"in_")+("phoneCallDiscardReasonMissed"==e.action.reason._||"phoneCallDiscardReasonBusy"==e.action.reason._?"missed":"ok")}_&&y&&!it[_]&&!st[y]&&O(_,y)}if(e.message&&e.message.length){var w=b.parseEntities(e.message),k=e.entities||[];e.totalEntities=b.mergeEntities(w,k,!e.pending)}e.canBeEdited=z(e),t.isEdited||(Te[s]=e)}})}function ne(e,n,a){if(angular.isString(n)){a=a||{};var r=a.entities||[];if(a.viaBotID||(n=b.parseMarkdown(n,r)),n.length){var i,l=de(r),d=je--,p=[nextRandomInt(4294967295),nextRandomInt(4294967295)],u=bigint(p[0]).shiftLeft(32).add(bigint(p[1])).toString(),h=Re[e],f=0,y={},w=a.replyToMsgID,k=c.isChannel(e),$=k&&c.isMegagroup(e),C=!(!k||$);void 0===h&&(h=Re[e]={count:null,history:[],pending:[]});var S=o.getSelf().id;e!=S&&(f|=2,y.out=!0,k||o.isBot(e)||(f|=1,y.unread=!0)),w&&(f|=8),C?(S=0,y.post=!0):f|=256,i={_:"message",id:d,from_id:S,to_id:c.getOutputPeer(e),flags:f,pFlags:y,date:tsNow(!0)+v.serverTimeOffset,message:n,random_id:u,reply_to_msg_id:w,via_bot_id:a.viaBotID,reply_markup:a.reply_markup,entities:r,views:C&&1,pending:!0};var M=function(e){var n=De[d];e?(i.error=!0,n&&(n.error=!0)):(delete i.error,n&&delete n.error),t.$broadcast("messages_pending")};i.send=function(){M(!1);var t={};Oe[e]&&(t.afterMessageID=Oe[e].messageID);var r=0;w&&(r|=1),C&&(r|=16),a.clearDraft&&(r|=128);var o;a.viaBotID?o=_.invokeApi("messages.sendInlineBotResult",{flags:r,peer:c.getInputPeerByID(e),random_id:p,reply_to_msg_id:m.getMessageLocalID(w),query_id:a.queryID,id:a.resultID},t):(l.length&&(r|=8),o=_.invokeApi("messages.sendMessage",{flags:r,peer:c.getInputPeerByID(e),message:n,random_id:p,reply_to_msg_id:m.getMessageLocalID(w),entities:l},t)),o.then(function(e){"updateShortSentMessage"==e._?(i.flags=e.flags,i.date=e.date,i.id=e.id,i.media=e.media,i.entities=e.entities,e={_:"updates",users:[],chats:[],seq:0,updates:[{_:"updateMessageID",random_id:u,id:e.id},{_:k?"updateNewChannelMessage":"updateNewMessage",message:i,pts:e.pts,pts_count:e.pts_count}]}):e.updates&&angular.forEach(e.updates,function(e){"updateDraftMessage"==e._&&(e.local=!0)}),s.processUpdateMessage(e)},function(e){M(!0)})["finally"](function(){Oe[e]===t&&delete Oe[e]}),Oe[e]=t},te([i]),h.pending.unshift(d),t.$broadcast("history_append",{peerID:e,messageID:d,my:!0}),setZeroTimeout(i.send),a.clearDraft&&g.clearDraft(e),Fe[u]=[e,d]}}}function ae(n,a,r){r=r||{};var i,l,d=je--,p=[nextRandomInt(4294967295),nextRandomInt(4294967295)],u=bigint(p[0]).shiftLeft(32).add(bigint(p[1])).toString(),g=Re[n],h=0,f={},b=r.replyToMsgID,w=c.isChannel(n),k=w&&c.isMegagroup(n),$=!(!w||k);r.isMedia?["image/jpeg","image/png","image/bmp"].indexOf(a.type)>=0?(i="photo",l="photo."+a.type.split("/")[1]):"audio/"==a.type.substr(0,6)||["video/ogg"].indexOf(a.type)>=0?(i="audio",l="audio."+("ogg"==a.type.split("/")[1]?"ogg":"mp3")):"video/"==a.type.substr(0,6)?(i="video",l="video.mp4"):(i="document",l="document."+a.type.split("/")[1]):(i="document",l="document."+a.type.split("/")[1]),void 0===g&&(g=Re[n]={count:null,history:[],pending:[]});var C=o.getSelf().id;n!=C&&(h|=2,f.out=!0,w||o.isBot(n)||(h|=1,f.unread=!0)),b&&(h|=8),$?(C=0,f.post=!0):h|=256;var S,M={_:"messageMediaPending",type:i,file_name:a.name||l,size:a.size,progress:{percent:1,total:a.size}},x={_:"message",id:d,from_id:C,to_id:c.getOutputPeer(n),flags:h,pFlags:f,date:tsNow(!0)+v.serverTimeOffset,message:"",media:M,random_id:u,reply_to_msg_id:b,views:$&&1,pending:!0},I=function(e){var n=De[d];e?(x.error=!0,n&&(n.error=!0)):(delete x.error,n&&delete n.error),t.$broadcast("messages_pending")},A=!1;x.send=function(){var r=e.defer();Le.then(function(){A&&!x.error||(A=!1,S=y.uploadFile(a)),S.then(function(e){e.name=l,A=!0;var t;switch(i){case"photo":t={_:"inputMediaUploadedPhoto",flags:0,file:e};break;case"document":default:t={_:"inputMediaUploadedDocument",file:e,mime_type:a.type,caption:"",attributes:[{_:"documentAttributeFilename",file_name:a.name}]}}var r=0;b&&(r|=1),$&&(r|=16),_.invokeApi("messages.sendMedia",{flags:r,peer:c.getInputPeerByID(n),media:t,random_id:p,reply_to_msg_id:m.getMessageLocalID(b)}).then(function(e){s.processUpdateMessage(e)},function(e){return"photo"!=i||400!=e.code||"PHOTO_INVALID_DIMENSIONS"!=e.type&&"PHOTO_SAVE_FILE_INVALID"!=e.type?void I(!0):(e.handled=!0,i="document",void x.send())})},function(e){I(!0)},function(e){M.progress.done=e.done,M.progress.percent=Math.max(1,Math.floor(100*e.done/e.total)),t.$broadcast("history_update",{peerID:n})}),M.progress.cancel=function(){A||(r.resolve(),S.cancel(),le(u))},S["finally"](function(){r.resolve()})}),Le=r.promise},te([x]),g.pending.unshift(d),t.$broadcast("history_append",{peerID:n,messageID:d,my:!0}),setZeroTimeout(x.send),Fe[u]=[n,d]}function re(e,n,a){a=a||{};var r=je--,i=[nextRandomInt(4294967295),nextRandomInt(4294967295)],l=bigint(i[0]).shiftLeft(32).add(bigint(i[1])).toString(),h=Re[e],f=a.replyToMsgID,y=c.isChannel(e),b=y&&c.isMegagroup(e),w=!(!y||b);void 0===h&&(h=Re[e]={count:null,history:[],pending:[]});var k,$=o.getSelf().id;switch(n._){case"inputMediaPhoto":k={_:"messageMediaPhoto",photo:d.getPhoto(n.id.id),caption:n.caption||""};break;case"inputMediaDocument":var C=p.getDoc(n.id.id);C.sticker&&C.stickerSetInput&&u.pushPopularSticker(C.id),k={_:"messageMediaDocument",document:C,caption:n.caption||""};break;case"inputMediaContact":k={_:"messageMediaContact",phone_number:n.phone_number,first_name:n.first_name,last_name:n.last_name,user_id:0};break;case"inputMediaGeoPoint":k={_:"messageMediaGeo",geo:{_:"geoPoint",lat:n.geo_point.lat,"long":n.geo_point["long"]}};break;case"inputMediaVenue":k={_:"messageMediaVenue",geo:{_:"geoPoint",lat:n.geo_point.lat,"long":n.geo_point["long"]},title:n.title,address:n.address,provider:n.provider,venue_id:n.venue_id};break;case"messageMediaPending":k=n}var S=0,M={};e!=$&&(S|=2,M.out=!0,o.isBot(e)||(S|=1,M.unread=!0)),f&&(S|=8),w?($=0,M.post=!0):S|=256;var x={_:"message",id:r,from_id:$,to_id:c.getOutputPeer(e),flags:S,pFlags:M,date:tsNow(!0)+v.serverTimeOffset,message:"",media:k,random_id:l,reply_to_msg_id:f,via_bot_id:a.viaBotID,reply_markup:a.reply_markup,views:w&&1,pending:!0},I=function(e){var n=De[r];e?(x.error=!0,n&&(n.error=!0)):(delete x.error,n&&delete n.error),t.$broadcast("messages_pending")};x.send=function(){var t=0;f&&(t|=1),w&&(t|=16),a.clearDraft&&(t|=128);var r={};Oe[e]&&(r.afterMessageID=Oe[e].messageID);var o;o=a.viaBotID?_.invokeApi("messages.sendInlineBotResult",{flags:t,peer:c.getInputPeerByID(e),random_id:i,reply_to_msg_id:m.getMessageLocalID(f),query_id:a.queryID,id:a.resultID},r):_.invokeApi("messages.sendMedia",{flags:t,peer:c.getInputPeerByID(e),media:n,random_id:i,reply_to_msg_id:m.getMessageLocalID(f)},r),o.then(function(e){e.updates&&angular.forEach(e.updates,function(e){"updateDraftMessage"==e._&&(e.local=!0)}),s.processUpdateMessage(e)},function(e){I(!0)})["finally"](function(){Oe[e]===r&&delete Oe[e]}),Oe[e]=r},te([x]),h.pending.unshift(r),t.$broadcast("history_append",{peerID:e,messageID:r,my:!0}),setZeroTimeout(x.send),a.clearDraft&&g.clearDraft(e),Fe[l]=[e,r]}function ie(t,n,a){n=n.sort(),a=a||{};var r=0,i=c.isChannel(t),o=i&&c.isMegagroup(t),l=!(!i||o);l&&(r|=16),a.withMyScore&&(r|=256);var d=m.splitMessageIDsByChannels(n),p=[];return angular.forEach(d.msgIDs,function(e,n){for(var a=e.length,i=[],o=0;o<a;o++)i.push([nextRandomInt(4294967295),nextRandomInt(4294967295)]);var l={};Oe[t]&&(l.afterMessageID=Oe[t].messageID);var d=_.invokeApi("messages.forwardMessages",{flags:r,from_peer:c.getInputPeerByID(-n),id:e,random_id:i,to_peer:c.getInputPeerByID(t)},l).then(function(e){s.processUpdateMessage(e)})["finally"](function(){Oe[t]===l&&delete Oe[t]});Oe[t]=l,p.push(d)}),e.all(p)}function se(e,t,n){var a=t?-t:e;if(n){var r=bigint(nextRandomInt(4294967295)).shiftLeft(32).add(bigint(nextRandomInt(4294967295))).toString();return _.invokeApi("messages.startBot",{bot:o.getUserInput(e),peer:c.getInputPeerByID(a),random_id:r,start_param:n}).then(function(e){s.processUpdateMessage(e)})}return t?l.isChannel(t)?_.invokeApi("channels.inviteToChannel",{channel:l.getChannelInput(t),users:[o.getUserInput(e)]}).then(function(e){s.processUpdateMessage(e),ne(a,"/start@"+bot.username)},function(t){if(t&&"USER_ALREADY_PARTICIPANT"==t.type){var n=o.getUser(e);ne(a,"/start@"+n.username),t.handled=!0}}):_.invokeApi("messages.addChatUser",{chat_id:l.getChatInput(t),user_id:o.getUserInput(e)}).then(function(e){s.processUpdateMessage(e),ne(a,"/start@"+bot.username)},function(t){if(t&&"USER_ALREADY_PARTICIPANT"==t.type){var n=o.getUser(e);ne(a,"/start@"+n.username),t.handled=!0}}):ne(a,"/start")}function oe(e,t,n){var a=bigint(nextRandomInt(4294967295)).shiftLeft(32).add(bigint(nextRandomInt(4294967295))).toString();return _.invokeApi("messages.sendMedia",{flags:0,peer:c.getInputPeerByID(t),media:{_:"inputMediaGame",id:n},random_id:a}).then(function(e){s.processUpdateMessage(e)})}function le(e){var t=Fe[e];if(console.log("pending",e,t),t){var n=t[0],a=t[1],r=Re[n],i=r.pending.indexOf(a);return s.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteMessages",messages:[a]}}),i!=-1&&r.pending.splice(i,1),delete De[a],delete Te[a],!0}return!1}function ce(e,n){var a=Fe[e];if(a){var r,i,s=a[0],o=a[1],l=Re[s],c=l.pending.indexOf(o);return c!=-1&&l.pending.splice(c,1),(r=Te[o])&&(delete r.pending,delete r.error,delete r.random_id,delete r.send),(i=De[o])&&(De[n.mid]=angular.extend(i,fe(n.mid)),delete i.pending,delete i.error,delete i.random_id,delete i.send,t.$broadcast("messages_pending")),delete De[o],delete Te[o],r}return!1}function de(e){var t=angular.copy(e);return angular.forEach(t,function(e){"messageEntityMentionName"==e._&&(e._="inputMessageEntityMentionName",e.user_id=o.getUserInput(e.user_id))}),t}function pe(t,n){if(!angular.isString(n)||!W(t))return e.reject();var a=[];n=b.parseMarkdown(n,a);var r=V(t),i=ue(r),o=2056;return _.invokeApi("messages.editMessage",{flags:o,peer:c.getInputPeerByID(i),id:m.getMessageLocalID(t),message:n,entities:de(a)}).then(function(e){s.processUpdateMessage(e)},function(t){return t&&"MESSAGE_NOT_MODIFIED"==t.type?void(t.handled=!0):(t&&"MESSAGE_EMPTY"==t.type&&(t.handled=!0),e.reject(t))})}function ue(e){var t=e.to_id&&c.getPeerID(e.to_id)||0;return t<0?t:e.pFlags&&e.pFlags.out||2&e.flags?t:e.from_id}function me(e,t){var n=e&&void 0!==t,a=t&&t.unread_count;if(n&&void 0!==Pe[e])return delete Pe[e].typing,Pe[e].unreadCount=a,Pe[e];var r=angular.copy(Te[e]);if(!r||!r.to_id){if(!t||!t.peerID)return r;
r={_:"message",to_id:c.getOutputPeer(t.peerID),deleted:!0,date:tsNow(!0),pFlags:{}}}return r.peerID=ue(r),r.peerData=c.getPeer(r.peerID),r.peerString=c.getPeerString(r.peerID),r.unreadCount=a,r.index=t&&t.index||65536*r.date,r.pinned=t&&t.pFlags.pinned||!1,"messageService"==r._&&r.action.user_id&&(r.action.user=o.getUser(r.action.user_id)),r.message&&r.message.length&&(r.richMessage=b.wrapRichText(r.message.substr(0,64),{noLinks:!0,noLinebreaks:!0})),r.dateText=Je(r.date),n&&(r.draft=g.getServerDraft(r.peerID),Pe[e]=r),r}function ge(e){return Te[e]?me(e):(We.indexOf(e)==-1&&(We.push(e),Ge===!1&&(Ge=setTimeout(ve,100))),{mid:e,loading:!0})}function he(e){delete Pe[e]}function fe(e){if(void 0!==De[e])return De[e];var t=angular.copy(Te[e])||{id:e};t.media&&void 0!==t.media.progress&&(t.media.progress=Te[e].media.progress);var n=t.from_id&&o.getUser(t.from_id),a=n&&n.pFlags.bot&&n.username||!1,r=a||t.to_id&&(t.to_id.chat_id||t.to_id.user_id&&o.isBot(t.to_id.user_id));if(t.media)switch(t.media.caption&&t.media.caption.length&&(t.media.rCaption=b.wrapRichText(t.media.caption,{noCommands:!r,fromBot:a})),t.media._){case"messageMediaPhoto":t.media.photo=d.wrapForHistory(t.media.photo.id);break;case"messageMediaDocument":t.media.document=p.wrapForHistory(t.media.document.id);break;case"messageMediaGeo":var s="https://maps.google.com/?q="+t.media.geo.lat+","+t.media.geo["long"];t.media.mapUrl=i.trustAsResourceUrl(s);break;case"messageMediaVenue":var s;s="foursquare"==t.media.provider&&t.media.venue_id?"https://foursquare.com/v/"+encodeURIComponent(t.media.venue_id):"https://maps.google.com/?q="+t.media.geo.lat+","+t.media.geo["long"],t.media.mapUrl=i.trustAsResourceUrl(s);break;case"messageMediaContact":t.media.rFullName=b.wrapRichText(t.media.first_name+" "+(t.media.last_name||""),{noLinks:!0,noLinebreaks:!0});break;case"messageMediaWebPage":if(!t.media.webpage||"webPageEmpty"==t.media.webpage._){delete t.media;break}t.media.webpage=h.wrapForHistory(t.media.webpage.id);break;case"messageMediaGame":t.media.game=f.wrapForHistory(t.media.game.id)}else if(t.action)switch(t.action._){case"messageActionChatEditPhoto":case"messageActionChannelEditPhoto":t.action.photo=d.wrapForHistory(t.action.photo.id);break;case"messageActionChatCreate":case"messageActionChatEditTitle":case"messageActionChannelCreate":case"messageActionChannelEditTitle":t.action.rTitle=b.wrapRichText(t.action.title,{noLinebreaks:!0})||x("chat_title_deleted");break;case"messageActionBotIntro":t.action.rDescription=b.wrapRichText(t.action.description,{noCommands:!r,fromBot:a})}return De[e]=t}function _e(e,t){if(!e||"replyKeyboardHide"==e._)return!1;if(e.wrapped)return e;var n="replyInlineMarkup"==e._,a=e.rows&&e.rows.length||0;return!(!n&&a>0&&a<=4)||e.pFlags&&e.pFlags.resize||(e.splitCount=a),e.wrapped=!0,angular.forEach(e.rows,function(e){angular.forEach(e.buttons,function(e){if(e.rText=b.wrapRichText(e.text,{noLinks:!0,noLinebreaks:!0}),"keyboardButtonUrl"==e._){var n=o.getUser(t),a=!(n&&n.pFlags&&n.pFlags.verified);e.pUrl=b.wrapUrl(e.url,a)}})}),e}function ye(e){var t=V(e),n=t.from_id&&o.getUser(t.from_id),a=n&&n.pFlags.bot&&n.username||!1,r=c.getPeerID(t.to_id),i=a||c.isBot(r)||c.isAnyGroup(r),s={noCommands:!i,fromBot:a,entities:t.totalEntities};if(t.pFlags.mentioned){var l=o.getSelf();l&&(s.highlightUsername=l.username)}return b.wrapRichText(t.message,s)}function ve(){if(Ge!==!1&&(clearTimeout(Ge),Ge=!1),We.length){var e=We.slice();We=[];var n=m.splitMessageIDsByChannels(e);angular.forEach(n.msgIDs,function(e,a){var r;r=a>0?_.invokeApi("channels.getMessages",{channel:l.getChannelInput(a),id:e}):_.invokeApi("messages.getMessages",{id:e}),r.then(function(e){o.saveApiUsers(e.users),l.saveApiChats(e.chats),te(e.messages),t.$broadcast("messages_downloaded",n.mids[a])})})}}function be(){if(Ze!==!1&&(clearTimeout(Ze),Ze=!1),Ye.length){var e=Ye.slice();Ye=[];var t=m.splitMessageIDsByChannels(e);angular.forEach(t.msgIDs,function(e,n){_.invokeApi("messages.getMessagesViews",{peer:c.getInputPeerByID(-n),id:e,increment:!0}).then(function(e){if(n){for(var a=t.mids[n],r=[],i=0;i<a.length;i++)r.push({_:"updateChannelMessageViews",channel_id:n,id:a[i],views:e[i]});s.processUpdateMessage({_:"updates",updates:r,chats:[],users:[]})}})})}}function we(e,t){if(!e||!e.length)return!1;var n,a,r,i,s,o,l,c=0,d=e.length,p=d,u=!1,m=!Config.Mobile;for(t>0?p=Math.min(t,d):t<0&&(c=Math.max(0,p+t)),n=c;n<p;n++)if(e[n].deleted)e.splice(n,1),p--;else{if(i=e[n],a=Math.floor((i.date+v.midnightOffset)/86400),l=s&&s.grouped,o=i.grouped,a===r?i.needDate&&(delete i.needDate,u=!0):n&&!s||i.needDate||(i.needDate=!0,u=!0),i.fwdFromID&&i.media&&i.media.document&&(i.media.document.sticker||i.media.document.audioTitle)&&(i.fromID!=(s||{}).fromID||!(s||{}).fwdFromID)&&(delete i.fwdFromID,i._="message"),i.views&&!Ke[i.mid]&&(Ke[i.mid]=!0,Ye.push(i.mid),Ze===!1&&(Ze=setTimeout(be,1e4))),s&&s.fromID==i.fromID&&!s.fwdFromID==!i.fwdFromID&&s.viaBotID==i.viaBotID&&!s.action&&!i.action&&i.date<s.date+900){var g=i.message&&i.message.length<70&&i.message.indexOf("\n")==-1&&!i.reply_to_mid;m&&i.fwdFromID&&i.fwdFromID==s.fwdFromID&&i.viaBotID==s.viaBotID?i.grouped=g?"im_grouped_fwd_short":"im_grouped_fwd":i.grouped=!i.fwdFromID&&g?"im_grouped_short":"im_grouped",m&&i.fwdFromID&&(s.grouped||(s.grouped="im_grouped_fwd_start"),i.grouped&&n==d-1&&(i.grouped+=" im_grouped_fwd_end"))}else!s&&n||(delete i.grouped,m&&s&&s.grouped&&s.fwdFromID&&(s.grouped+=" im_grouped_fwd_end"));u||l==(s&&s.grouped)||(u=!0),s=i,r=a}return u||o==(s&&s.grouped)||(u=!0),u}function ke(e,t,n){var a,r=!1;if(e.media)switch(e.media._){case"messageMediaPhoto":a=d.choosePhotoSize(e.media.photo,t,n);break;case"messageMediaDocument":a=e.media.document.thumb,e.media.document.sticker&&(r=!0)}if(a&&"photoSizeEmpty"!=a._){var i=calcImageInBox(a.w,a.h,t,n,!0),s={width:i.w,height:i.h,location:a.location,size:a.size};return r&&(s.location.sticker=!0),s}return!1}function $e(e){return!(!e||Xe&&!(e>Xe))&&(k.set({max_seen_msg:e}),void _.invokeApi("messages.receivedMessages",{max_id:e}))}function Ce(e,n){n=n||{};var a,r,i=ue(e),s={},c=!1,d=w.getNotifySettings();if(e.fwdFromID&&n.fwd_count)c=Qe(n.fwd_count);else if(e.message)c=d.nopreview?x("conversation_message_sent"):b.wrapPlainText(e.message);else if(e.media){var p=!1;switch(e.media._){case"messageMediaPhoto":c=x("conversation_media_photo_raw"),p="🖼";break;case"messageMediaDocument":switch(e.media.document.type){case"gif":c=x("conversation_media_gif_raw"),p="🎬";break;case"sticker":c=x("conversation_media_sticker");var u=e.media.document.stickerEmojiRaw;void 0!==u&&(c=b.wrapPlainText(u)+" "+c);break;case"video":c=x("conversation_media_video_raw"),p="📹";break;case"round":c=x("conversation_media_round_raw"),p="📹";break;case"voice":case"audio":c=x("conversation_media_audio_raw");break;default:e.media.document.file_name?c=b.wrapPlainText("📎 "+e.media.document.file_name):(c=x("conversation_media_document_raw"),p="📎")}break;case"messageMediaGeo":case"messageMediaVenue":c=x("conversation_media_location_raw"),p="📍";break;case"messageMediaContact":c=x("conversation_media_contact_raw");break;case"messageMediaGame":c=b.wrapPlainText("🎮 "+e.media.game.title);break;case"messageMediaUnsupported":c=x("conversation_media_unsupported_raw");break;default:c=x("conversation_media_attachment_raw")}p!==!1&&e.media.caption&&(c=b.wrapPlainText(p+" "+e.media.caption))}else if("messageService"==e._)switch(e.action._){case"messageActionChatCreate":c=x("conversation_group_created_raw");break;case"messageActionChatEditTitle":c=x("conversation_group_renamed_raw");break;case"messageActionChatEditPhoto":c=x("conversation_group_photo_updated_raw");break;case"messageActionChatDeletePhoto":c=x("conversation_group_photo_removed_raw");break;case"messageActionChatAddUser":case"messageActionChatAddUsers":c=x("conversation_invited_user_message_raw");break;case"messageActionChatReturn":c=x("conversation_returned_to_group_raw");break;case"messageActionChatJoined":c=x("conversation_joined_group_raw");break;case"messageActionChatDeleteUser":c=x("conversation_kicked_user_message_raw");break;case"messageActionChatLeave":c=x("conversation_left_group_raw");break;case"messageActionChatJoinedByLink":c=x("conversation_joined_by_link_raw");break;case"messageActionChannelCreate":c=x("conversation_created_channel_raw");break;case"messageActionChannelEditTitle":c=x("conversation_changed_channel_name_raw");break;case"messageActionChannelEditPhoto":c=x("conversation_changed_channel_photo_raw");break;case"messageActionChannelDeletePhoto":c=x("conversation_removed_channel_photo_raw");break;case"messageActionPinMessage":c=x("conversation_pinned_message_raw");break;case"messageActionGameScore":c=et(e.action.score);break;case"messageActionPhoneCall":switch(e.action.type){case"out_missed":c=x("message_service_phonecall_canceled_raw");break;case"in_missed":c=x("message_service_phonecall_missed_raw");break;case"out_ok":c=x("message_service_phonecall_outgoing_raw");break;case"in_ok":c=x("message_service_phonecall_incoming_raw")}}if(i>0){var m=o.getUser(e.from_id),g=o.getUserPhoto(e.from_id);s.title=(m.first_name||"")+(m.first_name&&m.last_name?" ":"")+(m.last_name||""),s.title||(s.title=m.phone||x("conversation_unknown_user_raw")),r=g,a=o.getUserString(i)}else{if(s.title=l.getChat(-i).title||x("conversation_unknown_chat_raw"),e.from_id>0){var m=o.getUser(e.from_id);s.title=(m.first_name||m.last_name||x("conversation_unknown_user_raw"))+" @ "+s.title}r=l.getChatPhoto(-i),a=l.getChatString(-i)}s.title=b.wrapPlainText(s.title),s.onclick=function(){t.$broadcast("history_focus",{peerString:a,messageID:16&e.flags?e.mid:0})},s.message=c,s.key="msg"+e.mid,s.tag=a,s.silent=e.pFlags.silent||!1,r.location&&!r.location.empty?y.downloadSmallFile(r.location,r.size).then(function(t){e.pFlags.unread&&(s.image=t,w.notify(s))}):w.notify(s)}function Se(){r.cancel(ot),ot=!1,t.$broadcast("history_multiappend",lt),lt={}}function Me(){r.cancel(ct),ct=!1;var e=0;angular.forEach(dt,function(t,n){t.reload?(Ae(n),delete dt[n]):(R(t),c.isChannel(n)||(e=Math.max(e,t.top_message||0)))}),e!==!1&&$e(e),t.$broadcast("dialogs_multiupdate",dt),dt={}}function xe(){r.cancel(pt),pt=!1;var e=t.idle.isIDLE&&M.isOtherDeviceActive()?3e4:1e3;angular.forEach(ut,function(t){t.isMutedPromise.then(function(n){var a=t.top_message;!n&&a.pFlags.unread&&setTimeout(function(){a.pFlags.unread&&Ce(a,{fwd_count:t.fwd_count})},e)})}),ut={}}function Ie(e){switch(e._){case"updateMessageID":var n=e.random_id,a=Fe[n];if(a){var i=a[0],s=c.isChannel(i)?-i:0;Ue[m.getFullMessageID(e.id,s)]=n}break;case"updateNewMessage":case"updateNewChannelMessage":var d=e.message,i=ue(d),p=Re[i],u=A(i);if(!u.length){dt[i]={reload:!0},ct||(ct=r(Me,0)),void 0===mt[i]&&(mt[i]=[]),mt[i].push(e);break}if("updateNewChannelMessage"==e._){var g=l.getChat(-i);if(g.pFlags&&(g.pFlags.left||g.pFlags.kicked))break}te([d],{isNew:!0}),void 0===p&&(p=Re[i]={count:null,history:[],pending:[]});var h=d.mid>0?p.history:p.pending;if(h.indexOf(d.mid)!=-1)return!1;var f=h[0];h.unshift(d.mid),d.mid>0&&d.mid<f&&h.sort(function(e,t){return t-e}),d.mid>0&&null!==p.count&&p.count++,H(p,d)&&t.$broadcast("history_reply_markup",{peerID:i}),!d.pFlags.out&&d.from_id&&o.forceUserOnline(d.from_id);var y,n=Ue[d.mid];n&&((y=ce(n,d))&&t.$broadcast("history_update",{peerID:i}),delete Ue[d.mid]),y||(void 0===lt[i]&&(lt[i]=[]),lt[i].push(d.mid),ot||(ot=r(Se,0)));var b=!d.pFlags.out&&d.pFlags.unread,k=u[0];if(k.top_message=d.mid,b&&k.unread_count++,k.pFlags.pinned&&k.index||(k.index=P(d.date)),dt[i]=k,ct||(ct=r(Me,0)),b&&(t.selectedPeerID!=i||t.idle.isIDLE)){var $=16&d.flags?d.from_id:i,C=ut[$];void 0===C&&(C=ut[$]={isMutedPromise:w.getPeerMuted($),fwd_count:0,from_id:0}),C.from_id!=d.from_id&&(C.from_id=d.from_id,C.fwd_count=0),d.fwdFromID&&C.fwd_count++,C.top_message=d,pt||(pt=r(xe,1e3))}break;case"updateDialogPinned":var i=c.getPeerID(e.peer),u=A(i);if(!u.length||!e.pFlags.pinned){dt[i]={reload:!0},ct||(ct=r(Me,0));break}var k=u[0];k.index=P(D()),k.pFlags.pinned=!0;break;case"updatePinnedDialogs":var M={};if(!e.order){_.invokeApi("messages.getPinnedDialogs",{}).then(function(e){e.dialogs.reverse(),Ee(e),angular.forEach(e.dialogs,function(e){M[e.peerID]=!0}),angular.forEach(Ne.dialogs,function(e){var t=e.peerID;e.pFlags.pinned&&!M[t]&&(dt[t]={reload:!0},ct||(ct=r(Me,0)))})});break}e.order.reverse(),angular.forEach(e.order,function(e){var t=c.getPeerID(e);M[t]=!0;var n=A(t);if(!n.length)return dt[t]={reload:!0},void(ct||(ct=r(Me,0)));var a=n[0];a.index=P(D()),a.pFlags.pinned=!0,dt[t]=a,ct||(ct=r(Me,0))}),angular.forEach(Ne.dialogs,function(e){var t=e.peerID;e.pFlags.pinned&&!M[t]&&(dt[t]={reload:!0},ct||(ct=r(Me,0)))});break;case"updateEditMessage":case"updateEditChannelMessage":var d=e.message,i=ue(d),s="peerChannel"==d.to_id._?-i:0,x=m.getFullMessageID(d.id,s);if(void 0===Te[x])break;te([d],{isEdited:!0}),safeReplaceObject(Te[x],d);var I=De[x];if(void 0!==I){delete De[x];var E=fe(x);safeReplaceObject(I,E),De[x]=I}var u=A(i)[0],T=u&&u.top_message==x;if(d.clear_history)T?t.$broadcast("dialog_flush",{peerID:i}):t.$broadcast("history_delete",{peerID:i,msgs:[x]});else if(t.$broadcast("message_edit",{peerID:i,id:d.id,mid:x}),T){var R={};R[i]=u,t.$broadcast("dialogs_multiupdate",R)}break;case"updateReadHistoryInbox":case"updateReadHistoryOutbox":case"updateReadChannelInbox":case"updateReadChannelOutbox":var N,d,F,U="updateReadHistoryOutbox"==e._||"updateReadChannelOutbox"==e._,s=e.channel_id,O=m.getFullMessageID(e.max_id,s),i=s?-s:c.getPeerID(e.peer),u=A(i),h=(Re[i]||{}).history||[],B=!1,L=h.length,j=!1;for(i>0&&U&&o.forceUserOnline(i),F=0;F<L;F++)if(N=h[F],!(N>O)&&(d=Te[N],d.pFlags.out==U)){if(!d.pFlags.unread)break;d&&d.pFlags.unread&&(d.pFlags.unread=!1,De[N]&&(De[N].pFlags.unread=!1,j||(j=!0)),Pe[N]&&(Pe[N].pFlags.unread=!1),d.pFlags.out||(u[0]&&(B=--u[0].unread_count),w.cancel("msg"+N)))}if(u[0]){!U&&B&&u[0].top_message<=O&&(B=u[0].unread_count=0);var q=U?"read_outbox_max_id":"read_inbox_max_id";u[0][q]=O}B!==!1&&t.$broadcast("dialog_unread",{peerID:i,count:B}),j&&t.$broadcast("messages_read");break;case"updateReadMessagesContents":var F,N,d,z,W=e.messages,G=W.length;for(F=0;F<G;F++)N=W[F],(d=Te[N])&&delete d.pFlags.media_unread,(z=De[N])&&delete z.pFlags.media_unread;break;case"updateDeleteMessages":case"updateDeleteChannelMessages":var N,d,F,i,u,h,K,Y,Z={},s=e.channel_id;for(F=0;F<e.messages.length;F++)N=m.getFullMessageID(e.messages[F],s),d=Te[N],d&&(i=ue(d),h=Z[i]||(Z[i]={count:0,unread:0,msgs:{}}),!d.pFlags.out&&d.pFlags.unread&&(h.unread++,w.cancel("msg"+N)),h.count++,h.msgs[N]=!0,De[N]&&(De[N].deleted=!0,delete De[N]),Pe[N]&&(Pe[N].deleted=!0,delete Pe[N]),d.deleted=!0,Te[N]={deleted:!0,id:N,from_id:d.from_id,to_id:d.to_id,flags:d.flags,pFlags:d.pFlags,date:d.date},K=lt[i],K&&K.length&&(Y=K.indexOf(N),Y!=-1&&K.splice(Y)));angular.forEach(Z,function(e,n){var a=Re[n];if(void 0!==a){for(var r=[],i=[],s=0;s<a.history.length;s++)e.msgs[a.history[s]]||r.push(a.history[s]);a.history=r,e.count&&null!==a.count&&a.count>0&&(a.count-=e.count,a.count<0&&(a.count=0));for(var s=0;s<a.pending.length;s++)e.msgs[a.pending[s]]||i.push(a.pending[s]);a.pending=i,t.$broadcast("history_delete",{peerID:n,msgs:e.msgs})}var o=A(n)[0];o&&(e.unread&&(o.unread_count-=e.unread,t.$broadcast("dialog_unread",{peerID:n,count:o.unread_count})),e.msgs[o.top_message]&&Ae(n))});break;case"updateChannel":var s=e.channel_id,i=-s,X=l.getChat(s),J="channel"==X._&&!X.pFlags.left&&!X.pFlags.kicked,u=A(i),Q=u.length>0,ee="channel"==X._&&(X.username||!X.pFlags.left&&!X.pFlags.kicked)&&!0||!1,ne=void 0!==Re[i];ee!=ne&&(delete Re[i],t.$broadcast("history_forbidden",i)),Q!=J&&(J?Ae(-s):u[0]&&(Ne.dialogs.splice(u[1],1),t.$broadcast("dialog_drop",{peerID:i})));break;case"updateChannelReload":var s=e.channel_id,i=-s,u=A(i);u[0]&&Ne.dialogs.splice(u[1],1),delete Re[i],Ae(-s).then(function(){t.$broadcast("history_reload",i)});break;case"updateChannelMessageViews":var ae=e.views,x=m.getFullMessageID(e.id,e.channel_id),d=V(x);d&&d.views&&d.views<ae&&(d.views=ae,t.$broadcast("message_views",{mid:x,views:ae}));break;case"updateServiceNotification":var re=777e3,i=re,N=je--,d={_:"message",id:N,from_id:re,to_id:c.getOutputPeer(i),flags:0,pFlags:{unread:!0},date:(e.inbox_date||tsNow(!0))+v.serverTimeOffset,message:e.message,media:e.media,entities:e.entities};if(o.hasUser(re)||o.saveApiUsers([{_:"user",id:re,pFlags:{verified:!0},access_hash:0,first_name:"Telegram",phone:"42777"}]),te([d]),e.inbox_date&&(Be[i]=N,Ie({_:"updateNewMessage",message:d})),e.pFlags.popup&&e.message){var z=fe(N);S.show({error:{code:400,type:"UPDATE_SERVICE_NOTIFICATION"},historyMessage:z})}}}function Ae(e){return _.invokeApi("messages.getPeerDialogs",{peers:[c.getInputPeerByID(e)]}).then(Ee)}function Ee(e){o.saveApiUsers(e.users),l.saveApiChats(e.chats),te(e.messages);var n={},a=!1;angular.forEach(e.dialogs,function(e){var r=c.getPeerID(e.peer),i=e.top_message,s=Be[r];if(s&&(!i||V(s).date>V(i).date)&&(e.top_message=i=s),i){var o=A(r).length>0;E(e),o?(he(i),t.$broadcast("dialog_top",e)):(n[r]=e,a=!0)}else{var l=A(r);l.length&&(Ne.dialogs.splice(l[1],1),t.$broadcast("dialog_drop",{peerID:r}))}void 0!==mt[r]&&(angular.forEach(mt[r],function(e){Ie(e)}),delete mt[r])}),a&&t.$broadcast("dialogs_multiupdate",n)}var Te={},De={},Pe={},Re={},Ne={count:null,dialogs:[]},Fe={},Ue={},Oe={},Be={},Le=e.when(),je=-1,He=SearchIndexManager.createIndex(),qe={query:!1},Ve={},ze=[],We=[],Ge=!1,Ke={},Ye=[],Ze=!1,Xe=!1;k.get("max_seen_msg").then(function(e){e&&!m.getMessageIDInfo(e)[1]&&(Xe=e)});var Je=a("dateOrTime"),Qe=x.pluralize("conversation_forwarded_X_messages"),et=x.pluralize("conversation_scored_X");w.start();var tt=!1,nt=0,at=0,rt=0,it={},st={},ot=!1,lt={},ct=!1,dt={},pt=!1,ut={},mt={};return t.$on("apiUpdate",function(e,t){Ie(t)}),t.$on("webpage_updated",function(e,n){angular.forEach(n.msgs,function(e){var a=De[e];a&&(a.media={_:"messageMediaWebPage",webpage:h.wrapForHistory(n.id)},t.$broadcast("message_edit",{peerID:ue(a),id:a.id,mid:e,justMedia:!0}))})}),t.$on("draft_updated",function(e,n){var a=n.peerID,r=n.draft,i=A(a)[0];if(i){var s;if(r&&r.date)s=r.date;else{var o=c.isChannel(a)?-a:0,s=V(i.top_message).date;if(o){var d=l.getChat(o);(!s||d.date&&d.date>s)&&(s=d.date)}}i.pFlags.pinned||(i.index=P(s)),R(i),t.$broadcast("dialog_draft",{peerID:a,draft:r,index:i.index})}}),{getConversations:I,getHistory:L,getSearch:q,getMessage:V,getReplyKeyboard:j,readHistory:X,readMessages:J,flushHistory:ee,deleteMessages:Y,sendText:ne,sendFile:ae,sendOther:re,forwardMessages:ie,startBot:se,shareGame:oe,editMessage:pe,convertMigratedPeer:B,getMessagePeer:ue,getMessageThumb:ke,getMessageShareLink:Z,canMessageBeEdited:z,canEditMessage:W,getMessageEditData:G,canRevokeMessage:K,clearDialogCache:he,wrapForDialog:me,wrapForHistory:fe,wrapReplyMarkup:_e,wrapSingleMessage:ge,wrapMessageText:ye,regroupWrappedHistory:we}}]).service("AppMessagesIDsManager",function(){function e(e,t){if(!t||e<=0)return e;e=n(e);var a=r[t];return a||(a=++s*o,i[a]=t,r[t]=a),a+e}function t(e){if(e<o)return[e,0];var t=e%o,n=i[e-t];return[t,n]}function n(e){return e?e%o:0}function a(e){var n,a,r,i,s={},o={};for(n=0;n<e.length;n++)a=e[n],r=t(a),i=r[1],void 0===s[i]&&(s[i]=[],o[i]=[]),s[i].push(r[0]),o[i].push(a);return{msgIDs:s,mids:o}}var r={},i={},s=0,o=4294967296;return{getFullMessageID:e,getMessageIDInfo:t,getMessageLocalID:n,splitMessageIDsByChannels:a,fullMsgIDModulus:o}}),angular.module("myApp.templates",[]).run(["$templateCache",function(e){e.put("partials/desktop/audio_player.html",'<div class="audio_player_wrap clearfix">\r\n\t<a class="im_message_file_button" ng-click="togglePlay()" ng-class="{im_message_file_button_dl_audio: audio.downloaded}">\r\n\t <i class="im_message_file_button_icon" ng-class="{audio_player_btn_icon_pause: mediaPlayer.player.playing}"></i>\r\n\t</a>\r\n\t<div class="audio_player_title_wrap">\r\n\t\t<div class="audio_player_meta pull-right" ng-if="audio.downloaded &amp;&amp; (mediaPlayer.player.duration || audio.duration)" ng-switch="mediaPlayer.player.playing || mediaPlayer.player.currentTime > 0">\r\n\t\t\t<span ng-switch-when="true" class="audio_player_duration" ng-bind="mediaPlayer.player.currentTime | durationRemains : (mediaPlayer.player.duration || audio.duration)"></span>\r\n\t\t\t<span ng-switch-default class="audio_player_duration" ng-bind="mediaPlayer.player.duration || audio.duration | duration"></span>\r\n\t\t</div>\r\n\t\t<span class="copyonly">[ </span>\r\n\t\t<a ng-attr-title="{{audio.file_name}}" ng-click="download()" class="audio_player_title" ng-switch="::audio.audioTitle.length > 0 ? 2 : (audio.file_name.length > 0 ? 1 : 0)">\r\n\t\t\t<span ng-switch-when="2">\r\n\t\t\t\t<strong ng-bind="::audio.audioPerformer"></strong>\r\n\t\t\t\t<span ng-bind="::(audio.audioPerformer ? \'– \' : \'\') + audio.audioTitle"></span>\r\n\t\t\t</span>\r\n\t\t\t<span ng-switch-when="1" ng-bind="::audio.file_name"></span>\r\n\t\t\t<span ng-switch-default my-i18n="message_attach_audio_message"></span>\r\n\t\t</a>\r\n\t\t<span class="copyonly">]</span>\r\n\t\t<i ng-if="::message.pFlags.media_unread || false" ng-show="message.pFlags.media_unread" class="icon icon-audio-unread"></i>\r\n\t\t<div class="audio_player_meta" ng-if="!audio.downloaded || !(mediaPlayer.player.duration || audio.duration)" ng-switch="audio.progress.enabled">\r\n\t\t\t<span ng-switch-when="true" class="audio_player_size" ng-bind="audio.progress | formatSizeProgress"></span>\r\n\t\t\t<span ng-switch-default class="audio_player_size" ng-bind="audio.size | formatSize"></span>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class="audio_player_actions noselect" ng-if="!audio.progress.enabled &amp;&amp; !audio.downloaded">\r\n <a class="nocopy" ng-if="audio._ == \'document\'" ng-click="download()" my-i18n="message_attach_document_download"></a>\r\n <a class="nocopy" ng-click="togglePlay()" my-i18n="message_attach_audio_play"></a>\r\n\t</div>\r\n\t<div class="audio_player_progress_wrap" ng-if="audio.progress.enabled || audio.downloaded" ng-switch="audio.progress.enabled">\r\n\t\t<div ng-switch-when="true" class="clearfix im_message_cancelable_progress_wrap">\r\n\t\t <a class="im_message_media_progress_cancel pull-right nocopy" ng-click="audio.progress.cancel()" my-i18n="modal_cancel"></a>\r\n\t\t <div class="im_message_download_progress_wrap">\r\n\t\t <div class="progress tg_down_progress">\r\n\t\t <div class="progress-bar progress-bar-success" ng-style="{width: audio.progress.percent + \'%\'}"></div>\r\n\t\t </div>\r\n\t\t </div>\r\n\t\t</div>\r\n\t <div ng-switch-default class="im_message_playback_progress_wrap">\r\n\t \t<div class="audio_player_seek_slider" my-slider slider-model="mediaPlayer.player.currentTime" slider-max="mediaPlayer.player.duration || audio.duration" slider-onchange="seek(value)"></div>\r\n\t \t<div class="audio_player_volume_slider" my-slider slider-model="mediaPlayer.player.volume" slider-min="0" slider-max="1" slider-onchange="setVolume(value)"></div>\r\n\t </div>\r\n\t</div>\r\n\t<audio ng-if="audio.url" media-player="mediaPlayer.player">\r\n\t <source ng-src="{{::audio.url}}" type="{{audio.mime_type || \'audio/ogg\'}}" volume="{{::volume}}" />\r\n\t</audio>\r\n</div>'),e.put("partials/desktop/changelog_modal.html",'<div class="changelog_modal_wrap md_modal_wrap" my-modal-position>\r\n\r\n <div class="md_modal_head">\r\n <div class="md_modal_title_wrap">\r\n <div class="md_modal_actions_wrap clearfix">\r\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\r\n </div>\r\n <div class="md_modal_title" my-i18n="head_about"></div>\r\n </div>\r\n\r\n <div class="peer_modal_profile_wrap clearfix">\r\n <div class="peer_modal_photo_wrap pull-left">\r\n <div class="peer_modal_photo telegram_modal_logo"></div>\r\n </div>\r\n <div class="peer_modal_profile">\r\n <div class="peer_modal_profile_name">Telegram Web</div>\r\n <div class="peer_modal_profile_description">Version {{currentVersion}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_split_actions_wrap">\r\n <div class="md_modal_split_actions">\r\n <a href="https://twitter.com/telegram_web" target="_blank" class="md_modal_split_action">\r\n <i class="md_modal_split_action_twitter"></i>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_body">\r\n\r\n <div class="md_modal_sections">\r\n\r\n <div class="md_modal_versioned_section_wrap">\r\n <div class="md_modal_section_description changelog_version_changes" my-i18n="changelog_modal_full_description_md"></div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div class="changelog_footer_wrap clearfix">\r\n <a class="changelog_github_link" href="https://github.com/zhukov/webogram" target="_blank">GitHub</a>\r\n <a class="changelog_more_link" href="https://github.com/zhukov/webogram/blob/master/CHANGELOG.md" target="_blank" my-i18n="changelog_modal_changelog_link"></a>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>'),e.put("partials/desktop/channel_edit_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body">\r\n\r\n <form class="modal_simple_form" ng-submit="updateChannel()">\r\n\r\n <h4 my-i18n="channel_edit_modal_title"></h4>\r\n\r\n <div class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="channel_edit_name"></label>\r\n <input class="md-input" my-focused type="text" ng-model="channel.title" />\r\n </div>\r\n\r\n <div class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="channel_edit_about"></label>\r\n <input class="md-input" type="text" ng-model="channel.about" />\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer">\r\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\r\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: channel.updating}" ng-click="updateChannel()" ng-bind="channel.updating ? \'channel_edit_submit_active\' : \'channel_edit_submit\' | i18n" ng-disabled="channel.updating"></button>\r\n </div>\r\n\r\n</div>'),e.put("partials/desktop/channel_modal.html",'<div class="chat_modal_wrap md_modal_wrap" my-modal-position>\r\n\r\n <div class="md_modal_head">\r\n <div class="md_modal_title_wrap">\r\n <div class="md_modal_actions_wrap clearfix">\r\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\r\n <a class="md_modal_action" ng-if="hasRights(\'edit_title\')" ng-click="editChannel()" my-i18n="modal_edit"></a>\r\n </div>\r\n <div class="md_modal_title" ng-switch="isMegagroup">\r\n <span ng-switch-when="true" my-i18n="group_modal_info"></span>\r\n <span ng-switch-default my-i18n="channel_modal_info"></span>\r\n </div>\r\n </div>\r\n\r\n <div class="peer_modal_profile_wrap clearfix">\r\n <div class="peer_modal_photo_wrap pull-left" ng-switch="photo.updating">\r\n <div ng-switch-when="true" class="peer_modal_photo md_photo_loading loading_dots">\r\n <i></i><i></i><i></i>\r\n </div>\r\n <a ng-switch-default ng-click="openPhoto(chatFull.chat_photo.id, {p: -chatFull.chat.id})" class="peer_modal_photo" my-peer-photolink="::-chatFull.chat.id" img-class="peer_modal_photo" no-open="true" watch="true" ng-class="{disabled: !chatFull.chat.photo.photo_small}" ng-disabled="!chatFull.chat.photo.photo_small"></a>\r\n </div>\r\n <div class="peer_modal_profile">\r\n <div class="peer_modal_profile_name" my-peer-link="-chatFull.chat.id" verified="true"></div>\r\n <div class="peer_modal_profile_description" ng-if="chatFull.participants_count > 0">\r\n <ng-pluralize count="chatFull.participants_count"\r\n when="group_modal_pluralize_participants">\r\n </ng-pluralize>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_split_actions_wrap">\r\n <div class="md_modal_split_actions" ng-switch="hasRights(\'edit_photo\')">\r\n <div ng-switch-when="true" class="md_modal_split_action">\r\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" title="{{\'group_modal_update_photo\' | i18n}}" />\r\n <i class="md_modal_split_action_camera"></i>\r\n </div>\r\n <a ng-switch-default class="md_modal_split_action" href="" ng-click="goToHistory()" title="{{\'user_modal_send_message\' | i18n}}">\r\n <i class="md_modal_split_action_msg"></i>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_body">\r\n\r\n <div class="md_modal_sections clearfix">\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_number" ng-if="chatFull.rAbout || chatFull.chat.username || chatFull.chat.pFlags.creator">\r\n <i class="md_modal_section_icon md_modal_section_icon_about"></i>\r\n\r\n <div class="md_modal_section_param_wrap" ng-if="chatFull.about.length > 0">\r\n <div class="md_modal_section_param_value">\r\n <span ng-bind-html="chatFull.rAbout"></span>\r\n </div>\r\n <div class="md_modal_section_param_name" my-i18n="channel_modal_description"></div>\r\n </div>\r\n\r\n <div class="md_modal_section_param_wrap" ng-if="chatFull.chat.username">\r\n <div class="md_modal_section_param_value">\r\n <a class="settings_modal_username_link" ng-click="shareLink($event)" ng-bind="\'https://t.me/\' + chatFull.chat.username" ng-href="https://t.me/{{chatFull.chat.username}}" target="_blank"></a>\r\n </div>\r\n <div class="md_modal_section_param_name" my-i18n="channel_modal_share_link"></div>\r\n </div>\r\n\r\n <div class="md_modal_section_param_wrap" ng-if="!chatFull.chat.username &amp;&amp; chatFull.chat.pFlags.creator">\r\n <div class="md_modal_section_param_value" ng-switch="chatFull.exported_invite._">\r\n <a ng-switch-when="chatInviteExported" class="settings_modal_username_link" ng-click="shareLink($event)" ng-bind="chatFull.exported_invite.link" ng-href="{{chatFull.exported_invite.link}}" target="_blank"></a>\r\n <span ng-switch-default my-i18n="channel_modal_share_loading">\r\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\r\n </span>\r\n </div>\r\n <div class="md_modal_section_param_name" my-i18n="channel_modal_share_link"></div>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-if="hasRights(\'invite\') || chatFull.chat.pFlags.left">\r\n <i class="md_modal_section_icon md_modal_section_icon_person"></i>\r\n\r\n <div class="md_modal_section_link_wrap" ng-switch="chatFull.chat.pFlags.left">\r\n <a ng-switch-when="true" class="md_modal_section_link" ng-click="joinChannel()" my-i18n="channel_modal_join"></a>\r\n <a ng-switch-default class="md_modal_section_link" ng-click="inviteToChannel()" my-i18n="channel_modal_add_member"></a>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_toggle">\r\n <i class="md_modal_section_icon md_modal_section_icon_notification"></i>\r\n\r\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="group_modal_notifications"></span>\r\n </a>\r\n\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-if="chatFull.chat.pFlags.creator || !chatFull.chat.pFlags.left && !chatFull.chat.pFlags.kicked && !isMegagroup">\r\n <i class="md_modal_section_icon md_modal_section_icon_more"></i>\r\n\r\n <div class="md_modal_section_link_wrap" ng-if="!chatFull.chat.pFlags.creator && !chatFull.chat.pFlags.left && !chatFull.chat.pFlags.kicked && !isMegagroup">\r\n <a class="md_modal_section_link" ng-click="leaveChannel()" my-i18n="channel_modal_leave_channel"></a>\r\n </div>\r\n\r\n <div class="md_modal_section_link_wrap" ng-if="chatFull.chat.pFlags.creator">\r\n <a class="md_modal_section_link md_modal_section_link_danger" ng-click="deleteChannel()" ng-switch="isMegagroup">\r\n <span ng-switch-when="true" my-i18n="group_modal_delete_group"></span>\r\n <span ng-switch-default my-i18n="channel_modal_delete_channel"></span>\r\n </a>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div ng-if="chatFull.participants.participants.length > 0">\r\n\r\n <div class="md_modal_section_splitter"></div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_peers">\r\n <i class="md_modal_section_icon md_modal_section_icon_people"></i>\r\n\r\n <div class="md_modal_section_peers_wrap">\r\n\r\n <div class="md_modal_list_peer_wrap clearfix" ng-repeat="participant in chatFull.participants.participants">\r\n\r\n <a ng-if="participant.canLeave" ng-click="leaveChannel()" class="md_modal_list_peer_action pull-right" my-i18n="group_modal_menu_leave"></a>\r\n <a ng-if="participant.canKick" ng-click="kickFromChannel(participant.user_id)" class="md_modal_list_peer_action pull-right" my-i18n="group_modal_members_kick"></a>\r\n\r\n <a class="md_modal_list_peer_photo pull-left" my-peer-photolink="::participant.user_id" img-class="md_modal_list_peer_photo"></a>\r\n\r\n <div class="md_modal_list_peer_name">\r\n <a class="md_modal_list_peer_name" my-peer-link="participant.user_id"></a>\r\n </div>\r\n <div class="md_modal_list_peer_description" my-user-status="::participant.user_id" bot-chat-privacy="true"></div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n</div>\r\n'),
e.put("partials/desktop/chat_create_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body">\r\n\r\n <form class="modal_simple_form" ng-submit="updateGroup()">\r\n\r\n <h4 my-i18n="group_create_modal_title"></h4>\r\n\r\n <div class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="group_create_name"></label>\r\n <input class="md-input" my-focused type="text" ng-model="group.name" />\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer">\r\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\r\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: group.creating}" ng-click="createGroup()" ng-bind="group.creating ? \'group_create_submit_active\' : \'group_create_submit\' | i18n" ng-disabled="group.creating"></button>\r\n </div>\r\n\r\n</div>'),e.put("partials/desktop/chat_edit_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body">\r\n\r\n <form class="modal_simple_form" ng-submit="updateGroup()">\r\n\r\n <h4 my-i18n="group_edit_modal_title"></h4>\r\n\r\n <div class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="group_edit_name"></label>\r\n <input class="md-input" my-focused type="text" ng-model="group.name" />\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer">\r\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\r\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: group.updating}" ng-click="updateGroup()" ng-bind="group.updating ? \'group_edit_submit_active\' : \'group_edit_submit\' | i18n" ng-disabled="group.updating"></button>\r\n </div>\r\n\r\n</div>'),e.put("partials/desktop/chat_invite_link_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body">\r\n\r\n <div class="modal_simple_form">\r\n\r\n <h4 my-i18n="group_invite_link_modal_title"></h4>\r\n\r\n <div ng-switch="exportedInvite.canRevoke">\r\n <div ng-switch-when="true">\r\n <div class="md-input-group md-textarea-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="group_invite_link_link_label"></label>\r\n <textarea class="md-input" ng-model="exportedInvite.link" rows="2" my-copy-field="\'ui_invite_select\'"></textarea>\r\n </div>\r\n </div>\r\n\r\n <div ng-switch-default>\r\n <div class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="group_invite_link_link_label"></label>\r\n <input class="md-input" type="text" ng-model="exportedInvite.link" my-copy-field="\'ui_invite_select\'" />\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer" ng-switch="exportedInvite.canRevoke">\r\n <div ng-switch-when="true">\r\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\r\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: exportedInvite.revoking}" ng-click="revokeLink()" ng-bind="exportedInvite.revoking ? \'group_invite_revoke_active\' : \'group_invite_revoke\' | i18n" ng-disabled="exportedInvite.revoking"></button>\r\n </div>\r\n </div>\r\n\r\n</div>'),e.put("partials/desktop/chat_modal.html",'<div class="chat_modal_wrap md_modal_wrap" my-modal-position>\r\n\r\n <div class="md_modal_head">\r\n <div class="md_modal_title_wrap">\r\n <div class="md_modal_actions_wrap clearfix">\r\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\r\n <a class="md_modal_action" ng-if="hasRights(\'edit_title\')" ng-click="editTitle()" my-i18n="modal_edit"></a>\r\n </div>\r\n <div class="md_modal_title" my-i18n="group_modal_info"></div>\r\n </div>\r\n\r\n <div class="peer_modal_profile_wrap clearfix">\r\n <div class="peer_modal_photo_wrap pull-left" ng-switch="photo.updating">\r\n <div ng-switch-when="true" class="peer_modal_photo md_photo_loading loading_dots">\r\n <i></i><i></i><i></i>\r\n </div>\r\n <a ng-switch-default ng-click="openPhoto(chatFull.chat_photo.id, {p: -chatFull.chat.id})" class="peer_modal_photo" my-peer-photolink="::-chatFull.chat.id" img-class="peer_modal_photo" no-open="true" watch="true" ng-class="{disabled: !chatFull.chat.photo.photo_small}" ng-disabled="!chatFull.chat.photo.photo_small"></a>\r\n </div>\r\n <div class="peer_modal_profile">\r\n <div class="peer_modal_profile_name" my-peer-link="-chatFull.chat.id"></div>\r\n <div class="peer_modal_profile_description" ng-if="chatFull.chat.participants_count > 0">\r\n <ng-pluralize count="chatFull.chat.participants_count"\r\n when="group_modal_pluralize_participants">\r\n </ng-pluralize>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_split_actions_wrap">\r\n <div class="md_modal_split_actions">\r\n <div class="md_modal_split_action">\r\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" title="{{\'group_modal_update_photo\' | i18n}}" />\r\n <i class="md_modal_split_action_camera"></i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_body">\r\n\r\n <div class="md_modal_sections clearfix">\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-if="hasRights(\'invite\') && chatFull.participants.participants.length < maxParticipants">\r\n <i class="md_modal_section_icon md_modal_section_icon_person"></i>\r\n\r\n <div class="md_modal_section_link_wrap">\r\n <a class="md_modal_section_link" ng-click="inviteToGroup()" my-i18n="group_modal_add_member"></a>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-if="chatFull.chat._ != \'chatForbidden\' && !chatFull.chat.pFlags.left && chatFull.chat.pFlags.creator">\r\n\r\n <div class="md_modal_section_link_wrap">\r\n <a class="md_modal_section_link" ng-click="inviteViaLink()" my-i18n="group_modal_menu_share_link"></a>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_toggle">\r\n <i class="md_modal_section_icon md_modal_section_icon_notification"></i>\r\n\r\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="group_modal_notifications"></span>\r\n </a>\r\n\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link">\r\n <i class="md_modal_section_icon md_modal_section_icon_more"></i>\r\n\r\n <div class="md_modal_section_link_wrap" ng-switch="chatFull.chat.pFlags.left || chatFull.chat.pFlags.kicked || chatFull.chat._ == \'chatForbidden\'">\r\n <a ng-switch-when="true" class="md_modal_section_link" ng-click="flushHistory(false)" my-i18n="group_modal_menu_delete_group"></a>\r\n <a ng-switch-default class="md_modal_section_link" ng-click="flushHistory(true)" my-i18n="group_modal_menu_clear_history"></a>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-if="chatFull.chat.pFlags.creator">\r\n\r\n <div class="md_modal_section_link_wrap">\r\n <a class="md_modal_section_link" ng-click="migrateToSuperGroup()" my-i18n="group_modal_migrate_to_supergroup"></a>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div ng-if="chatFull.chat._ != \'chatForbidden\' &amp;&amp; !chatFull.chat.pFlags.left &amp;&amp; chatFull.participants.participants.length > 0">\r\n\r\n <div ng-switch="chatFull.chat.pFlags.creator && needMigrate">\r\n <div ng-switch-when="true" class="md_modal_section_splitter md_modal_section_splitter_content">\r\n <h4 class="chat_modal_migrate_header" my-i18n="group_modal_migrate_header"></h4>\r\n <p class="chat_modal_migrate_description" my-i18n="group_modal_migrate_desc"></p>\r\n <ul class="chat_modal_migrate_list">\r\n <li my-i18n="group_modal_migrate_item1"></li>\r\n <li my-i18n="group_modal_migrate_item2"></li>\r\n <li my-i18n="group_modal_migrate_item3"></li>\r\n <li my-i18n="group_modal_migrate_item4"></li>\r\n </ul>\r\n </div>\r\n <div ng-switch-default class="md_modal_section_splitter"></div>\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_peers">\r\n <i class="md_modal_section_icon md_modal_section_icon_people"></i>\r\n\r\n <div class="md_modal_section_peers_wrap">\r\n\r\n <div class="md_modal_list_peer_wrap clearfix" ng-repeat="participant in chatFull.participants.participants | orderBy:\'-user.sortStatus\'">\r\n\r\n <a ng-if="participant.canLeave" ng-click="leaveGroup()" class="md_modal_list_peer_action pull-right" my-i18n="group_modal_menu_delete_group"></a>\r\n <a ng-if="participant.canKick" ng-click="kickFromGroup(participant.user_id)" class="md_modal_list_peer_action pull-right" my-i18n="group_modal_members_kick"></a>\r\n\r\n <a class="md_modal_list_peer_photo pull-left" my-peer-photolink="::participant.user_id" img-class="md_modal_list_peer_photo"></a>\r\n\r\n <div class="md_modal_list_peer_name">\r\n <a class="md_modal_list_peer_name" my-peer-link="participant.user_id"></a>\r\n </div>\r\n <div class="md_modal_list_peer_description" my-user-status="::participant.user_id" bot-chat-privacy="true"></div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n</div>\r\n'),e.put("partials/desktop/composer_dropdown.html",'<div ng-switch="type">\r\n\r\n <ul ng-switch-when="mentions" class="composer_dropdown">\r\n <li ng-repeat="user in mentionUsers">\r\n <a class="composer_mention_option" data-user-id="{{\'#\' + user.id}}" data-username="{{user.username}}" data-name="{{user.first_name}}">\r\n <span class="composer_user_photo" my-peer-photolink="user.id" img-class="composer_user_photo"></span>\r\n <span class="composer_user_name" ng-bind-html="user.rFullName"></span>\r\n <span class="composer_user_mention" ng-if="user.username.length > 0" ng-bind="\'@\' + user.username"></span>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <ul ng-switch-when="commands" class="composer_dropdown">\r\n <li ng-repeat="command in commands track by (command.botID + command.value)">\r\n <a class="composer_command_option" data-command="{{command.value}}">\r\n <span class="composer_user_photo" my-peer-photolink="command.botID" img-class="composer_user_photo"></span>\r\n <span class="composer_command_value" ng-bind="command.value"></span>\r\n <span class="composer_command_desc" ng-bind-html="command.rDescription"></span>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <ul ng-switch-when="emoji" my-emoji-suggestions="emojiCodes" class="composer_dropdown"></ul>\r\n\r\n <div ng-switch-when="inline" my-inline-results="botResults"></div>\r\n\r\n</div>'),e.put("partials/desktop/confirm_modal.html",'<div class="confirm_modal_wrap md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body">\r\n\r\n <div class="confirm_modal_description" ng-switch="type">\r\n <span ng-switch-when="LOGOUT" my-i18n="confirm_modal_logout"></span>\r\n <span ng-switch-when="WEBOGRAM_UPDATED_RELOAD" my-i18n="confirm_modal_update_reload"></span>\r\n <span ng-switch-when="HISTORY_FLUSH" my-i18n="confirm_modal_history_flush"></span>\r\n <span ng-switch-when="HISTORY_LEAVE_AND_FLUSH" my-i18n="confirm_modal_history_leave_flush_md"></span>\r\n <span ng-switch-when="HISTORY_FLUSH_AND_DELETE" my-i18n="confirm_modal_history_flush"></span>\r\n <span ng-switch-when="TERMINATE_SESSIONS" my-i18n="confirm_modal_terminate_sessions"></span>\r\n <span ng-switch-when="TERMINATE_SESSION" my-i18n="confirm_modal_terminate_session"></span>\r\n\r\n <span ng-switch-when="FILES_CLIPBOARD_PASTE">\r\n <ng-pluralize count="files.length"\r\n when="confirm_modal_clipboard_X_files_send">\r\n </ng-pluralize>\r\n </span>\r\n <div ng-switch-when="FILE_CLIPBOARD_PASTE">\r\n <span my-i18n="confirm_modal_clipboard_file_send"></span>\r\n <div class="confirm_modal_paste_image" ng-if="fileUrl !== false" ng-style="{backgroundImage: \'url(\' + fileUrl + \')\'}"></div>\r\n </div>\r\n <span ng-switch-when="MESSAGE_DELETE" my-i18n="confirm_modal_message_delete"></span>\r\n <span ng-switch-when="MESSAGES_DELETE">\r\n <span my-i18n="confirm_modal_delete_messages">\r\n <my-i18n-param name="messages"><strong><ng-pluralize when="confirm_modal_delete_X_messages" count="count"></ng-pluralize></strong></my-i18n-param>\r\n </span>\r\n\r\n <a class="tg_checkbox" ng-if="revocable" ng-click="data.revoke = !data.revoke" ng-class="data.revoke ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="confirm_modal_message_revoke">\r\n <my-i18n-param name="recipient" ng-switch="isUser">\r\n <span ng-switch-when="true" my-peer-link="peerID" short="true"></span>\r\n <span ng-switch-default my-i18n="confirm_modal_message_revoke_recipient_chat"></span>\r\n </my-i18n-param>\r\n </span>\r\n </a>\r\n <p class="tg_checkbox" ng-if="!revocable && !isChannel" ng-switch="isUser ? \'user\' : (isSupergroup ? \'supergroup\' : (isUsualGroup ? \'group\' : \'default\'))">\r\n <span ng-switch-when="supergroup" my-i18n="confirm_modal_delete_messages_for_everyone_chat"></span>\r\n <span ng-switch-when="group" my-i18n="confirm_modal_delete_messages_for_you_only_chat"></span>\r\n <span ng-switch-when="user" my-i18n="confirm_modal_delete_messages_for_you_only_pm"><my-i18n-param name="user"><strong my-peer-link="peerID"></strong></my-i18n-param></span>\r\n </p>\r\n </span>\r\n <span ng-switch-when="PHOTO_DELETE" my-i18n="confirm_modal_photo_delete"></span>\r\n <span ng-switch-when="CONTACTS_IMPORT_PERFORM" my-i18n="confirm_modal_contacts_import"></span>\r\n <div ng-switch-when="LOGIN_PHONE_CORRECT">\r\n <my-i18n msgid="confirm_modal_login_phone_correct"></my-i18n>\r\n <div class="confirm_phone_number">\r\n <span ng-bind="country_code"></span> <span ng-bind="phone_number"></span>\r\n </div>\r\n </div>\r\n <my-i18n>\r\n <span ng-switch-when="FORWARD_PEER" my-i18n-format="confirm_modal_forward_to_peer"></span>\r\n <span ng-switch-when="SHARE_CONTACT_PEER" my-i18n-format="confirm_modal_send_to_peer"></span>\r\n <span ng-switch-when="SHARE_URL" my-i18n-format="confirm_modal_send_to_peer"></span>\r\n <span ng-switch-when="EXT_SHARE_PEER" my-i18n-format="confirm_modal_share_file_peer"></span>\r\n <span ng-switch-when="INVITE_TO_GROUP" my-i18n-format="confirm_modal_invite_peer"></span>\r\n <span ng-switch-when="INVITE_TO_GAME" my-i18n-format="confirm_modal_share_game"></span>\r\n <my-i18n-param name="peer">\r\n <strong my-peer-link="peer_id"></strong>\r\n </my-i18n-param>\r\n </my-i18n>\r\n <div ng-switch-when="APPLY_LANG_WITH_RELOAD" my-i18n="confirm_modal_apply_lang_with_reload_md"></div>\r\n <div ng-switch-when="MIGRATE_TO_HTTPS" my-i18n="confirm_modal_migrate_to_https_md"></div>\r\n <div ng-switch-when="SWITCH_DESKTOP_VERSION" my-i18n="confirm_modal_resize_desktop_md"></div>\r\n <div ng-switch-when="SWITCH_MOBILE_VERSION" my-i18n="confirm_modal_resize_mobile_md"></div>\r\n <div ng-switch-when="RECOVERY_EMAIL_EMPTY" my-i18n="confirm_modal_recovery_email_empty_md"></div>\r\n <div ng-switch-when="PASSWORD_ABORT_SETUP" my-i18n="confirm_modal_abort_password_setup"></div>\r\n <div ng-switch-when="RESET_ACCOUNT" my-i18n="confirm_modal_reset_account_md"></div>\r\n <div ng-switch-when="JOIN_GROUP_BY_LINK" my-i18n="confirm_modal_join_group_link">\r\n <my-i18n-param name="title"><strong ng-bind="title"></strong></my-i18n-param>\r\n </div>\r\n <div ng-switch-when="JOIN_CHANNEL_BY_LINK" my-i18n="confirm_modal_join_channel_link">\r\n <my-i18n-param name="title"><strong ng-bind="title"></strong></my-i18n-param>\r\n </div>\r\n <div ng-switch-when="REVOKE_GROUP_INVITE_LINK" my-i18n="confirm_modal_revoke_group_link"></div>\r\n <div ng-switch-when="REVOKE_CHANNEL_INVITE_LINK" my-i18n="confirm_modal_revoke_channel_link"></div>\r\n <div ng-switch-when="CHANNEL_DELETE" my-i18n="confirm_modal_delete_channel_md"></div>\r\n <div ng-switch-when="MEGAGROUP_DELETE" my-i18n="confirm_modal_delete_group_md"></div>\r\n <div ng-switch-when="CHANNEL_LEAVE" my-i18n="confirm_modal_leave_channel_md"></div>\r\n <div ng-switch-when="MEGAGROUP_LEAVE" my-i18n="confirm_modal_leave_group_md"></div>\r\n <div ng-switch-when="JUMP_EXT_URL" my-i18n="confirm_modal_jump_ext_url_md" class="confirm_modal_extlink_jump">\r\n <my-i18n-param name="url"><strong ng-bind="url"></strong></my-i18n-param>\r\n </div>\r\n <div ng-switch-when="SUPERGROUP_MIGRATE" my-i18n="confirm_modal_migrate_supergroup_md"></div>\r\n <div ng-switch-when="BOT_ACCESS_PHONE" my-i18n="confirm_modal_bot_access_phone"></div>\r\n <div ng-switch-when="BOT_ACCESS_GEO" my-i18n="confirm_modal_bot_access_geo"></div>\r\n <div ng-switch-when="BOT_ACCESS_GEO_INLINE" my-i18n="confirm_modal_bot_access_geo_inline"></div>\r\n\r\n\r\n\r\n <span ng-switch-default ng-switch="message.length > 0">\r\n <span ng-switch-when="true" ng-bind="message"></span>\r\n <span ng-switch-default my-i18n="confirm_modal_are_u_sure"></span>\r\n </span>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer">\r\n <button class="btn btn-md" ng-click="$dismiss()">\r\n <span my-i18n="modal_cancel"></span>\r\n </button>\r\n <button class="btn btn-md btn-md-primary" ng-switch="type" ng-click="$close(data)" ng-class="{\'btn-md-danger\': type == \'RESET_ACCOUNT\' || type == \'HISTORY_LEAVE_AND_FLUSH\' || type == \'HISTORY_FLUSH_AND_DELETE\' || type == \'HISTORY_FLUSH\'}" my-focused >\r\n <span ng-switch-when="LOGOUT" my-i18n="confirm_modal_logout_submit"></span>\r\n <span ng-switch-when="HISTORY_FLUSH" my-i18n="confirm_modal_clear_history_submit"></span>\r\n <span ng-switch-when="HISTORY_LEAVE_AND_FLUSH" my-i18n="confirm_modal_leave_chat_submit"></span>\r\n <span ng-switch-when="HISTORY_FLUSH_AND_DELETE" my-i18n="confirm_modal_delete_chat_submit"></span>\r\n <span ng-switch-when="FILES_CLIPBOARD_PASTE" my-i18n="confirm_modal_clipboard_files_send_submit"></span>\r\n <span ng-switch-when="FILE_CLIPBOARD_PASTE" my-i18n="confirm_modal_clipboard_file_send_submit"></span>\r\n <span ng-switch-when="MESSAGE_DELETE" my-i18n="confirm_modal_message_delete_submit"></span>\r\n <span ng-switch-when="MESSAGES_DELETE" my-i18n="confirm_modal_messages_delete_submit"></span>\r\n <span ng-switch-when="PHOTO_DELETE" my-i18n="confirm_modal_photo_delete_submit"></span>\r\n <span ng-switch-when="FORWARD_PEER" my-i18n="confirm_modal_forward_message_submit"></span>\r\n <span ng-switch-when="PHOTO_SHARE_PEER" my-i18n="confirm_modal_share_photo_submit"></span>\r\n <span ng-switch-when="VIDEO_SHARE_PEER" my-i18n="confirm_modal_share_video_submit"></span>\r\n <span ng-switch-when="SHARE_CONTACT_PEER" my-i18n="confirm_modal_share_contact_submit"></span>\r\n <span ng-switch-when="EXT_SHARE_PEER" my-i18n="confirm_modal_share_file_submit"></span>\r\n <span ng-switch-when="RESET_ACCOUNT" my-i18n="confirm_modal_reset_account_submit"></span>\r\n <span ng-switch-default my-i18n="modal_ok"></span>\r\n </button>\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/desktop/contacts_modal.html",'<div class="contacts_modal_wrap md_modal_wrap" my-modal-position>\r\n\r\n <div class="md_modal_head md_modal_head_simple">\r\n <div class="md_modal_title_wrap">\r\n <div class="md_modal_actions_wrap clearfix">\r\n <a class="md_modal_action md_modal_action_close" ng-if="action != \'edit\'" ng-click="$dismiss()" my-i18n="modal_close"></a>\r\n <a class="md_modal_action" ng-if="action == \'edit\'" class="contacts_modal_edit_link" ng-click="toggleEdit(false)" my-i18n="contacts_modal_edit_cancel"></a>\r\n <a class="md_modal_action" ng-if="!action" ng-click="toggleEdit(true)" my-i18n="contacts_modal_edit_list"></a>\r\n </div>\r\n </div>\r\n <div class="md_modal_title" ng-switch="action">\r\n <div ng-switch-when="new_group" ng-switch="selectedCount > 0">\r\n <span ng-switch-when="true">\r\n <ng-pluralize count="selectedCount" when="contacts_modal_pluralize_new_group_members">\r\n </ng-pluralize>\r\n </span>\r\n <span ng-switch-default my-i18n="group_create_contacts_modal_title"></span>\r\n </div>\r\n <span ng-switch-default my-i18n="contacts_modal_title"></span>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_body">\r\n\r\n <div class="contacts_modal_search">\r\n <input class="form-control contacts_modal_search_field no_outline" my-focused type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\r\n <a class="im_dialogs_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\r\n <i class="icon icon-search-clear"></i>\r\n </a>\r\n </div>\r\n\r\n <div my-contacts-list class="contacts_modal_col">\r\n\r\n <div class="contacts_wrap nano" my-infinite-scroller>\r\n <div class="contacts_scrollable_wrap nano-content" ng-switch="contactsEmpty">\r\n\r\n <div ng-switch-when="true" class="contacts_modal_contacts_empty" my-vertical-position="0.2" padding="true" my-i18n="contacts_modal_empty_list">\r\n <my-i18n-param name="import-link"><a href="" ng-click="importContact()">{0}</a></my-i18n-param>\r\n </div>\r\n\r\n <ul ng-switch-default class="contacts_modal_members_list nav nav-pills nav-stacked">\r\n\r\n <li class="contacts_modal_contact_wrap clearfix" ng-repeat="contact in contacts | orderBy:\'user.sortName\' | limitTo: slice.limit track by contact.userID" ng-class="{active: selectedContacts[contact.userID], disabled: disabledContacts[contact.userID]}">\r\n <a class="contacts_modal_contact" ng-click="contactSelect(contact.userID)">\r\n\r\n <div class="md_modal_list_peer_photo pull-left" my-peer-photolink="::contact.userID" img-class="md_modal_list_peer_photo"></div>\r\n <div class="md_modal_list_peer_name" my-peer-link="contact.userID"></div>\r\n <div class="md_modal_list_peer_description" ng-switch="contact.found">\r\n <span ng-switch-when="true" ng-bind="\'@\' + contact.user.username"></span>\r\n <span ng-switch-default my-user-status="::contact.userID"></span>\r\n </div>\r\n\r\n </a>\r\n </li>\r\n\r\n </ul>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="md_modal_footer clearfix" ng-switch="action">\r\n\r\n <div ng-switch-when="new_group" class="pull-right">\r\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\r\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="submitSelected()" type="submit" my-i18n="modal_next"></button>\r\n </div>\r\n\r\n <button ng-switch-when="select" class="btn btn-md btn-md-primary pull-right" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="submitSelected()" type="submit" my-i18n="modal_next"></button>\r\n\r\n <button ng-switch-when="edit" class="btn btn-md btn-md-danger pull-right" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="deleteSelected()">\r\n <my-i18n msgid="contacts_modal_edit_delete"></my-i18n>\r\n <strong ng-bind="selectedCount"></strong>\r\n </button>\r\n\r\n <div ng-switch-default class="text-center">\r\n <button class="btn btn-md btn-md-primary" ng-click="importContact()" my-i18n="contacts_modal_new_contact"></button>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/desktop/country_select_modal.html",'<div class="countries_modal_wrap md_modal_wrap" my-modal-position>\r\n\r\n <div class="md_modal_head md_modal_head_simple">\r\n <div class="md_modal_title_wrap">\r\n <div class="md_modal_actions_wrap clearfix">\r\n <a class="md_modal_action md_modal_action_close" ng-click="$dismiss()" my-i18n="modal_close"></a>\r\n </div>\r\n </div>\r\n <div class="md_modal_title" my-i18n="country_select_modal_title"></div>\r\n </div>\r\n\r\n <div class="md_modal_body">\r\n\r\n <div class="countries_modal_search">\r\n <input class="form-control countries_modal_search_field no_outline" my-focused type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\r\n <a class="countries_modal_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\r\n <i class="icon icon-search-clear"></i>\r\n </a>\r\n\r\n </div>\r\n\r\n <div class="countries_modal_col" my-countries-list>\r\n\r\n <div class="countries_wrap nano" my-infinite-scroller>\r\n <div class="countries_scrollable_wrap nano-content">\r\n\r\n <ul class="countries_modal_members_list nav nav-pills nav-stacked">\r\n\r\n <li class="countries_modal_country_wrap clearfix" ng-repeat="country in countries | limitTo : slice.limit track by $index">\r\n <a class="countries_modal_country" ng-click="$close(country)">\r\n <span class="countries_modal_country_code pull-right" ng-bind="country.code"></span>\r\n <span class="countries_modal_country_name" ng-bind="country.name"></span>\r\n </a>\r\n </li>\r\n\r\n </ul>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/desktop/dialog.html",'<a class="im_dialog" ng-mousedown="dialogSelect(dialogMessage.peerString, dialogMessage.unreadCount == -1 && dialogMessage.mid)">\r\n\r\n <div class="im_dialog_meta pull-right text-right">\r\n <div class="im_dialog_date" ng-bind="dialogMessage.dateText"></div>\r\n <span\r\n class="im_dialog_badge badge ng-hide"\r\n ng-show="dialogMessage.unreadCount > 0 && !dialogMessage.pFlags.out"\r\n ng-bind="dialogMessage.unreadCount"\r\n my-peer-muted="dialogMessage.peerID" muted-class="im_dialog_badge_muted"\r\n ></span>\r\n <i\r\n class="im_dialog_unread ng-hide"\r\n ng-show="dialogMessage.pFlags.out && dialogMessage.pFlags.unread"\r\n ></i>\r\n <i\r\n class="im_dialog_pinned ng-hide"\r\n ng-show="dialogMessage.pinned && !dialogMessage.unreadCount && !dialogMessage.pFlags.unread"\r\n ></i>\r\n </div>\r\n\r\n <div class="im_dialog_photo pull-left" my-peer-photolink="::dialogMessage.peerID" img-class="im_dialog_photo" watch="true"></div>\r\n\r\n <div class="im_dialog_message_wrap">\r\n\r\n <div class="im_dialog_peer">\r\n <span my-peer-link="dialogMessage.peerID" verified="true"></span>\r\n </div>\r\n\r\n <div ng-switch="dialogMessage.typing ? \'typing\' : (!dialogMessage.unreadCount && dialogMessage.draft ? \'draft\' : (dialogMessage.deleted ? \'deleted\' : \'message\'))">\r\n\r\n <div ng-switch-when="typing" class="im_dialog_message">\r\n <span class="im_short_message_service" my-i18n="im_conversation_group_typing">\r\n <my-i18n-param name="name"><span my-peer-link="dialogMessage.typing" short="true" class="im_dialog_chat_from_wrap"></span></my-i18n-param><my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\r\n </span>\r\n </div>\r\n\r\n <div ng-switch-when="draft" class="im_dialog_message">\r\n <span class="im_dialog_chat_from_wrap">\r\n <span class="im_dialog_draft_from" my-i18n="conversation_draft"></span>\r\n </span>\r\n <span class="im_short_message_text" ng-bind-html="dialogMessage.draft.richMessage"></span>\r\n </div>\r\n\r\n <div ng-switch-when="deleted" class="im_dialog_message">\r\n <span class="im_short_message_text">&nbsp;</span>\r\n </div>\r\n\r\n <div ng-switch-when="message" class="im_dialog_message">\r\n <span ng-switch="dialogMessage.peerID > 0 || dialogMessage.fromID < 0">\r\n <span ng-switch-when="true">\r\n <span class="im_dialog_chat_from_wrap" ng-if="dialogMessage.pFlags.out && dialogMessage.fromID > 0">\r\n <span\r\n class="im_dialog_chat_from"\r\n my-i18n="conversation_you"\r\n ></span><span ng-if="dialogMessage.message.length > 0 || !!dialogMessage.media">:</span>\r\n </span>\r\n </span>\r\n <span ng-switch-default>\r\n <span class="im_dialog_chat_from_wrap" ng-switch="dialogMessage.pFlags.out && dialogMessage._ != \'messageService\'">\r\n <span\r\n ng-switch-when="false"\r\n class="im_dialog_chat_from"\r\n my-peer-link="dialogMessage.from_id" short="true" peer-watch="true"\r\n ></span><span\r\n ng-switch-when="true"\r\n class="im_dialog_chat_from"\r\n my-i18n="conversation_you"\r\n ></span><span ng-if="dialogMessage.message.length || dialogMessage.media">:</span>\r\n </span>\r\n </span>\r\n </span>\r\n\r\n <span my-short-message="dialogMessage"></span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n</a>\r\n'),e.put("partials/desktop/document_modal.html",'<div class="modal_close_wrap" ng-click="$close()">\r\n <div class="modal_close"></div>\r\n</div>\r\n\r\n<div class="media_modal_bottom_panel_wrap">\r\n <div class="media_modal_bottom_panel">\r\n <div class="media_modal_bottom_actions pull-right">\r\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\r\n <i class="media_modal_action_btn_download"></i>\r\n </a>\r\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\r\n <i class="media_modal_action_btn_forward"></i>\r\n </a>\r\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\r\n <i class="media_modal_action_btn_delete"></i>\r\n </a>\r\n </div>\r\n\r\n <div class="media_modal_info_wrap pull-left" ng-if="document.user_id > 0" ng-switch="messageID > 0">\r\n <a class="media_modal_author_photo pull-left" my-peer-photolink="document.user_id" img-class="media_modal_author_photo" watch="true"></a>\r\n <div class="media_modal_author_name">\r\n <a class="media_modal_author" my-peer-link="document.user_id" peer-watch="true"></a>\r\n </div>\r\n <div class="media_modal_date" ng-if="document.date > 0">\r\n <a ng-switch-when="true" class="media_modal_date" ng-click="goToMessage()" ng-bind="document.date | dateOrTime :true"></a>\r\n <span ng-switch-default ng-bind="document.date | dateOrTime :true"></span>\r\n </div>\r\n </div>\r\n\r\n <div class="media_modal_title_wrap" ng-bind="document.file_name"></div>\r\n\r\n </div>\r\n</div>\r\n\r\n<div class="modal-dialog">\r\n <div class="modal-content">\r\n <div my-modal-width="{{photo.full.modalWidth}}" class="media_modal_wrap photo_modal_wrap" my-modal-position animation="no">\r\n\r\n <div class="modal-body">\r\n\r\n <div my-load-document="document"></div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>'),
e.put("partials/desktop/edit_contact_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body">\r\n\r\n <form class="modal_simple_form" ng-submit="doImport()">\r\n\r\n <h4 my-i18n="contact_edit_modal_title"></h4>\r\n\r\n <div class="md-input-group md-input-disabled" my-labeled-input>\r\n <label class="md-input-label" my-i18n="contact_import_modal_phone"></label>\r\n <span class="md-input" ng-bind="importContact.phone | phoneNumber"></span>\r\n </div>\r\n\r\n <div class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="contact_edit_modal_first_name"></label>\r\n <input class="md-input" my-focused type="text" ng-model="importContact.first_name" my-submit-on-enter />\r\n </div>\r\n\r\n <div class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="contact_edit_modal_last_name"></label>\r\n <input class="md-input" type="text" ng-model="importContact.last_name" my-submit-on-enter />\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer">\r\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\r\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: progress.enabled}" ng-click="doImport()" ng-bind="progress.enabled ? \'contact_edit_modal_submit_active\' : \'contact_edit_modal_submit\'| i18n" ng-disabled="progress.enabled"></button>\r\n </div>\r\n\r\n</div>'),e.put("partials/desktop/embed_modal.html",'<div class="modal_close_wrap" ng-click="$close()">\r\n <div class="modal_close"></div>\r\n</div>\r\n\r\n<div class="media_modal_bottom_panel_wrap">\r\n <div class="media_modal_bottom_panel">\r\n <div class="media_modal_bottom_actions pull-right">\r\n <a class="media_modal_action_btn" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\r\n <i class="media_modal_action_btn_forward"></i>\r\n </a>\r\n <a class="media_modal_action_btn" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\r\n <i class="media_modal_action_btn_delete"></i>\r\n </a>\r\n </div>\r\n\r\n <div class="media_modal_info_wrap pull-left" ng-if="webpageID">\r\n <div class="media_modal_author_name">\r\n <a class="media_modal_author" href="{{webpage.url}}" target="_blank" ng-bind-html="webpage.rTitle"></a>\r\n </div>\r\n <div class="media_modal_date" ng-bind="webpage.site_name || webpage.display_url"></div>\r\n </div>\r\n\r\n <div class="media_modal_title_wrap" my-i18n="media_modal_video"></div>\r\n </div>\r\n</div>\r\n\r\n<div class="modal-dialog">\r\n <div class="modal-content">\r\n <div my-modal-width="{{webpage.full.width - 32}}" class="media_modal_wrap embed_modal_wrap" my-modal-position animation="no">\r\n\r\n <div class="modal-body" ng-bind-html="webpage.full.html">\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>'),e.put("partials/desktop/emoji_btn_tooltip.html",'<div class="composer_emoji_btn_wrap">\r\n\r\n <div class="composer_emoji_tooltip_wrap">\r\n <div class="composer_emoji_tooltip">\r\n\r\n <div class="composer_emoji_tooltip_tabs">\r\n <a ng-repeat="tab in ::tabs" href="" class="composer_emoji_tooltip_tab" ng-class="[\'composer_emoji_tooltip_tab_\' + tab, curTab == tab ? \'active\' : \'\']" ng-click="tabSelect(tab)"></a>\r\n </div>\r\n\r\n <div class="composer_emoji_content" ng-switch="curTab == \'stickers\'">\r\n <div ng-switch-when="true" class="composer_emoji_content_emoticons">\r\n <a class="composer_emoticon_option" href="" ng-repeat="emoji in emojis" ng-click="emojiSelect(emoji)"></a>\r\n </div>\r\n <div ng-switch-default class="composer_emoji_content_stickers">\r\n <a class="composer_sticker_option" href="" ng-repeat="sticker in stickers" ng-click="stickerSelect(sticker)"></a>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <a class="composer_emoji_btn">\r\n <i class="icon icon-emoji"></i>\r\n </a>\r\n\r\n</div>'),e.put("partials/desktop/error_modal.html",'<div class="error_modal_wrap md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body" ng-class="{md_simple_modal_alert_body: alert}">\r\n\r\n <h4 ng-if="error" class="md_simple_header" ng-switch="error.type">\r\n <span ng-switch-when="MEDIA_TYPE_NOT_SUPPORTED" my-i18n="error_modal_media_not_supported_title"></span>\r\n <span ng-switch-when="PHONECALLS_NOT_SUPPORTED" my-i18n="error_modal_phonecalls_not_supported_title"></span>\r\n <span ng-switch-when="USERNAME_NOT_OCCUPIED" my-i18n="error_modal_not_found_title"></span>\r\n <span ng-switch-when="PASSWORD_RECOVERY_NA" my-i18n="error_modal_recovery_na_title"></span>\r\n <span ng-switch-default ng-switch="error.code">\r\n <span ng-switch-when="400" my-i18n="error_modal_bad_request_title"></span>\r\n <span ng-switch-when="401" my-i18n="error_modal_unauthorized_title"></span>\r\n <span ng-switch-when="403" my-i18n="error_modal_forbidden_title"></span>\r\n <span ng-switch-when="404" my-i18n="error_modal_not_found_title"></span>\r\n <span ng-switch-when="406" my-i18n="error_modal_network_title"></span>\r\n <span ng-switch-when="420" my-i18n="error_modal_flood_title"></span>\r\n <span ng-switch-default my-i18n="error_modal_internal_title"></span>\r\n </span>\r\n <span ng-switch-when="CALLBACK_RESPONSE"><!-- empty --></span>\r\n </h4>\r\n <h4 ng-if="!error" class="md_simple_header" ng-switch="title_html !== undefined ? \'html\' : (title.length > 0 ? \'text\' : \'default\')">\r\n <span ng-switch-when="html" ng-bind-html="title_html"></span>\r\n <span ng-switch-when="text" ng-bind="title"></span>\r\n <span ng-switch-default my-i18n="error_modal_alert"></span>\r\n </h4>\r\n\r\n <div ng-if="error" class="error_modal_description" ng-switch="error.type">\r\n <span ng-switch-when="NETWORK_BAD_REQUEST" my-i18n="error_modal_network_description"></span>\r\n <span ng-switch-when="NETWORK_BAD_RESPONSE" my-i18n="error_modal_network_description"></span>\r\n <span ng-switch-when="FIRSTNAME_INVALID" my-i18n="error_modal_firstname_invali_description"></span>\r\n <span ng-switch-when="LASTNAME_INVALID" my-i18n="error_modal_lastname_invalid_description"></span>\r\n <span ng-switch-when="PHONE_NUMBER_INVALID" my-i18n="error_modal_phone_invalid_description"></span>\r\n <span ng-switch-when="USERS_TOO_MUCH" my-i18n="error_modal_users_too_much_description"></span>\r\n <span ng-switch-when="PHOTO_INVALID_DIMENSIONS" my-i18n="error_modal_photo_dimensions_invalid_description"></span>\r\n <span ng-switch-when="VIDEO_EXT_INVALID" my-i18n="error_modal_video_file_invalid_description"></span>\r\n <span ng-switch-when="PHOTO_CROP_SIZE_SMALL" my-i18n="error_modal_photo_too_small_description"></span>\r\n <span ng-switch-when="USER_NOT_USING_TELEGRAM" my-i18n="error_modal_no_phone_user_description_md"></span>\r\n <span ng-switch-when="USERS_NOT_USING_TELEGRAM" my-i18n="error_modal_no_phone_users_description_md"></span>\r\n <span ng-switch-when="PHONEBOOK_GET_CONTACTS_FAILED" my-i18n="error_modal_phonebook_required_description"></span>\r\n <span ng-switch-when="USERNAME_INVALID" my-i18n="error_modal_username_invalid_description"></span>\r\n <span ng-switch-when="USERNAME_OCCUPIED" my-i18n="error_modal_username_occupied_description"></span>\r\n <span ng-switch-when="MEDIA_TYPE_NOT_SUPPORTED" my-i18n="error_modal_media_not_supported_description"></span>\r\n <span ng-switch-when="PHONE_NUMBER_APP_SIGNUP_FORBIDDEN" my-i18n="error_modal_app_signup_forbidden_md">\r\n <my-i18n-param name="signup-link"><a href="https://telegram.org/dl" target="_blank">{0}</a></my-i18n-param>\r\n </span>\r\n\r\n <span ng-switch-when="USERNAME_NOT_OCCUPIED" my-i18n="error_modal_username_not_found_description"></span>\r\n <span ng-switch-when="USER_NOT_MUTUAL_CONTACT" my-i18n="error_modal_user_not_mutual_contact"></span>\r\n <span ng-switch-when="INVITE_HASH_INVALID" my-i18n="error_modal_invite_link_invalid"></span>\r\n <span ng-switch-when="INVITE_HASH_EXPIRED" my-i18n="error_modal_invite_link_invalid"></span>\r\n <span ng-switch-when="INVITE_HASH_EMPTY" my-i18n="error_modal_invite_link_invalid"></span>\r\n <span ng-switch-when="CHANNEL_PRIVATE" my-i18n="error_modal_channel_not_accessible"></span>\r\n <span ng-switch-when="PEER_FLOOD" my-i18n="error_modal_not_contact_flood">\r\n <my-i18n-param name="more-info-link"><a href="https://t.me/spambot">{0}</a></my-i18n-param>\r\n </span>\r\n <span ng-switch-when="2FA_RECENT_CONFIRM" my-i18n="error_modal_2fa_recent_confirm"></span>\r\n <span ng-switch-when="2FA_CONFIRM_WAIT_TIME" my-i18n="error_modal_2fa_delayed_time_md">\r\n <my-i18n-param name="time"><span ng-bind="error.waitTime | duration"></span></my-i18n-param>\r\n </span>\r\n <span ng-switch-when="PHONECALLS_NOT_SUPPORTED" my-i18n="error_modal_phonecalls_not_supported_description_md">\r\n <my-i18n-param name="user"><strong my-peer-link="error.userID"></strong></my-i18n-param>\r\n <my-i18n-param name="download-link"><a href="https://telegram.org/dl" target="_blank">{0}</a></my-i18n-param>\r\n \r\n </span>\r\n\r\n <span ng-switch-when="CALLBACK_RESPONSE" ng-bind-html="error.description_html"></span>\r\n\r\n <span ng-switch-when="UPDATE_SERVICE_NOTIFICATION">\r\n <div my-message-body="historyMessage">\r\n <div class="im_message_text" dir="auto"></div>\r\n <div class="im_message_media"></div>\r\n </div>\r\n </span>\r\n\r\n\r\n\r\n <div ng-switch-default ng-switch="error.code">\r\n <span ng-switch-when="400" my-i18n="error_modal_bad_request_description"></span>\r\n <span ng-switch-when="401" my-i18n="error_modal_unauthorized_description">\r\n <my-i18n-param name="login-link"><a href="#/login">{0}</a></my-i18n-param>\r\n </span>\r\n <span ng-switch-when="403" my-i18n="error_modal_forbidden_description"></span>\r\n <span ng-switch-when="404" my-i18n="error_modal_not_found_description"></span>\r\n <span ng-switch-when="420" my-i18n="error_modal_flood_description"></span>\r\n <span ng-switch-default my-i18n="error_modal_internal_description"></span>\r\n </div>\r\n\r\n </div>\r\n\r\n <div ng-if="error && error.input" class="error_modal_details" ng-switch="error.detailsShown">\r\n <textarea ng-switch-when="true" rows="3" onclick="this.select()">Method: {{error.input || \'N/A\'}}{{error.url ? "\\nUrl: " + error.url : \'\'}}\r\nResult: {{error.originalError ? error.originalError : (error.stack ? (error.name || \'\') + \' \' + (error.description || error.message) : error)}}</textarea>\r\n <div ng-switch-default>\r\n <a class="error_modal_details_link" href="" ng-click="error.detailsShown = true" my-i18n="error_modal_tech_details"></a>\r\n </div>\r\n </div>\r\n\r\n <div ng-if="!error && description.length > 0" class="error_modal_description" ng-bind="description"></div>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer">\r\n <button class="btn btn-md btn-md-primary" ng-click="$dismiss()" my-focused>\r\n <span my-i18n="modal_ok"></span>\r\n </button>\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/desktop/footer.html",'<div class="footer_wrap" ng-controller="AppFooterController">\r\n\t<a class="footer_link" href="https://telegram.org" target="_blank" my-i18n="head_about"></a>\r\n <a class="footer_link" ng-click="openSettings()" my-i18n="im_settings"></a>\r\n <a class="footer_link" href="https://twitter.com/telegram_web" target="_blank" my-i18n="footer_twitter"></a>\r\n</div>'),e.put("partials/desktop/forwarded_messages.html",'<div class="im_message_reply clearfix" ng-class="{im_message_reply_thumbed: thumb !== false}">\r\n <div class="im_message_reply_border"></div>\r\n <div class="im_message_reply_thumb_wrap pull-left" ng-if="thumb !== false">\r\n <img\r\n class="im_message_reply_thumb"\r\n my-load-thumb\r\n thumb="thumb"\r\n watch="true"\r\n />\r\n </div>\r\n <div class="im_message_reply_author">\r\n <span my-peer-link="fromID" peer-watch="true"></span>\r\n </div>\r\n <div class="im_message_reply_body" ng-switch="singleMessage !== false">\r\n <div ng-switch-when="true">\r\n <span my-short-message="singleMessage"></span>\r\n </div>\r\n <div ng-switch-default>\r\n <span class="im_reply_message_service">\r\n <ng-pluralize count="count"\r\n when="im_X_forwarded_messages">\r\n </ng-pluralize>\r\n </span>\r\n </div>\r\n </div>\r\n</div>'),e.put("partials/desktop/full_document.html",'<div class="document_modal_image_wrap">\r\n <div class="img_fullsize_with_progress_wrap document_fullsize_with_progress_wrap" ng-style="{width: frameWidth + \'px\', height: frameHeight + \'px\'}">\r\n <div class="img_fullsize_progress_overlay">\r\n <div class="img_fullsize_progress_wrap" ng-style="{width: frameWidth + \'px\', height: frameHeight + \'px\'}">\r\n <div class="img_fullsize_progress progress tg_progress">\r\n <div class="progress-bar progress-bar-success" style="width: {{document.progress.percent}}%"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="img_fullsize_wrap" ng-if="thumbSrc.length > 0">\r\n <img\r\n class="img_fullsize"\r\n ng-src="{{thumbSrc}}"\r\n ng-style="{width: imageWidth + \'px\', height: imageHeight + \'px\'}"\r\n />\r\n </div>\r\n </div>\r\n <div class="document_fullsize_wrap" ng-click="toggleZoom(!zoomed)">\r\n <img class="document_fullsize_img" />\r\n </div>\r\n</div>'),e.put("partials/desktop/full_gif.html",'<a class="img_gif_with_progress_wrap" ng-click="toggle($event)">\r\n\r\n <div class="img_gif_image_wrap">\r\n\r\n <div class="img_gif_meta" ng-show="!isActive" ng-switch="document.progress.enabled">\r\n <div ng-switch-when="true" class="img_gif_meta_contents">\r\n <i class="icon icon-cancel">\r\n <i class="icon icon-bar"></i>\r\n <i class="icon icon-bar"></i>\r\n </i>\r\n <div my-arc-progress="document.progress.percent"></div>\r\n </div>\r\n <div ng-switch-default class="img_gif_label noselect img_gif_meta_contents"><span class="copyonly">[</span>GIF<span class="copyonly">]</span></div>\r\n </div>\r\n\r\n <div ng-if="document.url" ng-show="document.downloaded &amp;&amp; isActive" ng-switch="document.mime_type == \'video/mp4\'">\r\n <video ng-switch-when="true" width="{{document.thumb.width}}" height="{{document.thumb.height}}" loop autoplay class="img_gif_video">\r\n <source ng-src="{{document.url}}" type="video/mp4">\r\n </video>\r\n <img ng-switch-default class="img_gif_image" ng-src="{{document.url}}" width="{{document.thumb.width}}" height="{{document.thumb.height}}" />\r\n </div>\r\n <img ng-hide="document.downloaded &amp;&amp; isActive" class="img_gif_thumb" my-load-thumb thumb="document.thumb" />\r\n\r\n </div>\r\n\r\n</a>'),e.put("partials/desktop/full_photo.html",'<div class="img_fullsize_with_progress_wrap">\r\n <div class="img_fullsize_progress_overlay" ng-show="progress.enabled">\r\n <div class="img_fullsize_progress_wrap">\r\n <div class="img_fullsize_progress progress tg_progress" ng-show="progress.percent > 0">\r\n <div class="progress-bar progress-bar-success" ng-style="{width: progress.percent + \'%\'}">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="photo_full_wrap">\r\n <a class="photo_modal_image">\r\n <img class="photo_modal_image"/>\r\n </a>\r\n </div>\r\n <div class="photo_modal_error_wrap" ng-if="error">\r\n <div class="photo_modal_error" ng-if="error.html" ng-bind-html="error.html"></div>\r\n <div class="photo_modal_error" ng-if="error.text" ng-bind="error.text"></div>\r\n </div>\r\n</div>'),e.put("partials/desktop/full_round.html",'<a class="img_round_with_progress_wrap" ng-click="toggle($event)">\r\n\r\n <div class="img_round_image_wrap" ng-style="::{width: document.thumb.width + \'px\'}">\r\n\r\n <div class="img_round_meta" ng-show="!isActive" ng-switch="document.progress.enabled">\r\n <div ng-switch-when="true" class="img_round_meta_contents">\r\n <i class="icon icon-cancel">\r\n <i class="icon icon-bar"></i>\r\n <i class="icon icon-bar"></i>\r\n </i>\r\n <div my-arc-progress="document.progress.percent"></div>\r\n </div>\r\n \r\n <div ng-switch-default class="img_round_meta_contents"><i class="icon icon-videoplay"></i></div>\r\n </div>\r\n\r\n <div ng-if="document.url" ng-show="document.downloaded &amp;&amp; isActive" ng-switch="document.mime_type == \'video/mp4\'">\r\n <video ng-switch-when="true" width="{{document.thumb.width}}" height="{{document.thumb.height}}" autoplay class="img_round_video">\r\n <source ng-src="{{document.url}}" type="video/mp4">\r\n </video>\r\n <img ng-switch-default class="img_round_image" ng-src="{{document.url}}" width="{{document.thumb.width}}" height="{{document.thumb.height}}" />\r\n </div>\r\n <img ng-hide="document.downloaded &amp;&amp; isActive" class="img_round_thumb" my-load-thumb thumb="document.thumb" />\r\n\r\n </div>\r\n\r\n</a>'),e.put("partials/desktop/full_video.html",'<div class="img_fullsize_with_progress_wrap" ng-style="{width: video.full.width + \'px\', height: video.full.height + \'px\'}">\r\n <div class="img_fullsize_progress_overlay" ng-show="video.progress.enabled">\r\n <div class="img_fullsize_progress_wrap" ng-style="{width: video.full.width + \'px\', height: video.full.height + \'px\'}">\r\n <div class="img_fullsize_progress progress tg_progress">\r\n <div class="progress-bar progress-bar-success" style="width: {{video.progress.percent}}%"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="img_fullsize_wrap" ng-if="!video.url">\r\n <img\r\n class="img_fullsize"\r\n my-load-thumb\r\n thumb="video.fullThumb"\r\n />\r\n </div>\r\n <div class="video_full_player" ng-if="video.url" ng-switch="player.quicktime">\r\n <embed ng-switch-when="true" ng-src="{{video.url}}" width="{{video.full.width}}" height="{{video.full.height}}" autoplay="true" CONTROLLER="TRUE" SHOWCONTROLS="TRUE" controller="true" loop="false" pluginspace="http://www.apple.com/quicktime/" />\r\n <video ng-switch-default width="{{video.full.width}}" height="{{video.full.height}}" controls autoplay >\r\n <source ng-src="{{video.url}}" type="video/mp4">\r\n </video>\r\n </div>\r\n <div class="video_full_error_wrap" ng-if="error">\r\n <div class="video_full_error" ng-if="error.html" ng-bind-html="error.html"></div>\r\n <div class="video_full_error" ng-if="error.text" ng-bind="error.text"></div>\r\n </div>\r\n</div>'),e.put("partials/desktop/game_modal.html",'<div class="modal_close_wrap" ng-click="$close()">\r\n <div class="modal_close"></div>\r\n</div>\r\n\r\n<div class="media_modal_bottom_panel_wrap">\r\n <div class="media_modal_bottom_panel">\r\n <div class="media_modal_bottom_actions pull-right">\r\n <a class="media_modal_action_btn" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\r\n <i class="media_modal_action_btn_forward"></i>\r\n </a>\r\n </div>\r\n\r\n <div class="media_modal_info_wrap pull-left">\r\n <a class="media_modal_author_photo pull-left" my-peer-photolink="botID" img-class="media_modal_author_photo"></a>\r\n <div class="media_modal_author_name">\r\n <a class="media_modal_author" my-peer-link="botID"></a>\r\n </div>\r\n <div class="media_modal_date">\r\n <a class="media_modal_date" my-peer-link="botID" username="true"></a>\r\n </div>\r\n </div>\r\n\r\n <div class="media_modal_title_wrap" ng-bind-html="game.rTitle"></div>\r\n </div>\r\n</div>\r\n\r\n<div class="modal-dialog">\r\n <div class="modal-content">\r\n <div my-modal-width="{{game.full.width - 32}}" class="media_modal_wrap embed_modal_wrap" my-modal-position animation="no">\r\n\r\n <div class="modal-body" ng-bind-html="game.full.html" my-game-communication></div>\r\n\r\n </div>\r\n </div>\r\n</div>'),e.put("partials/desktop/head.html",'<div class="tg_page_head tg_head_wrap noselect clearfix">\r\n <div class="tg_head_split">\r\n\r\n <div class="tg_head_logo_wrap">\r\n <div class="tg_head_logo_dropdown dropdown" dropdown>\r\n <a class="tg_head_btn dropdown-toggle" dropdown-toggle>\r\n <div class="icon-hamburger-wrap">\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n </div><i class="icon icon-tg-title"></i>\r\n </a>\r\n\r\n <ul class="dropdown-menu">\r\n <li><a ng-click="openGroup()">\r\n <i class="icon icon-new-group"></i><span my-i18n="im_new_group"></span>\r\n </a></li>\r\n <li ng-if="!isEmpty.contacts"><a ng-click="openContacts()">\r\n <i class="icon icon-contacts"></i><span my-i18n="im_contacts"></span>\r\n </a></li>\r\n <li><a ng-click="openSettings()">\r\n <i class="icon icon-settings"></i><span my-i18n="im_settings"></span>\r\n </a></li>\r\n <li><a ng-click="openFaq()">\r\n <i class="icon icon-faq"></i><span my-i18n="head_telegram_faq"></span>\r\n </a></li>\r\n <li><a href="" ng-click="openChangelog()">\r\n <i class="icon icon-about"></i><span my-i18n="head_about"></span>\r\n </a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="tg_head_main_wrap" ng-switch="offline">\r\n <div ng-switch-when="true" class="tg_head_connecting_wrap" ng-switch="offlineConnecting">\r\n <span ng-switch-default class="tg_head_connecting_text"><my-i18n msgid="head_waiting_for_network"></my-i18n><span my-loading-dots></span></span>\r\n <a ng-switch-default class="tg_head_btn" ng-click="retryOnline()" my-i18n="head_retry"></a>\r\n <span ng-switch-when="true" class="tg_head_connecting_text"><my-i18n msgid="head_connecting"></my-i18n><span my-loading-dots></span></span>\r\n </div>\r\n\r\n <div ng-switch-default ng-if="!!historyPeer.id" class="tg_head_main_peer_wrap">\r\n\r\n <div class="tg_head_peer_dropdown tg_head_peer_media_dropdown dropdown" dropdown>\r\n <a class="tg_head_btn dropdown-toggle" dropdown-toggle>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n </a>\r\n <ul class="dropdown-menu">\r\n <li><a ng-click="toggleEdit()" my-i18n="head_select_messages"></a></li>\r\n <li class="divider ng-scope"></li>\r\n <li><a ng-click="toggleMedia(\'photos\')" my-i18n="head_media_photos"></a></li>\r\n <li><a ng-click="toggleMedia(\'video\')" my-i18n="head_media_video"></a></li>\r\n <li><a ng-click="toggleMedia(\'documents\')" my-i18n="head_media_documents"></a></li>\r\n <li><a ng-click="toggleMedia(\'audio\')" my-i18n="head_media_audio"></a></li>\r\n </ul>\r\n </div>\r\n\r\n <a class="tg_head_btn tg_head_peer_search_btn" ng-click="toggleMedia(\'search\')">\r\n <i class="icon icon-search"></i>\r\n </a>\r\n\r\n <a class="tg_head_btn tg_head_peer_return_btn" ng-show="historyFilter.mediaType.length || historyState.skipped" ng-click="returnToRecent()" ng-switch="historyState.skipped">\r\n <span ng-switch-when="true" my-i18n="im_show_recent_messages"></span>\r\n <span ng-switch-default my-i18n="im_show_all_messages"></span>\r\n <strong class="tg_head_peer_return_count" ng-show="historyState.missedCount > 0" ng-bind="\'+\' + historyState.missedCount"></strong>\r\n </a>\r\n\r\n <div class="tg_head_peer_title_wrap" ng-switch="historyFilter.mediaType">\r\n <div class="tg_head_peer_media" ng-switch-when="photos">\r\n <i class="icon icon-filter-photos"></i><span my-i18n="im_media_photos"></span>\r\n </div>\r\n <div class="tg_head_peer_media" ng-switch-when="video">\r\n <i class="icon icon-filter-video"></i><span my-i18n="im_media_video"></span>\r\n </div>\r\n <div class="tg_head_peer_media" ng-switch-when="documents">\r\n <i class="icon icon-filter-documents"></i><span my-i18n="im_media_documents"></span>\r\n </div>\r\n <div class="tg_head_peer_media" ng-switch-when="audio">\r\n <i class="icon icon-filter-audio"></i><span my-i18n="im_media_audio"></span>\r\n </div>\r\n\r\n <a class="tg_head_btn" ng-switch-default ng-click="showPeerInfo()">\r\n <div class="tg_head_peer_info">\r\n <span class="tg_head_peer_title" my-peer-link="historyPeer.id" peer-watch="true" dir="auto"></span>\r\n <span class="tg_head_peer_status" ng-switch="historyPeer.id > 0">\r\n <span ng-switch-when="true" my-user-status="historyPeer.id"></span>\r\n <span ng-switch-default my-chat-status="-historyPeer.id"></span>\r\n </span>\r\n </div>\r\n </a>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>'),e.put("partials/desktop/im.html",'<div my-head></div>\r\n\r\n<div class="im_page_wrap clearfix" ng-class="{im_page_peer_not_selected: !curDialog.peer}">\r\n\r\n <div class="im_page_split clearfix">\r\n\r\n <div class="im_dialogs_col_wrap noselect" ng-controller="AppImDialogsController" my-dialogs ng-class="search.query.length > 0 ? \'im_dialogs_col_search\' : \'\'">\r\n <div class="im_dialogs_panel">\r\n <div class="im_dialogs_search">\r\n <input class="form-control im_dialogs_search_field no_outline" type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\r\n <a class="im_dialogs_search_clear tg_search_clear" ng-click="searchClear()" ng-show="search.query.length">\r\n <i class="icon icon-search-clear"></i>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div my-dialogs-list class="im_dialogs_col">\r\n <div class="im_dialogs_wrap nano">\r\n <div class="im_dialogs_scrollable_wrap nano-content">\r\n\r\n <div class="im_dialogs_empty_wrap" ng-if="isEmpty.dialogs && isEmpty.contacts">\r\n <h3 class="im_dialogs_empty_header" my-i18n="im_no_contacts"></h3>\r\n <p class="im_dialogs_empty_lead" my-i18n="im_get_started_long"></p>\r\n <button type="button" class="btn btn-primary btn-sm" ng-click="importContact()" my-i18n="im_add_contact"></button>\r\n <button ng-if="phonebookAvailable" type="button" class="btn btn-primary btn-sm im_dialogs_import_phonebook" ng-click="importPhonebook()" my-i18n="im_import_phonebook"></button>\r\n </div>\r\n\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" ng-if="searchPeer">\r\n <a class="im_dialog im_dialog_searchpeer disabled" ng-mousedown="setSearchPeer()">\r\n\r\n <div class="im_dialog_meta pull-right">\r\n <div class="im_dialog_clear_searchpeer">\r\n <!-- <i class="icon icon-clear-searchpeer"></i> -->\r\n <i class="icon icon-search-clear"></i>\r\n </div>\r\n </div>\r\n\r\n <div class="im_dialog_photo pull-left" my-peer-photolink="searchPeer" img-class="im_dialog_photo" watch="true"></div>\r\n\r\n <div class="im_dialog_message_wrap">\r\n\r\n <div class="im_dialog_peer">\r\n <span my-peer-link="searchPeer"></span>\r\n </div>\r\n\r\n <div class="im_dialog_message">\r\n <span class="" my-i18n="conversation_search_peer"></span>\r\n </div>\r\n\r\n </div>\r\n\r\n </a>\r\n\r\n </li>\r\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.peerID" ng-class="{active: curDialog.peerID == dialogMessage.peerID}"></li>\r\n </ul>\r\n\r\n <div class="im_dialogs_contacts_wrap" ng-show="contacts.length > 0">\r\n <h5 my-i18n="im_contacts_title"></h5>\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" ng-repeat="contact in contacts | orderBy:\'user.sortName\' track by contact.userID" ng-class="{active: curDialog.peerID == contact.userID}">\r\n <a class="im_dialog" ng-mousedown="dialogSelect(contact.peerString)">\r\n <div class="im_dialog_photo pull-left" my-peer-photolink="contact.userID" img-class="im_dialog_photo" watch="true"></div>\r\n <div class="im_dialog_message_wrap">\r\n <div class="im_dialog_peer">\r\n <span class="im_dialog_user" my-peer-link="contact.userID" verified="true"></span>\r\n </div>\r\n <div class="im_dialog_message">\r\n <span class="im_dialog_message_text" my-user-status="::contact.userID"></span>\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class="im_dialogs_contacts_wrap" ng-show="foundPeers.length > 0">\r\n <h5 my-i18n="im_found_title"></h5>\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" ng-repeat="foundPeer in foundPeers track by foundPeer.id" ng-class="{active: curDialog.peerID == foundPeer.id}">\r\n <a class="im_dialog" ng-mousedown="dialogSelect(foundPeer.peerString)">\r\n <div class="im_dialog_photo pull-left" my-peer-photolink="foundPeer.id" img-class="im_dialog_photo" watch="true"></div>\r\n <div class="im_dialog_message_wrap">\r\n <div class="im_dialog_peer">\r\n <span class="im_dialog_user" my-peer-link="foundPeer.id" verified="true"></span>\r\n </div>\r\n <div class="im_dialog_message">\r\n <span class="im_dialog_message_text" ng-bind="::\'@\' + foundPeer.username"></span>\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class="im_dialogs_messages_wrap" ng-show="foundMessages.length > 0">\r\n <h5 my-i18n="im_messages"></h5>\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in foundMessages track by dialogMessage.mid" ng-class="{active: curDialog.peerID == dialogMessage.peerID &amp;&amp; curDialog.messageID == dialogMessage.id}"></li>\r\n </ul>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="im_history_col_wrap noselect" ng-controller="AppImHistoryController" ng-class="{im_history_loaded: state.loaded}">\r\n\r\n <div class="im_history_not_selected_wrap" ng-switch="isEmpty.contacts &amp;&amp; isEmpty.dialogs">\r\n <div ng-switch-when="true" class="im_history_no_dialogs_wrap">\r\n <h3 class="im_dialogs_empty_header" my-i18n="im_get_started"></h3>\r\n <p class="im_dialogs_empty_lead" my-i18n="im_welcome_text"></p>\r\n <button type="button" class="btn btn-primary btn-sm" ng-click="openSettings()" my-i18n="im_open_settings"></button>\r\n </div>\r\n <div ng-switch-default class="im_history_not_selected" my-vertical-position="0.35" padding="true" my-i18n="im_select_a_chat"></div>\r\n </div>\r\n\r\n <div class="im_history_selected_loading_wrap im_history_loading" my-vertical-position="0.4" padding="true">\r\n <div my-arc-progress stroke="4" width="32"></div>\r\n </div>\r\n\r\n <div class="im_history_selected_wrap">\r\n <div my-history class="im_history_col">\r\n\r\n <div class="im_history_wrap nano">\r\n\r\n <div class="im_history_scrollable_wrap nano-content">\r\n\r\n <div class="im_history_scrollable">\r\n <div class="im_history" ng-class="{im_history_selectable: !historyState.botActions, im_history_select_active: historyState.selectActions}">\r\n\r\n <div class="im_history_empty_wrap" ng-show="state.empty" ng-switch="state.mayBeHasMore">\r\n <div ng-switch-when="true" class="im_history_loading" my-vertical-position="0.3" padding="true">\r\n <div my-arc-progress stroke="4" width="32"></div>\r\n </div>\r\n <div ng-switch-default class="im_history_empty" my-vertical-position="0.25" padding="true" my-i18n="im_no_messages"></div>\r\n </div>\r\n\r\n <div class="im_history_messages" ng-class="{im_history_messages_group: historyPeer.id < 0}">\r\n <div class="im_history_loading_more" ng-class="{im_history_loading_more_active: state.moreActive}">\r\n <div my-arc-progress stroke="3" width="26"></div>\r\n </div>\r\n <div class="im_history_messages_peer" ng-show="peerHistory.peerID == historyPeer.id" ng-repeat="peerHistory in peerHistories">\r\n <div class="im_history_message_wrap" my-message ng-repeat="historyMessage in peerHistory.messages"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="im_history_typing_wrap" ng-switch="historyState.skipped">\r\n\r\n <div ng-switch-when="true" class="im_history_loading_less" ng-class="{im_history_loading_less_active: state.lessActive}">\r\n <div my-arc-progress stroke="3" width="26"></div>\r\n </div>\r\n <div ng-switch-default class="im_history_typing" ng-show="historyState.typing.length > 0 &amp;&amp; !historyFilter.mediaType &amp;&amp; !state.empty" ng-switch="historyState.typing.length" my-i18n>\r\n <span ng-switch-when="0"></span>\r\n <span ng-switch-when="1" my-i18n-format="im_one_typing"></span>\r\n <span ng-switch-when="2" my-i18n-format="im_two_typing"></span>\r\n <span ng-switch-default my-i18n-format="im_many_typing"></span>\r\n <my-i18n-param name="name1"><a class="im_history_typing_author" my-peer-link="historyState.typing[0]"></a></my-i18n-param>\r\n <my-i18n-param name="name2"><a class="im_history_typing_author" my-peer-link="historyState.typing[1]"></a></my-i18n-param>\r\n <my-i18n-param name="count">{{historyState.typing.length - 2}}</my-i18n-param>\r\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="im_bottom_panel_wrap">\r\n\r\n <div class="im_edit_panel_wrap clearfix" ng-show="historyState.actions()" ng-switch="historyState.actions()" ng-class="historyState.channelActions !== false ? \'im_edit_small_panel_wrap\' : \'\'">\r\n <div class="im_edit_panel_border"></div>\r\n\r\n <div ng-switch-when="bot">\r\n <a ng-show="historyState.botActions == \'param\'" class="btn btn-md btn-md-primary im_edit_cancel_link" ng-click="cancelBot()" my-i18n="modal_cancel"></a>\r\n <div class="im_edit_start_actions">\r\n <a class="btn btn-primary im_start_btn" ng-click="startBot()" my-i18n="im_start"></a>\r\n </div>\r\n </div>\r\n <div ng-switch-when="channel">\r\n <div class="im_edit_start_actions" ng-switch="historyState.channelActions">\r\n <a ng-switch-when="join" class="btn btn-primary im_start_btn" ng-click="joinChannel()" my-i18n="im_channel_join"></a>\r\n <a ng-switch-when="mute" class="btn btn-link im_start_btn" ng-click="togglePeerMuted(true)" my-i18n="im_channel_mute"></a>\r\n <a ng-switch-when="unmute" class="btn btn-link im_start_btn" ng-click="togglePeerMuted(false)" my-i18n="im_channel_unmute"></a>\r\n </div>\r\n </div>\r\n <div ng-switch-when="selected" class="im_edit_selected_actions" my-i18n>\r\n <a class="btn btn-md btn-md-primary im_edit_cancel_link" ng-click="selectedCancel()" my-i18n="modal_cancel"></a>\r\n <a class="btn btn-primary im_edit_forward_btn" ng-click="selectedForward()" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" my-i18n-format="im_forward"></a>\r\n <a class="btn btn-primary im_edit_delete_btn" ng-click="selectedDelete()" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" my-i18n-format="im_delete" ng-show="historyState.canDelete"></a>\r\n <a class="btn btn-primary im_edit_reply_btn" ng-click="selectedReply()" ng-show="selectedCount == 1 &amp;&amp; historyState.canReply" my-i18n="im_reply"></a>\r\n <a class="btn btn-primary im_edit_reply_btn" ng-click="selectedEdit()" ng-show="selectedCount == 1 &amp;&amp; historyState.canEdit" my-i18n="im_edit"></a>\r\n <my-i18n-param name="count"><strong class="im_selected_count" ng-show="selectedCount > 0" ng-bind="selectedCount"></strong></my-i18n-param>\r\n </div>\r\n </div>\r\n\r\n <div class="im_send_panel_wrap noselect" ng-show="!historyState.actions()">\r\n\r\n <div class="im_send_form_wrap1">\r\n\r\n <div class="im_send_form_wrap clearfix" ng-controller="AppImSendController" ng-class="{im_send_reply_form_wrap: draftMessage.replyToMsgID > 0}">\r\n\r\n <a class="pull-right im_panel_peer_photo" my-peer-photolink="historyPeer.id" img-class="im_panel_peer_photo" watch="true" ng-show="!draftMessage.isBroadcast">\r\n <i class="icon im_panel_peer_online" ng-show="historyPeer.id > 0 &amp;&amp; historyPeer.data.status._ == \'userStatusOnline\'"></i>\r\n </a>\r\n <a class="pull-left im_panel_own_photo" my-peer-photolink="draftMessage.isBroadcast ? historyPeer.id : ownID" img-class="im_panel_own_photo" watch="true" ng-click="openSettings()" no-open="true"></a>\r\n\r\n <form my-send-form draft-message="draftMessage" mentions="mentions" commands="commands" class="im_send_form" ng-class="{im_send_form_empty: !draftMessage.text.length, composer_progress_enabled: draftMessage.inlineProgress}">\r\n\r\n <div class="im_send_form_inline_results" my-inline-results="inlineResults"></div>\r\n\r\n <div class="im_send_reply_wrap" ng-if="draftMessage.replyToMsgID > 0">\r\n <a class="im_send_reply_cancel" ng-mousedown="draftMessage.replyClear(true)"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\r\n <a class="im_message_reply_wrap" my-reply-message="draftMessage.replyToMsgID" watch="true" edit="{{draftMessage.type == \'edit\'}}"></a>\r\n </div>\r\n\r\n <div class="im_send_reply_wrap im_send_fwds_wrap" ng-if="draftMessage.fwdMessages.length > 0">\r\n <a class="im_send_reply_cancel" ng-mousedown="draftMessage.fwdsClear()"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\r\n <div class="im_message_reply_wrap" my-forwarded-messages="draftMessage.fwdMessages"></div>\r\n </div>\r\n\r\n <div class="im_send_field_wrap hasselect" ng-class="historyState.replyKeyboard._ == \'replyKeyboardMarkup\' ? \'im_send_field_wrap_2ndbtn\' : \'\'">\r\n <a class="composer_emoji_insert_btn"><i class="icon icon-emoji"></i></a>\r\n <div class="composer_progress_icon_wrap">\r\n <div class="composer_progress_icon" my-arc-progress width="22" stroke="2.5"></div>\r\n </div>\r\n <a class="composer_command_btn" ng-show="!historyState.replyKeyboard && commands.list.length > 0 && (!draftMessage.text.length || draftMessage.text == \'/\')" ng-mousedown="toggleSlash($event)" ng-class="draftMessage.text[0] == \'/\' ? \'active\' : \'\'"><i class="icon icon-slash"></i></a>\r\n <a class="composer_keyboard_btn" ng-show="historyState.replyKeyboard._ == \'replyKeyboardMarkup\'" ng-mousedown="replyKeyboardToggle($event)" ng-class="!historyState.replyKeyboard.pFlags.hidden ? \'active\' : \'\'"><i class="icon icon-keyboard"></i></a>\r\n\r\n <div class="im_send_dropbox_wrap" my-i18n="im_photos_drop_text"></div>\r\n <textarea ng-model="draftMessage.text" class="form-control im_message_field no_outline" dir="auto" ng-trim="false"></textarea>\r\n </div>\r\n\r\n <div class="im_send_buttons_wrap clearfix">\r\n <button type="submit" class="btn btn-md im_submit" ng-class="draftMessage.type == \'edit\' ? \'im_submit_edit\' : \'im_submit_send\'">\r\n <span class="im_submit_send_label nocopy" my-i18n="im_submit_message"></span>\r\n <span class="im_submit_edit_label nocopy" my-i18n="im_submit_edit_message"></span>\r\n </button>\r\n\r\n <div class="im_attach pull-left">\r\n <input type="file" class="im_attach_input" size="28" multiple="multiple" title="{{\'im_attach_file_title\' | i18n}}" />\r\n <i class="icon icon-paperclip"></i>\r\n </div>\r\n\r\n <div class="im_media_attach pull-left">\r\n <input type="file" class="im_media_attach_input" size="28" multiple="multiple" accept="image/*, video/*, audio/*" title="{{\'im_media_attach_title\' | i18n}}"/>\r\n <i class="icon icon-camera"></i>\r\n </div>\r\n\r\n <div class="composer_emoji_panel"></div>\r\n </div>\r\n\r\n <div class="im_send_keyboard_wrap" ng-if="historyState.replyKeyboard._ == \'replyKeyboardMarkup\'" ng-show="!historyState.replyKeyboard.pFlags.hidden">\r\n <div my-reply-markup="historyState.replyKeyboard"></div>\r\n </div>\r\n\r\n </form>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n<div class="footer_wrap footer_empty"></div>\r\n\r\n<toaster-container toaster-options="{\'position-class\': \'toast-bottom-center\'}"></toaster-container>\r\n'),
e.put("partials/desktop/import_contact_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body">\r\n\r\n <form class="modal_simple_form" ng-submit="doImport()" name="importContactForm">\r\n\r\n <h4 my-i18n="contact_import_modal_title"></h4>\r\n\r\n <div class="md-input-group" my-labeled-input ng-class="{\'md-input-error\': importContactForm.phone.$invalid && importContactForm.phone.$touched}" my-labeled-input>\r\n <label class="md-input-label" ng-switch="importContactForm.phone.$invalid && importContactForm.phone.$touched">\r\n <span ng-switch-when="true" my-i18n="login_incorrect_number"></span>\r\n <span ng-switch-default my-i18n="contact_import_modal_phone"></span>\r\n </label>\r\n <input class="md-input" my-focused type="tel" ng-model="importContact.phone" ng-pattern="/^[-\\+\\(\\)\\d\\s]{7,32}$/" my-submit-on-enter name="phone" />\r\n </div>\r\n\r\n <div class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="contact_edit_modal_first_name"></label>\r\n <input class="md-input" type="text" ng-model="importContact.first_name" my-submit-on-enter />\r\n </div>\r\n\r\n <div class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="contact_edit_modal_last_name"></label>\r\n <input class="md-input" type="text" ng-model="importContact.last_name" my-submit-on-enter />\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer">\r\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\r\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: progress.enabled}" ng-click="doImport()" ng-bind="progress.enabled ? \'contact_import_modal_submit_active\' : \'contact_import_modal_submit\' | i18n" ng-disabled="progress.enabled"></button>\r\n </div>\r\n\r\n</div>'),e.put("partials/desktop/inactive.html",'<div class="inactive_page_wrap">\r\n <div class="tg_head_split inactive_head"></div>\r\n <div class="im_page_wrap">\r\n <div class="inactive_page_content" my-vertical-position="0.35">\r\n <a class="inactive_image" ng-click="reload()"></a>\r\n <h3 class="inactive_title" my-i18n="inactive_title"></h3>\r\n <div class="inactive_description" my-i18n="inactive_description_md"></div>\r\n <div class="inactive_actions">\r\n <button class="btn btn-lg btn-md btn-md-primary" ng-click="reload()" my-i18n="inactive_reload_btn" my-focused></button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'),e.put("partials/desktop/inline_results.html",'<a ng-if="botResults.switch_pm !== undefined" class="inline_switch_pm" ng-bind-html="botResults.switch_pm.rText" data-inlineid="_switch_pm_{{botResults.switch_pm.start_param}}"></a>\r\n\r\n<ul class="inline_results_wrap composer_dropdown">\r\n <li class="inline_result_wrap" ng-class="\'inline_result_\' + result.type" ng-repeat="result in botResults.results track by result.qID" ng-switch="result.type">\r\n\r\n <a ng-switch-when="gif" class="img_gif_with_progress_wrap" data-inlineid="{{result.qID}}" ng-style="::{width: result.thumbW, height: result.thumbH}" ng-switch="result._">\r\n <div class="inline_result_ind"></div>\r\n <div ng-switch-when="botInlineMediaResult" ng-switch="result.document.url !== undefined" class="inline_result_gif_mtproto">\r\n <div ng-switch-when="true" ng-switch="result.document.mime_type == \'video/mp4\'">\r\n <video ng-switch-when="true" width="{{result.thumbW}}" height="{{result.thumbH}}" loop autoplay class="img_gif_video">\r\n <source ng-src="{{result.document.url}}" type="video/mp4">\r\n </video>\r\n <img ng-switch-default class="img_gif_image" ng-src="{{result.document.url}}" width="{{result.thumbW}}" height="{{result.thumbH}}" />\r\n </div>\r\n <div ng-switch-default class="img_gif_image_wrap">\r\n <img class="img_gif_thumb" my-load-thumb thumb="result.document.thumb" width="{{result.thumbW}}" height="{{result.thumbH}}" />\r\n </div>\r\n </div>\r\n <div ng-switch-default ng-switch="result.contentUrl !== undefined" class="inline_result_gif_http">\r\n <div ng-switch-when="true" ng-switch="result.content_type == \'video/mp4\'">\r\n <video ng-switch-when="true" width="{{result.thumbW}}" height="{{result.thumbH}}" loop autoplay class="img_gif_video">\r\n <source ng-src="{{result.contentUrl}}" type="video/mp4">\r\n </video>\r\n <img ng-switch-default class="img_gif_image" ng-src="{{result.contentUrl}}" width="{{result.thumbW}}" height="{{result.thumbH}}" />\r\n </div>\r\n <img ng-switch-default ng-if="result.thumbUrl !== undefined" class="img_gif_thumb" width="{{result.thumbW}}" height="{{result.thumbH}}" ng-src="{{result.thumbUrl}}" />\r\n </div>\r\n </a>\r\n\r\n <a ng-switch-when="sticker" data-inlineid="{{result.qID}}" ng-style="::{width: result.thumbW, height: result.thumbH}">\r\n <div class="inline_result_ind"></div>\r\n <div class="inline_result_sticker_image" my-load-sticker document="result.document" dim="{width: result.thumbW, height: result.thumbH}"></div>\r\n </a>\r\n\r\n <a ng-switch-when="photo" data-inlineid="{{result.qID}}" ng-style="::{width: result.thumbW, height: result.thumbH}" ng-switch="result._">\r\n <div class="inline_result_ind"></div>\r\n <div ng-switch-when="botInlineMediaResult" class="inline_result_photo_mtproto">\r\n <img\r\n class="inline_result_photo_image"\r\n my-load-thumb\r\n thumb="result.thumb"\r\n ng-style="::{width: result.thumbW, height: result.thumbH}"\r\n />\r\n </div>\r\n <div ng-switch-default class="inline_result_photo_http">\r\n <img ng-if="result.thumbUrl !== undefined" class="inline_result_photo_image" width="{{result.thumbW}}" height="{{result.thumbH}}" ng-src="{{result.thumbUrl}}" />\r\n </div>\r\n </a>\r\n\r\n <a ng-switch-default class="inline_result_article clearfix" data-inlineid="{{result.qID}}">\r\n <div class="inline_article_thumb_wrap pull-left" ng-switch="result.thumb !== undefined ? \'thumb\' : (result.thumbUrl !== undefined ? \'thumbHttp\' : (result.send_message.geo ? \'geo\' : false))">\r\n <img ng-switch-when="thumb" class="inline_article_thumb" my-load-thumb\r\n thumb="result.thumb"/>\r\n <img ng-switch-when="thumbHttp" class="inline_article_thumb" ng-src="{{result.thumbUrl}}"/>\r\n <img\r\n ng-switch-when="geo"\r\n class="inline_article_thumb"\r\n my-geo-point-map="result.send_message.geo"\r\n width="50"\r\n height="50"\r\n />\r\n <div ng-switch-default class="inline_article_thumb_initials" ng-bind="result.initials"></div>\r\n </div>\r\n <div class="inline_article_content_wrap">\r\n <div class="inline_article_title" ng-if="::result.title.length > 0" ng-bind-html="::result.rTitle"></div>\r\n <div class="inline_article_description" ng-if="::result.description.length > 0" ng-bind-html="::result.rDescription"></div>\r\n <div class="inline_article_url" ng-if="::result.url.length > 0" ng-bind="::result.url"></div>\r\n </div>\r\n </a>\r\n\r\n </li>\r\n</ul>'),e.put("partials/desktop/lang_footer.html",'<div class="footer_wrap" ng-controller="AppLangSelectController">\r\n\t<span ng-repeat="locale in ::supportedLocales">\r\n\t <a class="footer_lang_link" ng-class="{active: curLocale == locale, disabled: curLocale == locale}" ng-disabled="curLocale == locale" ng-click="localeSelect(locale)" ng-bind="langNames[locale]"></a>\r\n\t <span ng-if="!$last" class="footer_link_divider"></span>\r\n\t</span>\r\n</div>'),e.put("partials/desktop/login.html",'<div class="login_page_wrap" my-custom-background="#e7ebf0">\r\n <div class="login_head_bg"></div>\r\n <div class="login_page">\r\n <div class="login_head_wrap clearfix" ng-switch="progress.enabled">\r\n <div ng-switch-when="true" class="login_head_submit_progress">\r\n <my-i18n ng-if="!credentials.phone_code_hash" msgid="login_generating_key"></my-i18n><my-i18n ng-if="credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" msgid="login_checking_code"></my-i18n><my-i18n ng-if="credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" msgid="login_signing_up"></my-i18n><my-i18n ng-if="credentials.phone_code_valid &amp;&amp; credentials.password_needed" msgid="login_checking_password"></my-i18n><span my-loading-dots></span>\r\n </div>\r\n <div ng-switch-default class="login_head_submit_wrap">\r\n <a class="login_head_submit_btn" ng-if="!credentials.phone_code_hash" ng-click="sendCode()">\r\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\r\n </a>\r\n <a class="login_head_submit_btn" ng-if="credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" ng-click="logIn()">\r\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\r\n </a>\r\n <a class="login_head_submit_btn" ng-if="credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" ng-click="logIn(true)">\r\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\r\n </a>\r\n <a class="login_head_submit_btn" ng-if="credentials.phone_code_valid &amp;&amp; credentials.password_needed" ng-click="checkPassword()">\r\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\r\n </a>\r\n </div>\r\n <a class="login_head_logo_link" href="https://telegram.org" target="_blank">\r\n <i class="icon icon-tg-logo"></i><i class="icon icon-tg-title"></i>\r\n </a>\r\n </div>\r\n\r\n <div class="login_form_wrap">\r\n <div class="error" ng-if="error.message" ng-bind="error.message"></div>\r\n\r\n <form name="mySendCodeForm" ng-if="!credentials.phone_code_hash" ng-submit="sendCode()">\r\n <h3 class="login_form_head" my-i18n="login_sign_in"></h3>\r\n <p class="login_form_lead" my-i18n="login_enter_number_description"></p>\r\n\r\n <div class="md-input-group md-input-has-value login_phone_country_input_group" ng-click="chooseCountry()">\r\n <label class="md-input-label" my-i18n="login_country_select_placeholder"></label>\r\n <div autocomplete="off" class="md-input" ng-bind="credentials.phone_country_name"></div>\r\n </div>\r\n\r\n <div class="login_phone_groups_wrap clearfix">\r\n\r\n <div class="md-input-group login_phone_code_input_group" ng-class="{\'md-input-error\': error.field == \'phone\'}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="login_code_input_placeholder"></label>\r\n <input autocomplete="off" class="md-input" my-focused name="phone_country" type="tel" ng-model="credentials.phone_country" />\r\n </div>\r\n\r\n <div class="md-input-group login_phone_num_input_group" ng-class="{\'md-input-error\': error.field == \'phone\'}" my-labeled-input ng-switch="error.field == \'phone\'">\r\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_number"></label>\r\n <label ng-switch-default class="md-input-label" my-i18n="login_tel_input_placeholder"></label>\r\n <input required autocomplete="off" my-submit-on-enter class="md-input" my-focus-on="country_selected" name="phone_number" type="tel" ng-model="credentials.phone_number" />\r\n </div>\r\n\r\n </div>\r\n <div class="login_form_messaging" ng-show="progress.enabled" my-i18n="login_generating_keys_info"></div>\r\n </form>\r\n\r\n <form name="myLoginForm" ng-if="credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" ng-submit="logIn()">\r\n <h3 class="login_phone_head"><span ng-bind="credentials.phone_country"></span> <span ng-bind="credentials.phone_number"></span></h3>\r\n <div class="login_edit_phone"><a ng-click="editPhone()" my-i18n="login_edit_number"></a></div>\r\n\r\n <div ng-switch="credentials.type._">\r\n <p ng-switch-when="auth.sentCodeTypeApp" class="login_smscode_lead" my-i18n="login_enter_code_label_md"></p>\r\n <p ng-switch-when="auth.sentCodeTypeCall" class="login_smscode_lead" my-i18n="login_enter_call_code_label_md"></p>\r\n <p ng-switch-default class="login_smscode_lead" my-i18n="login_enter_sms_code_label_md"></p>\r\n </div>\r\n\r\n <div ng-if="nextPending.type" ng-switch="nextPending.remaining > 0">\r\n <p ng-switch-when="true" class="login_smscode_lead">\r\n <span ng-switch="nextPending.type._" my-i18n>\r\n <span ng-switch-when="auth.codeTypeCall" my-i18n-format="login_call_remaining"></span>\r\n <span ng-switch-default my-i18n-format="login_code_remaining"></span>\r\n <my-i18n-param name="remaining" ng-bind="nextPending.remaining | duration"></my-i18n-param>\r\n </span>\r\n </p>\r\n <p ng-switch-default class="login_smscode_lead" ng-switch="nextPending.progress">\r\n <a ng-switch-when="true" ng-disabled class="disabled">\r\n <span my-i18n="login_code_requesting"></span><span my-loading-dots></span>\r\n </a>\r\n <a ng-switch-default ng-click="sendNext()" ng-switch="nextPending.type._">\r\n <span ng-switch-when="auth.codeTypeCall" my-i18n="login_code_not_received_call"></span>\r\n <span ng-switch-default my-i18n="login_code_not_received"></span>\r\n </a>\r\n </p>\r\n </div>\r\n\r\n <div class="md-input-group md-input-group-centered" ng-class="{\'md-input-error\': error.field == \'phone_code\'}" my-labeled-input ng-switch="error.field == \'phone_code\'">\r\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_sms_code"></label>\r\n <label ng-switch-default class="md-input-label" my-i18n="login_number_input_placeholder"></label>\r\n <input autocomplete="off" class="md-input" my-focused name="phone_code" type="tel" ng-model="credentials.phone_code" required />\r\n </div>\r\n </form>\r\n\r\n <form name="myFullNameForm" ng-if="credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" ng-submit="logIn(true)">\r\n <h3 class="login_form_head" my-i18n="login_your_info"></h3>\r\n <p class="login_form_lead" my-i18n="login_fulll_name_label"></p>\r\n\r\n <div class="md-input-group" ng-class="{\'md-input-error\': error.field == \'first_name\'}" my-labeled-input ng-switch="error.field == \'first_name\'">\r\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_first_name"></label>\r\n <label ng-switch-default class="md-input-label" my-i18n="login_first_name"></label>\r\n <input autocomplete="off" class="md-input" my-focused name="first_name" type="text" ng-model="credentials.first_name" my-submit-on-enter required />\r\n </div>\r\n\r\n <div class="md-input-group" ng-class="{\'md-input-error\': error.field == \'last_name\'}" my-labeled-input ng-switch="error.field == \'last_name\'">\r\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_last_name"></label>\r\n <label ng-switch-default class="md-input-label" my-i18n="login_last_name"></label>\r\n <input autocomplete="off" class="md-input" name="last_name" type="text" ng-model="credentials.last_name" my-submit-on-enter />\r\n </div>\r\n\r\n </form>\r\n\r\n <form name="myPasswordForm" ng-if="credentials.phone_code_valid &amp;&amp; credentials.password_needed" ng-submit="checkPassword()">\r\n <h3 class="login_form_head" my-i18n="login_password_title"></h3>\r\n <p class="login_form_lead" my-i18n="login_password_label"></p>\r\n\r\n <div class="md-input-group" ng-class="{\'md-input-error\': error.field == \'password\'}" my-labeled-input ng-switch="error.field == \'password\'">\r\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_password"></label>\r\n <label ng-switch-default class="md-input-label" my-i18n="login_password"></label>\r\n <input autocomplete="off" class="md-input" my-focused name="password" type="password" ng-model="credentials.password" my-submit-on-enter required />\r\n </div>\r\n\r\n <p ng-if="password.hint.length > 0" class="login_form_hint" ng-bind="password.hint"></p>\r\n\r\n <div class="login_forgot_button">\r\n <button class="btn btn-md" ng-click="forgotPassword($event)" my-i18n="login_password_forgot_link"></button>\r\n </div>\r\n\r\n <div ng-if="canReset" class="login_reset_button">\r\n <button class="btn btn-md btn-md-danger" ng-click="resetAccount($event)" my-i18n="login_account_reset"></button>\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n <div ng-switch="about.shown">\r\n <div ng-switch-when="true" class="login_footer_about_wrap" my-scroll-to-on="$init">\r\n <h3><span my-i18n="login_about_title"></span><a ng-click="about.shown = false" class="login_footer_about_hide" my-i18n="login_about_hide"></a></h3>\r\n <p my-i18n="login_about_desc1_md"></p>\r\n <p my-i18n="login_about_desc2_md"></p>\r\n <p my-i18n="login_about_desc3_md">\r\n <my-i18n-param name="source-link">\r\n <a href="https://github.com/zhukov/webogram" target="_blank">{0}</a>\r\n </my-i18n-param>\r\n </p>\r\n </div>\r\n <div ng-switch-default class="login_footer_wrap">\r\n <p my-i18n="login_about_intro"></p>\r\n <a class="logo_footer_learn_more_link" href="" ng-click="about.shown = true" my-i18n="login_about_learn"></a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n'),e.put("partials/desktop/media_modal_layout.html",'<div tabindex="-1" role="dialog" class="modal" ng-style="{\'z-index\': 1050 + index*10}" ng-click="close($event)" modal-transclude></div>'),e.put("partials/desktop/megagroup_edit_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body">\r\n\r\n <form class="modal_simple_form" ng-submit="updateChannel()">\r\n\r\n <h4 my-i18n="channel_edit_modal_title"></h4>\r\n\r\n <div class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="group_edit_name"></label>\r\n <input class="md-input" my-focused type="text" ng-model="channel.title" />\r\n </div>\r\n\r\n <div class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="group_edit_about"></label>\r\n <input class="md-input" type="text" ng-model="channel.about" />\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer">\r\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\r\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: channel.updating}" ng-click="updateChannel()" ng-bind="channel.updating ? \'group_edit_submit_active\' : \'group_edit_submit\' | i18n" ng-disabled="channel.updating"></button>\r\n </div>\r\n\r\n</div>'),e.put("partials/desktop/message.html",'<div class="im_message_outer_wrap hasselect" ng-click="toggleMessage(historyMessage.mid, $event)">\r\n\r\n <div class="im_message_wrap clearfix" ng-switch="::historyMessage._ == \'messageService\'">\r\n\r\n <div class="im_service_message_wrap" ng-switch-when="true" ng-switch="historyMessage.action._ == \'messageActionBotIntro\'">\r\n <div ng-switch-when="true" class="im_bot_intro_message_wrap">\r\n <div class="im_bot_intro_message_header" my-i18n="message_service_bot_intro_header"></div>\r\n <div class="im_bot_intro_message" ng-bind-html="::historyMessage.action.rDescription"></div>\r\n </div>\r\n <div ng-switch-default class="im_service_message">\r\n <a class="im_message_author" ng-if="::historyMessage.fromID > 0" my-peer-link="historyMessage.fromID" short="historyMessage.peerID > 0" color="historyMessage.peerID < 0" no-watch="true"></a>\r\n <span class="im_message_service" my-service-message="historyMessage"></span>\r\n </div>\r\n\r\n <a ng-if="::historyMessage.action._ == \'messageActionChatEditPhoto\' || historyMessage.action._ == \'messageActionChannelEditPhoto\'" class="im_service_message_photo_thumb" href="" ng-click="openPhoto(historyMessage.action.photo.id)">\r\n <img\r\n class="im_service_message_photo_thumb"\r\n my-load-thumb\r\n thumb="historyMessage.action.photo.thumb"\r\n />\r\n </a>\r\n\r\n </div>\r\n\r\n <div ng-switch-default class="im_content_message_wrap" ng-class="::[historyMessage.pFlags.out ? \'im_message_out\' : \'im_message_in\', historyMessage.fwdFromID ? \'im_message_fwd\' : \'\']">\r\n <i class="icon icon-select-tick"></i>\r\n\r\n <a class="im_message_error_btn" ng-if="::historyMessage.pending || historyMessage.error || false" ng-click="historyMessage.send()">\r\n <i class="icon-message-status" tooltip="{{\'message_action_retry\' | i18n}}"></i>\r\n </a>\r\n <i ng-if="::historyMessage.pFlags.unread &amp;&amp; historyMessage.pFlags.out || historyMessage.pending || false" class="icon-message-status" ng-show="!historyMessage.error"></i>\r\n\r\n <a class="im_message_from_photo pull-left" my-peer-photolink="::historyMessage.fromID" img-class="im_message_from_photo"></a>\r\n\r\n <div class="im_message_meta pull-right text-right noselect">\r\n <div class="im_message_views_wrap" ng-if="::!historyMessage.fwdFromID && historyMessage.views > 0">\r\n <div class="im_message_views">\r\n <i class="icon-message-views"></i><span class="im_message_views_cnt" my-message-views="historyMessage.mid"></span>\r\n </div>\r\n </div>\r\n <span class="im_message_date clickable">\r\n <span class="im_message_edited" my-message-edited="historyMessage.mid"></span>\r\n <span class="im_message_date_text nocopy" data-content="{{::historyMessage.date | time}}"></span>\r\n </span>\r\n </div>\r\n\r\n <div class="im_message_body" ng-class="::{im_message_body_media: historyMessage._ == \'message\' &amp;&amp; historyMessage.media ? true : false}">\r\n\r\n <span class="im_message_author_wrap">\r\n <span class="copyonly">[<span ng-bind="::historyMessage.date | time"></span>] </span><a class="im_message_author" my-peer-link="historyMessage.fromID" short="historyMessage.peerID > 0" color="historyMessage.peerID < 0" no-watch="true"></a><a ng-if="::historyMessage.viaBotID && !historyMessage.fwdFromID" class="im_message_author_via" ng-click="selectInlineBot(historyMessage.viaBotID, $event)"><span class="copyonly">&nbsp;</span><span my-i18n="message_via_bot"><my-i18n-param name="bot"><span class="im_message_fwd_author" my-peer-link="historyMessage.viaBotID" username="true" no-watch="true"></span></my-i18n-param></span></a><span class="copyonly">:</span>\r\n </span>\r\n\r\n\r\n <a class="im_message_reply_wrap" my-reply-message="::historyMessage.reply_to_mid" ng-if="::historyMessage.reply_to_mid"></a>\r\n\r\n <div ng-if="::historyMessage.fwdFromID || false" class="im_message_fwd_from">\r\n <span class="copyonly"><span my-i18n="message_forwarded_message"></span>:&nbsp;</span>\r\n <a class="im_message_fwd_photo pull-left" my-peer-photolink="::historyMessage.fwdFromID" img-class="im_message_fwd_photo"></a>\r\n <div class="im_message_fwd_author_wrap">\r\n <a class="im_message_fwd_author" my-peer-link="historyMessage.fwdFromID"></a><a ng-if="::historyMessage.viaBotID" class="im_message_fwd_via" ng-click="selectInlineBot(historyMessage.viaBotID, $event)"><span class="copyonly">&nbsp;</span><span my-i18n="message_via_bot"><my-i18n-param name="bot"><span class="im_message_fwd_author" my-peer-link="historyMessage.viaBotID" username="true" no-watch="true"></span></my-i18n-param></span></a><span class="copyonly">&nbsp;[</span><span class="im_message_fwd_date" ng-bind="::historyMessage.fwd_from.date | dateOrTime"></span><span class="copyonly">]&nbsp;</span>\r\n <span class="im_message_views_inline" ng-if="::historyMessage.views > 0">\r\n <i class="icon-message-views"></i><span class="im_message_views_cnt" my-message-views="historyMessage.mid"></span>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div my-message-body="historyMessage">\r\n <div class="im_message_text" dir="auto"></div>\r\n <div class="im_message_media"></div>\r\n <div class="im_message_sign"></div>\r\n <div class="im_message_keyboard"></div>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n'),e.put("partials/desktop/message_attach_contact.html",'<div class="im_message_contact">\r\n <a ng-if="::media.user_id > 0" class="im_message_contact_photo pull-left" my-peer-photolink="media.user_id" img-class="im_message_contact_photo" user-override="media"></a>\r\n <div class="im_message_contact_name" ng-switch="media.user_id > 0">\r\n <a ng-switch-when="true" my-peer-link="media.user_id" user-override="media"></a>\r\n <span ng-switch-default ng-bind-html="::media.rFullName"></span>\r\n </div>\r\n <div class="im_message_contact_phone" ng-bind="::media.phone_number | phoneNumber"></div>\r\n</div>'),e.put("partials/desktop/message_attach_document.html",'<div ng-switch="::media.document.type">\r\n\r\n <div ng-switch-when="gif" my-load-gif document="media.document"></div>\r\n\r\n <div ng-switch-when="round" my-load-round document="media.document"></div>\r\n\r\n <div ng-switch-when="sticker" my-load-sticker document="media.document" open="true"></div>\r\n\r\n <div ng-switch-when="voice" class="im_message_audio">\r\n <div my-audio-player audio="media.document"></div>\r\n </div>\r\n\r\n <div ng-switch-when="audio" class="im_message_audio">\r\n <div my-audio-player audio="media.document"></div>\r\n </div>\r\n\r\n <div ng-switch-when="video" class="im_message_video im_message_document_thumbed">\r\n <a class="im_message_video_thumb" ng-click="videoOpen()" ng-style="::{width: media.document.thumb.width + \'px\'}">\r\n <span class="im_message_video_duration nocopy" data-content="{{::media.document.duration | duration}}"></span>\r\n <i class="icon icon-videoplay"></i>\r\n <img\r\n class="im_message_video_thumb im_message_video_thumb_blurred"\r\n my-load-thumb\r\n thumb="media.document.thumb"\r\n />\r\n </a>\r\n\r\n <div class="im_message_document_info">\r\n <div class="im_message_document_name_wrap">\r\n <span class="copyonly">[</span><span class="im_message_document_name" my-i18n="message_attach_video_video"></span><span class="copyonly">&nbsp;<span ng-bind="::media.document.duration | duration"></span>]</span>\r\n <span class="im_message_document_size" ng-if="!media.document.progress.enabled" ng-bind="::media.document.size | formatSize"></span>\r\n <span class="im_message_document_size" ng-if="media.document.progress.enabled" ng-bind="media.document.progress | formatSizeProgress"></span>\r\n </div>\r\n <div class="im_message_document_actions noselect" ng-if="!media.document.progress.enabled">\r\n <a href="" ng-click="docSave()" ng-switch="media.document.downloaded">\r\n <span class="nocopy" ng-switch-when="true" my-i18n="message_attach_video_save"></span>\r\n <span class="nocopy" ng-switch-default my-i18n="message_attach_video_download"></span>\r\n </a>\r\n <a class="nocopy" href="" ng-click="videoOpen()" my-i18n="message_attach_video_play"></a>\r\n </div>\r\n <div class="clearfix im_message_cancelable_progress_wrap" ng-if="media.document.progress.enabled">\r\n <a class="im_message_media_progress_cancel pull-right nocopy" ng-click="media.document.progress.cancel()" my-i18n="modal_cancel"></a>\r\n <div class="im_message_download_progress_wrap">\r\n <div class="progress tg_down_progress">\r\n <div class="progress-bar progress-bar-success" ng-style="{width: media.document.progress.percent + \'%\'}"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div ng-switch-default class="im_message_document clearfix" ng-class="{im_message_document_thumbed: !!media.document.thumb, im_message_document_progress: media.document.progress.enabled}">\r\n\r\n <a ng-if="::!media.document.thumb" class="im_message_file_button" ng-click="docOpen()" ng-class="{im_message_file_button_dl_doc: media.document.downloaded}">\r\n <i class="im_message_file_button_icon"></i>\r\n </a>\r\n <a ng-if="::media.document.thumb" ng-click="docOpen()">\r\n <div class="im_message_document_thumb_wrap">\r\n <img\r\n class="im_message_document_thumb"\r\n my-load-thumb\r\n thumb="media.document.thumb"\r\n />\r\n </div>\r\n </a>\r\n\r\n <div class="im_message_document_info">\r\n <div class="im_message_document_name_wrap">\r\n <a href="" ng-attr-title="{{media.document.file_name}}" ng-attr-data-name="{{media_file_name_without_ext}}" ng-attr-data-ext="{{media_file_ext}}" ng-click="docOpen()" class="im_message_document_name"></a><span class="copyonly">[<span ng-bind="::media.document.file_name"></span>]</span>\r\n <span class="im_message_document_size" ng-if="!media.document.progress.enabled" ng-bind="::media.document.size | formatSize"></span>\r\n <span class="im_message_document_size" ng-if="media.document.progress.enabled" ng-bind="media.document.progress | formatSizeProgress"></span>\r\n </div>\r\n <div class="im_message_document_actions" ng-if="!media.document.progress.enabled" ng-switch="media.document.downloaded">\r\n <a class="nocopy" ng-switch-when="true" href="" ng-click="docSave()" my-i18n="message_attach_document_save"></a>\r\n <a class="nocopy" ng-switch-default href="" ng-click="docSave()" my-i18n="message_attach_document_download"></a>\r\n <a class="nocopy" ng-if="::media.document.withPreview" href="" ng-click="docOpen()" my-i18n="message_attach_document_open"></a>\r\n </div>\r\n <div class="clearfix im_message_cancelable_progress_wrap" ng-if="media.document.progress.enabled">\r\n <a class="im_message_media_progress_cancel pull-right nocopy" ng-click="media.document.progress.cancel()" my-i18n="modal_cancel"></a>\r\n <div class="im_message_download_progress_wrap">\r\n <div class="progress tg_down_progress">\r\n <div class="progress-bar progress-bar-success" ng-style="{width: media.document.progress.percent + \'%\'}"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n<div ng-if="::media.rCaption" class="im_message_document_caption" ng-bind-html="::media.rCaption"></div>\r\n'),e.put("partials/desktop/message_attach_game.html",'<div class="im_message_game">\r\n <div class="im_message_webpage_wrap clearfix">\r\n <div class="im_message_webpage_photo">\r\n <div class="im_message_webpage_title">\r\n <a href="" ng-click="openGame()" target="_blank" rel="noopener noreferrer" ng-bind-html="media.game.rTitle"></a>\r\n </div>\r\n <div class="im_message_webpage_description im_message_game_description" ng-bind-html="::media.game.rDescription"></div>\r\n <div class="im_message_webpage_description im_message_game_message"></div>\r\n <a class="im_message_photo_thumb" ng-click="openGame()" ng-style="::{width: media.game.photo.thumb.width + \'px\'}">\r\n <img\r\n class="im_message_photo_thumb"\r\n my-load-thumb\r\n thumb="media.game.photo.thumb"\r\n alt="[{{::media.game.title}}]"\r\n />\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n'),
e.put("partials/desktop/message_attach_geo.html",'<a ng-href="{{::media.mapUrl}}" target="_blank" rel="noopener noreferrer" class="im_message_geopoint">\r\n <img\r\n class="im_message_venue_geopoint_image"\r\n my-geo-point-map="media.geo"\r\n width="300"\r\n height="150"\r\n alt="[{{::\'conversation_media_location\' | i18n}} {{::media.mapUrl}}]"\r\n />\r\n</a>'),e.put("partials/desktop/message_attach_pending.html",'<div class="im_message_document im_message_upload_file" ng-class="::\'im_message_upload_\' + media.type">\r\n <div class="im_message_file_button im_message_file_button_upload">\r\n <i class="im_message_file_button_icon"></i>\r\n </div>\r\n <div class="im_message_document_info">\r\n <div class="im_message_document_name_wrap">\r\n <span ng-attr-title="{{media.file_name}}" ng-attr-data-name="{{media_file_name_without_ext}}" ng-attr-data-ext="{{media_file_ext}}" class="im_message_document_name"></span>\r\n <span class="im_message_document_size" ng-if="media.progress" ng-bind="media.progress | formatSizeProgress"></span>\r\n </div>\r\n <div class="clearfix im_message_cancelable_progress_wrap">\r\n <a class="im_message_media_progress_cancel pull-right" ng-click="media.progress.cancel()" my-i18n="modal_cancel"></a>\r\n <div class="im_message_download_progress_wrap">\r\n <div class="progress tg_up_progress">\r\n <div class="progress-bar progress-bar-success" role="progressbar" ng-style="{width: media.progress.percent + \'%\'}"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n'),e.put("partials/desktop/message_attach_photo.html",'<a class="im_message_photo_thumb" ng-click="openPhoto(media.photo.id, {m: messageId})" ng-style="::{width: media.photo.thumb.width + \'px\'}" ng-mouseover="preloadPhoto(media.photo.id)">\r\n <img\r\n class="im_message_photo_thumb"\r\n my-load-thumb\r\n thumb="media.photo.thumb"\r\n alt="[{{::\'conversation_media_photo\' | i18n}}]"\r\n />\r\n</a>\r\n<div ng-if="::media.rCaption" class="im_message_photo_caption" ng-bind-html="::media.rCaption"></div>'),e.put("partials/desktop/message_attach_venue.html",'<div class="im_message_venue clearfix">\r\n\r\n <a ng-href="{{::media.mapUrl}}" target="_blank" rel="noopener noreferrer" class="im_message_venue_geopoint_wrap">\r\n <img\r\n class="im_message_venue_geopoint_image"\r\n my-geo-point-map="media.geo"\r\n width="100"\r\n height="100"\r\n alt="[{{::\'conversation_media_location\' | i18n}} {{::media.mapUrl}}]"\r\n />\r\n </a>\r\n\r\n <div class="im_message_venue_info">\r\n <div class="im_message_venue_title_wrap">\r\n <a ng-href="{{::media.mapUrl}}" target="_blank" rel="noopener noreferrer" class="im_message_document_name" ng-bind="::media.title"></a>\r\n </div>\r\n <div class="im_message_venue_address" ng-bind="::media.address"></div>\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/desktop/message_attach_webpage.html",'<div ng-show="media.webpage._ == \'webPage\'" class="im_message_webpage_wrap clearfix" ng-switch="media.webpage.type">\r\n <div ng-switch-when="photo" class="im_message_webpage_photo">\r\n <div class="im_message_webpage_title">\r\n <a href="{{media.webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="media.webpage.rTitle"></a>\r\n </div>\r\n <div ng-if="media.webpage.description.length" class="im_message_webpage_description" ng-bind-html="media.webpage.rDescription"></div>\r\n <a class="im_message_photo_thumb" ng-click="openPhoto(media.webpage.photo.id, {w: media.webpage.id, m: messageId})" ng-style="::{width: media.webpage.photo.thumb.width + \'px\'}" ng-mouseover="preloadPhoto(media.webpage.photo.id)">\r\n <img\r\n class="im_message_photo_thumb"\r\n my-load-thumb\r\n thumb="media.webpage.photo.thumb"\r\n alt="[{{::\'conversation_media_photo\' | i18n}}]"\r\n />\r\n </a>\r\n </div>\r\n <div ng-switch-when="video" class="im_message_webpage_video">\r\n <div class="im_message_webpage_site" ng-bind="media.webpage.site_name || media.webpage.display_url"></div>\r\n <div class="im_message_webpage_title">\r\n <a ng-click="openEmbed($event)" href="{{media.webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="media.webpage.rTitle"></a>\r\n </div>\r\n <div ng-if="media.webpage.description.length" class="im_message_webpage_description" ng-bind-html="media.webpage.rDescription"></div>\r\n <a class="im_message_video_thumb" ng-click="openEmbed($event)" ng-href="{{media.webpage.url}}" target="_blank" rel="noopener noreferrer" ng-style="::{width: video.thumb.width + \'px\'}">\r\n <span ng-if="media.webpage.duration > 0" class="im_message_video_duration nocopy" data-content="{{::media.webpage.duration | duration}}"></span>\r\n <i class="icon icon-videoplay"></i>\r\n <img\r\n class="im_message_video_thumb"\r\n my-load-thumb\r\n thumb="media.webpage.photo.thumb"\r\n alt="[{{::\'conversation_media_video\' | i18n}}]"\r\n />\r\n </a>\r\n </div>\r\n\r\n <div ng-switch-when="document" class="im_message_webpage_document">\r\n <div my-message-document="media.webpage" message-id="messageId"></div>\r\n </div>\r\n\r\n <div ng-switch-when="gif" class="im_message_webpage_gif">\r\n <div class="im_message_webpage_title">\r\n <a href="{{media.webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="media.webpage.rTitle"></a>\r\n </div>\r\n <div my-message-document="media.webpage" message-id="messageId"></div>\r\n </div>\r\n\r\n <div ng-switch-default class="im_message_webpage_article">\r\n <a ng-if="media.webpage.photo" href="{{media.webpage.url}}" target="_blank" rel="noopener noreferrer" class="im_message_webpage_article_photo pull-right">\r\n <img\r\n class="im_message_article_thumb"\r\n my-load-thumb\r\n thumb="media.webpage.photo.thumb"\r\n />\r\n </a>\r\n <div ng-if="media.webpage.site_name" class="im_message_webpage_site" ng-bind="media.webpage.site_name"></div>\r\n <div class="im_message_webpage_title">\r\n <a ng-click="openEmbed($event)" href="{{media.webpage.url}}" target="_blank" ng-bind-html="media.webpage.rTitle"></a>\r\n </div>\r\n <div ng-if="media.webpage.description.length" class="im_message_webpage_description" ng-bind-html="media.webpage.rDescription"></div>\r\n </div>\r\n</div>\r\n'),e.put("partials/desktop/message_media.html",'<div ng-switch="::media._">\r\n <div ng-switch-when="messageMediaPhoto" my-message-photo="media" message-id="messageId"></div>\r\n <div ng-switch-when="messageMediaDocument" my-message-document="media" message-id="messageId"></div>\r\n <div ng-switch-when="messageMediaGeo" my-message-geo="media"></div>\r\n <div ng-switch-when="messageMediaVenue" my-message-venue="media"></div>\r\n <div ng-switch-when="messageMediaContact" my-message-contact="media"></div>\r\n <div ng-switch-when="messageMediaWebPage" my-message-webpage="media" message-id="messageId"></div>\r\n <div ng-switch-when="messageMediaGame" my-message-game="media" message-id="messageId"></div>\r\n <div ng-switch-when="messageMediaPending" my-message-pending="media"></div>\r\n <div ng-switch-when="messageMediaUnsupported">\r\n <div class="im_message_text" my-i18n="message_attach_unsupported">\r\n <my-i18n-param name="link"><a href="https://web.telegram.org" target="_blank">web.telegram.org</a></my-i18n-param>\r\n </div>\r\n </div>\r\n</div>'),e.put("partials/desktop/message_service.html",'<span ng-switch="::historyMessage.action._">\r\n <my-i18n>\r\n <span ng-switch-when="messageActionChatCreate" my-i18n-format="message_service_created_group"></span>\r\n <span ng-switch-when="messageActionChatEditTitle" my-i18n-format="message_service_changed_group_name"></span>\r\n <my-i18n-param name="group-name">&laquo;<strong ng-bind-html="::historyMessage.action.rTitle"></strong>&raquo;</my-i18n-param>\r\n </my-i18n>\r\n <span ng-switch-when="messageActionChatEditPhoto" my-i18n="message_service_changed_group_photo"></span>\r\n <span ng-switch-when="messageActionChatDeletePhoto" my-i18n="message_service_removed_group_photo"></span>\r\n <span ng-switch-when="messageActionChatJoinedByLink" my-i18n="message_service_joined_by_link"></span>\r\n <span ng-switch-when="messageActionChatReturn" my-i18n="message_service_returned_to_group"></span>\r\n <span ng-switch-when="messageActionChatJoined" my-i18n="message_service_joined"></span>\r\n <span ng-switch-when="messageActionChatAddUser" my-i18n="message_service_invited_user">\r\n <my-i18n-param name="user"><a my-peer-link="historyMessage.action.user_id" color="true"></a></my-i18n-param>\r\n </span>\r\n <span ng-switch-when="messageActionChatAddUsers" my-i18n="message_service_invited_users">\r\n <my-i18n-param name="user"><a my-peer-link="historyMessage.action.users[0]" color="true"></a></my-i18n-param>\r\n <my-i18n-param name="num-more"><span ng-bind="historyMessage.action.users.length - 1"></span></my-i18n-param>\r\n </span>\r\n <span ng-switch-when="messageActionChatLeave" my-i18n="message_service_left_group"></span>\r\n <span ng-switch-when="messageActionChatDeleteUser" my-i18n="message_service_kicked_user">\r\n <my-i18n-param name="user"><a my-peer-link="historyMessage.action.user_id" color="true"></a></my-i18n-param>\r\n </span>\r\n\r\n <span ng-switch-when="messageActionChatMigrateTo" my-i18n="message_service_converted_to_supergroup"></span>\r\n <span ng-switch-when="messageActionChannelMigrateFrom" my-i18n="message_service_converted_to_supergroup"></span>\r\n <span ng-switch-when="messageActionChannelCreate" my-i18n="message_service_created_channel"></span>\r\n <span ng-switch-when="messageActionChannelEditTitle" my-i18n="message_service_changed_channel_name">\r\n <my-i18n-param name="channel-name">&laquo;<strong ng-bind-html="::historyMessage.action.rTitle"></strong>&raquo;</my-i18n-param>\r\n </span>\r\n <span ng-switch-when="messageActionChannelEditPhoto" my-i18n="message_service_changed_channel_photo"></span>\r\n <span ng-switch-when="messageActionChannelDeletePhoto" my-i18n="message_service_removed_channel_photo"></span>\r\n\r\n <span ng-switch-when="messageActionGameScore" my-i18n="message_service_scored_game">\r\n <my-i18n-param name="scored">\r\n <ng-pluralize count="historyMessage.action.score"\r\n when="message_service_scored_X"></ng-pluralize>\r\n </my-i18n-param>\r\n <my-i18n-param name="message"><a class="im_service_message_pinned" my-pinned-message="::historyMessage.reply_to_mid"></a></my-i18n-param>\r\n </span>\r\n\r\n <span ng-switch-when="messageActionPinMessage" my-i18n="message_service_pinned_message">\r\n <my-i18n-param name="message"><a class="im_service_message_pinned" my-pinned-message="::historyMessage.reply_to_mid"></a></my-i18n-param>\r\n </span>\r\n\r\n <a ng-switch-when="messageActionPhoneCall" class="im_service_message_phonecall" ng-click="phoneCallClick(historyMessage.mid)" ng-switch="historyMessage.action.type">\r\n <span ng-switch-when="out_missed" my-i18n="message_service_phonecall_canceled"></span>\r\n <span ng-switch-when="in_missed" my-i18n="message_service_phonecall_missed"></span>\r\n <span ng-switch-when="out_ok" my-i18n="message_service_phonecall_outgoing"></span>\r\n <span ng-switch-when="in_ok" my-i18n="message_service_phonecall_incoming"></span>\r\n <span ng-if="historyMessage.action.duration > 0" ng-bind="historyMessage.action.duration | duration" class="im_service_message_phonecall_duration"></span>\r\n </a>\r\n\r\n <span ng-switch-when="messageActionPaymentSent" class="message_service_payment_sent"></span>\r\n\r\n <span ng-switch-default my-i18n="message_service_unsupported_action">\r\n <my-i18n-param name="action"><span ng-bind="historyMessage.action._"></span></my-i18n-param>\r\n </span>\r\n</span>\r\n'),e.put("partials/desktop/password_recovery_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body">\r\n\r\n <form class="modal_simple_form" ng-submit="checkCode()">\r\n\r\n <h4 my-i18n="login_recovery_title"></h4>\r\n\r\n <div class="md_simple_form_description" my-i18n="login_recovery_description_md">\r\n <my-i18n-param name="email">\r\n <strong ng-bind="recovery.email_pattern"></strong>\r\n </my-i18n-param>\r\n </div>\r\n\r\n <div class="md-input-group" ng-class="{\'md-input-error\': recovery.error_field == \'code\'}" my-labeled-input ng-switch="recovery.error_field == \'code\'">\r\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_code_incorrect"></label>\r\n <label ng-switch-default class="md-input-label" my-i18n="login_code_placeholder"></label>\r\n <input class="md-input" my-focused type="text" ng-model="recovery.code" name="code" my-focused />\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer">\r\n\r\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\r\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: recovery.updating}" ng-click="checkCode()" ng-disabled="recovery.updating" ng-bind="recovery.updating ? \'password_recover_active\' : \'password_recover_submit\' | i18n"></button>\r\n\r\n </div>\r\n\r\n</div>'),e.put("partials/desktop/password_update_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body">\r\n\r\n <form class="modal_simple_form" ng-submit="updatePassword()">\r\n\r\n <h4 ng-switch="action">\r\n <my-i18n ng-switch-when="disable" msgid="password_delete_title"></my-i18n>\r\n <my-i18n ng-switch-default msgid="password_change_title"></my-i18n>\r\n </h4>\r\n\r\n <div ng-if="password._ != \'account.noPassword\'" class="md-input-group" ng-class="{\'md-input-error\': passwordSettings.error_field == \'cur_password\'}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="password_current_placeholder"></label>\r\n <input class="md-input" my-focused type="password" ng-model="passwordSettings.cur_password" name="cur_password" my-focus-on="cur_password_focus" />\r\n </div>\r\n\r\n <div ng-if="action != \'disable\'" class="md-input-group md-input-grouped" ng-class="{\'md-input-error\': passwordSettings.error_field == \'new_password\'}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="password_new_placeholder"></label>\r\n <input class="md-input" type="password" ng-model="passwordSettings.new_password" name="new_password" my-focus-on="new_password_focus" />\r\n </div>\r\n\r\n <div ng-if="action != \'disable\'" class="md-input-group" ng-class="{\'md-input-error\': passwordSettings.confirm_password && passwordSettings.new_password && passwordSettings.confirm_password != passwordSettings.new_password}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="password_confirm_placeholder"></label>\r\n <input class="md-input" type="password" ng-model="passwordSettings.confirm_password" name="confirm_password" my-focus-on="confirm_password_focus" />\r\n </div>\r\n\r\n <div ng-if="action != \'disable\'" class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="password_hint_placeholder"></label>\r\n <input class="md-input" type="text" ng-model="passwordSettings.hint" name="hint" />\r\n </div>\r\n\r\n <div ng-if="action != \'disable\'" class="md_simple_form_description" my-i18n="password_create_description"></div>\r\n\r\n <div ng-if="action != \'disable\'" class="md-input-group" ng-class="{\'md-input-error\': passwordSettings.error_field == \'email\'}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="password_email_placeholder"></label>\r\n <input class="md-input" type="text" ng-model="passwordSettings.email" name="email" />\r\n </div>\r\n\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer">\r\n\r\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\r\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: passwordSettings.updating}" ng-click="updatePassword()" ng-disabled="passwordSettings.updating" ng-switch="action">\r\n <span ng-switch-when="disable" ng-bind="passwordSettings.updating ? \'password_delete_active\' : \'password_delete_submit\' | i18n"></span>\r\n <span ng-switch-default ng-bind="passwordSettings.updating ? \'password_create_active\' : \'password_create_submit\' | i18n"></span>\r\n </button>\r\n\r\n </div>\r\n\r\n</div>'),e.put("partials/desktop/peer_select.html",'<div class="peer_select_modal_wrap md_modal_wrap" my-modal-position>\r\n\r\n <div class="md_modal_head md_modal_head_simple">\r\n <div class="md_modal_title_wrap">\r\n <div class="md_modal_actions_wrap clearfix">\r\n <a class="md_modal_action md_modal_action_close" ng-click="$dismiss()" my-i18n="modal_close"></a>\r\n </div>\r\n </div>\r\n <div class="md_modal_title" my-i18n="conversations_modal_forward_title"></div>\r\n </div>\r\n\r\n <div class="md_modal_body">\r\n\r\n <div class="im_dialogs_modal_col_wrap" ng-controller="AppImDialogsController" my-dialogs ng-class="search.query.length > 0 ? \'im_dialogs_col_search\' : \'\'">\r\n <div class="im_dialogs_panel">\r\n <div class="im_dialogs_search">\r\n <input my-focused class="form-control im_dialogs_search_field no_outline" type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\r\n <a class="im_dialogs_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\r\n <i class="icon icon-search-clear"></i>\r\n </a>\r\n </div>\r\n </div>\r\n <div my-dialogs-list modal="true" class="im_dialogs_modal_col">\r\n <div class="im_dialogs_wrap nano">\r\n <div class="im_dialogs_scrollable_wrap nano-content">\r\n <ul class="im_dialogs_modal_list nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.peerID" ng-class="{active: selectedPeers[dialogMessage.peerID] !== undefined}"></li>\r\n </ul>\r\n <div class="im_dialogs_contacts_wrap" ng-show="contacts.length > 0">\r\n <h5 my-i18n="conversation_select_modal_contacts"></h5>\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" ng-repeat="contact in contacts | orderBy:\'user.sortName\' track by contact.userID" ng-class="{active: selectedPeers[contact.userID] !== undefined}">\r\n <a class="im_dialog" ng-click="dialogSelect(contact.peerString)">\r\n <div class="im_dialog_photo pull-left" my-peer-photolink="::contact.userID" img-class="im_dialog_photo"></div>\r\n <div class="im_dialog_message_wrap">\r\n <div class="im_dialog_peer">\r\n <span class="im_dialog_user" my-peer-link="contact.userID"></span>\r\n </div>\r\n <div class="im_dialog_message">\r\n <span class="im_dialog_message_text" my-user-status="::contact.userID"></span>\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class="im_dialogs_contacts_wrap" ng-show="foundPeers.length > 0">\r\n <h5 my-i18n="im_found_title"></h5>\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" ng-repeat="foundPeer in foundPeers track by foundPeer.id" ng-class="{active: selectedPeers[foundPeer.id] !== undefined}">\r\n <a class="im_dialog" ng-click="dialogSelect(foundPeer.peerString)">\r\n <div class="im_dialog_photo pull-left" my-peer-photolink="foundPeer.id" img-class="im_dialog_photo" watch="true"></div>\r\n <div class="im_dialog_message_wrap">\r\n <div class="im_dialog_peer">\r\n <span class="im_dialog_user" my-peer-link="foundPeer.id"></span>\r\n </div>\r\n <div class="im_dialog_message">\r\n <span class="im_dialog_message_text" ng-bind="::\'@\' + foundPeer.username"></span>\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="md_modal_footer peer_select_modal_footer clearfix" ng-if="multiSelect">\r\n <button class="btn btn-md btn-md-primary pull-right" ng-click="submitSelected()" my-i18n="conversations_modal_forward_submit"></button>\r\n\r\n <div class="peer_select_modal_recipients_wrap" ng-switch="!selectedCount">\r\n <span ng-switch-when="true" ng-switch="shareLink.loading ? \'url_loading\' : (shareLink.url ? \'url\' : \'empty\')">\r\n <span ng-switch-when="url_loading" class="peer_select_modal_recipients_empty" my-i18n="conversations_modal_share_url_loading">\r\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\r\n </span>\r\n <span ng-switch-when="url">\r\n <a class="peer_select_modal_share_link" my-copy-link ng-bind="shareLink.url | shortUrl" data-clipboard-text="{{shareLink.url}}"></a>\r\n </span>\r\n <span ng-switch-default class="peer_select_modal_recipients_empty" my-i18n="conversations_modal_select_recipients"></span>\r\n </span>\r\n <span ng-switch-default>\r\n <span class="peer_select_modal_recipients_name" my-i18n="conversations_modal_recipients"></span>\r\n <span class="peer_select_modal_recipients_list" ng-switch="selectedCount" my-i18n>\r\n <span ng-switch-when="1" my-i18n-format="conversation_one_selected"></span>\r\n <span ng-switch-when="2" my-i18n-format="conversation_two_selected"></span>\r\n <span ng-switch-default my-i18n-format="conversation_many_selected"></span>\r\n <my-i18n-param name="name1"><span class="peer_select_modal_recipient" ng-bind-html="selectedPeers[selectedPeerIDs[0]][selectedPeerIDs[0] > 0 ? \'rFullName\' : \'rTitle\']"></span></my-i18n-param>\r\n <my-i18n-param name="name2"><span class="peer_select_modal_recipient" ng-bind-html="selectedPeers[selectedPeerIDs[1]][selectedPeerIDs[1] > 0 ? \'rFullName\' : \'rTitle\']"></span></my-i18n-param>\r\n <my-i18n-param name="count">{{selectedCount - 2}}</my-i18n-param>\r\n </span>\r\n\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_footer md_modal_footer_empty clearfix" ng-if="!multiSelect"></div>\r\n\r\n</div>\r\n'),e.put("partials/desktop/photo_modal.html",'<div class="modal_prev_wrap" ng-class="{modal_prev_active_wrap: nav.hasPrev}" ng-click="nav.prev($event)">\r\n <div class="modal_prev"></div>\r\n</div>\r\n<div class="modal_next_wrap" ng-class="{modal_next_active_wrap: nav.hasNext}" ng-click="nav.next($event)">\r\n <div class="modal_next"></div>\r\n</div>\r\n<div class="modal_close_wrap modal_close_wrap_wnext" ng-click="$close()">\r\n <div class="modal_close"></div>\r\n</div>\r\n\r\n<div class="media_modal_bottom_panel_wrap">\r\n <div class="media_modal_bottom_panel">\r\n <div class="media_modal_bottom_actions">\r\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\r\n <i class="media_modal_action_btn_download"></i>\r\n </a>\r\n <a class="media_modal_action_btn" ng-if="canForward" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\r\n <i class="media_modal_action_btn_forward"></i>\r\n </a>\r\n <a class="media_modal_action_btn" ng-if="canDelete" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\r\n <i class="media_modal_action_btn_delete"></i>\r\n </a>\r\n </div>\r\n\r\n <div class="media_modal_info_wrap pull-left" ng-if="!webpageID && photo.user_id">\r\n <a class="media_modal_author_photo pull-left" my-peer-photolink="photo.user_id" img-class="media_modal_author_photo" watch="true"></a>\r\n <div class="media_modal_author_name">\r\n <a class="media_modal_author" my-peer-link="photo.user_id" peer-watch="true"></a>\r\n </div>\r\n <div class="media_modal_date" ng-if="photo.date > 0" ng-switch="messageID > 0">\r\n <a ng-switch-when="true" class="media_modal_date" ng-click="goToMessage()" ng-bind="photo.date | dateOrTime :true"></a>\r\n <span ng-switch-default ng-bind="photo.date | dateOrTime :true"></span>\r\n </div>\r\n </div>\r\n\r\n <div class="media_modal_info_wrap pull-left" ng-if="webpageID">\r\n <div class="media_modal_author_name">\r\n <a class="media_modal_author" href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="webpage.rTitle"></a>\r\n </div>\r\n <div class="media_modal_date" ng-bind="webpage.site_name || webpage.display_url"></div>\r\n </div>\r\n\r\n <div class="media_modal_title_wrap" ng-switch="count > 1 &amp;&amp; pos > 0">\r\n <my-i18n ng-switch-when="true" msgid="media_modal_photo_index">\r\n <my-i18n-param name="pos" ng-bind="pos"></my-i18n-param>\r\n <my-i18n-param name="count" ng-bind="count"></my-i18n-param>\r\n </my-i18n>\r\n <my-i18n ng-switch-default msgid="media_modal_photo">\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class="modal-dialog" my-modal-nav next="nav.next()" prev="nav.prev()">\r\n <div class="modal-content">\r\n <div my-modal-width="{{photo.full.modalWidth}}" class="media_modal_wrap photo_modal_wrap" my-modal-position animation="no">\r\n\r\n <div class="modal-body">\r\n\r\n <div class="photo_modal_image_wrap" my-load-full-photo full-photo="photo.full" thumb-location="photo.thumb.location" ng-click="nav.next()"></div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n'),e.put("partials/desktop/pinned_message.html",'<span ng-switch="pinnedMessage.loading"><span ng-switch-when="true" my-i18n="im_reply_loading"><my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param></span><span ng-switch-default my-short-message="pinnedMessage"></span></span>'),e.put("partials/desktop/profile_edit_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body">\r\n\r\n <form class="modal_simple_form" ng-submit="updateProfile()">\r\n\r\n <h4 my-i18n="profile_edit_modal_title"></h4>\r\n\r\n <div class="md-input-group" ng-class="{\'has-error\': error.field == \'first_name\'}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="profile_edit_first_name"></label>\r\n <input class="md-input" my-focused type="text" ng-model="profile.first_name" />\r\n </div>\r\n\r\n <div class="md-input-group" ng-class="{\'has-error\': error.field == \'last_name\'}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="profile_edit_last_name"></label>\r\n <input class="md-input" type="text" ng-model="profile.last_name" />\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer">\r\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\r\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: profile.updating}" ng-click="updateProfile()" ng-bind="profile.updating ? \'profile_edit_submit_active\' : \'profile_edit_submit\' | i18n" ng-disabled="profile.updating"></button>\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/desktop/reply_markup.html",'<div class="reply_markup_wrap">\r\n <div class="reply_markup" ng-class="replyMarkup.splitCount ? \'reply_markup_h\' + replyMarkup.splitCount : \'\'">\r\n <div class="reply_markup_row" ng-repeat="row in replyMarkup.rows">\r\n <div class="reply_markup_button_wrap" ng-class="\'reply_markup_button_w\' + row.buttons.length" ng-repeat="button in row.buttons" ng-switch="button._">\r\n <a ng-switch-when="keyboardButtonUrl" class="btn reply_markup_button" href="{{button.pUrl}}" ng-bind-html="::button.rText"></a>\r\n <button ng-switch-default class="btn reply_markup_button" ng-bind-html="::button.rText" ng-click="buttonClick(button)"></button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>'),e.put("partials/desktop/reply_message.html",'<div class="im_message_reply clearfix" ng-class="{im_message_reply_thumbed: thumb !== false}" ng-switch="replyMessage.loading">\r\n <div class="im_message_reply_border"></div>\r\n <div class="im_message_reply_loading" ng-switch-when="true" my-i18n="im_reply_loading">\r\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\r\n </div>\r\n <div class="im_message_reply_thumb_wrap pull-left" ng-if="thumb !== false">\r\n <img\r\n class="im_message_reply_thumb"\r\n my-load-thumb\r\n thumb="thumb"\r\n watch="true"\r\n />\r\n </div>\r\n <div class="im_message_reply_author" ng-switch-default ng-switch="isEdit">\r\n <span class="copyonly">&gt;&nbsp;</span>\r\n <span ng-switch-when="true" my-i18n="im_edit_message_title"></span>\r\n <span ng-switch-default my-peer-link="replyMessage.fromID" peer-watch="true"></span>\r\n </div>\r\n <div class="im_message_reply_body" ng-switch-default>\r\n <span class="copyonly">&gt;&nbsp;</span>\r\n <span my-short-message="replyMessage"></span>\r\n </div>\r\n</div>'),e.put("partials/desktop/sessions_list_modal.html",'<div class="sessions_modal_wrap md_modal_wrap" my-modal-position>\r\n\r\n <div class="md_modal_head md_modal_head_simple">\r\n <div class="md_modal_title_wrap">\r\n <div class="md_modal_actions_wrap clearfix">\r\n <a class="md_modal_action md_modal_action_close" ng-click="$dismiss()" my-i18n="modal_close"></a>\r\n </div>\r\n </div>\r\n <div class="md_modal_title" my-i18n="sessions_modal_title"></div>\r\n </div>\r\n\r\n <div class="md_modal_body">\r\n\r\n <div my-sessions-list class="sessions_modal_col">\r\n\r\n <div class="sessions_wrap nano" my-infinite-scroller>\r\n <div class="sessions_scrollable_wrap nano-content" ng-switch="!sessionsLoaded">\r\n\r\n <div ng-switch-when="true" class="sessions_modal_loading" my-vertical-position="0.2" padding="true" my-i18n="sessions_modal_loading">\r\n <my-i18n-param name="dots">\r\n <span my-loading-dots></span>\r\n </my-i18n-param>\r\n </div>\r\n\r\n <ul ng-switch-default class="sessions_modal_sessions_list nav nav-pills nav-stacked">\r\n\r\n <li class="sessions_modal_session_wrap clearfix" ng-repeat="authorization in authorizations | limitTo: slice.limit track by authorization.hash">\r\n <div class="sessions_modal_session">\r\n <div class="session_meta_wrap pull-right">\r\n <div class="session_active_date" ng-switch="authorization.current">\r\n <span ng-switch-when="true" class="session_active_date_online" my-i18n="sessions_modal_current_session"></span>\r\n <span ng-switch-default ng-bind="authorization.date_active | dateOrTime"></span>\r\n </div>\r\n\r\n <a ng-if="!authorization.current" class="session_terminate_btn" ng-click="terminateSession(authorization.hash)" my-i18n="sessions_modal_terminate_one"></a>\r\n </div>\r\n\r\n <div class="sessions_modal_session_app" ng-bind="authorization.app_name + \' \' + authorization.app_version"></div>\r\n <div class="sessions_modal_session_device" ng-bind="authorization.device_model + \', \' + authorization.platform + \' \' + authorization.system_version"></div>\r\n <div class="sessions_modal_session_location" ng-bind="authorization.ip + \' - \' + authorization.country"></div>\r\n </div>\r\n <div ng-if="authorization.current && authorizations.length > 1">\r\n <div class="sessions_modal_terminate_all_wrap">\r\n <a ng-click="terminateAllSessions()" my-i18n="sessions_modal_terminate_all"></a>\r\n </div>\r\n\r\n <hr class="sessions_modal_other_splitter"></hr>\r\n </div>\r\n </li>\r\n\r\n </ul>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n'),
e.put("partials/desktop/settings_modal.html",'<div class="settings_modal_wrap md_modal_wrap" my-modal-position>\r\n\r\n <div class="md_modal_head">\r\n <div class="md_modal_title_wrap">\r\n <div class="md_modal_actions_wrap clearfix">\r\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\r\n <a class="md_modal_action" ng-click="editProfile()" my-i18n="modal_edit"></a>\r\n </div>\r\n <div class="md_modal_title" my-i18n="settings_modal_title"></div>\r\n </div>\r\n\r\n <div class="peer_modal_profile_wrap clearfix">\r\n <div class="peer_modal_photo_wrap pull-left" ng-switch="photo.updating">\r\n <div ng-switch-when="true" class="peer_modal_photo md_photo_loading loading_dots">\r\n <i></i><i></i><i></i>\r\n </div>\r\n <a ng-switch-default ng-click="openPhoto(profile.photo.photo_id, {p: profile.id})" class="peer_modal_photo" my-peer-photolink="::profile.id" img-class="peer_modal_photo" watch="true" no-open="true" ng-class="{disabled: !profile.photo.photo_id}" ng-disabled="!profile.photo.photo_id"></a>\r\n </div>\r\n <div class="peer_modal_profile">\r\n <div class="peer_modal_profile_name" my-peer-link="profile.id"></div>\r\n <div class="peer_modal_profile_description" my-user-status="::profile.id"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_split_actions_wrap">\r\n <div class="md_modal_split_actions">\r\n <div class="md_modal_split_action">\r\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" title="{{\'settings_modal_set_photo\' | i18n}}" />\r\n <i class="md_modal_split_action_camera"></i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_body">\r\n\r\n <div class="md_modal_sections clearfix">\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_number">\r\n <i class="md_modal_section_icon md_modal_section_icon_phone"></i>\r\n\r\n <div class="md_modal_section_param_wrap">\r\n <div class="md_modal_section_param_value" ng-bind="profile.phone | phoneNumber"></div>\r\n <div class="md_modal_section_param_name" my-i18n="user_modal_phone"></div>\r\n </div>\r\n\r\n <div class="md_modal_section_param_wrap">\r\n <div class="md_modal_section_param_value" ng-switch="profile.username.length > 0">\r\n <a ng-switch-when="true" class="settings_modal_username_link" ng-click="changeUsername()" ng-bind="\'@\' + profile.username"></a>\r\n <a ng-switch-default ng-click="changeUsername()" my-i18n="settings_modal_empty_username_set"></a>\r\n </div>\r\n <div class="md_modal_section_param_name" my-i18n="user_modal_username"></div>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_toggle">\r\n <i class="md_modal_section_icon md_modal_section_icon_notification"></i>\r\n\r\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="toggleDesktop()" ng-class="notify.desktop ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="settings_modal_notifications"></span>\r\n </a>\r\n\r\n <a ng-if="notify.desktop && notify.pushAvailable" class="md_modal_section_toggle_wrap tg_checkbox" ng-click="togglePush()" ng-class="notify.push ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="settings_modal_pushes"></span>\r\n </a>\r\n\r\n \r\n\r\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="togglePreview()" ng-class="notify.preview ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="settings_modal_message_preview"></span>\r\n </a>\r\n\r\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="toggleSound()" ng-class="notify.volume ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="settings_modal_sound"></span>\r\n </a>\r\n\r\n <div class="md_modal_section_range_wrap tg_range_wrap" ng-show="notify.volume > 0">\r\n <div my-slider slider-model="notify.volume"></div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_radio">\r\n <i class="md_modal_section_icon md_modal_section_icon_keyboard"></i>\r\n\r\n <div class="tg_radios_wrap">\r\n <a class="md_modal_section_radio_wrap tg_radio" ng-click="toggleCtrlEnter(1)" ng-class="send.enter == 1 ? \'tg_radio_on\' : \'\'">\r\n <span class="icon icon-radio-outer"><i class="icon-radio"></i></span>\r\n <span my-i18n="settings_modal_enter_send_description_md"></span>\r\n </a>\r\n\r\n <a class="md_modal_section_radio_wrap tg_radio" ng-click="toggleCtrlEnter(0)" ng-class="send.enter == 0 ? \'tg_radio_on\' : \'\'">\r\n <span class="icon icon-radio-outer"><i class="icon-radio"></i></span>\r\n <span my-i18n="settings_modal_ctrl_enter_send_description_md"></span>\r\n </a>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link">\r\n <i class="md_modal_section_icon md_modal_section_icon_more"></i>\r\n\r\n <div class="md_modal_section_select_wrap" ng-controller="AppLangSelectController">\r\n <div class="dropdown md_modal_section_select" dropdown>\r\n <button class="btn btn-link dropdown-toggle" dropdown-toggle ng-bind="langNames[curLocale]"></button>\r\n <ul class="dropdown-menu dropdown-menu-to-up">\r\n <li ng-repeat="locale in ::supportedLocales">\r\n <a ng-click="localeSelect(locale)" ng-bind="langNames[locale]"></a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class="md_modal_section_param_name" my-i18n="settings_modal_language"></div>\r\n </div>\r\n\r\n <div class="md_modal_section_link_wrap">\r\n <a ng-if="password._ == \'account.noPassword\' && password.email_unconfirmed_pattern.length" class="md_modal_section_link pull-right" ng-click="changePassword({action: \'cancel_email\'})" my-i18n="settings_modal_password_email_pending_cancel">\r\n </a>\r\n <span class="md_modal_section_text" ng-if="password._ == \'account.noPassword\' && password.email_unconfirmed_pattern.length" class="md_modal_section_link" my-i18n="settings_modal_password_email_pending">\r\n <my-i18n-param name="email">\r\n <span ng-bind="password.email_unconfirmed_pattern"></span>\r\n </my-i18n-param>\r\n </span>\r\n <a ng-if="password._ == \'account.noPassword\' && !password.email_unconfirmed_pattern" class="md_modal_section_link" ng-click="changePassword({action: \'create\'})" my-i18n="settings_modal_set_password"></a>\r\n\r\n <a ng-if="password._ == \'account.password\'" class="md_modal_section_link pull-right" ng-click="changePassword({action: \'disable\'})" my-i18n="settings_modal_disable_password"></a>\r\n <a ng-if="password._ == \'account.password\'" class="md_modal_section_link" ng-click="changePassword({action: \'change\'})" my-i18n="settings_modal_change_password"></a>\r\n </div>\r\n\r\n <div class="md_modal_section_link_wrap">\r\n <a class="md_modal_section_link" ng-click="showSessions()" my-i18n="settings_modal_active_sessions"></a>\r\n </div>\r\n\r\n <div class="md_modal_section_link_wrap">\r\n <a class="md_modal_section_link" ng-click="logOut()" my-i18n="head_log_out"></a>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/desktop/short_message.html",'<span class="im_short_message_media" ng-if="message.media" ng-switch="message.media._">\r\n <span ng-switch-when="messageMediaPhoto" my-i18n="conversation_media_photo"></span>\r\n <span ng-switch-when="messageMediaDocument" ng-switch="message.media.document.type || false">\r\n <span ng-switch-when="sticker">\r\n <span ng-bind-html="message.media.document.stickerEmoji"></span>\r\n <my-i18n msgid="conversation_media_sticker"></my-i18n>\r\n </span>\r\n <span ng-switch-when="gif" my-i18n="conversation_media_gif"></span>\r\n <span ng-switch-when="round" my-i18n="conversation_media_round"></span>\r\n <span ng-switch-when="audio" my-i18n="conversation_media_audio"></span>\r\n <span ng-switch-when="voice" my-i18n="conversation_media_audio"></span>\r\n <span ng-switch-when="video" my-i18n="conversation_media_video"></span>\r\n <span ng-switch-default ng-bind="message.media.document.file_name"></span>\r\n </span>\r\n <span ng-switch-when="messageMediaGeo" my-i18n="conversation_media_location"></span>\r\n <span ng-switch-when="messageMediaVenue" my-i18n="conversation_media_location"></span>\r\n <span ng-switch-when="messageMediaContact" my-i18n="conversation_media_contact"></span>\r\n <span ng-switch-when="messageMediaGame">\r\n <span my-emoji-image="🎮"></span>\r\n <span ng-bind-html="message.media.game.rTitle"></span>\r\n </span>\r\n <span ng-switch-when="messageMediaUnsupported" my-i18n="conversation_media_unsupported"></span>\r\n</span><span class="im_short_message_service" ng-if="message._ == \'messageService\'" ng-switch="message.action._">\r\n <span ng-switch-when="messageActionChatCreate" my-i18n="conversation_group_created"></span>\r\n <span ng-switch-when="messageActionChatEditTitle" my-i18n="conversation_group_renamed"></span>\r\n <span ng-switch-when="messageActionChatEditPhoto" my-i18n="conversation_group_photo_updated"></span>\r\n <span ng-switch-when="messageActionChatDeletePhoto" my-i18n="conversation_group_photo_removed"></span>\r\n <span ng-switch-when="messageActionChatJoinedByLink" my-i18n="conversation_joined_by_link"></span>\r\n <span ng-switch-when="messageActionChatReturn" my-i18n="conversation_returned_to_group"></span>\r\n <span ng-switch-when="messageActionChatJoined" my-i18n="conversation_joined_group"></span>\r\n <span ng-switch-when="messageActionChatAddUser" my-i18n="conversation_invited_user">\r\n <my-i18n-param name="user"><span my-peer-link="message.action.user_id"></span></my-i18n-param>\r\n </span>\r\n <span ng-switch-when="messageActionChatAddUsers" my-i18n="">\r\n <ng-pluralize count="message.action.users.length"\r\n when="conversation_invited_users">\r\n </ng-pluralize>\r\n </span>\r\n <span ng-switch-when="messageActionChatLeave" my-i18n="conversation_left_group"></span>\r\n <span ng-switch-when="messageActionChatDeleteUser" my-i18n="conversation_kicked_user">\r\n <my-i18n-param name="user"><span my-peer-link="message.action.user_id"></span></my-i18n-param>\r\n </span>\r\n <span ng-switch-when="messageActionChatMigrateTo" my-i18n="conversation_converted_to_supergroup"></span>\r\n <span ng-switch-when="messageActionChannelMigrateFrom" my-i18n="conversation_converted_to_supergroup"></span>\r\n <span ng-switch-when="messageActionChannelCreate" my-i18n="conversation_created_channel"></span>\r\n <span ng-switch-when="messageActionChannelEditTitle" my-i18n="conversation_changed_channel_name"></span>\r\n <span ng-switch-when="messageActionChannelEditPhoto" my-i18n="conversation_changed_channel_photo"></span>\r\n <span ng-switch-when="messageActionPinMessage" my-i18n="conversation_pinned_message"></span>\r\n <span ng-switch-when="messageActionGameScore">\r\n <ng-pluralize count="message.action.score"\r\n when="conversation_scored_X"></ng-pluralize>\r\n </my-i18n-param>\r\n </span>\r\n <span ng-switch-when="messageActionPhoneCall" ng-switch="message.action.type">\r\n <span ng-switch-when="out_missed" my-i18n="message_service_phonecall_canceled"></span>\r\n <span ng-switch-when="in_missed" my-i18n="message_service_phonecall_missed"></span>\r\n <span ng-switch-when="out_ok" my-i18n="message_service_phonecall_outgoing"></span>\r\n <span ng-switch-when="in_ok" my-i18n="message_service_phonecall_incoming"></span>\r\n </span>\r\n <span ng-switch-when="messageActionPaymentSent" my-i18n="message_service_payment_sent"></span>\r\n\r\n</span><span class="im_short_message_text" ng-if="message.message.length && (!message.media || message.media._ == \'messageMediaWebPage\')" ng-bind-html="message.richMessage"></span>'),e.put("partials/desktop/slider.html",'<div class="tg_slider_wrap">\r\n\t<div class="tg_slider_thumb"></div>\r\n\t<div class="tg_slider_track">\r\n\t\t<div class="tg_slider_track_fill"></div>\r\n\t</div>\r\n</div>'),e.put("partials/desktop/stickerset_modal.html",'<div class="stickerset_modal_wrap md_modal_wrap" my-modal-position>\r\n\r\n <div class="md_modal_head md_modal_head_simple">\r\n <div class="md_modal_title_wrap">\r\n <div class="md_modal_actions_wrap clearfix">\r\n <a class="md_modal_action md_modal_action_close" ng-click="$dismiss()" my-i18n="modal_close"></a>\r\n </div>\r\n </div>\r\n <div class="md_modal_title" ng-switch="!stickersetLoaded">\r\n <span ng-switch-when="true" my-i18n="stickerset_modal_title_loading"></span>\r\n <span ng-switch-default ng-bind="stickerset.title"></span>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_body">\r\n\r\n <div my-stickers-list class="stickerset_modal_col">\r\n\r\n <div class="stickerset_wrap nano" my-infinite-scroller>\r\n <div class="stickerset_scrollable_wrap nano-content" ng-switch="!stickersetLoaded">\r\n\r\n <div ng-switch-when="true" class="stickerset_modal_loading" my-vertical-position="0.2" padding="true" my-i18n="stickerset_modal_loading">\r\n <my-i18n-param name="dots">\r\n <span my-loading-dots></span>\r\n </my-i18n-param>\r\n </div>\r\n\r\n <div ng-switch-default class="stickerset_modal_stickers_list clearfix">\r\n <a class="stickerset_modal_sticker_wrap" ng-repeat="sticker in documents | limitTo: slice.limit" ng-click="chooseSticker(sticker.id)">\r\n <div class="stickerset_modal_sticker" my-load-sticker document="sticker" dim="stickerDimensions[sticker.id]"></div>\r\n <div class="stickerset_modal_sticker_alt" ng-bind-html="stickerEmojis[sticker.id]"></div>\r\n </a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="stickerset_actions_wrap">\r\n <div class="stickerset_actions" ng-switch="stickersetInstalled">\r\n <button ng-if="stickersetLoaded" class="btn btn-md btn-md-primary pull-left" my-i18n="stickerset_modal_share" ng-click="share()"></button>\r\n <button ng-switch-when="true" class="btn btn-md btn-md-danger" my-i18n="stickerset_modal_uninstall" ng-click="toggleInstalled(false)"></button>\r\n <button ng-switch-when="false" class="btn btn-md btn-md-primary" my-i18n="stickerset_modal_install" ng-click="toggleInstalled(true)"></button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/desktop/username_edit_modal.html",'<div class="md_simple_modal_wrap" my-modal-position>\r\n\r\n <div class="md_simple_modal_body">\r\n\r\n <form class="modal_simple_form" ng-submit="updateUsername()">\r\n\r\n <h4 my-i18n="username_edit_modal_title"></h4>\r\n\r\n <div class="md-input-group" ng-class="{\'md-input-error\': checked.error}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="username_edit_placeholder"></label>\r\n <input class="md-input" my-focused type="text" ng-model="profile.username" name="username" ng-model-options="{updateOn: \'default blur\', debounce: {default: 600, blur: 0}}" />\r\n </div>\r\n\r\n <div class="md_simple_form_description" my-i18n="username_edit_description_md"></div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n <div class="md_simple_modal_footer">\r\n\r\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\r\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: profile.updating}" ng-click="updateUsername()" ng-bind="profile.updating ? \'username_edit_submit_active\' : \'username_edit_submit\' | i18n" ng-disabled="profile.updating"></button>\r\n\r\n </div>\r\n\r\n</div>'),e.put("partials/desktop/user_modal.html",'<div class="user_modal_wrap md_modal_wrap" my-modal-position>\r\n\r\n <div class="md_modal_head">\r\n <div class="md_modal_title_wrap">\r\n <div class="md_modal_actions_wrap clearfix">\r\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\r\n <a class="md_modal_action" ng-if="user.pFlags.contact" ng-click="importContact(true)" my-i18n="modal_edit"></a>\r\n </div>\r\n <div class="md_modal_title" my-i18n="user_modal_contact_info"></div>\r\n </div>\r\n\r\n <div class="peer_modal_profile_wrap clearfix">\r\n <div class="peer_modal_photo_wrap pull-left">\r\n <a ng-click="openPhoto(user.photo.photo_id, {p: user.id})" class="peer_modal_photo" ng-class="{disabled: !user.photo.photo_id}" ng-disabled="!user.photo.photo_id" my-peer-photolink="::user.id" img-class="peer_modal_photo" no-open="true"></a>\r\n </div>\r\n <div class="peer_modal_profile">\r\n <div class="peer_modal_profile_name" my-peer-link="user.id" verified="true"></div>\r\n <div class="peer_modal_profile_description" my-user-status="::user.id"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_split_actions_wrap">\r\n <div class="md_modal_split_actions">\r\n <a class="md_modal_split_action" href="" ng-click="goToHistory()" title="{{\'user_modal_send_message\' | i18n}}">\r\n <i class="md_modal_split_action_msg"></i>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class="md_modal_body">\r\n\r\n <div class="md_modal_sections clearfix">\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_number" ng-if="user.phone || user.username || rAbout">\r\n <i class="md_modal_section_icon md_modal_section_icon_phone"></i>\r\n\r\n <div class="md_modal_section_param_wrap" ng-if="user.phone">\r\n <div class="md_modal_section_param_value" ng-bind="user.phone | phoneNumber"></div>\r\n <div class="md_modal_section_param_name" my-i18n="user_modal_phone"></div>\r\n </div>\r\n\r\n <div class="md_modal_section_param_wrap" ng-if="user.username">\r\n <div class="md_modal_section_param_value">\r\n <span ng-bind="\'@\' + user.username"></span>\r\n </div>\r\n <div class="md_modal_section_param_name" my-i18n="user_modal_username"></div>\r\n </div>\r\n\r\n <div class="md_modal_section_param_wrap" ng-if="rAbout">\r\n <div class="md_modal_section_param_value">\r\n <span ng-bind-html="rAbout"></span>\r\n </div>\r\n <div class="md_modal_section_param_name" my-i18n="user_modal_about"></div>\r\n </div>\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_toggle">\r\n <i class="md_modal_section_icon md_modal_section_icon_notification"></i>\r\n\r\n <a class="md_modal_section_toggle_wrap tg_checkbox" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="user_modal_notifications"></span>\r\n </a>\r\n\r\n </div>\r\n\r\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_link" ng-init="f.showMoreActions = !user.phone.length">\r\n <i class="md_modal_section_icon md_modal_section_icon_more"></i>\r\n\r\n <div class="md_modal_section_link_wrap" ng-if="user.pFlags.bot &amp;&amp; !user.pFlags.bot_nochats">\r\n <a class="md_modal_section_link" ng-click="inviteToGroup()" my-i18n="user_modal_add_to_group"></a>\r\n </div>\r\n\r\n <div class="md_modal_section_link_wrap" ng-if="bot_info.commands.settings != null">\r\n <a class="md_modal_section_link" ng-click="sendCommand(\'settings\')" my-i18n="user_modal_bot_settings"></a>\r\n </div>\r\n\r\n <div class="md_modal_section_link_wrap" ng-if="bot_info.commands.help != null">\r\n <a class="md_modal_section_link" ng-click="sendCommand(\'help\')" my-i18n="user_modal_bot_help"></a>\r\n </div>\r\n\r\n <div class="md_modal_section_link_wrap" ng-if="user.phone.length > 0 &amp;&amp; !user.pFlags.contact &amp;&amp; !user.pFlags.self">\r\n <a class="md_modal_section_link" ng-click="importContact()" my-i18n="user_modal_add_contact"></a>\r\n </div>\r\n\r\n <div class="md_modal_section_link_wrap" ng-if="user.phone.length > 0">\r\n <a class="md_modal_section_link" ng-click="shareContact()" my-i18n="user_modal_share_contact"></a>\r\n </div>\r\n\r\n <div class="md_modal_section_link_wrap" ng-if="f.showMoreActions &amp;&amp; user.pFlags.contact">\r\n <a class="md_modal_section_link" ng-click="deleteContact()" my-i18n="user_modal_delete_contact"></a>\r\n </div>\r\n\r\n\r\n <div class="md_modal_section_link_wrap" ng-if="f.showMoreActions &amp;&amp; !user.pFlags.self">\r\n <a class="md_modal_section_link" ng-click="toggleBlock(!blocked)" ng-switch="blocked">\r\n <my-i18n ng-switch-when="true" msgid="user_modal_unblock_user"></my-i18n>\r\n <my-i18n ng-switch-default msgid="user_modal_block_user"></my-i18n>\r\n </a>\r\n </div>\r\n\r\n <div class="md_modal_section_link_wrap" ng-if="f.showMoreActions">\r\n <a class="md_modal_section_link" ng-click="flushHistory(true)" my-i18n="user_modal_clear_history"></a>\r\n </div>\r\n\r\n <div class="md_modal_section_link_wrap" ng-if="f.showMoreActions">\r\n <a class="md_modal_section_link" ng-click="flushHistory()" my-i18n="user_modal_delete_chat"></a>\r\n </div>\r\n\r\n <div class="md_modal_section_link_wrap" ng-if="!f.showMoreActions">\r\n <a class="md_modal_section_link" ng-click="f.showMoreActions = true" my-i18n="modal_more"></a>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n'),e.put("partials/desktop/video_modal.html",'<div class="modal_close_wrap" ng-class="{modal_close_wrap_wnext: nav.hasNext}" ng-click="$close()">\r\n <div class="modal_close"></div>\r\n</div>\r\n\r\n<div class="media_modal_bottom_panel_wrap">\r\n <div class="media_modal_bottom_panel">\r\n <div class="media_modal_bottom_actions pull-right">\r\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\r\n <i class="media_modal_action_btn_download"></i>\r\n </a>\r\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\r\n <i class="media_modal_action_btn_forward"></i>\r\n </a>\r\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\r\n <i class="media_modal_action_btn_delete"></i>\r\n </a>\r\n </div>\r\n\r\n <div class="media_modal_info_wrap pull-left" ng-if="video.user_id > 0" ng-switch="messageID > 0">\r\n <a class="media_modal_author_photo pull-left" my-peer-photolink="video.user_id" img-class="media_modal_author_photo" watch="true"></a>\r\n <div class="media_modal_author_name">\r\n <a class="media_modal_author" my-peer-link="video.user_id" peer-watch="true"></a>\r\n </div>\r\n <div class="media_modal_date" ng-if="video.date > 0">\r\n <a ng-switch-when="true" class="media_modal_date" ng-click="goToMessage()" ng-bind="video.date | dateOrTime :true"></a>\r\n <span ng-switch-default ng-bind="video.date | dateOrTime :true"></span>\r\n </div>\r\n </div>\r\n\r\n <div class="media_modal_title_wrap" my-i18n="media_modal_video"></div>\r\n </div>\r\n</div>\r\n\r\n<div class="modal-dialog">\r\n <div class="modal-content">\r\n <div my-modal-width="{{video.full.width - 32}}" class="media_modal_wrap video_modal_wrap" my-modal-position animation="no">\r\n\r\n <div class="modal-body">\r\n <div class="video_modal_image_wrap" my-load-video video="video"></div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>'),e.put("partials/mobile/audio_player.html",'<div class="audio_player_wrap clearfix">\r\n\t<a class="im_message_file_button" ng-click="togglePlay()" ng-class="{im_message_file_button_dl_audio: audio.downloaded}">\r\n\t <i class="im_message_file_button_icon" ng-class="{audio_player_btn_icon_pause: mediaPlayer.player.playing}"></i>\r\n\t</a>\r\n\t<div class="audio_player_title_wrap">\r\n\t\t<div class="audio_player_meta pull-right" ng-if="audio.downloaded &amp;&amp; (mediaPlayer.player.duration || audio.duration)" ng-switch="mediaPlayer.player.playing || mediaPlayer.player.currentTime > 0">\r\n\t\t\t<span ng-switch-when="true" class="audio_player_duration" ng-bind="mediaPlayer.player.currentTime | durationRemains : (mediaPlayer.player.duration || audio.duration)"></span>\r\n\t\t\t<span ng-switch-default class="audio_player_duration" ng-bind="mediaPlayer.player.duration || audio.duration | duration"></span>\r\n\t\t</div>\r\n\t\t<a ng-click="download()" class="audio_player_title" ng-switch="::audio.audioTitle.length > 0 ? 2 : (audio.file_name.length > 0 ? 1 : 0)">\r\n\t\t\t<span ng-switch-when="2">\r\n\t\t\t\t<strong ng-bind="::audio.audioPerformer"></strong>\r\n\t\t\t\t<span ng-bind="::(audio.audioPerformer ? \'– \' : \'\') + audio.audioTitle"></span>\r\n\t\t\t</span>\r\n\t\t\t<span ng-switch-when="1" ng-bind="::audio.file_name"></span>\r\n\t\t\t<span ng-switch-default my-i18n="message_attach_audio_message"></span>\r\n\t\t</a>\r\n\t\t<i ng-if="::message.pFlags.media_unread || false" ng-show="message.pFlags.media_unread" class="icon icon-audio-unread"></i>\r\n\t\t<div class="audio_player_meta" ng-if="!audio.downloaded || !(mediaPlayer.player.duration || audio.duration)" ng-switch="audio.progress.enabled">\r\n\t\t\t<span ng-switch-when="true" class="audio_player_size" ng-bind="audio.progress | formatSizeProgress"></span>\r\n\t\t\t<span ng-switch-default class="audio_player_size" ng-bind="audio.size | formatSize"></span>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class="audio_player_actions" ng-if="!audio.progress.enabled &amp;&amp; !audio.downloaded">\r\n <a ng-if="audio._ == \'document\'" ng-click="download()" my-i18n="message_attach_document_download"></a>\r\n <a ng-click="togglePlay()" my-i18n="message_attach_audio_play"></a>\r\n\t</div>\r\n\t<div class="audio_player_progress_wrap" ng-if="audio.progress.enabled || audio.downloaded" ng-switch="audio.progress.enabled">\r\n\t\t<div ng-switch-when="true" class="clearfix im_message_cancelable_progress_wrap">\r\n\t\t <a class="im_message_media_progress_cancel pull-right" ng-click="audio.progress.cancel()" my-i18n="modal_cancel"></a>\r\n\t\t <div class="im_message_download_progress_wrap">\r\n\t\t <div class="progress tg_down_progress">\r\n\t\t <div class="progress-bar progress-bar-success" ng-style="{width: audio.progress.percent + \'%\'}"></div>\r\n\t\t </div>\r\n\t\t </div>\r\n\t\t</div>\r\n\t <div ng-switch-default class="im_message_playback_progress_wrap">\r\n\t \t<div class="audio_player_seek_slider" my-slider slider-model="mediaPlayer.player.currentTime" slider-max="mediaPlayer.player.duration || audio.duration" slider-onchange="seek(value)"></div>\r\n\t </div>\r\n\t</div>\r\n\t<audio ng-if="audio.url" media-player="mediaPlayer.player">\r\n\t <source ng-src="{{::audio.url}}" type="{{audio.mime_type || \'audio/ogg\'}}" volume="{{::volume}}" />\r\n\t</audio>\r\n</div>'),e.put("partials/mobile/changelog_modal.html",'<div class="changelog_modal_wrap">\r\n\r\n <a class="modal-close-button" ng-click="$close()"><i></i></a>\r\n\r\n <div class="modal-body">\r\n\r\n <div class="changelog_card_wrap" ng-switch="lastVersion === false">\r\n <div ng-switch-when="true">\r\n <div class="changelog_card"></div>\r\n <h2 class="changelog_header" my-i18n="changelog_modal_header_recent_updates_md"></h2>\r\n </div>\r\n <div ng-switch-default>\r\n <div class="changelog_card"></div>\r\n <h2 class="changelog_header" my-i18n="changelog_modal_header_new_updates_md"></h2>\r\n </div>\r\n </div>\r\n\r\n <div class="changelog_versions_wrap">\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.5.6\r\n <span class="pull-right" my-i18n="changelog_modal_title_current_version"></span>\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Edit the text of your messages after sending them. This works across all Telegram chats, including groups and one-on-one conversations. Select a message and click \'Edit\' or just press the up arrow button to edit your last message.</li>\r\n <li>Unsend Messages: retract any messages within 48 hours of sending them. Check out the <a href="https://telegram.org/blog/unsend-and-usage" target="_blank">Telegram Blog</a> for more info.</li>\r\n <li>Pinned chats. Check out the <a href="https://telegram.org/blog/pin-and-ifttt" target="_blank">Telegram Blog</a> for more info.</li>\r\n <li>Sticker suggestions by emoji.</li>\r\n <li>Search for messages in specific chats.</li>\r\n <li>Background notifications in Chrome and Firefox (can be disabled in Settings)</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.5.5\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Introducing Drafts: Seamless syncing for unsent messages on all your devices. Drafts are now visible in your chats list.</li>\r\n <li>Mention people in groups by typing @ and selecting them from the list — even if they don\'t have a username.</li>\r\n <li>Share links to specific posts in channels via quick forwarding menu (click on the date in a message to try this out).</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.5.4\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Introducing Bot API 2.0, the biggest update to our bot platform since June 2015.</li>\r\n <li>New inline keyboards with callback, \'open URL\' or \'switch to inline mode\' buttons help create seamless interfaces.</li>\r\n <li>Bots can now update existing messages on the fly as you interact with them.</li>\r\n <li>Prepare for the rise of location-based bots: all bots can now ask users to share their location.</li>\r\n <li>Inline bots can now send all attachments supported in Telegram (videos, music, stickers, files, etc.).</li>\r\n <li>Try out these sample bots to see what\'s coming your way soon: @music, @sticker, @youtube, @foursquare</li>\r\n <li>Check out the <a href="https://telegram.org/blog/bots-2-0" target="_blank">Telegram Blog</a> for more info.</li>\r\n <li>New quick forwarding in channels (click on the date in a message to try this out).</li>\r\n <li>Improved performance.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.5.3\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Inline bots: A new way to add bot content to any chat. Type a bot\'s username and your query in the text field to get instant results and send them to your chat partner. Try typing <code>@gif dog</code> in your next chat. Sample bots: @gif, @wiki, @bing, @vid, @bold.</li>\r\n <li>Check out the <a href="https://telegram.org/blog/inline-bots" target="_blank">Telegram Blog</a> for more info.</li>\r\n <li>Improved GIFs: 20x faster sending and downloading, nice animated progress</li>\r\n <li>Click on message date to reply (or to forward from channels).</li>\r\n <li>Preview images before sending when pasting from clipboard.</li>\r\n <li>Improved formatting for copy-pasted history fragments (date, time and sender names inserted automatically).</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.5.2\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Unread counters for muted chats now colored in gray.</li>\r\n <li>Improved previews for sticker sets: Click on a sticker to view the whole set, click on stickers in a set to send right away, added a \'Share\' button.</li>\r\n <li>Improved performance.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.5.1\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Groups that have reached their capacity of 200 users can be upgraded to supergroups of up to 1,000 members.</li>\r\n <li>[Mobile] Supported web page previews.</li>\r\n <li>[FirefoxOS] Added sender userpic to notifications.</li>\r\n <li>[FirefoxOS] Supported share url from Browser.</li>\r\n <li>Check out the <a href="https://telegram.org/blog/supergroups" target="_blank">Telegram Blog</a> for more info</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.5.0\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Removed annoying "multiple tabs open" error.</li>\r\n <li>Improved message forwarding.</li>\r\n <li>Added view counter to messages from channels.</li>\r\n <li>Improved image loading in Safari and Firefox.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.4.9\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>New emoji and sticker menu, tabs for sticker packs.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.4.8\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Introducing Channels – a great new way to broadcast your messages to unlimited audiences.</li>\r\n <li>Check out the <a href="https://telegram.org/blog/channels" target="_blank">Telegram Blog</a> for more info</li>\r\n <li>Improved performance in Safari on OS X El Capitan.</li>\r\n <li>Added formatting for fixed-width code, surround text with `single backticks` for inline text and ```triple backticks``` for blocks of pre-formatted text.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.4.7\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>New bot API, free for everyone. If you\'re an engineer, create your own bots for games, services or integrations.\r\n </li>\r\n <li>Check out <a href="https://telegram.org/blog/bot-revolution" target="_blank">Telegram Blog</a> for more info</li>\r\n <li>Improved Stickers support: now stickers are loading much faster.</li>\r\n <li>Click on any custom stickers in chats to view and add sticker sets.</li>\r\n <li>[Mobile] Reply to a message easily: tap on any message and select "Reply".</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.4.6\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Install and share custom sticker sets like this one: <a href="tg://addstickers?set=Animals">telegram.me/addstickers/Animals</a></li>\r\n <li>If you\'re an artist, create custom sticker sets using our <a href="tg://resolve?domain=stickers">@Stickers</a> bot.</li>\r\n <li>Check out <a href="https://telegram.org/blog/stickers-revolution" target="_blank">Telegram Blog</a> for more info</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.4.5\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>\r\n Invite links for group chats:<br/>\r\n Check out <a href="https://telegram.org/blog/invite-links" target="_blank">Telegram Blog</a> for more info\r\n </li>\r\n <li>Smart notifications</li>\r\n <li>\'Listened\' status for voice messages</li>\r\n <li>Places in locations (venues, landmarks)</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.4.4\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Link Previews:<br/>\r\n Get rich link summaries for tweets, YouTube videos, Instagram photos and other content.</li>\r\n\r\n <li>Check out <a href="https://telegram.org/blog/link-preview" target="_blank">Telegram Blog</a> for more info.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.4.3\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Sessions List:<br/>\r\n View your active Telegram sessions (on desktop, tablet and mobile devices) and close specific sessions remotely.</li>\r\n\r\n <li>Two-step verification:<br/>\r\n Set up an additional password that will be required to log into your Telegram account.</li>\r\n\r\n <li>Check out <a href="https://telegram.org/blog/sessions-and-2-step-verification" target="_blank">Telegram Blog</a> for more info.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.4.2\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Optimization for screens with smaller Y-resolutions.</li>\r\n <li>Supported Spotify URL embeds.</li>\r\n <li>Mentions of the current user in group chats are now highlighted.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.4.1\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Reply to specific messages in groups.</li>\r\n <li>Mention @usernames in groups to notify multiple users.</li>\r\n <li>Revised notifications in groups: mentioned users and people you reply to will be notified (private chat notification settings apply in this case instead of group settings). Check out <a href="https://telegram.org/blog/replies-mentions-hashtags" target="_blank">Telegram Blog</a> for more info.</li>\r\n <li>Setting to disable message preview</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.4.0\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Full stickers support</li>\r\n <li>Multisearch box: instantly find chats, usernames and messages</li>\r\n <li>Emoji autocomplete: e.g., type <strong>:kiss</strong> in the message field to see the list. <a href="http://www.emoji-cheat-sheet.com/" target="_blank">Full cheat sheet &raquo;</a></li>\r\n <li>Added \'typing\' notification in chats list</li>\r\n <li>Online members counter in group headers</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.3.9\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>[Desktop] Material design completed</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.3.8\r\n <span class="pull-right" my-i18n="changelog_modal_title_current_version"></span>\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Telegram.me links open right in Telegram Web when authorized</li>\r\n <li>@username mentions in messages are clickable and open a conversation with the user</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.3.7\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>[Desktop] [Beta] New material design for modal windows</li>\r\n <li>[Desktop] Forward messages to multiple recipients</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.3.6\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>New viewer for photos, videos, documents.</li>\r\n <li>[FirefoxOS] Improved media downloads.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.3.5\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Added embedded Soundcloud tracks and playlists.</li>\r\n <li>Added global user search to contacts list.</li>\r\n <li>Added switch to mobile version on window resize.</li>\r\n <li>Migrate to HTTPS notification</li>\r\n <li>Bugfixes.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.3.4\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Added embedded Facebook posts and Vimeo videos.</li>\r\n <li>Improved IE10+ support: downloading files and style fixes.</li>\r\n <li>Added unsupported media playback warning.</li>\r\n <li>Bugfixes.</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.3.3\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Added Native Client module: dramatically improved encryption speed; Download and upload speed is now as high as in native applications.</li>\r\n <li>HTTPS. We recommend you to use <a href="https://web.telegram.org" target="_blank">https://web.telegram.org</a>.</li>\r\n <li>Added multiple open tabs warning. Please note, that only one tab with Telegram Web will work.</li>\r\n <li>Added embedded Instagram, Twitter, Vine, YouTube links.</li>\r\n <li>Jump to selected spot when playing back audio.</li>\r\n <li>Bugfixes</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.3.2\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Usernames support: <a href="" ng-click="changeUsername()">Choose a username right now!</a></li>\r\n <li>Search can now find public users by username.</li>\r\n <li>Most popular emoticons shown in \'recent\' when empty</li>\r\n <li>Bugfixes</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.3.1\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>New languages: Spanish, German and Italian are now available </li>\r\n <li>New custom-made audio player</li>\r\n <li>Bad browser page for IE 6-9</li>\r\n <li>Perfomance improvements and bugfixes</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.3.0\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Log in codes may be received in other Telegram apps</li>\r\n <li>Partner\'s online status updates automatically</li>\r\n <li>Added support for non-english hashtags in messages</li>\r\n <li>Fixed invalid scrollbar width bug</li>\r\n <li>[Desktop] Added automatic country code detection</li>\r\n <li>[FirefoxOS] Improved PUSH-notifications for &lt;= 1.1</li>\r\n <li>[FirefoxOS] Fixed emoji in notifications</li>\r\n <li>[FirefoxOS] Fixed attachment bug for &lt;= 1.1</li>\r\n <li>[FirefoxOS] Added phonebook permissions handling</li>\r\n <li>[FirefoxOS] Added ability to share Gallery photos in Telegram</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.2.9\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Updated mobile layout</li>\r\n <li>Bugfixes</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.2.5\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Updated mobile layout</li>\r\n <li>Improved performance</li>\r\n <li>Improved messages grouping</li>\r\n <li>[FirefoxOS] Fixed notifications for &lt;= 1.1</li>\r\n <li>[FirefoxOS] Fixed phonebook import</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.2.1\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Improved key generation performance on slow devices</li>\r\n <li>Added network sleep for mobile devices</li>\r\n <li>[FirefoxOS] Added support of PUSH notifications</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.2\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Updated contacts list, added edit mode</li>\r\n <li>First Firefox OS release. See <a href="https://marketplace.firefox.com/app/telegram" target="_blank">Firefox Marketplace</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.9\')">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.1.9\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Improvements of performance</li>\r\n <li>Bugfixes</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.8\')">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.1.8\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Improved mobile layout</li>\r\n <li>Bugfixes</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.7\')">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.1.7\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Improved mobile layout</li>\r\n <li>Added file cache for Firefox and Android</li>\r\n <li>New design for forwarded messages</li>\r\n <li>Hash-tags support</li>\r\n <li>Messaging bugfixes</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.6\')">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.1.6\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Added search of messages</li>\r\n <li>Improved performance of chats with lots of unread messages</li>\r\n <li>Bugfixes</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.5\')">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.1.5\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Added registration</li>\r\n <li>Improved experience for newly registered users</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.4\')">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.1.4\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Browse userpic history (click on the photo in user info)</li>\r\n <li>New <a href="https://github.com/zhukov/webogram" target="_blank" title="Source code on GitHub">GitHub</a>, <a href="https://twitter.com/telegram_web" target="_blank" title="Follow us on Twitter!">Twitter</a> buttons in Settings</li>\r\n <li>Updated keyboard shortcuts:</li>\r\n <ul>\r\n <li><strong>Alt+Home</strong> - switch to first (most recent) conversation</li>\r\n <li>Removed <strong>Alt+1, 2, 3..</strong> shortcuts due to conflicts in different browsers</li>\r\n </ul>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <div class="modal_section changelog_version_wrap" ng-show="canShowVersion(\'0.1.3\')">\r\n <h3 class="modal_section_header changelog_version_title">\r\n Version 0.1.3\r\n </h3>\r\n <div class="modal_section_body changelog_version_changes">\r\n <ul class="list-unstyled changelog_version_changes_list">\r\n <li>Added version history to welcome screen</li>\r\n <li>Added keyboard shortcuts:</li>\r\n <ul>\r\n <li><strong>Tab</strong> - set focus to message field</li>\r\n <li><strong>Esc</strong> or <strong>Shift+Tab</strong> - set focus to search field</li>\r\n <li><strong>Up/Down</strong> (while in search field) - move between conversations</li>\r\n <li><strong>Enter</strong> (while in search field) - open selected or first conversation</li>\r\n <li><strong>Alt+Up/Down</strong> - move to previous/next conversation</li>\r\n </ul>\r\n <li>Improved grouping for messages</li>\r\n <li>Fixed video modal positioning bug</li>\r\n <li>Fixed focusing issues on mobile</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n'),
e.put("partials/mobile/chat_create_modal.html",'<div class="contacts_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li class="navbar-quick-right">\r\n <a ng-class="{disabled: group.creating}" ng-click="createGroup()" ng-bind="group.creating ? \'group_create_submit_active\' : \'group_create_submit\' | i18n" ng-disabled="group.creating"></a>\r\n </li>\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="group_create_modal_title"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body">\r\n\r\n <form class="modal_simple_form" ng-submit="createGroup()" my-vertical-position="0.25">\r\n\r\n <div class="form-group">\r\n <input class="form-control input-lg" my-focused type="text" placeholder="{{\'group_create_name\' | i18n}}" ng-model="group.name"/>\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n</div>'),e.put("partials/mobile/chat_edit_modal.html",'<div class="contacts_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li class="navbar-quick-right">\r\n <a ng-class="{disabled: group.updating}" ng-click="updateGroup()" ng-bind="group.updating ? \'group_edit_submit_active\' : \'group_edit_submit\' | i18n" ng-disabled="group.updating"></a>\r\n </li>\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="group_edit_modal_title"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body">\r\n\r\n <form class="modal_simple_form" ng-submit="updateGroup()" my-vertical-position="0.25">\r\n\r\n <div class="form-group">\r\n <input class="form-control input-lg" my-focused type="text" placeholder="{{\'group_edit_name\' | i18n}}" ng-model="group.name"/>\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n</div>'),e.put("partials/mobile/chat_modal.html",'<div class="chat_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-toggle-wrap dropdown" dropdown>\r\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n </a>\r\n <ul class="dropdown-menu">\r\n <li ng-if="chatFull.thumb.location" ng-if="hasRights(\'edit_title\')">\r\n <a ng-click="deletePhoto()" my-i18n="group_modal_menu_delete_photo"></a>\r\n </li>\r\n <li ng-if="hasRights(\'edit_title\')">\r\n <a ng-click="editTitle()" my-i18n="group_modal_menu_edit_group"></a>\r\n </li>\r\n <li>\r\n <a ng-click="flushHistory(true)" my-i18n="group_modal_menu_clear_history"></a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li>\r\n <a ng-click="$close()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="group_modal_info"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body mobile_modal_body">\r\n\r\n <div class="mobile_user_modal_photo_profile_wrap">\r\n\r\n <a ng-click="openPhoto(chatFull.chat_photo.id, {p: -chatFull.chat.id})" class="mobile_user_modal_image_wrap pull-left" my-peer-photolink="::-chatFull.chat.id" img-class="mobile_user_modal_image mobile_chat_modal_image" no-open="true" watch="true" ng-class="{disabled: !chatFull.chat.photo.photo_small}" ng-disabled="!chatFull.chat.photo.photo_small"></a>\r\n\r\n <div class="mobile_user_modal_info_wrap clearfix">\r\n <h4 class="mobile_user_modal_header" my-peer-link="-chatFull.chat.id"></h4>\r\n <p class="mobile_user_modal_status" ng-if="chatFull.chat.participants_count > 0">\r\n <ng-pluralize count="chatFull.chat.participants_count"\r\n when="group_modal_pluralize_participants">\r\n </ng-pluralize>\r\n </p>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap" ng-if="hasRights(\'invite\') &amp;&amp; chatFull.participants.participants.length">\r\n <a class="mobile_modal_action" ng-click="inviteToGroup()" my-i18n="group_modal_add_member"></a>\r\n </div>\r\n <div class="mobile_modal_action_wrap" ng-if="chatFull.chat._ != \'chatForbidden\' && !chatFull.chat.pFlags.left && chatFull.chat.pFlags.creator">\r\n <a class="mobile_modal_action" ng-click="inviteViaLink()" my-i18n="group_modal_menu_share_link"></a>\r\n </div>\r\n <div class="mobile_modal_action_wrap" ng-if="chatFull.chat._ == \'chatForbidden\'">\r\n <a class="mobile_modal_action" ng-click="flushHistory()" my-i18n="group_modal_delete_group"></a>\r\n </div>\r\n <div class="mobile_modal_action_wrap" ng-if="hasRights(\'edit_photo\') &amp;&amp; !photo.updating">\r\n <span class="mobile_modal_action mobile_modal_upload_action">\r\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" />\r\n <my-i18n="group_modal_update_photo"></my-i18n>\r\n </span>\r\n </div>\r\n <div class="mobile_modal_action_wrap" ng-if="photo.updating">\r\n <span class="mobile_modal_action" my-i18n>\r\n <my-i18n="group_modal_update_active"></my-i18n>\r\n <span my-loading-dots></span>\r\n </span>\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap">\r\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="group_modal_notifications"></span>\r\n </a>\r\n </div>\r\n\r\n <div class="mobile_modal_section">\r\n <h4 class="mobile_modal_section_header" my-i18n="group_modal_members"></h4>\r\n <div class="mobile_modal_section_body">\r\n\r\n <div class="chat_modal_members_list">\r\n\r\n <div class="chat_modal_participant_wrap clearfix" ng-repeat="participant in chatFull.participants.participants | orderBy:\'-user.sortStatus\'">\r\n <a ng-if="participant.canKick" ng-click="kickFromGroup(participant.user_id)" class="chat_modal_participant_kick pull-right" my-i18n="group_modal_members_kick"></a>\r\n <a ng-if="participant.canLeave" ng-click="leaveGroup()" class="chat_modal_participant_kick pull-right" my-i18n="group_modal_menu_delete_group"></a>\r\n\r\n <a class="chat_modal_participant_photo pull-left" my-peer-photolink="participant.user_id" img-class="chat_modal_participant_photo" status="true"></a>\r\n\r\n <div class="chat_modal_participant_name">\r\n <a my-peer-link="participant.user_id"></a>\r\n </div>\r\n <div class="chat_modal_participant_status" my-user-status="::participant.user_id" bot-chat-privacy="true"></div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/mobile/contacts_modal.html",'<div class="contacts_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header" ng-switch="action">\r\n\r\n <ul ng-switch-when="edit" class="nav navbar-nav navbar-quick-nav">\r\n <li class="navbar-quick-left">\r\n <a ng-click="toggleEdit(false)" my-i18n="contacts_modal_edit_cancel"></a>\r\n </li>\r\n <li class="navbar-quick-right">\r\n <a ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="deleteSelected()">\r\n <my-i18n msgid="contacts_modal_edit_delete"></my-i18n>\r\n <strong ng-bind="selectedCount"></strong>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div ng-switch-default class="navbar-toggle-wrap dropdown" ng-show="!action" dropdown>\r\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n </a>\r\n <ul class="dropdown-menu">\r\n <li>\r\n <a ng-click="toggleEdit(true)" my-i18n="contacts_modal_edit_list"></a>\r\n </li>\r\n <li>\r\n <a ng-click="importContact()" my-i18n="contacts_modal_new_contact"></a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <ul ng-switch-default class="nav navbar-nav navbar-quick-nav">\r\n <li ng-if="action == \'select\' || action == \'new_group\'" class="navbar-quick-right">\r\n <a ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" ng-click="submitSelected()" my-i18n="modal_next"></a>\r\n </li>\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 ng-switch="action">\r\n <div ng-switch-when="new_group" ng-switch="selectedCount > 0">\r\n <span ng-switch-when="true">\r\n <ng-pluralize count="selectedCount" when="contacts_modal_pluralize_new_group_members">\r\n </ng-pluralize>\r\n </span>\r\n <span ng-switch-default my-i18n="group_create_contacts_modal_title"></span>\r\n </div>\r\n <span ng-switch-default my-i18n="contacts_modal_title"></span>\r\n </h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body mobile_modal_body">\r\n\r\n <div class="contacts_modal_search">\r\n <input class="form-control contacts_modal_search_field no_outline" my-focused type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query"/>\r\n <a class="im_dialogs_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\r\n <i class="icon icon-search-clear"></i>\r\n </a>\r\n </div>\r\n\r\n\r\n <div class="contacts_modal_col contacts_wrap contacts_scrollable_wrap mobile_scrollable_wrap" my-contacts-list-mobile my-infinite-scroller-mobile>\r\n <ul class="contacts_modal_members_list nav nav-pills nav-stacked">\r\n\r\n <li class="contacts_modal_contact_wrap clearfix" ng-repeat="contact in contacts | orderBy:\'user.sortName\' | limitTo: slice.limit track by contact.userID" ng-class="{active: selectedContacts[contact.userID], disabled: disabledContacts[contact.userID]}">\r\n <a class="contacts_modal_contact" ng-click="contactSelect(contact.userID)">\r\n\r\n <i ng-if="multiSelect" class="icon icon-contact-tick"></i>\r\n\r\n <div class="contacts_modal_contact_photo pull-left" my-peer-photolink="contact.userID" status="true" img-class="contacts_modal_contact_photo"></div>\r\n <div class="contacts_modal_contact_name" my-peer-link="contact.userID"></div>\r\n <div class="contacts_modal_contact_status" ng-switch="contact.found">\r\n <span ng-switch-when="true" ng-bind="\'@\' + contact.user.username"></span>\r\n <span ng-switch-default my-user-status="::contact.userID"></span>\r\n </div>\r\n </a>\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/mobile/country_select_modal.html",'<div class="countries_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 class="modal_simple_header" my-i18n="country_select_modal_title"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body mobile_modal_body">\r\n\r\n <div class="countries_modal_search">\r\n <input class="form-control countries_modal_search_field no_outline" my-focused type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query"/>\r\n <a class="countries_modal_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\r\n <i class="icon icon-search-clear"></i>\r\n </a>\r\n </div>\r\n\r\n <div class="countries_modal_col countries_wrap countries_scrollable_wrap mobile_scrollable_wrap" my-countries-list-mobile my-infinite-scroller-mobile>\r\n <ul class="countries_modal_members_list nav nav-pills nav-stacked">\r\n\r\n <li class="countries_modal_country_wrap clearfix" ng-repeat="country in countries | limitTo : slice.limit track by $index">\r\n <a class="countries_modal_country" ng-click="$close(country)">\r\n <span class="countries_modal_country_code pull-right" ng-bind="country.code"></span>\r\n <span class="countries_modal_country_name" ng-bind="country.name"></span>\r\n </a>\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/mobile/dialog.html",'<a class="im_dialog" ng-mousedown="dialogSelect(dialogMessage.peerString, dialogMessage.unreadCount == -1 && dialogMessage.mid)">\r\n\r\n <div class="im_dialog_meta pull-right text-right">\r\n <div class="im_dialog_date" ng-bind="dialogMessage.dateText"></div>\r\n <span\r\n class="im_dialog_badge badge ng-hide"\r\n ng-show="dialogMessage.unreadCount > 0 && !dialogMessage.pFlags.out"\r\n ng-bind="dialogMessage.unreadCount"\r\n my-peer-muted="dialogMessage.peerID" muted-class="im_dialog_badge_muted"\r\n ></span>\r\n <i\r\n class="im_dialog_unread ng-hide"\r\n ng-show="dialogMessage.pFlags.out && dialogMessage.pFlags.unread"\r\n ></i>\r\n <i\r\n class="im_dialog_pinned ng-hide"\r\n ng-show="dialogMessage.pinned && !dialogMessage.unreadCount && !dialogMessage.pFlags.unread"\r\n ></i>\r\n </div>\r\n\r\n <div class="im_dialog_photo pull-left" my-peer-photolink="::dialogMessage.peerID" img-class="im_dialog_photo" watch="true"></div>\r\n\r\n <div class="im_dialog_message_wrap" ng-class="{im_dialog_message_wtyping: dialogMessage.typing > 0}">\r\n\r\n <div class="im_dialog_peer">\r\n <span my-peer-link="dialogMessage.peerID" verified="true"></span>\r\n </div>\r\n\r\n <div ng-switch="dialogMessage.typing ? \'typing\' : (!dialogMessage.unreadCount && dialogMessage.draft ? \'draft\' : (dialogMessage.deleted ? \'deleted\' : \'message\'))">\r\n\r\n <div ng-switch-when="typing" class="im_dialog_message im_dialog_message_typing">\r\n <span class="im_short_message_service" my-i18n="im_conversation_group_typing">\r\n <my-i18n-param name="name"><span my-peer-link="dialogMessage.typing" short="true" class="im_dialog_chat_from_wrap"></span></my-i18n-param><my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\r\n </span>\r\n </div>\r\n\r\n <div ng-switch-when="draft" class="im_dialog_message">\r\n <span class="im_dialog_chat_from_wrap">\r\n <span class="im_dialog_draft_from" my-i18n="conversation_draft"></span>\r\n </span>\r\n <span class="im_short_message_text" ng-bind-html="dialogMessage.draft.richMessage"></span>\r\n </div>\r\n\r\n <div ng-switch-when="deleted" class="im_dialog_message">\r\n <span class="im_short_message_text">&nbsp;</span>\r\n </div>\r\n\r\n <div ng-switch-when="message" class="im_dialog_message">\r\n <span ng-switch="dialogMessage.peerID > 0 || dialogMessage.fromID < 0">\r\n <span ng-switch-when="true">\r\n <span class="im_dialog_chat_from_wrap" ng-if="dialogMessage.pFlags.out && dialogMessage.fromID > 0">\r\n <span\r\n class="im_dialog_chat_from"\r\n my-i18n="conversation_you"\r\n ></span><span ng-if="dialogMessage.message.length > 0 || !!dialogMessage.media">:</span>\r\n </span>\r\n </span>\r\n <span ng-switch-default>\r\n <span class="im_dialog_chat_from_wrap" ng-switch="dialogMessage.pFlags.out && dialogMessage._ != \'messageService\'">\r\n <span\r\n ng-switch-when="false"\r\n class="im_dialog_chat_from"\r\n my-peer-link="dialogMessage.from_id" short="true" peer-watch="true"\r\n ></span><span\r\n ng-switch-when="true"\r\n class="im_dialog_chat_from"\r\n my-i18n="conversation_you"\r\n ></span><span ng-if="dialogMessage.message.length || dialogMessage.media">:</span>\r\n </span>\r\n </span>\r\n </span>\r\n\r\n <span my-short-message="dialogMessage"></span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n</a>\r\n'),e.put("partials/mobile/edit_contact_modal.html",'<div class="import_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li class="navbar-quick-right">\r\n <a ng-class="{disabled: progress.enabled}" ng-click="doImport()" ng-bind="progress.enabled ? \'contact_edit_modal_submit_active\' : \'contact_edit_modal_submit\'| i18n" ng-disabled="progress.enabled"></a>\r\n </li>\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="contact_edit_modal_title"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body">\r\n\r\n <form class="modal_simple_form" ng-submit="doImport()" my-vertical-position="0.3">\r\n\r\n <div class="form-group">\r\n <span class="form-control uneditable_input input-lg disabled" disabled my-focused type="text" ng-bind="importContact.phone | phoneNumber"></span>\r\n </div>\r\n <div class="form-group">\r\n <input class="form-control input-lg" type="text" placeholder="{{\'contact_edit_modal_first_name\' | i18n}}" ng-model="importContact.first_name" my-submit-on-enter/>\r\n </div>\r\n <div class="form-group">\r\n <input class="form-control input-lg" type="text" placeholder="{{\'contact_edit_modal_last_name\' | i18n}}" ng-model="importContact.last_name" my-submit-on-enter/>\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n</div>'),e.put("partials/mobile/full_gif.html",'<a class="img_gif_with_progress_wrap" ng-click="toggle($event)">\r\n\r\n <div class="img_gif_image_wrap">\r\n\r\n <div class="img_gif_meta" ng-show="!isActive" ng-switch="document.progress.enabled">\r\n <div ng-switch-when="true" class="img_gif_meta_contents">\r\n <i class="icon icon-cancel">\r\n <i class="icon icon-bar"></i>\r\n <i class="icon icon-bar"></i>\r\n </i>\r\n <div my-arc-progress="document.progress.percent"></div>\r\n </div>\r\n <div ng-switch-default class="img_gif_label noselect img_gif_meta_contents">GIF</div>\r\n </div>\r\n\r\n <div ng-if="document.url" ng-show="document.downloaded &amp;&amp; isActive" ng-switch="document.mime_type == \'video/mp4\'">\r\n <video ng-switch-when="true" width="{{document.thumb.width}}" height="{{document.thumb.height}}" controls loop class="img_gif_video">\r\n <source ng-src="{{document.url}}" type="video/mp4">\r\n </video>\r\n <img ng-switch-default class="img_gif_image" ng-src="{{document.url}}" width="{{document.thumb.width}}" height="{{document.thumb.height}}" />\r\n </div>\r\n <img ng-hide="document.downloaded &amp;&amp; isActive" class="img_gif_thumb" my-load-thumb thumb="document.thumb" />\r\n\r\n </div>\r\n\r\n</a>'),e.put("partials/mobile/full_photo.html",'<div class="img_fullsize_with_progress_wrap">\r\n <div class="img_fullsize_progress_overlay" ng-show="progress.enabled">\r\n <div class="img_fullsize_progress_wrap">\r\n <div class="img_fullsize_progress progress tg_progress" ng-show="progress.percent > 0">\r\n <div class="progress-bar progress-bar-success" ng-style="{width: progress.percent + \'%\'}">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="photo_full_wrap">\r\n <a class="photo_modal_image">\r\n <img class="photo_modal_image"/>\r\n </a>\r\n </div>\r\n <div class="photo_modal_error_wrap" ng-if="error">\r\n <div class="photo_modal_error" ng-if="error.html" ng-bind-html="error.html"></div>\r\n <div class="photo_modal_error" ng-if="error.text" ng-bind="error.text"></div>\r\n </div>\r\n</div>'),e.put("partials/mobile/full_video.html",'<div class="img_fullsize_with_progress_wrap" ng-style="{width: video.full.width + \'px\', height: video.full.height + \'px\'}">\r\n <div class="img_fullsize_progress_overlay" ng-show="video.progress.enabled">\r\n <div class="img_fullsize_progress_wrap" ng-style="{width: video.full.width + \'px\', height: video.full.height + \'px\'}">\r\n <div class="img_fullsize_progress progress tg_progress">\r\n <div class="progress-bar progress-bar-success" style="width: {{video.progress.percent}}%"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class="img_fullsize_wrap" ng-if="!video.url">\r\n <img\r\n class="img_fullsize"\r\n my-load-thumb\r\n thumb="video.fullThumb"\r\n />\r\n </div>\r\n <div class="video_full_player" ng-if="video.url" ng-switch="player.quicktime">\r\n <embed ng-switch-when="true" ng-src="{{video.url}}" width="{{video.full.width}}" height="{{video.full.height}}" autoplay="true" CONTROLLER="TRUE" SHOWCONTROLS="TRUE" controller="true" loop="false" pluginspace="http://www.apple.com/quicktime/" />\r\n <video ng-switch-default width="{{video.full.width}}" height="{{video.full.height}}" controls autoplay >\r\n <source ng-src="{{video.url}}" type="video/mp4">\r\n </video>\r\n </div>\r\n <div class="video_full_error_wrap" ng-if="error">\r\n <div class="video_full_error" ng-if="error.html" ng-bind-html="error.html"></div>\r\n <div class="video_full_error" ng-if="error.text" ng-bind="error.text"></div>\r\n </div>\r\n</div>'),e.put("partials/mobile/game_modal.html",'<div class="game_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-toggle-wrap dropdown" dropdown>\r\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n </a>\r\n <ul class="dropdown-menu">\r\n <li>\r\n <a ng-click="forward()" my-i18n="game_modal_share_game"></a>\r\n </li>\r\n <li>\r\n <a ng-click="forward(true)" my-i18n="game_modal_share_score"></a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li>\r\n <a ng-click="$close()" class="navbar-quick-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 ng-bind-html="game.rTitle"></h4>\r\n <small>@<span my-peer-link="botID"></span></small>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body mobile_modal_body" ng-bind-html="game.full.html" my-game-communication></div>\r\n\r\n</div>\r\n'),e.put("partials/mobile/head.html",'<div class="tg_page_head">\r\n <div class="navbar navbar-static-top navbar-inverse" role="navigation" ng-class="{navbar_peer_not_selected: !curDialog.peer, navbar_offline: offline, navbar_history_select: historyState.selectActions}">\r\n <div class="container">\r\n\r\n\r\n <a class="navbar-peer-wrap" my-peer-photolink="historyPeer.id" peer-watch="true"></a>\r\n\r\n <div class="navbar-toggle-wrap dropdown" dropdown ng-switch="!curDialog.peer">\r\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n </a>\r\n <ul ng-switch-when="true" class="dropdown-menu">\r\n <li><a ng-click="openGroup()" my-i18n="head_new_group"></a></li>\r\n <li><a ng-click="importContact()" my-i18n="head_new_contact"></a></li>\r\n <li ng-if="!isEmpty.contacts"><a ng-click="openContacts()" my-i18n="head_contacts"></a></li>\r\n <li><a ng-click="openSettings()" my-i18n="head_settings"></a></li>\r\n <li><a ng-click="logOut()" my-i18n="head_log_out"></a></li>\r\n </ul>\r\n <ul ng-switch-default class="dropdown-menu">\r\n <li><a ng-click="toggleEdit()" my-i18n="head_select_messages"></a></li>\r\n <li ng-if="!historyFilter.mediaType" class="divider"></li>\r\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'photos\')" my-i18n="head_media_photos"></a></li>\r\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'video\')" my-i18n="head_media_video"></a></li>\r\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'documents\')" my-i18n="head_media_documents"></a></li>\r\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'audio\')" my-i18n="head_media_audio"></a></li>\r\n </ul>\r\n </div>\r\n\r\n <a class="navbar-search-wrap" ng-click="toggleSearch()">\r\n <i class="icon-search"></i>\r\n </a>\r\n\r\n <div class="navbar-header">\r\n\r\n <a class="navbar-brand tg_logo_wrap" href="#/im"><i class="icon icon-tg-logo"></i><i class="icon icon-tg-title"></i></a>\r\n\r\n <span class="tg_head_logo"></span></a>\r\n\r\n <div class="tg_head_peer_menu_wrap" ng-switch="curDialog.peer &amp;&amp; historyFilter.mediaType.length > 0">\r\n <ul ng-switch-when="true" class="nav navbar-nav navbar-quick-nav">\r\n <li>\r\n <a ng-click="toggleMedia()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title" ng-switch="historyFilter.mediaType">\r\n <h4 ng-switch-when="photos" my-i18n="head_media_photos"></h4>\r\n <h4 ng-switch-when="video" my-i18n="head_media_video"></h4>\r\n <h4 ng-switch-when="documents" my-i18n="head_media_documents"></h4>\r\n <h4 ng-switch-when="audio" my-i18n="head_media_audio"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n <div ng-switch-default ng-switch="historyState.selectActions">\r\n <ul ng-switch-when="selected" class="nav navbar-navbar navbar-quick-nav navbar-history-edit">\r\n <li class="navbar-quick-right">\r\n <a ng-click="toggleEdit()" my-i18n="modal_cancel"></a>\r\n </li>\r\n <li class="navbar-quick-left">\r\n <a ng-click="selectedFlush()" my-i18n="head_clear_all"></a>\r\n </li>\r\n <li class="navbar-quick-title" my-i18n="head_select"></li>\r\n </ul>\r\n <ul ng-switch-default class="nav navbar-nav navbar-quick-nav" ng-switch="historyPeer.id > 0">\r\n <li ng-switch-when="true">\r\n <a href="#/im" class="navbar-quick-profile-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-peer-link="historyPeer.id" peer-watch="true"></h4>\r\n <small ng-switch="historyState.typing.length">\r\n <span ng-switch-when="1" class="status_online">\r\n <my-i18n msgid="head_typing"></my-i18n><span my-loading-dots></span>\r\n </span>\r\n <span ng-switch-default my-user-status="historyPeer.id"></span>\r\n </small>\r\n </div>\r\n </a>\r\n </li>\r\n <li ng-switch-default>\r\n <a href="#/im" class="navbar-quick-group-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-peer-link="historyPeer.id" peer-watch="true"></h4>\r\n <small ng-switch="historyState.typing.length">\r\n <span ng-switch-when="0" class="tg_head_peer_status" my-chat-status="-historyPeer.id"></span>\r\n <my-i18n>\r\n <span ng-switch-when="1" class="status_online" my-i18n-format="head_one_typing"></span>\r\n <span ng-switch-when="2" class="status_online" my-i18n-format="head_two_typing"></span>\r\n <span ng-switch-default class="status_online" my-i18n-format="head_many_typing"></span>\r\n <my-i18n-param name="name1"><span my-peer-link="historyState.typing[0]" short="true"></span></my-i18n-param>\r\n <my-i18n-param name="name2"><span my-peer-link="historyState.typing[1]" short="true"></span></my-i18n-param>\r\n <my-i18n-param name="names" ng-bind="historyState.typing.length - 1"></my-i18n-param>\r\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\r\n </my-i18n>\r\n </small>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="navbar-menu" ng-if="offline">\r\n\r\n <ul class="nav navbar-nav navbar-offline">\r\n <li ng-show="!offlineConnecting"><span class="navbar-offline-text"><my-i18n msgid="head_waiting_for_network"></my-i18n><span my-loading-dots></span></span></li>\r\n <li ng-show="!offlineConnecting" class="hidden-xs"><a href="" ng-click="retryOnline()" my-i18n="head_retry"></a></li>\r\n <li ng-show="offlineConnecting"><span class="navbar-offline-text"><my-i18n msgid="head_connecting"></my-i18n><span my-loading-dots></span></span></li>\r\n </ul>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n'),
e.put("partials/mobile/im.html",'<div my-head></div>\r\n\r\n<div class="im_page_wrap" ng-class="{im_page_peer_not_selected: !curDialog.peer}">\r\n\r\n <div class="im_page_split clearfix">\r\n\r\n <div ng-controller="AppImDialogsController" my-dialogs class="im_dialogs_col_wrap" ng-class="search.query.length > 0 ? \'im_dialogs_col_search\' : \'\'">\r\n <div class="im_dialogs_panel">\r\n <div class="im_dialogs_search">\r\n <input class="form-control im_dialogs_search_field no_outline" type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\r\n <a class="im_dialogs_search_clear tg_search_clear" ng-click="searchClear()" ng-show="search.query.length">\r\n <i class="icon icon-search-clear"></i>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <div my-dialogs-list-mobile class="im_dialogs_col im_dialogs_scrollable_wrap mobile_scrollable_wrap">\r\n\r\n <div class="im_dialogs_empty_wrap" ng-if="isEmpty.contacts" my-vertical-position="0.4">\r\n <h3 class="im_dialogs_empty_header" my-i18n="im_no_contacts"></h3>\r\n <p class="im_dialogs_empty_lead" my-i18n="im_get_started_long"></p>\r\n <button type="button" class="btn btn-primary btn-block im_dialogs_add_contact" ng-click="importContact()" my-i18n="im_add_contact"></button>\r\n <button ng-if="phonebookAvailable" type="button" class="btn btn-primary btn-block im_dialogs_import_phonebook" ng-click="importPhonebook()" my-i18n="im_import_phonebook"></button>\r\n </div>\r\n\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.peerID" ng-class="{active: curDialog.peerID == dialogMessage.peerID}"></li>\r\n </ul>\r\n\r\n <div class="im_dialogs_contacts_wrap" ng-show="contacts.length > 0">\r\n <h5 my-i18n="im_contacts_title"></h5>\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" ng-repeat="contact in contacts | orderBy:\'user.sortName\' track by contact.userID" ng-class="{active: curDialog.peerID == contact.userID}">\r\n <a class="im_dialog" ng-mousedown="dialogSelect(contact.peerString)">\r\n <div class="im_dialog_photo pull-left" my-peer-photolink="contact.userID" img-class="im_dialog_photo" watch="true"></div>\r\n <div class="im_dialog_message_wrap">\r\n <div class="im_dialog_peer">\r\n <span class="im_dialog_user" my-peer-link="contact.userID" verified="true"></span>\r\n </div>\r\n <div class="im_dialog_message">\r\n <span class="im_dialog_message_text" my-user-status="::contact.userID"></span>\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class="im_dialogs_contacts_wrap" ng-show="foundPeers.length > 0">\r\n <h5 my-i18n="im_found_title"></h5>\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" ng-repeat="foundPeer in foundPeers track by foundPeer.id" ng-class="{active: curDialog.peerID == foundPeer.id}">\r\n <a class="im_dialog" ng-mousedown="dialogSelect(foundPeer.peerString)">\r\n <div class="im_dialog_photo pull-left" my-peer-photolink="foundPeer.id" img-class="im_dialog_photo" watch="true"></div>\r\n <div class="im_dialog_message_wrap">\r\n <div class="im_dialog_peer">\r\n <span class="im_dialog_user" my-peer-link="foundPeer.id" verified="true"></span>\r\n </div>\r\n <div class="im_dialog_message">\r\n <span class="im_dialog_message_text" ng-bind="::\'@\' + foundPeer.username"></span>\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class="im_dialogs_messages_wrap" ng-show="foundMessages.length > 0">\r\n <h5 my-i18n="im_messages"></h5>\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in foundMessages track by dialogMessage.mid" ng-class="{active: curDialog.peerID == dialogMessage.peerID &amp;&amp; curDialog.messageID == dialogMessage.mid}"></li>\r\n </ul>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class="im_history_col_wrap" ng-controller="AppImHistoryController" ng-class="{im_history_loaded: state.loaded}">\r\n\r\n <div class="im_history_not_selected_wrap im_history_not_selected" my-vertical-position="0.35" padding="true">\r\n <my-i18n msgid="im_loading_history"></my-i18n><span my-loading-dots></span>\r\n </div>\r\n\r\n <div class="im_history_selected_wrap">\r\n <div my-history-mobile class="im_history_col">\r\n\r\n <div class="im_history_wrap im_history_scrollable_wrap mobile_scrollable_wrap">\r\n\r\n <div class="im_history_scrollable">\r\n <div class="im_history" ng-class="{im_history_selectable: !historyState.botActions, im_history_select_active: historyState.selectActions}">\r\n <div ng-if="state.empty" class="im_history_empty" ng-switch="state.mayBeHasMore" my-vertical-position="0.25" padding="true">\r\n <span ng-switch-when="true">\r\n <my-i18n msgid="im_loading_history"></my-i18n><span my-loading-dots></span>\r\n </span>\r\n <span ng-switch-default my-i18n="im_no_messages"></span>\r\n </div>\r\n\r\n <div class="im_history_messages" ng-class="{im_history_messages_group: historyPeer.id < 0}">\r\n <div class="im_history_messages_peer" ng-show="peerHistory.peerID == historyPeer.id" ng-repeat="peerHistory in peerHistories">\r\n <div class="im_history_message_wrap" my-message ng-repeat="historyMessage in peerHistory.messages"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="im_bottom_panel_wrap">\r\n\r\n <div class="im_edit_panel_wrap clearfix" ng-show="historyState.actions()" ng-switch="historyState.actions()">\r\n <div class="im_edit_panel_border"></div>\r\n\r\n <div ng-switch-when="bot">\r\n <a ng-show="historyState.botActions == \'param\'" class="btn btn-md btn-md-primary im_edit_cancel_link" ng-click="cancelBot()" my-i18n="modal_cancel"></a>\r\n <div class="im_edit_start_actions">\r\n <a class="btn btn-primary im_start_btn" ng-click="startBot()" my-i18n="im_start"></a>\r\n </div>\r\n </div>\r\n <div ng-switch-when="channel">\r\n <div class="im_edit_start_actions" ng-switch="historyState.channelActions">\r\n <a ng-switch-when="join" class="btn btn-primary im_start_btn" ng-click="joinChannel()" my-i18n="im_channel_join"></a>\r\n <a ng-switch-when="mute" class="btn btn-link im_start_btn" ng-click="togglePeerMuted(true)" my-i18n="im_channel_mute"></a>\r\n <a ng-switch-when="unmute" class="btn btn-link im_start_btn" ng-click="togglePeerMuted(false)" my-i18n="im_channel_unmute"></a>\r\n </div>\r\n </div>\r\n <div ng-switch-when="selected" class="im_edit_selected_actions" my-i18n>\r\n <a class="btn btn-primary im_edit_forward_btn" ng-click="selectedForward()" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" my-i18n-format="im_forward"></a><a class="btn btn-primary im_edit_delete_btn" ng-click="selectedDelete()" ng-class="{disabled: !selectedCount}" ng-disabled="!selectedCount" my-i18n-format="im_delete" ng-show="historyState.canDelete"></a>\r\n <my-i18n-param name="count"><strong class="im_selected_count" ng-show="selectedCount > 0" ng-bind="selectedCount"></strong></my-i18n-param>\r\n </div>\r\n </div>\r\n\r\n <div class="im_send_panel_wrap" ng-show="!historyState.actions()">\r\n\r\n <div class="im_send_form_wrap1">\r\n\r\n <div class="im_send_form_wrap clearfix" ng-controller="AppImSendController">\r\n <form my-send-form draft-message="draftMessage" mentions="mentions" commands="commands" class="im_send_form" ng-class="{im_send_form_empty: !draftMessage.text.length && draftMessage.type != \'edit\', composer_progress_enabled: draftMessage.inlineProgress}">\r\n\r\n <div class="im_send_reply_wrap" ng-if="draftMessage.replyToMsgID > 0">\r\n <a class="im_send_reply_cancel" ng-mousedown="draftMessage.replyClear()"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\r\n <a class="im_message_reply_wrap" my-reply-message="draftMessage.replyToMsgID" watch="true" edit="{{draftMessage.type == \'edit\'}}"></a>\r\n </div>\r\n\r\n <div class="im_send_reply_wrap im_send_fwds_wrap" ng-if="draftMessage.fwdMessages.length > 0">\r\n <a class="im_send_reply_cancel" ng-mousedown="draftMessage.fwdsClear()"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\r\n <div class="im_message_reply_wrap" my-forwarded-messages="draftMessage.fwdMessages"></div>\r\n </div>\r\n\r\n <div class="im_send_field_panel">\r\n <div class="im_send_field_wrap" ng-class="historyState.replyKeyboard._ == \'replyKeyboardMarkup\' ? \'im_send_field_wrap_2ndbtn\' : \'\'">\r\n <a class="composer_command_btn" ng-show="!historyState.replyKeyboard && commands.list.length > 0 && (!draftMessage.text.length || draftMessage.text[0] == \'/\')" ng-mousedown="toggleSlash($event)" ng-class="draftMessage.text[0] == \'/\' ? \'active\' : \'\'"><i class="icon icon-slash"></i></a>\r\n <a class="composer_keyboard_btn" ng-show="historyState.replyKeyboard._ == \'replyKeyboardMarkup\'" ng-mousedown="replyKeyboardToggle($event)" ng-class="!historyState.replyKeyboard.pFlags.hidden ? \'active\' : \'\'"><i class="icon icon-keyboard"></i></a>\r\n\r\n <div class="composer_progress_icon_wrap">\r\n <div class="composer_progress_icon" my-arc-progress width="22" stroke="2.5"></div>\r\n </div>\r\n\r\n <div class="im_send_dropbox_wrap" my-i18n="im_photos_drop_text"></div>\r\n <textarea ng-model="draftMessage.text" class="form-control im_message_field no_outline" dir="auto" ng-trim="false"></textarea>\r\n </div>\r\n\r\n <div class="im_attach pull-right">\r\n <input type="file" class="im_attach_input" size="28" multiple="true" title="{{\'im_media_attach_title\' | i18n}}" />\r\n <i class="icon icon-paperclip"></i>\r\n </div>\r\n\r\n <a class="composer_emoji_insert_btn pull-right"><i class="icon icon-emoji"></i></a>\r\n\r\n <button type="submit" class="btn btn-success im_submit"></button>\r\n </div>\r\n\r\n\r\n <div class="im_send_keyboard_wrap" ng-if="historyState.replyKeyboard._ == \'replyKeyboardMarkup\'" ng-show="!historyState.replyKeyboard.pFlags.hidden">\r\n <div my-reply-markup="historyState.replyKeyboard"></div>\r\n </div>\r\n\r\n </form>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n<toaster-container toaster-options="{\'position-class\': \'toast-bottom-center\'}"></toaster-container>'),e.put("partials/mobile/import_contact_modal.html",'<div class="import_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li class="navbar-quick-right">\r\n <a ng-class="{disabled: progress.enabled}" ng-click="doImport()" ng-bind="progress.enabled ? \'contact_import_modal_submit_active\' : \'contact_import_modal_submit\' | i18n" ng-disabled="progress.enabled"></a>\r\n </li>\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="contact_import_modal_title"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body">\r\n\r\n <form class="modal_simple_form" ng-submit="doImport()" my-vertical-position="0.2">\r\n\r\n <div class="form-group">\r\n <input class="form-control input-lg" my-focused type="text" placeholder="{{\'contact_import_modal_phone\' | i18n}}" ng-model="importContact.phone" my-submit-on-enter/>\r\n </div>\r\n <div class="form-group">\r\n <input class="form-control input-lg" type="text" placeholder="{{\'contact_edit_modal_first_name\' | i18n}}" ng-model="importContact.first_name" my-submit-on-enter/>\r\n </div>\r\n <div class="form-group">\r\n <input class="form-control input-lg" type="text" placeholder="{{\'contact_edit_modal_last_name\' | i18n}}" ng-model="importContact.last_name" my-submit-on-enter/>\r\n </div>\r\n\r\n <div class="import_modal_phonebook_wrap" ng-if="phonebookAvailable">\r\n <a class="btn btn-link" ng-click="importPhonebook()" my-i18n="contact_import_modal_phonebook"></a>\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n</div>'),e.put("partials/mobile/login.html",'<div class="tg_page_head">\r\n <div class="navbar navbar-static-top navbar-inverse navbar_peer_not_selected">\r\n <div class="container">\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li class="navbar-quick-right login_head_submit_wrap">\r\n <a class="disabled" disabled="disabled" ng-if="progress.enabled" class="login_head_submit_progress">\r\n <my-i18n ng-if="!credentials.phone_code_hash" msgid="login_generating_key"></my-i18n><my-i18n ng-if="credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" msgid="login_checking_code"></my-i18n><my-i18n ng-if="credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" msgid="login_signing_up"></my-i18n><my-i18n ng-if="credentials.phone_code_valid &amp;&amp; credentials.password_needed" msgid="login_checking_password"></my-i18n><span my-loading-dots></span>\r\n </a>\r\n <a ng-if="!progress.enabled &amp;&amp; !credentials.phone_code_hash" ng-click="sendCode()">\r\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\r\n </a>\r\n <a ng-if="!progress.enabled &amp;&amp; credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" ng-click="logIn()">\r\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\r\n </a>\r\n <a ng-if="!progress.enabled &amp;&amp; credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" ng-click="logIn(true)">\r\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\r\n </a>\r\n <a ng-if="!progress.enabled &amp;&amp; credentials.phone_code_valid &amp;&amp; credentials.password_needed" ng-click="checkPassword()">\r\n <my-i18n msgid="modal_next"></my-i18n><i class="icon icon-next-submit"></i>\r\n </a>\r\n </li>\r\n <li>\r\n <a class="navbar-brand tg_logo_wrap" href="https://telegram.org" target="_blank"><i class="icon icon-tg-logo"></i><i class="icon icon-tg-title"></i></a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div class="login_page_wrap" my-custom-background="#e7ebf0">\r\n <div class="login_page">\r\n <div class="login_form_wrap" my-vertical-position="0.2" padding="true">\r\n <div class="error" ng-if="error.message" ng-bind="error.message"></div>\r\n\r\n <form name="mySendCodeForm" ng-if="!credentials.phone_code_hash" ng-submit="sendCode()">\r\n <h3 class="login_form_head" my-i18n="login_sign_in"></h3>\r\n <p class="login_form_lead" my-i18n="login_enter_number_description"></p>\r\n\r\n <div class="md-input-group md-input-has-value login_phone_country_input_group" ng-click="chooseCountry()">\r\n <label class="md-input-label" my-i18n="login_country_select_placeholder"></label>\r\n <div autocomplete="off" class="md-input" ng-bind="credentials.phone_country_name"></div>\r\n </div>\r\n\r\n <div class="login_phone_groups_wrap clearfix">\r\n\r\n <div class="md-input-group login_phone_code_input_group" ng-class="{\'md-input-error\': error.field == \'phone\'}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="login_code_input_placeholder"></label>\r\n <input autocomplete="off" class="md-input" my-focused name="phone_country" type="tel" ng-model="credentials.phone_country" />\r\n </div>\r\n\r\n <div class="md-input-group login_phone_num_input_group" ng-class="{\'md-input-error\': error.field == \'phone\'}" my-labeled-input ng-switch="error.field == \'phone\'">\r\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_number"></label>\r\n <label ng-switch-default class="md-input-label" my-i18n="login_tel_input_placeholder"></label>\r\n <input required autocomplete="off" class="md-input" my-focus-on="country_selected" name="phone_number" type="tel" ng-model="credentials.phone_number" />\r\n </div>\r\n\r\n </div>\r\n <div class="login_form_messaging" ng-show="progress.enabled" my-i18n="login_generating_keys_info"></div>\r\n </form>\r\n\r\n <form name="myLoginForm" ng-if="credentials.phone_code_hash &amp;&amp; !credentials.phone_code_valid" ng-submit="logIn()">\r\n <h3 class="login_phone_head"><span ng-bind="credentials.phone_country"></span> <span ng-bind="credentials.phone_number"></span></h3>\r\n <div class="login_edit_phone"><a ng-click="editPhone()" my-i18n="login_edit_number"></a></div>\r\n\r\n <div ng-switch="credentials.type._">\r\n <p ng-switch-when="auth.sentCodeTypeApp" class="login_smscode_lead" my-i18n="login_enter_code_label_md"></p>\r\n <p ng-switch-when="auth.sentCodeTypeCall" class="login_smscode_lead" my-i18n="login_enter_call_code_label_md"></p>\r\n <p ng-switch-default class="login_smscode_lead" my-i18n="login_enter_sms_code_label_md"></p>\r\n </div>\r\n\r\n <div ng-if="nextPending.type" ng-switch="nextPending.remaining > 0">\r\n <p ng-switch-when="true" class="login_smscode_lead">\r\n <span ng-switch="nextPending.type._" my-i18n>\r\n <span ng-switch-when="auth.codeTypeCall" my-i18n-format="login_call_remaining"></span>\r\n <span ng-switch-default my-i18n-format="login_code_remaining"></span>\r\n <my-i18n-param name="remaining" ng-bind="nextPending.remaining | duration"></my-i18n-param>\r\n </span>\r\n </p>\r\n <p ng-switch-default class="login_smscode_lead" ng-switch="nextPending.progress">\r\n <a ng-switch-when="true" ng-disabled class="disabled">\r\n <span my-i18n="login_code_requesting"></span><span my-loading-dots></span>\r\n </a>\r\n <a ng-switch-default ng-click="sendNext()" ng-switch="nextPending.type._">\r\n <span ng-switch-when="auth.codeTypeCall" my-i18n="login_code_not_received_call"></span>\r\n <span ng-switch-default my-i18n="login_code_not_received"></span>\r\n </a>\r\n </p>\r\n </div>\r\n\r\n <div class="md-input-group md-input-group-centered" ng-class="{\'md-input-error\': error.field == \'phone_code\'}" my-labeled-input ng-switch="error.field == \'phone_code\'">\r\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_sms_code"></label>\r\n <label ng-switch-default class="md-input-label" my-i18n="login_number_input_placeholder"></label>\r\n <input autocomplete="off" class="md-input" my-focused name="phone_code" type="tel" ng-model="credentials.phone_code" required />\r\n </div>\r\n </form>\r\n\r\n <form name="myFullNameForm" ng-if="credentials.phone_code_valid &amp;&amp; credentials.phone_unoccupied" ng-submit="logIn(true)">\r\n <h3 class="login_form_head" my-i18n="login_your_info"></h3>\r\n <p class="login_form_lead" my-i18n="login_fulll_name_label"></p>\r\n\r\n <div class="md-input-group" ng-class="{\'md-input-error\': error.field == \'first_name\'}" my-labeled-input ng-switch="error.field == \'first_name\'">\r\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_first_name"></label>\r\n <label ng-switch-default class="md-input-label" my-i18n="login_first_name"></label>\r\n <input autocomplete="off" class="md-input" my-focused name="first_name" type="text" ng-model="credentials.first_name" required />\r\n </div>\r\n\r\n <div class="md-input-group" ng-class="{\'md-input-error\': error.field == \'last_name\'}" my-labeled-input ng-switch="error.field == \'last_name\'">\r\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_last_name"></label>\r\n <label ng-switch-default class="md-input-label" my-i18n="login_last_name"></label>\r\n <input autocomplete="off" class="md-input" name="last_name" type="text" ng-model="credentials.last_name" />\r\n </div>\r\n\r\n </form>\r\n\r\n <form name="myPasswordForm" ng-if="credentials.phone_code_valid &amp;&amp; credentials.password_needed" ng-submit="checkPassword()">\r\n <h3 class="login_form_head" my-i18n="login_password_title"></h3>\r\n <p class="login_form_lead" my-i18n="login_password_label"></p>\r\n\r\n <div class="md-input-group" ng-class="{\'md-input-error\': error.field == \'password\'}" my-labeled-input ng-switch="error.field == \'password\'">\r\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_incorrect_password"></label>\r\n <label ng-switch-default class="md-input-label" my-i18n="login_password"></label>\r\n <input autocomplete="off" class="md-input" my-focused name="password" type="password" ng-model="credentials.password" my-submit-on-enter required />\r\n </div>\r\n\r\n <p ng-if="password.hint.length > 0" class="login_form_hint" ng-bind="password.hint"></p>\r\n\r\n <div class="login_forgot_button">\r\n <button class="btn btn-md" ng-click="forgotPassword($event)" my-i18n="login_password_forgot_link"></button>\r\n </div>\r\n\r\n <div ng-if="canReset" class="login_reset_button">\r\n <button class="btn btn-md btn-md-danger" ng-click="resetAccount($event)" my-i18n="login_account_reset"></button>\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n <div ng-switch="about.shown">\r\n <div ng-switch-when="true" class="login_footer_about_wrap" my-scroll-to-on="$init">\r\n <h3><span my-i18n="login_about_title"></span><a ng-click="about.shown = false" class="login_footer_about_hide" my-i18n="login_about_hide"></a></h3>\r\n <p my-i18n="login_about_desc1_md"></p>\r\n <p my-i18n="login_about_desc2_md"></p>\r\n <p my-i18n="login_about_desc3_md">\r\n <my-i18n-param name="source-link">\r\n <a href="https://github.com/zhukov/webogram" target="_blank">{0}</a>\r\n </my-i18n-param>\r\n </p>\r\n </div>\r\n <div ng-switch-default class="login_footer_wrap">\r\n <p my-i18n="login_about_intro"></p>\r\n <a class="logo_footer_learn_more_link" href="" ng-click="about.shown = true" my-i18n="login_about_learn"></a>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n'),e.put("partials/mobile/message.html",'<div class="im_message_outer_wrap" ng-click="toggleMessage(historyMessage.mid, $event)">\r\n\r\n\r\n <div class="im_message_wrap clearfix" ng-switch="::historyMessage._ == \'messageService\'">\r\n\r\n <div class="im_service_message_wrap" ng-switch-when="true" ng-switch="historyMessage.action._ == \'messageActionBotIntro\'">\r\n <div ng-switch-when="true" class="im_bot_intro_message_wrap">\r\n <div class="im_bot_intro_message_header" my-i18n="message_service_bot_intro_header"></div>\r\n <div class="im_bot_intro_message" ng-bind-html="::historyMessage.action.rDescription"></div>\r\n </div>\r\n <div ng-switch-default class="im_service_message">\r\n <a class="im_message_author" ng-if="::historyMessage.fromID > 0" my-peer-link="historyMessage.fromID" short="historyMessage.peerID > 0" color="historyMessage.peerID < 0" no-watch="true"></a>\r\n <span class="im_message_service" my-service-message="historyMessage"></span>\r\n </div>\r\n\r\n <a ng-if="::historyMessage.action._ == \'messageActionChatEditPhoto\' || historyMessage.action._ == \'messageActionChannelEditPhoto\'" class="im_service_message_photo_thumb" href="" ng-click="openPhoto(historyMessage.action.photo.id)">\r\n <img\r\n class="im_service_message_photo_thumb"\r\n my-load-thumb\r\n thumb="historyMessage.action.photo.thumb"\r\n />\r\n </a>\r\n\r\n </div>\r\n\r\n <div ng-switch-default class="im_content_message_wrap" ng-class="::[historyMessage.pFlags.out ? \'im_message_out\' : \'im_message_in\', historyMessage.fwdFromID ? \'im_message_fwd\' : \'\']">\r\n\r\n <a class="im_message_from_photo pull-left" my-peer-photolink="::historyMessage.fromID" img-class="im_message_from_photo"></a>\r\n\r\n <div class="im_message_meta">\r\n <div class="im_message_views_wrap" ng-if="::historyMessage.views > 0">\r\n <div class="im_message_views">\r\n <i class="icon-message-views"></i><span class="im_message_views_cnt" my-message-views="historyMessage.mid"></span>\r\n </div>\r\n </div>\r\n <a class="im_message_error_btn" ng-if="::historyMessage.pending || historyMessage.error || false" ng-click="historyMessage.send()">\r\n <i class="icon-message-status" tooltip="{{\'message_action_retry\' | i18n}}"></i>\r\n </a>\r\n <i ng-if="::historyMessage.pFlags.unread &amp;&amp; historyMessage.pFlags.out || historyMessage.pending || false" class="icon-message-status" ng-show="!historyMessage.error"></i>\r\n <span class="im_message_date">\r\n <span class="im_message_edited" my-message-edited="historyMessage.mid"></span>\r\n <span class="im_message_date_text" ng-bind="::historyMessage.date | time"></span>\r\n </span>\r\n </div>\r\n\r\n <div my-message-body="historyMessage">\r\n <div class="im_message_body" ng-class="::{im_message_body_media: historyMessage._ == \'message\' &amp;&amp; historyMessage.media && historyMessage.media._ != \'messageMediaWebPage\' && !historyMessage.media.rCaption && !historyMessage.viaBotID ? true : false}">\r\n\r\n <a class="im_message_author" my-peer-link="historyMessage.fromID" short="historyMessage.peerID > 0" color="historyMessage.peerID < 0" no-watch="true"></a>\r\n <a ng-if="::historyMessage.viaBotID && !historyMessage.fwdFromID" class="im_message_author_via" my-i18n="message_via_bot" ng-click="selectInlineBot(historyMessage.viaBotID, $event)"><my-i18n-param name="bot"><span class="im_message_fwd_author" my-peer-link="historyMessage.viaBotID" username="true" no-watch="true"></span></my-i18n-param></a>\r\n\r\n <a class="im_message_reply_wrap" my-reply-message="::historyMessage.reply_to_mid" ng-if="::historyMessage.reply_to_mid"></a>\r\n\r\n <div ng-if="::!!historyMessage.fwdFromID &amp;&amp; !historyMessage.media" class="im_message_fwd_header" ng-switch="!!historyMessage.viaBotID" my-i18n>\r\n <span ng-switch-when="true" my-i18n-format="message_forwarded_via_message_mobile"></span>\r\n <span ng-switch-default my-i18n-format="message_forwarded_message_mobile"></span>\r\n <my-i18n-param name="from"><a class="im_message_fwd_author" my-peer-link="historyMessage.fwdFromID" no-watch="true"></a></my-i18n-param>\r\n <my-i18n-param name="bot"><a class="im_message_fwd_author" my-peer-link="historyMessage.viaBotID" username="true" no-watch="true"></a></my-i18n-param>\r\n </div>\r\n\r\n <div class="im_message_text" dir="auto"></div>\r\n <div class="im_message_media"></div>\r\n <div class="im_message_sign"></div>\r\n\r\n </div>\r\n\r\n <div class="im_message_keyboard"></div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n'),e.put("partials/mobile/message_actions_modal.html",'<div class="message_actions_modal_wrap" my-modal-position>\r\n\r\n <div class="message_actions_wrap">\r\n <button ng-if="historyState.canReply" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_reply" ng-click="$close(\'reply\')"></button>\r\n <button ng-if="historyState.canEdit" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_edit" ng-click="$close(\'edit\')"></button>\r\n <button class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_forward" ng-click="$close(\'forward\')"></button>\r\n <button ng-if="historyState.canDelete" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_delete" ng-click="$close(\'delete\')"></button>\r\n <button class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_select" ng-click="$close(\'select\')"></button>\r\n <button class="btn btn-md btn-block" my-i18n="message_action_cancel" ng-click="$dismiss()"></button>\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/mobile/message_attach_contact.html",'<div class="im_message_contact">\r\n <a ng-if="::media.user_id > 0" class="im_message_contact_photo pull-left" my-peer-photolink="media.user_id" img-class="im_message_contact_photo" user-override="media"></a>\r\n <div class="im_message_contact_name" ng-switch="media.user_id > 0">\r\n <a ng-switch-when="true" my-peer-link="media.user_id" user-override="media"></a>\r\n <span ng-switch-default ng-bind-html="::media.rFullName"></span>\r\n </div>\r\n <div class="im_message_contact_phone" ng-bind="::media.phone_number | phoneNumber"></div>\r\n</div>'),e.put("partials/mobile/message_attach_document.html",'<div ng-switch="::media.document.type">\r\n\r\n <div ng-switch-when="gif" my-load-gif document="media.document"></div>\r\n \r\n <div ng-switch-when="round" my-load-round document="media.document"></div>\r\n\r\n <div ng-switch-when="sticker" my-load-sticker document="media.document" open="true"></div>\r\n\r\n <div ng-switch-when="voice" class="im_message_audio">\r\n <div my-audio-player audio="media.document"></div>\r\n </div>\r\n\r\n <div ng-switch-when="audio" class="im_message_audio">\r\n <div my-audio-player audio="media.document"></div>\r\n </div>\r\n\r\n <div ng-switch-when="video" class="im_message_video im_message_document_thumbed">\r\n <a class="im_message_video_thumb" href="" ng-click="videoOpen()" ng-style="::{width: media.document.thumb.width + \'px\'}">\r\n <span class="im_message_video_duration" ng-bind="::media.document.duration | duration"></span>\r\n <i class="icon icon-videoplay"></i>\r\n <img\r\n class="im_message_video_thumb im_message_video_thumb_blurred"\r\n my-load-thumb\r\n thumb="media.document.thumb"\r\n />\r\n </a>\r\n </div>\r\n\r\n <div ng-switch-default class="im_message_document clearfix" ng-class="{im_message_document_thumbed: !!media.document.thumb, im_message_document_progress: media.document.progress.enabled}">\r\n\r\n <a ng-if="::!media.document.thumb" class="im_message_file_button" ng-click="docOpen()" ng-class="{im_message_file_button_dl_doc: media.document.downloaded}">\r\n <i class="im_message_file_button_icon"></i>\r\n </a>\r\n <a ng-if="::media.document.thumb" ng-click="docOpen()">\r\n <div class="im_message_document_thumb_wrap">\r\n <img\r\n class="im_message_document_thumb"\r\n my-load-thumb\r\n thumb="media.document.thumb"\r\n />\r\n </div>\r\n </a>\r\n\r\n <div class="im_message_document_info">\r\n <div class="im_message_document_name_wrap">\r\n <a href="" ng-attr-data-name="{{media_file_name_without_ext}}" ng-attr-data-ext="{{media_file_ext}}" ng-click="docOpen()" class="im_message_document_name"></a>\r\n <span class="im_message_document_size" ng-if="!media.document.progress.enabled" ng-bind="::media.document.size | formatSize"></span>\r\n <span class="im_message_document_size" ng-if="media.document.progress.enabled" ng-bind="media.document.progress | formatSizeProgress"></span>\r\n </div>\r\n <div class="im_message_document_actions" ng-if="!media.document.progress.enabled" ng-switch="media.document.downloaded">\r\n <a ng-switch-when="true" href="" ng-click="docSave()" my-i18n="message_attach_document_save"></a>\r\n <a ng-switch-default href="" ng-click="docSave()" my-i18n="message_attach_document_download"></a>\r\n <a ng-if="::media.document.withPreview" href="" ng-click="docOpen()" my-i18n="message_attach_document_open"></a>\r\n </div>\r\n <div class="clearfix im_message_cancelable_progress_wrap" ng-if="media.document.progress.enabled">\r\n <a class="im_message_media_progress_cancel pull-right" ng-click="media.document.progress.cancel()" my-i18n="modal_cancel"></a>\r\n <div class="im_message_download_progress_wrap">\r\n <div class="progress tg_down_progress">\r\n <div class="progress-bar progress-bar-success" ng-style="{width: media.document.progress.percent + \'%\'}"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n<div ng-if="::media.rCaption" class="im_message_document_caption" ng-bind-html="::media.rCaption"></div>\r\n'),
e.put("partials/mobile/message_attach_geo.html",'<a ng-href="{{::media.mapUrl}}" target="_blank" class="im_message_geopoint">\r\n <img\r\n class="im_message_venue_geopoint_image"\r\n my-geo-point-map="media.geo"\r\n width="200"\r\n height="100"\r\n />\r\n</a>'),e.put("partials/mobile/message_attach_pending.html",'<div class="im_message_document im_message_upload_file" ng-class="::\'im_message_upload_\' + media.type">\r\n <div class="im_message_file_button im_message_file_button_upload">\r\n <i class="im_message_file_button_icon"></i>\r\n </div>\r\n <div class="im_message_document_info">\r\n <div class="im_message_document_name_wrap">\r\n <span class="im_message_document_name" ng-attr-data-name="{{media_file_name_without_ext}}" ng-attr-data-ext="{{media_file_ext}}"></span>\r\n <span class="im_message_document_size" ng-if="media.progress" ng-bind="media.progress | formatSizeProgress"></span>\r\n </div>\r\n <div class="clearfix im_message_cancelable_progress_wrap">\r\n <a class="im_message_media_progress_cancel pull-right" ng-click="media.progress.cancel()" my-i18n="modal_cancel"></a>\r\n <div class="im_message_download_progress_wrap">\r\n <div class="progress tg_down_progress">\r\n <div class="progress-bar progress-bar-success" role="progressbar" ng-style="{width: media.progress.percent + \'%\'}"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n'),e.put("partials/mobile/message_attach_photo.html",'<a class="im_message_photo_thumb" ng-click="openPhoto(media.photo.id, {m: messageId})" ng-style="::{width: media.photo.thumb.width + \'px\'}" ng-mouseover="preloadPhoto(media.photo.id)">\r\n <img\r\n class="im_message_photo_thumb"\r\n my-load-thumb\r\n thumb="media.photo.thumb"\r\n />\r\n</a>\r\n<div ng-if="::media.rCaption" class="im_message_photo_caption" ng-bind-html="::media.rCaption"></div>'),e.put("partials/mobile/message_attach_venue.html",'<div class="im_message_venue clearfix">\r\n\r\n <a ng-href="{{::media.mapUrl}}" target="_blank" rel="noopener noreferrer" class="im_message_venue_geopoint_wrap">\r\n <img\r\n class="im_message_venue_geopoint_image"\r\n my-geo-point-map="media.geo"\r\n width="100"\r\n height="100"\r\n alt="[{{::\'conversation_media_location\' | i18n}} {{::media.mapUrl}}]"\r\n />\r\n </a>\r\n\r\n <div class="im_message_venue_info">\r\n <div class="im_message_venue_title_wrap">\r\n <a ng-href="{{::media.mapUrl}}" target="_blank" rel="noopener noreferrer" class="im_message_document_name" ng-bind="::media.title"></a>\r\n </div>\r\n <div class="im_message_venue_address" ng-bind="::media.address"></div>\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/mobile/message_attach_webpage.html",'<div ng-show="webpage._ == \'webPage\'" class="im_message_webpage_wrap clearfix" ng-switch="webpage.type">\r\n <div ng-switch-when="photo" class="im_message_webpage_photo">\r\n <div class="im_message_webpage_site" ng-bind="webpage.site_name || webpage.display_url"></div>\r\n <div class="im_message_webpage_title">\r\n <a href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="webpage.rTitle"></a>\r\n </div>\r\n <div ng-if="webpage.description.length" class="im_message_webpage_description" ng-bind-html="webpage.rDescription"></div>\r\n <a class="im_message_photo_thumb" ng-click="openPhoto(webpage.photo.id, {w: webpage.id, m: messageId})" ng-style="::{width: webpage.photo.thumb.width + \'px\'}" ng-mouseover="preloadPhoto(webpage.photo.id)">\r\n <img\r\n class="im_message_photo_thumb"\r\n my-load-thumb\r\n thumb="webpage.photo.thumb"\r\n />\r\n </a>\r\n </div>\r\n <div ng-switch-when="video" class="im_message_webpage_video">\r\n <div class="im_message_webpage_site" ng-bind="webpage.site_name || webpage.display_url"></div>\r\n <div class="im_message_webpage_title">\r\n <a ng-click="openEmbed($event)" href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="webpage.rTitle"></a>\r\n </div>\r\n <div ng-if="webpage.description.length" class="im_message_webpage_description" ng-bind-html="webpage.rDescription"></div>\r\n <a class="im_message_video_thumb" ng-click="openEmbed($event)" ng-href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" ng-style="::{width: video.thumb.width + \'px\'}">\r\n <span ng-if="webpage.duration > 0" class="im_message_video_duration" ng-bind="::webpage.duration | duration"></span>\r\n <i class="icon icon-videoplay"></i>\r\n <img\r\n class="im_message_video_thumb"\r\n my-load-thumb\r\n thumb="webpage.photo.thumb"\r\n />\r\n </a>\r\n </div>\r\n\r\n <div ng-switch-default class="im_message_webpage_article">\r\n <div class="im_message_webpage_site" ng-bind="webpage.site_name"></div>\r\n <a ng-if="webpage.photo" href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" class="im_message_webpage_article_photo pull-right">\r\n <img\r\n class="im_message_article_thumb"\r\n my-load-thumb\r\n thumb="webpage.photo.thumb"\r\n />\r\n </a>\r\n <div class="im_message_webpage_title">\r\n <a ng-click="openEmbed($event)" href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="webpage.rTitle"></a>\r\n </div>\r\n <div ng-if="webpage.description.length" class="im_message_webpage_description" ng-bind-html="webpage.rDescription"></div>\r\n </div>\r\n</div>\r\n'),e.put("partials/mobile/message_service.html",'<span ng-switch="::historyMessage.action._">\r\n <my-i18n>\r\n <span ng-switch-when="messageActionChatCreate" my-i18n-format="message_service_created_group"></span>\r\n <span ng-switch-when="messageActionChatEditTitle" my-i18n-format="message_service_changed_group_name"></span>\r\n <my-i18n-param name="group-name">&laquo;<strong ng-bind-html="::historyMessage.action.rTitle"></strong>&raquo;</my-i18n-param>\r\n </my-i18n>\r\n <span ng-switch-when="messageActionChatEditPhoto" my-i18n="message_service_changed_group_photo"></span>\r\n <span ng-switch-when="messageActionChatDeletePhoto" my-i18n="message_service_removed_group_photo"></span>\r\n <span ng-switch-when="messageActionChatJoinedByLink" my-i18n="message_service_joined_by_link"></span>\r\n <span ng-switch-when="messageActionChatReturn" my-i18n="message_service_returned_to_group"></span>\r\n <span ng-switch-when="messageActionChatJoined" my-i18n="message_service_joined"></span>\r\n <span ng-switch-when="messageActionChatAddUser" my-i18n="message_service_invited_user">\r\n <my-i18n-param name="user"><a my-peer-link="historyMessage.action.user_id" color="true"></a></my-i18n-param>\r\n </span>\r\n <span ng-switch-when="messageActionChatAddUsers" my-i18n="message_service_invited_users">\r\n <my-i18n-param name="user"><a my-peer-link="historyMessage.action.users[0]" color="true"></a></my-i18n-param>\r\n <my-i18n-param name="num-more"><span ng-bind="historyMessage.action.users.length - 1"></span></my-i18n-param>\r\n </span>\r\n <span ng-switch-when="messageActionChatLeave" my-i18n="message_service_left_group"></span>\r\n <span ng-switch-when="messageActionChatDeleteUser" my-i18n="message_service_kicked_user">\r\n <my-i18n-param name="user"><a my-peer-link="historyMessage.action.user_id" color="true"></a></my-i18n-param>\r\n </span>\r\n\r\n <span ng-switch-when="messageActionChatMigrateTo" my-i18n="message_service_converted_to_supergroup"></span>\r\n <span ng-switch-when="messageActionChannelMigrateFrom" my-i18n="message_service_converted_to_supergroup"></span>\r\n <span ng-switch-when="messageActionChannelCreate" my-i18n="message_service_created_channel"></span>\r\n <span ng-switch-when="messageActionChannelEditTitle" my-i18n="message_service_changed_channel_name">\r\n <my-i18n-param name="channel-name">&laquo;<strong ng-bind-html="::historyMessage.action.rTitle"></strong>&raquo;</my-i18n-param>\r\n </span>\r\n <span ng-switch-when="messageActionChannelEditPhoto" my-i18n="message_service_changed_channel_photo"></span>\r\n <span ng-switch-when="messageActionChannelDeletePhoto" my-i18n="message_service_removed_channel_photo"></span>\r\n\r\n <span ng-switch-when="messageActionGameScore" my-i18n="message_service_scored_game">\r\n <my-i18n-param name="scored">\r\n <ng-pluralize count="historyMessage.action.score"\r\n when="message_service_scored_X"></ng-pluralize>\r\n </my-i18n-param>\r\n <my-i18n-param name="message"><a class="im_service_message_pinned" my-pinned-message="::historyMessage.reply_to_mid"></a></my-i18n-param>\r\n </span>\r\n\r\n <span ng-switch-when="messageActionPinMessage" my-i18n="message_service_pinned_message">\r\n <my-i18n-param name="message"><a my-pinned-message="historyMessage.reply_to_mid"></a></my-i18n-param>\r\n </span>\r\n\r\n <a ng-switch-when="messageActionPhoneCall" class="im_service_message_phonecall" ng-click="phoneCallClick(historyMessage.mid)" ng-switch="historyMessage.action.type">\r\n <span ng-switch-when="out_missed" my-i18n="message_service_phonecall_canceled"></span>\r\n <span ng-switch-when="in_missed" my-i18n="message_service_phonecall_missed"></span>\r\n <span ng-switch-when="out_ok" my-i18n="message_service_phonecall_outgoing"></span>\r\n <span ng-switch-when="in_ok" my-i18n="message_service_phonecall_incoming"></span>\r\n <span ng-if="historyMessage.action.duration > 0" ng-bind="historyMessage.action.duration | duration" class="im_service_message_phonecall_duration"></span>\r\n </a>\r\n \r\n <span ng-switch-when="messageActionPaymentSent" class="message_service_payment_sent"></span>\r\n\r\n <span ng-switch-default my-i18n="message_service_unsupported_action">\r\n <my-i18n-param name="action"><span ng-bind="historyMessage.action._"></span></my-i18n-param>\r\n </span>\r\n</span>\r\n'),e.put("partials/mobile/password_recovery_modal.html",'<div class="username_edit_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li class="navbar-quick-right">\r\n <a ng-class="{disabled: recovery.updating}" ng-click="checkCode()" ng-bind="recovery.updating ? \'password_recover_active\' : \'password_recover_submit\' | i18n" ng-disabled="recovery.updating"></a>\r\n </li>\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="login_recovery_title"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body">\r\n\r\n <form class="modal_simple_form" ng-submit="checkCode()">\r\n\r\n <div class="md_simple_form_description" my-i18n="login_recovery_description_md">\r\n <my-i18n-param name="email">\r\n <strong ng-bind="recovery.email_pattern"></strong>\r\n </my-i18n-param>\r\n </div>\r\n\r\n <div class="md-input-group" ng-class="{\'md-input-error\': recovery.error_field == \'code\'}" my-labeled-input ng-switch="recovery.error_field == \'code\'">\r\n <label ng-switch-when="true" class="md-input-label" my-i18n="login_code_incorrect"></label>\r\n <label ng-switch-default class="md-input-label" my-i18n="login_code_placeholder"></label>\r\n <input class="md-input" my-focused type="text" ng-model="recovery.code" name="code" my-focused />\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n</div>'),e.put("partials/mobile/password_update_modal.html",'<div class="username_edit_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li class="navbar-quick-right">\r\n <a ng-class="{disabled: passwordSettings.updating}" ng-click="updatePassword()" ng-disabled="passwordSettings.updating" ng-switch="action">\r\n <span ng-switch-when="disable" ng-bind="passwordSettings.updating ? \'password_delete_active\' : \'password_delete_submit\' | i18n"></span>\r\n <span ng-switch-default ng-bind="passwordSettings.updating ? \'password_create_active\' : \'password_create_submit\' | i18n"></span>\r\n </a>\r\n </li>\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 ng-switch="action">\r\n <my-i18n ng-switch-when="disable" msgid="password_delete_title"></my-i18n>\r\n <my-i18n ng-switch-default msgid="password_change_title"></my-i18n>\r\n </h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body">\r\n\r\n <form class="modal_simple_form" ng-submit="updatePassword()" my-vertical-position="0.3">\r\n\r\n <div ng-if="password._ != \'account.noPassword\'" class="md-input-group" ng-class="{\'md-input-error\': passwordSettings.error_field == \'cur_password\'}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="password_current_placeholder"></label>\r\n <input class="md-input" my-focused type="password" ng-model="passwordSettings.cur_password" name="cur_password" my-focus-on="cur_password_focus" />\r\n </div>\r\n\r\n <div ng-if="action != \'disable\'" class="md-input-group md-input-grouped" ng-class="{\'md-input-error\': passwordSettings.error_field == \'new_password\'}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="password_new_placeholder"></label>\r\n <input class="md-input" type="password" ng-model="passwordSettings.new_password" name="new_password" my-focus-on="new_password_focus" />\r\n </div>\r\n\r\n <div ng-if="action != \'disable\'" class="md-input-group" ng-class="{\'md-input-error\': passwordSettings.confirm_password && passwordSettings.new_password && passwordSettings.confirm_password != passwordSettings.new_password}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="password_confirm_placeholder"></label>\r\n <input class="md-input" type="password" ng-model="passwordSettings.confirm_password" name="confirm_password" my-focus-on="confirm_password_focus" />\r\n </div>\r\n\r\n <div ng-if="action != \'disable\'" class="md-input-group" my-labeled-input>\r\n <label class="md-input-label" my-i18n="password_hint_placeholder"></label>\r\n <input class="md-input" type="text" ng-model="passwordSettings.hint" name="hint" />\r\n </div>\r\n\r\n <div ng-if="action != \'disable\'" class="md_simple_form_description" my-i18n="password_create_description"></div>\r\n\r\n <div ng-if="action != \'disable\'" class="md-input-group" ng-class="{\'md-input-error\': passwordSettings.error_field == \'email\'}" my-labeled-input>\r\n <label class="md-input-label" my-i18n="password_email_placeholder"></label>\r\n <input class="md-input" type="text" ng-model="passwordSettings.email" name="email" />\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n</div>'),e.put("partials/mobile/peer_select.html",'<div class="peer_select_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <a class="navbar-search-wrap" ng-click="toggleSearch()">\r\n <i class="icon-search"></i>\r\n </a>\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="conversation_select_modal_title"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body mobile_modal_body">\r\n\r\n <div class="im_dialogs_modal_col_wrap" ng-controller="AppImDialogsController" my-dialogs ng-class="search.query.length > 0 ? \'im_dialogs_col_search\' : \'\'">\r\n <div class="im_dialogs_panel">\r\n <div class="im_dialogs_search">\r\n <input my-focused class="form-control im_dialogs_search_field no_outline" type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\r\n <a class="im_dialogs_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\r\n <i class="icon icon-search-clear"></i>\r\n </a>\r\n </div>\r\n </div>\r\n <div my-dialogs-list-mobile modal="true" class="im_dialogs_modal_col im_dialogs_scrollable_wrap mobile_scrollable_wrap">\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" my-dialog dialog-message="dialogMessage" ng-repeat="dialogMessage in dialogs track by dialogMessage.peerID"></li>\r\n </ul>\r\n <div class="im_dialogs_contacts_wrap" ng-show="contacts.length > 0">\r\n <h5 my-i18n="conversation_select_modal_contacts"></h5>\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" ng-repeat="contact in contacts | orderBy:\'user.sortName\' track by contact.userID" ng-class="{active: curDialog.peerID == contact.userID}">\r\n <a class="im_dialog" ng-click="dialogSelect(contact.peerString)">\r\n <div class="im_dialog_photo pull-left" my-peer-photolink="::contact.userID" img-class="im_dialog_photo" watch="true"></div>\r\n <div class="im_dialog_message_wrap">\r\n <div class="im_dialog_peer">\r\n <span class="im_dialog_user" my-peer-link="contact.userID"></span>\r\n </div>\r\n <div class="im_dialog_message">\r\n <span class="im_dialog_message_text" my-user-status="::contact.userID"></span>\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class="im_dialogs_contacts_wrap" ng-show="foundPeers.length > 0">\r\n <h5 my-i18n="im_found_title"></h5>\r\n <ul class="nav nav-pills nav-stacked">\r\n <li class="im_dialog_wrap" ng-repeat="foundPeer in foundPeers track by foundPeer.id" ng-class="{active: selectedPeers[foundPeer.id] !== undefined}">\r\n <a class="im_dialog" ng-click="dialogSelect(foundPeer.peerString)">\r\n <div class="im_dialog_photo pull-left" my-peer-photolink="foundPeer.id" img-class="im_dialog_photo" watch="true"></div>\r\n <div class="im_dialog_message_wrap">\r\n <div class="im_dialog_peer">\r\n <span class="im_dialog_user" my-peer-link="foundPeer.id"></span>\r\n </div>\r\n <div class="im_dialog_message">\r\n <span class="im_dialog_message_text" ng-bind="::\'@\' + foundPeer.username"></span>\r\n </div>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/mobile/phonebook_modal.html",'<div class="contacts_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li class="navbar-quick-right">\r\n <a ng-class="{disabled: !selectedCount || progress.enabled}" ng-click="submitSelected()" ng-switch="progress.enabled">\r\n <span ng-switch-when="true">\r\n <my-i18n msgid="phonebook_modal_submit_active"></my-i18n>\r\n <span my-loading-dots></span>\r\n </span>\r\n <span ng-switch-default my-i18n="phonebook_modal_submit"></span>\r\n </a>\r\n </li>\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="phonebook_modal_title"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body mobile_modal_body">\r\n\r\n <div class="contacts_modal_search">\r\n <input class="form-control contacts_modal_search_field no_outline" my-focused type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\r\n <a class="contacts_modal_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\r\n <i class="icon icon-search-clear"></i>\r\n </a>\r\n </div>\r\n\r\n\r\n <div class="contacts_modal_col contacts_wrap contacts_scrollable_wrap mobile_scrollable_wrap" my-contacts-list-mobile my-infinite-scroller-mobile>\r\n <div ng-switch="contactsEmpty">\r\n\r\n <div ng-switch-when="true" class="contacts_modal_contacts_empty" my-vertical-position="0.2" padding="true" my-i18n="phonebook_modal_empty"></div>\r\n\r\n <ul ng-switch-default class="contacts_modal_members_list nav nav-pills nav-stacked">\r\n\r\n <li class="contacts_modal_contact_wrap clearfix" ng-repeat="contact in contacts | limitTo: slice.limit track by contact.id" ng-class="{active: selectedContacts[contact.id]}">\r\n <a class="contacts_modal_contact" ng-click="contactSelect(contact.id)">\r\n\r\n <i ng-if="multiSelect" class="icon icon-contact-tick"></i>\r\n\r\n <div class="contacts_modal_contact_photo pull-left">\r\n <img\r\n class="contacts_modal_contact_photo"\r\n ng-src="{{contact.photo}}"\r\n />\r\n </div>\r\n\r\n <div class="contacts_modal_contact_name">\r\n <span ng-bind="contact.first_name"></span>\r\n <span ng-bind="contact.last_name"></span>\r\n </div>\r\n <div class="contacts_modal_contact_status" ng-repeat="phone in contact.phones">\r\n <span ng-bind="phone | phoneNumber"></span>\r\n </div>\r\n\r\n </a>\r\n </li>\r\n\r\n </ul>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="modal-footer contacts_modal_panel" ng-show="multiSelect">\r\n <button class="btn btn-primary" ng-click="toggleSelection()" ng-switch="selectedCount > 0">\r\n <span ng-switch-when="true" my-i18n="phonebook_modal_deselect_all"></span>\r\n <span ng-switch-default my-i18n="phonebook_modal_select_all"></span>\r\n </button>\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/mobile/photo_modal.html",'<div class="media_modal_bottom_panel_wrap" ng-show="!hideToolbars">\r\n <div class="media_modal_bottom_panel">\r\n <div class="media_modal_bottom_actions pull-right">\r\n <a class="media_modal_action_btn" ng-if="canDelete" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\r\n <i class="media_modal_action_btn_delete"></i>\r\n </a>\r\n </div>\r\n\r\n <div class="media_modal_bottom_actions pull-left">\r\n <a class="media_modal_action_btn" ng-if="canForward" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\r\n <i class="media_modal_action_btn_forward"></i>\r\n </a>\r\n </div>\r\n\r\n <div class="media_modal_info_wrap" ng-if="photo.user_id > 0">\r\n <a class="media_modal_author" my-peer-link="photo.user_id" peer-watch="true"></a>\r\n <br/>\r\n <span class="media_modal_date" ng-bind="photo.date | dateOrTime :true"></span>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n<div class="media_modal_top_panel_wrap" ng-show="!hideToolbars">\r\n <div class="media_modal_top_panel">\r\n <div class="media_modal_top_actions pull-right">\r\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\r\n <i class="media_modal_action_btn_download"></i>\r\n </a>\r\n </div>\r\n <div class="media_modal_top_actions pull-left">\r\n <a ng-click="$close()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n\r\n <div class="navbar-quick-back-title">\r\n <h4 class="media_modal_title_wrap" ng-switch="count > 1 &amp;&amp; pos > 0">\r\n <my-i18n ng-switch-when="true" msgid="media_modal_photo_index">\r\n <my-i18n-param name="pos" ng-bind="pos"></my-i18n-param>\r\n <my-i18n-param name="count" ng-bind="count"></my-i18n-param>\r\n </my-i18n>\r\n <my-i18n ng-switch-default msgid="media_modal_photo">\r\n </h4>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class="modal-dialog" ng-swipe-right="nav.prev()" ng-swipe-left="nav.next()" ng-click="hideToolbars = !hideToolbars">\r\n <div class="modal-content">\r\n <div my-modal-width="{{photo.full.modalWidth}}" class="media_modal_wrap photo_modal_wrap" my-vertical-position="0.5">\r\n\r\n <div class="modal-body">\r\n\r\n <div class="photo_modal_image_wrap" my-load-full-photo full-photo="photo.full" thumb-location="photo.thumb.location"></div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n'),e.put("partials/mobile/profile_edit_modal.html",'<div class="profile_edit_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li class="navbar-quick-right">\r\n <a ng-class="{disabled: profile.updating}" ng-click="updateProfile()" ng-bind="profile.updating ? \'profile_edit_submit_active\' : \'profile_edit_submit\' | i18n" ng-disabled="profile.updating"></a>\r\n </li>\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="profile_edit_modal_title"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body">\r\n\r\n <form class="modal_simple_form" ng-submit="updateProfile()" my-vertical-position="0.3">\r\n\r\n <div class="form-group" ng-class="{\'has-error\': error.field == \'first_name\'}">\r\n <input class="form-control input-lg" my-focused type="text" placeholder="{{\'profile_edit_first_name\' | i18n}}" ng-model="profile.first_name" name="first_name"/>\r\n </div>\r\n <div class="form-group" ng-class="{\'has-error\': error.field == \'last_name\'}">\r\n <input class="form-control input-lg" type="text" placeholder="{{\'profile_edit_last_name\' | i18n}}" ng-model="profile.last_name"/>\r\n </div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n</div>'),e.put("partials/mobile/sessions_list_modal.html",'<div class="sessions_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header">\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="sessions_modal_title"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body mobile_modal_body">\r\n\r\n <div my-sessions-list class="sessions_modal_col">\r\n\r\n <div class="sessions_wrap nano" my-infinite-scroller>\r\n <div class="sessions_scrollable_wrap nano-content" ng-switch="!sessionsLoaded">\r\n\r\n <div ng-switch-when="true" class="sessions_modal_loading" my-vertical-position="0.2" padding="true" my-i18n="sessions_modal_loading">\r\n <my-i18n-param name="dots">\r\n <span my-loading-dots></span>\r\n </my-i18n-param>\r\n </div>\r\n\r\n <ul ng-switch-default class="sessions_modal_sessions_list nav nav-pills nav-stacked">\r\n\r\n <li class="sessions_modal_session_wrap clearfix" ng-repeat="authorization in authorizations | limitTo: slice.limit track by authorization.hash">\r\n <div class="sessions_modal_session">\r\n <div class="session_meta_wrap pull-right">\r\n <div class="session_active_date" ng-switch="authorization.current">\r\n <span ng-switch-when="true" class="session_active_date_online" my-i18n="sessions_modal_current_session"></span>\r\n <span ng-switch-default ng-bind="authorization.date_active | dateOrTime"></span>\r\n </div>\r\n\r\n <a ng-if="!authorization.current" class="session_terminate_btn" ng-click="terminateSession(authorization.hash)" my-i18n="sessions_modal_terminate_one"></a>\r\n </div>\r\n\r\n <div class="sessions_modal_session_app" ng-bind="authorization.app_name + \' \' + authorization.app_version"></div>\r\n <div class="sessions_modal_session_device" ng-bind="authorization.device_model + \', \' + authorization.platform + \' \' + authorization.system_version"></div>\r\n <div class="sessions_modal_session_location" ng-bind="authorization.ip + \' - \' + authorization.country"></div>\r\n </div>\r\n <div ng-if="authorization.current && authorizations.length > 1">\r\n <div class="sessions_modal_terminate_all_wrap">\r\n <a ng-click="terminateAllSessions()" my-i18n="sessions_modal_terminate_all"></a>\r\n </div>\r\n\r\n <hr class="sessions_modal_other_splitter"></hr>\r\n </div>\r\n </li>\r\n\r\n </ul>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/mobile/settings_modal.html",'<div class="settings_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-toggle-wrap dropdown" dropdown>\r\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n </a>\r\n <ul class="dropdown-menu">\r\n <li ng-if="photo.location">\r\n <a ng-click="deletePhoto()" my-i18n="settings_modal_delete_photo"></a>\r\n </li>\r\n <li>\r\n <a ng-click="editProfile()" my-i18n="settings_modal_edit_profile"></a>\r\n </li>\r\n <li>\r\n <a ng-click="changeUsername()" my-i18n="settings_modal_edit_username"></a>\r\n </li>\r\n <li>\r\n <a ng-if="password._ == \'account.noPassword\' && password.email_unconfirmed_pattern.length" ng-click="changePassword({action: \'cancel_email\'})" my-i18n="settings_modal_password_email_pending_cancel_mobile">\r\n </a>\r\n <a ng-if="password._ == \'account.noPassword\' && !password.email_unconfirmed_pattern" ng-click="changePassword({action: \'create\'})" my-i18n="settings_modal_set_password"></a>\r\n <a ng-if="password._ == \'account.password\'" ng-click="changePassword({action: \'change\'})" my-i18n="settings_modal_change_password"></a>\r\n </li>\r\n <li ng-if="password._ == \'account.password\'">\r\n <a ng-click="changePassword({action: \'disable\'})" my-i18n="settings_modal_disable_password_mobile"></a>\r\n </li>\r\n\r\n <li>\r\n <a ng-click="showSessions()" my-i18n="settings_modal_active_sessions"></a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li>\r\n <a ng-click="$close()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="settings_modal_title"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body mobile_modal_body">\r\n\r\n <div class="mobile_user_modal_photo_profile_wrap">\r\n\r\n <a ng-click="openPhoto(profile.photo.photo_id, {p: profile.id})" class="mobile_user_modal_image_wrap pull-left" my-peer-photolink="::profile.id" img-class="mobile_user_modal_image" no-open="true" watch="true" ng-class="{disabled: !profile.photo.photo_id}" ng-disabled="!profile.photo.photo_id"></a>\r\n\r\n <div class="mobile_user_modal_info_wrap clearfix">\r\n <h4 class="mobile_user_modal_header" my-peer-link="profile.id"></h4>\r\n <p class="mobile_user_modal_status" my-user-status="::profile.id"></p>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap" ng-switch="photo.updating">\r\n <span ng-switch-when="true" class="mobile_modal_action" my-i18n>\r\n <my-i18n msgid="settings_modal_photo_updating"></my-i18n>\r\n <span my-loading-dots></span>\r\n </span>\r\n <span ng-switch-default class="mobile_modal_action mobile_modal_upload_action">\r\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" multiple="false" accept="image/x-png, image/png, image/gif, image/jpeg" />\r\n <my-i18n msgid="settings_modal_set_photo"></my-i18n>\r\n </span>\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap">\r\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleDesktop()" ng-class="notify.desktop ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="settings_modal_notification_alert"></span>\r\n </a>\r\n </div>\r\n\r\n <div ng-if="notify.desktop && notify.pushAvailable" class="mobile_modal_action_wrap">\r\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="togglePush()" ng-class="notify.push ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="settings_modal_notification_push"></span>\r\n </a>\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap">\r\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="togglePreview()" ng-class="notify.preview ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="settings_modal_message_preview"></span>\r\n </a>\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap" ng-if="!notify.desktop &amp;&amp; notify.canVibrate">\r\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleVibrate()" ng-class="notify.vibrate ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="settings_modal_vibrate"></span>\r\n </a>\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap">\r\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleSound()" ng-class="notify.volume ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="settings_modal_sounds"></span>\r\n </a>\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap">\r\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="toggleCtrlEnter(send.enter == 1 ? 0 : 1)" ng-class="send.enter == 1 ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="settings_modal_send_on_enter"></span>\r\n </a>\r\n </div>\r\n\r\n\r\n <div class="mobile_modal_action_wrap" ng-controller="AppLangSelectController">\r\n <div class="mobile_modal_select_wrap pull-right">\r\n <select class="form-control" ng-change="localeSelect()" ng-model="form.locale">\r\n <option ng-repeat="locale in ::supportedLocales" value="{{locale}}" ng-bind="langNames[locale]" ng-selected="locale == curLocale"></option>\r\n </select>\r\n </div>\r\n <span class="mobile_modal_action" my-i18n="settings_modal_language"></span>\r\n </div>\r\n\r\n <div class="mobile_modal_section" ng-if="profile.phone">\r\n <h4 class="mobile_modal_section_header" my-i18n="user_modal_phone"></h4>\r\n <div class="mobile_modal_section_value" ng-bind="profile.phone | phoneNumber"></div>\r\n </div>\r\n\r\n <div class="mobile_modal_section">\r\n <h4 class="mobile_modal_section_header" my-i18n="user_modal_username"></h4>\r\n <div class="mobile_modal_section_value" ng-click="changeUsername()" ng-switch="profile.username.length > 0">\r\n <a class="settings_modal_username_link" ng-switch-when="true" href="" ng-click="changeUsername()" ng-bind="\'@\' + profile.username"></a>\r\n <a ng-switch-default href="" ng-click="changeUsername()" my-i18n="settings_modal_empty_username_set"></a>\r\n </div>\r\n </div>\r\n\r\n <div class="mobile_modal_section" ng-if="switchBackToDesktop">\r\n <div class="mobile_modal_section_value">\r\n <a href="" ng-click="switchToDesktop()" my-i18n="settings_switch_back_to_desktop"></a>\r\n </div>\r\n </div>\r\n\r\n <div class="mobile_modal_section">\r\n <h4 class="mobile_modal_section_header" my-i18n="settings_modal_about"></h4>\r\n <div class="mobile_modal_section_body settings_about_section_body clearfix">\r\n <div class="settings_external_services pull-right">\r\n <a href="https://github.com/zhukov/webogram" target="_blank" title="{{\'settings_modal_source_code_github\' | i18n}}" class="settings_external_service"><i class="icon icon-github"></i></a>\r\n <a href="https://twitter.com/telegram_web" target="_blank" title="{{\'settings_modal_follow_us_twitter\' | i18n}}" class="settings_external_service"><i class="icon icon-twitter"></i></a>\r\n </div>\r\n <p>\r\n <a href="https://github.com/zhukov/webogram/blob/master/CHANGELOG.md" target="_blank" my-i18n="settings_modal_recent_updates">\r\n <my-i18n-param name="version" ng-bind="version"></my-i18n-param>\r\n </a>\r\n </p>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n'),
e.put("partials/mobile/stickerset_modal.html",'<div class="stickerset_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li class="navbar-quick-right" ng-if="stickersetLoaded" ng-switch="stickersetInstalled">\r\n <a ng-switch-when="true" my-i18n="stickerset_modal_uninstall" ng-click="toggleInstalled(false)"></a>\r\n <a ng-switch-when="false" my-i18n="stickerset_modal_install" ng-click="toggleInstalled(true)"></a>\r\n </li>\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 ng-switch="!stickersetLoaded">\r\n <span ng-switch-when="true" my-i18n="stickerset_modal_title_loading"></span>\r\n <span ng-switch-default ng-bind="stickerset.title"></span>\r\n </h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body">\r\n\r\n <div my-stickers-list class="stickerset_modal_col">\r\n\r\n <div class="stickerset_wrap nano" my-infinite-scroller>\r\n <div class="stickerset_scrollable_wrap nano-content" ng-switch="!stickersetLoaded">\r\n\r\n <div ng-switch-when="true" class="stickerset_modal_loading" my-vertical-position="0.2" padding="true" my-i18n="stickerset_modal_loading">\r\n <my-i18n-param name="dots">\r\n <span my-loading-dots></span>\r\n </my-i18n-param>\r\n </div>\r\n\r\n <div ng-switch-default class="stickerset_modal_stickers_list clearfix">\r\n <div class="stickerset_modal_sticker_wrap" ng-repeat="sticker in documents | limitTo: slice.limit">\r\n <div class="stickerset_modal_sticker" my-load-sticker document="sticker" thumb="true"></div>\r\n <div class="stickerset_modal_sticker_alt" ng-bind-html="sticker.stickerEmoji"></div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>'),e.put("partials/mobile/username_edit_modal.html",'<div class="username_edit_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li class="navbar-quick-right">\r\n <a ng-class="{disabled: profile.updating}" ng-click="updateUsername()" ng-bind="profile.updating ? \'username_edit_submit_active\' : \'username_edit_submit\' | i18n" ng-disabled="profile.updating"></a>\r\n </li>\r\n <li>\r\n <a ng-click="$dismiss()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="username_edit_modal_title"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body">\r\n\r\n <form class="modal_simple_form" ng-submit="updateUsername()" my-vertical-position="0.3">\r\n\r\n <div class="form-group import_modal_field_wrap" ng-class="{\'has-error\': checked.error, \'has-feedback\': checked.feedback.length > 0}">\r\n <input class="form-control input-md" my-focused type="text" placeholder="{{\'username_edit_placeholder\' | i18n}}" ng-model="profile.username" name="username" ng-model-options="{updateOn: \'default blur\', debounce: {default: 600, blur: 0}}"/>\r\n <span ng-if="checked.error" class="glyphicon form-control-feedback" ng-class="{\'glyphicon-remove\': checked.error}"></span>\r\n </div>\r\n\r\n <div class="modal_simple_form_description" my-i18n="username_edit_description_md"></div>\r\n\r\n </form>\r\n\r\n </div>\r\n\r\n</div>'),e.put("partials/mobile/user_modal.html",'<div class="mobile_user_modal_wrap">\r\n\r\n <div class="tg_page_head tg_modal_head">\r\n <div class="navbar navbar-static-top navbar-inverse">\r\n <div class="container">\r\n\r\n <div class="navbar-toggle-wrap dropdown" dropdown>\r\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n <span class="icon-bar"></span>\r\n </a>\r\n <ul class="dropdown-menu">\r\n <li ng-if="user.pFlags.contact">\r\n <a ng-click="importContact(true)" my-i18n="user_modal_edit_contact"></a>\r\n </li>\r\n <li ng-if="user.pFlags.contact">\r\n <a ng-click="deleteContact()" my-i18n="user_modal_delete_contact"></a>\r\n </li>\r\n <li ng-if="user.phone.length > 0 &amp;&amp; !user.pFlags.contact &amp;&amp; !user.pFlags.self">\r\n <a ng-click="importContact()" my-i18n="user_modal_add_contact"></a>\r\n </li>\r\n <li>\r\n <a ng-click="flushHistory(true)" my-i18n="user_modal_clear_history"></a>\r\n </li>\r\n <li>\r\n <a ng-click="flushHistory()" my-i18n="user_modal_delete_chat"></a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class="navbar-header">\r\n\r\n <ul class="nav navbar-nav navbar-quick-nav">\r\n <li>\r\n <a ng-click="$close()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 my-i18n="user_modal_contact_info"></h4>\r\n </div>\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class="modal-body mobile_modal_body">\r\n\r\n <div class="mobile_user_modal_photo_profile_wrap">\r\n\r\n <a ng-click="openPhoto(user.photo.photo_id, {u: user.id})" class="mobile_user_modal_image_wrap pull-left" my-peer-photolink="::user.id" img-class="mobile_user_modal_image" no-open="true" watch="true" ng-class="{disabled: !user.photo.photo_id}" ng-disabled="!user.photo.photo_id"></a>\r\n\r\n <div class="mobile_user_modal_info_wrap clearfix">\r\n <h4 class="mobile_user_modal_header" my-peer-link="user.id" verified="true"></h4>\r\n <p class="mobile_user_modal_status" ng-if="user.status" my-user-status="::user.id"></p>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class="mobile_modal_section" ng-if="user.phone.length > 0">\r\n <h4 class="mobile_modal_section_header" my-i18n="user_modal_phone"></h4>\r\n <div class="mobile_modal_section_value" ng-bind="user.phone | phoneNumber"></div>\r\n </div>\r\n\r\n <div class="mobile_modal_section" ng-if="user.username">\r\n <h4 class="mobile_modal_section_header" my-i18n="user_modal_username"></h4>\r\n <div class="mobile_modal_section_value" ng-bind="\'@\' + user.username"></div>\r\n </div>\r\n\r\n <div class="mobile_modal_section" ng-if="rAbout">\r\n <h4 class="mobile_modal_section_header" my-i18n="user_modal_about"></h4>\r\n <div class="mobile_modal_section_value" ng-bind-html="rAbout"></div>\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap">\r\n <a class="mobile_modal_action" ng-click="goToHistory()" my-i18n="user_modal_send_message"></a>\r\n </div>\r\n\r\n <div ng-if="user.phone.length > 0" class="mobile_modal_action_wrap">\r\n <a class="mobile_modal_action" ng-click="shareContact()" my-i18n="user_modal_share_contact"></a>\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap" ng-if="user.pFlags.bot &amp;&amp; !user.pFlags.bot_nochats">\r\n <a class="mobile_modal_action" ng-click="inviteToGroup()" my-i18n="user_modal_add_to_group"></a>\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap" ng-if="bot_info.commands.settings != null">\r\n <a class="mobile_modal_action" ng-click="sendCommand(\'settings\')" my-i18n="user_modal_bot_settings"></a>\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap" ng-if="bot_info.commands.help != null">\r\n <a class="mobile_modal_action" ng-click="sendCommand(\'help\')" my-i18n="user_modal_bot_help"></a>\r\n </div>\r\n\r\n\r\n <div class="mobile_modal_action_wrap">\r\n <a class="mobile_modal_action tg_checkbox clearfix" ng-click="settings.notifications = !settings.notifications" ng-class="settings.notifications ? \'tg_checkbox_on\' : \'\'">\r\n <span class="icon icon-checkbox-outer"><i class="icon-checkbox-inner"></i></span>\r\n <span class="tg_checkbox_label" my-i18n="user_modal_notifications"></span>\r\n </a>\r\n </div>\r\n\r\n <div class="mobile_modal_action_wrap" ng-if="!user.pFlags.self">\r\n <a class="mobile_modal_action" ng-click="toggleBlock(!blocked)" ng-switch="blocked">\r\n <my-i18n ng-switch-when="true" msgid="user_modal_unblock_user"></my-i18n>\r\n <my-i18n ng-switch-default msgid="user_modal_block_user"></my-i18n>\r\n </a>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n'),e.put("partials/mobile/video_modal.html",'<div class="media_modal_bottom_panel_wrap">\r\n <div class="media_modal_bottom_panel">\r\n <div class="media_modal_bottom_actions pull-right">\r\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\r\n <i class="media_modal_action_btn_delete"></i>\r\n </a>\r\n </div>\r\n\r\n <div class="media_modal_bottom_actions pull-left">\r\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\r\n <i class="media_modal_action_btn_forward"></i>\r\n </a>\r\n </div>\r\n\r\n <div class="media_modal_info_wrap" ng-if="video.user_id > 0">\r\n <a class="media_modal_author" my-peer-link="video.user_id" peer-watch="true"></a>\r\n <br/>\r\n <span class="media_modal_date" ng-bind="video.date | dateOrTime :true"></span>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n<div class="media_modal_top_panel_wrap">\r\n <div class="media_modal_top_panel">\r\n <div class="media_modal_top_actions pull-right">\r\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\r\n <i class="media_modal_action_btn_download"></i>\r\n </a>\r\n </div>\r\n <div class="media_modal_top_actions pull-left">\r\n <a ng-click="$close()" class="navbar-quick-media-back">\r\n <i class="icon icon-back"></i>\r\n <div class="navbar-quick-back-title">\r\n <h4 class="media_modal_title_wrap" my-i18n="media_modal_video"></h4>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class="modal-dialog">\r\n <div class="modal-content">\r\n <div my-modal-width="{{video.full.width}}" class="media_modal_wrap video_modal_wrap" my-vertical-position="0.5">\r\n\r\n <div class="modal-body">\r\n\r\n <div class="video_modal_image_wrap" my-load-video video="video"></div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n\r\n')}]),function(e,t,n,a){function r(e){ConfigStorage.get("emojis_popular",function(t){var n=[];if(t&&t.length){for(var a=0,r=t.length;a<r;a++)n.push({code:t[a][0],rate:t[a][1]});return void e(n)}ConfigStorage.get("emojis_recent",function(t){t=t||w||[];for(var a,r,i=0,s=t.length;i<s;i++)a=t[i],Array.isArray(a)&&(a=a[0]),a&&"string"==typeof a&&(":"==a.charAt(0)&&(a=a.substr(1,a.length-2)),(r=_[a])&&n.push({code:r,rate:1}));e(n)})})}function i(e){r(function(t){for(var n=!1,a=t.length,r=[],i=0;i<a;i++)t[i].code==e&&(n=!0,t[i].rate++),r.push([t[i].code,t[i].rate]);n?r.sort(function(e,t){return t[1]-e[1]}):(r.length>41&&(r=r.slice(0,41)),r.push([e,1])),ConfigStorage.set({emojis_popular:r})})}function s(){if(b===!1){b=SearchIndexManager.createIndex();var e;for(e in _)_.hasOwnProperty(e)&&SearchIndexManager.indexObject(_[e],e,b)}}function o(e){s();var t,n=SearchIndexManager.search(e,b),a=[];for(t in n)n.hasOwnProperty(t)&&a.push(t);return a}var l,c,d,p,u,m,g,h,f={},_={},y={},v={},b=!1,w="joy,kissing_heart,heart,heart_eyes,blush,grin,+1,relaxed,pensive,smile,sob,kiss,unamused,flushed,stuck_out_tongue_winking_eye,see_no_evil,wink,smiley,cry,stuck_out_tongue_closed_eyes,scream,rage,smirk,disappointed,sweat_smile,kissing_closed_eyes,speak_no_evil,relieved,grinning,yum,laughing,ok_hand,neutral_face,confused".split(",");for(l=0,g=n.length;l<g;l++)for(m=a[l][1],c=0,h=n[l].length;c<h;c++)d=n[l][c],u=t[d],p=u[1][0],f[d]=[u[0],p],_[p]=d,v[d]=[l,c,Math.floor(c/m),c%m];angular.forEach(t,function(e,t){y[e[0]]=t}),e.EmojiHelper={emojis:f,emojiMap:y,shortcuts:_,spritesheetPositions:v,getPopularEmoji:r,pushPopularEmoji:i,indexEmojis:s,searchEmojis:o}}(window,Config.Emoji,Config.EmojiCategories,Config.EmojiCategorySpritesheetDimens),EmojiTooltip.prototype.onMouseEnter=function(e){this.hideTimeout?(clearTimeout(this.hideTimeout),delete this.hideTimeout):e&&!this.showTimeout&&(this.showTimeout=setTimeout(this.show.bind(this),100))},EmojiTooltip.prototype.onMouseLeave=function(e){if(this.hideTimeout)e&&this.showTimeout&&(clearTimeout(this.showTimeout),delete this.showTimeout);else{var t=this;this.hideTimeout=setTimeout(function(){t.hide()},600)}},EmojiTooltip.prototype.createTooltip=function(){if(this.tooltipEl)return!1;var e='<div class="composer_emoji_tooltip noselect"> <div class="composer_emoji_tooltip_tabs"> <div class="composer_emoji_tooltip_tab composer_emoji_tooltip_tab_emoji">'+this.langpack.im_emoji_tab+'</div> <div class="composer_emoji_tooltip_tab composer_emoji_tooltip_tab_stickers">'+this.langpack.im_stickers_tab+'</div> <div class="composer_emoji_tooltip_tab_shadow"></div> </div> <div class="composer_emoji_tooltip_tabs_wrap"> <div class="composer_emoji_tooltip_tabs_contents clearfix"> <div class="composer_emoji_tooltip_tab_emoji_content"> <div class="composer_emoji_tooltip_content_wrap"> <div class="composer_emoji_tooltip_content composer_emoji_tooltip_content_emoji clearfix"></div> </div> <div class="composer_emoji_tooltip_categories"> <a class="composer_emoji_tooltip_category active" data-category="0"><i class="composer_emoji_tooltip_category_recent"></i></a> <a class="composer_emoji_tooltip_category" data-category="1"><i class="composer_emoji_tooltip_category_smile"></i></a> <a class="composer_emoji_tooltip_category" data-category="2"><i class="composer_emoji_tooltip_category_flower"></i></a> <a class="composer_emoji_tooltip_category" data-category="3"><i class="composer_emoji_tooltip_category_bell"></i></a> <a class="composer_emoji_tooltip_category" data-category="4"><i class="composer_emoji_tooltip_category_car"></i></a> <a class="composer_emoji_tooltip_category" data-category="5"><i class="composer_emoji_tooltip_category_grid"></i></a> </div> </div> <div class="composer_emoji_tooltip_tab_stickers_content"> <div class="composer_emoji_tooltip_content_wrap"> <div class="composer_emoji_tooltip_content composer_emoji_tooltip_content_stickers clearfix"></div> </div> <div class="composer_emoji_tooltip_categories"></div> </div> </div> </div> <div class="composer_emoji_tooltip_tail"><i class="icon icon-tooltip-tail"></i></div></div>';e=e.replace(/>\s+</g,"><");var t=this;this.tooltipEl=$(e).appendTo(document.body),this.tabsEl=$(".composer_emoji_tooltip_tabs",this.tooltipEl),this.categoriesEl=$(".composer_emoji_tooltip_categories",this.tooltipEl),this.stickersCategoriesEl=$(".composer_emoji_tooltip_tab_stickers_content .composer_emoji_tooltip_categories",this.tooltipEl),this.contentEl=$(".composer_emoji_tooltip_content",this.tooltipEl),this.emojiContentEl=$(".composer_emoji_tooltip_content_emoji",this.tooltipEl),this.stickersContentEl=$(".composer_emoji_tooltip_content_stickers",this.tooltipEl),angular.forEach(["emoji","stickers"],function(e,n){var a=$(".composer_emoji_tooltip_tab_"+e,t.tabsEl).on("mousedown",function(e){return t.selectTab(n),cancelEvent(e)});Config.Navigator.touch||a.on("mouseenter mouseleave",function(e){clearTimeout(t.selectTabTimeout),"mouseenter"==e.type&&(t.selectTabTimeout=setTimeout(function(){t.selectTab(n)},300))})});var n="mousedown";return Config.Navigator.touch||(n+=" mouseover mouseout"),this.categoriesEl.on(n,function(e){e=e.originalEvent||e;var n=e.target;if("A"!=n.tagName&&(n=n.parentNode),"A"==n.tagName){var a=parseInt(n.getAttribute("data-category"));if("mousedown"==e.type)return t.selectCategory(a),cancelEvent(e);if(!t.tab){var r="mouseover"==e.type;r&&t.selectCategoryIndex==a||(clearTimeout(t.selectCategoryTimeout),delete t.selectCategoryTimeout,r?(t.selectCategoryIndex=a,t.selectCategoryTimeout=setTimeout(function(){delete t.selectCategoryIndex,delete t.selectCategoryTimeout,t.selectCategory(a)},300)):delete t.selectCategoryIndex)}}}),this.emojiScroller=new Scroller(this.emojiContentEl,{classPrefix:"composer_emoji_tooltip"}),this.stickersScroller=new Scroller(this.stickersContentEl,{classPrefix:"composer_emoji_tooltip"}),this.stickersScroller.onScroll(function(e,n){t.onStickersScroll(e,n)}),this.contentEl.on("mousedown",function(e){e=e.originalEvent||e;var n,a,r,i=$(e.target);return"A"!=i[0].tagName&&(i=$(i[0].parentNode)),(n=i.attr("data-code"))&&(t.onEmojiSelected&&t.onEmojiSelected(n),EmojiHelper.pushPopularEmoji(n)),(a=i.attr("data-sticker"))&&(t.onStickerSelected&&t.onStickerSelected(a),Config.Mobile&&t.hide()),(r=i.attr("data-stickerset"))&&(t.onStickersetSelected&&t.onStickersetSelected(r),t.hide()),cancelEvent(e)}),Config.Navigator.touch||this.tooltipEl.on("mouseenter mouseleave",function(e){"mouseenter"==e.type?t.onMouseEnter():t.onMouseLeave()}),this.selectTab(0),$(window).on("resize",this.updatePosition.bind(this)),!0},EmojiTooltip.prototype.selectCategory=function(e,t){return!(!this.tab&&this.cat===e&&!t)&&($(".active",this.categoriesEl).removeClass("active"),this.cat=e,void(this.tab?(this.activateStickerCategory(),this.updateStickersContents(t)):($(this.categoriesEl[this.tab].childNodes[e]).addClass("active"),this.updateEmojiContents())))},EmojiTooltip.prototype.selectTab=function(e,t){if(this.tab===e&&!t)return!1;this.tab=e,this.selectCategory(0,!0);var n=this;setTimeout(function(){$(n.tooltipEl).toggleClass("composer_emoji_tooltip_tabs_stickers_active",1==e)},0)},EmojiTooltip.prototype.updateEmojiContents=function(){var e=[],t=this,n=26,a=function(){t.emojiContentEl.html(e.join("")),t.emojiScroller.reinit()};if(this.cat>0){var r,i,s,o,l,c=this.cat-1,d=Config.EmojiCategories[c],p=Config.EmojiCategorySpritesheetDimens[c][1],u=d.length;for(s=0;s<u;s++)r=d[s],i=Config.Emoji[r],o=n*(s%p),l=n*Math.floor(s/p),e.push('<a class="composer_emoji_btn" title=":'+encodeEntities(i[1][0])+':" data-code="'+encodeEntities(r)+'"><i class="emoji emoji-w'+n+" emoji-spritesheet-"+c+'" style="background-position: -'+o+"px -"+l+'px;"></i></a>');a()}else EmojiHelper.getPopularEmoji(function(t){var r,i,s,o,l,c,d,p,u=t.length;for(c=0;c<u;c++)r=t[c].code,(i=Config.Emoji[r])&&(s=EmojiHelper.spritesheetPositions[r],l=s[0],o=s[1],d=n*s[3],p=n*s[2],e.push('<a class="composer_emoji_btn" title=":'+encodeEntities(i[1][0])+':" data-code="'+encodeEntities(r)+'"><i class="emoji emoji-w'+n+" emoji-spritesheet-"+l+'" style="background-position: -'+d+"px -"+p+'px;"></i></a>'));a()})},EmojiTooltip.prototype.updateStickersContents=function(e){var t=[],n=[],a=this,r=function(){var t=a.cat?a.stickersetPositions[a.cat][0]:0;a.stickersScroller.scrollTo(t,e?0:200)};if(!e&&a.stickersetPositions.length)return void r();var i=function(e){var i,s,o,l,c,d;for(o=0,c=e.length;o<c;o++)if(i=e[o],i.docIDs.length){for(t.push('<div class="composer_stickerset_wrap clearfix">'),i.title&&t.push('<a class="composer_stickerset_title',i.id?"":" disabled",'" data-stickerset="',encodeEntities(i.short_name),'">',encodeEntities(i.title),"</a>"),i.id?n.push('<a class="composer_sticker_btn" data-sticker="'+i.docIDs[0]+'" data-category="'+o+'"></a>'):n.push('<a class="composer_emoji_tooltip_category active" data-category="0"><i class="composer_emoji_tooltip_category_recent"></i></a>'),l=0,d=i.docIDs.length;l<d;l++)s=i.docIDs[l],t.push('<a class="composer_sticker_btn" data-sticker="'+s+'"></a>');t.push("</div>")}a.stickersContentEl.html(t.join("")),a.stickersCategoriesEl.html(n.join("")),a.stickersScroller.reinit();var p=[];$(".composer_stickerset_wrap",a.stickersContentEl).each(function(e,t){var n=t.offsetHeight,a=t.offsetTop;p.push([a,n])}),a.stickersetPositions=p,r();var u=[];a.contentEl.find(".composer_sticker_btn").each(function(e,t){e<12?a.replaceStickerImage(t):u.push([t.offsetTop,t])}),a.stickersPreload=u,a.stickersCategoriesEl.find(".composer_sticker_btn").each(function(e,t){a.replaceStickerImage(t)})};this.getStickers(i)},EmojiTooltip.prototype.replaceStickerImage=function(e){e=$(e),this.getStickerImage(e,e.attr("data-sticker"))},EmojiTooltip.prototype.onStickersScroll=function(e,t){var n,a,r=e.clientHeight,i=e.scrollHeight,s=this.stickersetPositions.length,o=!1;if(t<20)o=0;else if(t>i-r-20)o=s-1;else for(a=0;a<s;a++)if(n=this.stickersetPositions[a],t>=n[0]&&t<n[0]+n[1]){o=a;break}var s=this.stickersPreload.length;if(s)for(a=0;a<s;a++)n=this.stickersPreload[a],n[0]>=t&&n[0]<=t+r&&(this.replaceStickerImage(n[1]),this.stickersPreload.splice(a,1),a--,s--);this.cat!==o&&o!==!1&&($(".active",this.categoriesEl).removeClass("active"),this.cat=o,this.activateStickerCategory())},EmojiTooltip.prototype.onStickersChanged=function(){this.tab&&this.updateStickersContents(!0)},EmojiTooltip.prototype.activateStickerCategory=function(){var e=this.categoriesEl[1],t=e.childNodes[this.cat];if(t){$(t).addClass("active");var n=t.offsetLeft,a=t.offsetWidth,r=e.clientWidth;$(e).stop(!0).animate({scrollLeft:n-(r-a)/2},200)}},EmojiTooltip.prototype.updatePosition=function(){var e=this.btnEl.offset();this.tooltipEl.css({top:e.top,left:e.left})},EmojiTooltip.prototype.show=function(){this.updatePosition(),this.tab?this.updateStickersContents(!0):this.updateEmojiContents(),this.tooltipEl.addClass("composer_emoji_tooltip_shown"),this.btnEl.addClass("composer_emoji_insert_btn_on"),delete this.showTimeout,this.shown=!0},EmojiTooltip.prototype.hide=function(){this.tooltipEl&&(this.tooltipEl.removeClass("composer_emoji_tooltip_shown"),this.btnEl.removeClass("composer_emoji_insert_btn_on")),delete this.hideTimeout,delete this.shown},EmojiPanel.prototype.update=function(){var e=[],t=this,n=Config.Mobile?26:20;EmojiHelper.getPopularEmoji(function(a){var r,i,s,o,l,c,d,p,u=a.length;for(c=0;c<u;c++)r=a[c].code,(i=Config.Emoji[r])&&(s=EmojiHelper.spritesheetPositions[r],l=s[0],o=s[1],d=n*s[3],p=n*s[2],e.push('<a class="composer_emoji_btn" title=":'+encodeEntities(i[1][0])+':" data-code="'+encodeEntities(r)+'"><i class="emoji emoji-w20 emoji-spritesheet-'+l+'" style="background-position: -'+d+"px -"+p+'px;"></i></a>'));t.containerEl.html(e.join(""))})},MessageComposer.autoCompleteRegEx=/(\s|^)(:|@|\/)([\S]*)$/,MessageComposer.prototype.setUpInput=function(){if(this.inlinePlaceholderWrap=$('<div class="im_inline_placeholder_wrap"></div>').prependTo(this.textareaEl[0].parentNode),this.inlinePlaceholderPrefixEl=$('<span class="im_inline_placeholder_prefix"></span>').appendTo(this.inlinePlaceholderWrap),this.inlinePlaceholderEl=$('<span class="im_inline_placeholder"></span>').appendTo(this.inlinePlaceholderWrap),"contentEditable"in document.body?this.setUpRich():this.setUpPlaintext(),!Config.Mobile){var e=getScrollWidth();e&&(this.richTextareaEl||this.textareaEl).css({left:-e,width:"calc(100% + "+2*e+"px)","padding-left":e+2,"padding-right":e+28})}},MessageComposer.prototype.setInlinePlaceholder=function(e,t){this.inlinePlaceholderPrefix=e,this.inlinePlaceholderPrefixEl.html(encodeEntities(e)),this.inlinePlaceholderEl.html(encodeEntities(t)),this.onChange()},MessageComposer.prototype.updateInlinePlaceholder=function(){var e=this.inlinePlaceholderPrefix;if(e){var t=this.textareaEl.val();this.inlinePlaceholderWrap.toggleClass("active",t==e)}},MessageComposer.prototype.setUpAutoComplete=function(){this.scroller=new Scroller(this.autoCompleteEl,{maxHeight:180});var e=this;this.autoCompleteEl.on("mousedown",function(t){t=t.originalEvent||t;for(var n,a,r,i,s=t.target;s&&"A"!=s.tagName;)s=s.parentNode;return s?(s=$(s),(a=s.attr("data-code"))&&(e.onEmojiSelected&&e.onEmojiSelected(a,!0),EmojiHelper.pushPopularEmoji(a)),n=t.altKey||!s.attr("data-username")?s.attr("data-user-id"):s.attr("data-username"),n&&e.onMentionSelected(n,s.attr("data-name")),(r=s.attr("data-command"))&&(e.onCommandSelected&&e.onCommandSelected(r),e.hideSuggestions()),(i=s.attr("data-inlineid"))&&(e.onInlineResultSend&&e.onInlineResultSend(i),e.hideSuggestions()),cancelEvent(t)):cancelEvent(t)})},MessageComposer.prototype.setUpRich=function(){this.textareaEl.hide(),this.richTextareaEl=$('<div class="composer_rich_textarea" contenteditable="true" dir="auto"></div>'),this.textareaEl[0].parentNode.insertBefore(this.richTextareaEl[0],this.textareaEl[0]),this.richTextareaEl.on("keyup keydown",this.onKeyEvent.bind(this)),this.richTextareaEl.on("focus blur",this.onFocusBlur.bind(this)),this.richTextareaEl.on("paste",this.onRichPaste.bind(this)),this.richTextareaEl.on("DOMNodeInserted",this.onRichPasteNode.bind(this)),$(document.body).on("keydown",this.backupSelection.bind(this))},MessageComposer.prototype.setUpPlaintext=function(){this.textareaEl.on("keyup keydown",this.onKeyEvent.bind(this)),this.textareaEl.on("focus blur",this.onFocusBlur.bind(this))},MessageComposer.prototype.onKeyEvent=function(e){var t=this;if("keyup"==e.type){this.checkAutocomplete();var n=!1;if(this.richTextareaEl){clearTimeout(this.updateValueTO);var a=tsNow();void 0===this.keyupStarted&&(this.keyupStarted=a),a-this.keyupStarted>3e3,this.onChange()}if(this.onTyping){var a=tsNow();a-this.lastTyping>5e3&&(n===!1&&(n=(this.richTextareaEl?this.richTextareaEl[0].textContent:this.textareaEl[0].value).length),n!=this.lastLength&&(this.lastTyping=a,this.lastLength=n,this.onTyping()))}}if("keydown"==e.type){var r=!this.autocompleteShown;if(this.autocompleteShown){if(38==e.keyCode||40==e.keyCode){var i,s=40==e.keyCode,o=$(this.autoCompleteEl).find("li.composer_autocomplete_option_active"),l=Array.prototype.slice.call($(this.autoCompleteEl).find("li"));if(o.length){var c=l.indexOf(o[0]),d=c+(s?1:-1);if(i=l[d],o.removeClass("composer_autocomplete_option_active"),i)return $(i).addClass("composer_autocomplete_option_active"),this.scroller.scrollToNode(i),cancelEvent(e)}return i=l[s?0:l.length-1],this.scroller.scrollToNode(i),$(i).addClass("composer_autocomplete_option_active"),cancelEvent(e)}if(13==e.keyCode||9==e.keyCode){var o=$(this.autoCompleteEl).find("li.composer_autocomplete_option_active");o.length||9!=e.keyCode||(o=$(this.autoCompleteEl).find("li:first")),o=o.find("a:first");var p,u,m,g;if(p=o.attr("data-code"))return this.onEmojiSelected(p,!0),EmojiHelper.pushPopularEmoji(p),cancelEvent(e);if(u=e.altKey||!o.attr("data-username")?o.attr("data-user-id"):o.attr("data-username"))return this.onMentionSelected(u,o.attr("data-name")),cancelEvent(e);if(m=o.attr("data-command"))return this.onCommandSelected&&this.onCommandSelected(m,9==e.keyCode),cancelEvent(e);if(g=o.attr("data-inlineid"))return t.onInlineResultSend&&t.onInlineResultSend(g),t.hideSuggestions(),cancelEvent(e);r=!0}}if(r&&13==e.keyCode){var h=!1,f=!0;if(this.getSendOnEnter&&!this.getSendOnEnter()&&(f=!1),f&&!e.shiftKey?h=!0:f||!e.ctrlKey&&!e.metaKey||(h=!0),h)return this.onMessageSubmit(e),cancelEvent(e)}if([33,34,35,36,38,39].indexOf(e.keyCode)!=-1&&!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&this.richTextareaEl&&!this.richTextareaEl[0].textContent.length)return this.onDirectionKey(e)}},MessageComposer.prototype.backupSelection=function(){if(delete this.selection,this.isActive)if(window.getSelection){var e=window.getSelection();e.getRangeAt&&e.rangeCount&&(this.selection=e.getRangeAt(0))}else document.selection&&document.selection.createRange&&(this.selection=document.selection.createRange())},MessageComposer.prototype.restoreSelection=function(){if(!this.selection)return!1;var e=!1;if(window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(this.selection),e=!0}else document.selection&&this.selection.select&&(this.selection.select(),e=!0);return delete this.selection,e},MessageComposer.prototype.checkAutocomplete=function(e){var t,n;if(this.richTextareaEl){var a=this.richTextareaEl[0],r=getRichValueWithCaret(a),n=r[0],t=r[1]>=0?r[1]:n.length;t||this.cleanRichTextarea(n,!0)}else var a=this.textareaEl[0],t=getFieldSelection(a),n=a.value;if(n&&this.curInlineResults&&this.curInlineResults.text==n)return void this.showInlineSuggestions(this.curInlineResults);e||(n=n.substr(0,t));var i=n.match(MessageComposer.autoCompleteRegEx);if(i){if(this.previousQuery==i[0])return;this.previousQuery=i[0];var s=SearchIndexManager.cleanSearchText(i[3]);if("@"==i[2])if(this.mentions&&this.mentions.index){if(s.length)for(var o,l=SearchIndexManager.search(s,this.mentions.index),c=[],d=0,p=this.mentions.users.length;d<p;d++)o=this.mentions.users[d],l[o.id]&&c.push(o);else var c=this.mentions.users;c.length?this.showMentionSuggestions(c):this.hideSuggestions()}else this.hideSuggestions();else if(i[1]||"/"!=i[2]){if(":"==i[2]){if(n.match(/^\s*:(.+):\s*$/))return;EmojiHelper.getPopularEmoji(function(e){if(s.length){var t=EmojiHelper.searchEmojis(s);if(t.length){for(var n,a,r=[],i=0,o=e.length;i<o&&(n=e[i].code,a=t.indexOf(n),!(a>=0)||(r.push(n),t.splice(a,1),t.length));i++);this.showEmojiSuggestions(r.concat(t))}else this.hideSuggestions()}else this.showEmojiSuggestions(e)}.bind(this))}}else if(this.commands&&this.commands.index){if(s.length)for(var u,l=SearchIndexManager.search(s,this.commands.index),m=[],d=0,p=this.commands.list.length;d<p;d++)u=this.commands.list[d],l[u.value]&&m.push(u);else var m=this.commands.list;m.length?this.showCommandsSuggestions(m):this.hideSuggestions()}else this.hideSuggestions()}else delete this.previousQuery,this.hideSuggestions()},MessageComposer.prototype.onFocusBlur=function(e){this.isActive="focus"==e.type,this.isActive?setTimeout(this.checkAutocomplete.bind(this),100):(this.cleanRichTextarea(),this.hideSuggestions()),this.richTextareaEl&&document.execCommand("enableObjectResizing",!this.isActive,!this.isActive)},MessageComposer.prototype.onRichPaste=function(e){var t,n=(e.originalEvent||e).clipboardData,a=n&&n.items||[];for(t=0;t<a.length;t++)if("file"==a[t].kind)return e.preventDefault(),!0;try{var r=n.getData("text/plain")}catch(e){return!0}return setZeroTimeout(this.onChange.bind(this),0),!r.length||(document.execCommand("insertText",!1,r),cancelEvent(e))},MessageComposer.prototype.cleanRichTextarea=function(e,t){if(this.richTextareaEl[0]&&(void 0===e&&(e=getRichValue(this.richTextareaEl[0])),e.match(/^\s*$/)&&this.richTextareaEl.html().length>0&&(this.richTextareaEl.html(""),this.lastLength=0,this.wasEmpty=!0,t))){var n=this;setZeroTimeout(function(){n.focus()})}},MessageComposer.prototype.onRichPasteNode=function(e){var t=(e.originalEvent||e).target,n=(t||{}).src||"",a=!1;if("data:"==n.substr(0,5)){a=!0;var r=dataUrlToBlob(n);this.onFilePaste(r),setZeroTimeout(function(){t.parentNode.replaceChild(document.createTextNode("   "),t)})}else if(n&&!n.match(/img\/blank\.gif/)){var i=document.createTextNode(" "+n+" ");setTimeout(function(){t.parentNode.replaceChild(i,t)},100)}},MessageComposer.prototype.onEmojiSelected=function(e,t){
if(this.richTextareaEl){var n=this.richTextareaEl[0];if(this.isActive||this.restoreSelection()||setRichFocus(n),t){var a,r=getRichValueWithCaret(n),i=r[0],s=r[1]>=0?r[1]:i.length,o=i.substr(s),l=i.substr(0,s),c=l.match(/:([\S]*)$/),d=EmojiHelper.emojis[e];a=c&&c[0]?l.substr(0,c.index)+":"+d[1]+":":l+":"+d[1]+":",n.value=f;var p;o.length?(this.selId=(this.selId||0)+1,p=this.getRichHtml(a)+'&nbsp;<span id="composer_sel'+this.selId+'"></span>'+this.getRichHtml(o),this.richTextareaEl.html(p),setRichFocus(n,$("#composer_sel"+this.selId)[0])):(p=this.getRichHtml(a)+"&nbsp;",this.richTextareaEl.html(p),setRichFocus(n))}else{var p=this.getEmojiHtml(e);if(window.getSelection){var u=window.getSelection();if(u.getRangeAt&&u.rangeCount){var m=document.createElement("div");m.innerHTML=p;var g=m.firstChild,h=u.getRangeAt(0);h.deleteContents(),h.insertNode(document.createTextNode(" ")),h.insertNode(g),h.setStart(g,0),setTimeout(function(){h=document.createRange(),h.setStartAfter(g),h.collapse(!0),u.removeAllRanges(),u.addRange(h)},0)}}else document.selection&&"Control"!=document.selection.type&&document.selection.createRange().pasteHTML(p)}}else{var n=this.textareaEl[0],i=n.value,s=this.isActive?getFieldSelection(n):i.length,o=i.substr(s),l=i.substr(0,s),c=t&&l.match(/:([\S]*)$/),d=EmojiHelper.emojis[e];if(c&&c[0])var f=l.substr(0,c.index)+":"+d[1]+": "+o,_=c.index+d[1].length+3;else var f=l+":"+d[1]+": "+o,_=l.length+d[1].length+3;n.value=f,setFieldSelection(n,_)}this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onMentionsUpdated=function(e){delete this.previousQuery,this.isActive&&this.checkAutocomplete()},MessageComposer.prototype.onMentionSelected=function(e,t){var n=!0;if("#"==e.charAt(0)&&(n=!1,e=e.substr(1),t=t.replace(/\(\)@/,"")),this.richTextareaEl){var a=this.richTextareaEl[0];this.isActive||this.restoreSelection()||setRichFocus(a);var r,i=getRichValueWithCaret(a),s=i[0],o=i[1]>=0?i[1]:s.length,l=s.substr(o),c=s.substr(0,o),d=c.match(/@([\S]*)$/);r=d&&d[0]?c.substr(0,d.index)+"@"+e:c+"@"+e;var p;n?l.length?(this.selId=(this.selId||0)+1,p=this.getRichHtml(r)+'&nbsp;<span id="composer_sel'+this.selId+'"></span>'+this.getRichHtml(l),this.richTextareaEl.html(p),setRichFocus(a,$("#composer_sel"+this.selId)[0])):(p=this.getRichHtml(r)+"&nbsp;",this.richTextareaEl.html(p),setRichFocus(a)):(this.selId=(this.selId||0)+1,p=this.getRichHtml(r)+'&nbsp;(<span id="composer_sel'+this.selId+'">'+encodeEntities(t)+"</span>)&nbsp;"+this.getRichHtml(l),this.richTextareaEl.html(p),setRichFocus(a,$("#composer_sel"+this.selId)[0],!0))}else{var r,u,m,g,a=this.textareaEl[0],s=a.value,o=this.isActive?getFieldSelection(a):s.length,l=s.substr(o),c=s.substr(0,o),d=c.match(/@([\S]*)$/);r=d&&d[0]?c.substr(0,d.index)+"@"+e:c+"@"+e,n?(u=r+"@"+e+" "+l,m=d.index+e.length+2):(u=r+"@"+e+" ("+t+") "+l,m=d.index+e.length+2,g=m+t.length),a.value=u,setFieldSelection(a,m,g)}this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onCommandSelected=function(e,t){if(t)if(this.richTextareaEl)this.richTextareaEl.html(encodeEntities(e)+"&nbsp;"),setRichFocus(this.richTextareaEl[0]);else{var n=this.textareaEl[0];n.value=e+" ",setFieldSelection(n)}else this.onCommandSend(e);this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onChange=function(e){if(this.richTextareaEl){delete this.keyupStarted;var t=getRichValue(this.richTextareaEl[0]);this.textareaEl.val(t).trigger("change")}this.updateInlinePlaceholder()},MessageComposer.prototype.getEmojiHtml=function(e,t){t=t||EmojiHelper.emojis[e];var n=20,a=EmojiHelper.spritesheetPositions[e],r=a[0],i=(a[1],n*a[3]),s=n*a[2];return'<img src="img/blank.gif" alt=":'+encodeEntities(t[1])+':" data-code="'+encodeEntities(e)+'" class="emoji emoji-w20 emoji-spritesheet-'+r+'" style="background-position: -'+i+"px -"+s+'px;" onresizestart="return false" />'},MessageComposer.prototype.setValue=function(e){this.richTextareaEl?(this.richTextareaEl.html(this.getRichHtml(e)),this.lastLength=e.length,this.wasEmpty=!e.length,this.onKeyEvent({type:"keyup"})):this.textareaEl.val(e)},MessageComposer.prototype.setFocusedValue=function(e){var t=e[0],n=e[1],a=e[2];if(this.richTextareaEl){this.selId=(this.selId||0)+1;var r=this.getRichHtml(t)+'<span id="composer_sel'+this.selId+'">'+this.getRichHtml(n)+"</span>"+this.getRichHtml(a);this.richTextareaEl.html(r),setRichFocus(this.richTextareaEl[0],$("#composer_sel"+this.selId)[0],!0)}else this.textareaEl.val(t+n+a),setFieldSelection(this.textareaEl[0],t.length,t.length+n.length)},MessageComposer.prototype.getRichHtml=function(e){var t=$("<div>").text(e).html();return t=t.replace(/\n/g,"<br/>"),t=t.replace(/:([A-Za-z0-9\-\+\*_]+?):/gi,function(e,t){var n=EmojiHelper.shortcuts[t];return void 0!==n?this.getEmojiHtml(n):e}.bind(this)),t=t.replace(/ /g,"  ").replace(/^ | $/g," ")},MessageComposer.prototype.focus=function(){this.richTextareaEl?setZeroTimeout(function(){setRichFocus(this.richTextareaEl[0])}.bind(this)):setFieldSelection(this.textareaEl[0])},MessageComposer.prototype.blur=function(){this.richTextareaEl?this.richTextareaEl[0].blur():this.textareaEl[0].blur()},MessageComposer.prototype.renderSuggestions=function(){this.autoCompleteWrapEl.show(),this.scroller.reinit(),this.updatePosition(),this.autocompleteShown=!0},MessageComposer.prototype.showEmojiSuggestions=function(e){var t=++this.renderToggleCnt,n=this;setZeroTimeout(function(){n.autoCompleteScope.$apply(function(){n.autoCompleteScope.type="emoji",n.autoCompleteScope.emojiCodes=e}),onContentLoaded(function(){t==n.renderToggleCnt&&n.renderSuggestions()})})},MessageComposer.prototype.showMentionSuggestions=function(e){var t=++this.renderToggleCnt,n=this;setZeroTimeout(function(){n.autoCompleteScope.$apply(function(){n.autoCompleteScope.type="mentions",n.autoCompleteScope.mentionUsers=e}),onContentLoaded(function(){t==n.renderToggleCnt&&n.renderSuggestions()})})},MessageComposer.prototype.showCommandsSuggestions=function(e){var t=++this.renderToggleCnt,n=this;setZeroTimeout(function(){n.autoCompleteScope.$apply(function(){n.autoCompleteScope.type="commands",n.autoCompleteScope.commands=e}),onContentLoaded(function(){t==n.renderToggleCnt&&n.renderSuggestions()})})},MessageComposer.prototype.showInlineSuggestions=function(e){if(!e||!e.results.length)return void this.hideSuggestions();var t=++this.renderToggleCnt,n=this;"inline"==n.autoCompleteScope.type&&n.autoCompleteScope.botResults==e&&n.autocompleteShown||setZeroTimeout(function(){n.autoCompleteScope.$apply(function(){n.autoCompleteScope.type="inline",n.autoCompleteScope.botResults=e}),onContentLoaded(function(){t==n.renderToggleCnt&&n.renderSuggestions()})})},MessageComposer.prototype.setInlineSuggestions=function(e){this.curInlineResults=e,this.checkAutocomplete()},MessageComposer.prototype.updatePosition=function(){var e=(this.richTextareaEl||this.textareaEl).offset(),t=this.scroller.updateHeight(),n=$((this.richTextareaEl||this.textareaEl)[0].parentNode).outerWidth();this.autoCompleteWrapEl.css({top:e.top-t,left:Config.Mobile?0:e.left,width:Config.Mobile?"100%":n-2}),this.scroller.update()},MessageComposer.prototype.hideSuggestions=function(){++this.renderToggleCnt;this.autoCompleteWrapEl.hide(),delete this.autocompleteShown},MessageComposer.prototype.resetTyping=function(){this.lastTyping=0,this.lastLength=0},MessageComposer.prototype.setPlaceholder=function(e){(this.richTextareaEl||this.textareaEl).attr("placeholder",e)},Scroller.prototype.setUpNano=function(){this.content.wrap('<div class="scroller_scrollable_container"><div class="scroller_scrollable_wrap nano"><div class="scroller_scrollable nano-content "></div></div></div>'),this.scrollable=$(this.content[0].parentNode),this.scroller=$(this.scrollable[0].parentNode),this.wrap=$(this.scroller[0].parentNode),this.scroller.nanoScroller({preventPageScrolling:!0,tabIndex:-1})},Scroller.prototype.setUpNative=function(){this.content.wrap('<div class="scroller_native_scrollable"></div>'),this.scrollable=$(this.content[0].parentNode),this.scrollable.css({overflow:"auto"}),this.maxHeight&&this.scrollable.css({maxHeight:this.maxHeight}),this.minHeight&&this.scrollable.css({minHeight:this.minHeight})},Scroller.prototype.onScroll=function(e){var t=this,n=this.scrollable[0];this.scrollable.on("scroll",function(a){t.isAnimatedScroll||e(n,n.scrollTop)})},Scroller.prototype.update=function(){this.useNano&&$(this.scroller).nanoScroller()},Scroller.prototype.reinit=function(){this.scrollTo(0),this.useNano&&setTimeout(function(){this.updateHeight()}.bind(this),100)},Scroller.prototype.updateHeight=function(){var e;return this.useNano?(this.maxHeight||this.minHeight?(e=this.content[0].offsetHeight,this.maxHeight&&e>this.maxHeight&&(e=this.maxHeight),this.minHeight&&e<this.minHeight&&(e=this.minHeight),this.wrap.css({height:e})):e=this.scroller[0].offsetHeight,$(this.scroller).nanoScroller()):e=this.scrollable[0].offsetHeight,e},Scroller.prototype.scrollTo=function(e,t,n){if(t>0){var a=this;this.isAnimatedScroll=!0,this.scrollable.animate({scrollTop:e},t,function(){delete a.isAnimatedScroll,a.useNano&&$(a.scroller).nanoScroller({flash:!0}),a.scrollable.trigger("scroll"),n&&n()})}else this.scrollable[0].scrollTop=e,this.useNano&&$(this.scroller).nanoScroller({flash:!0}),n&&n()},Scroller.prototype.scrollToNode=function(e){e=e[0]||e;var t=e.offsetTop-15,n=e.offsetHeight+30,a=this.scrollable[0].scrollTop,r=this.scrollable[0].clientHeight;a>t?this.scrollTo(t):a<t+n-r&&this.scrollTo(t+n-r)},angular.module("myApp.directives",["myApp.filters"]).constant("shouldFocusOnInteraction",!Config.Navigator.mobile).directive("myHead",function(){return{restrict:"AE",templateUrl:templateUrl("head")}}).directive("myLangFooter",function(){return{restrict:"AE",templateUrl:templateUrl("lang_footer")}}).directive("myFooter",function(){return{restrict:"AE",templateUrl:templateUrl("footer")}}).directive("myDialog",function(){return{restrict:"AE",templateUrl:templateUrl("dialog")}}).directive("myMessage",["$filter","_",function(e,t){function n(e,t,n){var p,u,m=!1,g=!1,h=!1,f=!1,_=!1,y=!1,v=!1,b=function(){m!=(e.selectedMsgs[e.historyMessage.mid]||!1)&&(m=!m,t.toggleClass(s,m))},w=function(){g!=e.historyMessage.grouped&&(g&&t.removeClass(g),g=e.historyMessage.grouped,g&&t.addClass(g)),y!=(e.historyMessage.needDate||!1)&&(y=!y,y?p?p.show():(p=$(r),$(".im_message_date_split_text",p).text(a(e.historyMessage.date)),u?p.insertBefore(u):p.prependTo(t)):p.hide())};b(),w(),e.$on("messages_select",b),e.$on("messages_regroup",w),e.$on("messages_focus",function(n,a){a==e.historyMessage.mid!=h&&(h=!h,t.toggleClass(o,h))});var k;if(!e.historyMessage.pFlags.out&&(e.historyMessage.pFlags.unread||e.historyMessage.unreadAfter)){var C=function(){e.peerHistory.peerID==e.historyPeer.id&&v!=(e.historyUnreadAfter==e.historyMessage.mid)&&(v=!v,v?u?u.show():u=$(i).prependTo(t):(u.hide(),k&&k()))};C(),k=e.$on("messages_unread_after",C)}if(e.historyMessage.pFlags.unread&&e.historyMessage.pFlags.out){t.addClass(l);var S=e.$on("messages_read",function(){e.historyMessage.pFlags.unread||(t.removeClass(l),S(),k&&!v&&k())})}if(e.historyMessage.error||e.historyMessage.pending){var M=function(){_!=(e.historyMessage.pending||!1)&&(_=!_,t.toggleClass(d,_)),f!=(e.historyMessage.error||!1)&&(f=!f,t.toggleClass(c,f)),f||_||x()},x=e.$on("messages_pending",M);M()}}var a=e("myDate"),r='<div class="im_message_date_split im_service_message_wrap"><div class="im_service_message"><span class="copyonly"><br/>---&nbsp;</span><span class="im_message_date_split_text"></span><span class="copyonly">&nbsp;---</span></div></div>',i='<div class="im_message_unread_split">'+t("unread_messages_split")+"</div>",s="im_message_selected",o="im_message_focus",l="im_message_unread",c="im_message_error",d="im_message_pending";return{templateUrl:templateUrl("message"),link:n}}]).directive("myMessageBody",["$compile","AppPeersManager","AppChatsManager","AppUsersManager","AppMessagesManager","AppInlineBotsManager","RichTextProcessor",function(e,t,n,a,r,i,s){function o(e,t,n){if(n.media&&n.media.handleMessage||"string"!=typeof n.message||!n.message.length)return void $(".im_message_text",t).hide();var a=r.wrapMessageText(n.mid);$(".im_message_text",t).html(a.valueOf())}function l(e,t,n){if(!n.media)return void $(".im_message_media",t).hide();var a=e.$new(!0);a.media=n.media,a.messageId=n.mid,m(a,function(e){$(".im_message_media",t).replaceWith(e)})}function c(e,t,n){if(!n.signID)return void $(".im_message_sign",t).hide();var a=e.$new(!0);a.signID=n.signID,h(a,function(e){$(".im_message_sign",t).replaceWith(e)})}function d(e,t,n){if(!n.reply_markup||"replyInlineMarkup"!=n.reply_markup._)return void $(".im_message_keyboard",t).hide();var a=e.$new(!0);a.markup=r.wrapReplyMarkup(n.reply_markup,n.fromID),a.messageId=n.mid,g(a,function(e){$(".im_message_keyboard",t).replaceWith(e)}),a.$on("reply_inline_button_press",function(e,t){switch(t._){case"keyboardButtonSwitchInline":i.switchInlineButtonClick(n.mid,t);break;case"keyboardButtonCallback":i.callbackButtonClick(n.mid,t);break;case"keyboardButtonGame":i.gameButtonClick(n.mid)}})}function p(e,t,n){o(e,t,n),l(e,t,n),c(e,t,n),d(e,t,n)}function u(e,t,n){var a=e.message;a.dir=!0;var r=a.mid;if(p(e,t,a),a.pending)var i=e.$on("messages_pending",function(){a.mid!=r&&(p(e,t,a),i())});e.$on("message_edit",function(n,r){r.mid==a.mid&&(r.justMedia?l(e,t,a):p(e,t,a))})}var m=e('<div class="im_message_media" my-message-media="media" message-id="messageId"></div>'),g=e('<div class="im_message_keyboard" my-inline-reply-markup="markup"></div>'),h=e('<div class="im_message_sign"><span class="im_message_sign_link" my-peer-link="signID"></span></div>');return{link:u,scope:{message:"=myMessageBody"}}}]).directive("myMessageViews",["$filter","AppMessagesManager",function(e,t){function n(e,t){t.html(r(e))}function a(e,a,r){var i=e.$eval(r.myMessageViews),s=t.getMessage(i).views||0;n(s,a),e.$on("message_views",function(e,t){t.mid==i&&n(t.views,a)})}var r=e("formatShortNumber");return{link:a}}]).directive("myReplyMarkup",function(){function e(e,t,n){var a=$(".reply_markup",t),r=new Scroller(a,{classPrefix:"reply_markup",maxHeight:170});e.buttonClick=function(t){e.$emit("reply_button_press",t)},e.$on("ui_keyboard_update",function(t,n){onContentLoaded(function(){r.updateHeight(),r.scrollTo(0),e.$emit("ui_panel_update",{blur:n&&n.enabled})})}),onContentLoaded(function(){r.updateHeight(),e.$emit("ui_panel_update")})}return{templateUrl:templateUrl("reply_markup"),scope:{replyMarkup:"=myReplyMarkup"},link:e}}).directive("myMessageMedia",function(){return{scope:{media:"=myMessageMedia",messageId:"=messageId"},templateUrl:templateUrl("message_media")}}).directive("myMessagePhoto",["AppPhotosManager",function(e){return{scope:{media:"=myMessagePhoto",messageId:"=messageId"},templateUrl:templateUrl("message_attach_photo"),link:function(t,n,a){t.openPhoto=e.openPhoto,t.preloadPhoto=e.preloadPhoto}}}]).directive("myMessageDocument",["AppDocsManager",function(e){return{scope:{media:"=myMessageDocument",messageId:"=messageId"},templateUrl:templateUrl("message_attach_document"),link:function(t,n,a){if(e.updateDocDownloaded(t.media.document.id),t.docSave=function(){e.saveDocFile(t.media.document.id)},t.docOpen=function(){return t.media.document.withPreview?void e.openDoc(t.media.document.id,t.messageId):t.docSave()},t.videoOpen=function(){e.openVideo(t.media.document.id,t.messageId)},t.media.document.file_name){var r=t.media.document.file_name.split(".");r.length>1?(t.media_file_ext="."+r.pop(),t.media_file_name_without_ext=r.join("."),t.media_file_name_without_ext||(t.media_file_name_without_ext=t.media_file_ext,t.media_file_ext="")):(t.media_file_ext="",t.media_file_name_without_ext=r[0])}}}}]).directive("myMessageGeo",function(){return{scope:{media:"=myMessageGeo"},templateUrl:templateUrl("message_attach_geo")}}).directive("myMessageVenue",function(){return{scope:{media:"=myMessageVenue"},templateUrl:templateUrl("message_attach_venue")}}).directive("myMessageContact",function(){return{scope:{media:"=myMessageContact"},templateUrl:templateUrl("message_attach_contact")}}).directive("myMessageWebpage",["AppWebPagesManager","AppPhotosManager",function(e,t){return{scope:{media:"=myMessageWebpage",messageId:"=messageId"},templateUrl:templateUrl("message_attach_webpage"),link:function(n){n.openPhoto=t.openPhoto,n.openEmbed=function(t){if(n.media.webpage&&n.media.webpage.embed_url)return e.openEmbed(n.media.webpage.id,n.messageId),cancelEvent(t)},n.$on("webpage_updated",function(e,t){n.media.webpage&&n.media.webpage.id==t.id&&n.$emit("ui_height")})}}}]).directive("myMessageGame",["AppInlineBotsManager","AppMessagesManager",function(e,t){return{scope:{media:"=myMessageGame",messageId:"=messageId"},templateUrl:templateUrl("message_attach_game"),link:function(n,a){function r(e){var r=t.getMessage(n.messageId);if(r.message){var i=t.wrapMessageText(n.messageId);$(".im_message_game_message",a).html(i.valueOf()).show(),$(".im_message_game_description",a).hide()}else $(".im_message_game_message",a).html("").hide(),$(".im_message_game_description",a).show()}n.openGame=function(){e.gameButtonClick(n.messageId)},n.$on("message_edit",function(e,t){t.mid==n.messageId&&r()}),r()}}}]).directive("myMessagePending",function(){function e(e,t,n){if(e.media.file_name){var a=e.media.file_name.split(".");a.length>1?(e.media_file_ext="."+a.pop(),e.media_file_name_without_ext=a.join("."),e.media_file_name_without_ext||(e.media_file_name_without_ext=e.media_file_ext,e.media_file_ext="")):(e.media_file_ext="",e.media_file_name_without_ext=a[0])}}return{scope:{media:"=myMessagePending"},templateUrl:templateUrl("message_attach_pending"),link:e}}).directive("myInlineReplyMarkup",function(){function e(e,t,n){e.buttonClick=function(t){e.$emit("reply_inline_button_press",t)}}return{templateUrl:templateUrl("reply_markup"),scope:{replyMarkup:"=myInlineReplyMarkup"},link:e}}).directive("myServiceMessage",["ErrorService","AppMessagesManager",function(e,t){function n(n,a,r){n.phoneCallClick=function(n){var a=t.getMessage(n),r=t.getMessagePeer(a);e.show({error:{type:"PHONECALLS_NOT_SUPPORTED",userID:r}})}}return{templateUrl:templateUrl("message_service"),scope:{historyMessage:"=myServiceMessage"},link:n}}]).directive("myShortMessage",function(){return{scope:{message:"=myShortMessage"},templateUrl:templateUrl("short_message")}}).directive("myReplyMessage",["AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n){function a(e,t,n){if(n.watch)e.$parent.$watch(n.myReplyMessage,function(a){var i=e.$parent.$eval(n.edit);r(e,t,a,i)});else{var a=e.$parent.$eval(n.myReplyMessage),i=e.$parent.$eval(n.edit);r(e,t,a,i)}}function r(t,n,a,r){var s=t.replyMessage=e.wrapSingleMessage(a);if(t.isEdit=r||!1,s.loading)var o=t.$on("messages_downloaded",function(r,s){s.indexOf(a)!=-1&&(t.replyMessage=e.wrapForDialog(a),i(t,n),o())});else i(t,n)}function i(a,r){var i=a.replyMessage;return i&&!i.deleted&&i.to_id?(a.thumb=e.getMessageThumb(i,42,42),"A"==r[0].tagName&&r.on("click",function(){var a=e.getMessagePeer(i),r=t.getPeerString(a);n.$broadcast("history_focus",{peerString:r,messageID:i.mid})}),void onContentLoaded(function(){a.$emit("ui_height")})):void $(r).remove()}return{templateUrl:templateUrl("reply_message"),scope:{},link:a}}]).directive("myPinnedMessage",["AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n){function a(t,n,a){var i=t.$parent.$eval(a.myPinnedMessage),s=t.pinnedMessage=e.wrapSingleMessage(i);if(s.loading)var o=t.$on("messages_downloaded",function(a,s){s.indexOf(i)!=-1&&(t.pinnedMessage=e.wrapForDialog(i),r(t,n),o())});else r(t,n)}function r(a,r){var i=a.pinnedMessage;return i&&!i.deleted&&i.to_id?("A"==r[0].tagName&&r.on("click",function(){var a=e.getMessagePeer(i),r=t.getPeerString(a);n.$broadcast("history_focus",{peerString:r,messageID:i.mid})}),void onContentLoaded(function(){a.$emit("ui_height")})):void $(r).remove()}return{templateUrl:templateUrl("pinned_message"),scope:{},link:a}}]).directive("myForwardedMessages",["AppPhotosManager","AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n,a){function r(e,t,n){n.watch?e.$watch("forwardMessages",function(){i(e,t)}):i(e,t)}function i(e,n){var a=e.forwardMessages,r=a.length,i=!1,s=1==r;e.thumb=!1,e.singleMessage=!1,angular.forEach(a,function(n){var a=t.getMessage(n);i===!1?i=a.fromID:i!==a.fromID&&(i=t.getMessagePeer(a)),s&&(e.thumb=t.getMessageThumb(a,42,42),e.singleMessage=t.wrapForDialog(n))}),e.fromID=i,e.count=r,onContentLoaded(function(){e.$emit("ui_height")})}return{templateUrl:templateUrl("forwarded_messages"),scope:{forwardMessages:"=myForwardedMessages"},link:r}}]).directive("myMessageEdited",["_","$timeout","AppMessagesManager",function(e,t,n){function a(e,t,n){var a=e.$parent.$eval(n.myMessageEdited);r(e,t,a)&&e.$on("message_edit",function(a,i){var s=e.$parent.$eval(n.myMessageEdited);i.mid==s&&r(e,t,s)})}function r(e,a,r){var s=n.getMessage(r);return s.canBeEdited?!s.edit_date||(a.html(i).show(),t(function(){e.$destroy()}),!1):(t(function(){e.$destroy(),a.remove()}),!1)}var i=e("message_edited");return{scope:{},link:a}}]).directive("myDialogs",["$modalStack","$transition","$window","$timeout",function(e,t,n,a){function r(t,r,i){function s(n){if(!u&&e.getTop())return!0;var a,r,i;if(36==n.keyCode&&!n.shiftKey&&!n.ctrlKey&&n.altKey)return a=$(l).find(".im_dialog_wrap a"),a.length&&($(a[0]).trigger("mousedown"),l.scrollTop=0,$(o).nanoScroller({flash:!0})),cancelEvent(n);if(27==n.keyCode||9==n.keyCode&&n.shiftKey&&!n.ctrlKey&&!n.metaKey)return u?c.value?$(p).trigger("click"):(t.$emit("esc_no_more"),setTimeout(function(){c.blur(),setTimeout(function(){c.focus()},0)},100)):(setFieldSelection(c),c.value&&c.select()),cancelEvent(n);if(u&&13==n.keyCode&&!Config.Navigator.mobile)return a=$(l).find(".im_dialog_selected")[0]||$(l).find(".im_dialog_wrap a")[0],a&&!$(a).hasClass("disabled")&&$(a).trigger("mousedown"),cancelEvent(n);if(!Config.Navigator.osX&&n.altKey&&n.shiftKey&&!n.ctrlKey&&!n.metaKey&&n.keyCode>=49&&n.keyCode<=57||Config.Navigator.osX&&n.ctrlKey&&n.shiftKey&&!n.metaKey&&!n.altKey&&n.keyCode>=49&&n.keyCode<=57){var s=n.keyCode-49;return i=$(l).find(".im_dialog_wrap"),r=i[s],r&&($(r).find("a").trigger("mousedown"),scrollToNode(l,r,o)),cancelEvent(n)}var d,m,g,h=Config.Modes.packed;if(40==n.keyCode||38==n.keyCode?(d=40==n.keyCode,m=!d,g=!n.shiftKey&&n.altKey):h&&9==n.keyCode&&n.ctrlKey&&!n.metaKey&&(d=!n.shiftKey,m=!d,g=!0),d||m){if(!g&&(!u||n.metaKey))return!0;a=!g&&$(l).find(".im_dialog_selected")[0]||$(l).find(".active a.im_dialog")[0];var f=a&&a.parentNode;if(f){if(r=a[d?"nextSibling":"previousSibling"],!r||!r.className||r.className.indexOf("im_dialog_wrap")==-1){i=$(l).find(".im_dialog_wrap");var _=i.index(a.parentNode),y=_+(d?1:-1);r=i[y]}}else i=$(l).find(".im_dialog_wrap"),r=d?i[0]:i[i.length-1];return g?r&&$(r).find("a").trigger("mousedown"):(f&&r&&$(f).find("a").removeClass("im_dialog_selected"),r&&$(r).find("a").addClass("im_dialog_selected")),r&&scrollToNode(l,r,o),cancelEvent(n)}}var o=$(".im_dialogs_wrap",r)[0],l=$(".im_dialogs_scrollable_wrap",r)[0],c=$(".im_dialogs_search_field",r)[0],d=$(".im_dialogs_panel",r)[0],p=$(".im_dialogs_search_clear",r)[0],u=!1;$(c).on("focus blur",function(e){u="focus"==e.type,u||($(l).find(".im_dialog_selected").removeClass("im_dialog_selected"),c.value||t.$emit("ui_dialogs_search_clear"))}),t.$on("dialogs_search_toggle",function(){$(d).addClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search"),$(n).scrollTop(0),a(function(){setFieldSelection(c)})}),t.$on("search_clear",function(){$(d).removeClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search")}),$(document).on("keydown",s),t.$on("$destroy",function(){$(document).off("keydown",s)}),t.$on("ui_dialogs_change",function(){onContentLoaded(function(){var e=$(l).find(".active a.im_dialog")[0];e&&scrollToNode(l,e.parentNode,o)})})}return{link:r}}]).directive("myDialogsList",["$window","$timeout",function(e,t){function n(n,a,r){function i(){if(p&&p.offsetHeight||(p=$(d)[0]),r.modal){var t=$(e).height()-(p?p.offsetHeight:49)-(Config.Mobile?46:100);return t=Math.min(Config.Mobile?350:450,t),$(a).css({height:t}),void g()}c&&c.offsetHeight||(c=$(".tg_page_head")[0]),u&&u.offsetHeight||(u=$(".footer_wrap")[0]),o&&o.offsetHeight||(o=$(".im_dialogs_col_wrap")[0]);var n=u?u.offsetHeight:0;n&&n++,$(a).css({height:$(e).height()-n-(c?c.offsetHeight:48)-(p?p.offsetHeight:58)-parseInt($(o).css("paddingBottom")||0)}),g()}var s=$(".im_dialogs_wrap",a)[0],o=$(".im_dialogs_col_wrap")[0],l=$(".im_dialogs_scrollable_wrap",a)[0],c=$(".tg_page_head")[0],d=Config.Mobile&&r.modal?".mobile_modal_body .im_dialogs_panel":".im_dialogs_panel",p=$(d)[0],u=$(".footer_wrap")[0],m=!1;onContentLoaded(function(){$(s).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0})});var g=function(){onContentLoaded(function(){$(s).nanoScroller()})};n.$on("ui_dialogs_prepend",g),n.$on("ui_dialogs_search",i),n.$on("ui_dialogs_update",i),n.$on("ui_dialogs_append",function(){onContentLoaded(function(){g(),m=!1,t(function(){$(l).trigger("scroll")})})}),n.$on("ui_dialogs_change",function(){onContentLoaded(function(){g(),m=!1,t(function(){$(l).trigger("scroll")})})}),$(l).on("scroll",function(e){a.is(":visible")&&!m&&l.scrollTop>=l.scrollHeight-l.clientHeight-300&&(n.$emit("dialogs_need_more"),m=!0)}),$(e).on("resize",i),i(),setTimeout(i,1e3)}return{link:n}}]).directive("myContactsList",["$window","$timeout",function(e,t){function n(t,n,a){function r(){$(n).css({height:$(e).height()-(s&&s.offsetHeight||0)-(i&&i.offsetHeight||0)-(Config.Mobile?64:200)}),$(o).nanoScroller()}var i=$(".contacts_modal_search")[0],s=$(".contacts_modal_panel")[0],o=$(".contacts_wrap",n)[0];onContentLoaded(function(){$(o).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),r()}),$(e).on("resize",r),t.$on("contacts_change",function(){onContentLoaded(r)})}return{link:n}}]).directive("myCountriesList",["$window","$timeout",function(e,t){function n(t,n,a){function r(){$(n).css({height:$(e).height()-(s&&s.offsetHeight||0)-(i&&i.offsetHeight||0)-(Config.Mobile?64:200)}),$(o).nanoScroller()}var i=$(".countries_modal_search")[0],s=$(".countries_modal_panel")[0],o=$(".countries_wrap",n)[0];onContentLoaded(function(){$(o).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),r()}),$(e).on("resize",r),t.$on("contacts_change",function(){onContentLoaded(r)})}return{link:n}}]).directive("mySessionsList",["$window","$timeout",function(e,t){function n(t,n,a){function r(){$(n).css({height:Math.min(760,$(e).height()-(Config.Mobile?64:200))}),$(i).nanoScroller()}var i=$(".sessions_wrap",n)[0];onContentLoaded(function(){$(i).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),r()}),$(e).on("resize",r)}return{link:n}}]).directive("myStickersList",["$window","$timeout",function(e,t){function n(t,n,a){function r(){$(n).css({height:Math.min(600,$(e).height()-(Config.Mobile?64:200))}),$(i).nanoScroller()}var i=$(".stickerset_wrap",n)[0];onContentLoaded(function(){$(i).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),r()}),$(e).on("resize",r)}return{link:n}}]).directive("myHistory",["$window","$timeout","$rootScope","$transition",function(e,t,n,a){function r(r,i,s){function o(e,n){var a,r,i,s=!1;if(!e&&(r=$(".im_message_focus:visible",u)[0])){var o=u.clientHeight,l=u.scrollTop,c=r.offsetTop,d=r.clientHeight;(!l||l+o<c||l>c+d||n)&&(s=Math.max(0,c-Math.floor(o/2)+26)),A=!1,i=function(){var e=$(r).data("unfocus_promise");e&&(t.cancel(e),$(r).removeClass("im_message_focus_active")),t(function(){$(r).addClass("im_message_focus_active"),e=t(function(){$(r).removeClass("im_message_focus_active"),$(r).data("unfocus_promise",!1)},2800),$(r).data("unfocus_promise",e)})}}else(a=$(".im_message_unread_split:visible",u)[0])?(s=Math.max(0,a.offsetTop-52),A=!1):(s=u.scrollHeight,A=!0);if(s!==!1){var p=function(){C(),t(function(){$(u).trigger("scroll"),E=u.scrollTop}),i&&i()};n?$(u).animate({scrollTop:s},200,p):(u.scrollTop=s,p())}}function l(t){if(i.is(":visible")||$(i[0].parentNode.parentNode).is(":visible")){$(f).is(":visible")&&$(f).css({height:$(v).height()}),_&&_.offsetHeight||(_=$(".tg_page_head")[0]),y&&y.offsetHeight||(y=$(".footer_wrap")[0]);var n=y?y.offsetHeight:0;n&&n++;var a=$(e).height()-h.offsetHeight-(_?_.offsetHeight:48)-n;$(d).css({height:a}),c(),t!==!0&&(A&&onContentLoaded(function(){u.scrollTop=u.scrollHeight,C()}),C(100))}}function c(){$(p).css({marginTop:0});var e=u.offsetHeight-p.offsetHeight-g.offsetHeight-(Config.Mobile?0:39);p.offsetHeight>0&&e>0&&$(p).css({marginTop:e}),$(d).nanoScroller()}var d=$(".im_history_wrap",i)[0],p=$(".im_history_messages",i)[0],u=($(".im_history",i)[0],$(".im_history_scrollable_wrap",i)[0]),m=$(".im_history_scrollable",i)[0],g=$(".im_history_empty_wrap",i)[0],h=$(".im_bottom_panel_wrap",i)[0],f=$(".im_send_form_wrap",i)[0],_=$(".tg_page_head")[0],y=$(".footer_wrap")[0],v=$(".im_send_form",i)[0],b=!1,w=!1;onContentLoaded(function(){u.scrollTop=u.scrollHeight}),$(d).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0});var k,C=function(e){t(function(){$(u).hasClass("im_history_to_bottom")||$(d).nanoScroller()},e||0)},S=!1,M=["transform","webkitTransform","MozTransform","msTransform","OTransform"];for(k=0;k<M.length;k++)if(M[k]in p.style){S=M[k];break}var x=!1,I=!1;r.$on("ui_history_append_new",function(e,t){if(!A&&!t.my)return void onContentLoaded(function(){$(d).nanoScroller()});if(t.idleScroll)return void onContentLoaded(function(){$(d).nanoScroller(),o(!0)});var r,i=x&&!n.idle.isIDLE&&p.clientHeight>0;if(i)r=u.scrollHeight;else{var s=parseInt($(u).css("paddingRight"));$(m).css({bottom:0,paddingRight:s}),$(u).addClass("im_history_to_bottom")}onContentLoaded(function(){if(i){I=!0,$(p).removeClass("im_history_appending"),u.scrollTop=u.scrollHeight,$(p).css(S,"translate(0px, "+(u.scrollHeight-r)+"px)"),$(d).nanoScroller();var e={};e[S]="translate(0px, 0px)",$(p).addClass("im_history_appending"),a($(p),e).then(function(){I=!1,$(p).removeClass("im_history_appending"),c()})}else $(u).removeClass("im_history_to_bottom"),$(m).css({bottom:"",paddingRight:0}),u.scrollTop=u.scrollHeight,c()})}),r.$on("history_direction_key",function(e,t){var n=!1;switch(console.warn("scroll top",t.keyCode),t.keyCode){case 33:n=u.scrollTop-u.clientHeight;break;case 34:n=u.scrollTop+u.clientHeight;break;case 36:n=0;break;case 35:n=u.scrollHeight}n!==!1&&$(u).stop().animate({scrollTop:n},200)}),r.$on("ui_history_change",function(){var e=parseInt($(u).css("paddingRight"));$(u).addClass("im_history_to_bottom"),u.scrollHeight,$(m).css({bottom:0,paddingRight:e}),onContentLoaded(function(){$(u).removeClass("im_history_to_bottom"),$(m).css({bottom:"",paddingRight:""}),l(!0),b=!1,w=!1,o()})}),r.$on("ui_history_change_scroll",function(e,t){onContentLoaded(function(){o(!1,t)})}),r.$on("ui_history_focus",function(){A||(u.scrollTop=u.scrollHeight,C(),A=!0)}),r.$on("ui_history_prepend",function(){var e=u.scrollHeight,n=u.scrollTop,a=parseInt($(u).css("paddingRight")),i=u.clientHeight;$(u).addClass("im_history_to_bottom"),u.scrollHeight,$(m).css({bottom:-(e-n-i),paddingRight:a});var s=function(){$(u).removeClass("im_history_to_bottom"),$(m).css({bottom:"",paddingRight:""}),E>=0?o():u.scrollTop=n+u.scrollHeight-e,c(),b=!1,t(function(){u.scrollHeight!=e&&$(u).trigger("scroll")}),clearTimeout(l),d()},l=setTimeout(s,0),d=r.$on("$viewContentLoaded",s)}),r.$on("ui_history_append",function(){var e=u.scrollHeight;onContentLoaded(function(){A=!1,c(),w=!1,E>=0&&o(),t(function(){u.scrollHeight!=e&&$(u).trigger("scroll")})})}),r.$on("ui_panel_update",function(e,n){l(),onContentLoaded(function(){l(),n&&n.blur?r.$broadcast("ui_message_blur"):getSelectedText()||r.$broadcast("ui_message_send"),t(function(){$(u).trigger("scroll")})})}),r.$on("ui_selection_clear",function(){window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty();
}),r.$on("ui_editor_resize",l),r.$on("ui_height",function(){onContentLoaded(l)});var A=!0,E=-1;$(u).on("scroll",function(e){if(i.is(":visible")&&!$(u).hasClass("im_history_to_bottom")&&!I){var t=u.scrollTop;A=t>=u.scrollHeight-u.clientHeight,E>=0&&E!=t&&(E=-1),!b&&t<=300?(b=!0,r.$emit("history_need_more")):!w&&t>=u.scrollHeight-u.clientHeight-300&&(w=!0,r.$emit("history_need_less"))}}),$(e).on("resize",l),l(),onContentLoaded(l)}return{link:r}}]).directive("mySendForm",["_","$q","$timeout","$compile","$modalStack","$http","$interpolate","Storage","AppStickersManager","AppDocsManager","ErrorService","AppInlineBotsManager","FileManager","shouldFocusOnInteraction",function(e,t,n,a,r,i,s,o,l,c,d,p,u,m){function g(i,s,g){function h(){o.get("send_ctrlenter").then(function(e){H=!e})}function f(e){return n(function(){v(),i.draftMessage.send(),L.resetTyping(),B&&B.update(),L.hideSuggestions()},m?0:100),cancelEvent(e)}function _(e){i.$apply(function(){i.draftMessage.inlineResultID=e})}function y(e){return 38==e.keyCode?(i.$emit("last_message_edit"),cancelEvent(e)):(i.$emit("history_direction_key",e),!0)}function v(){j&&(L.onChange(),b())}function b(){var e=j.offsetHeight;q!=e&&(q=e,i.$emit("ui_editor_resize"))}function w(e){if(!(9!=e.keyCode||e.shiftKey||e.ctrlKey||e.metaKey||r.getTop()))return L.focus(),cancelEvent(e)}function k(){onContentLoaded(function(){L.focus()})}function C(e){var n=e.type||"",a=t.when(!1);["image/jpeg","image/gif","image/png","image/bmp"].indexOf(n)>=0&&(a=u.getFileCorrectUrl(e,n)),a.then(function(t){t=t||!1,d.confirm({type:"FILE_CLIPBOARD_PASTE",fileUrl:t}).then(function(){i.draftMessage.files=[e],i.draftMessage.isMedia=!0})})}function S(e){var t,n,a=(e.originalEvent||e).clipboardData,r=a&&a.items||[],s=[];for(t=0;t<r.length;t++)"file"==r[t].kind&&(n=r[t].getAsFile(),s.push(n));if(s.length>0){if(1==s.length)return C(s[0]);d.confirm({type:"FILES_CLIPBOARD_PASTE",files:s}).then(function(){i.draftMessage.files=s,i.draftMessage.isMedia=!0})}}function M(e){var t=!1;return x&&1!=x||(x=checkDragEvent(e)?2:1,t=!0),2==x&&(I&&setTimeout(function(){clearTimeout(I),I=!1},0),"dragenter"==e.type||"dragover"==e.type?t&&(Config.Mobile||$(E).hide(),$(P).css({height:R.offsetHeight+2,width:R.offsetWidth}).show()):("drop"==e.type&&i.$apply(function(){i.draftMessage.files=Array.prototype.slice.call(e.originalEvent.dataTransfer.files),i.draftMessage.isMedia=!0}),I=setTimeout(function(){$(P).hide(),Config.Mobile||$(E).show(),x=!1,I=!1},300))),cancelEvent(e)}var x,I,A=$("textarea",s)[0],E=$(".composer_emoji_insert_btn",s)[0],T=$(".composer_emoji_panel",s)[0],D=$("input",s),P=$(".im_send_dropbox_wrap",s)[0],R=$(".im_send_field_wrap",s)[0],N=$(".im_submit",s)[0],F=a('<a class="composer_sticker_btn" data-sticker="{{::document.id}}" my-load-sticker document="document" thumb="true" img-class="composer_sticker_image"></a>'),U={},O=new EmojiTooltip(E,{getStickers:function(e){l.getStickers().then(e)},getStickerImage:function(e,t){var n=e.attr("data-category"),a=U[t];if(a&&!isInDOM(a[0]))return a.attr("data-category",n),void e.replaceWith(a);var r=i.$new(!0);r.document=c.getDoc(t),F(r,function(a){U[t]=a,a.attr("data-category",n),e.replaceWith(a)})},onStickersetSelected:function(e){l.openStickersetLink(e)},onEmojiSelected:function(e){i.$apply(function(){L.onEmojiSelected(e)})},onStickerSelected:function(e){i.$apply(function(){i.draftMessage.sticker=e})},langpack:{im_emoji_tab:e("im_emoji_tab"),im_stickers_tab:e("im_stickers_tab")}});i.$on("stickers_changed",function(){O.onStickersChanged()});var B;T&&(B=new EmojiPanel(T,{onEmojiSelected:function(e){L.onEmojiSelected(e)}}));var L=new MessageComposer(A,{onTyping:function(){i.$emit("ui_typing")},getSendOnEnter:function(){return H},dropdownDirective:function(e,t){var n=i.$new(!0);a("<div><div my-composer-dropdown></div></div>")(n,function(n,a){e.replaceWith(n),t(a,n)})},mentions:i.mentions,commands:i.commands,onMessageSubmit:f,onDirectionKey:y,onInlineResultSend:_,onFilePaste:C,onCommandSend:function(e){i.$apply(function(){i.draftMessage.command=e})}}),j=L.richTextareaEl&&L.richTextareaEl[0];j&&$(j).on("keydown keyup",b),i.$on("inline_results",function(e,t){var n=Config.Mobile?$(window).width():(R.offsetWidth||382)-2,a=80;t&&p.regroupWrappedResults(t.results,n,a),setZeroTimeout(function(){L.setInlineSuggestions(t)})}),i.$on("inline_placeholder",function(e,t){L.setInlinePlaceholder(t.prefix,t.placeholder)}),D.on("change",function(){var e=this;i.$apply(function(){i.draftMessage.files=Array.prototype.slice.call(e.files),i.draftMessage.isMedia=$(e).hasClass("im_media_attach_input")||Config.Mobile,setTimeout(function(){try{e.value=""}catch(t){}},1e3)})});var H=!0;i.$on("settings_changed",h),h(),$(N).on("mousedown touchstart",f);var q=j&&j.offsetHeight;$(document).on("keydown",w),$("body").on("dragenter dragleave dragover drop",M),$(document).on("paste",S),m&&(i.$on("ui_peer_change",k),i.$on("ui_history_focus",k),i.$on("ui_history_change",k)),i.$on("ui_peer_change",L.resetTyping.bind(L)),i.$on("ui_peer_draft",function(t,n){n=n||{};var a=i.draftMessage.isBroadcast;L.setPlaceholder(e(a?"im_broadcast_field_placeholder_raw":"im_message_field_placeholder_raw")),n.customSelection?(L.setFocusedValue(n.customSelection),b()):(j&&(L.setValue(i.draftMessage.text||""),b()),(m||n&&n.focus)&&L.focus()),onContentLoaded(function(){L.checkAutocomplete(!0)}),O&&Config.Mobile&&O.hide()}),i.$on("ui_peer_reply",function(){onContentLoaded(function(){i.$emit("ui_editor_resize"),m&&L.focus()})}),i.$on("mentions_update",function(){L.onMentionsUpdated()}),i.$on("ui_message_before_send",function(){v()}),i.$on("ui_message_send",function(){m&&k()}),i.$on("ui_message_blur",function(){L.blur()}),i.$on("$destroy",function(){$(document).off("paste",S),$(document).off("keydown",w),$("body").off("dragenter dragleave dragover drop",M),$(N).off("mousedown touchstart"),D.off("change")}),m&&k()}return{link:g,scope:{draftMessage:"=",mentions:"=",commands:"="}}}]).directive("myLoadThumb",["MtpApiFileManager","FileManager",function(e,t){function n(n,a,r){var i=0,s=e.getCachedFile(n.thumb&&n.thumb.location&&!n.thumb.location.empty&&n.thumb.location);s&&a.attr("src",t.getUrl(s,"image/jpeg")),n.thumb&&n.thumb.width&&n.thumb.height&&(a.attr("width",n.thumb.width),a.attr("height",n.thumb.height));var o=n.$watchCollection("thumb.location",function(r){n.thumb&&n.thumb.width&&n.thumb.height&&(a.attr("width",n.thumb.width),a.attr("height",n.thumb.height),n.$emit("ui_height"));var s=++i;if(!r||r.empty)return a.attr("src",n.thumb&&n.thumb.placeholder||"img/blank.gif"),void l();var o=e.getCachedFile(r);return o?(a.attr("src",t.getUrl(o,"image/jpeg")),void l()):(a.attr("src")||a.attr("src",n.thumb.placeholder||"img/blank.gif"),void e.downloadSmallFile(n.thumb.location).then(function(e){s==i&&(a.attr("src",t.getUrl(e,"image/jpeg")),l())},function(e){console.log("Download image failed",e,n.thumb.location,a[0]),s==i&&(a.attr("src",n.thumb.placeholder||"img/blank.gif"),l())}))}),l=r.watch?angular.noop:function(){setTimeout(function(){n.$destroy(),o()},0)}}return{link:n,scope:{thumb:"="}}}]).directive("myLoadFullPhoto",["MtpApiFileManager","FileManager","_",function(e,t,n){function a(a,r,i){var s=$("img",r)[0],o=$(".img_fullsize_with_progress_wrap",r).add(".img_fullsize_progress_wrap",r).add($(s)),l=function(){o.css({width:a.fullPhoto.width,height:a.fullPhoto.height}),a.$emit("ui_height",!0)},c=0;a.$watchCollection("fullPhoto.location",function(){var r=e.getCachedFile(a.thumbLocation),i=++c;if(r?(s.src=t.getUrl(r,"image/jpeg"),l()):s.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",a.fullPhoto.location){var o;if(a.fullPhoto.size){var d={_:"inputFileLocation",volume_id:a.fullPhoto.location.volume_id,local_id:a.fullPhoto.location.local_id,secret:a.fullPhoto.location.secret};o=e.downloadFile(a.fullPhoto.location.dc_id,d,a.fullPhoto.size)}else o=e.downloadSmallFile(a.fullPhoto.location);a.progress={enabled:!0,percent:0},o.then(function(e){i==c&&(a.progress.enabled=!1,s.src=t.getUrl(e,"image/jpeg"),l())},function(e){console.log("Download image failed",e,a.fullPhoto.location),a.progress.enabled=!1,e&&"FS_BROWSER_UNSUPPORTED"==e.type?a.error={html:n("error_browser_no_local_file_system_image_md",{"moz-link":'<a href="{0}" target="_blank">{1}</a>',"chrome-link":'<a href="{0}" target="_blank">{1}</a>',"telegram-link":'<a href="{0}" target="_blank">{1}</a>'})}:a.error={text:n("error_image_download_failed"),error:e}},function(e){a.progress.percent=Math.max(1,Math.floor(100*e.done/e.total))})}}),l()}return{link:a,transclude:!0,templateUrl:templateUrl("full_photo"),scope:{fullPhoto:"=",thumbLocation:"="}}}]).directive("myLoadVideo",["$sce","AppDocsManager","ErrorService","_",function(e,t,n,a){function r(e,r,i){var s=t.downloadDoc(e.video.id);s.then(function(){e.$emit("ui_height"),onContentLoaded(function(){var e=$("video",r)[0];if(e){var t=!1,a=function(e){t||e.target&&e.target.error&&e.target.error.code!=e.target.error.MEDIA_ERR_DECODE&&e.target.error.code!=e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED||(t=!0,n.show({error:{type:"MEDIA_TYPE_NOT_SUPPORTED",originalError:e.target&&e.target.error}}))};e.addEventListener("error",a,!0),$(e).on("$destroy",function(){t=!0,e.removeEventListener("error",a)})}})},function(t){console.log("Download video failed",t,e.video),t&&"FS_BROWSER_UNSUPPORTED"==t.type?e.error={html:a("error_browser_no_local_file_system_video_md",{"moz-link":'<a href="{0}" target="_blank">{1}</a>',"chrome-link":'<a href="{0}" target="_blank">{1}</a>',"telegram-link":'<a href="{0}" target="_blank">{1}</a>'})}:e.error={text:a("error_video_download_failed"),error:t}}),e.$emit("ui_height"),e.$on("$destroy",function(){s.cancel()})}return{link:r,transclude:!0,templateUrl:templateUrl("full_video"),scope:{video:"="}}}]).directive("myLoadGif",["AppDocsManager","$timeout",function(e,t){function n(n,a,r){var i=$(".img_gif_image_wrap",a);i.css({width:n.document.thumb.width,height:n.document.thumb.height});var s=!1;n.isActive=!1,n.toggle=function(r){return r&&checkClick(r,!0)?(e.saveDocFile(n.document.id),!1):n.document.url?void onContentLoaded(function(){n.isActive=!n.isActive,n.$emit("ui_height");var e=$("video",a)[0];e&&(n.isActive?e.play():(e.pause(),e.currentTime=0))}):s?(s.cancel(),void(s=!1)):(s=e.downloadDoc(n.document.id),void s.then(function(){t(function(){n.isActive=!0},200)}))}}return{link:n,templateUrl:templateUrl("full_gif"),scope:{document:"="}}}]).directive("myLoadRound",["AppDocsManager","$timeout",function(e,t){function n(e,t){return r!==e&&(r&&(r.pause(),r.currentTime=0,i.isActive=!1),r=e,void(i=t))}function a(a,r,i){var s=$(".img_round_image_wrap",r);s.css({width:a.document.thumb.width,height:a.document.thumb.height});var o=!1;a.isActive=!1,a.toggle=function(i){return i&&checkClick(i,!0)?(e.saveDocFile(a.document.id),!1):a.document.url?(a.isActive=!a.isActive,void onContentLoaded(function(){a.$emit("ui_height");var e=$("video",r)[0];e&&(a.isActive?(n(e,a),e.play()):(e.pause(),e.currentTime=0))})):o?(o.cancel(),void(o=!1)):(o=e.downloadDoc(a.document.id),void o.then(function(){t(function(){var e=$("video",r)[0];n(e,a),$(e).on("ended",function(){a.isActive&&a.toggle()}),a.isActive=!0},200)}))},a.$on("ui_history_change",function(){a.isActive&&a.toggle()})}var r=!1,i=!1;return{link:a,templateUrl:templateUrl("full_round"),scope:{document:"="}}}]).directive("myLoadSticker",["_","MtpApiFileManager","FileManager","AppStickersManager",function(e,t,n,a){function r(r,s,o){var l=$("<img />").addClass(o.imgClass),c=!1;l.attr("alt","["+(r.document.stickerEmojiRaw||"")+" "+e("conversation_media_sticker")+"]");var d=o.dim&&r.$parent.$eval(o.dim)||r.document.thumb;o.open&&r.document.stickerSetInput&&s.addClass("clickable").on("click",function(){a.openStickerset(r.document.stickerSetInput)});var p=function(e){l.attr("src",n.getUrl(e)),c||(c=!0,l.appendTo(s))};l.css({width:d.width,height:d.height}),s.css({width:d.width,height:d.height});var u=!1;r.document.thumb.location&&(u=angular.copy(r.document.thumb.location),u.sticker=!0);var m={_:"inputDocumentFileLocation",id:r.document.id,access_hash:r.document.access_hash,dc_id:r.document.dc_id,file_name:r.document.file_name,version:r.document.version,sticker:!0},g=t.getCachedFile(m),h=!1;if(g?h=!0:g=t.getCachedFile(u),g){if(p(g),h)return}else c=!0,l.attr("src",i).appendTo(s);o.thumb&&u?t.downloadSmallFile(u).then(function(e){p(e)},function(e){console.log("Download sticker failed",e,m)}):t.downloadFile(r.document.dc_id,m,r.document.size).then(function(e){p(e)},function(e){console.log("Download sticker failed",e,m)})}var i="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";return{link:r,scope:{document:"="}}}]).directive("myLoadDocument",["MtpApiFileManager","AppDocsManager","FileManager",function(e,t,n){function a(e,t){for(;e&&!$(e).hasClass("modal-dialog");)e=e.parentNode;e&&$(e).width(t+(Config.Mobile?0:32))}function r(r,i,s){var o=$(".document_fullsize_with_progress_wrap",i),l=$(".document_fullsize_wrap",i),c=$(".document_fullsize_img",i),d=$(window).width()-(Config.Mobile?20:32),p=$(window).height()-150;d>800&&(d-=208),r.imageWidth=d,r.imageHeight=p;var u=r.document.thumb;if(u&&"photoSizeEmpty"!=u._){var m=calcImageInBox(u.width,u.height,d,p);r.imageWidth=m.w,r.imageHeight=m.h;var g=e.getCachedFile(u.location);g&&(r.thumbSrc=n.getUrl(g,"image/jpeg"))}r.frameWidth=Math.max(r.imageWidth,Math.min(600,d)),r.frameHeight=r.imageHeight,onContentLoaded(function(){r.$emit("ui_height")}),a(i[0],r.frameWidth);var h,f,_;t.downloadDoc(r.document.id).then(function(e){var t=n.getUrl(e,r.document.mime_type),a=new Image,i=100,s=function(e){if(a.height&&a.width||!--i){f=a.width,_=a.height,clearInterval(h);var n=calcImageInBox(a.width,a.height,d,p,!0),s={w:f,h:_};n.w>=s.w&&n.h>=s.h&&(s.w*=4,s.h*=4);var u=!0;r.toggleZoom=function(){u=!u;var e=(u?s:n).w,t=(u?s:n).h;c.css({width:e,height:t,marginTop:r.frameHeight>t?Math.floor((r.frameHeight-t)/2):0}),l.toggleClass("document_fullsize_zoomed",u)},r.toggleZoom(!1),c.attr("src",t),o.hide(),l.css({width:r.frameWidth,height:r.frameHeight}).show()}};h=setInterval(s,20),a.onload=s,a.src=t,setZeroTimeout(s)})}return{link:r,templateUrl:templateUrl("full_document"),scope:{document:"=myLoadDocument"}}}]).directive("myGeoPointMap",["ExternalResourcesManager",function(e){function t(t,n,a){var r,i=n.attr("width")||200,s=n.attr("height")||200,o=i>200?15:13,l=!1;if(l){var c=Config.ExtCredentials.gmaps.api_key,d=!0;r="https://maps.googleapis.com/maps/api/staticmap?sensor=false&center="+t.point.lat+","+t.point["long"]+"&zoom="+o+"&size="+i+"x"+s+"&scale=2&markers=color:red|size:big|"+t.point.lat+","+t.point["long"],d&&(r+="&key="+c)}else r="https://static-maps.yandex.ru/1.x/?l=map&ll="+t.point["long"]+","+t.point.lat+"&z="+o+"&size="+i+","+s+"&scale=1&pt="+t.point["long"]+","+t.point.lat+",pm2rdm&lang=en_US";n.attr("src","img/blank.gif"),e.downloadByURL(r).then(function(e){n.attr("src",e.valueOf())})}return{link:t,scope:{point:"=myGeoPointMap"}}}]).directive("myLoadingDots",["$interval",function(e){function t(e,t,a){t.html(n(t[0])?'<div class="loading_dots"><i></i><i></i><i></i></div>':"...")}function n(e){if(void 0===a&&(a=void 0!==e.style.animationName,a===!1)){var t,n="Webkit Moz O ms Khtml".split(" ");for(t=0;t<n.length;t++)if(void 0!==e.style[n[t]+"AnimationName"]){a=!0;break}}return a}return{link:t};var a}]).directive("myFocused",["shouldFocusOnInteraction",function(e){return{link:function(t,n,a){return!!e&&void setTimeout(function(){setFieldSelection(n[0])},100)}}}]).directive("myFocusOn",["shouldFocusOnInteraction",function(e){return{link:function(t,n,a){t.$on(a.myFocusOn,function(){return!!e&&void onContentLoaded(function(){setFieldSelection(n[0])})})}}}]).directive("myFileUpload",function(){function e(e,t,n){t.on("change",function(){var t=this;e.$apply(function(){e.photo.file=t.files[0],setTimeout(function(){try{t.value=""}catch(e){}},1e3)})})}return{link:e}}).directive("myModalWidth",function(){function e(e,t,n){n.$observe("myModalWidth",function(e){$(t[0].parentNode.parentNode).css({width:parseInt(e)+(Config.Mobile?0:32)})})}return{link:e}}).directive("myModalNav",function(){function e(e,t,n){var a=function(t){var a=t.target;if(!a||"INPUT"!=a.tagName&&"TEXTAREA"!=a.tagName)switch(t.keyCode){case 39:case 32:case 34:case 40:e.$eval(n.next);break;case 37:case 33:case 38:e.$eval(n.prev)}};$(document).on("keydown",a),e.$on("$destroy",function(){$(document).off("keydown",a)})}return{link:e}}).directive("myCustomBackground",function(){function e(e,t,n){$("html").css({background:n.myCustomBackground}),e.$on("$destroy",function(){$("html").css({background:""})})}return{link:e}}).directive("myInfiniteScroller",function(){function e(e,t,n){var a=$(".nano-content",t)[0],r=!1;$(a).on("scroll",function(n){t.is(":visible")&&!r&&a.scrollTop>=a.scrollHeight-a.clientHeight-300&&(r=!0,e.$apply(function(){e.slice.limit+=e.slice.limitDelta||20}),onContentLoaded(function(){r=!1,$(t).nanoScroller()}))})}return{link:e,scope:!0}}).directive("myModalPosition",["$window","$timeout",function(e,t){function n(n,a,r){var i=function(){if(!Config.Mobile||!$(a[0].parentNode.parentNode.parentNode).hasClass("mobile_modal")){var e=a[0].parentNode.offsetHeight,n=a[0].parentNode.parentNode.parentNode,i=$(".media_modal_bottom_panel_wrap",n)[0],s=n.offsetHeight-(i&&i.offsetHeight||0);e<s?$(a[0].parentNode).css("marginTop",(s-e)/2):$(a[0].parentNode).css("marginTop",""),"no"!=r.animation&&t(function(){$(a[0].parentNode).addClass("modal-content-animated")},300)}};onContentLoaded(i),$(e).on("resize",i),n.$on("ui_height",function(e,t){t?i():onContentLoaded(i)})}return{link:n}}]).directive("myVerticalPosition",["$window","$timeout",function(e,t){function n(t,n,a){var r="true"===a.padding,i=0,s=function(){var s=n[0].offsetHeight,o=s-(s&&r?2*i:0),l=a.myVerticalPosition&&parseFloat(a.myVerticalPosition)||.5,c=a.contHeight?t.$eval(a.contHeight):$(e).height(),d=o<c?parseInt((c-o)*l):"",p=r?{paddingTop:d,paddingBottom:d}:{marginTop:d,marginBottom:d};n.css(p),n.addClass("vertical-aligned"),i!==d&&t.$emit("ui_height"),i=d};$(e).on("resize",s),onContentLoaded(s),t.$on("ui_height",function(){onContentLoaded(s)})}return{link:n}}]).directive("myUserStatus",["$filter","$rootScope","AppUsersManager",function(e,t,n){function a(){angular.forEach(o,function(e){e()})}function r(e,t,a){var r,l=s++,c=function(){var e=n.getUser(r);t.html(i(e,a.botChatPrivacy)).toggleClass("status_online",e.status&&"userStatusOnline"==e.status._||!1)};e.$watch(a.myUserStatus,function(e){r=e,c()}),e.$on("user_update",function(e,t){r==t&&c()}),o[l]=c,e.$on("$destroy",function(){delete o[l]})}var i=e("userStatus"),s=0,o={};return setInterval(a,9e4),t.$on("stateSynchronized",function(){setTimeout(function(){a()},100)}),{link:r}}]).directive("myChatStatus",["$rootScope","_","MtpApiManager","AppChatsManager","AppUsersManager","AppProfileManager",function(e,t,n,a,r,i){function s(){angular.forEach(c,function(e){e()})}function o(n,s,o){var m,g=l++,h=0,f=0,_={},y=function(){var e=++h;return f=0,_={},m?void i.getChatFull(m).then(function(t){if(e==h){var n=(t.participants||{}).participants||[];f=n.length,angular.forEach(n,function(e){_[e.user_id]=!0}),t.participants_count&&(f=t.participants_count||0),v()}}):void v()},v=function(){var e=d(f),n=0;if(!a.isChannel(m)){var i=!1;angular.forEach(_,function(e,t){var a=r.getUser(t);a.status&&"userStatusOnline"==a.status._&&(a.id==u&&(i=!0),n++)}),(n>1||1==n&&!i)&&(e=t("group_modal_participants",{total:e,online:p(n)}))}n||f||(e=""),s.html(e)};n.$watch(o.myChatStatus,function(e){m=e,y()}),e.$on("chat_full_update",function(e,t){m==t&&y()}),e.$on("user_update",function(e,t){_[t]&&v()}),c[g]=v,n.$on("$destroy",function(){delete c[g]})}var l=0,c={},d=t.pluralize("group_modal_pluralize_participants"),p=t.pluralize("group_modal_pluralize_online_participants"),u=0;return n.getUserID().then(function(e){u=e}),setInterval(s,9e4),{link:o}}]).directive("myPeerMuted",["$rootScope","NotificationsManager",function(e,t){function n(t,n,r){var i=t.$eval(r.myPeerMuted),s=r.mutedClass||"muted",o=e.$on("notify_settings",function(e,t){t.peerID==i&&a(i,n,s)});a(i,n,s),t.$on("$destroy",o)}function a(e,n,a){t.getPeerMuted(e).then(function(e){n.toggleClass(a,e)})}return{link:n}}]).directive("myPeerLink",["AppChatsManager","AppUsersManager",function(e,t){function n(n,a,r){var i,s=r.userOverride&&n.$eval(r.userOverride)||{},o=r["short"]&&n.$eval(r["short"]),l=r.username&&n.$eval(r.username),c=function(){if(a[0].className.indexOf("user_color_")!=-1&&(a[0].className=a[0].className.replace(/user_color_\d+/g,"")),i>0){var c=t.getUser(i),d=l?"@":"",p=l?"username":o?"rFirstName":"rFullName";a.html(d+(s[p]||c[p]||"").valueOf()+(r.verified&&c.pFlags&&c.pFlags.verified?' <i class="icon-verified"></i>':"")),r.color&&n.$eval(r.color)&&a.addClass("user_color_"+c.num)}else{var u=e.getChat(-i);a.html((u.rTitle||"").valueOf()+(r.verified&&u.pFlags&&u.pFlags.verified?' <i class="icon-verified"></i>':""))}};"A"!=a[0].tagName||hasOnclick(a[0])||a.on("click",function(){i>0?t.openUser(i,s):e.openChat(-i)}),r.peerWatch?n.$watch(r.myPeerLink,function(e){i=e,c()}):(i=n.$eval(r.myPeerLink),c()),r.noWatch||(n.$on("user_update",function(e,t){i==t&&c()}),n.$on("chat_update",function(e,t){i==-t&&c()}))}return{link:n}}]).directive("myPeerPhotolink",["AppPeersManager","AppUsersManager","AppChatsManager","MtpApiFileManager","FileManager",function(e,t,n,a,r){function i(i,s,o){s.addClass("peer_photo_init");var l,c,d,p=$('<img class="'+(o.imgClass||"")+'">'),u=$('<span class="peer_initials nocopy '+(o.imgClass||"")+'"></span>'),m=0,g=!1,h=function(t){if(l==t)return!1;l=t,c=e.getPeer(l);var n="user_bgcolor_"+(c.num||1);return n!=g&&(g&&u.removeClass(g),u.addClass(n),g=n),f(),!0},f=function(){var e=++m;d=c.photo&&angular.copy(c.photo.photo_small);var t=void 0!==d;if(t){var n=a.getCachedFile(c.photo.photo_small);if(n)return u.remove(),void p.prependTo(s).attr("src",r.getUrl(n,"image/jpeg"))}u.attr("data-content",c.initials||"").prependTo(s),p.remove(),t&&a.downloadSmallFile(c.photo.photo_small).then(function(t){e==m&&(u.remove(),p.prependTo(s).attr("src",r.getUrl(t,"image/jpeg")))},function(e){console.log("Download image failed",e,c.photo.photo_small,s[0])})};"A"!=s[0].tagName||o.noOpen||s.on("click",function(e){l>0?t.openUser(l,o.userOverride&&i.$eval(o.userOverride)):n.openChat(-l)}),i.$watch(o.myPeerPhotolink,h),h(i.$eval(o.myPeerPhotolink)),o.watch&&(i.$on("user_update",function(t,n){l==n&&(c=e.getPeer(l),angular.equals(c.photo&&c.photo.photo_small,d)&&d||f())}),i.$on("chat_update",function(e,t){l==-t&&(angular.equals(c.photo&&c.photo.photo_small,d)||f())}))}return{link:i}}]).directive("myAudioPlayer",["$timeout","$q","Storage","AppDocsManager","AppMessagesManager","ErrorService",function(e,t,n,a,r,i){function s(e){return e!==l&&(l&&l.pause(),void(l=e))}function o(e,t,o){a.updateDocDownloaded(e.audio.id),e.volume=c,e.mediaPlayer={},e.download=function(){a.saveDocFile(e.audio.id)},e.togglePlay=function(){e.audio.url?(s(e.mediaPlayer.player),e.mediaPlayer.player.playPause()):e.audio.progress&&e.audio.progress.enabled||a.downloadDoc(e.audio.id).then(function(){onContentLoaded(function(){var n=$("audio",t)[0]||t[0];if(n){var a=!1,o=function(e){a||e.target&&e.target.error&&e.target.error.code!=e.target.error.MEDIA_ERR_DECODE&&e.target.error.code!=e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED||(a=!0,i.show({error:{type:"MEDIA_TYPE_NOT_SUPPORTED",originalError:e.target&&e.target.error}}))};n.addEventListener("error",o,!0),e.$on("$destroy",function(){a=!0,n.removeEventListener("error",o)})}setTimeout(function(){s(e.mediaPlayer.player),e.mediaPlayer.player.setVolume(c),e.mediaPlayer.player.play(),e.message&&!e.message.pFlags.out&&e.message.pFlags.media_unread&&r.readMessages([e.message.mid])},300)})})},e.seek=function(t){e.mediaPlayer&&e.mediaPlayer.player?e.mediaPlayer.player.seek(t):e.togglePlay()},e.setVolume=function(t){c=t,n.set({audio_volume:t}),e.mediaPlayer&&e.mediaPlayer.player&&e.mediaPlayer.player.setVolume(t)}}var l=!1,c=.5;n.get("audio_volume").then(function(e){e>0&&e<=1&&(c=e)});return{link:o,scope:{audio:"=",message:"="},templateUrl:templateUrl("audio_player")}}]).directive("mySlider",["$window",function(e){function t(t,n,a){var r=$(".tg_slider_wrap",n),i=$(".tg_slider_track_fill",n),s=$(".tg_slider_thumb",n),o=r.width(),l=Math.ceil(s.width()),c=a.sliderModel,d=a.sliderOnchange,p=0,u=1,m=!1,g=!1;a.sliderMin&&t.$watch(a.sliderMin,function(e){p=e||0}),a.sliderMax&&t.$watch(a.sliderMax,function(e){u=e||1});var h=function(e){e=e.originalEvent||e;var n=(e.touches&&e.touches[0]?e.touches[0].pageX:e.pageX)-g;return n=Math.min(o,Math.max(0,n)),m=p+n/o*(u-p),d?t.$eval(d,{value:m}):t.$eval(c+"="+m),s.css("left",Math.max(0,n-l)),i.css("width",n),cancelEvent(e)},f=function(){$(e).off("mousemove touchmove",h),$(e).off("mouseup touchend touchcancel touchleave",f)};t.$watch(c,function(e){if(e!=m&&void 0!==e){var t=Math.max(0,(e-p)/(u-p));if(o){var n=Math.ceil(o*t);n=Math.min(o,Math.max(0,n)),s.css("left",Math.max(0,n-l)),i.css("width",n)}else s.css("left",100*t+"%"),i.css("width",100*t+"%");m=!1}}),n.on("dragstart selectstart",cancelEvent),n.on("mousedown touchstart",function(a){if(!o&&(o=r.width(),!o))return console.error("empty width"),cancelEvent(a);f(),a=a.originalEvent||a;var _;if(a.touches&&a.touches[0])g=n.position().left,_=a.touches[0].pageX-g;else if(void 0!==a.offsetX)_=a.offsetX,g=a.pageX-_;else{if(void 0===a.layerX)return cancelEvent(a);_=a.layerX,g=a.pageX-_}return m=p+_/o*(u-p),d?t.$eval(d,{value:m}):t.$eval(c+"="+m),s.css("left",Math.max(0,_-l)),i.css("width",_),$(e).on("mousemove touchmove",h),$(e).on("mouseup touchend touchcancel touchleave",f),cancelEvent(a)})}return{link:t,templateUrl:templateUrl("slider")}}]).directive("myLabeledInput",function(){function e(e,t,n){var a=$(".md-input:first",t),r=($(".md-input-label:first",t),a[0]&&"SPAN"==a[0].tagName),i=!1,s=function(){r?t.toggleClass("md-input-has-value",a.html().length>0):t.toggleClass("md-input-has-value",i||a.val().length>0)};s(),onContentLoaded(function(){s(),setZeroTimeout(function(){t.addClass("md-input-animated")})}),r||a.on("blur focus change",function(e){i="focus"==e.type,t.toggleClass("md-input-focused",i),s()}),e.$on("value_updated",function(){setZeroTimeout(function(){s()})})}return{link:e}}).directive("myCopyField",["toaster","_",function(e,t){function n(e,t,n){t.attr("readonly","true"),t[0].readonly=!0,t.on("click",function(){this.select()}),e.selectEvent&&e.$on(e.selectEvent,function(){setTimeout(function(){t[0].focus(),t[0].select()},100)})}return{scope:{selectEvent:"=myCopyField"},link:n}}]).directive("myCopyLink",["$compile","$timeout","_",function(e,t,n){function a(a,r,i){r.attr("tooltip","{{ttLabel}}"),r.removeAttr("my-copy-link"),r.removeAttr("data-my-copy-link");var s=!1,o=function(){t.cancel(s),s=!1,a.ttLabel=n("conversations_modal_share_url_copy_raw")};o(),e(r)(a);var l=new Clipboard(r[0]);l.on("success",function(e){t.cancel(s),a.$apply(function(){a.ttLabel=n("clipboard_copied_raw")}),s=t(o,2e3)}),l.on("error",function(e){t.cancel(s);var r=Config.Navigator.osX?"clipboard_press_cmd_c":"clipboard_press_ctrl_c";a.$apply(function(){a.ttLabel=n(r+"_raw")}),s=t(o,5e3)}),a.$on("$destroy",function(){l.destroy()})}return{restrict:"A",replace:!1,terminal:!0,priority:1e3,link:a}}]).directive("mySubmitOnEnter",function(){function e(e,t,n){t.on("keydown",function(e){if(13==e.keyCode)return t.trigger("submit"),cancelEvent(e)})}return{link:e}}).directive("myArcProgress",function(){function e(e,t,n){t=Math.max(0,Math.min(t,1));var a=.2;t=a+(1-a)*t,e.css({strokeDasharray:t*n+", "+(1-t)*n})}var t='<svg class="progress-arc" viewPort="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg"> <defs> <linearGradient id="grad_intermediate%id%" x1="0%" y1="0%" x2="100%" y2="0%"> <stop offset="0%" class="stop0" /> <stop offset="60%" class="stop60" /> <stop offset="100%" class="stop100"/> </linearGradient> </defs> <circle class="progress-arc-bar"></circle></svg>',n=0;return{scope:{progress:"=myArcProgress"},link:function(a,r,i){var s=!i.myArcProgress,o=i.width||r.width()||40,l=i.stroke||o/2*.14,c=o/2,d=c-l/2,p=++n;r.html(t.replace("%id%",p)).addClass("progress-arc-wrap").addClass(s?"progress-arc-intermediate":"progress-arc-percent").css({width:o,height:o}),$(r[0].firstChild).attr("width",o).attr("height",o);var u=$(".progress-arc-bar",r);u.attr("cx",c).attr("cy",c).attr("r",d).css({strokeWidth:l});var m=2*Math.PI*d;s?(e(u,.3,m),u.css({stroke:"url(#grad_intermediate"+p+")"})):a.$watch("progress",function(t){e(u,t/100,m)})}}}).directive("myScrollToOn",function(){return{link:function(e,t,n){var a=n.myScrollToOn,r=function(){onContentLoaded(function(){$("html, body").animate({scrollTop:t.offset().top},200)})};"$init"==a?r():e.$on(a,r)}}}).directive("myComposerDropdown",function(){return{templateUrl:templateUrl("composer_dropdown")}}).directive("myEmojiSuggestions",function(){return{link:function(e,t,n){e.$watchCollection("emojiCodes",function(e){var n,a,r,i,s,o,l,c,d=[],p=Config.Mobile?26:20,u=Math.min(5,e.length);for(o=0;o<u;o++)n=e[o],n.code&&(n=n.code),(a=Config.Emoji[n])&&(r=EmojiHelper.spritesheetPositions[n],s=r[0],i=r[1],l=p*r[3],c=p*r[2],d.push('<li><a class="composer_emoji_option" data-code="'+encodeEntities(n)+'"><i class="emoji emoji-w',p," emoji-spritesheet-"+s+'" style="background-position: -'+l+"px -"+c+'px;"></i><span class="composer_emoji_shortcut">:'+encodeEntities(a[1][0])+":</span></a></li>"));t.html(d.join("")),console.log(dT(),"emoji done")})}}}).directive("myInlineResults",["AppPhotosManager","ExternalResourcesManager","AppDocsManager",function(e,t,n){return{templateUrl:templateUrl("inline_results"),scope:{botResults:"=myInlineResults"},link:function(a,r,i){a.$watch("botResults.results",function(a){angular.forEach(a,function(a){a.thumb_url&&!a.thumbUrl&&t.downloadByURL(a.thumb_url).then(function(e){a.thumbUrl=e}),"gif"==a.type&&a.content_url&&!a.contentUrl&&t.downloadByURL(a.content_url).then(function(e){a.contentUrl=e}),"gif"!=a.type&&"sticker"!=a.type||!a.document||n.downloadDoc(a.document.id);var r;if("photo"==a.type&&a.photo){r=e.choosePhotoSize(a.photo,a.thumbW,a.thumbH);var i=calcImageInBox(r.w,r.h,a.thumbW,a.thumbH);a.thumb={width:i.w,height:i.h,location:r.location,size:r.size}}"game"==a.type&&a.photo&&(r=e.choosePhotoSize(a.photo,100,100),a.thumb={location:r.location,size:r.size})})})}}}]).directive("myGameCommunication",["$window",function(e){function t(t,n,a){onContentLoaded(function(){var a=$("iframe, webview",n)[0],r=a.contentWindow,i=function(e){if(e=e.originalEvent||e,!e.source||e.source==r){var n=e.data;try{var a=JSON.parse(n)}catch(i){return}a&&a.eventType&&t.$emit("game_frame_event",a)}};$(e).on("message",i),t.$on("$destroy",function(){$(e).off("message",i)})})}return{link:t}}]).directive("myEmojiImage",["RichTextProcessor",function(e){function t(t,n,a){var r=a.myEmojiImage,i=e.wrapRichText(r,{noLinks:!0,noLinebreaks:!0});n.html(i.valueOf())}return{link:t}}]).directive("myExternalEmbed",function(){function e(e,o,l){var c=e.$eval(l.myExternalEmbed);if(c){var d,p="",u=!1;switch(c[0]){case"youtube":d=c[1],p='<div class="im_message_media_embed im_message_video_embed"><'+s+' type="text/html" frameborder="0" src="https://www.youtube.com/embed/'+d+'?autoplay=0&amp;controls=2" webkitallowfullscreen mozallowfullscreen allowfullscreen></'+s+"></div>";break;case"vimeo":d=c[1],p='<div class="im_message_media_embed im_message_video_embed"><'+s+' type="text/html" frameborder="0" src="https://player.vimeo.com/video/'+d+'?title=0&amp;byline=0&amp;portrait=0" webkitallowfullscreen mozallowfullscreen allowfullscreen></'+s+"></div>";break;case"instagram":var m=c[1];p='<div class="im_message_media_embed im_message_insta_embed"><'+s+' type="text/html" frameborder="0" src="https://instagram.com/p/'+m+'/embed/"></'+s+"></div>";break;case"vine":var g=c[1];p='<div class="im_message_media_embed im_message_vine_embed"><'+s+' type="text/html" frameborder="0" src="https://vine.co/v/'+g+'/embed/simple"></'+s+"></div>";
break;case"soundcloud":var h=c[1];p='<div class="im_message_media_embed im_message_soundcloud_embed"><'+s+' type="text/html" frameborder="0" src="https://w.soundcloud.com/player/?url='+encodeEntities(encodeURIComponent(h))+'&amp;auto_play=false&amp;hide_related=true&amp;show_comments=false&amp;show_user=true&amp;show_reposts=false&amp;visual=true"></'+s+"></div>";break;case"spotify":var f=c[1];p='<div class="im_message_media_embed im_message_spotify_embed"><'+s+' type="text/html" frameborder="0" allowtransparency="true" src="https://embed.spotify.com/?uri=spotify:'+encodeEntities(encodeURIComponent(f))+'"></'+s+"></div>";break;case"twitter":p='<div class="im_message_twitter_embed"><blockquote class="twitter-tweet" lang="en"><a href="'+c[1]+'"></a></blockquote></div>',u=function(){t?window.twttr&&twttr.widgets.load(o[0]):(t=!0,$("<script>").appendTo("body").on("load",function(){twttr.events.bind("loaded",function(e){for(var t=0;t<r.length;t++)r[t].$emit("ui_height");r=[]})}).attr("src","https://platform.twitter.com/widgets.js")),r.push(e)};break;case"facebook":p='<div class="im_message_facebook_embed"><div class="fb-post" data-href="'+c[1]+'" data-width="300"></div></div>',u=function(){n?window.FB&&FB.XFBML.parse(o[0]):(n=!0,$("<script>").appendTo("body").on("load",function(){FB.Event.subscribe("xfbml.render",function(e){for(var t=0;t<i.length;t++)i[t].$emit("ui_height");i=[]})}).attr("src","https://connect.facebook.net/en_US/sdk.js#xfbml=1&appId=254098051407226&version=v2.0")),i.push(e)};break;case"gplus":p='<div class="im_message_gplus_embed"><div class="g-post" data-href="'+c[1]+'"></div></div>',u=function(){a?window.gapi&&gapi.post.go(o[0]):(a=!0,window.___gcfg={parsetags:"explicit"},$("<script>").appendTo("body").on("load",function(){gapi.post.go()}).attr("src","https://apis.google.com/js/plusone.js")),o.one("load",function(){e.$emit("ui_height")})}}p&&(o[0].innerHTML=p,u&&u())}}var t=!1,n=!1,a=!1,r=[],i=[],s=Config.Modes.chrome_packed?"webview":"iframe";return{link:e}}),angular.module("myApp.directives").directive("myDialogsListMobile",["$window","$timeout",function(e,t){function n(n,a,r){function i(){return d&&d.offsetHeight||(d=$(c)[0]),r.modal?void $(a).css({height:$(e).height()-(d?d.offsetHeight:58)-46}):(l&&l.offsetHeight||(l=$(".tg_page_head")[0]),s&&s.offsetHeight||(s=$(".im_dialogs_col_wrap")[0]),void $(a).css({height:$(e).height()-(l?l.offsetHeight:46)-(d?d.offsetHeight:58)-parseInt($(s).css("paddingBottom")||0)}))}var s=$(".im_dialogs_col_wrap")[0],o=a[0],l=$(".tg_page_head")[0],c=r.modal?".mobile_modal_body .im_dialogs_panel":".im_dialogs_panel",d=$(c)[0],p=!1;n.$on("ui_dialogs_search",i),n.$on("ui_dialogs_update",i),n.$on("ui_dialogs_append",function(){onContentLoaded(function(){p=!1,t(function(){$(o).trigger("scroll")})})}),n.$on("ui_dialogs_change",function(){onContentLoaded(function(){p=!1,t(function(){$(o).trigger("scroll")})})}),$(o).on("scroll",function(e){a.is(":visible")&&!p&&o.scrollTop>=o.scrollHeight-o.clientHeight-300&&(n.$emit("dialogs_need_more"),p=!0)}),$(e).on("resize",i),i(),setTimeout(i,1e3)}return{link:n}}]).directive("myHistoryMobile",["$window","$timeout","$rootScope","$transition",function(e,t,n,a){function r(n,a,r){function i(){var e,n;if(n=$(".im_message_focus:visible",c)[0]){var a=c.clientHeight,r=c.scrollTop,i=n.offsetTop,s=n.clientHeight;(!r||r+a<i||r>i+s)&&(c.scrollTop=Math.max(0,i-Math.floor(a/2)+26)),_=!1}else(e=$(".im_message_unread_split:visible",c)[0])?(c.scrollTop=Math.max(0,e.offsetTop-52),_=!1):(c.scrollTop=c.scrollHeight,_=!0);t(function(){$(c).trigger("scroll"),y=c.scrollTop})}function s(t){if(a.is(":visible")||$(a[0].parentNode.parentNode).is(":visible")){$(u).is(":visible")&&$(u).css({height:$(g).height()}),m&&m.offsetHeight||(m=$(".tg_page_head")[0]);var n=$(e).height()-p.offsetHeight-(m?m.offsetHeight:46);$(l).css({height:n}),o(),t!==!0&&_&&onContentLoaded(function(){c.scrollTop=c.scrollHeight})}}function o(){}var l=$(".im_history_wrap",a)[0],c=($(".im_history_messages",a)[0],$(".im_history_scrollable_wrap",a)[0]),d=$(".im_history_scrollable",a)[0],p=$(".im_bottom_panel_wrap",a)[0],u=$(".im_send_form_wrap",a)[0],m=$(".tg_page_head")[0],g=$(".im_send_form",a)[0],h=!1,f=!1;onContentLoaded(function(){c.scrollTop=c.scrollHeight}),n.$on("ui_history_append_new",function(e,t){if(_||t.my){var n=parseInt($(c).css("paddingRight"));$(c).addClass("im_history_to_bottom"),$(d).css({bottom:0,marginLeft:-Math.ceil(n/2)}),onContentLoaded(function(){$(c).removeClass("im_history_to_bottom"),$(d).css({bottom:"",marginLeft:""}),c.scrollTop=c.scrollHeight,o()})}}),n.$on("ui_history_change",function(){var e=parseInt($(c).css("paddingRight"));$(c).addClass("im_history_to_bottom"),$(d).css({bottom:0,marginLeft:-Math.ceil(e/2)}),onContentLoaded(function(){$(c).removeClass("im_history_to_bottom"),$(d).css({bottom:"",marginLeft:""}),s(!0),h=!1,f=!1,i()})}),n.$on("ui_history_change_scroll",function(){onContentLoaded(i)}),n.$on("ui_history_focus",function(){_||(c.scrollTop=c.scrollHeight,_=!0)}),n.$on("ui_history_prepend",function(){var e=c.scrollHeight,a=c.scrollTop,r=parseInt($(c).css("paddingRight")),s=c.clientHeight;$(c).addClass("im_history_to_bottom"),c.scrollHeight,$(d).css({bottom:-(e-a-s),marginLeft:-Math.ceil(r/2)});var l=function(){$(c).removeClass("im_history_to_bottom"),$(d).css({bottom:"",marginLeft:""}),y>=0?i():c.scrollTop=a+c.scrollHeight-e,o(),h=!1,t(function(){c.scrollHeight!=e&&$(c).trigger("scroll")}),clearTimeout(p),u()},p=setTimeout(l,0),u=n.$on("$viewContentLoaded",l)}),n.$on("ui_history_append",function(){var e=c.scrollHeight;onContentLoaded(function(){_=!1,o(),f=!1,y>=0&&i(),t(function(){c.scrollHeight!=e&&$(c).trigger("scroll")})})}),n.$on("ui_panel_update",function(e,a){onContentLoaded(function(){s(),a&&a.blur?n.$broadcast("ui_message_blur"):n.$broadcast("ui_message_send"),t(function(){$(c).trigger("scroll")})})}),n.$on("ui_selection_clear",function(){window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}),n.$on("ui_editor_resize",s),n.$on("ui_height",function(){onContentLoaded(s)});var _=!0,y=-1;$(c).on("scroll",function(e){if(a.is(":visible")&&!$(c).hasClass("im_history_to_bottom")){var t=c.scrollTop;_=t>=c.scrollHeight-c.clientHeight,y>=0&&y!=t&&(y=-1),!h&&t<=300?(h=!0,n.$emit("history_need_more")):!f&&t>=c.scrollHeight-c.clientHeight-300&&(f=!0,n.$emit("history_need_less"))}}),$(e).on("resize",s),s(),onContentLoaded(s)}return{link:r}}]).directive("myContactsListMobile",["$window","$timeout",function(e,t){function n(t,n,a){function r(){$(n).css({height:$(e).height()-(s&&s.offsetHeight||0)-(i&&i.offsetHeight||0)-64})}var i=$(".contacts_modal_search")[0],s=$(".contacts_modal_panel")[0];$(e).on("resize",r),t.$on("contacts_change",function(){onContentLoaded(r)}),onContentLoaded(r)}return{link:n}}]).directive("myCountriesListMobile",["$window","$timeout",function(e,t){function n(t,n,a){function r(){$(n).css({height:$(e).height()-(s&&s.offsetHeight||0)-(i&&i.offsetHeight||0)-64})}var i=$(".countries_modal_search")[0],s=$(".countries_modal_panel")[0];$(e).on("resize",r),onContentLoaded(r)}return{link:n}}]).directive("myInfiniteScrollerMobile",function(){function e(e,t,n){var a=t[0],r=!1;$(a).on("scroll",function(n){t.is(":visible")&&!r&&a.scrollTop>=a.scrollHeight-a.clientHeight-300&&(r=!0,e.$apply(function(){e.slice.limit+=e.slice.limitDelta||20}),onContentLoaded(function(){r=!1}))})}return{link:e,scope:!0}});