HARRISBURG — The Republican-led Pennsylvania Senate sent a $47.9 billion spending plan to the state House on Tuesday, but the proposal was dead on arrival and deemed “unserious” in the Democratic-controlled chamber, marking the latest chapter of the nearly four-month-long budget impasse in the state’s bitterly divided legislature.
The Senate GOP plan, which passed the chamber by a 27-23 vote along party lines, included a $300 million, or 0.6%, total increase over last year’s budget that is intended to cover the state’s debt service and pension obligations, in addition to cutting operational spending for the legislative body by 5%, said Senate Majority Leader Joe Pittman (R., Indiana).
The House Democrats’ $50.25 billion spending bill was a slight decrease from the $51.5 billion budget proposal Democratic Gov. Josh Shapiro pitched in February. And it was an attempt by House Democrats at reaching a compromise — decreasing their proposed spending by 2.4% over Shapiro’s initial pitch — after encouragement from Senate President Pro Tempore Kim Ward (R., Westmoreland) for legislative leaders to bring the usually closed-door budget negotiations into the public eye.
But the Senate GOP’s counteroffer passed Tuesday included little compromise and little increase in spending. However, it is a budget that would fund Pennsylvania’s needs rather than wants, several top GOP senators said during floor debate on the bill.
“All it takes is one day and one vote to end this ‘Shapiro Shutdown,’” Pittman said in his floor remarks in support of the GOP budget bill.
Several GOP senators noted the state’s fiscal outlook as the reason lawmakers cannot afford to spend much more over last year, as Pennsylvania is on track to bring in $46.4 billion during the 2025-26 fiscal year, which is significantly less than Shapiro and House Democrats want to spend.
Pennsylvania is sitting on approximately $10 billion in reserves, from its leftover balance from the 2024-25 fiscal year and its hefty Rainy Day Fund. Democrats want to tap into those reserves and reinvest them in the state, while Republicans believe it is critical to protect those funds to maintain the state’s bond rating or cut taxes as a way to reinvest those surpluses back into taxpayers’ pockets.
Top Senate Republicans on Tuesday urged the state House to return to session and pass their $47.9 billion spending plan as the most responsible way to protect Pennsylvania taxpayers in future years. And some offered criticism of Shapiro, who has continued to host news conferences around Pennsylvania during the 113-day budget impasse, accusing the governor of failing to lead in Harrisburg on budget negotiations.
“If you want to have an honest conversation about how to get this budget done, a governor gallivanting across the state taking potshots at members of this caucus doesn’t help,” Pittman said.
What was not mentioned Tuesday among Senate Republicans was that $47.9 billion is the highest number that the most conservative members of the GOP Senate caucus have pledged to spend. Sen. Dawn Keefer (R., Cumberland), who led the House Freedom Caucus before her election to the state Senate last year, even went as far as to take a flamethrower to a replica of Shapiro’s budget proposal in a social media video earlier this year while promising viewers through a rhyme that she would “hold the line at $47.9″ billion.
Sign posted by the PA Senate at the Pennsylvania State Capitol in Harrisburg Aug. 26, 2025, reminds visitors of the state’s “multi-billion dollar structural deficit.”
Senate Democrats firmly rejected the GOP plan as a farce that would not cover the state’s obligations for this fiscal year or make critical increases to public education funding needed to improve Pennsylvania’s school funding system. The top Senate Democratic leader, Sen. Jay Costa (D., Allegheny), tried several legislative maneuvers to try to get the Senate to vote on the House Democrats’ bill instead of the GOP proposal, all of which failed.
“They thumbed their noses and they said, ‘Go to heck,’” State Sen. Vincent Hughes (D., Philadelphia), the minority chair of the Senate Appropriations Committee, said of his GOP colleagues’ response to the House bill ahead of Tuesday’s vote.
Senator Vincent Hughes, speaks at the Round table with Pennsylvania lawmakers, stakeholders, health systems to discuss potential cuts to Medicaid and ACA at the University City Science Center in Philadelphia, Pa., on Tuesday, April 22, 2025.
Shapiro, following a news conference in Allegheny County on Tuesday, voiced a similar sentiment when he told reporters the Senate’s proposal was “a joke” and “not designed to be serious or get the job done.” He again urged top GOP Senate leaders to begin meeting with top House Democrats to finalize a budget deal.
“I’m sorry transit didn’t get funded. But just because your top priority didn’t get addressed doesn’t mean that our priorities are no longer relevant, and that’s a hard truth,” Pittman,who has been critical of Pennsylvania’s mass transit systems and was a major roadblock in finalizing a deal, said Tuesday.
And, as evidenced by Tuesday’s vote, leaders still do not agree on how much Pennsylvania should spend for the current fiscal year, now almost in its fifth month. Pennsylvania is the only state in the nation without any spending plan. North Carolina, which passed a six-month budget in early summer, returned to session this week to finish budget negotiations.
As nearly 2 million Pennsylvanians brace for the loss of their food assistance next month due to thefederalgovernment shutdown, the Pennsylvania Department of Human Services is pinning the blame on Republicans on Capitol Hill.
States administer the federally funded Supplemental Nutrition Assistance Program, which provides support to low-income people, including families with children. But as the standoff in Congress prevents federal funding from flowing to states, Democratic Gov. Josh Shapiro’s administration entered the messaging battle over the cause of the disruption to benefits.
“Because Republicans in Washington D.C., failed to pass a federal budget, causing the federal government shutdown, November 2025 SNAP benefits cannot be paid,“ reads a pastel orange banner on the DHS website from Friday, alerting recipients of the Supplemental Nutrition Assistance Program to the impending changes.
The message reflects the mounting impacts of the government shutdown, which is in its third full week, and the growing political tensions between Republicans and Democrats on the state and national levels after lawmakers failed to pass funding to avert a government shutdown by Oct. 1.
Shapiro has frequently gone head-to-head with the Trump administration, but the use of a state government website is a notable escalation.
The governor said in a news release Monday that Congress already had kicked off hundreds of thousands of Pennsylvanians from Medicaid and SNAP when it passed President Donald Trump’s One Big Beautiful Bill Act in July.
“Now, Republicans are once again threatening vital support for Pennsylvania families and children — it’s time for them to pass a federal budget and end this shutdown.”
Pennsylvania Human Services Secretary Val Arkoosh added that “Inaction from Republicans in Congress” jeopardizes the well-being of Pennsylvanians.
A significant impact will be felt next month in Philadelphia, where half a million people will not receive SNAP benefits. The program,which is funded by the U.S. Department of Agriculture, serves households including elderly people, individuals with disabilities, and children.
Another Democratic-led state, Illinois, also referred to the lapse in funding as the “Republican federal government shutdown” on its benefits webpage. Other Democratic-led states near Pennsylvania, New Jersey and Delaware, have not posted political messages on their states’ SNAP benefits pages.
Republicans in Pennsylvania criticized the use of the DHS website for a partisan message.
“Public service isn’t a political weapon and using a government website to fuel your partisan agenda is indefensible,” the Pennsylvania GOPwrote Monday in a post on X.
The shutdown is “Democrat-led,” says the Trump administration’s State Department website.
“The Radical Left in Congress shut down the government,” declares a bright red banner on the U.S. Department of Housing and Urban Development homepage.
The rising political pressure comes as the Trump administration began rolling out highly politicized messaging to the public and federal employees after the government shutdown began earlier this month.
And some federal workers — nonpartisan civil servants who have been coping with plummeting morale and either being furloughed or working without pay during the shutdown — have been on the receiving end of politicized messaging, too.
Barry Leonard, 87, formerly of Philadelphia, celebrated crimper, longtime innovative owner of the Barry Leonard Crimper & Spa in Center City, unisex beauty salon groundbreaker, fashion and marketing trendsetter, haircutting mentor, and Army veteran, died Sunday, Oct. 12, at his home in Hallandale Beach, Fla. The cause of his death has not been disclosed.
Born in Philadelphia to a family of hairstylists, Mr. Leonard swept the floor at his father’s beauty salon in West Philadelphia as a boy and, in 1955, became the first male to graduate from the beauty culture curriculum at Murrell Dobbins Career and Technical Education High School. He went on to help rewrite state statutes to allow unisex beauty salons in the 1970s, wow the marketing world with innovative ads that featured Fidel Castro, Albert Einstein, Santa Claus, and the Wolfman, and own high-end shops in the old Marriott Hotel on City Avenue and then on Chestnut Street for 43 years.
A proponent of what he called “natural haircutting,” Barry Leonard, Crimper, counted politicians, musicians, actors, and other celebrities as well as local residents as his regulars, and most of them were fine with waiting months for an appointment. He moved his bustling salon from the Marriott to 1527 Chestnut St. in 1972, relocated to 1822 Chestnut in 1995, and retired to Florida in 2005.
In the early 1970s, he saw that men appreciated hair care, too, and he successfully challenged an old state law that required separate locations for male and female haircuts. So unisex salons became common in the 1980s and ’90s.
Mr. Leonard is shown styling the hair of Annie Halpern, his future wife, in this 1985 photo in the Daily News.
“Hair,” he told The Inquirer in 1973, “is the only part of the body that can be changed readily and allows the individual to play his role as he feels it at that particular moment — protest, freakiness, sensuality, anything.”
His New Age salon featured wicker furniture, hanging plants, big pillows, Japanese koi, and free coffee, fruit, and wine. He charged $12.50 per cut in 1973 and $25 in 1991. Sometimes, he booked 75 heads a day, his wife, Annie, said.
Most often, he consulted with customers before the cut, assigned the job to an assistant stylist, and checked back when the work was done. Over his career, he told his wife, he likely attended to more than 1 million customers. In 1991, he told The Inquirer: “My general philosophy is to make people happy.”
He also created and distributed do-it-yourself manuals for those who couldn’t get appointments and introduced computerized styling technology in the 1980s so clients could design their own cuts on video screens. “I’m a firm believer that nothing lasts forever,” he told the Daily News in 1977. “But right now, I’ll stay the way I am. It’s really a matter of the world catching up with me.”
This then and now photo appeared with a story in The Inquirer in 1973.
He was featured often in The Inquirer, Daily News, Philadelphia Magazine, Philadelphia Business Journal, and other publications, and writers dubbed him the “top hair gun” in Philadelphia, “the dashing haircutter,” and “Philadelphia’s leading proponent of hair as art.” He dabbled in selling franchises, endorsed a new Japanese hair-straightening process, and hosted runway-style hair shows and crimper workshops.
Women told him his beauty advice changed their lives. Men said his haircuts improved their sex lives.“I was the image changer,” he told The Inquirer in 2002.
In the late 1960s, Mr. Leonard gave local advertising whiz Elliott Curson a haircut, and Curson, delighted with the result, suggested rebranding Mr. Leonard as “a crimper,” British slang for hairdresser. What followed was a hugely successful ad campaign and a friendship that lasted more than 50 years.
One of their first ads featured the phrase: “When I come out of Barry Leonard’s, I won’t look like my mother.” Curson said: “He had that look, the outfit, and the vision that worked so well.”
Mr. Leonard and his wife, Annie, married in 1986.
Mr. Leonard liked to wear a work shirt, vest, blue jeans, boots, designer glasses, and turquoise jewelry to work. His own hair flowed down to his shoulders when he was young. He told the Daily News in 1977: “Anybody can be where it’s at. But I’m where it’s going to be.”
He was a member of Intercoiffure America and participated in its competitive showings in New York and elsewhere. He was included in a display called “Movers and Shakers” at the now-closed Philadelphia History Museum.
“He would meet you once and have an impact on the rest of your life,” his wife said. “Everybody loved him. He was passionate and compassionate.”
Barry Leonard was born Jan. 27, 1938, in Philadelphia. He grew up in Wynnefield and Bala Cynwyd, and served in the Army’s 101st Airborne Division for two years after high school.
Mr. Leonard (second from right) celebrated his 80th birthday with his children.
He wore a traditional tie and jacket, and cut hair with his father and in a few local shops before opening his place at the Marriott in 1962. He also spent some time working in London and first heard the word crimper there.
He married Charlene Brooks, and they had daughters Karen, Susan, and Elizabeth and a son, Brett. After a divorce, he met Annie Halpern at a party in 1983. They went to a Neil Diamond concert on their first date in 1984, married in 1986, and moved from Center City to Florida in 2005.
Mr. Leonard was an avid boxing fan, and he knew his way around the popular Blue Horizon venue on Broad Street. He had a summer home in Longport, N.J., and enjoyed time at Gulfstream Park racetrack in Florida.
He was spiritual and loquacious, his wife said. He had favorite witty quips, and his family and friends refer to them as “Barryisms.”
This article about Mr. Leonard’s fashion sense was published in the Daily News in 1977.
He attended all kinds of galas and benefits, and doted on his children. “He gave me my first shag” haircut, a longtime friend said on Facebook. Another friend said her neighbor cut her hair once. “The results were not good,” she said. “Barry fixed me.”
They called him “one of a kind,” “truly the best around,” and a “mentor and a friend.” His wife said: “He was the love of my life.”
In addition to his wife, children, and former wife, Mr. Leonard is survived by eight grandchildren and other relatives. A brother died earlier.
A celebration of his life is to be at 11 a.m. Saturday, Dec. 6, at Gulfstream Park, Third Floor, Flamingo Room, 901 S. Federal Highway, Hallandale Beach, Fla. 33009. RSVP to blcrimper@aol.com.
This ad by Mr. Leonard and Elliott Curson appeared in The Inquirer in 1982.
On Tuesday, Harper — an imprint of HarperCollins Publishing — announced the release of Shapiro’s forthcoming memoir, Where We Keep the Light: Stories From a Life of Service, which will hit shelves on Jan. 27, 2026.
Shapiro, 52, has worked in some level of government for his entire career: on Capitol Hill as a staffer, in Montgomery County as a commissioner, and in Harrisburg as a state representative, attorney general, and now governor. He has noted that he has never lost an election, going back to his election as student body president his freshman year at the University of Rochester. Along the way, elected officials have whispered about his talents as a politician, orator, and rumored presidential ambitions.
The Montgomery County native has become a key player in the national Democratic Party, touting a brand as a governor of a split legislature in the most sought-after swing state. His administration’s motto is “Get Stuff Done,” which he defines as bringing Democrats and Republicans together to accomplish long-delayed reforms, or restarting residents’ trust by improving their interactions with state government. (Pennsylvania still has not finished its state budget, which was due July 1, as legislators from the Democratic-controlled House and GOP-controlled Senate cannot agree on how much they should spend this fiscal year and causing school districts, counties, and nonprofits to take out significant loans to continue offering services during the 113-day budget impasse.)
Shapiro’s rise through the Democratic Party ranks skyrocketed last year, when he became a front-runner for vice president during Harris’ whirlwind, 107-day presidential campaign, in which she ultimately chose Minnesota Gov. Tim Walz as her running mate. Harris also released a book this year, which includes stories from her interview with Shapiro for the role.
Shapiro, who was born in Kansas City, Mo., before moving to Montgomery County, has credited his upbringing by his parents — his father a pediatrician, and his mother an educator — as laying the foundation for his life in public service. Shapiro has four children and is married to his high school sweetheart, Lori. He and his family still live in Abington Township and split their time between their family home and the governor’s mansion in Harrisburg.
Steve Hirst relies on virtual visits with his urologist, whose office is an hour away from his Broomall home, to stay on top of his treatment plan and renew medications.
But earlier this month Hirst, 70, got a notice from his doctor’s office informing him that it could no longer schedule telemedicine visits for patients like him who have Medicare because of new federal policy changes.
Medicare began covering telemedicine services during the COVID-19 pandemic and has maintained the popular offering through temporary waivers approved by Congress since. But the most recent of those waivers expired at the end of September when Congress failed to reach a budget deal and the government shut down.
The change specifically affects traditional Medicare, which is administered by the government for people 65 and older and some with disabilities. People with Medicare Advantage plans, which are administered by private insurers, should check with their plan.
Some of the Philadelphia area’s leading health systems, including Temple Health and Penn Medicine, have said they are continuing to provide telehealth services to people with Medicare and temporarily suspending billing for those services, with hope that coverage will be reinstated when a budget deal is eventually reached.
But smaller provider practices may not have the luxury of delaying payment for thousands of dollars in services for an indefinite period of time.
With the government shutdown in its third week, Republicans and Democrats seem no closer to reaching a deal. The next vote is scheduled for Monday evening, though no deal is expected.
Another health policy issue — tax credits for people who buy insurance through Affordable Care Act marketplaces, including Pennie in Pennsylvania — has been a major sticking point in the ongoing federal budget debate. Democrats want the enhanced subsidies extended permanently as part of the budget deal, and Republicans have refused, arguing that lawmakers could address the issue separately, before the subsidies expire at the end of the year.
Meanwhile, the waiver’s expiration has left Hirst and others who are covered by Medicare unsure how they will access needed health services.
Telehealth rose in popularity during the COVID-19 pandemic, when people were urged to avoid hospitals unless they were having an emergency and when most routine procedures were canceled.
The approach was especially helpful to older adults and people with disabilities, who needed to stay in contact with doctors for ongoing treatment and who were considered particularly vulnerable to severe illness from COVID-19.
After the pandemic ended, many private insurers, Medicaid, and Medicare permanently adopted telehealth coverage for certain services, such as mental health, because of its popularity during the pandemic.
Medicare has used temporary waivers to continue telehealth coverage for other types of doctors’ visits.
Beyond patient popularity, research has found that telehealth visits can be as effective as in-person visits for certain types of care, such as palliative care for cancer patients, while improving access to patients with transportation challenges.
Philadelphia health systems respond
Philadelphia’s largest health systems said they are optimistic that coverage will be reinstated — either by a new temporary waiver or a permanent change — when Congress reaches a new budget agreement and the shutdown ends.
Temple Health will continue to provide telehealth services to Medicare patients for the next three weeks, in anticipation of Congress reaching a deal.
Penn Medicine has not billed Medicare patients for telehealth visits since the shutdown began and has paused its process for filing claims until the government reopens, a spokesperson said.
“Congress has been vocal in its support of telehealth and its value, and we are hopeful that legislation will be passed to ensure permanent Medicare telehealth coverage and flexibilities once the government reopens,” Penn said in a statement.
Main Line Health has been reaching out to affected patients to help them change previously scheduled virtual visits into in-person appointments or reschedule virtual visits that can be put off.
Jefferson Health did not respond to a request for comment in time for publication.
Patients in limbo
Hirst drives into Philadelphia to see his urologist in person once a year. Every three months, he has a virtual visit to check in and renew prescriptions.
Driving to Philadelphia for every appointment would be inconvenient, but Hirst will probably do it “for now,” he said.
But he worries about older adults and people with disabilities who can’t safely drive to the doctor’s office, and for whom virtual care is a lifeline. They could end up putting themselves or others at risk being on the road when they shouldn’t be. Or they may end up skipping needed care because they don’t have a ride.
A Montgomery County judge sharply rebuked a Dresher woman Monday before sentencing her to 25 to 50 years in state prison in the murder of her son, telling her that she failed in her fundamental duties as a parent by allowing him to waste away to just 59 pounds.
During the hearing before Judge Wendy Rothstein, Sherrilynn Hawkins, 43, wept, calling Tylim Hatchett her “first love” and best friend while pleading guilty to third-degree murder, neglect, and related crimes in his September 2024 death.
She described how the 21-year-old fought all his life to overcome cerebral palsy, blindness and other debilitating medical issues, and required constant care to, among other things, feed himself.
“I made Tylim a promise to keep him safe, and after 21 years, I failed and broke that promise,” Hawkins said. “And I will always be sorry for that.”
Despite Hawkins’ professed remorse, prosecutors said, in the last three weeks of her son’s life, she frequently left him alone in her apartment, sometimes for 24 hours at a time.
All the while, she accepted funding from Aveanna, a home healthcare agency, to work as her son’s primary caregiver. She also included Lorretta Harris, one of her friends, on that payroll to receive a portion of the money to care for him part-time.
In reality, neither woman spent much time with Hatchett and falsified their records with the agency, despite being paid more than $48,000 combined, according to evidence presented in court Monday.
Prosecutors said Tylim Hatchett weighed just 59 pounds when he died last September.
Harris, 49, pleaded guilty to neglect of a care-dependent person earlier this year. Her sentencing is scheduled for December.
In handing down Hawkins’ sentence Monday, Rothstein said Hawkins had betrayed her son’s trust and, even worse, had prioritized scamming Aveanna for financial gain.
“You utilized state funding and let your child die,” she said, telling Hawkins that her conduct was despicable. “And you did all this while driving around in a Mercedes.
“I’d like to say more, but I’m left speechless that a parent could do this.”
Hatchett was found dead Sept. 18, 2024, inside his mother’s apartment at the Residences at the Promenade, according to investigators.Police were called to the apartment by the man’s father. An autopsy found that he was severely malnourished and dehydrated.
Evidence pulled from Hawkins’ phone by detectives showed that in the weeks leading up to her son’s death, she spent the majority of her time with her younger son, whom she brought with her to her boyfriend’s house in Philadelphia, according to the affidavit or probable cause for her arrest.
During this time, she texted Vernon Hatchett, her son’s father, telling him “this might be it” for their son, and later that she would let him know when to make funeral arrangements.
The elder Hatchett, 40, has been charged with neglect, abuse, and conspiracy. However, he has been a fugitive from justice for more than a year and is currently being sought by the U.S. Marshals Service.
Hawkins also lied to concerned family members, saying she had taken her son to a nearby hospital for treatment, according to prosecutors.
But First Assistant District Attorney Ed McCann said Monday that the only time Hawkins sought medical care for her son in 2024 was at the beginning of the year, when he weighed 90 pounds.
Hatchett, McCann said, had lost more than third of his body weight between then and his death and had been “left alone in that apartment to die.”
“It’s horrific. It doesn’t have anything to do with being a parent; it has everything to do with being a human being,” he said. “I think the defendant failed at the fundamentals of being a human being by allowing this to happen.”
Hawkins’ family members and friends took turns Monday imploring Rothstein to be lenient. They told the judge that Hawkins had struggled with fertility issues in her youth and that she had endeavored to keep her son healthy and happy through his many medical issues.
They said that she had frequently asked for assistance in caring for Hatchett and that those pleas had been ignored.
Hawkins’ attorney, Joseph Schultz, said she is a caring and loving mother that had simply become overwhelmed.
“Today, she took responsibility, and she’s going to have to live with this the rest of her life,” Schultz said.
This Willistown Township home, for sale for nearly $2 million, was designed by Robert McElroy and has a wing that was devoted to his wife Annamaria’s art studio.
McElroy, who is credited with building more than 200 homes around the Main Line, designed and built this home for his own family in 1975, according to Marion Dinofa, Compass RE Realtor and modern home specialist.
Tucked far off Rabbit Run Road in Willistown Township, McElroy’s three-bedroom, 3½-bath home features a contemporary design and floor-to-ceiling windows that let in abundant natural light.
“I see a lot of really cool houses, but this one, almost more than any other house, is truly like you’re living in a work of art, between the craftsmanship of the woodworking, the views through the windows that are ever changing with the seasons, and the design of the home itself,” Dinofa said.
Wooden details make Robert McElroy’s former home in Willistown Township unique, said Realtor Marion Dinofa.
Almost every piece of wood in the home was crafted by Horace Hartshaw, who collaborated with the renowned sculptural furniture maker Wharton Esherick. This includes everything from the wood doors to the custom kitchen cabinets to the staircases, including a spiral one at its center.
McElroy wasn’t the only artist who resided in the home: His wife, Annamaria, a painter and sculptor, also left her mark, showcasing her artwork on the walls and using a wing of the home as her studio.
Dinofa noted that the house also includes a detached two-story garage that could be converted into more creative space.
The secluded home features custom wood features that were crafted by renowned artist Horace Hartshaw and lots of windows.
Between Robert’s vision and Annamaria’s artistic touches, their home “was a labor of love,” Dinofa said. “And it’s really well preserved. You can tell it hasn’t changed much.”
Annamaria and Robert lived at the home into their 90s, Dinofa said. They died in 2023 and 2024, respectively. Dinofa said the home is being sold by their daughter, Loretta.
Dinofa said she could see the property being bought by artists or by adventurous young parents who want to raise their children amid nature.
“It would be such a fun place for kids to play outside,” with a stream in the backyard and plenty of space to run around, Dinofa said. “I can only imagine the wildlife that they have viewed from that house.”
The remainder of Cheltenham High’s football season has been canceled as officials deepen an investigation into alleged hazing by team members, which the school district said involves “inappropriate physical contact.”
Superintendent Brian Scriven told families late Sunday night in an email that officials made the call “with a deep sense of regret” as the district extends its investigation.
“We do not condone or tolerate hazing or abuse of any kind in our sports programs or in our schools,” Scriven wrote. “It is our duty and obligation to protect and prioritize student safety and well being, even when we know that our decisions may come with consequences and disappointment.”
Scriven canceled Friday’s home football game — the team was supposed to play Bristol Township’s Harry S. Truman High School at nearby Springfield High, as Cheltenham’s field was unavailable — hours before the game was to begin. At that time, he called it a temporary suspension of the season.
The decision caused shock and anger. Senior Night was scheduled, with recognition ceremonies planned for athletes and members of the cheerleading, pep band, color guard, and drum line programs.
“We are very sensitive to the emotions of those most directly impacted,” Scriven wrote.
Only one game remained on the schedule — Friday at Quakertown.
Officials learned of multiple incidents
News of the alleged hazing came three weeks ago, Scriven said, when someone reported that a student was assaulted in the football locker room.
Officials alerted ChildLine, the state’s abuse-reporting system, which they are legally mandated to notify when alleged abuse happens. They also notified Cheltenham police, which began its own investigation.
At the time, they believed the incident to be isolated, Scriven said in the letter.
But as the investigation developed, “additional information came to light indicating that hazing and/or inappropriate physical conduct may be occurring more broadly in the program. Last Friday, we received additional information, including reports indicating multiple team members engaged in hazing through physical contact.”
That’s when officials decided to temporarily suspend the season and investigate further. The district began working with an external consultant over the weekend, Scriven said, and the investigation remains ongoing.
The police investigation is alsoongoing, said Scriven, who urged anyone with information to contact Cheltenham police. He said the district is cooperating with police and has also been in touch with the Montgomery County District Attorney’s Office.
“Hazing is a very serious and significant issue in school athletic programs and can lead to criminal charges,” Scriven wrote. “We ask for continued patience and respect for our obligation to thoroughly investigate these allegations. We also ask that our school community not rush to judgment against any of our student-athletes or coaches.”
Saving Senior Night
Senior Night will be recreated in some ways, Scriven said — for those football players, cheerleaders, and members of the pep band, drum line, and color guard uninvolved in the alleged hazing.
“We will do our very best to involve students as we develop new plans to honor our seniors,” Scriven said.
“As a parent, educator, and former coach and student-athlete, I am troubled by this matter on numerous levels,” Scriven said. “This decision is not one that was made lightly. I will continue to communicate as openly as possible as we work through this in the coming days and weeks.
“We must move forward as a district and school community committed to student safety and respect, and do all we can to uphold those values.”
The Philadelphia region is once again back in the spotlight at HBO, this time courtesy of Task, from the makers of Mare of Easttown. The show was spotted last year filming everywhere from Center City to Coatesville.
And, boy, did we make the cut.
story continues after advertisement
With the show underway, it's clear that the Philadelphia region is integral to Task. Here, we'll be rounding up all the local spots — sans private homes — we can identify in Task, updating each Sunday after episodes air. Check out the map below to see what locations wound up in the show, and why the series takes us there.
Loading…
Coatesville
High Bridge
This instantly recognizable Coatesville landmark serves as the location for where County Chief Dorsey (Raphael Sbarge) appears to seal Grasso's (Fabien Frankel) fate with the Dark Hearts.
Media
Delaware County Courthouse and Government Center
Courtesy of Delaware County Government Center and Courthouse
Here, Tom (Mark Ruffalo) gives a touching family statement at a court hearing for his son, Ethan (Andrew Russel), in what is the emotional climax of the series. As The Inquirer reported last year, the production took over Courtroom 15 for filming.
West Chester
Stroud Preserve
David Swanson / Staff Photographer
The last we see of Maeve (Emilia Jones) in the series, she is driving past Stroud Preserve's Creek Road parking lot with her cousins in tow. Where they're heading is anybody's guess, but we hope it's somewhere with fewer Dark Hearts members.
story continues after advertisement
That was every location we could spot in this week’s episode. Let us know below if we missed anything.
Otherwise, explore the map of all locations featured to date. Tap onHover overa pin to learn more.
What did we miss?
Did you spot any locations in this week’s episode that we missed? Let us know.
That's it for Task. But rest assured, if HBO decides to focus on Philly again, we'll be back. Until then, see youse later.
Staff Contributors
Design and Development: Sam Morris
Reporting: Nick Vadala
Editing: Emily Babay
First seen in episode
(()=>{var gr=Object.create;var et=Object.defineProperty;var mr=Object.getOwnPropertyDescriptor;var yr=Object.getOwnPropertyNames;var wr=Object.getPrototypeOf,br=Object.prototype.hasOwnProperty;var tt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Mr=(e,t,r,n)=>{if(t&&typeof t==”object”||typeof t==”function”)for(let i of yr(t))!br.call(e,i)&&i!==r&&et(e,i,{get:()=>t[i],enumerable:!(n=mr(t,i))||n.enumerable});return e};var Sr=(e,t,r)=>(r=e!=null?gr(wr(e)):{},Mr(t||!e||!e.__esModule?et(r,”default”,{value:e,enumerable:!0}):r,e));var dt=tt(U=>{var Lr={0:”Jan.”,1:”Feb.”,2:”March”,3:”April”,4:”May”,5:”June”,6:”July”,7:”Aug.”,8:”Sept.”,9:”Oct.”,10:”Nov.”,11:”Dec.”};function lt(e){return e===void 0&&(e=new Date),Lr[e.getMonth()]}var Pr={0:”Jan”,1:”Feb”,2:”Mar”,3:”Apr”,4:”May”,5:”Jun”,6:”Jul”,7:”Aug”,8:”Sep”,9:”Oct”,10:”Nov”,11:”Dec”};function ut(e){return e===void 0&&(e=new Date),Pr[e.getMonth()]}function ne(e){return e==null}function ft(e){return typeof e==”number”&&isFinite(e)}function Se(e){return ft(e)&&Math.floor(e)===e}var kr=[“one”,”two”,”three”,”four”,”five”,”six”,”seven”,”eight”,”nine”],Dr=[“million”,”billion”,”trillion”,”quadrillion”,”quintillion”,”sextillion”,”septillion”,”octillion”,”nonillion”,”decillion”],ct=[“th”,”st”,”nd”,”rd”,”th”,”th”,”th”,”th”,”th”,”th”],Ar=[11,12,13];function ht(e){if(ne(e))return””;var t=+e;return Se(t)?Ar.indexOf(t%100)>-1?ct[0]:ct[t%10]:””}var Er=[“first”,”second”,”third”,”fourth”,”fifth”,”sixth”,”seventh”,”eighth”,”ninth”],$r=new RegExp(/s+([^s]*)s*$/);U.apdate=function(e){return e===void 0&&(e=new Date),lt(e)+” “+e.getDate()+”, “+e.getFullYear()},U.apdatetab=function(e){return e===void 0&&(e=new Date),ut(e)+” “+e.getDate()+”, “+e.getFullYear()},U.apmonth=lt,U.apmonthtab=ut,U.apnumber=function(e){if(ne(e))return””;var t=+e;return Se(t)?t=10?e.toString():kr[t-1]:e.toString()},U.aptime=function(e){e===void 0&&(e=new Date);var t,r,n=e.getHours(),i=e.getMinutes(),o=i===0;if(o){if(n===0)return”midnight”;if(n===12)return”noon”}return n0?n:12):(t=”p.m.”,r=n===12?n:n-12),o?r+” “+t:r+”:”+(i<10?"0"+i:i)+" "+t},U.capfirst=function(e){if(ne(e))return"";var t=String(e);return""+t.charAt(0).toUpperCase()+t.slice(1)},U.intcomma=function(e){if(ne(e))return"";var t,r=+e;return ft(r)?((t=r.toString().split("."))[0]=t[0].replace(/B(?=(d{3})+(?!d))/g,","),t.join(".")):e.toString()},U.intword=function(e){if(ne(e))return"";var t=+e;if(!Se(t))return e.toString();var r=Math.abs(t);if(r<1e6)return e.toString();var n=Math.ceil(Math.log(r+1)/Math.LN10)-1,i=n-n%3,o=t/Math.pow(10,i);return(o=Math.round(10*o)/10)+" "+Dr[Math.floor(i/3)-2]},U.ordinal=function(e,t){if(t===void 0&&(t=!1),ne(e))return"";var r=+e;return Se(r)?t&&r{(function(e,t){typeof je==”object”&&typeof Je<"u"?Je.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis=h?m:””+Array(h+1-p.length).join(u)+m},K={s:O,z:function(m){var h=-m.utcOffset(),u=Math.abs(h),p=Math.floor(u/60),c=u%60;return(h<=0?"+":"-")+O(p,2,"0")+":"+O(c,2,"0")},m:function m(h,u){if(h.date()<u.date())return-m(u,h);var p=12*(u.year()-h.year())+(u.month()-h.month()),c=h.clone().add(p,f),y=u-c<0,w=h.clone().add(p+(y?-1:1),f);return+(-(p+(u-c)/(y?c-w:w-c))||0)},a:function(m){return m1)return m(w[0])}else{var b=h.name;$[b]=h,c=b}return!p&&c&&(C=c),c||!p&&C},D=function(m,h){if(ie(m))return m.clone();var u=typeof h==”object”?h:{};return u.date=m,u.args=arguments,new te(u)},M=K;M.l=oe,M.i=ie,M.w=function(m,h){return D(m,{locale:h.$L,utc:h.$u,x:h.$x,$offset:h.$offset})};var te=function(){function m(u){this.$L=oe(u.locale,null,!0),this.parse(u),this.$x=this.$x||u.x||{},this[I]=!0}var h=m.prototype;return h.parse=function(u){this.$d=function(p){var c=p.date,y=p.utc;if(c===null)return new Date(NaN);if(M.u(c))return new Date;if(c instanceof Date)return new Date(c);if(typeof c==”string”&&!/Z$/i.test(c)){var w=c.match(F);if(w){var b=w[2]-1||0,k=(w[7]||”0″).substring(0,3);return y?new Date(Date.UTC(w[1],b,w[3]||1,w[4]||0,w[5]||0,w[6]||0,k)):new Date(w[1],b,w[3]||1,w[4]||0,w[5]||0,w[6]||0,k)}}return new Date(c)}(u),this.init()},h.init=function(){var u=this.$d;this.$y=u.getFullYear(),this.$M=u.getMonth(),this.$D=u.getDate(),this.$W=u.getDay(),this.$H=u.getHours(),this.$m=u.getMinutes(),this.$s=u.getSeconds(),this.$ms=u.getMilliseconds()},h.$utils=function(){return M},h.isValid=function(){return this.$d.toString()!==x},h.isSame=function(u,p){var c=D(u);return this.startOf(p)<=c&&c<=this.endOf(p)},h.isAfter=function(u,p){return D(u)<this.startOf(p)},h.isBefore=function(u,p){return this.endOf(p)<D(u)},h.$g=function(u,p,c){return M.u(u)?this[p]:this.set(c,u)},h.unix=function(){return Math.floor(this.valueOf()/1e3)},h.valueOf=function(){return this.$d.getTime()},h.startOf=function(u,p){var c=this,y=!!M.u(p)||p,w=M.p(u),b=function(j,H){var J=M.w(c.$u?Date.UTC(c.$y,H,j):new Date(c.$y,H,j),c);return y?J:J.endOf(a)},k=function(j,H){return M.w(c.toDate()[j].apply(c.toDate("s"),(y?[0,0,0,0]:[23,59,59,999]).slice(H)),c)},A=this.$W,E=this.$M,z=this.$D,X="set"+(this.$u?"UTC":"");switch(w){case l:return y?b(1,0):b(31,11);case f:return y?b(1,E):b(0,E+1);case d:var q=this.$locale().weekStart||0,Q=(A<q?A+7:A)-q;return b(y?z-Q:z+(6-Q),E);case a:case v:return k(X+"Hours",0);case s:return k(X+"Minutes",1);case o:return k(X+"Seconds",2);case i:return k(X+"Milliseconds",3);default:return this.clone()}},h.endOf=function(u){return this.startOf(u,!1)},h.$set=function(u,p){var c,y=M.p(u),w="set"+(this.$u?"UTC":""),b=(c={},c[a]=w+"Date",c[v]=w+"Date",c[f]=w+"Month",c[l]=w+"FullYear",c[s]=w+"Hours",c[o]=w+"Minutes",c[i]=w+"Seconds",c[n]=w+"Milliseconds",c)[y],k=y===a?this.$D+(p-this.$W):p;if(y===f||y===l){var A=this.clone().set(v,1);A.$d[b](k),A.init(),this.$d=A.set(v,Math.min(this.$D,A.daysInMonth())).$d}else b&&this.$d[b](k);return this.init(),this},h.set=function(u,p){return this.clone().$set(u,p)},h.get=function(u){return this[M.p(u)]()},h.add=function(u,p){var c,y=this;u=Number(u);var w=M.p(p),b=function(E){var z=D(y);return M.w(z.date(z.date()+Math.round(E*u)),y)};if(w===f)return this.set(f,this.$M+u);if(w===l)return this.set(l,this.$y+u);if(w===a)return b(1);if(w===d)return b(7);var k=(c={},c[o]=t,c[s]=r,c[i]=e,c)[w]||1,A=this.$d.getTime()+u*k;return M.w(A,this)},h.subtract=function(u,p){return this.add(-1*u,p)},h.format=function(u){var p=this,c=this.$locale();if(!this.isValid())return c.invalidDate||x;var y=u||"YYYY-MM-DDTHH:mm:ssZ",w=M.z(this),b=this.$H,k=this.$m,A=this.$M,E=c.weekdays,z=c.months,X=c.meridiem,q=function(H,J,se,ae){return H&&(H[J]||H(p,y))||se[J].slice(0,ae)},Q=function(H){return M.s(b%12||12,H,"0")},j=X||function(H,J,se){var ae=H{window.addEventListener(“resize”,()=>{nt(),$e()}),window.addEventListener(“scroll”,()=>{$e()})},nt=()=>{xr.setAttribute(“viewBox”,`0 0 ${window.innerWidth} ${window.innerHeight}`)},$e=()=>{let e=document.querySelector(“.js-steps”).dataset.current;re!==e&&(re=e,st()),!re||re==”all”?ot():it()},it=()=>{if(re){let e=document.querySelector(`.js-steps-step[data-step=”${re}”] .js-steps-pin`),t=document.querySelector(“.js-map-location.is-current .js-map-pin”);if(t){let r=e.getBoundingClientRect(),n=t.getBoundingClientRect(),o=document.querySelector(“.js-steps”).getBoundingClientRect(),s=o.top>0?o.top:0,a=r.width/2;ce.setAttribute(“y1”,r.top+a-s),ce.setAttribute(“x1”,r.left+a),ce.setAttribute(“y2”,n.top+a-s),ce.setAttribute(“x2”,n.left+a)}}},ot=()=>{ce.classList.add(“is-hidden”)},Cr=()=>{ce.classList.remove(“is-hidden”)},st=()=>{ot(),clearTimeout(rt),rt=setTimeout(()=>{re!==void 0&&re!==”all”&&(it(),Cr())},1200)},at={init:()=>{Tr(),nt(),$e()},onChange:()=>{st()}};var Wn=dt();var ze=e=>{if(e)return e.trim().toLowerCase().normalize(“NFD”).replace(/[u0300-u036f]/g,””).replace(/[^A-Z0-9 ]/gi,””).trim().replace(/ /g,”-“)};var pt=()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);var pe=(e,t=null,r=null)=>{r||(r=document.querySelector(“head”));let n=document.createElement(“script”);n.type=”text/javascript”,n.src=e,t&&(n.onload=t),r.appendChild(n)},vt=()=>(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.state===”Subscribed”,gt=()=>{let t=(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.state;return window.location.host.includes(“zzz-systest”)||window.location.host.includes(“pmn.arcpublishing.com”)||window.location.host.includes(“stage.fusion.inquirer.com”)||typeof t>”u”},mt=()=>{let t=(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.hasAdsFreeReading;return!!(t&&t==1)},Be=()=>window.location.host.includes(“localhost”),xe=(e,t=””)=>{let r=document.querySelector(`template#${e}`);if(!r||!(r instanceof HTMLTemplateElement))return console.log(`Couldn’t find .`),null;let n=r.content.cloneNode(!0).childNodes;if(n.length==0)return console.log(`Template ${r} has no children, returning null.`),null;n.length>1&&console.log(`Template ${r} has multiple children, only returning the first.`);let i=n[0];return i.setAttribute(“data-id”,t),i},Te=(e,t)=>{let r=[…e.querySelectorAll(“[data-populate]”)];e.dataset.populate&&r.unshift(e);let n=r.filter(i=>{let o=i.closest(“[data-populate-context]”);return!o||o==e});for(let i of n){let s=i.dataset.populate.trim().split(/s*,s*/).map(a=>a.split(/s*:s*/));for(let[a,d]of s){let g=a.split(“.”).reduce((x,F)=>x?.[F],t),l=g==null||g==null,v=d?.split(/s+/)||[“innerHTML”];for(let x of v)x.startsWith(“.”)&&i.classList.toggle(x.substring(1),l?!1:g),!l&&(x==”innerHTML”?i.innerHTML=g:x.startsWith(“@”)?i.setAttribute(x.substring(1),g):x.startsWith(“–“)&&i.style.setProperty(x,g))}}};var zr=()=>{mt()&&document.querySelectorAll(“.js-adbox”).forEach(t=>{t.classList.add(“is-hidden”)})},yt={init:()=>{zr()}};var wt=async(e,t)=>(await fetch(`https://inq-junto.herokuapp.com/${e}`,{method:”POST”,headers:{“Content-Type”:”application/json”},mode:”cors”,body:JSON.stringify(t)})).json(),Fe=()=>{let t=document.querySelector(“.js-inno”).dataset.junto;if(t)return t;throw new Error(“no junto id found”)},bt={getDefaultId:()=>Fe(),vote:(e,t=Fe())=>{wt(“vote”,{poll:t,ballot:e})},results:async(e=Fe())=>await wt(“results”,{poll:e})};var Br=()=>{document.querySelectorAll(“.js-form”).forEach(e=>{e.addEventListener(“submit”,t=>{t.preventDefault(),Fr(e)})})},Fr=e=>{let t=e.dataset.id,r=new FormData(e),n=new Object;for(let i of r)n[`form-${t}-${i[0]}`]=i[1];bt.vote({…n,[`form-${t}`]:Object.values(n).join(“///”)}),e.classList.add(“has-submitted”),e.querySelector(“.js-button-label”).textContent=”Form submitted!”,setTimeout(()=>{e.querySelector(“.js-form-button”).disabled=!0},500)},Mt={init:()=>{Br()}};var le,St,Hr=()=>{le=document.getElementById(“js-inno-toast”)},Or=e=>{if(!le)return;le.innerHTML=e,le.classList.add(“inno-toast–active”);let t=()=>{le.addEventListener(“transitionend”,Ir,{once:!0}),le.classList.remove(“inno-toast–active”)};clearTimeout(St),St=setTimeout(t,5e3)},Ir=()=>{le.innerHTML=””},ue={init:()=>{Hr()},showToast:Or};var Ce,xt=!1,Rr=async()=>new Promise(e=>{setTimeout(()=>{console.log(“simulating createShareLink for localhost”),e(“https://inquirer.com/interactives”),Ur()},100)}),Ur=()=>{let e=document.querySelector(“.js-gift-toast-receiver”);!e||!(e instanceof HTMLElement)||setTimeout(()=>{let t=e?.querySelector(“span”);t&&(t.innerHTML=”Gift link copied to clipboard“)},20)},qr=()=>{let e=window.services?.createShareLink;e&&(Ce=e),Be()&&(Ce=Rr),Ce&&Nr()},Gr=async e=>{let t=”text/plain”,r=async()=>{try{return await Ce(window.location.pathname)}catch{e.dataset.state=”error”,ue.showToast(“Hmm, we couldn’t generate a gift link…”)}},n=new ClipboardItem({[t]:r()});await navigator.clipboard.write([n]).catch(i=>{console.log(i),ue.showToast(“Couldn’t copy to clipboard, try again?”),e.dataset.state=”error”}),ue.showToast(“Gift link copied to clipboard!”),e.dataset.state=”complete”},Nr=()=>{document.querySelectorAll(“.js-gift”).forEach(t=>{(vt()||Be()||gt())&&t.classList.add(“is-available”)}),document.querySelectorAll(“.js-gift-button”).forEach(t=>{t instanceof HTMLButtonElement&&t.addEventListener(“click”,()=>{t.classList.contains(“disabled”)||(t.dataset.state=”loading”,xt=!0,Gr(t),setTimeout(()=>{t.dataset.state=”ready”},2e3))})});let e=document.querySelector(“.js-gift-toast-receiver”);!e||!(e instanceof HTMLElement)||Wr(e)},Wr=e=>{new MutationObserver(r=>{for(let n of r){let i=[…n.addedNodes].at(0);if(!(i instanceof HTMLElement))return;xt&&ue.showToast(i.outerHTML)}}).observe(e,{subtree:!0,childList:!0})},Tt={init:()=>{qr()}};var Zr=()=>{window.addEventListener(“message”,e=>{if(e.data[“datawrapper-height”]){let t=e.data[“datawrapper-height”];for(let r in t)document.querySelector(`#datawrapper-chart-${r}`).setAttribute(“height”,t[r])}})},jr=()=>{document.querySelectorAll(“.js-datawrapper-graphic”).forEach(e=>{pe(`https://datawrapper.dwcdn.net/${e.dataset.id}/embed.js`,null,e)})},Jr=()=>{window.addEventListener(“message”,e=>{let t=e.data;document.querySelectorAll(`iframe[src*=”${t.id}”]`).forEach(n=>{n.style.height=`${t.height}px`})},!1)},Yr=()=>{document.querySelectorAll(“.js-pym-graphic”).forEach(e=>{if(typeof window{new window.pym.Parent(e.id,e.dataset.iframe)};typeof window.pym>”u”?pe(“https://pym.nprapps.org/pym.v1.min.js”,t):t()}})},Ct={init:()=>{Zr(),jr(),Yr(),Jr()}};var ve,Vr=()=>{document.querySelectorAll(“.js-hover”).forEach(e=>{e.addEventListener(“click”,()=>{Lt(e)}),e.addEventListener(“mouseenter”,()=>{Lt(e)}),e.addEventListener(“mouseout”,()=>{Pt(e)})}),window.addEventListener(“scroll”,()=>{ve!==null&&Kr()})},Kr=()=>{(ve>window.scrollY+100||ve{Pt(e)})},Lt=e=>{e.classList.add(“is-visible”),ve=window.scrollY},Pt=e=>{e.classList.remove(“is-visible”),ve=null},kt={init:()=>{Vr()}};var N=Uint8Array,he=Uint16Array,Xr=Int32Array,Dt=new N([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),At=new N([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Qr=new N([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Et=function(e,t){for(var r=new he(31),n=0;n<31;++n)r[n]=t+=1<<e[n-1];for(var i=new Xr(r[30]),n=1;n<30;++n)for(var o=r[n];o<r[n+1];++o)i[o]=o-r[n]<<5|n;return{b:r,r:i}},$t=Et(Dt,2),zt=$t.b,_r=$t.r;zt[28]=258,_r[258]=28;var Bt=Et(At,0),en=Bt.b,ii=Bt.r,Ie=new he(32768);for(S=0;S>1|(S&21845)<>2|(_&13107)<>4|(_&3855)<>8|(_&255)<>1;var _,S,ge=function(e,t,r){for(var n=e.length,i=0,o=new he(t);i<n;++i)e[i]&&++o[e[i]-1];var s=new he(t);for(i=1;i<t;++i)s[i]=s[i-1]+o[i-1]<<1;var a;if(r){a=new he(1<<t);var d=15-t;for(i=0;i<n;++i)if(e[i])for(var f=i<<4|e[i],g=t-e[i],l=s[e[i]-1]++<<g,v=l|(1<<g)-1;l>d]=f}else for(a=new he(n),i=0;i>15-e[i]);return a},me=new N(288);for(S=0;S<144;++S)me[S]=8;var S;for(S=144;S<256;++S)me[S]=9;var S;for(S=256;S<280;++S)me[S]=7;var S;for(S=280;S<288;++S)me[S]=8;var S,Ft=new N(32);for(S=0;S<32;++S)Ft[S]=5;var S;var tn=ge(me,9,1);var rn=ge(Ft,5,1),He=function(e){for(var t=e[0],r=1;rt&&(t=e[r]);return t},Y=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<>(t&7)&r},Oe=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<>(t&7)},nn=function(e){return(e+7)/8|0},on=function(e,t,r){return(t==null||te.length)&&(r=e.length),new N(e.subarray(t,r))};var sn=[“unexpected EOF”,”invalid block type”,”invalid length/literal”,”invalid distance”,”stream finished”,”no stream handler”,,”no callback”,”invalid UTF-8 data”,”extra field too long”,”date not in range 1980-2099″,”filename too long”,”stream finishing”,”invalid zip data”],G=function(e,t,r){var n=new Error(t||sn[e]);if(n.code=e,Error.captureStackTrace&&Error.captureStackTrace(n,G),!r)throw n;return n},Re=function(e,t,r,n){var i=e.length,o=n?n.length:0;if(!i||t.f&&!t.l)return r||new N(0);var s=!r,a=s||t.i!=2,d=t.i;s&&(r=new N(i*3));var f=function(ae){var Qe=r.length;if(ae>Qe){var _e=new N(Math.max(Qe*2,ae));_e.set(r),r=_e}},g=t.f||0,l=t.p||0,v=t.b||0,x=t.l,F=t.d,P=t.m,V=t.n,O=i*8;do{if(!x){g=Y(e,l,1);var K=Y(e,l+1,3);if(l+=3,K)if(K==1)x=tn,F=rn,P=9,V=5;else if(K==2){var ie=Y(e,l,31)+257,oe=Y(e,l+10,15)+4,D=ie+Y(e,l+5,31)+1;l+=14;for(var M=new N(D),te=new N(19),R=0;R<oe;++R)te[Qr[R]]=Y(e,l+R*3,7);l+=oe*3;for(var m=He(te),h=(1<<m)-1,u=ge(te,m,1),R=0;R>4;if(C<16)M[R++]=C;else{var c=0,y=0;for(C==16?(y=3+Y(e,l,3),l+=2,c=M[R-1]):C==17?(y=3+Y(e,l,7),l+=3):C==18&&(y=11+Y(e,l,127),l+=7);y–;)M[R++]=c}}var w=M.subarray(0,ie),b=M.subarray(ie);P=He(w),V=He(b),x=ge(w,P,1),F=ge(b,V,1)}else G(1);else{var C=nn(l)+4,$=e[C-4]|e[C-3]<i){d&&G(0);break}a&&f(v+$),r.set(e.subarray(C,I),v),t.b=v+=$,t.p=l=I*8,t.f=g;continue}if(l>O){d&&G(0);break}}a&&f(v+131072);for(var k=(1<<P)-1,A=(1<>4;if(l+=c&15,l>O){d&&G(0);break}if(c||G(2),z264){var R=z-257,q=Dt[R];X=Y(e,l,(1<>4;Q||G(3),l+=Q&15;var b=en[j];if(j>3){var q=At[j];b+=Oe(e,l)&(1<O){d&&G(0);break}a&&f(v+131072);var H=v+X;if(v<b){var J=o-b,se=Math.min(b,H);for(J+v<0&&G(3);v<se;++v)r[v]=n[J+v]}for(;v<H;++v)r[v]=r[v-b]}}t.l=x,t.p=E,t.b=v,t.f=g,x&&(g=1,t.m=P,t.d=F,t.n=V)}while(!g);return v!=r.length&&s?on(r,0,v):r.subarray(0,v)};var an=new N(0);var ln=function(e){(e[0]!=31||e[1]!=139||e[2]!=8)&&G(6,"invalid gzip data");var t=e[3],r=10;t&4&&(r+=(e[10]|e[11]<>3&1)+(t>>4&1);n>0;n-=!e[r++]);return r+(t&2)},un=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<>>0};var cn=function(e,t){return((e[0]&15)!=8||e[0]>>4>7||(e[0]<>5&1)==+!t&&G(6,”invalid zlib data: “+(e[1]&32?”need”:”unexpected”)+” dictionary”),(e[1]>>3&4)+2};function hn(e,t){return Re(e,{i:2},t&&t.out,t&&t.dictionary)}function fn(e,t){var r=ln(e);return r+8>e.length&&G(6,”invalid gzip data”),Re(e.subarray(r,-8),{i:2},t&&t.out||new N(un(e)),t&&t.dictionary)}function dn(e,t){return Re(e.subarray(cn(e,t&&t.dictionary),-4),{i:2},t&&t.out,t&&t.dictionary)}function Ht(e,t){return e[0]==31&&e[1]==139&&e[2]==8?fn(e,t):(e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31?hn(e,t):dn(e,t)}var pn=typeof TextDecodergn(e,”name”,{value:t,configurable:!0}),B=(e,t,r)=>new Promise((n,i)=>{var o=d=>{try{a(r.next(d))}catch(f){i(f)}},s=d=>{try{a(r.throw(d))}catch(f){i(f)}},a=d=>d.done?n(d.value):Promise.resolve(d.value).then(o,s);a((r=r.apply(e,t)).next())}),ai=T((e,t)=>{let r=!1,n=””,i=L.GridLayer.extend({createTile:T((o,s)=>{let a=document.createElement(“img”),d=new AbortController,f=d.signal;return a.cancel=()=>{d.abort()},r||(e.getHeader().then(g=>{g.tileType===1?console.error(“Error: archive contains MVT vector tiles, but leafletRasterLayer is for displaying raster tiles. See https://github.com/protomaps/PMTiles/tree/main/js for details.”):g.tileType===2?n=”image/png”:g.tileType===3?n=”image/jpeg”:g.tileType===4?n=”image/webp”:g.tileType===5&&(n=”image/avif”)}),r=!0),e.getZxy(o.z,o.x,o.y,f).then(g=>{if(g){let l=new Blob([g.data],{type:n}),v=window.URL.createObjectURL(l);a.src=v,a.cancel=void 0,s(void 0,a)}}).catch(g=>{if(g.name!==”AbortError”)throw g}),a},”createTile”),_removeTile:T(function(o){let s=this._tiles[o];s&&(s.el.cancel&&s.el.cancel(),s.el.width=0,s.el.height=0,s.el.deleted=!0,L.DomUtil.remove(s.el),delete this._tiles[o],this.fire(“tileunload”,{tile:s.el,coords:this._keyToTileCoords(o)}))},”_removeTile”)});return new i(t)},”leafletRasterLayer”),mn=T(e=>(t,r)=>{if(r instanceof AbortController)return e(t,r);let n=new AbortController;return e(t,n).then(i=>r(void 0,i.data,i.cacheControl||””,i.expires||””),i=>r(i)).catch(i=>r(i)),{cancel:T(()=>n.abort(),”cancel”)}},”v3compat”),Ot=class{constructor(t){this.tilev4=T((r,n)=>B(this,null,function*(){if(r.type===”json”){let x=r.url.substr(10),F=this.tiles.get(x);if(F||(F=new Le(x),this.tiles.set(x,F)),this.metadata)return{data:yield F.getTileJson(r.url)};let P=yield F.getHeader();return(P.minLon>=P.maxLon||P.minLat>=P.maxLat)&&console.error(`Bounds of PMTiles archive ${P.minLon},${P.minLat},${P.maxLon},${P.maxLat} are not valid.`),{data:{tiles:[`${r.url}/{z}/{x}/{y}`],minzoom:P.minZoom,maxzoom:P.maxZoom,bounds:[P.minLon,P.minLat,P.maxLon,P.maxLat]}}}let i=new RegExp(/pmtiles://(.+)/(d+)/(d+)/(d+)/),o=r.url.match(i);if(!o)throw new Error(“Invalid PMTiles protocol URL”);let s=o[1],a=this.tiles.get(s);a||(a=new Le(s),this.tiles.set(s,a));let d=o[2],f=o[3],g=o[4],l=yield a.getHeader(),v=yield a?.getZxy(+d,+f,+g,n.signal);if(v)return{data:new Uint8Array(v.data),cacheControl:v.cacheControl,expires:v.expires};if(l.tileType===1){if(this.errorOnMissingTile)throw new Error(“Tile not found.”);return{data:new Uint8Array}}return{data:null}}),”tilev4″),this.tile=mn(this.tilev4),this.tiles=new Map,this.metadata=t?.metadata||!1,this.errorOnMissingTile=t?.errorOnMissingTile||!1}add(t){this.tiles.set(t.source.getKey(),t)}get(t){return this.tiles.get(t)}};T(Ot,”Protocol”);var It=Ot;function Rt(e,t){return(t>>>0)*4294967296+(e>>>0)}T(Rt,”toNum”);function Ut(e,t){let r=t.buf,n=r[t.pos++],i=(n&112)>>4;if(n<128||(n=r[t.pos++],i|=(n&127)<<3,n<128)||(n=r[t.pos++],i|=(n&127)<<10,n<128)||(n=r[t.pos++],i|=(n&127)<<17,n<128)||(n=r[t.pos++],i|=(n&127)<<24,n<128)||(n=r[t.pos++],i|=(n&1)<<31,n<128))return Rt(e,i);throw new Error("Expected varint not more than 10 bytes")}T(Ut,"readVarintRemainder");function fe(e){let t=e.buf,r=t[e.pos++],n=r&127;return r<128||(r=t[e.pos++],n|=(r&127)<<7,r<128)||(r=t[e.pos++],n|=(r&127)<<14,r<128)||(r=t[e.pos++],n|=(r&127)<<21,r<128)?n:(r=t[e.pos],n|=(r&15)<<28,Ut(n,e))}T(fe,"readVarint");function qe(e,t,r,n){if(n===0){r===1&&(t[0]=e-1-t[0],t[1]=e-1-t[1]);let i=t[0];t[0]=t[1],t[1]=i}}T(qe,"rotate");function qt(e,t){let r=ye(2,e),n=t,i=t,o=t,s=[0,0],a=1;for(;a26)throw new Error(“Tile zoom level exceeds max safe number limit (26)”);if(t>ye(2,e)-1||r>ye(2,e)-1)throw new Error(“tile x/y outside zoom level bounds”);let n=yn[e],i=ye(2,e),o=0,s=0,a=0,d=[t,r],f=i/2;for(;f>0;)o=(d[0]&f)>0?1:0,s=(d[1]&f)>0?1:0,a+=f*f*(3*o^s),qe(f,d,o,s),f=f/2;return n+a}T(Gt,”zxyToTileId”);function wn(e){let t=0,r=0;for(let n=0;n<27;n++){let i=(1<<n)*(1<e)return qt(n,e-t);t+=i}throw new Error(“Tile zoom level exceeds max safe number limit (26)”)}T(wn,”tileIdToZxy”);var bn=(e=>(e[e.Unknown=0]=”Unknown”,e[e.None=1]=”None”,e[e.Gzip=2]=”Gzip”,e[e.Brotli=3]=”Brotli”,e[e.Zstd=4]=”Zstd”,e))(bn||{});function Pe(e,t){return B(this,null,function*(){if(t===1||t===0)return e;if(t===2){if(typeof globalThis.DecompressionStream>”u”)return Ht(new Uint8Array(e));let r=new Response(e).body;if(!r)throw new Error(“Failed to read response stream”);let n=r.pipeThrough(new globalThis.DecompressionStream(“gzip”));return new Response(n).arrayBuffer()}throw new Error(“Compression method not supported”)})}T(Pe,”defaultDecompress”);var Mn=(e=>(e[e.Unknown=0]=”Unknown”,e[e.Mvt=1]=”Mvt”,e[e.Png=2]=”Png”,e[e.Jpeg=3]=”Jpeg”,e[e.Webp=4]=”Webp”,e[e.Avif=5]=”Avif”,e))(Mn||{});function Nt(e){return e===1?”.mvt”:e===2?”.png”:e===3?”.jpg”:e===4?”.webp”:e===5?”.avif”:””}T(Nt,”tileTypeExt”);var Sn=127;function Wt(e,t){let r=0,n=e.length-1;for(;r>1,o=t-e[i].tileId;if(o>0)r=i+1;else if(o=0&&(e[n].runLength===0||t-e[n].tileId-1,o=/Chrome|Chromium|Edg|OPR|Brave/.test(n);this.chromeWindowsNoCache=!1,i&&o&&(this.chromeWindowsNoCache=!0)}getKey(){return this.url}setHeaders(t){this.customHeaders=t}getBytes(t,r,n,i){return B(this,null,function*(){let o,s;n?s=n:(o=new AbortController,s=o.signal);let a=new Headers(this.customHeaders);a.set(“range”,`bytes=${t}-${t+r-1}`);let d;this.mustReload?d=”reload”:this.chromeWindowsNoCache&&(d=”no-store”);let f=yield fetch(this.url,{signal:s,cache:d,headers:a});if(t===0&&f.status===416){let v=f.headers.get(“Content-Range”);if(!v||!v.startsWith(“bytes */”))throw new Error(“Missing content-length on 416 response”);let x=+v.substr(8);f=yield fetch(this.url,{signal:s,cache:”reload”,headers:{range:`bytes=0-${x-1}`}})}let g=f.headers.get(“Etag”);if(g!=null&&g.startsWith(“W/”)&&(g=null),f.status===416||i&&g&&g!==i)throw this.mustReload=!0,new Ue(`Server returned non-matching ETag ${i} after one retry. Check browser extensions and servers for issues that may affect correct ETag headers.`);if(f.status>=300)throw new Error(`Bad response code: ${f.status}`);let l=f.headers.get(“Content-Length”);if(f.status===200&&(!l||+l>r))throw o&&o.abort(),new Error(“Server returned no content-length header or content-length exceeding request. Check that your storage backend supports HTTP Byte Serving.”);return{data:yield f.arrayBuffer(),etag:g||void 0,cacheControl:f.headers.get(“Cache-Control”)||void 0,expires:f.headers.get(“Expires”)||void 0}})}};T(Zt,”FetchSource”);var Tn=Zt;function Z(e,t){let r=e.getUint32(t+4,!0),n=e.getUint32(t+0,!0);return r*ye(2,32)+n}T(Z,”getUint64″);function jt(e,t){let r=new DataView(e),n=r.getUint8(7);if(n>3)throw new Error(`Archive is spec version ${n} but this library supports up to spec version 3`);return{specVersion:n,rootDirectoryOffset:Z(r,8),rootDirectoryLength:Z(r,16),jsonMetadataOffset:Z(r,24),jsonMetadataLength:Z(r,32),leafDirectoryOffset:Z(r,40),leafDirectoryLength:Z(r,48),tileDataOffset:Z(r,56),tileDataLength:Z(r,64),numAddressedTiles:Z(r,72),numTileEntries:Z(r,80),numTileContents:Z(r,88),clustered:r.getUint8(96)===1,internalCompression:r.getUint8(97),tileCompression:r.getUint8(98),tileType:r.getUint8(99),minZoom:r.getUint8(100),maxZoom:r.getUint8(101),minLon:r.getInt32(102,!0)/1e7,minLat:r.getInt32(106,!0)/1e7,maxLon:r.getInt32(110,!0)/1e7,maxLat:r.getInt32(114,!0)/1e7,centerZoom:r.getUint8(118),centerLon:r.getInt32(119,!0)/1e7,centerLat:r.getInt32(123,!0)/1e7,etag:t}}T(jt,”bytesToHeader”);function Ge(e){let t={buf:new Uint8Array(e),pos:0},r=fe(t),n=[],i=0;for(let o=0;o<r;o++){let s=fe(t);n.push({tileId:i+s,offset:0,length:0,runLength:1}),i+=s}for(let o=0;o<r;o++)n[o].runLength=fe(t);for(let o=0;o<r;o++)n[o].length=fe(t);for(let o=0;o0?n[o].offset=n[o-1].offset+n[o-1].length:n[o].offset=s-1}return n}T(Ge,”deserializeIndex”);var Jt=class extends Error{};T(Jt,”EtagMismatch”);var Ue=Jt;function Ne(e,t){return B(this,null,function*(){let r=yield e.getBytes(0,16384);if(new DataView(r.data).getUint16(0,!0)!==19792)throw new Error(“Wrong magic number for PMTiles archive”);let n=r.data.slice(0,Sn),i=jt(n,r.etag),o=r.data.slice(i.rootDirectoryOffset,i.rootDirectoryOffset+i.rootDirectoryLength),s=`${e.getKey()}|${i.etag||””}|${i.rootDirectoryOffset}|${i.rootDirectoryLength}`,a=Ge(yield t(o,i.internalCompression));return[i,[s,a.length,a]]})}T(Ne,”getHeaderAndRoot”);function We(e,t,r,n,i){return B(this,null,function*(){let o=yield e.getBytes(r,n,void 0,i.etag),s=yield t(o.data,i.internalCompression),a=Ge(s);if(a.length===0)throw new Error(“Empty directory is invalid”);return a})}T(We,”getDirectory”);var Cn=class{constructor(t=100,r=!0,n=Pe){this.cache=new Map,this.maxCacheEntries=t,this.counter=1,this.decompress=n}getHeader(t){return B(this,null,function*(){let r=t.getKey(),n=this.cache.get(r);if(n)return n.lastUsed=this.counter++,n.data;let i=yield Ne(t,this.decompress);return i[1]&&this.cache.set(i[1][0],{lastUsed:this.counter++,data:i[1][2]}),this.cache.set(r,{lastUsed:this.counter++,data:i[0]}),this.prune(),i[0]})}getDirectory(t,r,n,i){return B(this,null,function*(){let o=`${t.getKey()}|${i.etag||””}|${r}|${n}`,s=this.cache.get(o);if(s)return s.lastUsed=this.counter++,s.data;let a=yield We(t,this.decompress,r,n,i);return this.cache.set(o,{lastUsed:this.counter++,data:a}),this.prune(),a})}prune(){if(this.cache.size>this.maxCacheEntries){let t=1/0,r;this.cache.forEach((n,i)=>{n.lastUsed{Ne(t,this.decompress).then(a=>{a[1]&&this.cache.set(a[1][0],{lastUsed:this.counter++,data:Promise.resolve(a[1][2])}),o(a[0]),this.prune()}).catch(a=>{s(a)})});return this.cache.set(r,{lastUsed:this.counter++,data:i}),i})}getDirectory(t,r,n,i){return B(this,null,function*(){let o=`${t.getKey()}|${i.etag||””}|${r}|${n}`,s=this.cache.get(o);if(s)return s.lastUsed=this.counter++,yield s.data;let a=new Promise((d,f)=>{We(t,this.decompress,r,n,i).then(g=>{d(g),this.prune()}).catch(g=>{f(g)})});return this.cache.set(o,{lastUsed:this.counter++,data:a}),a})}prune(){if(this.cache.size>=this.maxCacheEntries){let t=1/0,r;this.cache.forEach((n,i)=>{n.lastUsed{this.getHeader(t).then(s=>{i(),this.invalidations.delete(r)}).catch(s=>{o(s)})});this.invalidations.set(r,n)})}};T(Yt,”SharedPromiseCache”);var Ln=Yt,Vt=class{constructor(t,r,n){typeof t==”string”?this.source=new Tn(t):this.source=t,n?this.decompress=n:this.decompress=Pe,r?this.cache=r:this.cache=new Ln}getHeader(){return B(this,null,function*(){return yield this.cache.getHeader(this.source)})}getZxyAttempt(t,r,n,i){return B(this,null,function*(){let o=Gt(t,r,n),s=yield this.cache.getHeader(this.source);if(ts.maxZoom)return;let a=s.rootDirectoryOffset,d=s.rootDirectoryLength;for(let f=0;f0){let v=yield this.source.getBytes(s.tileDataOffset+l.offset,l.length,i,s.etag);return{data:yield this.decompress(v.data,s.tileCompression),cacheControl:v.cacheControl,expires:v.expires}}a=s.leafDirectoryOffset+l.offset,d=l.length}else return}throw new Error(“Maximum directory depth exceeded”)})}getZxy(t,r,n,i){return B(this,null,function*(){try{return yield this.getZxyAttempt(t,r,n,i)}catch(o){if(o instanceof Ue)return this.cache.invalidate(this.source),yield this.getZxyAttempt(t,r,n,i);throw o}})}getMetadataAttempt(){return B(this,null,function*(){let t=yield this.cache.getHeader(this.source),r=yield this.source.getBytes(t.jsonMetadataOffset,t.jsonMetadataLength,void 0,t.etag),n=yield this.decompress(r.data,t.internalCompression),i=new TextDecoder(“utf-8″);return JSON.parse(i.decode(n))})}getMetadata(){return B(this,null,function*(){try{return yield this.getMetadataAttempt()}catch(t){if(t instanceof Ue)return this.cache.invalidate(this.source),yield this.getMetadataAttempt();throw t}})}getTileJson(t){return B(this,null,function*(){let r=yield this.getHeader(),n=yield this.getMetadata(),i=Nt(r.tileType);return{tilejson:”3.0.0″,scheme:”xyz”,tiles:[`${t}/{z}/{x}/{y}${i}`],vector_layers:n.vector_layers,attribution:n.attribution,description:n.description,name:n.name,version:n.version,bounds:[r.minLon,r.minLat,r.maxLon,r.maxLat],center:[r.centerLon,r.centerLat,r.centerZoom],minzoom:r.minZoom,maxzoom:r.maxZoom}})}};T(Vt,”PMTiles”);var Le=Vt;var we=[{name:”Mirenda Center at Neumann University”,town:”Aston Township”,coordinates:”39.87518295957942, -75.44287264018742″,photo:”CUFT75EQJFCNXF6TBJWB47IZBE”,description:”Tom (Mark Ruffalo) mans a table at a job fair here while temporarily working as a recruiter for the FBI. Next to his station, the distinctive pillars of the centeru2019s atrium are visible.”,episode:”1″},{name:”Rita’s Italian Ice & Frozen Custard”,town:”Collingdale”,coordinates:”39.91438144966683, -75.27198755476991″,photo:”PVN6FY7AZVH57NJJ5QZMPSORVQ”,description:”Emily (Silvia Dionicio), Tomu2019s daughter, works her part-time job here. In the scene where it is shown, Tom orders a black cherry water ice, a flavor choice of which we approve.”,episode:”1″},{name:”Former Philadelphia Police Department Headquarters”,town:”Philadelphia”,coordinates:”39.95454212611587, -75.15196309318775″,photo:”L7RTCVGETVB6BGP3OI6FGI75II”,description:”We get a brief glimpse of the exterior of the former Philadelphia police headquarters, colloquially known as the Roundhouse. Whether the interior is the same building is unclear, but in the show, this appears to be where the FBIu2019s Philly field office is located.”,episode:”1″},{name:”Bangor Quarry”,town:”Bangor”,coordinates:”40.870304770450126, -75.20395382209078″,photo:””,description:”Robbie (Tom Pelphrey), Cliff (RaxFAl Castillo), and Peaches (Owen Teague) head here for a post-robbery swim. On a real-life note, you should not do the same u2014 not only is it dangerous, but itu2019s also trespassing, according to the Bangor Borough Police Department.”,episode:”1″},{name:”Lincoln Highway and 2nd Avenue”,town:”Coatesville”,coordinates:”39.98367030794463, -75.82206085300957″,photo:”DKXFYZ5EGBEHJJKLSUGLQQDAR4″,description:”The Dark Hearts motorcycle gang rides through this intersection in formation, the giveaway being Presence Bank in the background in one shot.”,episode:”2″},{name:”Polish American Citizens Club”,town:”Coatesville”,coordinates:”39.98079295642107, -75.83090353169075″,photo:”WICMTOVTBFE3HANVTH2PSHED5M”,description:”Done up as the so-called Leftyu2019s Taproom in the show, this location serves as the Dark Heartsu2019 clubhouse and watering hole. In real life, itu2019s just off Lincoln Highway, lending a bit of realism to the gangu2019s ride through downtown Coatesville.”,episode:”2″},{name:”Martin’s Taphouse”,town:”Aston Township”,coordinates:”39.89042265129427, -75.43449503510138″,photo:””,description:”Martin’s stands in as the exterior of the Tip Top Lounge in the series, which we see in this episode stacked with motorcycles parked outside the front door.”,episode:”2″},{name:”Dixon’s Lounge”,town:”Sharon Hill”,coordinates:”39.897139107273794, -75.27191565278125″,photo:”BHMNCU4FFJGOBPUKYCZBB2XEOA”,description:”While the exterior of the Tip Top Lounge is in Aston, the interior bears a striking resemblance to Delcou2019s own Dixonu2019s Lounge. Here, Robbie and Cliff are stood up by an, ahem, u201Cbusiness partneru201D before walking out on an order of crabfries.”,episode:”2″},{name:”Willowbrook Shopping Center”,town:”Boothwyn”,coordinates:”39.83646391291799, -75.44319408140227″,photo:”ZU5QXUIDONETHIPPADUJYMAKCY”,description:”Maeve (Emilia Jones) takes Sam (Ben Lewis Doherty) to a fictional u201CVal-U Corneru201D store here with the intent of dropping him off for police to find before the plan goes awry. The store is located near the real Blue Cherry Ice Cream and Bakery, which is visible in the background.”,episode:”2″},{name:”Phoenixville Area High School”,town:”Phoenixville”,coordinates:”40.11868357112564, -75.51793551723154″,photo:””,description:”During his search for his daughter, Emily (Silvia Dionicio), Tom (Mark Ruffalo) finds her in the dugout of a baseball field that, in real life, is at Phoenixville Area High School. Its distinctive backstop is visible from a bird’s-eye view in the series.”,episode:”2″},{name:”Ralph’s Italian Restaurant”,town:”Philadelphia”,coordinates:”39.94006065749021, -75.15774535245488″,photo:”GMDZYMAHRNFGPBTYLRABBDJYHM”,description:”Dark Hearts leaders Jayson (Sam Keeley) and Perry (Jamie McShane) walk through the kitchen here to meet with local drug kingpin Freddy Frias (Elvis Nolasco), but in the show, it doesnu2019t appear to be serving the Italian food weu2019re used to in real life.”,episode:”3″},{name:”Mount Hope Cemetery”,town:”Aston Township”,coordinates:”39.871593701306836, -75.4390865914003″,photo:”4PCNSW4SPBAW7L2WFSJ2STJ3IM”,description:”Itu2019s a very quick shot, but itu2019s there just under four minutes into the episode. In the background, you can see the Commodore Barry Bridge, and graves on a hill in the cemetery in the foreground.”,episode:”3″},{name:”Sixpenny Creek Quarry”,town:”Union Township”,coordinates:”40.23700358370588, -75.78650582204335″,photo:”PLM34YOMIRCPPDVCGTFXM5FGME”,description:”Robbie (Tom Pelphrey) and Cliff (RaxFAl Castillo) finally get their meeting with Eryn (Margarita Levieva), their Dark Hearts insider, but it doesnu2019t go according to plan.”,episode:”3″},{name:”Llanerch Diner”,town:”Upper Darby”,coordinates:”39.96894828437008, -75.29301814827437″,photo:”6QXQDIMGKVDR5J64W4PVS3WP3E”,description:”Taskforce members Aleah (Thuso Mbedu) and Lizzie (Alison Oliver) head to Upper Darby’s famed Llanerch Diner for a tip on the drug house robberies they’re investigating, and get a break in the case.”,episode:”3″},{name:”Rosedon Plaza”,town:”Lansdowne”,coordinates:”39.94225704587108, -75.26528827286353″,photo:”SCB2N67GLFACZO33OOA7CLXQMM”,description:”In the background of one shot during the chase for Ray (Peter Patrikios), you can see the old Doc’s Deli (Deli Green). That puts Ray in the corner of the Rosedon Plaza parking lot as Lizzie (Alison Oliver) makes the arrest.”,episode:”3″},{name:”Coatesville Police Department”,town:”Coatesville”,coordinates:”39.982144078230384, -75.82033869646108″,photo:”XTADWTS6UNEDHOJGNIMWPBBOLE”,description:”Whether the interior is the same station isnu2019t clear, but an exterior shot sets this spot up as the place where the Task team interrogates Ray (Peter Patrikios) and Shelley (Mickey Sumner). Out front, a police cruiser reads u201CDelaware County Sheriff,u201D which is a little far from home.”,episode:”3″},{name:”The Ridley House”,town:”Holmes”,coordinates:”39.89753600427107, -75.31137880453917″,photo:”F2JJYIIZWFA3FFTHDPSXFI5M5A”,description:”Following the chase and interrogation, Lizzie (Alison Oliver) and Grasso (Fabien Frankel) head to this local bar to unwind. Grasso indicates it is a Barnabyu2019s, which, in real life, was true at one point u2013 until the location became the Ridley House in 2019.”,episode:”3″},{name:”Pennsylvania Turnpike on-ramp”,town:”King of Prussia”,coordinates:”40.08960425823238, -75.39689126886788″,photo:”BURLUGM6TRDX3CE46XSFYGJK7M”,description:”Itu2019s a quick shot as Tom (Mark Ruffalo) drives around at the beginning of the episode, but you can just make out the LasikPlus building on Mall Boulevard in the background. That puts this Pennsylvania Turnpike entrance in King of Prussia.”,episode:”4″},{name:”I-76 Exit 320″,town:”Malvern”,coordinates:”40.073716457225665, -75.52365668680957″,photo:””,description:”Tom (Mark Ruffalo) appears to take this exit as he is driving to meet his fellow taskforce members.”,episode:”4″},{name:”Marcus Hook Community Center”,town:”Marcus Hook”,coordinates:”39.81198192114949, -75.41200706776057″,photo:”B76EM6PKTFEB7KFWEUWGOWYDL4″,description:”As County Chief Dorsey (Raphael Sbarge) exits the building, you can see a door tagged with u201CDelaware County Sheriffu2019s Office.u201D But the green awning above him is a dead giveaway u2014 thatu2019s the Marcus Hook Community Center.”,episode:”4″},{name:”Rockdale Industrial Center”,town:”Aston Township “,coordinates:”39.885281970146785, -75.44479191780039″,photo:””,description:”It’s disguised as a trucking depot in the series, but this is where Robbie (Tom Pelphrey) and Cliff (RaxFAl Castillo) travel with Sam (Ben Lewis Doherty) to arrange transportation for their escape into Canada before being confronted by a Good Samaritan. “,episode:”4″},{name:”Upland Diner”,town:”Chester”,coordinates:”39.85816357241053, -75.37189095611281″,photo:”PVJMMBSI2ZBGJNQO46VYY5P6GQ”,description:”Upland Dineru2019s parking lot serves as Robbieu2019s (Tom Pelphrey) holding area during this episodeu2019s drug deal. Unfortunately, we only get an exterior shot of the building, but the restaurantu2019s vintage-style sign is proudly on display. Great pancakes, for the record.”,episode:”4″},{name:”Ridley Creek State Park entrance”,town:”Newtown Square”,coordinates:”39.95853496065017, -75.43948479664033″,photo:”KOSWCMRRHRAB7MLGNLQIF535UM”,description:”Cliff (RaxFAl Castillo) can be seen turning onto North Sandy Flash Drive from Gradyville Road as he heads to the drug deal meeting spot. If you look closely, you can just barely make out a sign for Ridley Creek State Park.”,episode:”4″},{name:”Beaver Creek”,town:”Wilmington, Del.”,coordinates:”39.839261612846315, -75.57139152554225″,photo:””,description:”It’s tough to spot, but the dam that Cliff (RaxFAl Castillo) parks his car next to during this episode’s failed drug deal u2014 or, more accurately, the Dark Hearts’ setup u2014 appears to be in Beaver Creek on the Delaware-Pennsylvania border.”,episode:”4″},{name:”City Clock Apartments”,town:”Coatesville”,coordinates:”39.98382540387415, -75.8211284189516″,photo:”3BYXFXCYUFFRZBUSN5UAPYVYOA”,description:”Another brief shot, but the clock face on the tower of the City Clock Apartments is prominently featured. The building formerly was the National Bank of Coatesville, and has been on the National Register of Historic Places since 1977.”,episode:”4″},{name:”Coatesville-Downingtown Bypass”,town:”Downingtown”,coordinates:”40.01895444780408, -75.70181027552258″,photo:””,description:”FBI Boss Kathleen McGinty (Martha Plimpton) and the rest of the task force swerve across traffic here while looking for Tom (Mark Ruffalo). In the background, you can just make out the sign for Pacer Pool Services & Supplies.”,episode:”5″},{name:”Marsh Creek State Park”,town:”Downingtown”,coordinates:”40.06782560219195, -75.72000193749815″,photo:”NT5JGVMLZFDJTGHC6M7BZFI7Y4″,description:”After surviving his encounter with Robbie (Tom Pelphrey), Tom (Mark Ruffalo) emerges from the woods to see a beautiful summer scene of families enjoying the lake at Marsh Creek State Park.”,episode:”5″},{name:”I-95 Pennsylvania Welcome Center”,town:”Boothwyn”,coordinates:”39.82418322018552, -75.43745107822149″,photo:”5HPTTXFG3ZA2HGAW54OXM4D5ZY”,description:”FBI boss Kathleen McGinty (Martha Plimpton) stuffs her face with fast food at the center’s picnic tables as the task crew looks for their leader. As McGinty explains, she is u201Can emotional eater.u201D”,episode:”5″},{name:”Woy Bridge”,town:”Everett”,coordinates:”40.0150517796881, -78.304498566625″,photo:””,description:”In what is likely the farthest-flung filming location u2013 at least in relation to the rest of the local spots u2013 we get some shots of Everettu2019s Woy Bridge in Bedford County as the taskforce closes in on Robbie (Tom Pelphrey).”,episode:”5″},{name:”Wissahickon Valley Park”,town:”Philadelphia”,coordinates:”40.05627328492142, -75.21733258122025″,photo:”GIK3XIGHEBGOFNM4S2PBSJFG3M”,description:”Many of the series’ woodsy scenes appear to have been filmed in the Wissahickon, though few u2014 if any u2014 notable landmarks make an appearance. Crews were spotted filming around the park last year, and many Inquirer readers have written in to say the recognize certain parts of the creek and landscape in this episode.”,episode:”6″},{name:”Our Lady of Peace Parish”,town:”Milmont Park”,coordinates:”39.88193514095659, -75.33589782814482″,photo:”HGPPGXLRFZFUFE5WBNNXP3DXFM”,description:”Though disguised well as a juvenile detention facility in the show, this little Delco parish provides at least the exterior shots for where Tom (Mark Ruffalo) meets Sam (Ben Lewis Doherty) for the first time.”,episode:”6″},{name:”High Bridge”,town:”Coatesville”,coordinates:”39.98390784773821, -75.82749681114403″,photo:””,description:”This instantly recognizable Coatesville landmark serves as the location for where County Chief Dorsey (Raphael Sbarge) appears to seal Grasso’s (Fabien Frankel) fate with the Dark Hearts.”,episode:”7″},{name:”Delaware County Courthouse and Government Center”,town:”Media”,coordinates:”39.92029464476607, -75.39155431097433″,photo:”NWW6JA6A4FBAJHW7ZIXSIPZ2YA”,description:”Here, Tom (Mark Ruffalo) gives a touching family statement at a court hearing for his son, Ethan (Andrew Russel), in what is the emotional climax of the series. As The Inquirer reported last year, the production took over Courtroom 15 for filming.”,episode:”7″},{name:”Stroud Preserve”,town:”West Chester”,coordinates:”39.95296099101273, -75.64754780607977″,photo:”6ZJWJVNYQFAZJJPFWLZE4ZWXVY”,description:”The last we see of Maeve (Emilia Jones) in the series, she is driving past Stroud Preserve’s Creek Road parking lot with her cousins in tow. Where they’re heading is anybody’s guess, but we hope it’s somewhere with fewer Dark Hearts members.”,episode:”7″}];var W=63710088e-1,gi={centimeters:W*100,centimetres:W*100,degrees:360/(2*Math.PI),feet:W*3.28084,inches:W*39.37,kilometers:W/1e3,kilometres:W/1e3,meters:W,metres:W,miles:W/1609.344,millimeters:W*1e3,millimetres:W*1e3,nauticalmiles:W/1852,radians:1,yards:W*1.0936};function Dn(e,t,r={}){let n={type:”Feature”};return(r.id===0||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function Kt(e,t,r={}){return Dn({type:”MultiPoint”,coordinates:e},t,r)}function Ze(e,t,r){if(e!==null)for(var n,i,o,s,a,d,f,g=0,l=0,v,x=e.type,F=x===”FeatureCollection”,P=x===”Feature”,V=F?e.features.length:1,O=0;O<V;O++){f=F?e.features[O].geometry:P?e.geometry:e,v=f?f.type==="GeometryCollection":!1,a=v?f.geometries.length:1;for(var K=0;K<a;K++){var C=0,$=0;if(s=v?f.geometries[K]:f,s!==null){d=s.coordinates;var I=s.type;switch(g=r&&(I==="Polygon"||I==="MultiPolygon")?1:0,I){case null:break;case"Point":if(t(d,l,O,C,$)===!1)return!1;l++,C++;break;case"LineString":case"MultiPoint":for(n=0;n<d.length;n++){if(t(d[n],l,O,C,$)===!1)return!1;l++,I==="MultiPoint"&&C++}I==="LineString"&&C++;break;case"Polygon":case"MultiLineString":for(n=0;n<d.length;n++){for(i=0;i<d[n].length-g;i++){if(t(d[n][i],l,O,C,$)===!1)return!1;l++}I==="MultiLineString"&&C++,I==="Polygon"&&$++}I==="Polygon"&&C++;break;case"MultiPolygon":for(n=0;n<d.length;n++){for($=0,i=0;i<d[n].length;i++){for(o=0;o<d[n][i].length-g;o++){if(t(d[n][i][o],l,O,C,$)===!1)return!1;l++}$++}C++}break;case"GeometryCollection":for(n=0;n{r[0]>n[0]&&(r[0]=n[0]),r[1]>n[1]&&(r[1]=n[1]),r[2]<n[0]&&(r[2]=n[0]),r[3]{pe(“https://interactives.inquirer.com/storage/dependencies/maplibre/5.3.0/maplibre-gl.js”,()=>{let e=new It;be=window.maplibregl,be.addProtocol(“pmtiles”,e.tile);let t=”https://interactives.inquirer.com/melish/1.2″,r=`${t}/us-latest.pmtiles`,n=new Le(r);e.add(n),n.getHeader().then(async()=>{let o=await(await fetch(`${t}/styles/neutral.json`)).json();ee=new be.Map({container:”map”,zoom:13,center:[-75.165222,39.952583],cooperativeGestures:!0,attributionControl:!1,padding,style:{…o,sources:{openmaptiles:{type:”vector”,url:`pmtiles://${r}`}}}}),ee.scrollZoom.disable(),ee.touchPitch.disable(),ee.addControl(new be.NavigationControl({showCompass:!1,showZoom:!0,visualizePitch:!1}),”bottom-right”),ee.on(“load”,()=>{En(),De!==”all”?ke=we.filter(s=>parseInt(s.episode)parseFloat(d)).reverse(),s.id=ze(s.name),s.photo&&(s.imageSrc=`https://interactives.inquirer.com/secondbank/arc/${s.photo}/650.webp`);let a=xe(“js-map-stub”);Te(a,s),a.addEventListener(“click”,()=>{Qt(a)}),a.addEventListener(“mouseover”,()=>{Qt(a)}),a.addEventListener(“mouseout”,()=>{tr()}),new be.Marker({element:a}).setLngLat(s.coordinates).addTo(ee)}document.querySelector(“.js-map”).classList.add(“is-loaded”),er=!0,Me!=””&&(ir(Me),nr(Me))})})})},Qt=e=>{tr(),e.classList.add(“is-highlight”)},tr=()=>{document.querySelectorAll(“.js-map-location”).forEach(e=>{e.classList.remove(“is-highlight”)})},En=()=>{De=document.querySelector(“.js-steps”).dataset.episodeForPage},rr=()=>{let e=window.innerWidth>960;padding={top:50,bottom:e?50:window.innerHeight/2,left:e?window.innerWidth/2+50:50,right:50}},$n=()=>{window.addEventListener(“resize”,()=>{rr()})},nr=e=>{if(Me=null,e==null){let t=we.filter(r=>r.episode==De);ee.fitBounds(_t(t),{animate:!0})}else if(e.step==”all”)ee.fitBounds(_t(ke),{animate:!0});else{let t=we.filter(r=>ze(r.name)==e.step);t.length>0&&ee.flyTo({center:t[0].coordinates,padding,zoom:13,animate:!0,duration:1e3})}},ir=e=>{document.querySelectorAll(“.js-map-location”).forEach(t=>{t.classList.remove(“is-current”)}),e&&e.step!==”all”&&document.querySelector(`.js-map-location[data-id=”${e.step}”]`).classList.add(“is-current”)},_t=e=>{let t=Kt(e.map(n=>n.coordinates));return Xt(t)},Ae={init:()=>{An(),rr(),$n()},update:e=>{er?(nr(e),ir(e)):Me=e}};var Ye=Sr(or());var zn=async()=>{let t=await(await fetch(“https://interactives.inquirer.com/pepper/2025-task-locations/data.json”)).json();t=t.nav,console.log(t);let r=(0,Ye.default)();t=t.filter(i=>r.isAfter((0,Ye.default)(`${i.date} 22:00`))),t=t.filter(i=>i.link);let n=document.querySelector(“.js-nav-links”);for(let i of t){i.text=`Episode ${i.episode}`;let o=xe(“js-nav-link-stub”);Te(o,i),n.appendChild(o)}},sr={init:()=>{zn()}};var Ee,Bn=(e,t)=>{Ee=Ee||window.PMNdataLayer,Ee?Ee.push({event:”misc_event”,eventAction:e,eventLabel:t}):window.location.hostname.includes(“localhost”)?console.log(“Analytics event:”,e,t,”(not actually being sent due to localhost)”):console.log(“Failed to push analytics event”,e,t)},ar={event:(e,t)=>{Bn(e,t)}};var lr=1,Ve=class{constructor(t){this.el=t,this.contentPosition=”default”,this.possibleSteps=new Array,this.currentStep=null,this.offset=window.innerHeight*.5,this.instanceOfSteps=lr,this.hasMap=!!t.dataset.map,lr++,this.setOffset(),this.setPossibleSteps(),this.updateContent(),this.bindings()}setPossibleSteps(){this.el.querySelectorAll(“.js-steps-step”).forEach(t=>{t.dataset.step&&this.possibleSteps.push(t.dataset.step)})}bindings(){window.addEventListener(“scroll”,()=>{this.updateContent()}),window.addEventListener(“resize”,()=>{this.updateContent(),this.setOffset()})}setOffset(){window.innerWidth>960?this.offset=window.innerHeight*.5:this.offset=window.innerHeight*.8}updateContent(){this.updateCurrentStep()}updateCurrentStep(){let t,r;if(this.el.querySelectorAll(“.js-steps-step”).forEach((i,o)=>{i.getBoundingClientRect().top{let a=”is-“+o,d=”is-“+s;this.possibleSteps.indexOf(o){document.querySelectorAll(“.js-steps”).forEach(e=>{new Ve(e)})}};var Fn=()=>{},cr={init:()=>{Fn()}};var de,Ke,Xe=!0,Hn=()=>{de=document.querySelectorAll(“.js-video-autoplay”)},On=()=>{window.addEventListener(“resize”,()=>{hr()}),window.addEventListener(“scroll”,()=>{hr()}),de.forEach(e=>{e.addEventListener(“volumechange”,t=>{e.muted!==Xe&&!pt()&&(Xe=e.muted,In())})})},hr=()=>{let e;de.forEach((t,r)=>{let n=t.getBoundingClientRect(),i=n.height/2;n.y-i&&(e=t)}),e!==Ke&&(Ke=e,de.forEach(t=>{t.pause()}),e?e.play():Ke=null)},In=()=>{de.forEach(e=>{e.muted=Xe})},fr={init:()=>{Hn(),de&&On()}};var dr={init:()=>{at.init?.(),yt.init?.(),Mt.init?.(),Tt.init?.(),Ct.init?.(),kt.init?.(),Ae.init?.(),sr.init?.(),ur.init?.(),cr.init?.(),fr.init?.(),ue.init?.()}};var Rn=()=>{},pr={init:()=>{Rn()}};var Un=document.querySelector(“.js-inno”),vr=()=>{dr.init(),pr.init()};Un?vr():new MutationObserver((t,r)=>{if(document.querySelector(“.js-inno”)){r.disconnect(),vr();return}}).observe(document,{attributes:!0,childList:!0,subtree:!0});})();
Bucks County Republicans are stoking fears about crime in Philadelphia even as violent crime in the city steadily drops from its high during the pandemic.
Republicans in the purple collar county hope the message will boost the GOP incumbents, District Attorney Jen Schorn and Sheriff Fred Harran, as they face off this fall against their respective Democratic challengers, Joe Khan and Danny Ceisler.
“We’re letting anarchy take over our country in certain places, and that’s not something we want in Bucks,” said Pat Poprik, the chair of the Bucks County Republican Party.
“Democrats are far more enthusiastic about voting precisely because they see what’s happening on the national level. They are really infuriated by what Donald Trump is doing,” State Sen. Steve Santarsiero, who chairs the Bucks County Democratic Party, said. “They’re going to make their displeasure heard by coming to the polls.”
The local races in the key county, which Trump narrowly won last year,will be a temperature check on how swing voters are responding to Trump’s second term and will gauge their enthusiasm ahead of the 2026 midterms, when Shapiro stands for reelection.
As the Nov. 4 election approaches, early signs indicate Democrats’ message might be working — polling conducted by a Democratic firm in September found their candidates ahead, and three weeks before Election Day, Democrats had requested more than twice as many mail ballots as Republicans.
“I think the Republican Party has the same problem it always does. … They turn out when Trump’s on the ticket, but when he’s not, there’s less enthusiasm,” said Jim Worthington, who has run pro-Trump organizations in Bucks County. “Truth be told, the Democrats do a hell of a job just turning out their voters.”
State Treasurer Stacy Garrity, a Republican running for Pa. governor, poses with Bucks County elected officers following her campaign rally Sat the Newtown Sports & Events Center. From left: Bucks County Sheriff Fred Harran; Bucks County District Attorney Jennifer Schorn; Garrity; and Pamela Van Blunk, Bucks County Controller.
GOP warns of ‘dangerous’ policies
Republican messaging in the two races focuses on the idea that Bucks County is safe, but its neighbors are not.
GOP ads, which have run over the course of four months, suggest that Khan and Ceisler would enact “dangerous” policies in Bucks County such as “releasing criminals without bail” and “giving sanctuary to violent gang members.”
They frame Harran and Schorn in stark contrast to their opponents as lifelong Bucks County law enforcement officers with histories of holding criminals accountable.
“I think it resonates beyond the Republican base,” said Guy Ciarrocchi, a Republican analyst, who contended frequent news coverage of Krasner makes the message more viable.
Khan, a former assistant Philly district attorney who unsuccessfully ran against Krasner in the 2017 primary, has noted that he campaigned “very, very vigorously” against Krasner and challenged his ideas on how to serve the city.
“I accept the reality that I didn’t win that election,” said Khan, whose platform in 2017 included a proposal to stop prosecuting most low-level drug offenses. “Unlike my opponent, who seems to basically enjoy the sport of scoring political points by sparring with the DA of Philadelphia.”
Schorn, however, is adamant that politics has never played a role in her prosecutorial decisions. Her mission, she said, is “simply to get justice.”
A lifelong Bucks County resident who has been a prosecutor in the county since 1999, Schorn handled some of the county’s most high-profile cases and spearheaded the formation of a task force for internet crimes against children.
Bucks County District Attorney Jennifer Schorn speaks at a Republican rally at the Newtown Sports & Events Center in September.
“This has been my life’s mission, prosecuting cases here in Bucks County, the county where I was raised,” she said. “I didn’t do it for any notoriety. I didn’t do it for self-promotion. I did it because it’s what I went to law school to do.”
Harran spent decades as Bensalem’s public safety director before first running for sheriff in 2021. He is seeking reelection amid controversy caused by his decision to partner his agency with ICE, a move that a Bucks County judge upheld last week after a legal challenge.
“Being Bucks County Sheriff isn’t a position you can learn on the job. For 39 years, I’ve woken up every day focused on keeping our communities safe,” Harran said in an email to The Inquirer in which he criticized Ceisler as lacking experience.
Although Ceisler has never worked directly in law enforcement, he argues the sheriff’s job is one of leadership in public safety. That’s something he says he’s well versed in as a senior public safety official in Shapiro’s administration who previously served on the Pentagon’s COVID-19 crisis management team.
Harran, who described his opponent as a “political strategist,” criticized “politicians” for bringing “half-baked ideas like ‘no-cash bail’” into law enforcement. The concept, which is repeatedly derided in the GOP ads, sets up a system by which defendants are either released free of charge or held without the opportunity for bail based on their risk to the community and likelihood of returning to court.
Khan and Ceisler each voiced support for the concept in prior runs for Philadelphia district attorney and Bucks County district attorney, respectively.
Both say they still support cashless bail. Neither, however, would have the authority to implement the policy if elected, though Khan as district attorney could establish policies preventing county prosecutors from seeking cash bail in certain cases.
Joe Khan, a Democratic candidate running for Bucks County DA, walks from his polling place in Doylestown, Pa. in April 2024 when he was running for attorney general.
“When a defendant is arrested and they come into court, every prosecutor answers this question: Should this person be detained or not?” Khan said. “If the answer is yes, then your position in court is that this person shouldn’t be let out, and it doesn’t matter how much money they have. And if the answer is no, then you need to figure out what conditions you need to make sure they come to court.”
Democrats claim to ‘keep politics out’
Even as Democrats view voter anger at Trump as a key piece of their path to victory, they are working to present themselves as apolitical.
Democraticads attack Schorn for not investigating a pipeline leak in Upper Makefield and Harran as caring about nothing but himself. Positive ads highlight Ceisler’s military background and Khan’s career as a federal prosecutor.
Khan and Ceisler, the Democratic Party’s ads argue, will “stop child predators, stand up to corruption, and they’ll keep politics out of public safety.”
The jet fuelcase was turned over to the environmental crimes unit in Pennsylvania Attorney General Dave Sunday’s office. And prosecutorial rules bar Schorn from discussing the alleged abuse.
“During the last, I don’t know, 13 years when [Khan] has been pursuing politics, I’ve been a public servant,” Schorn said.“For someone accusing me of putting politics first, he seems to be using politics to further his own agenda.”
At a September rally in Newtown for Treasurer Stacy Garrity, a Republican running for governor, Harran cracked jokes about former President Joe Biden’s age as he climbed onto the stage and falsely told voters that they will “lose [their] right to vote” if they don’t vote out three Pennsylvania Supreme Court justices standing for retention.
“I’m a cop who ran to keep being a cop. This isn’t about politics for me — it’s about doing everything I can to keep my community safe,” Harran said.
Harran’s opponent, Ceisler, paints a different picture as he draws a direct line between the sheriff and the president.
Danny Ceisler, a Democrat, is running for Bucks County sheriff.
Trump, Ceisler said, has inserted politics into public safety in his second term, and he contended that Harran has done the same.
“[Harran] used his bully pulpit to help get the president elected, so to that extent he is linked to the president for better or worse,” Ceisler said in an interview.
Ceisler has pledged to take politics out of the office and end the department’s partnership with ICE if elected.
At an event in Warminster last month, voters were quick to ask Ceisler which party he was running with. Ceisler asked them to hear his pitch about how he would run the office first.
“Don’t hold it against me,” he quipped as he ultimately admitted to one voter he’s a Democrat.
Staff writer Fallon Roth contributed to this article.
This suburban content is produced with support from the Leslie Miller and Richard Worley Foundation and The Lenfest Institute for Journalism. Editorial content is created independently of the project donors. Gifts to support The Inquirer’s high-impact journalism can be made at inquirer.com/donate. A list of Lenfest Institute donors can be found at lenfestinstitute.org/supporters.