{"id":2259335,"date":"2026-01-31T05:03:24","date_gmt":"2026-01-31T05:03:24","guid":{"rendered":"https:\/\/celebrity.land\/en\/?p=2259335"},"modified":"2026-01-31T05:03:24","modified_gmt":"2026-01-31T05:03:24","slug":"infielder-vinnie-pasquantino-agrees-to-2-year-contract-with-the-royals","status":"publish","type":"post","link":"https:\/\/celebrity.land\/en\/infielder-vinnie-pasquantino-agrees-to-2-year-contract-with-the-royals\/","title":{"rendered":"Infielder Vinnie Pasquantino agrees to 2-year contract with the Royals"},"content":{"rendered":"<p><\/p>\n<div>\n<p class=\"font-size-scaler-control\" data-font=\"16\">KANSAS CITY, Mo. (AP) \u2014 Infielder Vinnie Pasquantino agreed to a two-year contract Friday with the Royals, pending a successful physical, that will keep him in Kansas City through the 2027 season.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Financial terms of the deal were not released.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Pasquantino would have been in his second year of salary arbitration this upcoming season. He remains under club control through 2028.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Pasquantino comes off a season with career highs in several categories, including home runs (32) and RBIs (113) after being sidelined by injuries much of 2023 and 2024. He became the eighth Royals player to produce at least 30 homers and doubles in a season.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">\u201cVinnie is a premier run producer, a huge part of our team and someone our fans have really connected with,\u201d Royals general manager J.J. Picollo said in a statement. \u201cWe\u2019re proud of the player he\u2019s become, and that he\u2019s earned this contract. We are happy as an organization and for Vinnie personally to have stability moving forward.\u201d<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">AP MLB: https:\/\/apnews.com\/hub\/mlb<\/p>\n<p>      <a target=\"_blank\" href=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/4dd1e127a6bd87629b3ef0e3c81594eb_Royals_Pasquantino_Baseball_99419.jpg.webp\" class=\"image-lightbox\" data-fancybox=\"gallery-mainpost\" data-caption=\"FILE - Kansas City Royals Vinnie Pasquantino (9) celebrates in the dugout after scoring a run against the Los Angeles Angels in the ninth inning of a baseball game Thursday, Sept. 25, 2025, in Anaheim, Calif. (AP Photo\/Wally Skalij, File)\"><br \/>\n        <\/p>\n<p class=\"caption font-size-scaler-control\" data-font=\"14\">FILE &#8211; Kansas City Royals Vinnie Pasquantino (9) celebrates in the dugout after scoring a run against the Los Angeles Angels in the ninth inning of a baseball game Thursday, Sept. 25, 2025, in Anaheim, Calif. (AP Photo\/Wally Skalij, File)<\/p>\n<p>      <\/a><\/p><\/div>\n<div>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Protesters across the U.S. are calling for \u201cno work, no school, no shopping\u201d as part of a nationwide strike on Friday to oppose the Trump administration\u2019s immigration crackdown.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">The demonstrations are taking place amid widespread outrage over the killing Alex Pretti, an intensive care nurse who was shot multiple times after he used his cellphone to record Border Patrol officers conducting an immigration enforcement operation in Minneapolis. The death heightened scrutiny over the administration\u2019s tactics after the Jan. 7 death of Renee Good, who was fatally shot behind the wheel of her vehicle by a U.S. Immigration and Customs Enforcement officer.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">\u201cThe people of the Twin Cities have shown the way for the whole country \u2014 to stop ICE\u2019s reign of terror, we need to SHUT IT DOWN,\u201d said one of the many websites and social media pages promoting actions in communities around the United States.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Some schools in Arizona, Colorado and other states preemptively canceled classes in anticipation of mass absences. Many other demonstrations were planned for students and others to gather at city centers, statehouses and churches across the country.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Just outside Minneapolis, hundreds gathered in the frigid cold early Friday at the Bishop Henry Whipple Federal Building, the site of regular protests in recent weeks.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">After speeches from clergy members, demonstrators marched toward the facility\u2019s restricted area, jeering at a line of DHS agents to \u201cquit your jobs\u201d and \u201cget out of Minnesota.\u201d Much of the group later dispersed after they were threatened with arrest by local law enforcement for blocking the road.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Michelle Pasko, a retired communications worker, said she joined the demonstration after witnessing federal agents stopping immigrants at a bus stop near her home in Minnetonka, Minnesota, a suburb of Minneapolis.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">\u201cThey\u2019re roaming our streets, they\u2019re staying in hotels near our schools,\u201d she said. \u201cEveryone in this country has rights, and the federal government seems to have forgotten that. We\u2019re here to remind them.\u201d<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">In Michigan, dozens of students walked out of Friday morning classes at Groves High School in Birmingham, north of Detroit. The students braved the zero-degree (minus 18 degrees Celsius) temperatures and walked about a mile (1.6 kilometers) to the closest business district where a number of morning commuters honked horns in support.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">\u201cWe\u2019re here to protest ICE and what they\u2019re doing all over the country, especially in Minnesota,\u201d said Logan Albritton, a 17-year-old senior at Groves. \u201cIt\u2019s not right to treat our neighbors and our fellow Americans this way.\u201d<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Abigail Daugherty, 16, organized the walkout at Collins Hill High School in Suwanee, Georgia, on Friday. <\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">\u201cFor years, I have felt powerless, and seeing other schools in the county being able to do this, I wanted to do something,&#8221; the sophomore said.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Numerous businesses announced they would be closed during Friday\u2019s \u201cblackout.&#8221; Others said they would be staying open, but donating a portion of their proceeds to organizations that support immigrants and provide legal aid to those facing deportation. <\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Otway Restaurant and its sister Otway Bakery in New York posted on social media that its bakery would stay open and 50% of proceeds would go to the New York Immigration Coalition. The restaurant remained open as well.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">\u201cAs a small business who already took a huge financial hit this week due to the winter storm closures, we will remain open on Friday,\u201d they posted.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">In Maine, where Republican Sen. Susan Collins announced that ICE is ending its surge, people gathered outside a Portland church on Friday morning, holding signs that said \u201cNo ICE for ME,\u201d a play on the state\u2019s postal code. <\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Grace Valenzuela, an administrator with Portland Public Schools, decried an \u201cenforcement system that treats our presence as suspect.\u201d She said ICE\u2019s actions brought \u201cdaily trauma\u201d to the school system.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">\u201cSchools are meant to be places of learning, safety and belonging. ICE undermines that mission every time it destabilizes a family,\u201d Valenzuela said.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Portland Mayor Mark Dion, a Democrat, spoke about the importance of speaking out in the wake of ICE\u2019s actions in the city.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">\u201cDissent is Democratic. Dissent is American. It\u2019s the cornerstone of our democracy,\u201d Dion said.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">In Los Angeles, where Trump&#8217;s immigration surge first began last June, thousands of protesters gathered in front of city hall in the afternoon and later marched to the federal detention center. As the demonstration stretched into the evening, federal agents began using chemical sprays to push the crowd back.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Democratic Rep. Maxine Waters joined the protest, chanting \u201cICE out of LA\u201d in front of a line of officers in riot gear.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">\u201cWhat I see here at the detention center are people exercising their constitutional rights,&#8221; Waters said. \u201cAnd of course, they&#8217;re now trying to tear gas everybody. It&#8217;s in the air, but people are not moving.\u201d<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">On Thursday, a student in Nebraska was hit by an SUV flying a Trump flag at a student-led protest against the immigration crackdown. <\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">A few students entered the street outside Fremont High School around 2 p.m. and one was hit by a vehicle that had stopped in front of the crowd, then began moving, Fremont Public Schools said in a statement.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Officials said the student was taken to a hospital but they didn\u2019t release details on the extent of the student\u2019s injuries.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Video from the scene shot by News Channel Nebraska shows a red SUV displaying a blue Trump 2024 flag accelerating as a student carrying a sign walks in the direction of the vehicle. The student is knocked onto the hood and falls onto the ground. The vehicle stops briefly and then takes off.<\/p>\n<p class=\"font-size-scaler-control\" data-font=\"16\">Associated Press reporters Emilie Megnien in Atlanta, Mae Anderson in New York, Jake Offenhartz in Minneapolis, Patrick Whittle in Portland, Maine, Corey Williams in Detroit, Jaimie Ding in Los Angeles, and Audrey McAvoy in Honolulu contributed to this report.<\/p>\n<p>      <a target=\"_blank\" href=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_Immigration_Enforcement_Maine_84623.jpg.webp\" class=\"image-lightbox\" data-fancybox=\"gallery-nextpost\" data-caption=\"People protest against U.S. Immigrations and Customs enforcement in Portland, Maine, Friday, Jan. 30, 2026. (AP Photo\/Robert F. Bukaty)\"><br \/>\n        <img decoding=\"async\" src=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_Immigration_Enforcement_Maine_84623.jpg.webp\" alt=\"People protest against U.S. Immigrations and Customs enforcement in Portland, Maine, Friday, Jan. 30, 2026. (AP Photo\/Robert F. Bukaty)\"\/><\/p>\n<p class=\"caption font-size-scaler-control\" data-font=\"14\">People protest against U.S. Immigrations and Customs enforcement in Portland, Maine, Friday, Jan. 30, 2026. (AP Photo\/Robert F. Bukaty)<\/p>\n<p>      <\/a><\/p>\n<p>      <a target=\"_blank\" href=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_Immigration_Enforcement_Maine_07716.jpg.webp\" class=\"image-lightbox\" data-fancybox=\"gallery-nextpost\" data-caption=\"Attendees hold signs at a news conference held by public officials and faith leaders calling for the abolishment of the U.S. Immigrant and Customs Enforcement, Friday, Jan. 30, 2026, in Portland, Maine. (AP Photo\/Robert F. Bukaty)\"><br \/>\n        <img decoding=\"async\" src=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_Immigration_Enforcement_Maine_07716.jpg.webp\" alt=\"Attendees hold signs at a news conference held by public officials and faith leaders calling for the abolishment of the U.S. Immigrant and Customs Enforcement, Friday, Jan. 30, 2026, in Portland, Maine. (AP Photo\/Robert F. Bukaty)\"\/><\/p>\n<p class=\"caption font-size-scaler-control\" data-font=\"14\">Attendees hold signs at a news conference held by public officials and faith leaders calling for the abolishment of the U.S. Immigrant and Customs Enforcement, Friday, Jan. 30, 2026, in Portland, Maine. (AP Photo\/Robert F. Bukaty)<\/p>\n<p>      <\/a><\/p>\n<p>      <a target=\"_blank\" href=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_Immigration_Enforcement_Maine_92294.jpg.webp\" class=\"image-lightbox\" data-fancybox=\"gallery-nextpost\" data-caption=\"A sign at a cannabis shop indicates it is closed for the general strike to support the state's immigrant community Friday, Jan. 30, 2026, in Portland, Maine. (AP Photo\/Robert F. Bukaty)\"><br \/>\n        <img decoding=\"async\" src=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_Immigration_Enforcement_Maine_92294.jpg.webp\" alt=\"A sign at a cannabis shop indicates it is closed for the general strike to support the state's immigrant community Friday, Jan. 30, 2026, in Portland, Maine. (AP Photo\/Robert F. Bukaty)\"\/><\/p>\n<p class=\"caption font-size-scaler-control\" data-font=\"14\">A sign at a cannabis shop indicates it is closed for the general strike to support the state&#8217;s immigrant community Friday, Jan. 30, 2026, in Portland, Maine. (AP Photo\/Robert F. Bukaty)<\/p>\n<p>      <\/a><\/p>\n<p>      <a target=\"_blank\" href=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_APTOPIX_Immigration_Enforcement_Minnesota_90326.jpg.webp\" class=\"image-lightbox\" data-fancybox=\"gallery-nextpost\" data-caption=\"People gather for a protest against ICE outside the Bishop Henry Whipple Federal Building, Friday, Jan. 30, 2026, in Minneapolis. (AP Photo\/Adam Gray)\"><br \/>\n        <img decoding=\"async\" src=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_APTOPIX_Immigration_Enforcement_Minnesota_90326.jpg.webp\" alt=\"People gather for a protest against ICE outside the Bishop Henry Whipple Federal Building, Friday, Jan. 30, 2026, in Minneapolis. (AP Photo\/Adam Gray)\"\/><\/p>\n<p class=\"caption font-size-scaler-control\" data-font=\"14\">People gather for a protest against ICE outside the Bishop Henry Whipple Federal Building, Friday, Jan. 30, 2026, in Minneapolis. (AP Photo\/Adam Gray)<\/p>\n<p>      <\/a><\/p>\n<p>      <a target=\"_blank\" href=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_APTOPIX_Immigration_Enforcement_Maine_38483.jpg.webp\" class=\"image-lightbox\" data-fancybox=\"gallery-nextpost\" data-caption=\"A protester rallies against the presence of U.S. Immigration Customs Enforcement in Maine, Friday, Jan. 23, 2026, in Portland, Maine. (AP Photo\/Robert F. Bukaty)\"><br \/>\n        <img decoding=\"async\" src=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_APTOPIX_Immigration_Enforcement_Maine_38483.jpg.webp\" alt=\"A protester rallies against the presence of U.S. Immigration Customs Enforcement in Maine, Friday, Jan. 23, 2026, in Portland, Maine. (AP Photo\/Robert F. Bukaty)\"\/><\/p>\n<p class=\"caption font-size-scaler-control\" data-font=\"14\">A protester rallies against the presence of U.S. Immigration Customs Enforcement in Maine, Friday, Jan. 23, 2026, in Portland, Maine. (AP Photo\/Robert F. Bukaty)<\/p>\n<p>      <\/a><\/p>\n<p>      <a target=\"_blank\" href=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_Immigration_Enforcement_Minnesota_97854.jpg.webp\" class=\"image-lightbox\" data-fancybox=\"gallery-nextpost\" data-caption=\"People gather for a protest outside the Bishop Henry Whipple Federal Building, Friday, Jan. 30, 2026, in Minneapolis. (AP Photo\/Adam Gray)\"><br \/>\n        <img decoding=\"async\" src=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_Immigration_Enforcement_Minnesota_97854.jpg.webp\" alt=\"People gather for a protest outside the Bishop Henry Whipple Federal Building, Friday, Jan. 30, 2026, in Minneapolis. (AP Photo\/Adam Gray)\"\/><\/p>\n<p class=\"caption font-size-scaler-control\" data-font=\"14\">People gather for a protest outside the Bishop Henry Whipple Federal Building, Friday, Jan. 30, 2026, in Minneapolis. (AP Photo\/Adam Gray)<\/p>\n<p>      <\/a><\/p>\n<p>      <a target=\"_blank\" href=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_Immigration_Enforcement_Minnesota_90674.jpg.webp\" class=\"image-lightbox\" data-fancybox=\"gallery-nextpost\" data-caption=\"People gather for a protest outside the Bishop Henry Whipple Federal Building, Friday, Jan. 30, 2026, in Minneapolis. (AP Photo\/Adam Gray)\"><br \/>\n        <img decoding=\"async\" src=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_Immigration_Enforcement_Minnesota_90674.jpg.webp\" alt=\"People gather for a protest outside the Bishop Henry Whipple Federal Building, Friday, Jan. 30, 2026, in Minneapolis. (AP Photo\/Adam Gray)\"\/><\/p>\n<p class=\"caption font-size-scaler-control\" data-font=\"14\">People gather for a protest outside the Bishop Henry Whipple Federal Building, Friday, Jan. 30, 2026, in Minneapolis. (AP Photo\/Adam Gray)<\/p>\n<p>      <\/a><\/p>\n<p>      <a target=\"_blank\" href=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_APTOPIX_Immigration_Enforcement_Minnesota_36809.jpg.webp\" class=\"image-lightbox\" data-fancybox=\"gallery-nextpost\" data-caption=\"People gather for a protest outside the Bishop Henry Whipple Federal Building, Friday, Jan. 30, 2026, in Minneapolis. (AP Photo\/Adam Gray)\"><br \/>\n        <img decoding=\"async\" src=\"https:\/\/image.bastillepost.com\/1200x\/wp-content\/uploads\/global\/2026\/01\/64fd52ba5283e8f56c57dddb1c3a3852_APTOPIX_Immigration_Enforcement_Minnesota_36809.jpg.webp\" alt=\"People gather for a protest outside the Bishop Henry Whipple Federal Building, Friday, Jan. 30, 2026, in Minneapolis. (AP Photo\/Adam Gray)\"\/><\/p>\n<p class=\"caption font-size-scaler-control\" data-font=\"14\">People gather for a protest outside the Bishop Henry Whipple Federal Building, Friday, Jan. 30, 2026, in Minneapolis. (AP Photo\/Adam Gray)<\/p>\n<p>      <\/a><\/p><\/div>\n<p><script>\n        !function(f,b,e,v,n,t,s)\n        {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n            n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n            if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n            n.queue=[];t=b.createElement(e);t.async=!0;\n            t.src=v;s=b.getElementsByTagName(e)[0];\n            s.parentNode.insertBefore(t,s)}(window, document,'script',\n            'https:\/\/connect.facebook.net\/en_US\/fbevents.js');\n        fbq('init', '2014126905534741');\n        fbq('track', 'PageView');\n    <\/script><script>\n            window.app = {\n                constants: {\n                    UUID_KEY: 'AIMPID',\n                    FONT_SIZE_SCALE: 'FONT_SIZE_SCALE',\n                },\n                seoDimensionObj: {\n                    title: 'Infielder Vinnie Pasquantino agrees to 2-year contract with the Royals',\n                    section: '',\n                    pagePath: 'https:\/\/www.bastillepost.com\/global\/article\/5574408-infielder-vinnie-pasquantino-agrees-to-2-year-contract-with-the-royals',\n                },\n                ajax: jQuery.ajax,\n                helpers: {\n                    bindVideoListEvent: function(players, jqElement) {\n                        jqElement.find('video.bp-video-js').each(function() {\n                            var options = {\n                                controls: true,\n                                autoplay: false,\n                                preload: \"none\",\n                                width: \"100%\",\n                                fluid: true,\n                                aspectRatio: \"704:369\",\n                            };\n                            var domOptions = $(this).data('videojs');\n                            if (domOptions) {\n                                options = Object.assign(options, domOptions);\n                            }\n                            var player = videojs(this, options);\n                            var currentIndex = players.length;\n                            player.on('play', function() {\n                                console.log(`player ${currentIndex} play`);\n                                for (var i = 0; i < players.length; i++) {\n                                    if (i !== currentIndex) {\n                                        players[i].pause();\n                                    }\n                                }\n                            });\n                            players.push(player);\n                        });\n\n                        \/\/ Post list video can not jump\n                        jqElement.find('.bppost-title').click(function() {\n                            var a = $(this).parent('.bppost-item');\n                            var href = a.attr('href');\n                            if (href) {\n                                location.href = href;\n                            }\n                        });\n                    },\n                    showHotList: function(id) {\n                        jQuery('.bp-hot-list').css('display', 'none');\n                        jQuery('#' + id).css('display', 'block');\n                        jQuery('.bp-hot-list-btn').removeClass('active')\n                        jQuery('.bp-hot-list-btn.' + id).addClass('active')\n                    },\n                    getStorage: function(key){\n                        var val=null;\n                        try{\n                            val = localStorage.getItem(key);\n                        } catch(error){}\n                        if(val==null){\n                            val = window.app.helpers.getCookie(key,null);\n                        }\n                        return val;\n                    },\n                    setStorage: function(key, val){\n                        try{\n                            localStorage.setItem(key, val);\n                            window.app.helpers.setCookie(key, val, 30);\n                        } catch(error){\n                        }\n                    },\n                    setCookie: function(name, value, days, domain) {\n                        if(typeof(domain)==='undefined') {\n                            domain = '';\n                        }\n\n                        var exp = new Date();\n                        exp.setTime(exp.getTime() + days*24*60*60*1000);\n\n                        if (!domain) {\n                            document.cookie = name + \"=\" + value + \";expires=\" + exp.toGMTString() + \";path=\/\";\n                        } else {\n                            document.cookie = name + \"=\" + value + \";expires=\" + exp.toGMTString() + \";path=\/\" + \";domain=\" + domain;\n                        }\n                    },\n                    getCookie: function(name,defValue){\n                        var arr = document.cookie.match(new RegExp(\"(^| )\" + name + \"=([^;]*)(;|$)\"));\n\n                        if (arr != null) {\n                            return arr[2];\n                        }\n\n                        return defValue ? defValue : '';\n                    },\n                    generateUUID: function() {\n                        var s4 = function() {\n                            return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);\n                        }\n\n                        return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n                    },\n                    setUUID: function() {\n                        var uuid = window.app.helpers.generateUUID();\n\n                        window.app.helpers.setStorage(window.app.constants.UUID_KEY, uuid);\n\n                        return uuid;\n                    },\n                    refreshLiveInfo: function () {\n                        var now = new Date();\n                        var year = now.getFullYear();\n                        var month = now.getMonth() + 1;\n                        var dayOfMonth = now.getDate();\n                        var dayOfWeek = now.getDay();\n\n                        var dateEle = jQuery('.live-info .date');\n                        dateEle.text(`${year}-${month}-${dayOfMonth}-`);\n                        dateEle.css('opacity', '1');\n\n                        var dayOfWeekMap = {\n                            1: 'Monday',\n                            2: 'Tuesday',\n                            3: 'Wednesday',\n                            4: 'Thursday',\n                            5: 'Friday',\n                            6: 'Saturday',\n                            7: 'Sunday',\n                        };\n                        var dayEle = jQuery('.live-info .day');\n                        dayEle.text(dayOfWeekMap[dayOfWeek]);\n                        dayEle.css('opacity', '1');\n                    },\n                    preventUserSaveImgs: function(elements) {\n                        var fn = function() { return false };\n                        elements.each(function() {\n                            this.oncontextmenu = fn;\n                        });\n                    },\n                    getQueryParameter(query, key) {\n                        var results = new RegExp('[\\?&#038;]' + key + '=([^&#038;#]*)').exec(query);\n\n                        return (results !== null) ? results[1] || '' : '';\n                    },\n                },\n                fontSizeScaler: {\n                    init: function() {\n                        const scaler = $('.font__size__scaler__container .scaler');\n                        let rate = window.app.fontSizeScaler._getRate();\n                        scaler.val(rate);\n                        const percent = window.app.fontSizeScaler._calculatePercent(scaler, rate);\n\n                        window.app.fontSizeScaler._updateUI(rate, percent);\n\n                        scaler.bind('input', function() {\n                            const input = $(this);\n                            const rate = parseFloat(input.val());\n                            const percent = window.app.fontSizeScaler._calculatePercent(input, rate);\n\n                            window.app.helpers.setStorage(window.app.constants.FONT_SIZE_SCALE, rate);\n\n                            window.app.fontSizeScaler._updateUI(rate, percent);\n                        });\n                    },\n                    refreshUI: function() {\n                        const scaler = $('.font__size__scaler__container .scaler');\n                        let rate = window.app.fontSizeScaler._getRate();\n                        const percent = window.app.fontSizeScaler._calculatePercent(scaler, rate);\n                        window.app.fontSizeScaler._updateUI(rate, percent);\n                    },\n                    _calculatePercent: function(input, rate) {\n                        const min = input.attr('min');\n                        const max = input.attr('max');\n\n                        return ((rate - min) \/ (max - min)) * 100;\n                    },\n                    _getRate: function() {\n                        let rate = window.app.helpers.getStorage(window.app.constants.FONT_SIZE_SCALE);\n                        if (!rate) {\n                            rate = 100;\n                        } else {\n                            rate = parseFloat(rate);\n                        }\n\n                        return rate;\n                    },\n                    _updateUI: function(rate, percent) {\n                        $('.font__size__scaler__container .scaler').css( 'background-size', percent + '% 100%');\n\n                        const DEFAULT_FONT_SIZE = 16;\n                        \/\/ rate from 80 ~ 200, mean 80% ~ 200%\n                        const scale = rate \/ 100;\n                        $('.font__size__scaler__container .font__size__scale').css('font-size', `${(DEFAULT_FONT_SIZE * scale).toFixed(0)}px`);\n\n                        $('.font-size-scaler-control').each(function() {\n                            const self = $(this);\n                            let fontSize = self.data('font');\n                            if (!fontSize) {\n                                fontSize = `${DEFAULT_FONT_SIZE}px`;\n                            }\n                            let realFontSize = parseInt(fontSize.toString().replace('px', ''));\n                            if (!realFontSize) {\n                                realFontSize = DEFAULT_FONT_SIZE;\n                            }\n                            let resultFontSize = realFontSize * scale;\n                            let maxFontSize = parseInt(self.data('font-max'), 10);\n                            if (maxFontSize &#038;&#038; maxFontSize > 0) {\n                                if (resultFontSize > maxFontSize) {\n                                    resultFontSize = maxFontSize;\n                                }\n                            }\n                            self.css('font-size', `${resultFontSize}px`);\n                        });\n                    },\n                },\n                isGoogleTagManagerInit: false,\n                initGoogleTagManager: function() {\n                    if (window.app.isGoogleTagManagerInit) {\n                       return;\n                    }\n                    window.app.isGoogleTagManagerInit = true;\n                    <!-- Google Tag Manager -->\n                    (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n                            new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n                        j=d.createElement(s),dl=l!='dataLayer'?'&l=\"+l:\"';j.async=true;j.src=\"https:\/\/www.googletagmanager.com\/gtm.js?id=\"+i+dl;f.parentNode.insertBefore(j,f);\n                    })(window,document,'script','dataLayer','GTM-MHLNCKH4');\n                    <!-- End Google Tag Manager -->\n                    <!-- GA Tag -->\n                    \/\/ (function(i, s, o, g, r, a, m) {\n                    \/\/         i['GoogleAnalyticsObject'] = r;\n                    \/\/         i[r] = i[r] || function() {\n                    \/\/             (i[r].q = i[r].q || []).push(arguments)\n                    \/\/         }\n                    \/\/             ,\n                    \/\/             i[r].l = 1 * new Date();\n                    \/\/         a = s.createElement(o),\n                    \/\/         m = s.getElementsByTagName(o)[0];\n                    \/\/         a.async = 1;\n                    \/\/         a.src = g;\n                    \/\/         m.parentNode.insertBefore(a, m)\n                    \/\/     }\n                    \/\/ )(window, document, 'script', 'https:\/\/www.google-analytics.com\/analytics.js', 'ga');\n                    \/\/ window.ga('create', 'UA-45475522-1', 'auto');\n                    <!-- End GA Tag-->\n                },\n                pageImpression: function(source, triggerType) {\n                    \/\/dimension1\tsection: Category Name (\u9996\u9801,\u535a\u5ba2\u699c,{\u535a\u5ba2\u540d\u7a31},{\u5206\u985e\u540d\u7a31},\u9801\u9762)\n                    \/\/dimension2\tsource: homepage, category, post, blogger, author, readmore, carousel\n                    \/\/dimension3\tproduct: desktop-web, mobile-web, ios, android, huawei, facebook\n                    var dataLayer = window.dataLayer = window.dataLayer || [];\n                    var product = $(window).width() < 1024 ? 'mobile-web' : 'desktop-web';\n\n                    var title = `${window.app.seoDimensionObj.title}|${product}`;\n\n                    var pageImpression = {\n                        'event': 'page_view',\n                        'pageTitle': title,\n                        'pageSection': window.app.seoDimensionObj.section,\n                        'pageSource': source,\n                        'bpProduct': product,\n                        'pagePath': window.app.seoDimensionObj.pagePath,\n                        'referURL': document.referrer,\n                        'triggerType': triggerType || 'auto', \/\/ auto\n                    };\n                    dataLayer.push(pageImpression);\n\n                    var pathname = (new URL(pageImpression.pagePath)).pathname;\n                    var ga4PageImpression = {\n                        page: pathname,\n                        hitType: 'pageview',\n                        title: pageImpression.pageTitle,\n                        dimension1: pageImpression.pageSection,\n                        dimension3: pageImpression.pageSource,\n                        dimension4: pageImpression.bpProduct,\n                    }\n\n                    window.app.initGoogleTagManager();\n\n                    \/\/ window.ga('send', ga4PageImpression);\n\n                    console.log('dataLayer', pageImpression, 'ga', ga4PageImpression);\n                },\n                adUnits: null,\n                checkVideoPlayersRegion: function() {\n                    if (!window.videojs) {\n                        console.log('checkVideoPlayersRegion: VideoJS not loaded');\n                        return;\n                    }\n\n                    const players = videojs.getPlayers();\n                    const streamPlayers = [];\n                    for (const playerName in players) {\n                        const player = players[playerName];\n\n                        const sources = player.currentSources();\n                        for (let i = 0; i < sources.length; i++) {\n                            const src = sources[i];\n                            if (src.type === 'application\/x-mpegURL') {\n                                streamPlayers.push(player);\n                                break;\n                            }\n                        }\n                    }\n\n                    console.log('checkVideoPlayersRegion: has ' + streamPlayers.length + ' streaming players');\n\n                    if (streamPlayers.length > 0) {\n                        const ModalDialog = window.videojs.getComponent('ModalDialog');\n                        \/\/ \u4e34\u65f6\u4f7f\u7528, \u4ec5\u5141\u8bb8HK IP\u7684\u89c2\u770bVideo\n                        \/\/ window.app.ajax({\n                        \/\/     type: 'get',\n                        \/\/     url: '\/global\/api\/v1\/ip-to-region',\n                        \/\/     \/\/ url: 'https:\/\/test.bastillepost.com\/global\/api\/v1\/ip-to-region',\n                        \/\/     contentType: 'application\/json',\n                        \/\/     dataType: 'json',\n                        \/\/     success: function (resp) {\n                        \/\/         console.log('https:\/\/test.bastillepost.com', resp);\n                        \/\/\n                        \/\/         if (resp.code === 200) {\n                        \/\/             let isHongKongRegion = resp.data.regionInfo.province === '\u9999\u6e2f';\n                        \/\/\n                        \/\/             console.log('checkVideoPlayersRegion: isHongKongRegion = ' + isHongKongRegion);\n                        \/\/\n                        \/\/             \/\/ for debug\n                        \/\/             \/\/ isHongKongRegion = false;\n                        \/\/             if (!isHongKongRegion) {\n                        \/\/                 \/\/ Show Error Msg\n                        \/\/                 for (let i = 0; i < streamPlayers.length; i++) {\n                        \/\/                     const player = streamPlayers[i];\n                        \/\/\n                        \/\/                     const errorMessage = document.createElement('div');\n                        \/\/                     errorMessage.className=\"vjs-modal-dialog-content\";\n                        \/\/                     errorMessage.setAttribute('role', 'document');\n                        \/\/                     errorMessage.style.cssText = `font-size: 18px;\n                        \/\/                         vertical-align: middle;\n                        \/\/                         padding-top: 10%;\n                        \/\/                         background: black;\n                        \/\/                         color: white;\n                        \/\/                         text-align: center;\n                        \/\/                         position: absolute;\n                        \/\/                         top: 0;\n                        \/\/                         left: 0;\n                        \/\/                         width: 100%;\n                        \/\/                         height: 100%;\n                        \/\/                         display: flex;\n                        \/\/                         align-items: center;\n                        \/\/                         justify-content: center;\n                        \/\/                     `;\n                        \/\/                     errorMessage.textContent=\"\u62b1\u6b49\uff0c\u7531\u65bc\u7248\u6b0a\u9650\u5236\u60a8\u6240\u5728\u7684\u5730\u5340\u7121\u6cd5\u64ad\u653e\u6b64\u5f71\u7247\u3002\";\n                        \/\/\n                        \/\/                     var modal = new ModalDialog(player, {\n                        \/\/                         content: errorMessage,\n                        \/\/                         \/\/ description: '\u62b1\u6b49\uff0c\u7531\u65bc\u7248\u6b0a\u9650\u5236\u60a8\u6240\u5728\u7684\u5730\u5340\u7121\u6cd5\u64ad\u653e\u6b64\u5f71\u7247\u3002',\n                        \/\/                         fillAlways: true,\n                        \/\/                         temporary: false,\n                        \/\/                         uncloseable: true,\n                        \/\/                     });\n                        \/\/                     player.addChild(modal);\n                        \/\/                     modal.open();\n                        \/\/                 }\n                        \/\/             }\n                        \/\/         }\n                        \/\/     },\n                        \/\/     error: function () {\n                        \/\/     },\n                        \/\/ });\n                    }\n                },\n            };\n\n            jQuery(function() {\n                window.app.helpers.preventUserSaveImgs($('img'));\n\n                window.app.helpers.refreshLiveInfo();\n\n                window.app.helpers.showHotList('bp-hot-list-daily');\n\n                $('.scroll-top-wrapper').click(function() {\n                    window.scrollTo({top: 0, behavior: 'smooth'});\n                });\n\n                $('.header__home-btn').click(function() {\n                    location.href = \"https:\/\/www.bastillepost.com\/global\";\n                });\n\n                \/\/ PC Web other menus event\n                $('#bp-other-menus').hover(function() {\n                    $(this).find('.sub-menus').css('display', 'flex');\n                }, function() {\n                    $(this).find('.sub-menus').css('display', 'none');\n                });\n                $('.sub-menus>div').hover(function() {\n                    $(this).find('.sub-sub-menus').css('display', 'flex');\n                }, function() {\n                    $(this).find('.sub-sub-menus').css('display', 'none');\n                });\n                \/\/ Mobile Web Menus Dialog resize\n                var resizeMobileWebMenusDialog = function () {\n                    \/\/ var top = $(window).scrollTop() > 0 ? 86 : 150;\n                    var top = $(window).scrollTop() > 0 ? 86 : 86;\n                    $('body.menu-active .header__nav').css({'top': `${top}px`, 'height': `calc(100% - ${top}px)`})\n                }\n                $('.menu-btn').click(function() {\n                    resizeMobileWebMenusDialog();\n                });\n                \/\/ Mobile Web Search Bar\/Display Title auto switch\n                var mobileSearchBarEle = $('.header__search__mobile .search-slide');\n                var mobileDisplayTitleEle = $('.header__button-title.mobile-only');\n                setInterval(function() {\n                    var show = mobileSearchBarEle.css('display');\n                    if (show === 'none' || mobileSearchBarEle.hasClass('js-slide-hidden')) {\n                        mobileDisplayTitleEle.css('opacity', '1');\n                    } else {\n                        mobileDisplayTitleEle.css('opacity', '0');\n                    }\n                }, 200);\n                \/\/ Font Size Scaler\n                window.app.fontSizeScaler.init();\n                \/\/ fb like sdk\n                (function (d, s, id) {\n                    var js, fjs = d.getElementsByTagName(s)[0];\n                    if (d.getElementById(id)) return;\n                    js = d.createElement(s); js.id = id;\n                    js.async = true;\n                    js.src = \"https:\/\/connect.facebook.net\/en_US\/sdk.js#xfbml=1&version=v17.0&appId=301441893522755&autoLogAppEvents=1\";\n                    fjs.parentNode.insertBefore(js, fjs);\n                }(document, 'script', 'facebook-jssdk'));\n                \/\/ show alert_msg in url\n                const alertMsg = window.app.helpers.getQueryParameter(window.location.search, 'alert_msg');\n                if (alertMsg) {\n                    window.alert(decodeURIComponent(alertMsg));\n                }\n            });\n        <\/script><\/p>\n<p><em> \u2018 The preceding article may include information circulated by third parties \u2019 <\/em><\/p>\n<p><em> \u2018 Some details of this article were extracted from the following source www.bastillepost.com \u2019 <\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>KANSAS CITY, Mo. (AP) \u2014 Infielder Vinnie Pasquantino agreed to a two-year contract Friday with the Royals, pending a successful physical, that will keep him in Kansas City through the 2027 season. Financial terms of the deal were not released. Pasquantino would have been in his second year of salary arbitration this upcoming season. He [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":2259336,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"jnews-multi-image_gallery":[],"jnews_single_post":[],"jnews_primary_category":[],"jnews_social_meta":[],"footnotes":""},"categories":[43],"tags":[423955,406814,265640,27155,22505],"class_list":["post-2259335","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-royalty","tag-ap-news","tag-contract","tag-pasquantino","tag-royals","tag-sport"],"jetpack_featured_media_url":"https:\/\/celebrity.land\/en\/wp-content\/uploads\/2026\/01\/Infielder-Vinnie-Pasquantino-agrees-to-2-year-contract-with-the-Royals.webp.webp","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/celebrity.land\/en\/wp-json\/wp\/v2\/posts\/2259335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/celebrity.land\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/celebrity.land\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/celebrity.land\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/celebrity.land\/en\/wp-json\/wp\/v2\/comments?post=2259335"}],"version-history":[{"count":1,"href":"https:\/\/celebrity.land\/en\/wp-json\/wp\/v2\/posts\/2259335\/revisions"}],"predecessor-version":[{"id":2259337,"href":"https:\/\/celebrity.land\/en\/wp-json\/wp\/v2\/posts\/2259335\/revisions\/2259337"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/celebrity.land\/en\/wp-json\/wp\/v2\/media\/2259336"}],"wp:attachment":[{"href":"https:\/\/celebrity.land\/en\/wp-json\/wp\/v2\/media?parent=2259335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/celebrity.land\/en\/wp-json\/wp\/v2\/categories?post=2259335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/celebrity.land\/en\/wp-json\/wp\/v2\/tags?post=2259335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}