Commit de1da17d authored by Romain Loth's avatar Romain Loth

connecting topPapers with a mini tweet-search flask server

parent dbecc72d
......@@ -23,6 +23,11 @@
-->
<link href="https://fonts.googleapis.com/css?family=Ubuntu+Condensed" rel="stylesheet" type='text/css'>
<!-- Roboto
Good for tweets if Helvetica is not present
-->
<link href="https://fonts.googleapis.com/css?family=Robot" rel="stylesheet" type='text/css'>
<!-- Crete Round
Original *and* informative :) -->
<link href='https://fonts.googleapis.com/css?family=Crete+Round:400,400italic&subset=latin-ext' rel='stylesheet' type='text/css'>
......@@ -53,6 +58,9 @@
<!-- NB bs2/3 not used for main grid (graph + bars) but inside the bars -->
<link rel="stylesheet" href="libs/css2/freshslider.css" media="screen">
<link type="text/css" href="twitterAPI2/twitterlibs/tweet.light.ltr.css" rel="stylesheet"/>
<link type="text/css" href="twitterAPI2/twitterlibs/custom.css" rel="stylesheet"/>
<!-- JS -->
<!-- <script src="script.js"></script> -->
</head>
......@@ -623,6 +631,7 @@
<!-- <script src="tinawebJS/asyncFA2.js" type="text/javascript" language="javascript"></script> -->
<script src="tinawebJS/Tinaweb.js" type="text/javascript" language="javascript"></script>
<script src="tinawebJS/main.js" type="text/javascript" language="javascript"></script>
<script src="twitterAPI2/twitterlibs/widgets.js" type="text/javascript" language="javascript"></script>
<script type="text/javascript">
// easytabs triggers errors when only one tab TODO fix
......
......@@ -298,18 +298,152 @@ function set_ClustersLegend ( daclass ) {
// });
// }
// }
// a custom variant of twitter plugin written for politoscope
function getTopPapers(type){
console.log("new getTopPapers")
if(TW.getAdditionalInfo){
jsonparams=JSON.stringify(getSelections());
jsonparams=getSelections();
// console.log(jsonparams)
// theHtml = "<p> jsonparams:"+jsonparams+" </p>"
//
$.ajax({
type: 'GET',
url: TW.APINAME,
data: {'query': jsonparams.join(' AND ')},
contentType: "application/json",
success : function(data){
// console.log(data);
var topTweetsHtml = ''
for (var k in data) {
let tweetJson = data[k]
topTweetsHtml += RenderTweet(tweetJson)
}
$("#topPapers").html(topTweetsHtml);
$("#topPapers").show()
},
error: function(){
console.log('Page Not found: getTopPapers');
}
});
jsonparams = jsonparams.split('&').join('__and__');
$("#topPapers").html("<p> jsonparams:"+jsonparams+" </p>");
$("#topPapers").show()
// var theHtml = '<blockquote class="twitter-tweet"><p lang="fr" dir="ltr"><a href="https://twitter.com/hashtag/BuzzFeedHamon?src=hash">#BuzzFeedHamon</a> B. Hamon a une culture large de tous les domaines et est le seul candidat à maitriser tous les sujets et ne pas dire d&#39;intox!</p>&mdash; Nadine Badr Vovelle (@NadineVovelle) <a href="https://twitter.com/NadineVovelle/status/854322537198702592">April 18, 2017</a></blockquote><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>'
//
// $("#topPapers").html(theHtml);
// $("#topPapers").show()
}
}
function clickInsideTweet(e, tweetSrcUrl) {
console.log('>>>>> event target tag', e.target.tag)
console.log("event")
console.log(e)
var tgt = e.target
if (tgt.tagName.toLowerCase() == "a")
window.open(tgt.href, "Link in tweet")
else
window.open(tweetSrcUrl, "Source Tweet")
}
function RenderTweet( tweet) {
var tweet_links = true
var author_url = "http://twitter.com/"+tweet["user"]["screen_name"];
var tweet_url = author_url+"/status/"+tweet["id_str"]
var image_normal = author_url+"/profile_image?size=original";
var image_bigger = "";
if( tweet["user"]["profile_image_url"] ) {
image_normal = tweet["user"]["profile_image_url"]
image_bigger = tweet["user"]["profile_image_url"].replace("_normal","_bigger")
}
var html = ""
html += '\t\t'+ '<blockquote onclick="clickInsideTweet(event, \''+tweet_url+'\')" class="Tweet h-entry tweet subject expanded" cite="'+tweet_url+'" data-tweet-id="'+tweet["id_str"]+'" data-scribe="section:subject">' + '\n';
html += '\t\t\t'+ '<div class="Tweet-header u-cf">' + '\n';
html += '\t\t\t\t'+ '<div class="Tweet-brand u-floatRight">' + '\n';
html += '\t\t\t\t'+ '<span class="Tweet-metadata dateline">' + '\n';
// TODO check datetime iso dates here
html += '\t\t\t\t\t'+ '<a target="_blank" class="u-linkBlend u-url customisable-highlight long-permalink" data-datetime="2012-12-03T18:51:11+000" data-scribe="element:full_timestamp" href="'+tweet_url+'">' + '\n';
html += '\t\t\t\t\t\t'+ '<time class="dt-updated" datetime="2012-12-03T18:51:11+0000" title="'+tweet["created_at"]+'">'+tweet["created_at"]+'</time>' + '\n';
html += '\t\t\t\t\t'+ '</a>' + '\n';
html += '\t\t\t\t'+ '</span>' + '\n';
html += '\t\t\t\t\t'+ '<span class="u-hiddenInWideEnv">' + '\n';
html += '\t\t\t\t\t\t'+ '<a target="_blank" href="'+tweet_url+'" data-scribe="element:logo">' + '\n';
html += '\t\t\t\t\t\t\t'+ '<div class="Icon Icon--twitter " aria-label="" title="" role="presentation"></div>' + '\n';
html += '\t\t\t\t\t\t'+ '</a>' + '\n';
html += '\t\t\t\t\t'+ '</span>' + '\n';
html += '\t\t\t\t'+ '</div>' + '\n';
html += '\t\t\t\t'+ '<div class="Tweet-author u-textTruncate h-card p-author" data-scribe="component:author">' + '\n';
html += '\t\t\t\t\t'+ '<a target="_blank" class="Tweet-authorLink Identity u-linkBlend" data-scribe="element:user_link" href="'+author_url+'">' + '\n';
html += '\t\t\t\t\t\t'+ '<span class="Tweet-authorAvatar Identity-avatar">' + '\n';
html += '\t\t\t\t\t\t\t'+ '<img class="Avatar u-photo" data-scribe="element:avatar" data-src-2x="'+image_bigger+'" src="'+image_normal+'">' + '\n';
html += '\t\t\t\t\t\t'+ '</span>' + '\n';
html += '\t\t\t\t\t\t'+ '<span class="Tweet-authorName Identity-name p-name customisable-highlight" data-scribe="element:name">'+tweet["user"]["name"]+'</span>' + '\n';
html += '\t\t\t\t\t\t'+ '<span class="Tweet-authorScreenName Identity-screenName p-nickname" data-scribe="element:screen_name">@'+tweet["user"]["screen_name"]+'</span>' + '\n';
html += '\t\t\t\t\t'+ '</a>' + '\n';
html += '\t\t\t\t'+ '</div>' + '\n';
html += '\t\t\t'+ '</div>' + '\n';
html += '\t\t\t'+ '<div class="Tweet-body e-entry-content" data-scribe="component:tweet">' + '\n';
html += '\t\t\t\t'+ '<p class="Tweet-text e-entry-title" lang="en" dir="ltr">' + tweet["text"] + '</p>' + '\n';
if( !isUndef(tweet["retweet_count"]) || !isUndef(tweet["favourites_count"]) ) {
html += '\t\t\t\t'+ '<ul class="Tweet-actions" data-scribe="component:actions" role="menu" aria-label="Tweet actions">' + '\n';
if(tweet_links) {
html += '\t\t\t\t\t'+ '<li class="Tweet-action">' + '\n';
html += '\t\t\t\t\t\t'+ '<a target="_blank" class="TweetAction TweetAction--reply web-intent" href="https://twitter.com/intent/tweet?in_reply_to='+tweet["id_str"]+""+'" data-scribe="element:reply">' + '\n';
html += '\t\t\t\t\t\t\t'+ '<div class="Icon Icon--reply TweetAction-icon" aria-label="Reply" title="Reply" role="img"></div>' + '\n';
html += '\t\t\t\t\t\t'+ '</a>' + '\n';
html += '\t\t\t\t\t'+ '</li>' + '\n';
}
if(!isUndef(tweet["retweet_count"])) {
html += '\t\t\t\t\t'+ '<li class="Tweet-action">' + '\n';
html += '\t\t\t\t\t\t'+ '<a target="_blank" class="TweetAction TweetAction--retweet web-intent" href="https://twitter.com/intent/retweet?tweet_id='+tweet["id_str"]+'" data-scribe="element:retweet">' + '\n';
html += '\t\t\t\t\t\t\t'+ '<div class="Icon Icon--retweet TweetAction-icon" aria-label="Retweet" title="Retweet" role="img"></div>' + '\n';
html += '\t\t\t\t\t\t\t'+ '<span class="TweetAction-stat" data-scribe="element:retweet_count" aria-hidden="true">'+tweet["retweet_count"]+'</span>' + '\n';
html += '\t\t\t\t\t\t\t'+ '<span class="u-hiddenVisually">'+tweet["retweet_count"]+' Retweets</span>' + '\n';
html += '\t\t\t\t\t\t'+ '</a>' + '\n';
html += '\t\t\t\t\t'+ '</li>' + '\n';
}
if(!isUndef(tweet["favourites_count"])) {
html += '\t\t\t\t\t'+ '<li class="Tweet-action">' + '\n';
html += '\t\t\t\t\t\t'+ '<a target="_blank" class="TweetAction TweetAction--favorite web-intent" href="https://twitter.com/intent/favorite?tweet_id='+tweet["id_str"]+'" data-scribe="element:favorite">' + '\n';
html += '\t\t\t\t\t\t\t'+ '<div class="Icon Icon--favorite TweetAction-icon" aria-label="Favorite" title="Favorite" role="img"></div>' + '\n';
html += '\t\t\t\t\t\t\t'+ '<span class="TweetAction-stat" data-scribe="element:favourites_count" aria-hidden="true">'+tweet["favourites_count"]+'</span>' + '\n';
html += '\t\t\t\t\t\t\t'+ '<span class="u-hiddenVisually">'+tweet["favourites_count"]+' favorites</span>' + '\n';
html += '\t\t\t\t\t\t'+ '</a>' + '\n';
html += '\t\t\t\t\t'+ '</li>' + '\n';
}
html += '\t\t\t\t'+ '</ul>' + '\n';
}
html += '\t\t\t'+ '</div>' + '\n';
html += '\t\t'+ '</blockquote>' + '\n';
// html += '\t\t'+ '<br>' + '\n';
return html;
}
//FOR UNI-PARTITE
function selectionUni(currentNode){
......
......@@ -132,7 +132,7 @@
#ctlzoom {
position: fixed;
right: 260px;
right: 410px;
bottom: 0;
list-style: none;
padding: 0;
......@@ -287,3 +287,10 @@
#current-selection {
width: 100%; /* 100% within lefttopbox */
}
/* tweets inside topPapers */
.EmbeddedTweet-tweet {
width: 295px;
max-width: 295px;
}
......@@ -20,7 +20,7 @@ html, body {
top: 105px;
bottom: 0;
left: 0;
right: 250px;
right: 400px;
z-index: 1;
/* non selectable: we've got our own events here */
......@@ -35,7 +35,7 @@ html, body {
top: 105px;
bottom: 0;
right: 0;
width: 250px;
width: 400px;
z-index: 2;
border-left: 1px #222 solid;
overflow-y: scroll;
......
......@@ -21,7 +21,7 @@ var TW = {}
// // "data/example.json",
// // "data/Elisa__Omodei.gexf",
];
TW.APINAME = "LOCALDB/"; // TODO use in topPapers
TW.APINAME = "http://127.0.0.1:5000/twitter_search";
TW.tagcloud_limit = 50;
TW.bridge={};
TW.bridge["forFilteredQuery"] = "php/bridgeClientServer_filter.php";
......
......@@ -920,7 +920,9 @@ TinaWebJS = function ( sigmacanvas ) {
winResizeTimeout = setTimeout(function() {
console.log('did refresh')
TW.partialGraph.refresh()
theHtml.classList.remove('waiting');
if (theHtml.classList) {
theHtml.classList.remove('waiting');
}
}, 3000)
}, true)
......
......@@ -17,6 +17,8 @@ function cancelSelection (fromTagCloud, settings) {
//Nodes colors go back to normal
overNodes=false;
// £TODO case with return to alternate colors
if (TW.partialGraph.settings('drawEdges')) {
for(let i=0;i<TW.nEdges;i++){
let e = TW.partialGraph.graph.edges(TW.edgeIds[i])
......@@ -584,7 +586,7 @@ function unHide(nodeId) {
// case default: we just change the flags
// - greyish color was precomputed in prepareNodesRenderingProperties
// as n.customAttrs.defgrey_color
// - renderer will see the flags and and handle the case accordingly
// - renderer will see the flags and handle the case accordingly
// cases when coloredBy (ex: centrality): color must be recomputed here
function greyEverything(notDefaultColors){
......
......@@ -721,6 +721,7 @@ function clustersBy(daclass) {
var newval_color = Math.round( ( Min_color+(NodeID_Val[nid]["round"]-real_min)*((Max_color-Min_color)/(real_max-real_min)) ) );
var hex_color = rgbToHex(255, (255-newval_color) , 0)
TW.partialGraph.graph.nodes(nid).color = hex_color
TW.partialGraph.graph.nodes(nid).customAttrs.alt_color = hex_color
var newval_size = Math.round( ( Min_size+(NodeID_Val[nid]["round"]-real_min)*((Max_size-Min_size)/(real_max-real_min)) ) );
TW.partialGraph.graph.nodes(nid).size = newval_size;
......@@ -749,23 +750,25 @@ var totalsPerBinMin = {
}
// Edge-colour by source-target nodes-colours combination
// TODO rm because duplicate with edgeRGB
function repaintEdges() {
var v_edges = getVisibleEdges();
for(var e in v_edges) {
var e_id = v_edges[e].id;
var a = TW.partialGraph.graph.nodes(v_edges[e].source).color;
var b = TW.partialGraph.graph.nodes(v_edges[e].target).color;
a = hex2rga(a);
b = hex2rga(b);
var r = (a[0] + b[0]) >> 1;
var g = (a[1] + b[1]) >> 1;
var b = (a[2] + b[2]) >> 1;
TW.partialGraph.graph.edges(e_id).color = "rgba("+[r,g,b].join(",")+",0.5)";
// also keep components array (useful if we change opacity when selected)
TW.partialGraph.graph.edges(e_id).customAttrs.rgb = [r,g,b]
}
console.log('skipping repaintEdges')
// var v_edges = getVisibleEdges();
// for(var e in v_edges) {
// var e_id = v_edges[e].id;
// var a = TW.partialGraph.graph.nodes(v_edges[e].source).color;
// var b = TW.partialGraph.graph.nodes(v_edges[e].target).color;
// a = hex2rga(a);
// b = hex2rga(b);
// var r = (a[0] + b[0]) >> 1;
// var g = (a[1] + b[1]) >> 1;
// var b = (a[2] + b[2]) >> 1;
//
// TW.partialGraph.graph.edges(e_id).color = "rgba("+[r,g,b].join(",")+",0.5)";
//
// // also keep components array (useful if we change opacity when selected)
// TW.partialGraph.graph.edges(e_id).customAttrs.rgb = [r,g,b]
// }
}
// rewrite of clustersBy with binning and for attributes that can have negative float values
......@@ -795,11 +798,15 @@ function colorsRelByBins(daclass) {
// £TODO put colors and thresholds as params or calculate thresholds like eg d3.histogram
if (daclass == 'age') {
tickThresholds = [-1000000,1992,1994,1996,1998,2000,2002,2004,2006,2008,2010,2012,2014,2016]
tickThresholds = [-1000000,1992,1994,1996,1998,2000,2002,2004,2006,2008,2010,2012,2014,1451606400000]
// and add a grey color for the first timeperiod
binColors.unshift("#F9F7ED")
console.log("======> doing AGE")
}
else if (daclass == 'growth_rate') {
tickThresholds = [0,.001,.01,.1,.5,1,1.5,2,2.5,3,3.5,5, 1000000]
binColors[4] = ""
binColors = [
"#005197", //blue binMin -∞
......@@ -818,32 +825,50 @@ function colorsRelByBins(daclass) {
}
// new strategy
// do first loop entirely to get percentiles => bins, then modify alt_color
// get the nodes
var v_nodes = getVisibleNodes();
for(var i in v_nodes) {
var theId = v_nodes[i].id
var theNode = TW.Nodes[ theId ]
var attval = ( isUndef(theNode.attributes) || isUndef(theNode.attributes[daclass]) )? v_nodes[i][daclass]: theNode.attributes[daclass];
var theVal = parseFloat(attval)
var foundBin = false
console.log('theVal:',theVal)
if( !isNaN(theVal) ) { //is float
// iterate over bins
for(var j=0 ; j < tickThresholds.length-1; j++) {
var binMin = tickThresholds[j]
var binMax = tickThresholds[(j+1)]
if((theVal >= binMin) && (theVal < binMax)) {
TW.partialGraph._core.graph.nodesIndex[theId].binMin = binMin
TW.partialGraph._core.graph.nodesIndex[theId].color = binColors[j]
// TW.partialGraph._core.graph.nodesIndex[theId].binMin = binMin
// TW.partialGraph._core.graph.nodesIndex[theId].color = binColors[j]
TW.partialGraph.graph.nodes(theId).binMin = binMin
TW.partialGraph.graph.nodes(theId).color = binColors[j]
TW.partialGraph.graph.nodes(theId).customAttrs.alt_color = binColors[j]
foundBin = true
totalsPerBinMin[binMin]++
break
}
}
if (!foundBin) {
TW.partialGraph.graph.nodes(theId).binMin = null
TW.partialGraph.graph.nodes(theId).color = '#555'
TW.partialGraph.graph.nodes(theId).customAttrs.alt_color = '#555'
}
}
}
// [ Edge-colour by source-target nodes-colours combination ]
repaintEdges()
// repaintEdges()
// [ / Edge-colour by source-target nodes-colours combination ]
set_ClustersLegend ( null )
......@@ -877,6 +902,9 @@ function colorsBy(daclass) {
for(var i in v_nodes) {
var original_node_color = TW.Nodes[ v_nodes[i].id ].color
TW.partialGraph.graph.nodes(v_nodes[i].id).color = original_node_color
// reset the alt_color valflag
TW.partialGraph.graph.nodes(v_nodes[i].id).customAttrs.alt_color = null
}
}
else {
......@@ -887,9 +915,12 @@ function colorsBy(daclass) {
var the_node = TW.Nodes[ v_nodes[i].id ]
var attval = ( isUndef(the_node.attributes) || isUndef(the_node.attributes[daclass]) )? v_nodes[i][daclass]: the_node.attributes[daclass];
TW.partialGraph.graph.nodes(v_nodes[i].id).color = randomColorList[ attval ]
TW.partialGraph.graph.nodes(v_nodes[i].id).customAttrs.alt_color = randomColorList[ attval ]
}
}
// £TODO remove another duplicate of edgeRGB
// [ Edge-colour by source-target nodes-colours combination ]
var v_edges = getVisibleEdges();
for(var e in v_edges) {
......
#! /usr/bin/python3
"""
Micro-server for testing twitter top tweets queries
"""
__author__ = "Romain Loth"
__copyright__ = "Copyright 2017 ISCPIF-CNRS"
__license__ = "LGPL"
__version__ = "0.5"
__email__ = "romain.loth@iscpif.fr"
__status__ = "dev"
from json import load
from flask import Flask, request
from urllib.parse import quote
import twitter
from flask.ext.cors import CORS, cross_origin
app = Flask(__name__)
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
# ---- initialize twitter api with credentials ----
keys_file = open("keys.json")
credentials = load(keys_file)
keys_file.close()
TAPI = twitter.Api(consumer_key=credentials['consumer_key'],
consumer_secret=credentials['consumer_secret'],
access_token_key=credentials['access_token_key'],
access_token_secret=credentials['access_token_secret'])
print("logged in to twitter as", TAPI.VerifyCredentials().screen_name)
# query context: constant for one app
QCONTEXT = "(Fillon OR Macron OR JLM2017 OR Mélenchon OR #Marine2017 OR @MLP_officiel OR Hamon OR Presidentielle2017)"
@app.route('/twitter_search')
# @cross_origin(origin="twjs.org")
@cross_origin()
def searcher():
if 'query' in request.args:
# prepare query
# from args
q = request.args['query']
# TODO here sanitize
q = "%s AND %s" % (q, QCONTEXT)
q = quote(q)
q = "q=%s" % q + "&result_type=recent&count=5"
search_res = TAPI.GetSearch(raw_query=q)
sending_json = "[%s]" % ",".join([status.AsJsonString() for status in search_res])
else:
sending_json = '{"error":"no query??"}'
response = app.response_class(
response=sending_json,
status=200,
mimetype='application/json'
)
return response
########### MAIN ###########
if __name__ == "__main__":
app.run(debug=True)
blockquote.Tweet {
display: inline-block !important;
font-family: Roboto, "Helvetica Neue", "Segoe UI", Calibri, sans-serif !important;
font-size: 12px !important;
font-weight: bold !important;
line-height: 16px !important;
border-color: #eee #ddd #bbb !important;
border-radius: 5px !important;
border-style: solid !important;
border-width: 1px !important;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) !important;
margin: 10px 5px !important;
padding: 0 16px 16px 16px !important;
min-width: 330px !important;
width: 330px !important;
max-width: 330px !important;
}
p.Tweet-text {
font-size: 16px !important;
font-weight: normal !important;
line-height: 20px !important;
min-height: 90px !important;
}
.SandboxRoot { display: none !important; }
blockquote.Tweet a {
color: inherit !important;
font-weight: normal !important;
text-decoration: none !important;
outline: 0 none !important;
}
blockquote.Tweet a:hover,
blockquote.Tweet a:focus {
text-decoration: underline !important;
}
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.u-block{display:block!important}.u-hidden{display:none!important}.u-hiddenVisually{position:absolute!important;overflow:hidden!important;width:1px!important;height:1px!important;padding:0!important;border:0!important;clip:rect(1px,1px,1px,1px)!important}.u-inline{display:inline!important}.u-inlineBlock{display:inline-block!important;max-width:100%}.u-table{display:table!important}.u-tableCell{display:table-cell!important}.u-tableRow{display:table-row!important}.u-cf:after,.u-cf:before{content:" ";display:table}.u-cf:after{clear:both}.u-nbfc{overflow:hidden!important}.u-nbfcAlt{display:table-cell!important;width:10000px!important}.u-floatLeft{float:left!important}.u-floatRight{float:right!important}.u-textBreak{word-wrap:break-word!important}.u-textCenter{text-align:center!important}.u-textLeft{text-align:left!important}.u-textRight{text-align:right!important}.u-textInheritColor{color:inherit!important}.u-textKern{text-rendering:optimizeLegibility;-webkit-font-feature-settings:"kern" 1;-moz-font-feature-settings:"kern" 1;font-feature-settings:"kern" 1;-webkit-font-kerning:normal;-moz-font-kerning:normal;font-kerning:normal}.u-textNoWrap{white-space:nowrap!important}.u-textTruncate{max-width:100%;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;word-wrap:normal!important}blockquote,button,h1,h2,h3,h4,h5,h6,iframe,ol,p,ul{margin:0;padding:0;list-style:none;border:none}b,i{font-weight:400;font-style:normal}abbr{border-bottom:0}.SandboxRoot{direction:ltr;text-align:left}.SandboxRoot{display:block;background:0 0;font:normal normal 16px/1.4 Helvetica,Roboto,"Segoe UI",Calibri,sans-serif;color:#1c2022}a{text-decoration:none;outline:0}a:visited{outline:0}a:focus{color:#3b94d9;text-decoration:underline;outline:0}a:hover{outline:0}a:active{outline:0}.SandboxRoot.env-narrow{font-size:14px}.SandboxRoot:not(.env-narrow) .u-hiddenInWideEnv{display:none}.SandboxRoot.env-narrow .u-hiddenInNarrowEnv{display:none}.u-linkBlend:not(:focus):not(:hover):not(:active){font-weight:inherit;color:inherit;text-decoration:inherit}.Avatar{max-width:100%;max-height:100%}.Button,.Button:link,.Button:visited{-webkit-appearance:none;background-color:#f5f8fa;background-image:-webkit-linear-gradient(#fff,#f5f8fa);background-image:-moz-linear-gradient(#fff,#f5f8fa);background-image:-o-linear-gradient(#fff,#f5f8fa);background-image:linear-gradient(#fff,#f5f8fa);border:1px solid #e1e8ed;border-radius:4px;-moz-box-sizing:border-box;box-sizing:border-box;color:#1c2022;cursor:pointer;display:inline-block;font:inherit;line-height:normal;margin:0;padding:.5rem .9375rem .4375rem;position:relative;text-align:center;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:normal}.Button::-moz-focus-inner{border:0;padding:0}.Button:active,.Button:focus,.Button:hover{text-decoration:none}.Button:hover{background-color:#e1e8ed;background-image:-webkit-linear-gradient(#fff,#e1e8ed);background-image:-moz-linear-gradient(#fff,#e1e8ed);background-image:-o-linear-gradient(#fff,#e1e8ed);background-image:linear-gradient(#fff,#e1e8ed);border-color:#e1e8ed}.Button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(0,132,180,.5)}.Button:active{background-color:#e1e8ed;background-image:-webkit-linear-gradient(#fff,#f5f8fa);background-image:-moz-linear-gradient(#fff,#f5f8fa);background-image:-o-linear-gradient(#fff,#f5f8fa);background-image:linear-gradient(#fff,#f5f8fa);border-color:#ccd6dd;box-shadow:inset 0 1px 4px rgba(0,0,0,.2)}.Button.is-disabled,.Button:disabled{cursor:default;opacity:.6}.Button-label{font-weight:700}.Button--full{display:block;width:100%}.EmbeddedTweet{overflow:hidden;cursor:pointer;background-color:#fff;border:1px solid #e1e8ed;border-radius:4px;max-width:520px}.EmbeddedTweet:hover{border-color:#ccd6dd}.EmbeddedTweet-ancestor{padding:1.25rem 1.25rem 1.1rem 1.25rem;background-color:#f5f8fa}.EmbeddedTweet-tweet{padding:1.25rem 1.25rem .725rem 1.25rem}.EmbeddedTweet--mediaForward{border:0}.EmbeddedTweet--mediaForward .EmbeddedTweet-tweet{padding-top:.9rem;border:1px solid #e1e8ed;border-width:0 1px 1px;border-radius:0 0 4px 4px}.EmbeddedTweet--mediaForward:hover .EmbeddedTweet-tweet{border-color:#ccd6dd}.EmbeddedTweet--mediaForward:hover .MediaCard-borderOverlay{border-color:rgba(204,214,221,.75)}.Emoji{height:1em;width:1em;padding:0 .05em 0 .1em;vertical-align:-.1em}.FollowButton{display:inline-block;padding:.34375rem .8125rem .40625rem .71875rem;font-size:.875rem;font-weight:700;line-height:1;color:#55acee;background-color:#fff;border:1px solid #55acee;border-radius:4px}.FollowButton:visited{color:#55acee}.FollowButton:active,.FollowButton:focus,.FollowButton:hover{color:#fff;text-decoration:none;background-color:#55acee}.FollowButton:active .Icon--twitter,.FollowButton:focus .Icon--twitter,.FollowButton:hover .Icon--twitter{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgNzIgNzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDcyIDcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxyZWN0IHg9IjAiIGZpbGw9Im5vbmUiIHdpZHRoPSI3MiIgaGVpZ2h0PSI3MiIvPg0KPHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTY4LjgxMiwxNS4xNDFjLTIuMzQ4LDEuMDM5LTQuODY5LDEuNzQzLTcuNTE5LDIuMDZjMi43MDMtMS42Miw0Ljc3OC00LjE4Nyw1Ljc1Ni03LjI0NGMtMi41MjksMS41LTUuMzMsMi41OTItOC4zMTMsMy4xNzYNCglDNTYuMzQ5LDEwLjU5MSw1Mi45NDgsOSw0OS4xODIsOWMtNy4yMjksMC0xMy4wOTIsNS44NjEtMTMuMDkyLDEzLjA5M2MwLDEuMDI2LDAuMTE4LDIuMDIxLDAuMzM4LDIuOTgxDQoJYy0xMC44ODUtMC41NDgtMjAuNTI4LTUuNzU3LTI2Ljk4Ny0xMy42NzljLTEuMTI2LDEuOTM2LTEuNzcxLDQuMTg0LTEuNzcxLDYuNTgxYzAsNC41NDIsMi4zMTIsOC41NTEsNS44MjQsMTAuODk4DQoJYy0yLjE0Ni0wLjA2OS00LjE2NS0wLjY1Ny01LjkzLTEuNjM4Yy0wLjAwMiwwLjA1NS0wLjAwMiwwLjExLTAuMDAyLDAuMTYyYzAsNi4zNDUsNC41MTMsMTEuNjM4LDEwLjUwNCwxMi44NA0KCWMtMS4xMDEsMC4yOTgtMi4yNTYsMC40NTctMy40NDksMC40NTdjLTAuODQ2LDAtMS42NjctMC4wNzgtMi40NjUtMC4yMzFjMS42NjcsNS4yLDYuNDk5LDguOTg2LDEyLjIzLDkuMDkNCgljLTQuNDgyLDMuNTEyLTEwLjEyOSw1LjYwNi0xNi4yNiw1LjYwNmMtMS4wNTUsMC0yLjA5Ni0wLjA2MS0zLjEyMi0wLjE4NGM1Ljc5NCwzLjcxNywxMi42NzYsNS44ODIsMjAuMDY3LDUuODgyDQoJYzI0LjA4MywwLDM3LjI1MS0xOS45NDksMzcuMjUxLTM3LjI0OWMwLTAuNTY2LTAuMDE0LTEuMTM0LTAuMDM5LTEuNjk0QzY0LjgzOCwyMC4wNjgsNjcuMDU4LDE3Ljc2NSw2OC44MTIsMTUuMTQxeiIvPg0KPC9zdmc+DQo=)}.FollowButton-bird,.FollowButton-plus{position:relative;top:.0625rem;display:inline-block}.FollowButton--compact{padding:.34375rem .75rem .375rem .8125rem}.FollowButton--compact:active .Icon--plus,.FollowButton--compact:focus .Icon--plus,.FollowButton--compact:hover .Icon--plus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgNDQgNzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQ0IDcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxyZWN0IHg9IjAiIGZpbGw9Im5vbmUiIHdpZHRoPSI0NCIgaGVpZ2h0PSI3MiIvPg0KPHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTM4LDMzSDI1VjIwLjAwMWMwLTEuNjU3LTEuMzQzLTMtMy0zYy0xLjY1NiwwLTMsMS4zNDMtMywzVjMzSDZjLTEuNjU2LDAtMywxLjM0My0zLDNzMS4zNDQsMywzLDNoMTN2MTMuMDAxDQoJYzAsMS42NTcsMS4zNDQsMywzLDNjMS42NTcsMCwzLTEuMzQzLDMtM1YzOWgxM2MxLjY1NiwwLDMtMS4zNDMsMy0zUzM5LjY1NiwzMywzOCwzM3oiLz4NCjwvc3ZnPg0K)}.Icon{display:inline-block;height:1.25em;background-repeat:no-repeat;background-size:contain;vertical-align:text-bottom}.Icon--alertsPill{width:1.0763888888888888em;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjYyIiBoZWlnaHQ9IjcyIiB2aWV3Qm94PSIwIDAgNjIgNzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYyIDcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiNkZDJlNDQiIGQ9Ik01MSwxNEgxMWMtNC40MTksMC04LDMuNTgxLTgsOHYyOGMwLDQuNDE4LDMuNTgxLDgsOCw4aDQwYzQuNDE4LDAsOC0zLjU4Miw4LThWMjJDNTksMTcuNTgxLDU1LjQxOCwxNCw1MSwxNHogTTEyLjEwNywzNi45OTdDMTIuMDcxLDM2Ljk5OSwxMi4wMzUsMzcsMTEuOTk5LDM3Yy0xLjA1NiwwLTEuOTM4LTAuODI2LTEuOTk1LTEuODk0Yy0wLjMzOS02LjM1NCwzLjEzMi0xMi4yNzYsOC44NDQtMTUuMDg4YzAuOTkxLTAuNDg3LDIuMTg5LTAuMDc5LDIuNjc3LDAuOTEyczAuMDgsMi4xODktMC45MTIsMi42NzhjLTQuMjcyLDIuMTAzLTYuODY5LDYuNTMyLTYuNjE1LDExLjI4NUMxNC4wNTcsMzUuOTk2LDEzLjIxLDM2LjkzOCwxMi4xMDcsMzYuOTk3eiBNMTkuMTA3LDM3Ljk5N0MxOS4wNzEsMzcuOTk5LDE5LjAzNSwzOCwxOC45OTksMzhjLTEuMDU2LDAtMS45MzgtMC44MjctMS45OTUtMS44OTRjLTAuMjM0LTQuMzksMi4xNjQtOC40NzgsNi4xMDgtMTAuNDEzYzAuOTkyLTAuNDg4LDIuMTg5LTAuMDc5LDIuNjc3LDAuOTE0YzAuNDg3LDAuOTkxLDAuMDc4LDIuMTg5LTAuOTE0LDIuNjc2Yy0yLjUwMywxLjIyOS00LjAyNSwzLjgyNC0zLjg3Niw2LjYxQzIxLjA1NiwzNi45OTcsMjAuMjEsMzcuOTM4LDE5LjEwNywzNy45OTd6IE00MC4yMTMsNDcuMTA3Yy0wLjIwOSwwLjc3NC0wLjkzOSwxLjI4Mi0xLjczMywxLjM4N2MtMC4wOTMsMC4wMTQtMC4xODgsMC4wMjEtMC4yODUsMC4wMjFjLTAuMDA3LDAtMC4wMTMsMC0wLjAyLDBoLTMuNzc2QzMzLjkzMSw0OS45NTMsMzIuNTk0LDUxLDMxLDUxYy0xLjU5NiwwLTIuOTMyLTEuMDQ3LTMuMzk4LTIuNDg1aC0zLjc3OWMtMC45MTEsMC0xLjgxOC0wLjU0NC0yLjA0Ny0xLjQyNmMtMC4yMjMtMC44NTksMC4wNDItMS42OTEsMC43OTItMi4xNDRjMC4yMDEtMC4yNDgsMS4wNDgtMS40ODcsMS4wNDgtNC43MTFjMC01LjQwNiwyLjQ2LTguMDQxLDUuMjczLTguODkyYzAuMTMxLTEuMDU0LDEuMDItMS44NzMsMi4xMDktMS44NzNjMS4wOTMsMCwxLjk4MywwLjgyNCwyLjExLDEuODgyYzIuODI3LDAuODU4LDUuMjcyLDMuNDg1LDUuMjg2LDguODU3YzAuMDA4LDMuMTkyLDAuODI3LDQuNDYyLDEuMDQ0LDQuNzQyYzAuMDE0LDAuMDExLDAuMDI3LDAuMDIxLDAuMDQsMC4wMzJDNDAuMTk2LDQ1LjQ0OCw0MC40MzksNDYuMjY4LDQwLjIxMyw0Ny4xMDd6IE00NC45OTgsMzYuMTA2QzQ0Ljk0MSwzNy4xNzMsNDQuMDU4LDM4LDQzLjAwMiwzOGMtMC4wMzYsMC0wLjA3Mi0wLjAwMS0wLjEwOC0wLjAwM2MtMS4xMDMtMC4wNTktMS45NDktMS0xLjg5MS0yLjEwNGMwLjE0OC0yLjc4Ni0xLjM3NC01LjM4MS0zLjg3Ni02LjYxYy0wLjk5Mi0wLjQ4Ni0xLjQwMS0xLjY4NS0wLjkxNC0yLjY3NmMwLjQ4Ny0wLjk5MSwxLjY4NS0xLjQwMSwyLjY3Ny0wLjkxNEM0Mi44MzQsMjcuNjI5LDQ1LjIzMSwzMS43MTcsNDQuOTk4LDM2LjEwNnogTTUxLjk5OCwzNS4xMDZDNTEuOTQsMzYuMTczLDUxLjA1OCwzNyw1MC4wMDIsMzdjLTAuMDM2LDAtMC4wNzItMC4wMDEtMC4xMDgtMC4wMDNjLTEuMTAzLTAuMDU5LTEuOTUtMS4wMDEtMS44OTEtMi4xMDRjMC4yNTQtNC43NTMtMi4zNDMtOS4xODMtNi42MTUtMTEuMjg1Yy0wLjk5MS0wLjQ4OC0xLjM5OS0xLjY4Ny0wLjkxMi0yLjY3OGMwLjQ4Ny0wLjk5MSwxLjY4Ni0xLjQsMi42NzctMC45MTJDNDguODY2LDIyLjgzLDUyLjMzNywyOC43NTIsNTEuOTk4LDM1LjEwNnoiLz4NCjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0zOC44OSwyNS42OTNjLTAuOTkyLTAuNDg3LTIuMTg5LTAuMDc3LTIuNjc3LDAuOTE0Yy0wLjQ4NywwLjk5MS0wLjA3OCwyLjE4OSwwLjkxNCwyLjY3NmMyLjUwMywxLjIyOSw0LjAyNSwzLjgyNCwzLjg3Niw2LjYxYy0wLjA1OSwxLjEwNCwwLjc4OCwyLjA0NSwxLjg5MSwyLjEwNEM0Mi45MywzNy45OTksNDIuOTY2LDM4LDQzLjAwMiwzOGMxLjA1NiwwLDEuOTM4LTAuODI3LDEuOTk1LTEuODk0QzQ1LjIzMSwzMS43MTcsNDIuODM0LDI3LjYyOSwzOC44OSwyNS42OTN6Ii8+DQo8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNDMuMTU0LDIwLjAxOWMtMC45OTEtMC40ODgtMi4xOS0wLjA3OS0yLjY3NywwLjkxMmMtMC40ODgsMC45OTEtMC4wOCwyLjE4OSwwLjkxMiwyLjY3OGM0LjI3MiwyLjEwMyw2Ljg2OSw2LjUzMiw2LjYxNSwxMS4yODVjLTAuMDU5LDEuMTAzLDAuNzg4LDIuMDQ1LDEuODkxLDIuMTA0QzQ5LjkzLDM2Ljk5OSw0OS45NjYsMzcsNTAuMDAyLDM3YzEuMDU1LDAsMS45MzgtMC44MjcsMS45OTUtMS44OTRDNTIuMzM3LDI4Ljc1Miw0OC44NjYsMjIuODMsNDMuMTU0LDIwLjAxOXoiLz4NCjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0zOS40OCw0NC45ODJjLTAuMDEzLTAuMDExLTAuMDI2LTAuMDIxLTAuMDQtMC4wMzJjLTAuMjE3LTAuMjgtMS4wMzYtMS41NS0xLjA0NC00Ljc0MmMtMC4wMTMtNS4zNzEtMi40NTktNy45OTktNS4yODYtOC44NTdjLTAuMTI3LTEuMDU4LTEuMDE3LTEuODgyLTIuMTEtMS44ODJjLTEuMDg5LDAtMS45NzksMC44MTktMi4xMDksMS44NzNjLTIuODEzLDAuODUxLTUuMjczLDMuNDg2LTUuMjczLDguODkyYzAsMy4yMjQtMC44NDcsNC40NjMtMS4wNDgsNC43MTFjLTAuNzUsMC40NTItMS4wMTYsMS4yODQtMC43OTIsMi4xNDRjMC4yMjksMC44ODIsMS4xMzYsMS40MjYsMi4wNDcsMS40MjZoMy43NzlDMjguMDY5LDQ5Ljk1MywyOS40MDQsNTEsMzEsNTFjMS41OTMsMCwyLjkzLTEuMDQ3LDMuMzk4LTIuNDg1aDMuNzc2YzAuMDA3LDAsMC4wMTMsMCwwLjAyLDBjMC4wOTcsMCwwLjE5Mi0wLjAwNywwLjI4NS0wLjAyMWMwLjc5My0wLjEwNCwxLjUyNC0wLjYxMiwxLjczMy0xLjM4N0M0MC40MzksNDYuMjY4LDQwLjE5Niw0NS40NDgsMzkuNDgsNDQuOTgyeiIvPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTI0Ljg3NCwyOS4yODNjMC45OTItMC40ODYsMS40MDEtMS42ODUsMC45MTQtMi42NzZjLTAuNDg3LTAuOTkzLTEuNjg1LTEuNDAyLTIuNjc3LTAuOTE0Yy0zLjk0NCwxLjkzNi02LjM0Miw2LjAyMy02LjEwOCwxMC40MTNDMTcuMDYsMzcuMTczLDE3Ljk0MywzOCwxOC45OTksMzhjMC4wMzYsMCwwLjA3Mi0wLjAwMSwwLjEwOC0wLjAwM2MxLjEwMy0wLjA1OSwxLjk0OS0xLDEuODkxLTIuMTA0QzIwLjg0OSwzMy4xMDcsMjIuMzcxLDMwLjUxMywyNC44NzQsMjkuMjgzeiIvPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTIwLjYxMywyMy42MDhjMC45OTEtMC40ODgsMS4zOTktMS42ODcsMC45MTItMi42NzhzLTEuNjg3LTEuMzk5LTIuNjc3LTAuOTEyYy01LjcxMiwyLjgxMi05LjE4Myw4LjczMy04Ljg0NCwxNS4wODhDMTAuMDYxLDM2LjE3NCwxMC45NDMsMzcsMTEuOTk5LDM3YzAuMDM2LDAsMC4wNzItMC4wMDEsMC4xMDgtMC4wMDNjMS4xMDMtMC4wNTksMS45NS0xLjAwMSwxLjg5MS0yLjEwNEMxMy43NDQsMzAuMTQxLDE2LjM0LDI1LjcxMSwyMC42MTMsMjMuNjA4eiIvPg0KPC9zdmc+DQo=)}.Icon--favorite{width:.9722222222222222em;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjcyIiB2aWV3Qm94PSIwIDAgNTYgNzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDU2IDcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiM2OTc4ODIiIGQ9Ik01Mi4zNjYsMjguOTQzYy0wLjM3NC0xLjE2OS0xLjQ2My0xLjk2My0yLjY5My0xLjk2M0gzNS40ODRsLTQuODA5LTE0LjA3QzMwLjI4NSwxMS43NjcsMjkuMjEsMTEsMjgsMTFzLTIuMjg1LDAuNzY3LTIuNjc2LDEuOTFsLTQuODA5LDE0LjA3SDYuMzI3Yy0xLjIzLDAtMi4zMTksMC43OTQtMi42OTMsMS45NjNjLTAuMzc0LDEuMTY5LDAuMDUzLDIuNDQ2LDEuMDU1LDMuMTU2bDExLjMzMiw4LjAzMkwxMS4xOSw1NC4yN2MtMC4zOTYsMS4xNTgsMC4wMDIsMi40MzksMC45ODYsMy4xNzFjMC45ODMsMC43MywyLjMyNywwLjc0NywzLjMyOCwwLjAzOEwyOCw0OC42MjFsMTIuNDk3LDguODU3QzQwLjk4OCw1Ny44MjYsNDEuNTYxLDU4LDQyLjEzNSw1OGMwLjU5NSwwLDEuMTg5LTAuMTg3LDEuNjktMC41NTljMC45ODMtMC43MzIsMS4zODItMi4wMTMsMC45ODYtMy4xNzFsLTQuODMyLTE0LjEzOWwxMS4zMzItOC4wMzJDNTIuMzEzLDMxLjM4OCw1Mi43NCwzMC4xMTIsNTIuMzY2LDI4Ljk0M3oiLz4NCjwvc3ZnPg0K)}.Icon--playCircle{width:1.0416666666666667em;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjYwIiBoZWlnaHQ9IjcyIiB2aWV3Qm94PSIwIDAgNjAgNzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYwIDcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIG9wYWNpdHk9IjAuOCIgZmlsbD0iIzFEQTFGMiIgZD0iTTMwLjAwMSwxMkMxNi43NjcsMTIsNiwyMi43NjUsNiwzNS45OTlzMTAuNzY2LDIzLjk5OSwyNCwyMy45OTlzMjQtMTAuNzY1LDI0LTIzLjk5OVM0My4yMzUsMTIsMzAuMDAxLDEyTDMwLjAwMSwxMnoiLz4NCjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0zOS4yMDEsMzQuMzRsLTEyLTljLTAuNjA3LTAuNDU1LTEuNDE5LTAuNTI4LTIuMDk1LTAuMTg5Yy0wLjY3NywwLjMzOS0xLjEwNiwxLjAzMS0xLjEwNiwxLjc4OXYxOGMwLDAuNzU4LDAuNDI4LDEuNDUsMS4xMDYsMS43ODljMC4yODMsMC4xNDIsMC41ODksMC4yMTEsMC44OTQsMC4yMTFjMC40MjUsMCwwLjg0Ny0wLjEzNiwxLjItMC40bDEyLTljMC41MDMtMC4zNzcsMC44LTAuOTcsMC44LTEuNkM0MC4wMDEsMzUuMzEsMzkuNzA1LDM0LjcxNywzOS4yMDEsMzQuMzR6Ii8+DQo8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMzAsMTVjMTEuNTk4LDAsMjEsOS40MDIsMjEsMjAuOTk5cy05LjQwMSwyMC45OTktMjEsMjAuOTk5Yy0xMS41OTksMC0yMS05LjQwMi0yMS0yMC45OTlTMTguNDAxLDE1LDMwLDE1IE0zMCw5QzE1LjExMiw5LDMsMjEuMTExLDMsMzUuOTk5czEyLjExMiwyNi45OTksMjcsMjYuOTk5YzE0Ljg4OCwwLDI3LTEyLjExMSwyNy0yNi45OTlTNDQuODg4LDksMzAsOUwzMCw5eiIvPg0KPC9zdmc+DQo=)}.Icon--plus{width:.6944444444444444em;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgNDQgNzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQ0IDcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxyZWN0IHg9IjAiIGZpbGw9Im5vbmUiIHdpZHRoPSI0NCIgaGVpZ2h0PSI3MiIvPg0KPHBhdGggZmlsbD0iIzU1YWNlZSIgZD0iTTM4LDMzSDI1VjIwLjAwMWMwLTEuNjU3LTEuMzQzLTMtMy0zYy0xLjY1NiwwLTMsMS4zNDMtMywzVjMzSDZjLTEuNjU2LDAtMywxLjM0My0zLDNzMS4zNDQsMywzLDNoMTN2MTMuMDAxDQoJYzAsMS42NTcsMS4zNDQsMywzLDNjMS42NTcsMCwzLTEuMzQzLDMtM1YzOWgxM2MxLjY1NiwwLDMtMS4zNDMsMy0zUzM5LjY1NiwzMywzOCwzM3oiLz4NCjwvc3ZnPg0K)}.Icon--reply{width:1.0763888888888888em;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjYyIiBoZWlnaHQ9IjcyIiB2aWV3Qm94PSIwIDAgNjIgNzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYyIDcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiM2OTc4ODIiIGQ9Ik00MSwzMWgtOVYxOWMwLTEuMTQxLTAuNjQ3LTIuMTgzLTEuNjY4LTIuNjg4Yy0xLjAyMi0wLjUwNy0yLjI0My0wLjM4OS0zLjE0OSwwLjMwMmwtMjEsMTZDNS40MzcsMzMuMTgxLDUsMzQuMDYzLDUsMzVzMC40MzcsMS44MTksMS4xODIsMi4zODdsMjEsMTZDMjcuNzE1LDUzLjc5MiwyOC4zNTYsNTQsMjkuMDAxLDU0YzAuNDU0LDAsMC45MDktMC4xMDMsMS4zMzEtMC4zMTJDMzEuMzU0LDUzLjE4MywzMiw1Mi4xNDEsMzIsNTFWMzloOWM1LjUxNCwwLDEwLDQuNDg2LDEwLDEwYzAsMi4yMDksMS43OTEsNCw0LDRzNC0xLjc5MSw0LTRDNTksMzkuMDc1LDUwLjkyNSwzMSw0MSwzMXoiLz4NCjwvc3ZnPg0K);-webkit-transform:scaleX(1);-moz-transform:scaleX(1);-ms-transform:scaleX(1);-o-transform:scaleX(1);transform:scaleX(1)}.Icon--retweet{width:1.284722222222222em;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9Ijc0IiBoZWlnaHQ9IjcyIiB2aWV3Qm94PSIwIDAgNzQgNzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDc0IDcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiM2OTc4ODIiIGQ9Ik03MC42NzYsMzYuNjQ0QzcwLjE2NSwzNS42MzYsNjkuMTMxLDM1LDY4LDM1aC03VjE5YzAtMi4yMDktMS43OTEtNC00LTRIMzRjLTIuMjA5LDAtNCwxLjc5MS00LDRzMS43OTEsNCw0LDRoMThjMC41NTIsMCwwLjk5OCwwLjQ0NiwxLDAuOTk4VjM1aC03Yy0xLjEzLDAtMi4xNjUsMC42MzYtMi42NzYsMS42NDRjLTAuNTExLDEuMDA5LTAuNDEyLDIuMjE5LDAuMjU3LDMuMTMxbDExLDE1QzU1LjE0Nyw1NS41NDUsNTYuMDQ1LDU2LDU3LjAwMSw1NnMxLjg1NC0wLjQ1NSwyLjQxOS0xLjIyNmwxMS0xNUM3MS4wODgsMzguODYyLDcxLjE4NywzNy42NTIsNzAuNjc2LDM2LjY0NHoiLz4NCjxwYXRoIGZpbGw9IiM2OTc4ODIiIGQ9Ik00MC4wMDEsNDhIMjJjLTAuNTM5LDAtMC45Ny0wLjQyNy0wLjk5Mi0wLjk2TDIxLjAwMSwzNmg3YzEuMTMsMCwyLjE2NS0wLjYzNiwyLjY3Ni0xLjY0NGMwLjUxMS0xLjAwOSwwLjQxMi0yLjIxOS0wLjI1Ny0zLjEzMWwtMTEtMTVDMTguODU0LDE1LjQ1NSwxNy45NTYsMTUsMTcsMTVzLTEuODU0LDAuNDU1LTIuNDE5LDEuMjI2bC0xMSwxNWMtMC42NjgsMC45MTItMC43NjgsMi4xMjItMC4yNTYsMy4xMzFDMy44MzYsMzUuMzY0LDQuODcxLDM2LDYuMDAxLDM2aDdsMC4wMTEsMTYuMDAzYzAuMDAyLDIuMjA4LDEuNzkyLDMuOTk3LDQsMy45OTdoMjIuOTg5YzIuMjA5LDAsNC0xLjc5MSw0LTRTNDIuMjEsNDgsNDAuMDAxLDQ4eiIvPg0KPC9zdmc+DQo=);-webkit-transform:scaleX(1);-moz-transform:scaleX(1);-ms-transform:scaleX(1);-o-transform:scaleX(1);transform:scaleX(1)}.Icon--twitter{width:1.25em;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgNzIgNzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDcyIDcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxyZWN0IHg9IjAiIGZpbGw9Im5vbmUiIHdpZHRoPSI3MiIgaGVpZ2h0PSI3MiIvPg0KPHBhdGggZmlsbD0iIzU1YWNlZSIgZD0iTTY4LjgxMiwxNS4xNDFjLTIuMzQ4LDEuMDM5LTQuODY5LDEuNzQzLTcuNTE5LDIuMDZjMi43MDMtMS42Miw0Ljc3OC00LjE4Nyw1Ljc1Ni03LjI0NGMtMi41MjksMS41LTUuMzMsMi41OTItOC4zMTMsMy4xNzYNCglDNTYuMzQ5LDEwLjU5MSw1Mi45NDgsOSw0OS4xODIsOWMtNy4yMjksMC0xMy4wOTIsNS44NjEtMTMuMDkyLDEzLjA5M2MwLDEuMDI2LDAuMTE4LDIuMDIxLDAuMzM4LDIuOTgxDQoJYy0xMC44ODUtMC41NDgtMjAuNTI4LTUuNzU3LTI2Ljk4Ny0xMy42NzljLTEuMTI2LDEuOTM2LTEuNzcxLDQuMTg0LTEuNzcxLDYuNTgxYzAsNC41NDIsMi4zMTIsOC41NTEsNS44MjQsMTAuODk4DQoJYy0yLjE0Ni0wLjA2OS00LjE2NS0wLjY1Ny01LjkzLTEuNjM4Yy0wLjAwMiwwLjA1NS0wLjAwMiwwLjExLTAuMDAyLDAuMTYyYzAsNi4zNDUsNC41MTMsMTEuNjM4LDEwLjUwNCwxMi44NA0KCWMtMS4xMDEsMC4yOTgtMi4yNTYsMC40NTctMy40NDksMC40NTdjLTAuODQ2LDAtMS42NjctMC4wNzgtMi40NjUtMC4yMzFjMS42NjcsNS4yLDYuNDk5LDguOTg2LDEyLjIzLDkuMDkNCgljLTQuNDgyLDMuNTEyLTEwLjEyOSw1LjYwNi0xNi4yNiw1LjYwNmMtMS4wNTUsMC0yLjA5Ni0wLjA2MS0zLjEyMi0wLjE4NGM1Ljc5NCwzLjcxNywxMi42NzYsNS44ODIsMjAuMDY3LDUuODgyDQoJYzI0LjA4MywwLDM3LjI1MS0xOS45NDksMzcuMjUxLTM3LjI0OWMwLTAuNTY2LTAuMDE0LTEuMTM0LTAuMDM5LTEuNjk0QzY0LjgzOCwyMC4wNjgsNjcuMDU4LDE3Ljc2NSw2OC44MTIsMTUuMTQxeiIvPg0KPC9zdmc+DQo=)}.Icon--verified{width:1.1111111111111112em;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCA2NCA3MiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNjQgNzIiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHJlY3QgeD0iMCIgZmlsbD0ibm9uZSIgd2lkdGg9IjY0IiBoZWlnaHQ9IjcyIi8+DQo8cGF0aCBmaWxsPSIjODhjOWY5IiBkPSJNMy4wMDEsMzcuMzE1YzAsNC4xMjUsMi4xNjEsNy43MjYsNS4zNjIsOS42MjRjLTAuMDU2LDAuNDY4LTAuMDg5LDAuOTM4LTAuMDg5LDEuNDIxYzAsNi4xMDMsNC43MTgsMTEuMDQ1LDEwLjU0NSwxMS4wNDUNCgljMS4yOTYsMCwyLjU0My0wLjIzNCwzLjY4OC0wLjY4NmMxLjcxNCwzLjY4Myw1LjMxOSw2LjIxMyw5LjQ5Miw2LjIxM2M0LjE3NSwwLDcuNzgzLTIuNTMsOS40OTItNi4yMTMNCgljMS4xNDcsMC40NTEsMi4zODksMC42ODYsMy42OSwwLjY4NmM1LjgyNSwwLDEwLjU0NS00Ljk0MSwxMC41NDUtMTEuMDQ1YzAtMC40ODMtMC4wMzctMC45NTMtMC4wOTMtMS40MjENCgljMy4xOTctMS44OTksNS4zNjYtNS40OTksNS4zNjYtOS42MjRjMC00LjM3LTIuNDE4LTguMTUxLTUuOTMyLTkuOTQ2YzAuNDI3LTEuMjAyLDAuNjU4LTIuNSwwLjY1OC0zLjg2NA0KCWMwLTYuMTA0LTQuNzItMTEuMDQ1LTEwLjU0NS0xMS4wNDVjLTEuMzAyLDAtMi41NDMsMC4yMzItMy42OSwwLjY4OEMzOS43ODMsOS40NjMsMzYuMTc1LDYuOTMyLDMyLDYuOTMyDQoJYy00LjE3MywwLTcuNzc4LDIuNTMxLTkuNDkyLDYuMjE2Yy0xLjE0Ni0wLjQ1NS0yLjM5My0wLjY4OC0zLjY4OC0wLjY4OGMtNS44MjcsMC0xMC41NDUsNC45NC0xMC41NDUsMTEuMDQ1DQoJYzAsMS4zNjQsMC4yMzEsMi42NjIsMC42NTYsMy44NjRDNS40MTksMjkuMTY0LDMuMDAxLDMyLjk0NSwzLjAwMSwzNy4zMTV6Ii8+DQo8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMTcuODcxLDM5LjA3OWw3LjAxNCw2Ljk3OWMwLjU4NSwwLjU4MiwxLjM1MSwwLjg3MywyLjExNiwwLjg3M2MwLjc3LDAsMS41NDEtMC4yOTUsMi4xMjYtMC44ODQNCgljMC4zNDQtMC4zNDYsMTUuOTgtMTUuOTc0LDE1Ljk4LTE1Ljk3NGMxLjE3Mi0xLjE3MiwxLjE3Mi0zLjA3MSwwLjAwMS00LjI0M2MtMS4xNzEtMS4xNzEtMy4wNzEtMS4xNzItNC4yNDMtMC4wMDFMMjYuOTk2LDM5LjY5Mw0KCWwtNC44OTMtNC44NjhjLTEuMTc0LTEuMTY4LTMuMDc0LTEuMTY0LTQuMjQyLDAuMDExQzE2LjY5MiwzNi4wMTEsMTYuNjk3LDM3LjkxLDE3Ljg3MSwzOS4wNzl6Ii8+DQo8L3N2Zz4NCg==)}.Identity-name{font-weight:700}.Identity-screenName{color:#697882}.Identity:focus{text-decoration:none}.Identity:focus .Identity-name{text-decoration:underline}.Identity--blended .Identity-screenName{color:inherit}.Identity--withInlineAvatar{line-height:1.125rem}.Identity--withInlineAvatar .Identity-avatar{width:1.125rem;height:1.125rem;border-radius:2px;vertical-align:top}.PrettyLink:focus{text-decoration:none}.PrettyLink:focus .PrettyLink-value{text-decoration:underline}.Tweet-header{position:relative;padding-left:45px;margin-bottom:.85rem;white-space:nowrap}.Tweet-brand{position:relative;z-index:1}.Tweet-author{margin-top:2px;line-height:0}.Tweet-authorLink{line-height:1.2}.Tweet-authorAvatar{position:absolute;display:inline-block;top:0;left:0;width:36px;height:36px;overflow:hidden;background-color:transparent;border-radius:4px}.Tweet-authorScreenName{font-size:.875rem}.Tweet-authorScreenName:before{white-space:pre;content:"\A\200e"}.Tweet-authorVerifiedBadge{position:absolute;top:0}.Tweet-text{white-space:pre-wrap;cursor:text}.Tweet.is-deciderHtmlWhitespace .Tweet-text{white-space:normal}.Tweet-text[dir=ltr]{text-align:left;direction:ltr}.Tweet-text[dir=rtl]{text-align:right;direction:rtl}.Tweet-text+.Tweet-alert,.Tweet-text+.Tweet-metadata{margin-top:.2rem}.Tweet-alert,.Tweet-metadata{font-size:.875rem;color:#697882}.Tweet-alert+.Tweet-metadata{margin-top:.65rem}.Tweet-card{margin-top:.65rem;font-size:.875rem}.Tweet-actions{margin-top:.525rem}.Tweet-action{display:inline-block}.Tweet-action+.Tweet-action{margin-left:1rem}.Tweet--compact{position:relative;padding-left:45px;font-size:.875rem}.Tweet--compact .Tweet-header{position:static;padding-left:0;margin-bottom:.4rem}.Tweet--compact .Tweet-author{margin-top:0}.Tweet--compact .Tweet-alert,.Tweet--compact .Tweet-metadata{margin-bottom:0;line-height:inherit}.TweetAction,.TweetAction:visited{color:#697882}.TweetAction-stat{display:inline-block;font-size:.875rem;vertical-align:text-bottom}.TweetAction--reply:active,.TweetAction--reply:focus,.TweetAction--reply:hover{color:#3b94d9;text-decoration:none}.TweetAction--reply:active .TweetAction-icon,.TweetAction--reply:focus .TweetAction-icon,.TweetAction--reply:hover .TweetAction-icon{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOC4xLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjYyIiBoZWlnaHQ9IjcyIiB2aWV3Qm94PSIwIDAgNjIgNzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYyIDcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiMzYjk0ZDkiIGQ9Ik00MSwzMWgtOVYxOWMwLTEuMTQxLTAuNjQ3LTIuMTgzLTEuNjY4LTIuNjg4Yy0xLjAyMi0wLjUwNy0yLjI0My0wLjM4OS0zLjE0OSwwLjMwMmwtMjEsMTZDNS40MzcsMzMuMTgxLDUsMzQuMDYzLDUsMzVzMC40MzcsMS44MTksMS4xODIsMi4zODdsMjEsMTZDMjcuNzE1LDUzLjc5MiwyOC4zNTYsNTQsMjkuMDAxLDU0YzAuNDU0LDAsMC45MDktMC4xMDMsMS4zMzEtMC4zMTJDMzEuMzU0LDUzLjE4MywzMiw1Mi4xNDEsMzIsNTFWMzloOWM1LjUxNCwwLDEwLDQuNDg2LDEwLDEwYzAsMi4yMDksMS43OTEsNCw0LDRzNC0xLjc5MSw0LTRDNTksMzkuMDc1LDUwLjkyNSwzMSw0MSwzMXoiLz4NCjwvc3ZnPg0K)}.TweetAction--retweet:active,.TweetAction--retweet:focus,.TweetAction--retweet:hover{color:#5c913b;text-decoration:none}.TweetAction--retweet:active .TweetAction-icon,.TweetAction--retweet:focus .TweetAction-icon,.TweetAction--retweet:hover .TweetAction-icon{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9Ijc0IiBoZWlnaHQ9IjcyIiB2aWV3Qm94PSIwIDAgNzQgNzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDc0IDcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiM1YzkxM2IiIGQ9Ik03MC42NzYsMzYuNjQ0QzcwLjE2NSwzNS42MzYsNjkuMTMxLDM1LDY4LDM1aC03VjE5YzAtMi4yMDktMS43OTEtNC00LTRIMzRjLTIuMjA5LDAtNCwxLjc5MS00LDRzMS43OTEsNCw0LDRoMThjMC41NTIsMCwwLjk5OCwwLjQ0NiwxLDAuOTk4VjM1aC03Yy0xLjEzLDAtMi4xNjUsMC42MzYtMi42NzYsMS42NDRjLTAuNTExLDEuMDA5LTAuNDEyLDIuMjE5LDAuMjU3LDMuMTMxbDExLDE1QzU1LjE0Nyw1NS41NDUsNTYuMDQ1LDU2LDU3LjAwMSw1NnMxLjg1NC0wLjQ1NSwyLjQxOS0xLjIyNmwxMS0xNUM3MS4wODgsMzguODYyLDcxLjE4NywzNy42NTIsNzAuNjc2LDM2LjY0NHoiLz4NCjxwYXRoIGZpbGw9IiM1YzkxM2IiIGQ9Ik00MC4wMDEsNDhIMjJjLTAuNTM5LDAtMC45Ny0wLjQyNy0wLjk5Mi0wLjk2TDIxLjAwMSwzNmg3YzEuMTMsMCwyLjE2NS0wLjYzNiwyLjY3Ni0xLjY0NGMwLjUxMS0xLjAwOSwwLjQxMi0yLjIxOS0wLjI1Ny0zLjEzMWwtMTEtMTVDMTguODU0LDE1LjQ1NSwxNy45NTYsMTUsMTcsMTVzLTEuODU0LDAuNDU1LTIuNDE5LDEuMjI2bC0xMSwxNWMtMC42NjgsMC45MTItMC43NjgsMi4xMjItMC4yNTYsMy4xMzFDMy44MzYsMzUuMzY0LDQuODcxLDM2LDYuMDAxLDM2aDdsMC4wMTEsMTYuMDAzYzAuMDAyLDIuMjA4LDEuNzkyLDMuOTk3LDQsMy45OTdoMjIuOTg5YzIuMjA5LDAsNC0xLjc5MSw0LTRTNDIuMjEsNDgsNDAuMDAxLDQ4eiIvPg0KPC9zdmc+DQo=)}.TweetAction--favorite:active,.TweetAction--favorite:focus,.TweetAction--favorite:hover{color:#ffac33;text-decoration:none}.TweetAction--favorite:active .TweetAction-icon,.TweetAction--favorite:focus .TweetAction-icon,.TweetAction--favorite:hover .TweetAction-icon{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjU2IiBoZWlnaHQ9IjcyIiB2aWV3Qm94PSIwIDAgNTYgNzIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDU2IDcyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiNmZmFjMzMiIGQ9Ik01Mi4zNjYsMjguOTQzYy0wLjM3NC0xLjE2OS0xLjQ2My0xLjk2My0yLjY5My0xLjk2M0gzNS40ODRsLTQuODA5LTE0LjA3QzMwLjI4NSwxMS43NjcsMjkuMjEsMTEsMjgsMTFzLTIuMjg1LDAuNzY3LTIuNjc2LDEuOTFsLTQuODA5LDE0LjA3SDYuMzI3Yy0xLjIzLDAtMi4zMTksMC43OTQtMi42OTMsMS45NjNjLTAuMzc0LDEuMTY5LDAuMDUzLDIuNDQ2LDEuMDU1LDMuMTU2bDExLjMzMiw4LjAzMkwxMS4xOSw1NC4yN2MtMC4zOTYsMS4xNTgsMC4wMDIsMi40MzksMC45ODYsMy4xNzFjMC45ODMsMC43MywyLjMyNywwLjc0NywzLjMyOCwwLjAzOEwyOCw0OC42MjFsMTIuNDk3LDguODU3QzQwLjk4OCw1Ny44MjYsNDEuNTYxLDU4LDQyLjEzNSw1OGMwLjU5NSwwLDEuMTg5LTAuMTg3LDEuNjktMC41NTljMC45ODMtMC43MzIsMS4zODItMi4wMTMsMC45ODYtMy4xNzFsLTQuODMyLTE0LjEzOWwxMS4zMzItOC4wMzJDNTIuMzEzLDMxLjM4OCw1Mi43NCwzMC4xMTIsNTIuMzY2LDI4Ljk0M3oiLz4NCjwvc3ZnPg0K)}.CroppedImage{position:relative;display:inline-block;overflow:hidden}.CroppedImage-image{position:absolute;top:0;left:0;min-height:100%;min-width:100%}.CroppedImage--fillHeight .CroppedImage-image{height:100%;width:auto}.CroppedImage--fillWidth .CroppedImage-image{width:100%;height:auto}.FilledIframe{max-width:100%;max-height:100%}.GifPlayer{cursor:pointer}.GifPlayer-video{max-width:100%;max-height:100%}.GifPlayer.is-playing .GifPlayer-playButton{display:none}.env-ios .GifPlayer-playButton{display:none}.ImageGrid{position:relative}.ImageGrid-image{position:absolute;width:50%;padding-bottom:25%;border:0 solid #fff}.ImageGrid--2 .ImageGrid-image{padding-bottom:50%}.ImageGrid--2 .ImageGrid-image-0{top:0;left:0}.ImageGrid--2 .ImageGrid-image-1{top:0;right:0;border-left-width:1px}.ImageGrid--3 .ImageGrid-image-0{float:left;padding-bottom:50%;top:0;left:0}.ImageGrid--3 .ImageGrid-image-1{top:0;right:0;border-left-width:1px}.ImageGrid--3 .ImageGrid-image-2{bottom:0;right:0;border-width:1px 0 0 1px}.ImageGrid--4 .ImageGrid-image-0{top:0;left:0}.ImageGrid--4 .ImageGrid-image-1{top:0;right:0;border-left-width:1px}.ImageGrid--4 .ImageGrid-image-2{bottom:0;left:0;border-top-width:1px}.ImageGrid--4 .ImageGrid-image-3{bottom:0;right:0;border-width:1px 0 0 1px}.ImageGrid--roundedTop.ImageGrid--2 .ImageGrid-image-0{border-top-left-radius:4px}.ImageGrid--roundedTop.ImageGrid--2 .ImageGrid-image-1{border-top-right-radius:4px}.ImageGrid--roundedTop.ImageGrid--3 .ImageGrid-image-0{border-top-left-radius:4px}.ImageGrid--roundedTop.ImageGrid--3 .ImageGrid-image-1{border-top-right-radius:4px}.ImageGrid--roundedTop.ImageGrid--4 .ImageGrid-image-0{border-top-left-radius:4px}.ImageGrid--roundedTop.ImageGrid--4 .ImageGrid-image-1{border-top-right-radius:4px}.ImageGrid--roundedBottom.ImageGrid--2 .ImageGrid-image-0{border-bottom-left-radius:4px}.ImageGrid--roundedBottom.ImageGrid--2 .ImageGrid-image-1{border-bottom-right-radius:4px}.ImageGrid--roundedBottom.ImageGrid--3 .ImageGrid-image-0{border-bottom-left-radius:4px}.ImageGrid--roundedBottom.ImageGrid--3 .ImageGrid-image-2{border-bottom-right-radius:4px}.ImageGrid--roundedBottom.ImageGrid--4 .ImageGrid-image-2{border-bottom-left-radius:4px}.ImageGrid--roundedBottom.ImageGrid--4 .ImageGrid-image-3{border-bottom-right-radius:4px}.PlayButton{font-size:4rem;background-color:transparent}.PlayButton--centered{margin-left:-2rem;margin-top:-2rem}.NaturalImage{position:relative}.NaturalImage-image{max-width:100%;max-height:100%;border:0;line-height:0;height:auto}.NaturalImage-ctaOverlay{position:absolute;top:50%;left:50%}.NaturalImage--rounded .NaturalImage-image,.NaturalImage--roundedTop .NaturalImage-image{border-top-left-radius:4px;border-top-right-radius:4px}.NaturalImage--rounded .NaturalImage-image,.NaturalImage--roundedBottom .NaturalImage-image{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.NaturalImage--fill .NaturalImage-image{width:100%}.SummaryCard[dir=ltr]{text-align:left;direction:ltr}.SummaryCard[dir=rtl]{text-align:right;direction:rtl}.SummaryCard-headline{font-size:inherit;font-weight:700;margin:.875rem 0 0}.SummaryCard-smallImage{float:right;max-width:120px;margin:0 0 0 1rem;overflow:hidden}.SummaryCard-siteUser{margin:0 0 .875rem;vertical-align:top}.SummaryCard-byline{color:#697882;font-size:.75rem}.SummaryCard-lead{margin:.625rem 0}.SummaryCard--withSmallImage .SummaryCard-body{min-height:120px}.MediaCard-media{position:relative;width:100%;overflow:hidden}.MediaCard-widthConstraint{max-width:100%}.MediaCard-mediaContainer{position:relative;padding-bottom:0;background-color:#f5f8fa}.MediaCard-borderOverlay{position:absolute;top:0;left:0;z-index:10;width:100%;height:100%;border:1px solid rgba(225,232,237,.75);border-radius:4px 4px 0 0;-moz-box-sizing:border-box;box-sizing:border-box}.MediaCard-nsfwInfo{display:none;position:absolute;top:0;left:0;z-index:30;width:100%;padding:1rem 1rem 0;-moz-box-sizing:border-box;box-sizing:border-box;text-align:center}.MediaCard-nsfwHeading{margin:.875rem;font-size:inherit;font-weight:700}.MediaCard-dismissNsfw{margin:.875rem}.MediaCard-mediaAsset{display:block;position:absolute;top:0;left:0;width:100%;height:100%;line-height:0;-webkit-transition:opacity .5s;-moz-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s;background-color:#fff}.MediaCard-actionControl{position:absolute;top:50%;left:50%}.MediaCard-attributionOverlay{position:absolute;bottom:.5rem;right:.75rem;z-index:20;padding:.25rem;padding-right:.5rem;border-radius:4px;background-color:rgba(0,0,0,.3);color:#ddd;text-shadow:0 0 2px rgba(0,0,0,.7);font-size:.75rem;line-height:1.125rem}.MediaCard-siteUser{margin:0 0 .875rem}.MediaCard-bylineUser{color:#697882;margin:.875rem 0}.MediaCard--mediaForward .MediaCard-media{background-color:#f5f8fa}.MediaCard--mediaForward .MediaCard-widthConstraint{margin:0 auto}.MediaCard--mediaForward .MediaCard-nsfwInfo{top:25%}.MediaCard.is-nsfw .MediaCard-nsfwInfo{display:block}.MediaCard.is-nsfw .MediaCard-mediaAsset{opacity:0}.PrerenderedCard{display:none}.PrerenderedCard.is-ready{display:block}.tcu-textMute,a.tcu-graylink{color:#697882}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment