Gossip & News

Emily Blunt and John Krasinski: A Timeline of Their Loving


master mentalism tricks

[]

In it for the long haul! Hollywood is full of enviable high-profile romances, but none can compare to the relationship between Emily Blunt and John Krasinski.

Blunt and Krasinski began dating in 2008 after meeting through a mutual pal. During a 2011 appearance on The Ellen DeGeneres Show, the Office alum revealed that it was love at first sight for him.

“It was one of those things where I wasn’t really looking for a relationship and I was thinking I’m going to take my time in L.A.,” he explained at the time. “Then I met her and I was so nervous. I was like, ‘Oh God, I think I’m going to fall in love with her.’ As I shook her hand I went, ‘I like you.’ It’s one of those things where as soon as you meet someone you kind of know.”

The Devil Wears Prada actress, for her part, has gushed about how her now-husband has positively impacted her. “Meeting John really changed my life,” she told InStyle in 2013. “When I feel the support that I have from him, I feel invincible. There’s someone behind you on your good days and someone in front of you on your bad days.”

The longtime couple were engaged by August 2009 and tied the knot in Italy the following summer. They welcomed daughter Hazel in 2014 and daughter Violet in 2016.

{ let bidders = [‘a9’, ‘ix’, ‘iris’]; // create a requestManager to keep track of bidder state to determine when to send ad server // request and what amazonSlots to request from the ad server var requestManager = { adserverRequestSent: false, }; //loop through bidder array and add the bidders to the request manager: bidders.forEach( function( bidder ) { requestManager[bidder] = false; } ); // return true if all bidders have returned function allBiddersBack() { var allBiddersBack = bidders // get the booleans from the object .map( function( bidder ) { return requestManager[bidder]; } ) // get rid of false values – indicates that the bidder has responded .filter( Boolean ) // if length is equal to bidders, all bidders are back .length === bidders.length; return allBiddersBack; } // handler for header bidder responses function headerBidderBack( bidder ) { // return early if request to adserver is already sent if ( requestManager.adserverRequestSent === true ) { return; } // flip bidder back flag if ( bidder === ‘a9’ ) { requestManager.a9 = true; console.log(‘second promise a9 ready’); } else if ( bidder === ‘ix’ ) { requestManager.ix = true; console.log(‘second promise ix ready’); } else if ( bidder === ‘iris’ ) { requestManager.iris = true; console.log(‘second promise iris ready’); } // if all bidders are back, send the request to the ad server if ( allBiddersBack() ) { resolve( url ); } } if ( typeof apstag == ‘object’ && apstag ) { apstag.fetchBids({ slots: [{ slotID: window.prerollTag[vHash], mediaType: ‘video’ }] }, function( bids ) { console.log( “AMI jwp amazon bid callback”, new Date().getTime(), bids ); window.jwpBids[vHash].amazon = true; if ( bids.length > 0 ) { //If we have received any bids back try { console.log(“AMI jwp amazon bid request ad”, bids[0].encodedQsParams); url = url + ‘&scp=’ + bids[0].encodedQsParams; } catch ( e ) { console.log(e); } } else { console.log(“AMI jwp amazon no bids”); } headerBidderBack(‘a9’); }); } else { headerBidderBack(‘a9’); } headertag.cmd.push( function() { headertag.retrieveVideoDemand( [{‘htSlotName’: ‘preroll’}], function( demand ) { console.log( “AMI jwp IX callback”, demand ); if ( ‘undefined’ !== typeof demand.preroll && demand.preroll.length ){ window.jwpBids[vHash].ixBids = demand.preroll[0].targeting.price; console.log( ‘AMI jwp IX Bids’, new Date().getTime(), demand.preroll[0].targeting ); var vastURL = new URL( url ); var vastParams = new URLSearchParams( vastURL.search ); if ( vastParams.has( ‘cust_params’ ) ) { var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) ); } else { var custParams = new URLSearchParams(); } var keys = Object.keys( demand.preroll[0].targeting.price ); for ( var key of keys ) { custParams.set( key, demand.preroll[0].targeting.price[key][0]); } vastParams.set( ‘cust_params’, custParams.toString() ); vastURL.search = vastParams.toString(); url = vastURL.toString(); } headerBidderBack(‘ix’); } ); } ); // Get main item context data window.irisContext.getContext(jwplayer(el).getPlaylistItem().mediaid).then(function(data) { // Encode the context data console.log( ‘AMI jwp IrisTV Bids’, new Date().getTime(), data.context ); // Replace the server url with the context data (this is for simple ad requests), // If you have the serverUrl dynamically configured, then you will need to append the context data // under cust_params, so this is just for testing purpose if ( data.context && Object.keys( data.context ).length ) { var vastURL = new URL( url ); var vastParams = new URLSearchParams( vastURL.search ); if ( vastParams.has( ‘cust_params’ ) ) { var custParams = new URLSearchParams( vastParams.get( ‘cust_params’ ) ); } else { var custParams = new URLSearchParams(); } custParams.set( ‘iris_context’, data.context.join(‘,’)); vastParams.set( ‘cust_params’, decodeURIComponent( custParams.toString() ) ); vastURL.search = vastParams.toString(); url = vastURL.toString(); } headerBidderBack(‘iris’); }); setTimeout(function(){ resolve( url ); }, 10000); }); } var player_jwplayer_Ej3aOuQN_zhNYySv2_div = jwplayer(el).setup(videoParams).on(“ready”, function(){ var el = decodeURIComponent( “jwplayer_Ej3aOuQN_zhNYySv2_div” ); var playerInstance = jwplayer(el); ns_.StreamingAnalytics.JWPlayer( playerInstance, { publisherId: “6036076”, labelmapping: “ns_st_pu=”AMI”, c3=”Us Weekly”, ns_st_ge=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_ia=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_ce=”” + decodeURIComponent( “1” ) + “”, ns_st_ddt=”” + decodeURIComponent( “%2Anull” ) + “”, ns_st_tdt=”” + decodeURIComponent( “%2Anull” ) + “””, }); }).on(‘adsManager’, (e) => { var vHash = ‘ami’ + decodeURIComponent( ‘Ej3aOuQN’ ); const { adsManager, videoElement } = e; const iasConfig = { anId: ‘928572’, campId: `${jwplayer().getWidth()}x${jwplayer().getHeight()}`, // This is dynamic based on player dimensions, but can be hard coded chanId: window.prerollTag[vHash], placementId: ‘Open Auction’, pubOrder: ‘Video’, pubId: ‘Direct’ }; if (googleImaVansAdapter) { googleImaVansAdapter.init(window.google, adsManager, videoElement, iasConfig); } }).on( ‘time’, function( e ) { var id = this.id; var pct = Math.round( e.position ); if ( ! window.amiPlayersData ) { window.amiPlayersData = {}; } if ( ! window.amiPlayersData[id] ) { window.amiPlayersData[id] = { m3: false, m10: false }; } if ( window.amiPlayersData[id][‘m3’] === false && pct >= 3 ) { window.amiPlayersData[id][‘m3’] = true; console.log( ‘3sec played: ‘, id ); window.dataLayer = window.dataLayer || []; dataLayer.push( {event: ‘JWPlayEvent’, jwTime: ‘3s played’} ); } if ( window.amiPlayersData[id][‘m10’] === false && pct >= 10 ) { window.amiPlayersData[id][‘m10’] = true; console.log( ’10sec played: ‘, id ); window.dataLayer = window.dataLayer || []; dataLayer.push( {event: ‘JWPlayEvent’, jwTime: ’10s played’} ); } }).on( ‘complete’, function( e ) { if ( window.amiPlayersData && window.amiPlayersData[ this.id ] ) { window.amiPlayersData[ this.id ][‘m3’] = false; window.amiPlayersData[ this.id ][‘m10’] = false; console.log( ‘clear played: ‘, this.id ); } }).once(“play”, function(){ var el = decodeURIComponent( “jwplayer_Ej3aOuQN_zhNYySv2_div” ); var playerInstance = jwplayer(el); loadIrisPlugin(playerInstance, playerInstance.getConfig().plugins[“https://ovp.iris.tv/plugins/jwplayer/v2/iris-jwplayer8.adaptive.min.js”]) }).on(‘play’, (e) => { var el = decodeURIComponent( “jwplayer_Ej3aOuQN_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Ej3aOuQN” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); // skip if the video was paused and trying to resume if (jwplayer(el).getState() !== ‘idle’ && jwplayer(el).getState() !== ‘complete’) { return; } window.permutive.track(“VideoPlay”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Ej3aOuQN” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language:”English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video play”); }).on(‘complete’, (e) => { var el = decodeURIComponent( “jwplayer_Ej3aOuQN_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Ej3aOuQN” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); // skip if the video was paused and trying to resume if (jwplayer(el).getState() !== ‘idle’ && jwplayer(el).getState() !== ‘complete’) { return; } window.permutive.track(“VideoComplete”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Ej3aOuQN” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video event:”, e); window.lock_25 = false; window.lock_50 = false; window.lock_75 = false; window.lock_100 = false; }).on(‘time’, (e) => { var el = decodeURIComponent( “jwplayer_Ej3aOuQN_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Ej3aOuQN” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); var progress = (e.currentTime/e.duration).toFixed(2); if ( (0.25 === progress && false === window.lock_25) || (0.5 === progress && false === window.lock_50) || (0.75 === progress && false === window.lock_75) || (100 === progress && false === window.lock_100) ) { window.permutive.track(“VideoProgress”, { play_id: el, //this will stay constant for all of the events emitted during the same video play progress: Number(progress), video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Ej3aOuQN” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); if ( 0.25 === progress ) { window.lock_25 = true; } if ( 0.5 === progress ) { window.lock_50 = true; } if ( 0.75 === progress ) { window.lock_75 = true; } if ( 1 === progress ) { window.lock_100 = true; } console.log(“Permutive video play progress ” + progress); } }).on(‘mute’, (e) => { var el = decodeURIComponent( “jwplayer_Ej3aOuQN_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Ej3aOuQN” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoEvent”, { play_id: el, //this will stay constant for all of the events emitted during the same video play event: (e.mute) ? “sound off” : “sound on”, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Ej3aOuQN” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log(“Permutive video event:”, e); }).on(‘fullscreen’, (e) => { var el = decodeURIComponent( “jwplayer_Ej3aOuQN_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Ej3aOuQN” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoEvent”, { play_id: el, //this will stay constant for all of the events emitted during the same video play event: (e.fullscreen) ? “fullscreen on” : “fullscreen off”, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Ej3aOuQN” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log(“Permutive video event:”, e); }).on(‘ready’, (e) => { var el = decodeURIComponent( “jwplayer_Ej3aOuQN_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Ej3aOuQN” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); console.log(jwInfo); window.lock_25 = false; window.lock_50 = false; window.lock_75 = false; window.lock_100 = false; window.permutive.track(“VideoLoad”, { play_id: el, //this will stay constant for all of the events emitted during the same video play video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Ej3aOuQN” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video load event”); }).on(‘adPlay’, (e) => { var el = decodeURIComponent( “jwplayer_Ej3aOuQN_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Ej3aOuQN” ); window.adInfo = e; var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.adlock_25 = false; window.adlock_50 = false; window.adlock_75 = false; window.adlock_100 = false; window.permutive.track(“VideoAdPlay”, { play_id: el, //this will stay constant for all of the events emitted during the same video play ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Ej3aOuQN” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video ad play”); }).on(‘adClick’, (e) => { var el = decodeURIComponent( “jwplayer_Ej3aOuQN_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Ej3aOuQN” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); window.permutive.track(“VideoAdClick”, { play_id: el, //this will stay constant for all of the events emitted during the same video play ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Ej3aOuQN” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); console.log(“Permutive video ad click”); }).on(‘adTime’, (e) => { var el = decodeURIComponent( “jwplayer_Ej3aOuQN_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “Ej3aOuQN” ); var jwInfo = jwplayer(el).getPlaylistItem(jwplayer(el).getPlaylistIndex()); var progress = (e.position/e.duration).toFixed(2); if ( (0.25 >= progress && false === window.adlock_25) || (0.5 >= progress && false === window.adlock_50) || (0.75 >= progress && false === window.adlock_75) || (0.95 >= progress && false === window.adlock_100) ) { window.permutive.track(“VideoAdProgress”, { play_id: el, //this will stay constant for all of the events emitted during the same video play progress: Number(progress), ad: { duration: Math.round(window.adInfo.duration), creative_name: window.adInfo.adtitle, ad_id: window.adInfo.adId, title: window.adInfo.adtitle, video_type: “instream” //outstream }, video: { duration: Math.round(jwInfo.duration), // in seconds name: jwInfo.title, video_id: decodeURIComponent( “Ej3aOuQN” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() }, enriched_data:{ tvchannel: decodeURIComponent( “Us%20Weekly” ), //tv channel name language: “English”, //language of the content type: “video”, keywords: jwInfo.tags.split(“,”), //keywords for the page } }); if ( 0.25 >= progress ) { window.adlock_25 = true; } if ( 0.5 >= progress ) { window.adlock_50 = true; } if ( 0.75 >= progress ) { window.adlock_75 = true; } if ( 0.95 >= progress ) { window.adlock_100 = true; } console.log(“Permutive video ad progress ” + progress); } }).setPlaylistItemCallback(function(item, index) { return waitForAmazon // Wait until Amazon is loaded. .then(() => performAsyncBidding( player_jwplayer_Ej3aOuQN_zhNYySv2_div, item, index ), () => { console.log(“AMI JWP bidding FAILER”); }) // External bidding. .then(tag => { // Update the playlist item. console.log(“AMI jwp new headerbid”, tag); return Object.assign({}, item, { adschedule: [{ tag, offset: “pre” }] }); }).catch(function(e){ console.log(“AMI jwp bidding failed”, e); return item; }); // If bidding fails, use unmodified playlist item. });; clearInterval(checkJWReady); } }, 500); })(); ]]>

Speaking to Marie Claire in February 2020, Blunt opened up about how she’s raising the pair’s children to be empathetic.

“I think I was a really observant kid. I was a really empathetic kid and still feel that’s something I try and lead with,” she previously explained. “And I encourage empathy in my kids and embracing differences and not being scared of them, or teasing people for them, you know? Making mistakes, or feeling like you have something that causes you to make mistakes, is a good thing. It’s how you learn, and it’s how you grow.”

Krasinski, meanwhile, revealed how the couple are able to balance family life while leading busy careers. “I was a huge fan of [Emily’s] before I even met her, so I continue to be a huge fan of hers in everything she does. So we’re just extremely supportive, we get what the job is and that you gotta travel and do some stuff,” he told E! News in 2019. “But it’s always about coming back home and being together, it’s the most important thing.”

Scroll down to see Blunt and Krasinski’s romance over the years.

Read The Full Article Here


trick photography
Khloe Kardashian Celebrates Ex Tristan Thompsons Brother Amaris 20th Birthday: Our Sweet Angel
Khloe Kardashian Celebrates Ex Tristan Thompsons Brother Amaris 20th Birthday: Our Sweet Angel
15 Celebrity Facts So Unhinged, I Kept Saying Theres No Way That Happened
15 Celebrity Facts So Unhinged, I Kept Saying Theres No Way That Happened
CNNs Kaitlan Collins Seemingly Responds to Donald Trump Comparing Her to Trans Actress at WHCD
CNNs Kaitlan Collins Seemingly Responds to Donald Trump Comparing Her to Trans Actress at WHCD
Jennifer Lopez Shares Inspiring Post to Celebrate Her 57th Birthday: It Just Keeps Getting Better
Jennifer Lopez Shares Inspiring Post to Celebrate Her 57th Birthday: It Just Keeps Getting Better
The Odyssey Leak Watched 50,000 Times Before It Was Removed
The Odyssey Leak Watched 50,000 Times Before It Was Removed
The Process of Art at Annecy Animation Festival
The Process of Art at Annecy Animation Festival
Latest Batman Series & More Prime Video Releases This Week
Latest Batman Series & More Prime Video Releases This Week
Marvel Comic-Con 2026 Announcements
Marvel Comic-Con 2026 Announcements
Bones Gory Cold Opens Were Created To Help Stars Emily Deschanel And David Boreanaz – TVLine
Bones Gory Cold Opens Were Created To Help Stars Emily Deschanel And David Boreanaz – TVLine
The Walking Dead: Dead City Premiere Recap: Do Maggie And Negan Make Better Friends Than Enemies? (Grade It!) – TVLine
The Walking Dead: Dead City Premiere Recap: Do Maggie And Negan Make Better Friends Than Enemies? (Grade It!) – TVLine
Susan Ottaviano Guests On “If These Walls Could Talk” With Hosts Wendy Stuart and Tym Moss Wednesday, July 29th, 2026 
Susan Ottaviano Guests On “If These Walls Could Talk” With Hosts Wendy Stuart and Tym Moss Wednesday, July 29th, 2026 
Why Babylon 5 Star Michael OHare Quit The Hit Sci-Fi Series – TVLine
Why Babylon 5 Star Michael OHare Quit The Hit Sci-Fi Series – TVLine
Diiv Announce New A. G. Cook-Produced Album Via Hotline
Diiv Announce New A. G. Cook-Produced Album Via Hotline
System of a Down and Faith No More Announce First Australian and New Zealand Tour in Over a Decade
System of a Down and Faith No More Announce First Australian and New Zealand Tour in Over a Decade
Sick of It All Singer Lou Koller Dies at 59, Rockers + Fans Pay Tribute
Sick of It All Singer Lou Koller Dies at 59, Rockers + Fans Pay Tribute
Ryan Coogler to Direct Black Panther 3, David Jonsson Cast as TChallas Son
Ryan Coogler to Direct Black Panther 3, David Jonsson Cast as TChallas Son
Biographies and Memoirs Readers Are Talking About – NewInBooks
Biographies and Memoirs Readers Are Talking About – NewInBooks
Lose Yourself in These Imaginative Fantasy and Sci-Fi Reads – NewInBooks
Lose Yourself in These Imaginative Fantasy and Sci-Fi Reads – NewInBooks
Fresh Literary Fiction Worth Adding to Your TBR – NewInBooks
Fresh Literary Fiction Worth Adding to Your TBR – NewInBooks
Interview with Jordan Standridge, Author of The Guardian – NewInBooks
Interview with Jordan Standridge, Author of The Guardian – NewInBooks
Keke Palmer Wowed in a Metallic Corset at Essence Festival – Get Her Look Starting at
Keke Palmer Wowed in a Metallic Corset at Essence Festival – Get Her Look Starting at $14
Shop J Lo's Wedding Guest Look For Taylor and Travis's Wedding – Starting at
Shop J Lo's Wedding Guest Look For Taylor and Travis's Wedding – Starting at $70
The Hottest Item in Fashion This Summer? A Soccer Jersey
The Hottest Item in Fashion This Summer? A Soccer Jersey
No Time to Waste: These 31 Top Nordstrom New Arrivals Will Sell Out
No Time to Waste: These 31 Top Nordstrom New Arrivals Will Sell Out
Flanagans Carrie Goes Viral
Flanagans Carrie Goes Viral
YAGA Gets Creepy First Look at San Diego Comic-Con Ahead of October Premiere
YAGA Gets Creepy First Look at San Diego Comic-Con Ahead of October Premiere
Australian Vengeance is Sweet in the International Premiere of Penny Lane is Dead at Fantasia Festival [Movie Review]
Australian Vengeance is Sweet in the International Premiere of Penny Lane is Dead at Fantasia Festival [Movie Review]
Found Footage Sundown Trailer, with iHorror Exclusive Set Photos!
Found Footage Sundown Trailer, with iHorror Exclusive Set Photos!