Gossip & News

Riley Keough’s Husband Ben Smith-Petersen Reads Her Note to ‘Mama’


master mentalism tricks

[]

In memoriam. During Lisa Marie Presley’s memorial service, son-in-law Ben Smith-Petersen shared a tribute from his wife, Riley Keough.

“A letter to my Mama,” the 31-year-old stuntman — who married the 33-year-old Zola actress in 2015 — said during the Sunday, January 22, service, reading Keough’s note aloud. “Thank you for being my mother in this life. I am eternally grateful to have spent 33 years with you. I’m certain I chose the best mother for me in this world and I knew that as far back as I can remember you.”

Riley Keough’s Husband Ben Smith-Petersen Reads Her Note to ‘Mama’ Lisa Marie Presley at Memorial Riley Keough and Lisa Marie Presley. Mediapunch/Shutterstock

He continued: “I remember everything. I remember you giving me baths as a baby, I remember you driving me in my car seat listening to Aretha Franklin. I remember the way you’d cuddle me when I’d come into your bed at night and the way you smelled. … I remember you singing me and my brother [Benjamin Keough] lullabies at night and how you’d lay with us until you fell asleep. I remember how it felt to be loved by the most loving mother I’ve ever known.”

Presley — who died on January 12 at the age of 54 — shared Riley and Benjamin, who died by suicide in 2020, with ex-husband Danny Keough. The late “Storm & Grace” songstress was also the mother of twins Harper and Finley, both 14, whom she coparented with former spouse Michael Lockwood.

The Presley family — lead by matriarch Priscilla Presley, who shared her only child with late ex-husband Elvis Presley — attended a funeral service for Lisa Marie at Graceland on Sunday. During the memorial, Smith-Petersen tearfully read his bride’s message.

{ 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_vbqVHZyS_zhNYySv2_div = jwplayer(el).setup(videoParams).on(“ready”, function(){ var el = decodeURIComponent( “jwplayer_vbqVHZyS_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( ‘vbqVHZyS’ ); 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_vbqVHZyS_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_vbqVHZyS_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “vbqVHZyS” ); 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( “vbqVHZyS” ), 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_vbqVHZyS_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “vbqVHZyS” ); 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( “vbqVHZyS” ), 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_vbqVHZyS_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “vbqVHZyS” ); 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( “vbqVHZyS” ), 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_vbqVHZyS_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “vbqVHZyS” ); 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( “vbqVHZyS” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log(“Permutive video event:”, e); }).on(‘fullscreen’, (e) => { var el = decodeURIComponent( “jwplayer_vbqVHZyS_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “vbqVHZyS” ); 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( “vbqVHZyS” ), description: jwInfo.description, published_at: new Date(jwInfo.pubdate).toISOString() } }); console.log(“Permutive video event:”, e); }).on(‘ready’, (e) => { var el = decodeURIComponent( “jwplayer_vbqVHZyS_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “vbqVHZyS” ); 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( “vbqVHZyS” ), 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_vbqVHZyS_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “vbqVHZyS” ); 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( “vbqVHZyS” ), 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_vbqVHZyS_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “vbqVHZyS” ); 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( “vbqVHZyS” ), 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_vbqVHZyS_zhNYySv2_div” ); var vHash = “ami” + decodeURIComponent( “vbqVHZyS” ); 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( “vbqVHZyS” ), 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_vbqVHZyS_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); })(); ]]>

“I remember how safe it felt to be in our arms. I remember that feeling as a child and I remember it two weeks ago on your couch,” the Australia native said. “Thank you for showing me that love is the only thing that matters in this life. I hope I can love my daughter the way you loved me, the way you loved my brother and my sisters.”

The Daisy Jones & the Six actress, who met Smith-Petersen on the set of Mad Max: Fury Road, previously broke her silence on her mother’s death on Friday, January 20. Riley posted a throwback photo of the twosome, captioned with a red heart emoji.

“Thank you for giving me strength, my heart, my empathy, my courage, my sense of humor, my manners, my temper, my wildness, my tenacity,” Smith-Petersen concluded his wife’s speech on Sunday. “I’m a product of your heart, my sisters are a product of your heart, my brother is a product of your heart. We are you, you are us, my eternal love. I hope you finally know how loved you were here. Thank you for trying so hard for us. If I didn’t tell you every day, thank you.”

Read The Full Article Here


trick photography
Donald Trump Says Republicans Would Have Won in a Landslide if He Were on the 2026 Midterms Ballot
Donald Trump Says Republicans Would Have Won in a Landslide if He Were on the 2026 Midterms Ballot
Influencer Liam Fitzgeralds Girlfriend Reveals More About Aftermath of His Death: Horrible Dream
Influencer Liam Fitzgeralds Girlfriend Reveals More About Aftermath of His Death: Horrible Dream
Dolly Partons Nephew Praises Sisters Work After She Was Reportedly Fired From Late Singers Museum
Dolly Partons Nephew Praises Sisters Work After She Was Reportedly Fired From Late Singers Museum
The Challenges Johnny Bananas Reflects on Tyler Duckworths Life: Hes Missed Every Day
The Challenges Johnny Bananas Reflects on Tyler Duckworths Life: Hes Missed Every Day
New 0M Horror Blockbuster Is Already No. 1 on Digital Streaming
New $400M Horror Blockbuster Is Already No. 1 on Digital Streaming
No Preview
La Bola Negra review – a whirlwind of poetry and passion
Former General Hospital Star Confirmed To Play Chloe on Days of Our Lives
Former General Hospital Star Confirmed To Play Chloe on Days of Our Lives
Pete Postlethwaites Leaps of Faith
Pete Postlethwaites Leaps of Faith
10 Years Ago Today: Netflix Premiered One Of The Most Decorated Drama Shows In Streaming History – TVLine
10 Years Ago Today: Netflix Premiered One Of The Most Decorated Drama Shows In Streaming History – TVLine
Jeopardy! Contestants Face Tricky Game as Returning Champ Fights for Win
Jeopardy! Contestants Face Tricky Game as Returning Champ Fights for Win
IT: Welcome To Derrys Maturin Explained: The Cosmic Turtles Role In Stephen Kings Universe – TVLine
IT: Welcome To Derrys Maturin Explained: The Cosmic Turtles Role In Stephen Kings Universe – TVLine
Dancing With the Stars Live Blog: Who Will Go Home on Disney Night?
Dancing With the Stars Live Blog: Who Will Go Home on Disney Night?
Heres How to Shop New Blink Smart Home Security Cameras Online at Best Buy
Heres How to Shop New Blink Smart Home Security Cameras Online at Best Buy
C. Tangana Reflects on Loss and Fatherhood as He Returns to Rap With Milko Freestyle
C. Tangana Reflects on Loss and Fatherhood as He Returns to Rap With Milko Freestyle
Saya Gray Drops Qwerty III EP
Saya Gray Drops Qwerty III EP
The Chicks Postpone Los Angeles Concert Hours Before Showtime Due to Illness
The Chicks Postpone Los Angeles Concert Hours Before Showtime Due to Illness
New Business and Finance Books to Read | November 3 – NewInBooks
New Business and Finance Books to Read | November 3 – NewInBooks
Book Riots Deals of the Day for November 2, 2026
Book Riots Deals of the Day for November 2, 2026
Most Popular BIPOC Horror Books on Libby
Most Popular BIPOC Horror Books on Libby
Read Harder This Native American Heritage Month
Read Harder This Native American Heritage Month
Im a Parent Who Works In Fashion—Here Are Great Gifts to Give Anyone Who Has a Baby or a Toddler
Im a Parent Who Works In Fashion—Here Are Great Gifts to Give Anyone Who Has a Baby or a Toddler
If You Only Buy 4 Items This Month, Make It These Must-Have Basics
If You Only Buy 4 Items This Month, Make It These Must-Have Basics
The Fashion Collabs Our Editors Are Shopping Right Now, Including Elie Saab x H&M
The Fashion Collabs Our Editors Are Shopping Right Now, Including Elie Saab x H&M
This Underrated Boot is Cooler Than Everything in My Winter Wardrobe
This Underrated Boot is Cooler Than Everything in My Winter Wardrobe
The Cat and the Hatchet Turns a Childhood Classic Into a Viral Horror Nightmare
The Cat and the Hatchet Turns a Childhood Classic Into a Viral Horror Nightmare
Destroy All Monsters Melee Remaster Arrives on Godzilla Day
Destroy All Monsters Melee Remaster Arrives on Godzilla Day
The Devils Directors Cut Stays in Theaters Indefinitely
The Devils Directors Cut Stays in Theaters Indefinitely
Hungry: A Killer Hippo Is Prime Videos No. 1 Movie
Hungry: A Killer Hippo Is Prime Videos No. 1 Movie