Advertisement
Guest User

td xss diff

a guest
Jun 11th, 2014
2,663
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. diff --git a/3.7.1_0/web/scripts/default-beautified.js b/3.7.1_0/web/scripts/default-beautified.js
  2. index 7a4603d..0b2034a 100644
  3. --- a/3.7.1_0/web/scripts/default-beautified.js
  4. +++ b/3.7.1_0/web/scripts/default-beautified.js
  5. @@ -98,7 +98,7 @@ window.Modernizr = function(e, t, i) {
  6.              return k
  7.          }("search tel url email datetime date month week time datetime-local number range color".split(" "))
  8.      }
  9. -    var d, h, p = "2.7.1",
  10. +    var d, h, p = "2.7.2",
  11.          f = {},
  12.          m = !0,
  13.          g = t.documentElement,
  14. @@ -406,7 +406,7 @@ var TD = {
  15.      sync: {},
  16.      cache: {}
  17.  };
  18. -TD.buildID = "d3e1d3bbcbb7a4826e63efcaf1b25a9c3eb4172c", TD.buildIDShort = "d3e1d3b", TD.version = "3.7.1", TD.config = {
  19. +TD.buildID = "23c4e3847adeb9802cbbb07473a565e4c3e2bd1a", TD.buildIDShort = "23c4e38", TD.version = "3.7.2", TD.config = {
  20.      api_root: "https://tweetdeck.twitter.com",
  21.      twitter_api_base: "https://api.twitter.com",
  22.      twitter_api_version: "1.1",
  23. @@ -1043,7 +1043,7 @@ function(e, t) {
  24.      }
  25.  
  26.      function C(e, t, i) {
  27. -        var n = Kt.exec(t);
  28. +        var n = Gt.exec(t);
  29.          return n ? Math.max(0, n[1] - (i || 0)) + (n[2] || "px") : t
  30.      }
  31.  
  32. @@ -1281,8 +1281,8 @@ function(e, t) {
  33.      }
  34.      var H = [],
  35.          W = H.slice,
  36. -        G = H.concat,
  37. -        K = H.push,
  38. +        K = H.concat,
  39. +        G = H.push,
  40.          V = H.indexOf,
  41.          z = {},
  42.          q = z.toString,
  43. @@ -1339,7 +1339,7 @@ function(e, t) {
  44.          end: function() {
  45.              return this.prevObject || this.constructor(null)
  46.          },
  47. -        push: K,
  48. +        push: G,
  49.          sort: H.sort,
  50.          splice: H.splice
  51.      }, et.extend = et.fn.extend = function() {
  52. @@ -1416,7 +1416,7 @@ function(e, t) {
  53.          },
  54.          makeArray: function(e, t) {
  55.              var n = t || [];
  56. -            return null != e && (i(Object(e)) ? et.merge(n, "string" == typeof e ? [e] : e) : K.call(n, e)), n
  57. +            return null != e && (i(Object(e)) ? et.merge(n, "string" == typeof e ? [e] : e) : G.call(n, e)), n
  58.          },
  59.          inArray: function(e, t, i) {
  60.              return null == t ? -1 : V.call(t, e, i)
  61. @@ -1438,7 +1438,7 @@ function(e, t) {
  62.                  for (; o > s; s++) r = t(e[s], s, n), null != r && c.push(r);
  63.              else
  64.                  for (s in e) r = t(e[s], s, n), null != r && c.push(r);
  65. -            return G.apply([], c)
  66. +            return K.apply([], c)
  67.          },
  68.          guid: 1,
  69.          proxy: function(e, t) {
  70. @@ -1549,7 +1549,7 @@ function(e, t) {
  71.          function d() {}
  72.  
  73.          function h(e, i) {
  74. -            var n, r, s, o, a, c, u, l = G[e + " "];
  75. +            var n, r, s, o, a, c, u, l = K[e + " "];
  76.              if (l) return i ? 0 : l.slice(0);
  77.              for (a = e, c = [], u = C.preFilter; a;) {
  78.                  (!n || (r = ut.exec(a))) && (r && (a = a.slice(r[0].length) || a), c.push(s = [])), n = !1, (r = lt.exec(a)) && (n = r.shift(), s.push({
  79. @@ -1563,7 +1563,7 @@ function(e, t) {
  80.                  }), a = a.slice(n.length));
  81.                  if (!n) break
  82.              }
  83. -            return i ? a.length : a ? t.error(e) : G(e, c).slice(0)
  84. +            return i ? a.length : a ? t.error(e) : K(e, c).slice(0)
  85.          }
  86.  
  87.          function p(e) {
  88. @@ -1712,8 +1712,8 @@ function(e, t) {
  89.              j = 0,
  90.              H = 0,
  91.              W = i(),
  92. -            G = i(),
  93.              K = i(),
  94. +            G = i(),
  95.              V = function(e, t) {
  96.                  return e === t && (M = !0), 0
  97.              },
  98. @@ -2109,10 +2109,10 @@ function(e, t) {
  99.          return d.prototype = C.filters = C.pseudos, C.setFilters = new d, A = t.compile = function(e, t) {
  100.              var i, n = [],
  101.                  r = [],
  102. -                s = K[e + " "];
  103. +                s = G[e + " "];
  104.              if (!s) {
  105.                  for (t || (t = h(e)), i = t.length; i--;) s = v(t[i]), s[P] ? n.push(s) : r.push(s);
  106. -                s = K(e, y(r, n))
  107. +                s = G(e, y(r, n))
  108.              }
  109.              return s
  110.          }, b.sortStable = P.split("").sort(V).join("") === P, b.detectDuplicates = !!M, x(), b.sortDetached = r(function(e) {
  111. @@ -2943,7 +2943,7 @@ function(e, t) {
  112.              return this.remove(e, !0)
  113.          },
  114.          domManip: function(e, t) {
  115. -            e = G.apply([], e);
  116. +            e = K.apply([], e);
  117.              var i, n, r, s, o, a, c = 0,
  118.                  u = this.length,
  119.                  l = this,
  120. @@ -2969,7 +2969,7 @@ function(e, t) {
  121.          replaceAll: "replaceWith"
  122.      }, function(e, t) {
  123.          et.fn[e] = function(e) {
  124. -            for (var i, n = [], r = et(e), s = r.length - 1, o = 0; s >= o; o++) i = o === s ? this : this.clone(!0), et(r[o])[t](i), K.apply(n, i.get());
  125. +            for (var i, n = [], r = et(e), s = r.length - 1, o = 0; s >= o; o++) i = o === s ? this : this.clone(!0), et(r[o])[t](i), G.apply(n, i.get());
  126.              return this.pushStack(n)
  127.          }
  128.      });
  129. @@ -3008,8 +3008,8 @@ function(e, t) {
  130.          for (s in t) e.style[s] = o[s];
  131.          return r
  132.      };
  133. -    var Gt = /^(none|table(?!-c[ea]).+)/,
  134. -        Kt = new RegExp("^(" + wt + ")(.*)$", "i"),
  135. +    var Kt = /^(none|table(?!-c[ea]).+)/,
  136. +        Gt = new RegExp("^(" + wt + ")(.*)$", "i"),
  137.          Vt = new RegExp("^([+-])=(" + wt + ")", "i"),
  138.          zt = {
  139.              position: "absolute",
  140. @@ -3061,7 +3061,7 @@ function(e, t) {
  141.      }), et.each(["height", "width"], function(e, t) {
  142.          et.cssHooks[t] = {
  143.              get: function(e, i, n) {
  144. -                return i ? 0 === e.offsetWidth && Gt.test(et.css(e, "display")) ? et.swap(e, zt, function() {
  145. +                return i ? 0 === e.offsetWidth && Kt.test(et.css(e, "display")) ? et.swap(e, zt, function() {
  146.                      return E(e, t, n)
  147.                  }) : E(e, t, n) : void 0
  148.              },
  149. @@ -4317,7 +4317,7 @@ function(e, t, i) {
  150.      return e
  151.  }(), TD && TD.config && (TD.config.disable_metrics_error || TD.metrics.error.attach(), TD.config.disable_metrics_event || TD.metrics.event.attach()), TD.controller.feather = function() {
  152.      var exposed = {};
  153. -    return exposed.latestFeatherId = 18, exposed.loadFeathers = function(isRetry) {
  154. +    return exposed.latestFeatherId = 19, exposed.loadFeathers = function(isRetry) {
  155.          var d = new TD.core.defer.Deferred;
  156.          return $.get(TD.config.api_root + "/web/scripts/unbundled/feathers.js").success(function(feathers) {
  157.              try {
  158. @@ -4999,17 +4999,17 @@ function() {
  159.              return r
  160.          }
  161.  
  162. -        function Gt(e) {
  163. +        function Kt(e) {
  164.              for (var t = arguments, i = -1, n = et(t, !0, !1, 1), r = t[2] && t[2][t[1]] === e ? 1 : n.length, s = fn(r); ++i < r;) s[i] = e[n[i]];
  165.              return s
  166.          }
  167.  
  168. -        function Kt(e, t, i) {
  169. +        function Gt(e, t, i) {
  170.              var n = -1,
  171.                  r = ct(),
  172.                  s = e ? e.length : 0,
  173.                  o = !1;
  174. -            return i = (0 > i ? Kn(0, s + i) : i) || 0, Jn(e) ? o = r(e, t, i) > -1 : "number" == typeof s ? o = (Ot(e) ? e.indexOf(t, i) : r(e, t, i)) > -1 : cr(e, function(e) {
  175. +            return i = (0 > i ? Gn(0, s + i) : i) || 0, Jn(e) ? o = r(e, t, i) > -1 : "number" == typeof s ? o = (Ot(e) ? e.indexOf(t, i) : r(e, t, i)) > -1 : cr(e, function(e) {
  176.                  return ++n >= i ? !(o = e === t) : void 0
  177.              }), o
  178.          }
  179. @@ -5167,7 +5167,7 @@ function() {
  180.          function si(e, t, i) {
  181.              if (e && "number" != typeof e.length && (e = Wt(e)), null == t || i) return e ? e[nt(0, e.length - 1)] : p;
  182.              var n = oi(e);
  183. -            return n.length = Vn(Kn(0, t), n.length), n
  184. +            return n.length = Vn(Gn(0, t), n.length), n
  185.          }
  186.  
  187.          function oi(e) {
  188. @@ -5253,7 +5253,7 @@ function() {
  189.                  var s = -1;
  190.                  for (t = f.createCallback(t, i, 3); ++s < r && t(e[s], s, e);) n++
  191.              } else if (n = t, null == n || i) return e ? e[0] : p;
  192. -            return d(e, 0, Vn(Kn(0, n), r))
  193. +            return d(e, 0, Vn(Gn(0, n), r))
  194.          }
  195.  
  196.          function gi(e, t, i, n) {
  197. @@ -5263,7 +5263,7 @@ function() {
  198.          function Ti(t, i, n) {
  199.              if ("number" == typeof n) {
  200.                  var r = t ? t.length : 0;
  201. -                n = 0 > n ? Kn(0, r + n) : n || 0
  202. +                n = 0 > n ? Gn(0, r + n) : n || 0
  203.              } else if (n) {
  204.                  var s = Ei(t, i);
  205.                  return t[s] === i ? s : -1
  206. @@ -5278,7 +5278,7 @@ function() {
  207.                  var s = r;
  208.                  for (t = f.createCallback(t, i, 3); s-- && t(e[s], s, e);) n++
  209.              } else n = null == t || i ? 1 : t || n;
  210. -            return d(e, 0, Vn(Kn(0, r - n), r))
  211. +            return d(e, 0, Vn(Gn(0, r - n), r))
  212.          }
  213.  
  214.          function yi() {
  215. @@ -5309,12 +5309,12 @@ function() {
  216.                  var s = r;
  217.                  for (t = f.createCallback(t, i, 3); s-- && t(e[s], s, e);) n++
  218.              } else if (n = t, null == n || i) return e ? e[r - 1] : p;
  219. -            return d(e, Kn(0, r - n))
  220. +            return d(e, Gn(0, r - n))
  221.          }
  222.  
  223.          function wi(e, t, i) {
  224.              var n = e ? e.length : 0;
  225. -            for ("number" == typeof i && (n = (0 > i ? Kn(0, n + i) : Vn(i, n - 1)) + 1); n--;)
  226. +            for ("number" == typeof i && (n = (0 > i ? Gn(0, n + i) : Vn(i, n - 1)) + 1); n--;)
  227.                  if (e[n] === t) return n;
  228.              return -1
  229.          }
  230. @@ -5327,7 +5327,7 @@ function() {
  231.  
  232.          function bi(e, t, i) {
  233.              e = +e || 0, i = "number" == typeof i ? i : +i || 1, null == t && (t = e, e = 0);
  234. -            for (var n = -1, r = Kn(0, kn((t - e) / (i || 1))), s = fn(r); ++n < r;) s[n] = e, e += i;
  235. +            for (var n = -1, r = Gn(0, kn((t - e) / (i || 1))), s = fn(r); ++n < r;) s[n] = e, e += i;
  236.              return s
  237.          }
  238.  
  239. @@ -5348,7 +5348,7 @@ function() {
  240.                      r = -1,
  241.                      s = e ? e.length : 0;
  242.                  for (t = f.createCallback(t, i, 3); ++r < s && t(e[r], r, e);) n++
  243. -            } else n = null == t || i ? 1 : Kn(0, t);
  244. +            } else n = null == t || i ? 1 : Gn(0, t);
  245.              return d(e, n)
  246.          }
  247.  
  248. @@ -5439,10 +5439,10 @@ function() {
  249.                  d = !1,
  250.                  h = !0;
  251.              if (!kt(e)) throw new bn;
  252. -            if (t = Kn(0, t) || 0, i === !0) {
  253. +            if (t = Gn(0, t) || 0, i === !0) {
  254.                  var f = !0;
  255.                  h = !1
  256. -            } else Mt(i) && (f = i.leading, d = "maxWait" in i && (Kn(t, i.maxWait) || 0), h = "trailing" in i ? i.trailing : h);
  257. +            } else Mt(i) && (f = i.leading, d = "maxWait" in i && (Gn(t, i.maxWait) || 0), h = "trailing" in i ? i.trailing : h);
  258.              var m = function() {
  259.                      var i = t - (mr() - o);
  260.                      if (0 >= i) {
  261. @@ -5500,11 +5500,11 @@ function() {
  262.              }
  263.          }
  264.  
  265. -        function Gi(e) {
  266. +        function Ki(e) {
  267.              return ot(e, 16, d(arguments, 1))
  268.          }
  269.  
  270. -        function Ki(e) {
  271. +        function Gi(e) {
  272.              return ot(e, 32, null, d(arguments, 1))
  273.          }
  274.  
  275. @@ -5512,7 +5512,7 @@ function() {
  276.              var n = !0,
  277.                  r = !0;
  278.              if (!kt(e)) throw new bn;
  279. -            return i === !1 ? n = !1 : Mt(i) && (n = "leading" in i ? i.leading : n, r = "trailing" in i ? i.trailing : r), G.leading = n, G.maxWait = t, G.trailing = r, Pi(e, t, G)
  280. +            return i === !1 ? n = !1 : Mt(i) && (n = "leading" in i ? i.leading : n, r = "trailing" in i ? i.trailing : r), K.leading = n, K.maxWait = t, K.trailing = r, Pi(e, t, K)
  281.          }
  282.  
  283.          function zi(e, t) {
  284. @@ -5700,8 +5700,8 @@ function() {
  285.              jn = ut(jn = fn.isArray) && jn,
  286.              Hn = i.isFinite,
  287.              Wn = i.isNaN,
  288. -            Gn = ut(Gn = Dn.keys) && Gn,
  289. -            Kn = vn.max,
  290. +            Kn = ut(Kn = Dn.keys) && Kn,
  291. +            Gn = vn.max,
  292.              Vn = vn.min,
  293.              zn = i.parseInt,
  294.              qn = vn.random,
  295. @@ -5728,7 +5728,7 @@ function() {
  296.              }
  297.          }());
  298.          var Xn = Pn ? function(e, t) {
  299. -                K.value = t, Pn(e, "__bindData__", K)
  300. +                G.value = t, Pn(e, "__bindData__", G)
  301.              } : en,
  302.              Jn = jn || function(e) {
  303.                  return e && "object" == typeof e && "number" == typeof e.length && An.call(e) == O || !1
  304. @@ -5741,8 +5741,8 @@ function() {
  305.                  for (t in i) Nn.call(i, t) && n.push(t);
  306.                  return n
  307.              },
  308. -            er = Gn ? function(e) {
  309. -                return Mt(e) ? Gn(e) : []
  310. +            er = Kn ? function(e) {
  311. +                return Mt(e) ? Kn(e) : []
  312.              } : Zn,
  313.              tr = {
  314.                  "&": "&amp;",
  315. @@ -5820,7 +5820,7 @@ function() {
  316.              gr = 8 == zn(D + "08") ? zn : function(e, t) {
  317.                  return zn(Ot(e) ? e.replace(I, "") : e, t || 0)
  318.              };
  319. -        return f.after = Ri, f.assign = sr, f.at = Gt, f.bind = Ni, f.bindAll = Oi, f.bindKey = Fi, f.chain = un, f.compact = di, f.compose = Ui, f.constant = qi, f.countBy = lr, f.create = mt, f.createCallback = Yi, f.curry = $i, f.debounce = Pi, f.defaults = or, f.defer = Bi, f.delay = ji, f.difference = hi, f.filter = zt, f.flatten = gi, f.forEach = Qt, f.forEachRight = Xt, f.forIn = ar, f.forInRight = vt, f.forOwn = cr, f.forOwnRight = yt, f.functions = Dt, f.groupBy = dr, f.indexBy = hr, f.initial = vi, f.intersection = yi, f.invert = _t, f.invoke = Jt, f.keys = er, f.map = Zt, f.mapValues = Ut, f.max = ei, f.memoize = Hi, f.merge = $t, f.min = ti, f.omit = Pt, f.once = Wi, f.pairs = Bt, f.partial = Gi, f.partialRight = Ki, f.pick = jt, f.pluck = pr, f.property = tn, f.pull = _i, f.range = bi, f.reject = ri, f.remove = Ci, f.rest = Si, f.shuffle = oi, f.sortBy = ui, f.tap = ln, f.throttle = Vi, f.times = on, f.toArray = li, f.transform = Ht, f.union = Ai, f.uniq = Ii, f.values = Wt, f.where = fr, f.without = ki, f.wrap = zi, f.xor = Mi, f.zip = xi, f.zipObject = Li, f.collect = Zt, f.drop = Si, f.each = Qt, f.eachRight = Xt, f.extend = sr, f.methods = Dt, f.object = Li, f.select = zt, f.tail = Si, f.unique = Ii, f.unzip = xi, Ji(f), f.clone = pt, f.cloneDeep = ft, f.contains = Kt, f.escape = Qi, f.every = Vt, f.find = qt, f.findIndex = pi, f.findKey = gt, f.findLast = Yt, f.findLastIndex = fi, f.findLastKey = Tt, f.has = wt, f.identity = Xi, f.indexOf = Ti, f.isArguments = ht, f.isArray = Jn, f.isBoolean = bt, f.isDate = Ct, f.isElement = St, f.isEmpty = Et, f.isEqual = At, f.isFinite = It, f.isFunction = kt, f.isNaN = xt, f.isNull = Lt, f.isNumber = Rt, f.isObject = Mt, f.isPlainObject = ur, f.isRegExp = Nt, f.isString = Ot, f.isUndefined = Ft, f.lastIndexOf = wi, f.mixin = Ji, f.noConflict = Zi, f.noop = en, f.now = mr, f.parseInt = gr, f.random = nn, f.reduce = ii, f.reduceRight = ni, f.result = rn, f.runInContext = h, f.size = ai, f.some = ci, f.sortedIndex = Ei, f.template = sn, f.unescape = an, f.uniqueId = cn, f.all = Vt, f.any = ci, f.detect = qt, f.findWhere = qt, f.foldl = ii, f.foldr = ni, f.include = Kt, f.inject = ii, Ji(function() {
  320. +        return f.after = Ri, f.assign = sr, f.at = Kt, f.bind = Ni, f.bindAll = Oi, f.bindKey = Fi, f.chain = un, f.compact = di, f.compose = Ui, f.constant = qi, f.countBy = lr, f.create = mt, f.createCallback = Yi, f.curry = $i, f.debounce = Pi, f.defaults = or, f.defer = Bi, f.delay = ji, f.difference = hi, f.filter = zt, f.flatten = gi, f.forEach = Qt, f.forEachRight = Xt, f.forIn = ar, f.forInRight = vt, f.forOwn = cr, f.forOwnRight = yt, f.functions = Dt, f.groupBy = dr, f.indexBy = hr, f.initial = vi, f.intersection = yi, f.invert = _t, f.invoke = Jt, f.keys = er, f.map = Zt, f.mapValues = Ut, f.max = ei, f.memoize = Hi, f.merge = $t, f.min = ti, f.omit = Pt, f.once = Wi, f.pairs = Bt, f.partial = Ki, f.partialRight = Gi, f.pick = jt, f.pluck = pr, f.property = tn, f.pull = _i, f.range = bi, f.reject = ri, f.remove = Ci, f.rest = Si, f.shuffle = oi, f.sortBy = ui, f.tap = ln, f.throttle = Vi, f.times = on, f.toArray = li, f.transform = Ht, f.union = Ai, f.uniq = Ii, f.values = Wt, f.where = fr, f.without = ki, f.wrap = zi, f.xor = Mi, f.zip = xi, f.zipObject = Li, f.collect = Zt, f.drop = Si, f.each = Qt, f.eachRight = Xt, f.extend = sr, f.methods = Dt, f.object = Li, f.select = zt, f.tail = Si, f.unique = Ii, f.unzip = xi, Ji(f), f.clone = pt, f.cloneDeep = ft, f.contains = Gt, f.escape = Qi, f.every = Vt, f.find = qt, f.findIndex = pi, f.findKey = gt, f.findLast = Yt, f.findLastIndex = fi, f.findLastKey = Tt, f.has = wt, f.identity = Xi, f.indexOf = Ti, f.isArguments = ht, f.isArray = Jn, f.isBoolean = bt, f.isDate = Ct, f.isElement = St, f.isEmpty = Et, f.isEqual = At, f.isFinite = It, f.isFunction = kt, f.isNaN = xt, f.isNull = Lt, f.isNumber = Rt, f.isObject = Mt, f.isPlainObject = ur, f.isRegExp = Nt, f.isString = Ot, f.isUndefined = Ft, f.lastIndexOf = wi, f.mixin = Ji, f.noConflict = Zi, f.noop = en, f.now = mr, f.parseInt = gr, f.random = nn, f.reduce = ii, f.reduceRight = ni, f.result = rn, f.runInContext = h, f.size = ai, f.some = ci, f.sortedIndex = Ei, f.template = sn, f.unescape = an, f.uniqueId = cn, f.all = Vt, f.any = ci, f.detect = qt, f.findWhere = qt, f.foldl = ii, f.foldr = ni, f.include = Gt, f.inject = ii, Ji(function() {
  321.              var e = {};
  322.              return cr(f, function(t, i) {
  323.                  f.prototype[i] || (e[i] = t)
  324. @@ -5882,12 +5882,12 @@ function() {
  325.          H = "[object String]",
  326.          W = {};
  327.      W[$] = !1, W[N] = W[O] = W[F] = W[U] = W[P] = W[B] = W[j] = W[H] = !0;
  328. -    var G = {
  329. +    var K = {
  330.              leading: !1,
  331.              maxWait: 0,
  332.              trailing: !1
  333.          },
  334. -        K = {
  335. +        G = {
  336.              configurable: !1,
  337.              enumerable: !1,
  338.              value: null,
  339. @@ -6237,9 +6237,7 @@ function() {
  340.          T = /^#column=([a-zA-Z0-9+\/=]+)$/,
  341.          v = /^https?:\/\/tweetdeck.twitter.com\/(#[a-zA-Z0-9+\/=]+)$/,
  342.          y = ["404", "500", "about", "account", "help", "jobs", "privacy", "search", "search-advanced", "tos"],
  343. -        D = document.createElement("div"),
  344. -        w = document.createElement("div"),
  345. -        b = !isNaN(new Date("Mon Oct 08 16:34:01 +0000 2012").getTime());
  346. +        D = !isNaN(new Date("Mon Oct 08 16:34:01 +0000 2012").getTime());
  347.      return $.subscribe("/date", function(e) {
  348.          var t = TD.util.parseDateString(e).getTime(),
  349.              i = (new Date).getTime();
  350. @@ -6253,7 +6251,7 @@ function() {
  351.          TWITTER_USERNAME_REGEXP: /@([A-Za-z0-9_]+)/g,
  352.          parseDateString: function(e) {
  353.              var t;
  354. -            return t = new Date(!b && e ? Date.parse(e.replace(/( \+)/, " UTC$1")) : e)
  355. +            return t = new Date(!D && e ? Date.parse(e.replace(/( \+)/, " UTC$1")) : e)
  356.          },
  357.          parseISO8601: function(e) {
  358.              var t = e.split("+"),
  359. @@ -6301,18 +6299,8 @@ function() {
  360.          transform: function(e, t) {
  361.              return e ? (t = t || {}, this.updateEntities(e, t), e = this.linkify(e, t), this.emojify(e)) : ""
  362.          },
  363. -        _parseTextOnly: function(e, t) {
  364. -            for (var i, n = e.childNodes, r = n.length, s = 0; r > s; s++) i = n[s], 3 === i.nodeType && TD.emoji.test(i.nodeValue) ? t.push(i) : i.hasChildNodes() && this._parseTextOnly(i, t)
  365. -        },
  366. -        _replaceTextOnly: function(e) {
  367. -            for (var t, i, n = e.length, r = 0; n > r; r++) {
  368. -                for (t = e[r], w.innerHTML = TD.emoji.parse(t.nodeValue), i = document.createDocumentFragment(); w.hasChildNodes();) i.appendChild(w.firstChild);
  369. -                t.parentNode.replaceChild(i, t)
  370. -            }
  371. -        },
  372.          emojify: function(e) {
  373. -            var t;
  374. -            return TD.emoji.test(e) && (D.innerHTML = e, t = [], this._parseTextOnly(D, t), this._replaceTextOnly(t), e = D.innerHTML, D.innerHTML = ""), e
  375. +            return e
  376.          },
  377.          updateEntities: function(e, t) {
  378.              var i, n, r, s, o, a, c, u = twttr.txt.modifyIndicesFromUnicodeToUTF16;
  379. @@ -6893,36 +6881,39 @@ function(e, t) {
  380.          return n
  381.      }, t
  382.  }), TD.emoji = function(e) {
  383. -    var t = {
  384. -        theme: "",
  385. -        path: "/web/assets/emoji",
  386. -        unified: {},
  387. -        parse: function(e) {
  388. -            return e.replace(t.re, t.place).replace(/\uFE0F/g, "")
  389. -        },
  390. -        place: function(e, i, n) {
  391. -            var r = 1 === e.length && "️" === n.charAt(i + 1) ? "️" : "";
  392. -            return TD.ui.template.render("text/emoji", {
  393. -                alt: e + r,
  394. -                src: t.path + "/" + t.theme + "/" + t.unified[e] + ".png"
  395. -            })
  396. -        },
  397. -        test: function(e) {
  398. -            var i = t.re.test(e);
  399. -            return t.re.lastIndex = 0, i
  400. -        }
  401. -    };
  402. -    return t.re = new RegExp(e.values.map(function(i, n) {
  403. -        var r = JSON.parse('"' + i + '"');
  404. -        return t.unified[r] = e.keys[n], i
  405. +    var t = />(?:\uFE0F|[\uFE00-\uFE0D])/g,
  406. +        i = {
  407. +            theme: "",
  408. +            path: "/web/assets/emoji",
  409. +            unified: {},
  410. +            parse: function(e) {
  411. +                return e.replace(i.re, i.place).replace(t, ">")
  412. +            },
  413. +            place: function(e, t, n) {
  414. +                var r = n.charAt(t + 1),
  415. +                    s = "︎" !== r,
  416. +                    o = s && 1 === e.length && /([\uFE00-\uFE0F])/.test(r) ? RegExp.$1 : "";
  417. +                return s ? TD.ui.template.render("text/emoji", {
  418. +                    alt: e + o,
  419. +                    src: i.path + "/" + i.theme + "/" + i.unified[e] + ".png"
  420. +                }) : e
  421. +            },
  422. +            test: function(e) {
  423. +                var t = i.re.test(e);
  424. +                return i.re.lastIndex = 0, t
  425. +            }
  426. +        };
  427. +    return i.re = new RegExp(e.values.map(function(t, n) {
  428. +        var r = JSON.parse('"' + t + '"');
  429. +        return i.unified[r] = e.keys[n], t
  430.      }).join("|"), "g"), $(document).one("dataSettingsValues", function() {
  431. -        t.theme || (t.theme = TD.settings.getTheme())
  432. +        i.theme || (i.theme = TD.settings.getTheme())
  433.      }), $(document).on("dataSettings", function() {
  434.          var e = TD.settings.getTheme();
  435. -        t.theme !== e && ($(".emoji").each(function(i, n) {
  436. -            n.src = n.src.replace(t.theme, e)
  437. -        }), t.theme = e)
  438. -    }), t
  439. +        i.theme !== e && ($(".emoji").each(function(t, n) {
  440. +            n.src = n.src.replace(i.theme, e)
  441. +        }), i.theme = e)
  442. +    }), i
  443.  }({
  444.      keys: ["1f1ec-1f1e7", "1f1fa-1f1f8", "1f1e9-1f1ea", "1f1ea-1f1f8", "1f1eb-1f1f7", "1f1e8-1f1f3", "1f1ee-1f1f9", "1f1ef-1f1f5", "1f1f0-1f1f7", "1f1f7-1f1fa", "1f47a", "1f194", "1f195", "1f196", "1f197", "1f198", "1f199", "1f19a", "1f1e6", "1f1e7", "1f483", "1f1e8", "1f0cf", "1f1e9", "1f170", "1f1ea", "1f171", "1f1eb", "1f17e", "1f1ec", "1f1ed", "1f17f", "1f1ee", "1f18e", "1f1ef", "1f191", "1f1f0", "1f1f1", "1f1f2", "1f1f3", "1f1f4", "1f1f5", "1f1f6", "1f192", "1f1f7", "1f1f8", "1f1f9", "1f193", "1f1fa", "1f1fb", "1f1fc", "1f1fd", "1f1fe", "1f1ff", "1f201", "1f202", "1f21a", "1f22f", "1f232", "1f233", "1f234", "1f235", "1f236", "1f237", "1f238", "1f239", "1f23a", "1f250", "1f251", "1f300", "1f301", "1f302", "1f303", "1f304", "1f305", "1f306", "1f307", "1f308", "1f309", "1f30a", "1f30b", "1f30c", "1f30d", "1f30e", "1f30f", "1f310", "1f311", "1f312", "1f313", "1f314", "1f315", "1f316", "1f317", "1f318", "1f319", "1f31a", "1f31b", "1f31c", "1f31d", "1f31e", "1f31f", "1f320", "1f330", "1f331", "1f332", "1f333", "1f334", "1f335", "1f337", "1f338", "1f339", "1f33a", "1f33b", "1f33c", "1f33d", "1f33e", "1f33f", "1f340", "1f341", "1f342", "1f343", "1f344", "1f345", "1f346", "1f347", "1f348", "1f349", "1f34a", "1f34b", "1f34c", "1f34d", "1f34e", "1f34f", "1f350", "1f351", "1f352", "1f353", "1f354", "1f355", "1f356", "1f357", "1f358", "1f359", "1f35a", "1f35b", "1f35c", "1f35d", "1f35e", "1f35f", "1f360", "1f361", "1f362", "1f363", "1f364", "1f365", "1f366", "1f367", "1f368", "1f369", "1f36a", "1f36b", "1f36c", "1f36d", "1f36e", "1f36f", "1f370", "1f371", "1f372", "1f373", "1f374", "1f375", "1f376", "1f377", "1f378", "1f379", "1f37a", "1f37b", "1f37c", "1f380", "1f381", "1f382", "1f383", "1f384", "1f385", "1f386", "1f387", "1f388", "1f389", "1f38a", "1f38b", "1f38c", "1f38d", "1f38e", "1f38f", "1f390", "1f391", "1f392", "1f393", "1f3a0", "1f3a1", "1f3a2", "1f3a3", "1f3a4", "1f3a5", "1f3a6", "1f3a7", "1f3a8", "1f3a9", "1f3aa", "1f3ab", "1f3ac", "1f3ad", "1f3ae", "1f3af", "1f3b0", "1f3b1", "1f3b2", "1f3b3", "1f3b4", "1f3b5", "1f3b6", "1f3b7", "1f3b8", "1f3b9", "1f3ba", "1f3bb", "1f3bc", "1f3bd", "1f3be", "1f3bf", "1f3c0", "1f3c1", "1f3c2", "1f3c3", "1f3c4", "1f3c6", "1f3c7", "1f3c8", "1f3c9", "1f3ca", "1f3e0", "1f3e1", "1f3e2", "1f3e3", "1f3e4", "1f3e5", "1f3e6", "1f3e7", "1f3e8", "1f3e9", "1f3ea", "1f3eb", "1f3ec", "1f3ed", "1f3ee", "1f3ef", "1f3f0", "1f400", "1f401", "1f402", "1f403", "1f404", "1f405", "1f406", "1f407", "1f408", "1f409", "1f40a", "1f40b", "1f40c", "1f40d", "1f40e", "1f40f", "1f410", "1f411", "1f412", "1f413", "1f414", "1f415", "1f416", "1f417", "1f418", "1f419", "1f41a", "1f41b", "1f41c", "1f41d", "1f41e", "1f41f", "1f420", "1f421", "1f422", "1f423", "1f424", "1f425", "1f426", "1f427", "1f428", "1f429", "1f42a", "1f42b", "1f42c", "1f42d", "1f42e", "1f42f", "1f430", "1f431", "1f432", "1f433", "1f434", "1f435", "1f436", "1f437", "1f438", "1f439", "1f43a", "1f43b", "1f43c", "1f43d", "1f43e", "1f440", "1f442", "1f443", "1f444", "1f445", "1f446", "1f447", "1f448", "1f449", "1f44a", "1f44b", "1f44c", "1f44d", "1f44e", "1f44f", "1f450", "1f451", "1f452", "1f453", "1f454", "1f455", "1f456", "1f457", "1f458", "1f459", "1f45a", "1f45b", "1f45c", "1f45d", "1f45e", "1f45f", "1f460", "1f461", "1f462", "1f463", "1f464", "1f465", "1f466", "1f467", "1f468", "1f469", "1f46a", "1f46b", "1f46c", "1f46d", "1f46e", "1f46f", "1f470", "1f471", "1f472", "1f473", "1f474", "1f475", "1f476", "1f477", "1f478", "1f479", "1f004", "1f47b", "1f47c", "1f47d", "1f47e", "1f47f", "1f480", "1f481", "1f482", "1f484", "1f485", "1f486", "1f487", "1f488", "1f489", "1f48a", "1f48b", "1f48c", "1f48d", "1f48e", "1f48f", "1f490", "1f491", "1f492", "1f493", "1f494", "1f495", "1f496", "1f497", "1f498", "1f499", "1f49a", "1f49b", "1f49c", "1f49d", "1f49e", "1f49f", "1f4a0", "1f4a1", "1f4a2", "1f4a3", "1f4a4", "1f4a5", "1f4a6", "1f4a7", "1f4a8", "1f4a9", "1f4aa", "1f4ab", "1f4ac", "1f4ad", "1f4ae", "1f4af", "1f4b0", "1f4b1", "1f4b2", "1f4b3", "1f4b4", "1f4b5", "1f4b6", "1f4b7", "1f4b8", "1f4b9", "1f4ba", "1f4bb", "1f4bc", "1f4bd", "1f4be", "1f4bf", "1f4c0", "1f4c1", "1f4c2", "1f4c3", "1f4c4", "1f4c5", "1f4c6", "1f4c7", "1f4c8", "1f4c9", "1f4ca", "1f4cb", "1f4cc", "1f4cd", "1f4ce", "1f4cf", "1f4d0", "1f4d1", "1f4d2", "1f4d3", "1f4d4", "1f4d5", "1f4d6", "1f4d7", "1f4d8", "1f4d9", "1f4da", "1f4db", "1f4dc", "1f4dd", "1f4de", "1f4df", "1f4e0", "1f4e1", "1f4e2", "1f4e3", "1f4e4", "1f4e5", "1f4e6", "1f4e7", "1f4e8", "1f4e9", "1f4ea", "1f4eb", "1f4ec", "1f4ed", "1f4ee", "1f4ef", "1f4f0", "1f4f1", "1f4f2", "1f4f3", "1f4f4", "1f4f5", "1f4f6", "1f4f7", "1f4f9", "1f4fa", "1f4fb", "1f4fc", "1f500", "1f501", "1f502", "1f503", "1f504", "1f505", "1f506", "1f507", "1f508", "1f509", "1f50a", "1f50b", "1f50c", "1f50d", "1f50e", "1f50f", "1f510", "1f511", "1f512", "1f513", "1f514", "1f515", "1f516", "1f517", "1f518", "1f519", "1f51a", "1f51b", "1f51c", "1f51d", "1f51e", "1f51f", "1f520", "1f521", "1f522", "1f523", "1f524", "1f525", "1f526", "1f527", "1f528", "1f529", "1f52a", "1f52b", "1f52c", "1f52d", "1f52e", "1f52f", "1f530", "1f531", "1f532", "1f533", "1f534", "1f535", "1f536", "1f537", "1f538", "1f539", "1f53a", "1f53b", "1f53c", "1f53d", "1f550", "1f551", "1f552", "1f553", "1f554", "1f555", "1f556", "1f557", "1f558", "1f559", "1f55a", "1f55b", "1f55c", "1f55d", "1f55e", "1f55f", "1f560", "1f561", "1f562", "1f563", "1f564", "1f565", "1f566", "1f567", "1f5fb", "1f5fc", "1f5fd", "1f5fe", "1f5ff", "1f600", "1f601", "1f602", "1f603", "1f604", "1f605", "1f606", "1f607", "1f608", "1f609", "1f60a", "1f60b", "1f60c", "1f60d", "1f60e", "1f60f", "1f610", "1f611", "1f612", "1f613", "1f614", "1f615", "1f616", "1f617", "1f618", "1f619", "1f61a", "1f61b", "1f61c", "1f61d", "1f61e", "1f61f", "1f620", "1f621", "1f622", "1f623", "1f624", "1f625", "1f626", "1f627", "1f628", "1f629", "1f62a", "1f62b", "1f62c", "1f62d", "1f62e", "1f62f", "1f630", "1f631", "1f632", "1f633", "1f634", "1f635", "1f636", "1f637", "1f638", "1f639", "1f63a", "1f63b", "1f63c", "1f63d", "1f63e", "1f63f", "1f640", "1f645", "1f646", "1f647", "1f648", "1f649", "1f64a", "1f64b", "1f64c", "1f64d", "1f64e", "1f64f", "1f680", "1f681", "1f682", "1f683", "1f684", "1f685", "1f686", "1f687", "1f688", "1f689", "1f68a", "1f68b", "1f68c", "1f68d", "1f68e", "1f68f", "1f690", "1f691", "1f692", "1f693", "1f694", "1f695", "1f696", "1f697", "1f698", "1f699", "1f69a", "1f69b", "1f69c", "1f69d", "1f69e", "1f69f", "1f6a0", "1f6a1", "1f6a2", "1f6a3", "1f6a4", "1f6a5", "1f6a6", "1f6a7", "1f6a8", "1f6a9", "1f6aa", "1f6ab", "1f6ac", "1f6ad", "1f6ae", "1f6af", "1f6b0", "1f6b1", "1f6b2", "1f6b3", "1f6b4", "1f6b5", "1f6b6", "1f6b7", "1f6b8", "1f6b9", "1f6ba", "1f6bb", "1f6bc", "1f6bd", "1f6be", "1f6bf", "1f6c0", "1f6c1", "1f6c2", "1f6c3", "1f6c4", "1f6c5", "23-20e3", "30-20e3", "31-20e3", "32-20e3", "33-20e3", "34-20e3", "35-20e3", "36-20e3", "37-20e3", "38-20e3", "39-20e3", "2935", "3030", "3297", "3299", "2049", "2139", "2194", "2195", "2196", "2197", "2198", "2199", "2600", "2601", "2611", "2614", "2615", "2648", "2649", "2650", "2651", "2652", "2653", "2660", "2663", "2665", "2666", "2668", "2693", "2702", "2705", "2708", "2709", "2712", "2714", "2716", "2728", "2733", "2734", "2122", "203c", "21a9", "21aa", "2744", "231a", "231b", "23e9", "23ea", "23eb", "23ec", "23f0", "23f3", "24c2", "25aa", "25ab", "25b6", "25c0", "25fb", "25fc", "25fd", "25fe", "260e", "261d", "263a", "264a", "264b", "264c", "264d", "264e", "264f", "267b", "267f", "26a0", "26a1", "26aa", "26ab", "26bd", "26be", "26c4", "26c5", "26ce", "26d4", "26ea", "26f2", "26f3", "26f5", "26fa", "26fd", "270a", "270b", "270c", "270f", "274c", "274e", "27a1", "27b0", "27bf", "2b05", "2b06", "2b07", "2b1b", "2b1c", "2b50", "2b55", "2747", "303d", "2753", "2754", "2755", "2757", "2764", "2795", "2796", "2797", "2934", "a9", "ae", "e50a"],
  445.      values: ["\\ud83c\\uddec\\ud83c\\udde7", "\\ud83c\\uddfa\\ud83c\\uddf8", "\\ud83c\\udde9\\ud83c\\uddea", "\\ud83c\\uddea\\ud83c\\uddf8", "\\ud83c\\uddeb\\ud83c\\uddf7", "\\ud83c\\udde8\\ud83c\\uddf3", "\\ud83c\\uddee\\ud83c\\uddf9", "\\ud83c\\uddef\\ud83c\\uddf5", "\\ud83c\\uddf0\\ud83c\\uddf7", "\\ud83c\\uddf7\\ud83c\\uddfa", "\\ud83d\\udc7a", "\\ud83c\\udd94", "\\ud83c\\udd95", "\\ud83c\\udd96", "\\ud83c\\udd97", "\\ud83c\\udd98", "\\ud83c\\udd99", "\\ud83c\\udd9a", "\\ud83c\\udde6", "\\ud83c\\udde7", "\\ud83d\\udc83", "\\ud83c\\udde8", "\\ud83c\\udccf", "\\ud83c\\udde9", "\\ud83c\\udd70", "\\ud83c\\uddea", "\\ud83c\\udd71", "\\ud83c\\uddeb", "\\ud83c\\udd7e", "\\ud83c\\uddec", "\\ud83c\\udded", "\\ud83c\\udd7f", "\\ud83c\\uddee", "\\ud83c\\udd8e", "\\ud83c\\uddef", "\\ud83c\\udd91", "\\ud83c\\uddf0", "\\ud83c\\uddf1", "\\ud83c\\uddf2", "\\ud83c\\uddf3", "\\ud83c\\uddf4", "\\ud83c\\uddf5", "\\ud83c\\uddf6", "\\ud83c\\udd92", "\\ud83c\\uddf7", "\\ud83c\\uddf8", "\\ud83c\\uddf9", "\\ud83c\\udd93", "\\ud83c\\uddfa", "\\ud83c\\uddfb", "\\ud83c\\uddfc", "\\ud83c\\uddfd", "\\ud83c\\uddfe", "\\ud83c\\uddff", "\\ud83c\\ude01", "\\ud83c\\ude02", "\\ud83c\\ude1a", "\\ud83c\\ude2f", "\\ud83c\\ude32", "\\ud83c\\ude33", "\\ud83c\\ude34", "\\ud83c\\ude35", "\\ud83c\\ude36", "\\ud83c\\ude37", "\\ud83c\\ude38", "\\ud83c\\ude39", "\\ud83c\\ude3a", "\\ud83c\\ude50", "\\ud83c\\ude51", "\\ud83c\\udf00", "\\ud83c\\udf01", "\\ud83c\\udf02", "\\ud83c\\udf03", "\\ud83c\\udf04", "\\ud83c\\udf05", "\\ud83c\\udf06", "\\ud83c\\udf07", "\\ud83c\\udf08", "\\ud83c\\udf09", "\\ud83c\\udf0a", "\\ud83c\\udf0b", "\\ud83c\\udf0c", "\\ud83c\\udf0d", "\\ud83c\\udf0e", "\\ud83c\\udf0f", "\\ud83c\\udf10", "\\ud83c\\udf11", "\\ud83c\\udf12", "\\ud83c\\udf13", "\\ud83c\\udf14", "\\ud83c\\udf15", "\\ud83c\\udf16", "\\ud83c\\udf17", "\\ud83c\\udf18", "\\ud83c\\udf19", "\\ud83c\\udf1a", "\\ud83c\\udf1b", "\\ud83c\\udf1c", "\\ud83c\\udf1d", "\\ud83c\\udf1e", "\\ud83c\\udf1f", "\\ud83c\\udf20", "\\ud83c\\udf30", "\\ud83c\\udf31", "\\ud83c\\udf32", "\\ud83c\\udf33", "\\ud83c\\udf34", "\\ud83c\\udf35", "\\ud83c\\udf37", "\\ud83c\\udf38", "\\ud83c\\udf39", "\\ud83c\\udf3a", "\\ud83c\\udf3b", "\\ud83c\\udf3c", "\\ud83c\\udf3d", "\\ud83c\\udf3e", "\\ud83c\\udf3f", "\\ud83c\\udf40", "\\ud83c\\udf41", "\\ud83c\\udf42", "\\ud83c\\udf43", "\\ud83c\\udf44", "\\ud83c\\udf45", "\\ud83c\\udf46", "\\ud83c\\udf47", "\\ud83c\\udf48", "\\ud83c\\udf49", "\\ud83c\\udf4a", "\\ud83c\\udf4b", "\\ud83c\\udf4c", "\\ud83c\\udf4d", "\\ud83c\\udf4e", "\\ud83c\\udf4f", "\\ud83c\\udf50", "\\ud83c\\udf51", "\\ud83c\\udf52", "\\ud83c\\udf53", "\\ud83c\\udf54", "\\ud83c\\udf55", "\\ud83c\\udf56", "\\ud83c\\udf57", "\\ud83c\\udf58", "\\ud83c\\udf59", "\\ud83c\\udf5a", "\\ud83c\\udf5b", "\\ud83c\\udf5c", "\\ud83c\\udf5d", "\\ud83c\\udf5e", "\\ud83c\\udf5f", "\\ud83c\\udf60", "\\ud83c\\udf61", "\\ud83c\\udf62", "\\ud83c\\udf63", "\\ud83c\\udf64", "\\ud83c\\udf65", "\\ud83c\\udf66", "\\ud83c\\udf67", "\\ud83c\\udf68", "\\ud83c\\udf69", "\\ud83c\\udf6a", "\\ud83c\\udf6b", "\\ud83c\\udf6c", "\\ud83c\\udf6d", "\\ud83c\\udf6e", "\\ud83c\\udf6f", "\\ud83c\\udf70", "\\ud83c\\udf71", "\\ud83c\\udf72", "\\ud83c\\udf73", "\\ud83c\\udf74", "\\ud83c\\udf75", "\\ud83c\\udf76", "\\ud83c\\udf77", "\\ud83c\\udf78", "\\ud83c\\udf79", "\\ud83c\\udf7a", "\\ud83c\\udf7b", "\\ud83c\\udf7c", "\\ud83c\\udf80", "\\ud83c\\udf81", "\\ud83c\\udf82", "\\ud83c\\udf83", "\\ud83c\\udf84", "\\ud83c\\udf85", "\\ud83c\\udf86", "\\ud83c\\udf87", "\\ud83c\\udf88", "\\ud83c\\udf89", "\\ud83c\\udf8a", "\\ud83c\\udf8b", "\\ud83c\\udf8c", "\\ud83c\\udf8d", "\\ud83c\\udf8e", "\\ud83c\\udf8f", "\\ud83c\\udf90", "\\ud83c\\udf91", "\\ud83c\\udf92", "\\ud83c\\udf93", "\\ud83c\\udfa0", "\\ud83c\\udfa1", "\\ud83c\\udfa2", "\\ud83c\\udfa3", "\\ud83c\\udfa4", "\\ud83c\\udfa5", "\\ud83c\\udfa6", "\\ud83c\\udfa7", "\\ud83c\\udfa8", "\\ud83c\\udfa9", "\\ud83c\\udfaa", "\\ud83c\\udfab", "\\ud83c\\udfac", "\\ud83c\\udfad", "\\ud83c\\udfae", "\\ud83c\\udfaf", "\\ud83c\\udfb0", "\\ud83c\\udfb1", "\\ud83c\\udfb2", "\\ud83c\\udfb3", "\\ud83c\\udfb4", "\\ud83c\\udfb5", "\\ud83c\\udfb6", "\\ud83c\\udfb7", "\\ud83c\\udfb8", "\\ud83c\\udfb9", "\\ud83c\\udfba", "\\ud83c\\udfbb", "\\ud83c\\udfbc", "\\ud83c\\udfbd", "\\ud83c\\udfbe", "\\ud83c\\udfbf", "\\ud83c\\udfc0", "\\ud83c\\udfc1", "\\ud83c\\udfc2", "\\ud83c\\udfc3", "\\ud83c\\udfc4", "\\ud83c\\udfc6", "\\ud83c\\udfc7", "\\ud83c\\udfc8", "\\ud83c\\udfc9", "\\ud83c\\udfca", "\\ud83c\\udfe0", "\\ud83c\\udfe1", "\\ud83c\\udfe2", "\\ud83c\\udfe3", "\\ud83c\\udfe4", "\\ud83c\\udfe5", "\\ud83c\\udfe6", "\\ud83c\\udfe7", "\\ud83c\\udfe8", "\\ud83c\\udfe9", "\\ud83c\\udfea", "\\ud83c\\udfeb", "\\ud83c\\udfec", "\\ud83c\\udfed", "\\ud83c\\udfee", "\\ud83c\\udfef", "\\ud83c\\udff0", "\\ud83d\\udc00", "\\ud83d\\udc01", "\\ud83d\\udc02", "\\ud83d\\udc03", "\\ud83d\\udc04", "\\ud83d\\udc05", "\\ud83d\\udc06", "\\ud83d\\udc07", "\\ud83d\\udc08", "\\ud83d\\udc09", "\\ud83d\\udc0a", "\\ud83d\\udc0b", "\\ud83d\\udc0c", "\\ud83d\\udc0d", "\\ud83d\\udc0e", "\\ud83d\\udc0f", "\\ud83d\\udc10", "\\ud83d\\udc11", "\\ud83d\\udc12", "\\ud83d\\udc13", "\\ud83d\\udc14", "\\ud83d\\udc15", "\\ud83d\\udc16", "\\ud83d\\udc17", "\\ud83d\\udc18", "\\ud83d\\udc19", "\\ud83d\\udc1a", "\\ud83d\\udc1b", "\\ud83d\\udc1c", "\\ud83d\\udc1d", "\\ud83d\\udc1e", "\\ud83d\\udc1f", "\\ud83d\\udc20", "\\ud83d\\udc21", "\\ud83d\\udc22", "\\ud83d\\udc23", "\\ud83d\\udc24", "\\ud83d\\udc25", "\\ud83d\\udc26", "\\ud83d\\udc27", "\\ud83d\\udc28", "\\ud83d\\udc29", "\\ud83d\\udc2a", "\\ud83d\\udc2b", "\\ud83d\\udc2c", "\\ud83d\\udc2d", "\\ud83d\\udc2e", "\\ud83d\\udc2f", "\\ud83d\\udc30", "\\ud83d\\udc31", "\\ud83d\\udc32", "\\ud83d\\udc33", "\\ud83d\\udc34", "\\ud83d\\udc35", "\\ud83d\\udc36", "\\ud83d\\udc37", "\\ud83d\\udc38", "\\ud83d\\udc39", "\\ud83d\\udc3a", "\\ud83d\\udc3b", "\\ud83d\\udc3c", "\\ud83d\\udc3d", "\\ud83d\\udc3e", "\\ud83d\\udc40", "\\ud83d\\udc42", "\\ud83d\\udc43", "\\ud83d\\udc44", "\\ud83d\\udc45", "\\ud83d\\udc46", "\\ud83d\\udc47", "\\ud83d\\udc48", "\\ud83d\\udc49", "\\ud83d\\udc4a", "\\ud83d\\udc4b", "\\ud83d\\udc4c", "\\ud83d\\udc4d", "\\ud83d\\udc4e", "\\ud83d\\udc4f", "\\ud83d\\udc50", "\\ud83d\\udc51", "\\ud83d\\udc52", "\\ud83d\\udc53", "\\ud83d\\udc54", "\\ud83d\\udc55", "\\ud83d\\udc56", "\\ud83d\\udc57", "\\ud83d\\udc58", "\\ud83d\\udc59", "\\ud83d\\udc5a", "\\ud83d\\udc5b", "\\ud83d\\udc5c", "\\ud83d\\udc5d", "\\ud83d\\udc5e", "\\ud83d\\udc5f", "\\ud83d\\udc60", "\\ud83d\\udc61", "\\ud83d\\udc62", "\\ud83d\\udc63", "\\ud83d\\udc64", "\\ud83d\\udc65", "\\ud83d\\udc66", "\\ud83d\\udc67", "\\ud83d\\udc68", "\\ud83d\\udc69", "\\ud83d\\udc6a", "\\ud83d\\udc6b", "\\ud83d\\udc6c", "\\ud83d\\udc6d", "\\ud83d\\udc6e", "\\ud83d\\udc6f", "\\ud83d\\udc70", "\\ud83d\\udc71", "\\ud83d\\udc72", "\\ud83d\\udc73", "\\ud83d\\udc74", "\\ud83d\\udc75", "\\ud83d\\udc76", "\\ud83d\\udc77", "\\ud83d\\udc78", "\\ud83d\\udc79", "\\ud83c\\udc04", "\\ud83d\\udc7b", "\\ud83d\\udc7c", "\\ud83d\\udc7d", "\\ud83d\\udc7e", "\\ud83d\\udc7f", "\\ud83d\\udc80", "\\ud83d\\udc81", "\\ud83d\\udc82", "\\ud83d\\udc84", "\\ud83d\\udc85", "\\ud83d\\udc86", "\\ud83d\\udc87", "\\ud83d\\udc88", "\\ud83d\\udc89", "\\ud83d\\udc8a", "\\ud83d\\udc8b", "\\ud83d\\udc8c", "\\ud83d\\udc8d", "\\ud83d\\udc8e", "\\ud83d\\udc8f", "\\ud83d\\udc90", "\\ud83d\\udc91", "\\ud83d\\udc92", "\\ud83d\\udc93", "\\ud83d\\udc94", "\\ud83d\\udc95", "\\ud83d\\udc96", "\\ud83d\\udc97", "\\ud83d\\udc98", "\\ud83d\\udc99", "\\ud83d\\udc9a", "\\ud83d\\udc9b", "\\ud83d\\udc9c", "\\ud83d\\udc9d", "\\ud83d\\udc9e", "\\ud83d\\udc9f", "\\ud83d\\udca0", "\\ud83d\\udca1", "\\ud83d\\udca2", "\\ud83d\\udca3", "\\ud83d\\udca4", "\\ud83d\\udca5", "\\ud83d\\udca6", "\\ud83d\\udca7", "\\ud83d\\udca8", "\\ud83d\\udca9", "\\ud83d\\udcaa", "\\ud83d\\udcab", "\\ud83d\\udcac", "\\ud83d\\udcad", "\\ud83d\\udcae", "\\ud83d\\udcaf", "\\ud83d\\udcb0", "\\ud83d\\udcb1", "\\ud83d\\udcb2", "\\ud83d\\udcb3", "\\ud83d\\udcb4", "\\ud83d\\udcb5", "\\ud83d\\udcb6", "\\ud83d\\udcb7", "\\ud83d\\udcb8", "\\ud83d\\udcb9", "\\ud83d\\udcba", "\\ud83d\\udcbb", "\\ud83d\\udcbc", "\\ud83d\\udcbd", "\\ud83d\\udcbe", "\\ud83d\\udcbf", "\\ud83d\\udcc0", "\\ud83d\\udcc1", "\\ud83d\\udcc2", "\\ud83d\\udcc3", "\\ud83d\\udcc4", "\\ud83d\\udcc5", "\\ud83d\\udcc6", "\\ud83d\\udcc7", "\\ud83d\\udcc8", "\\ud83d\\udcc9", "\\ud83d\\udcca", "\\ud83d\\udccb", "\\ud83d\\udccc", "\\ud83d\\udccd", "\\ud83d\\udcce", "\\ud83d\\udccf", "\\ud83d\\udcd0", "\\ud83d\\udcd1", "\\ud83d\\udcd2", "\\ud83d\\udcd3", "\\ud83d\\udcd4", "\\ud83d\\udcd5", "\\ud83d\\udcd6", "\\ud83d\\udcd7", "\\ud83d\\udcd8", "\\ud83d\\udcd9", "\\ud83d\\udcda", "\\ud83d\\udcdb", "\\ud83d\\udcdc", "\\ud83d\\udcdd", "\\ud83d\\udcde", "\\ud83d\\udcdf", "\\ud83d\\udce0", "\\ud83d\\udce1", "\\ud83d\\udce2", "\\ud83d\\udce3", "\\ud83d\\udce4", "\\ud83d\\udce5", "\\ud83d\\udce6", "\\ud83d\\udce7", "\\ud83d\\udce8", "\\ud83d\\udce9", "\\ud83d\\udcea", "\\ud83d\\udceb", "\\ud83d\\udcec", "\\ud83d\\udced", "\\ud83d\\udcee", "\\ud83d\\udcef", "\\ud83d\\udcf0", "\\ud83d\\udcf1", "\\ud83d\\udcf2", "\\ud83d\\udcf3", "\\ud83d\\udcf4", "\\ud83d\\udcf5", "\\ud83d\\udcf6", "\\ud83d\\udcf7", "\\ud83d\\udcf9", "\\ud83d\\udcfa", "\\ud83d\\udcfb", "\\ud83d\\udcfc", "\\ud83d\\udd00", "\\ud83d\\udd01", "\\ud83d\\udd02", "\\ud83d\\udd03", "\\ud83d\\udd04", "\\ud83d\\udd05", "\\ud83d\\udd06", "\\ud83d\\udd07", "\\ud83d\\udd08", "\\ud83d\\udd09", "\\ud83d\\udd0a", "\\ud83d\\udd0b", "\\ud83d\\udd0c", "\\ud83d\\udd0d", "\\ud83d\\udd0e", "\\ud83d\\udd0f", "\\ud83d\\udd10", "\\ud83d\\udd11", "\\ud83d\\udd12", "\\ud83d\\udd13", "\\ud83d\\udd14", "\\ud83d\\udd15", "\\ud83d\\udd16", "\\ud83d\\udd17", "\\ud83d\\udd18", "\\ud83d\\udd19", "\\ud83d\\udd1a", "\\ud83d\\udd1b", "\\ud83d\\udd1c", "\\ud83d\\udd1d", "\\ud83d\\udd1e", "\\ud83d\\udd1f", "\\ud83d\\udd20", "\\ud83d\\udd21", "\\ud83d\\udd22", "\\ud83d\\udd23", "\\ud83d\\udd24", "\\ud83d\\udd25", "\\ud83d\\udd26", "\\ud83d\\udd27", "\\ud83d\\udd28", "\\ud83d\\udd29", "\\ud83d\\udd2a", "\\ud83d\\udd2b", "\\ud83d\\udd2c", "\\ud83d\\udd2d", "\\ud83d\\udd2e", "\\ud83d\\udd2f", "\\ud83d\\udd30", "\\ud83d\\udd31", "\\ud83d\\udd32", "\\ud83d\\udd33", "\\ud83d\\udd34", "\\ud83d\\udd35", "\\ud83d\\udd36", "\\ud83d\\udd37", "\\ud83d\\udd38", "\\ud83d\\udd39", "\\ud83d\\udd3a", "\\ud83d\\udd3b", "\\ud83d\\udd3c", "\\ud83d\\udd3d", "\\ud83d\\udd50", "\\ud83d\\udd51", "\\ud83d\\udd52", "\\ud83d\\udd53", "\\ud83d\\udd54", "\\ud83d\\udd55", "\\ud83d\\udd56", "\\ud83d\\udd57", "\\ud83d\\udd58", "\\ud83d\\udd59", "\\ud83d\\udd5a", "\\ud83d\\udd5b", "\\ud83d\\udd5c", "\\ud83d\\udd5d", "\\ud83d\\udd5e", "\\ud83d\\udd5f", "\\ud83d\\udd60", "\\ud83d\\udd61", "\\ud83d\\udd62", "\\ud83d\\udd63", "\\ud83d\\udd64", "\\ud83d\\udd65", "\\ud83d\\udd66", "\\ud83d\\udd67", "\\ud83d\\uddfb", "\\ud83d\\uddfc", "\\ud83d\\uddfd", "\\ud83d\\uddfe", "\\ud83d\\uddff", "\\ud83d\\ude00", "\\ud83d\\ude01", "\\ud83d\\ude02", "\\ud83d\\ude03", "\\ud83d\\ude04", "\\ud83d\\ude05", "\\ud83d\\ude06", "\\ud83d\\ude07", "\\ud83d\\ude08", "\\ud83d\\ude09", "\\ud83d\\ude0a", "\\ud83d\\ude0b", "\\ud83d\\ude0c", "\\ud83d\\ude0d", "\\ud83d\\ude0e", "\\ud83d\\ude0f", "\\ud83d\\ude10", "\\ud83d\\ude11", "\\ud83d\\ude12", "\\ud83d\\ude13", "\\ud83d\\ude14", "\\ud83d\\ude15", "\\ud83d\\ude16", "\\ud83d\\ude17", "\\ud83d\\ude18", "\\ud83d\\ude19", "\\ud83d\\ude1a", "\\ud83d\\ude1b", "\\ud83d\\ude1c", "\\ud83d\\ude1d", "\\ud83d\\ude1e", "\\ud83d\\ude1f", "\\ud83d\\ude20", "\\ud83d\\ude21", "\\ud83d\\ude22", "\\ud83d\\ude23", "\\ud83d\\ude24", "\\ud83d\\ude25", "\\ud83d\\ude26", "\\ud83d\\ude27", "\\ud83d\\ude28", "\\ud83d\\ude29", "\\ud83d\\ude2a", "\\ud83d\\ude2b", "\\ud83d\\ude2c", "\\ud83d\\ude2d", "\\ud83d\\ude2e", "\\ud83d\\ude2f", "\\ud83d\\ude30", "\\ud83d\\ude31", "\\ud83d\\ude32", "\\ud83d\\ude33", "\\ud83d\\ude34", "\\ud83d\\ude35", "\\ud83d\\ude36", "\\ud83d\\ude37", "\\ud83d\\ude38", "\\ud83d\\ude39", "\\ud83d\\ude3a", "\\ud83d\\ude3b", "\\ud83d\\ude3c", "\\ud83d\\ude3d", "\\ud83d\\ude3e", "\\ud83d\\ude3f", "\\ud83d\\ude40", "\\ud83d\\ude45", "\\ud83d\\ude46", "\\ud83d\\ude47", "\\ud83d\\ude48", "\\ud83d\\ude49", "\\ud83d\\ude4a", "\\ud83d\\ude4b", "\\ud83d\\ude4c", "\\ud83d\\ude4d", "\\ud83d\\ude4e", "\\ud83d\\ude4f", "\\ud83d\\ude80", "\\ud83d\\ude81", "\\ud83d\\ude82", "\\ud83d\\ude83", "\\ud83d\\ude84", "\\ud83d\\ude85", "\\ud83d\\ude86", "\\ud83d\\ude87", "\\ud83d\\ude88", "\\ud83d\\ude89", "\\ud83d\\ude8a", "\\ud83d\\ude8b", "\\ud83d\\ude8c", "\\ud83d\\ude8d", "\\ud83d\\ude8e", "\\ud83d\\ude8f", "\\ud83d\\ude90", "\\ud83d\\ude91", "\\ud83d\\ude92", "\\ud83d\\ude93", "\\ud83d\\ude94", "\\ud83d\\ude95", "\\ud83d\\ude96", "\\ud83d\\ude97", "\\ud83d\\ude98", "\\ud83d\\ude99", "\\ud83d\\ude9a", "\\ud83d\\ude9b", "\\ud83d\\ude9c", "\\ud83d\\ude9d", "\\ud83d\\ude9e", "\\ud83d\\ude9f", "\\ud83d\\udea0", "\\ud83d\\udea1", "\\ud83d\\udea2", "\\ud83d\\udea3", "\\ud83d\\udea4", "\\ud83d\\udea5", "\\ud83d\\udea6", "\\ud83d\\udea7", "\\ud83d\\udea8", "\\ud83d\\udea9", "\\ud83d\\udeaa", "\\ud83d\\udeab", "\\ud83d\\udeac", "\\ud83d\\udead", "\\ud83d\\udeae", "\\ud83d\\udeaf", "\\ud83d\\udeb0", "\\ud83d\\udeb1", "\\ud83d\\udeb2", "\\ud83d\\udeb3", "\\ud83d\\udeb4", "\\ud83d\\udeb5", "\\ud83d\\udeb6", "\\ud83d\\udeb7", "\\ud83d\\udeb8", "\\ud83d\\udeb9", "\\ud83d\\udeba", "\\ud83d\\udebb", "\\ud83d\\udebc", "\\ud83d\\udebd", "\\ud83d\\udebe", "\\ud83d\\udebf", "\\ud83d\\udec0", "\\ud83d\\udec1", "\\ud83d\\udec2", "\\ud83d\\udec3", "\\ud83d\\udec4", "\\ud83d\\udec5", "\\u0023\\u20e3", "\\u0030\\u20e3", "\\u0031\\u20e3", "\\u0032\\u20e3", "\\u0033\\u20e3", "\\u0034\\u20e3", "\\u0035\\u20e3", "\\u0036\\u20e3", "\\u0037\\u20e3", "\\u0038\\u20e3", "\\u0039\\u20e3", "\\u2935", "\\u3030", "\\u3297", "\\u3299", "\\u2049", "\\u2139", "\\u2194", "\\u2195", "\\u2196", "\\u2197", "\\u2198", "\\u2199", "\\u2600", "\\u2601", "\\u2611", "\\u2614", "\\u2615", "\\u2648", "\\u2649", "\\u2650", "\\u2651", "\\u2652", "\\u2653", "\\u2660", "\\u2663", "\\u2665", "\\u2666", "\\u2668", "\\u2693", "\\u2702", "\\u2705", "\\u2708", "\\u2709", "\\u2712", "\\u2714", "\\u2716", "\\u2728", "\\u2733", "\\u2734", "\\u2122", "\\u203c", "\\u21a9", "\\u21aa", "\\u2744", "\\u231a", "\\u231b", "\\u23e9", "\\u23ea", "\\u23eb", "\\u23ec", "\\u23f0", "\\u23f3", "\\u24c2", "\\u25aa", "\\u25ab", "\\u25b6", "\\u25c0", "\\u25fb", "\\u25fc", "\\u25fd", "\\u25fe", "\\u260e", "\\u261d", "\\u263a", "\\u264a", "\\u264b", "\\u264c", "\\u264d", "\\u264e", "\\u264f", "\\u267b", "\\u267f", "\\u26a0", "\\u26a1", "\\u26aa", "\\u26ab", "\\u26bd", "\\u26be", "\\u26c4", "\\u26c5", "\\u26ce", "\\u26d4", "\\u26ea", "\\u26f2", "\\u26f3", "\\u26f5", "\\u26fa", "\\u26fd", "\\u270a", "\\u270b", "\\u270c", "\\u270f", "\\u274c", "\\u274e", "\\u27a1", "\\u27b0", "\\u27bf", "\\u2b05", "\\u2b06", "\\u2b07", "\\u2b1b", "\\u2b1c", "\\u2b50", "\\u2b55", "\\u2747", "\\u303d", "\\u2753", "\\u2754", "\\u2755", "\\u2757", "\\u2764", "\\u2795", "\\u2796", "\\u2797", "\\u2934", "\\u00a9", "\\u00ae", "\\ue50a"]
  446. @@ -10252,18 +10243,18 @@ function(e, t) {
  447.          $.unsubscribe(this.subscription), this.$node.off("click", ".js-account-item"), this.supr()
  448.      }
  449.  }), TD.vo.Column = function(e, t) {
  450. -    TD.sync.util.assert(e, "must provide sColumn to create aColumn"), this.model = e, TD.sync.util.assert(this.model.getKey(), "vo.Column will most likely fail if your column has no key"), this.ui = new TD.ui.Column(this.model.getKey()), this._feeds = [], this.filters = [], this.description = "", this.updateArray = [], this.updateIndex = {}, this.scribedImpressionIDs = new TD.cache.LRUQueue(200), this._animating = !1, this._animationQueue = [], this._isUpdating = !0, this.feedSubscriptions = {}, this.deleteSubscriptions = {}, this.visible = !0, this.visibility = {
  451. +    TD.sync.util.assert(e, "must provide sColumn to create aColumn"), this.model = e, TD.sync.util.assert(this.model.getKey(), "vo.Column will most likely fail if your column has no key"), this.ui = new TD.ui.Column(this.model.getKey()), this._feeds = [], this.filters = [], this.description = "", this.updateArray = [], this.updateIndex = {}, this.scribedImpressionIDs = new TD.cache.LRUQueue(200), this._isUpdating = !0, this.feedSubscriptions = {}, this.deleteSubscriptions = {}, this.visible = !0, this.visibility = {
  452.          columnWidth: 0,
  453.          visibleWidth: 0,
  454.          visibleHeight: 0,
  455.          visibleFraction: 0
  456. -    }, this.temporary = !1, this.detailViewComponent = null, this.feedsFetched = 0, this.isFirstFetch = !0, this.isFetchingOlderUpdates = !1, this.lastInfiniteScrollTime = null, this.isShowingLoadMore = !1, this.isExhausted = !1, this.isEmergencyPaused = !1, this.fetchesPaused = !1, this.CHIRP_BLOCK_SIZE = 20, this.COLUMN_CHIRP_LIMIT = 20, this.sortFunction = "scheduled" === this.model.getType() ? TD.util.chirpAscSort : TD.util.chirpDescSort, this.loadFeeds(), this.loadFilters(), t && this.setFeeds(t), this.isFilterable() || this.updateSearchFilter(new TD.vo.SearchFilter), this.GLOBAL_TPM_ANIMATION_LIMIT = 2e3, this.COLUMN_TPM_ANIMATION_LIMIT = 120, this.COLUMN_MINIMALIST_TWEET_TPM_THRESHOLD = 750, this.doAnimate = !0, this.streamRate = 0;
  457. +    }, this.temporary = !1, this.detailViewComponent = null, this.feedsFetched = 0, this.isFirstFetch = !0, this.isFetchingOlderUpdates = !1, this.lastInfiniteScrollTime = null, this.isShowingLoadMore = !1, this.isExhausted = !1, this.isEmergencyPaused = !1, this.fetchesPaused = !1, this.CHIRP_BLOCK_SIZE = 20, this.COLUMN_CHIRP_LIMIT = 20, this.sortFunction = "scheduled" === this.model.getType() ? TD.util.chirpAscSort : TD.util.chirpDescSort, this.loadFeeds(), this.loadFilters(), t && this.setFeeds(t), this.isFilterable() || this.updateSearchFilter(new TD.vo.SearchFilter), this.COLUMN_MINIMALIST_TWEET_TPM_THRESHOLD = 750, this.streamRate = 0;
  458.      var i = this.updateStreamRate.bind(this);
  459.      $(document).on("dataStreamRate", i), this.tpm = 0;
  460.      var n = this.updateTpm.bind(this),
  461.          r = "dataColumn" + this.model.getKey() + "Tpm";
  462.      $(document).on(r, n), this.tpmCounter = new TD.util.TpmCounter(500, 5e3, r), this.STREAM_ITEM_CONTENT_SELECTOR = ".js-stream-item-content", this.STREAM_ITEM_SELECTOR = ".js-stream-item", $.subscribe("/storage/client/settings/display_sensitive_media", this.reloadTweets.bind(this))
  463. -}, TD.vo.Column.CHIRP_STAGGERING_INTERVAL = 400, TD.vo.Column.FADE_IN_CLASS = "column-opacity-transition", TD.vo.Column.MEDIA_PREVIEW_OFF = "off", TD.vo.Column.MEDIA_PREVIEW_SIZE_SMALL = "small", TD.vo.Column.MEDIA_PREVIEW_SIZE_MEDIUM = "medium", TD.vo.Column.MEDIA_PREVIEW_SIZE_LARGE = "large", TD.vo.Column.prototype.reset = function() {
  464. +}, TD.vo.Column.MEDIA_PREVIEW_OFF = "off", TD.vo.Column.MEDIA_PREVIEW_SIZE_SMALL = "small", TD.vo.Column.MEDIA_PREVIEW_SIZE_MEDIUM = "medium", TD.vo.Column.MEDIA_PREVIEW_SIZE_LARGE = "large", TD.vo.Column.prototype.reset = function() {
  465.      this.updateArray = [], this.updateIndex = {}, this.feedsFetched = 0, this.isFirstFetch = !0, this.temporary = !1, this.isFetchingOlderUpdates = !1, this.lastInfiniteScrollTime = null, this.refreshSubscriptions()
  466.  }, TD.vo.Column.prototype.clone = function() {
  467.      return TD.controller.columnManager.makeColumn(this.model.getType(), this.getFeeds(), this.model.getFilters())
  468. @@ -10381,7 +10372,7 @@ function(e, t) {
  469.      }
  470.  }, TD.vo.Column.prototype.addToIndex = function(e, t, i) {
  471.      var n;
  472. -    return this._isUpdating && (this.ui.getChirpContainer().trigger("dataColumnFeedUpdated"), this.ui.hideIsUpdatingMessage(), this._isUpdating = !1), 0 === t.length ? void(0 === this.updateArray.length && this.ui.showNoResultsMessage(this.temporary, this.isOwnCustomTimeline())) : (this.ui.hideNoResultsMessage(), n = t.concat(), this.addItemsToIndex(n, this.updateArray.length, e.feed, i), void(this.isFirstFetch && (this.feedsFetched++, this.feedsFetched == this.getFeedCount() && (this.truncate(this.CHIRP_BLOCK_SIZE), this.feedsFetched = 0, this.isFirstFetch = !1))))
  473. +    return this._isUpdating && (this.ui.getChirpContainer().trigger("dataColumnFeedUpdated"), this.ui.hideChirpContainer(), this.ui.hideIsUpdatingMessage(), this._isUpdating = !1), 0 === t.length ? void(0 === this.updateArray.length && this.ui.showNoResultsMessage(this.temporary, this.isOwnCustomTimeline())) : (this.ui.hideNoResultsMessage(), n = t.concat(), this.addItemsToIndex(n, this.updateArray.length, e.feed, i), void(this.isFirstFetch && (this.feedsFetched++, this.feedsFetched == this.getFeedCount() && (this.truncate(this.CHIRP_BLOCK_SIZE), this.feedsFetched = 0, this.isFirstFetch = !1))))
  474.  }, TD.vo.Column.prototype.addItemsToIndex = function(e, t, i, n) {
  475.      var r, s, o = [],
  476.          a = this.updateArray.length ? this.updateArray[this.updateArray.length - 1].created.getTime() : 0,
  477. @@ -10391,12 +10382,17 @@ function(e, t) {
  478.      0 === this.updateArray.length && this.ui.removeInfiniteScrollSpinner(), e.sort(this.sortFunction), r = e.length;
  479.      for (var d = 0; r > d && (s = e[d], !t && s.created.getTime() < a || s.created.getTime() <= c || !s.passFilters(this.filters) || (_.isUndefined(this.updateIndex[s.id]) || (this.removeFromIndex(null, [s], !1), this.detailViewComponent && this.detailViewComponent.changed(s)), this.updateIndex[s.id] = s, o.push(s), _.isUndefined(n) || (u = u.concat(s.getUnreadChirps(n))), !(o.length > this.CHIRP_BLOCK_SIZE))); d++);
  480.      if (l = o.length) {
  481. -        for (var h = "", p = [], f = this.updateArray; o.length > 0 || f.length > 0;)
  482. +        for (var h = "", p = [], f = this.updateArray, m = {
  483. +            mediaPreviewSize: this.getMediaPreviewSize(),
  484. +            isOwnCustomTimeline: this.isOwnCustomTimeline(),
  485. +            showVerifiedBadge: this.getShowVerified(),
  486. +            isTemporaryColumn: this.temporary
  487. +        }; o.length > 0 || f.length > 0;)
  488.              if (0 === o.length) p = p.concat(f), f = [];
  489. -            else if (0 === f.length) p = p.concat(o), this.addToView(i, h, o), o = [];
  490. +            else if (0 === f.length) p = p.concat(o), this.addToView(h, o, m), o = [];
  491.          else {
  492. -            for (var m = [], g = f[0], T = o[0]; this.sortFunction(g, T) > 0 && o.length > 0;) s = o.shift(), m.push(s), o.length > 0 && (T = o[0]);
  493. -            m.length > 0 ? (this.addToView(i, h, m), p = p.concat(m)) : (s = f.shift(), p.push(s), s.passFilters(this.filters) && (h = s.id))
  494. +            for (var g = [], T = f[0], v = o[0]; this.sortFunction(T, v) > 0 && o.length > 0;) s = o.shift(), g.push(s), o.length > 0 && (v = o[0]);
  495. +            g.length > 0 ? (this.addToView(h, g, m), p = p.concat(g)) : (s = f.shift(), p.push(s), s.passFilters(this.filters) && (h = s.id))
  496.          }
  497.          this.updateArray = p
  498.      }
  499. @@ -10470,54 +10466,15 @@ function(e, t) {
  500.  }, TD.vo.Column.prototype.addToView = function(e, t, i) {
  501.      var n, r, s, o, a, c = this.ui.getChirpContainer(),
  502.          u = TD.controller.columnManager.isStreaming(this.model.getKey());
  503. -    0 !== i.length && (0 === this.updateArray.length ? (o = TD.util.getPreciseTime(), n = this.renderChirps(i), a = TD.util.getPreciseTime(), TD.util.logTimeToRenderColumn(a - o, i.length)) : (u && this.tpmCounter.incrementCounter(i.length), n = this.renderChirps(i)), r = $(n).filter(this.STREAM_ITEM_SELECTOR), s = 0 === c.children(this.STREAM_ITEM_SELECTOR).length, "" === t ? s ? (c.html(r), this.isShowingLoadMore = !1) : (!TD.ui.columns.isFrozen(this.model.getKey()) && TD.controller.columnManager.isStreaming(this.model.getKey()) && this.trimUpdates(), c.prepend(r)) : c.children('[data-key="' + t + '"]').after(r), s ? this._fadeInContent(c) : this._slideInChirps(r))
  504. +    0 !== t.length && (0 === this.updateArray.length ? (o = TD.util.getPreciseTime(), i.doRenderMinimalist = !1, n = this.ui.renderChirps(t, i), a = TD.util.getPreciseTime(), TD.util.logTimeToRenderColumn(a - o, t.length)) : (u && this.tpmCounter.incrementCounter(t.length), i.doRenderMinimalist = this.tpm > this.COLUMN_MINIMALIST_TWEET_TPM_THRESHOLD, n = this.ui.renderChirps(t, i)), r = $(n).filter(this.STREAM_ITEM_SELECTOR), s = 0 === c.children(this.STREAM_ITEM_SELECTOR).length, "" === e ? s ? (c.html(r), this.isShowingLoadMore = !1) : (!TD.ui.columns.isFrozen(this.model.getKey()) && TD.controller.columnManager.isStreaming(this.model.getKey()) && this.trimUpdates(), c.prepend(r)) : c.children('[data-key="' + e + '"]').after(r), s ? this.ui.fadeInChirpContainer() : this.ui.slideInChirps(r, this.temporary, this.streamRate, this.tpm, this.isFetchingOlderUpdates))
  505.  }, TD.vo.Column.prototype.getMediaPreviewSize = function() {
  506.      var e, t = this.model.getMediaPreviewSize();
  507.      return t || (this.isMessageColumn() && (t = TD.vo.Column.MEDIA_PREVIEW_OFF), e = this.getSearchFilter(), t = e.content.hasActiveMediaFilter() ? TD.vo.Column.MEDIA_PREVIEW_SIZE_LARGE : this.getColumnType() === TD.util.columnUtils.columnMetaTypes.INTERACTIONS ? TD.vo.Column.MEDIA_PREVIEW_SIZE_SMALL : TD.vo.Column.MEDIA_PREVIEW_SIZE_MEDIUM), t
  508.  }, TD.vo.Column.prototype.setMediaPreviewSize = function(e) {
  509.      var t = this.getMediaPreviewSize();
  510.      e !== t && this.model.setMediaPreviewSize(e), this.reloadTweets()
  511. -}, TD.vo.Column.prototype.renderChirps = function(e) {
  512. -    var t, i, n, r, s = [],
  513. -        o = this.tpm > this.COLUMN_MINIMALIST_TWEET_TPM_THRESHOLD,
  514. -        a = this.getMediaPreviewSize(),
  515. -        c = this.isOwnCustomTimeline();
  516. -    for (i = 0; i < e.length; i++) n = e[i], r = n.getMainUser && n.getMainUser().isProtected, t = e[i].render({
  517. -        isTemporaryColumn: this.temporary,
  518. -        mediaPreviewSize: a,
  519. -        isMinimalist: o,
  520. -        withShowVerified: this.getShowVerified(),
  521. -        withRemove: c,
  522. -        withDragHandle: !this.temporary && !r && !c
  523. -    }), s.push(t);
  524. -    return s.join("")
  525.  }, TD.vo.Column.prototype.getShowVerified = function() {
  526.      return "col_search" === this.getColumnType() && this.temporary
  527. -}, TD.vo.Column.prototype._fadeInContent = function(e) {
  528. -    var t = this;
  529. -    _.defer(function() {
  530. -        e.css("opacity", 1), TD.ui.main.TRANSITION_END_EVENTS ? e.one(TD.ui.main.TRANSITION_END_EVENTS, function() {
  531. -            e.removeClass(TD.vo.Column.FADE_IN_CLASS).removeAttr("style"), $(document).trigger("uiColumnChirpsChanged", {
  532. -                id: t.model.getKey()
  533. -            })
  534. -        }) : (e.removeClass(TD.vo.Column.FADE_IN_CLASS).removeAttr("style"), $(document).trigger("uiColumnChirpsChanged", {
  535. -            id: t.model.getKey()
  536. -        }))
  537. -    })
  538. -}, TD.vo.Column.prototype._slideInChirps = function(e) {
  539. -    var t, i, n = [],
  540. -        r = this.temporary && this.ui.getChirpContainer().closest(".is-hidden").length;
  541. -    this.doAnimate = !r && this.streamRate < this.GLOBAL_TPM_ANIMATION_LIMIT && this.tpm < this.COLUMN_TPM_ANIMATION_LIMIT, e && (e.each(function() {
  542. -        n.push($(this).toggleClass("is-animating"))
  543. -    }), n.reverse(), this._animationQueue = this._animationQueue.concat(n)), this._animating || 0 === this._animationQueue.length || (i = TD.ui.columns.freezeScroll(this.model.getKey()), i ? (this.isFetchingOlderUpdates || this.ui.getChirpContainer().trigger("uiReadStateChange", {
  544. -        read: !1
  545. -    }), _.each(this._animationQueue, function(e) {
  546. -        e.removeClass("is-animating")
  547. -    }), this._animationQueue = []) : TD.controller.columnManager.isStreaming(this.model.getKey()) ? (this._animationQueue.forEach(function(e) {
  548. -        this.ui.slideInChirp(e, this.doAnimate)
  549. -    }, this), this._animationQueue = []) : (this._animating = !0, t = this._animationQueue.shift(), this.ui.slideInChirp(t, this.doAnimate), setTimeout(function() {
  550. -        this._animating = !1, this._slideInChirps()
  551. -    }.bind(this), TD.vo.Column.CHIRP_STAGGERING_INTERVAL)), this.isFetchingOlderUpdates || TD.ui.columns.unfreezeScroll(this.model.getKey()))
  552.  }, TD.vo.Column.prototype.enableEmergencyPause = function() {
  553.      this.isEmergencyPaused = !0, this.ui.getChirpContainer().trigger("uiColumnPaused"), TD.controller.stats.columnEmergencyPause(this.getColumnType())
  554.  }, TD.vo.Column.prototype.disableEmergencyPause = function() {
  555. @@ -19128,14 +19085,31 @@ function() {
  556.      styledScrollbar: TD.util.hasFixedScrollBars(),
  557.      isTouchDevice: TD.util.isTouchDevice()
  558.  }, TD.ui.Column = function(e) {
  559. -    this.chirpContainerSelector = '.js-chirp-container[data-column="' + e + '"]', this.infiniteSpinnerSelector = ".js-infinitespinner", this.state = {
  560. +    this.chirpContainerSelector = '.js-chirp-container[data-column="' + e + '"]', this.infiniteSpinnerSelector = ".js-infinitespinner", this.globalTpmAnimationLimit = 2e3, this.columnTpmAnimationLimit = 120, this.chirpStaggeringInterval = 400, this.fadeInClass = "column-opacity-transition", this.state = {
  561.          columnKey: e,
  562. -        $noResults: null
  563. +        $noResults: null,
  564. +        animating: !1,
  565. +        animationQueue: []
  566.      }
  567.  }, TD.ui.Column.prototype.getChirpContainer = function() {
  568.      return this._$chirpContainer && 0 !== this._$chirpContainer.length || (this._$chirpContainer = $(this.chirpContainerSelector)), this._$chirpContainer
  569.  }, TD.ui.Column.prototype.removeChirp = function(e) {
  570.      this.getChirpContainer().find('[data-key="' + e + '"]').remove()
  571. +}, TD.ui.Column.prototype.slideInChirps = function(e, t, i, n, r) {
  572. +    var s, o, a = [],
  573. +        c = this.temporary && this.getChirpContainer().closest(".is-hidden").length,
  574. +        u = !c && i < this.globalTpmAnimationLimit && n < this.columnTpmAnimationLimit;
  575. +    e && (e.each(function() {
  576. +        a.push($(this).toggleClass("is-animating"))
  577. +    }), a.reverse(), this.state.animationQueue = this.state.animationQueue.concat(a)), this.state.animating || 0 === this.state.animationQueue.length || (o = TD.ui.columns.freezeScroll(this.state.columnKey), o ? (r || this.getChirpContainer().trigger("uiReadStateChange", {
  578. +        read: !1
  579. +    }), this.state.animationQueue.forEach(function(e) {
  580. +        e.removeClass("is-animating")
  581. +    }), this.state.animationQueue = []) : TD.controller.columnManager.isStreaming(this.state.columnKey) ? (this.state.animationQueue.forEach(function(e) {
  582. +        this.slideInChirp(e, u)
  583. +    }, this), this.state.animationQueue = []) : (this.state.animating = !0, s = this.state.animationQueue.shift(), this.slideInChirp(s, u), setTimeout(function() {
  584. +        this.state.animating = !1, this.slideInChirps()
  585. +    }.bind(this), this.chirpStaggeringInterval)), r || TD.ui.columns.unfreezeScroll(this.state.columnKey))
  586.  }, TD.ui.Column.prototype.slideInChirp = function(e, t) {
  587.      var i, n = function() {
  588.          e.removeClass("is-animating"), e.removeAttr("style"), $(document).trigger("uiColumnChirpsChanged", {
  589. @@ -19146,6 +19120,32 @@ function() {
  590.          opacity: 1,
  591.          height: i + "px"
  592.      }), e.one(TD.ui.main.TRANSITION_END_EVENTS, n)) : n()
  593. +}, TD.ui.Column.prototype.renderChirps = function(e, t) {
  594. +    var i, n, r, s, o = [];
  595. +    for (n = 0; n < e.length; n++) r = e[n], s = r.getMainUser && r.getMainUser().isProtected, i = e[n].render({
  596. +        isTemporaryColumn: t.isTemporaryColumn,
  597. +        mediaPreviewSize: t.mediaPreviewSize,
  598. +        isMinimalist: t.doRenderMinimalist,
  599. +        withShowVerified: t.showVerifiedBadge,
  600. +        withRemove: t.isOwnCustomTimeline,
  601. +        withDragHandle: !t.isTemporaryColumn && !s && !t.isOwnCustomTimeline
  602. +    }), o.push(i);
  603. +    return o.join("")
  604. +}, TD.ui.Column.prototype.hideChirpContainer = function() {
  605. +    var e = this.getChirpContainer();
  606. +    e.css("opacity", 0), _.defer(function() {
  607. +        e.addClass(this.fadeInClass)
  608. +    }.bind(this))
  609. +}, TD.ui.Column.prototype.fadeInChirpContainer = function() {
  610. +    var e = this.getChirpContainer(),
  611. +        t = function() {
  612. +            e.removeClass(this.fadeInClass).removeAttr("style"), $(document).trigger("uiColumnChirpsChanged", {
  613. +                id: this.state.columnKey
  614. +            })
  615. +        }.bind(this);
  616. +    _.defer(function() {
  617. +        e.css("opacity", 1), TD.ui.main.TRANSITION_END_EVENTS ? e.one(TD.ui.main.TRANSITION_END_EVENTS, t) : t()
  618. +    })
  619.  }, TD.ui.Column.prototype.addInfiniteScrollSpinner = function() {
  620.      this.getChirpContainer().append(TD.ui.template.render("spinner_large"))
  621.  }, TD.ui.Column.prototype.removeInfiniteScrollSpinner = function() {
  622. @@ -19156,13 +19156,10 @@ function() {
  623.      }));
  624.      this.getChirpContainer().html(e)
  625.  }, TD.ui.Column.prototype.hideIsUpdatingMessage = function() {
  626. -    var e = this.getChirpContainer();
  627. -    e.css("opacity", 0), _.defer(function() {
  628. -        e.addClass(TD.vo.Column.FADE_IN_CLASS)
  629. -    }), e.find(".js-column-loading-placeholder").remove()
  630. +    this.getChirpContainer().find(".js-column-loading-placeholder").remove()
  631.  }, TD.ui.Column.prototype.showNoResultsMessage = function(e, t) {
  632.      var i = this.getChirpContainer();
  633. -    i.css("opacity", 1).removeClass(TD.vo.Column.FADE_IN_CLASS), this.state.$noResults = $(TD.ui.template.render("search_no_tweets_placeholder", {
  634. +    i.css("opacity", 1).removeClass(this.fadeInChirpContainer), this.state.$noResults = $(TD.ui.template.render("search_no_tweets_placeholder", {
  635.          isDropTarget: !e && t,
  636.          withAddByUrl: !e && t
  637.      })), i.html(this.state.$noResults)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement