Liabilities / Assets
98th percentile
Higher debt load relative to assets than 98% of similar nonprofits.
EIN 81-4548914 • Mooresville, NC
Precomputed percentiles relative to similar nonprofits. These scores are descriptive rather than judgmental.
Liabilities / Assets
98th percentile
Higher debt load relative to assets than 98% of similar nonprofits.
Liabilities / Revenue
Score unavailable
Liabilities-to-revenue requires both liabilities and revenue on the latest valid filing.
Net Margin
Score unavailable
Net margin requires both revenue and expenses on the latest valid filing.
Top Officer Pay
95th percentile
Higher top officer pay than 95% of similar nonprofits.
Asset Growth
21st percentile
Faster asset growth than 21% of similar nonprofits.
Revenue Growth
4th percentile
Faster revenue growth than 4% of similar nonprofits.
Using 2024 Form 990PF data because the latest 2025 filing does not report standard financial totals.
Assets
Down$1,644
Down $375 (-19%) from 2023
Liabilities
Down$1,644
Down $375 (-19%) from 2023
Net Assets
Flat$0
Flat from 2023
Revenue
Down$0
Down $400 (-100%) from 2023
Expenses
Down$375
Down $1,625 (-81%) from 2023
Net Income
Up-$375
Up $1,225 (+77%) from 2023
Most recent year
2025 • Form 990PFDetailed filing. Detailed filing data is available for this year.
| Name | Title | Full / Part Time | Base | Other | Total |
|---|---|---|---|---|---|
| Germaine G Grinkley | President | PT | $0 | - | - |
This appendix keeps the raw XML leaves available for debugging and edge-case review. The human report above is the primary experience.
| Path | # | Value |
|---|---|---|
| IRS990PF/AnalysisOfRevenueAndExpenses/AccountingFeesRevAndExpnssAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/CapGainNetIncmNetInvstIncmAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/ContriPaidDsbrsChrtblAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/ContriPaidRevAndExpnssAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/DeprecAndDpltnRevAndExpnssAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/ExcessRevenueOverExpensesAmt | 0 | -375 |
| IRS990PF/AnalysisOfRevenueAndExpenses/GrossProfitRevAndExpnssAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/LegalFeesRevAndExpnssAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/NetInvestmentIncomeAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/OtherExpensesRevAndExpnssAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/OtherIncomeRevAndExpnssAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/OtherProfFeesRevAndExpnssAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/ScheduleBNotRequiredInd | 0 | X |
| IRS990PF/AnalysisOfRevenueAndExpenses/TaxesRevAndExpnssAmt | 0 | 375 |
| IRS990PF/AnalysisOfRevenueAndExpenses/TotalExpensesDsbrsChrtblAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/TotalExpensesNetInvstIncmAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/TotalExpensesRevAndExpnssAmt | 0 | 375 |
| IRS990PF/AnalysisOfRevenueAndExpenses/TotalNetInvstIncmAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/TotalRevAndExpnssAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/TotOprExpensesDsbrsChrtblAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/TotOprExpensesNetInvstIncmAmt | 0 | 0 |
| IRS990PF/AnalysisOfRevenueAndExpenses/TotOprExpensesRevAndExpnssAmt | 0 | 375 |
| IRS990PF/DistributableAmountGrp/DistributableAsAdjustedAmt | 0 | 0 |
| IRS990PF/DistributableAmountGrp/DistributableBeforeAdjAmt | 0 | 0 |
| IRS990PF/DistributableAmountGrp/DistributableBeforeDedAmt | 0 | 0 |
| IRS990PF/DistributableAmountGrp/MinimumInvestmentReturnAmt | 0 | 0 |
| IRS990PF/DistributableAmountGrp/TaxBasedOnInvestmentIncomeAmt | 0 | 0 |
| IRS990PF/DistributableAmountGrp/TotalTaxAmt | 0 | 0 |
| IRS990PF/ExciseTaxBasedOnInvstIncmGrp/AppliedToESTaxAmt | 0 | 0 |
| IRS990PF/ExciseTaxBasedOnInvstIncmGrp/InvestmentIncomeExciseTaxAmt | 0 | 0 |
| IRS990PF/ExciseTaxBasedOnInvstIncmGrp/SubtotalAmt | 0 | 0 |
| IRS990PF/ExciseTaxBasedOnInvstIncmGrp/TaxBasedOnInvestmentIncomeAmt | 0 | 0 |
| IRS990PF/ExciseTaxBasedOnInvstIncmGrp/TaxDueAmt | 0 | 0 |
| IRS990PF/ExciseTaxBasedOnInvstIncmGrp/TaxUnderSection511Amt | 0 | 0 |
| IRS990PF/FMVAssetsEOYAmt | 0 | 5649 |
| IRS990PF/Form990PFBalanceSheetsGrp/CashBOYAmt | 0 | 1644 |
| IRS990PF/Form990PFBalanceSheetsGrp/CashEOYAmt | 0 | 5649 |
| IRS990PF/Form990PFBalanceSheetsGrp/CashEOYFMVAmt | 0 | 5649 |
| IRS990PF/Form990PFBalanceSheetsGrp/GrantsPayableBOYAmt | 0 | 1644 |
| IRS990PF/Form990PFBalanceSheetsGrp/GrantsPayableEOYAmt | 0 | 5649 |
| IRS990PF/Form990PFBalanceSheetsGrp/LandBldgInvestmentsEOYAmt | 0 | 0 |
| IRS990PF/Form990PFBalanceSheetsGrp/LandEOYAmt | 0 | 0 |
| IRS990PF/Form990PFBalanceSheetsGrp/LoansFromOfficersEOYAmt | 0 | 0 |
| IRS990PF/Form990PFBalanceSheetsGrp/MortgagesAndNotesPayableEOYAmt | 0 | 0 |
| IRS990PF/Form990PFBalanceSheetsGrp/OrganizationFollowsFASB117Ind | 0 | X |
| IRS990PF/Form990PFBalanceSheetsGrp/OtherAssetsBOYAmt | 0 | 0 |
| IRS990PF/Form990PFBalanceSheetsGrp/OtherAssetsEOYAmt | 0 | 0 |
| IRS990PF/Form990PFBalanceSheetsGrp/OtherAssetsEOYFMVAmt | 0 | 0 |
| IRS990PF/Form990PFBalanceSheetsGrp/OtherInvestmentsEOYAmt | 0 | 0 |
| IRS990PF/Form990PFBalanceSheetsGrp/OtherLiabilitiesBOYAmt | 0 | 0 |
| IRS990PF/Form990PFBalanceSheetsGrp/OtherLiabilitiesEOYAmt | 0 | 0 |
| IRS990PF/Form990PFBalanceSheetsGrp/OtherNtsAndLoansRcvblEOYAmt | 0 | 0 |
| IRS990PF/Form990PFBalanceSheetsGrp/RcvblFromOfficersEOYAmt | 0 | 0 |
| IRS990PF/Form990PFBalanceSheetsGrp/TotalAssetsBOYAmt | 0 | 1644 |
| IRS990PF/Form990PFBalanceSheetsGrp/TotalAssetsEOYAmt | 0 | 5649 |
| IRS990PF/Form990PFBalanceSheetsGrp/TotalAssetsEOYFMVAmt | 0 | 5649 |
| IRS990PF/Form990PFBalanceSheetsGrp/TotalLiabilitiesBOYAmt | 0 | 1644 |
| IRS990PF/Form990PFBalanceSheetsGrp/TotalLiabilitiesEOYAmt | 0 | 5649 |
| IRS990PF/Form990PFBalanceSheetsGrp/TotalLiabilitiesNetAstBOYAmt | 0 | 1644 |
| IRS990PF/Form990PFBalanceSheetsGrp/TotalLiabilitiesNetAstEOYAmt | 0 | 5649 |
| IRS990PF/Form990PFBalanceSheetsGrp/TotNetAstOrFundBalancesEOYAmt | 0 | 0 |
| IRS990PF/MethodOfAccountingCashInd | 0 | X |
| IRS990PF/MinimumInvestmentReturnGrp/AdjustedTotalFMVOfUnusedAstAmt | 0 | 0 |
| IRS990PF/MinimumInvestmentReturnGrp/AverageMonthlyCashBalancesAmt | 0 | 0 |
| IRS990PF/MinimumInvestmentReturnGrp/AverageMonthlyFMVOfSecAmt | 0 | 0 |
| IRS990PF/MinimumInvestmentReturnGrp/CashDeemedCharitableAmt | 0 | 0 |
| IRS990PF/MinimumInvestmentReturnGrp/FMVAllOtherNoncharitableAstAmt | 0 | 0 |
| IRS990PF/MinimumInvestmentReturnGrp/MinimumInvestmentReturnAmt | 0 | 0 |
| IRS990PF/MinimumInvestmentReturnGrp/NetVlNoncharitableAssetsAmt | 0 | 0 |
| IRS990PF/MinimumInvestmentReturnGrp/ReductionClaimedAmt | 0 | 0 |
| IRS990PF/MinimumInvestmentReturnGrp/TotalFMVOfUnusedAssetsAmt | 0 | 0 |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/CompOfHghstPdCntrctOrNONETxt | 0 | NONE |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/CompOfHghstPdEmplOrNONETxt | 0 | NONE |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/ContractorPaidOver50kCnt | 0 | 0 |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/OfficerDirTrstKeyEmplGrp/AverageHrsPerWkDevotedToPosRt | 0 | 10.00 |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/OfficerDirTrstKeyEmplGrp/CompensationAmt | 0 | 0 |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/OfficerDirTrstKeyEmplGrp/EmployeeBenefitProgramAmt | 0 | 0 |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/OfficerDirTrstKeyEmplGrp/ExpenseAccountOtherAllwncAmt | 0 | 0 |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/OfficerDirTrstKeyEmplGrp/PersonNm | 0 | Germaine G Grinkley |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/OfficerDirTrstKeyEmplGrp/TitleTxt | 0 | PRESIDENT |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/OfficerDirTrstKeyEmplGrp/USAddress/AddressLine1Txt | 0 | 108 Snapdragon Lane |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/OfficerDirTrstKeyEmplGrp/USAddress/CityNm | 0 | Mooresville |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/OfficerDirTrstKeyEmplGrp/USAddress/StateAbbreviationCd | 0 | NC |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/OfficerDirTrstKeyEmplGrp/USAddress/ZIPCd | 0 | 28117 |
| IRS990PF/OfficerDirTrstKeyEmplInfoGrp/OtherEmployeePaidOver50kCnt | 0 | 0 |
| IRS990PF/Organization501c3ExemptPFInd | 0 | X |
| IRS990PF/PFQualifyingDistributionsGrp/ExpensesAndContributionsAmt | 0 | 0 |
| IRS990PF/StatementsRegardingActy4720Grp/BrrwOrLendDisqualifiedPrsnInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/BusinessHoldingsInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/FurnGoodsDisqualifiedPrsnInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/GrantsToIndividualsInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/GrantsToOrganizationsInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/InfluenceElectionInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/InfluenceLegislationInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/JeopardyInvestmentsInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/NoncharitablePurposeInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/PayCompDisqualifiedPrsnInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/PaymentToGovernmentOfficialInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/PayPremiumsPrsnlBnftCntrctInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/ProhibitedTaxShelterTransInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/RcvFndsToPayPrsnlBnftCntrctInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/SaleOrExchDisqualifiedPrsnInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/TransferAstDisqualifiedPrsnInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/UncorrectedPriorActsInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/UncorrectedPYJeopardyInvstInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/UndistributedIncomePYInd | 0 | false |
| IRS990PF/StatementsRegardingActy4720Grp/UndistrIncmSect4942a2NotAppInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/ActivitiesNotPreviouslyRptInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/AtLeast5000InAssetsInd | 0 | true |
| IRS990PF/StatementsRegardingActyGrp/ChangesToArticlesOrBylawsInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/ComplyWithPublicInspRqrInd | 0 | true |
| IRS990PF/StatementsRegardingActyGrp/DonorAdvisedFundInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/ForeignAccountsQuestionInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/Form1120POLFiledInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/Form990PFFiledWithAttyGenInd | 0 | true |
| IRS990PF/StatementsRegardingActyGrp/IndividualWithBooksNm | 0 | Germaine G Grinkley |
| IRS990PF/StatementsRegardingActyGrp/LegislativePoliticalActyInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/LocationOfBooksUSAddress/AddressLine1Txt | 0 | 108 Snapdragon Lane |
| IRS990PF/StatementsRegardingActyGrp/LocationOfBooksUSAddress/CityNm | 0 | Mooresville |
| IRS990PF/StatementsRegardingActyGrp/LocationOfBooksUSAddress/StateAbbreviationCd | 0 | NC |
| IRS990PF/StatementsRegardingActyGrp/LocationOfBooksUSAddress/ZIPCd | 0 | 28117 |
| IRS990PF/StatementsRegardingActyGrp/MoreThan100SpentInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/NewSubstantialContributorsInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/OrganizationDissolvedEtcInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/OwnControlledEntityInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/PhoneNum | 0 | 7036237900 |
| IRS990PF/StatementsRegardingActyGrp/PrivateOperatingFoundationInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/Section508eRqrSatisfiedInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/UnrelatedBusIncmOverLimitInd | 0 | false |
| IRS990PF/StatementsRegardingActyGrp/WebsiteAddressTxt | 0 | N/A |
| IRS990PF/SupplementaryInformationGrp/OnlyContriToPreselectedInd | 0 | X |
| IRS990PF/TrnsfrTransRlnNonchrtblEOGrp/LoansOrLoanGuaranteesInd | 0 | false |
| IRS990PF/TrnsfrTransRlnNonchrtblEOGrp/PerformanceOfServicesEtcInd | 0 | false |
| IRS990PF/TrnsfrTransRlnNonchrtblEOGrp/PurchaseOfAssetsNonchrtblEOInd | 0 | false |
| IRS990PF/TrnsfrTransRlnNonchrtblEOGrp/ReimbursementArrangementsInd | 0 | false |
| IRS990PF/TrnsfrTransRlnNonchrtblEOGrp/RelationshipsNonchrtblEOInd | 0 | false |
| IRS990PF/TrnsfrTransRlnNonchrtblEOGrp/RentalOfFacilitiesOthAssetsInd | 0 | false |
| IRS990PF/TrnsfrTransRlnNonchrtblEOGrp/SalesOrExchangesOfAssetsInd | 0 | false |
| IRS990PF/TrnsfrTransRlnNonchrtblEOGrp/SharingOfFacilitiesEtcInd | 0 | false |
| IRS990PF/TrnsfrTransRlnNonchrtblEOGrp/TrnsfrOfCashToNonchrtblEOInd | 0 | false |
| IRS990PF/TrnsfrTransRlnNonchrtblEOGrp/TrnsfrOtherAssetNonchrtblEOInd | 0 | false |
| IRS990PF/UndistributedIncomeGrp/DistributableAsAdjustedAmt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/ExcessDistributionCyovYr1Amt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/ExcessDistributionCyovYr2Amt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/ExcessDistributionCyovYr3Amt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/ExcessDistributionCyovYr4Amt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/ExcessDistributionCyovYr5Amt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/ExcessDistriCyovFromYr5Amt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/ExcessDistriCyovToNextYrAmt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/ExcessFromCurrentYearAmt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/ExcessFromYear1Amt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/ExcessFromYear2Amt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/ExcessFromYear3Amt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/ExcessFromYear4Amt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/PriorYearUndistributedIncmAmt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/RemainingDistriFromCorpusAmt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/Taxable1Amt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/Taxable2Amt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/TotalCorpusAmt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/TotalExcessDistributionCyovAmt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/TreatedAsDistriFromCorpusAmt | 0 | 0 |
| IRS990PF/UndistributedIncomeGrp/UndistributedIncomeCYAmt | 0 | 0 |
| OtherExpensesSchedule/OtherExpensesScheduleGrp/Desc | 0 | Office Expense |
| OtherExpensesSchedule/OtherExpensesScheduleGrp/Desc | 1 | Licenses & Permits |
| OtherExpensesSchedule/OtherExpensesScheduleGrp/Desc | 2 | Auto Expense |
| OtherIncreasesSchedule/OtherIncreasesDetail/Amt | 0 | 375 |
| OtherIncreasesSchedule/OtherIncreasesDetail/Desc | 0 | Tax preparation fee |
| TaxesSchedule/TaxesDetail/Amt | 0 | 375 |
| TaxesSchedule/TaxesDetail/CategoryTxt | 0 | Tax prep fee |
| ReturnHeader/BuildTS | 0 | 2025-03-06 01:10:19Z |
| ReturnHeader/BusinessOfficerGrp/PersonNm | 0 | Germaine G Grinkley |
| ReturnHeader/BusinessOfficerGrp/PersonTitleTxt | 0 | President |
| ReturnHeader/BusinessOfficerGrp/PhoneNum | 0 | 7036237900 |
| ReturnHeader/BusinessOfficerGrp/SignatureDt | 0 | 2026-04-10 |
| ReturnHeader/Filer/BusinessName/BusinessNameLine1Txt | 0 | John Grinkley Memorial Foundation |
| ReturnHeader/Filer/BusinessNameControlTxt | 0 | JOHN |
| ReturnHeader/Filer/EIN | 0 | 814548914 |
| ReturnHeader/Filer/PhoneNum | 0 | 7036237900 |
| ReturnHeader/Filer/USAddress/AddressLine1Txt | 0 | 108 Snapdragon Lane |
| ReturnHeader/Filer/USAddress/CityNm | 0 | Mooresville |
| ReturnHeader/Filer/USAddress/StateAbbreviationCd | 0 | NC |
| ReturnHeader/Filer/USAddress/ZIPCd | 0 | 28117 |
| ReturnHeader/PreparerFirmGrp/PreparerFirmName/BusinessNameLine1Txt | 0 | Fields Business Enterprises |
| ReturnHeader/PreparerFirmGrp/PreparerUSAddress/AddressLine1Txt | 0 | 42888 Secretariat Court |
| ReturnHeader/PreparerFirmGrp/PreparerUSAddress/CityNm | 0 | Ashburn |
| ReturnHeader/PreparerFirmGrp/PreparerUSAddress/StateAbbreviationCd | 0 | VA |
| ReturnHeader/PreparerFirmGrp/PreparerUSAddress/ZIPCd | 0 | 20147 |
| ReturnHeader/PreparerPersonGrp/PhoneNum | 0 | 7037240999 |
| ReturnHeader/PreparerPersonGrp/PreparationDt | 0 | 2026-04-13 |
| ReturnHeader/PreparerPersonGrp/PreparerPersonNm | 0 | Wilbert Fields Jr |
| ReturnHeader/PreparerPersonGrp/SelfEmployedInd | 0 | X |
| ReturnHeader/ReturnTs | 0 | 2026-04-13T15:08:50-07:00 |
| ReturnHeader/ReturnTypeCd | 0 | 990PF |
| ReturnHeader/TaxPeriodBeginDt | 0 | 2025-01-01 |
| ReturnHeader/TaxPeriodEndDt | 0 | 2025-12-31 |
| ReturnHeader/TaxYr | 0 | 2025 |
No mirrored PDF or thumbnail assets are attached yet.