0001558370-23-003915.txt : 20230315 0001558370-23-003915.hdr.sgml : 20230315 20230315170713 ACCESSION NUMBER: 0001558370-23-003915 CONFORMED SUBMISSION TYPE: 10-K PUBLIC DOCUMENT COUNT: 122 CONFORMED PERIOD OF REPORT: 20221231 FILED AS OF DATE: 20230315 DATE AS OF CHANGE: 20230315 FILER: COMPANY DATA: COMPANY CONFORMED NAME: Cadre Holdings, Inc. CENTRAL INDEX KEY: 0001860543 STANDARD INDUSTRIAL CLASSIFICATION: ORTHOPEDIC, PROSTHETIC & SURGICAL APPLIANCES & SUPPLIES [3842] IRS NUMBER: 383873146 STATE OF INCORPORATION: DE FILING VALUES: FORM TYPE: 10-K SEC ACT: 1934 Act SEC FILE NUMBER: 001-40698 FILM NUMBER: 23736084 BUSINESS ADDRESS: STREET 1: 13386 INTERNATIONAL PKWY CITY: JACKSONVILLE STATE: FL ZIP: 32218 BUSINESS PHONE: (904) 741-5400 MAIL ADDRESS: STREET 1: 13386 INTERNATIONAL PKWY CITY: JACKSONVILLE STATE: FL ZIP: 32218 10-K 1 cdre-20221231x10k.htm 10-K
http://fasb.org/us-gaap/2022#AccruedLiabilitiesCurrent50falseFY20220001860543--12-312022FYfalse0034383350http://fasb.org/us-gaap/2022#OtherAssetsCurrenthttp://fasb.org/us-gaap/2022#OtherAssetsCurrenthttp://fasb.org/us-gaap/2022#OtherAssetsNoncurrenthttp://fasb.org/us-gaap/2022#OtherAssetsNoncurrenthttp://fasb.org/us-gaap/2022#AccruedLiabilitiesCurrenthttp://fasb.org/us-gaap/2022#AccruedLiabilitiesCurrent37332271100000.36P20Dhttp://www.cadre-holdings.com/20221231#OtherOperatingIncomesP3YP1YP10YP3YP3Y0001860543us-gaap:CommonStockMember2022-01-012022-12-310001860543us-gaap:OverAllotmentOptionMember2021-11-032021-11-030001860543us-gaap:CommonStockMember2021-01-012021-12-3100018605432021-07-012021-07-310001860543us-gaap:RetainedEarningsMember2022-12-310001860543us-gaap:AdditionalPaidInCapitalMember2022-12-310001860543us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-12-310001860543us-gaap:RetainedEarningsMember2021-12-310001860543us-gaap:AdditionalPaidInCapitalMember2021-12-310001860543us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-12-310001860543us-gaap:RetainedEarningsMember2020-12-310001860543us-gaap:AdditionalPaidInCapitalMember2020-12-310001860543us-gaap:AccumulatedOtherComprehensiveIncomeMember2020-12-310001860543cdre:AfcoCreditCorporationMemberus-gaap:LoansPayableMember2022-12-310001860543cdre:InsurancePremiumFinancingMember2022-12-310001860543cdre:CurrentPortionOfTermLoanMember2022-12-310001860543cdre:IpfsCorporationMembercdre:ShortTermLoanFacilityEnteredInNovember2021Member2021-12-310001860543cdre:IpfsCorporationMembercdre:ShortTermLoanFacilityEnteredInJuly2021Member2021-12-310001860543cdre:AonPremiumFinanceMemberus-gaap:LoansPayableMember2021-12-310001860543cdre:InsurancePremiumFinancingMember2021-12-310001860543cdre:CurrentPortionOfTermLoanMember2021-12-310001860543us-gaap:OverAllotmentOptionMember2022-07-140001860543cdre:SecondaryOfferingMember2022-06-090001860543us-gaap:IPOMember2021-11-030001860543srt:MaximumMember2022-01-012022-12-3100018605432022-12-312022-12-310001860543cdre:StockIncentivePlan2021Member2022-12-310001860543us-gaap:RestrictedStockMember2021-11-040001860543cdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember2022-12-310001860543us-gaap:RestrictedStockMember2021-12-310001860543cdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember2021-12-310001860543cdre:StockIncentivePlan2021Member2021-11-042021-11-040001860543cdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember2022-01-012022-12-310001860543us-gaap:RestrictedStockUnitsRSUMembercdre:StockIncentivePlan2021Member2022-01-012022-12-310001860543srt:MinimumMemberus-gaap:EmployeeStockOptionMember2022-01-012022-12-310001860543srt:MaximumMemberus-gaap:EmployeeStockOptionMember2022-01-012022-12-310001860543us-gaap:PhantomShareUnitsPSUsMember2022-01-012022-12-3100018605432024-01-012022-12-3100018605432023-01-012022-12-310001860543us-gaap:NonUsMember2022-01-012022-12-310001860543country:US2022-01-012022-12-310001860543cdre:U.s.stateAndLocalAgenciesMember2022-01-012022-12-310001860543cdre:U.s.FederalAgenciesMember2022-01-012022-12-310001860543cdre:OtherMember2022-01-012022-12-310001860543cdre:InternationalMember2022-01-012022-12-310001860543cdre:CommercialMember2022-01-012022-12-310001860543us-gaap:NonUsMember2021-01-012021-12-310001860543country:US2021-01-012021-12-310001860543cdre:U.s.stateAndLocalAgenciesMember2021-01-012021-12-310001860543cdre:U.s.FederalAgenciesMember2021-01-012021-12-310001860543cdre:OtherMember2021-01-012021-12-310001860543cdre:InternationalMember2021-01-012021-12-310001860543cdre:CommercialMember2021-01-012021-12-310001860543srt:MinimumMemberus-gaap:MachineryAndEquipmentMember2022-01-012022-12-310001860543srt:MinimumMemberus-gaap:FurnitureAndFixturesMember2022-01-012022-12-310001860543srt:MinimumMemberus-gaap:ComputerEquipmentMember2022-01-012022-12-310001860543srt:MinimumMemberus-gaap:BuildingAndBuildingImprovementsMember2022-01-012022-12-310001860543srt:MaximumMemberus-gaap:MachineryAndEquipmentMember2022-01-012022-12-310001860543srt:MaximumMemberus-gaap:FurnitureAndFixturesMember2022-01-012022-12-310001860543srt:MaximumMemberus-gaap:ComputerEquipmentMember2022-01-012022-12-310001860543srt:MaximumMemberus-gaap:BuildingAndBuildingImprovementsMember2022-01-012022-12-310001860543us-gaap:MachineryAndEquipmentMember2022-12-310001860543us-gaap:LandMember2022-12-310001860543us-gaap:FurnitureAndFixturesMember2022-12-310001860543us-gaap:ConstructionInProgressMember2022-12-310001860543us-gaap:ComputerEquipmentMember2022-12-310001860543us-gaap:BuildingAndBuildingImprovementsMember2022-12-310001860543us-gaap:MachineryAndEquipmentMember2021-12-310001860543us-gaap:LandMember2021-12-310001860543us-gaap:FurnitureAndFixturesMember2021-12-310001860543us-gaap:ConstructionInProgressMember2021-12-310001860543us-gaap:ComputerEquipmentMember2021-12-310001860543us-gaap:BuildingAndBuildingImprovementsMember2021-12-310001860543cdre:KandersCompanyIncMembercdre:SecondaryOfferingMember2022-06-092022-06-090001860543cdre:KandersCompanyIncMemberus-gaap:IPOMember2021-11-032021-11-030001860543us-gaap:RevolvingCreditFacilityMembercdre:NewCreditAgreementAugust2021Member2022-01-012022-12-310001860543cdre:NewCreditAgreementAugust2021Member2022-01-012022-12-310001860543us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-01-012022-12-310001860543us-gaap:AccumulatedOtherComprehensiveIncomeMember2021-01-012021-12-310001860543us-gaap:AccountingStandardsUpdate201602Member2022-01-0100018605432022-10-312022-10-3100018605432021-10-312021-10-3100018605432021-09-012021-09-300001860543srt:MinimumMembercdre:CanadianCreditFacilityMember2022-01-012022-12-310001860543srt:MaximumMembercdre:CanadianCreditFacilityMember2022-01-012022-12-310001860543us-gaap:RevolvingCreditFacilityMembercdre:CanadianCreditFacilityMember2021-10-140001860543us-gaap:LetterOfCreditMembercdre:CanadianCreditFacilityMember2021-10-140001860543us-gaap:RevolvingCreditFacilityMembercdre:NewCreditAgreementAugust2021Member2021-08-200001860543us-gaap:LetterOfCreditMembercdre:NewCreditAgreementAugust2021Member2021-08-200001860543cdre:SwingLineLoansMembercdre:NewCreditAgreementAugust2021Member2021-08-200001860543us-gaap:RevolvingCreditFacilityMembercdre:CanadianCreditFacilityMember2021-12-310001860543us-gaap:LetterOfCreditMembercdre:NewCreditAgreementAugust2021Member2022-12-310001860543us-gaap:TradeNamesMember2022-12-310001860543us-gaap:TradeNamesMember2021-12-310001860543cdre:ProductsMember2022-01-012022-12-310001860543cdre:ProductsMember2021-01-012021-12-310001860543cdre:RadarLeatherDivisionS.r.lMembercdre:ProductsMember2022-01-012022-12-310001860543cdre:CyalumeAcquisitionMembercdre:ProductsMember2022-01-012022-12-310001860543cdre:ProductsMember2022-12-310001860543cdre:DistributionServicesMember2022-12-310001860543cdre:ProductsMember2021-12-310001860543cdre:DistributionServicesMember2021-12-310001860543cdre:ProductsMember2020-12-310001860543cdre:DistributionServicesMember2020-12-310001860543cdre:NewCreditAgreementAugust2021Member2021-01-012021-12-310001860543us-gaap:TradeNamesMember2022-01-012022-12-310001860543us-gaap:TechnologyBasedIntangibleAssetsMember2022-01-012022-12-310001860543us-gaap:NoncompeteAgreementsMember2022-01-012022-12-310001860543us-gaap:CustomerRelationshipsMember2022-01-012022-12-310001860543us-gaap:TradeNamesMember2021-01-012021-12-310001860543us-gaap:TechnologyBasedIntangibleAssetsMember2021-01-012021-12-310001860543us-gaap:NoncompeteAgreementsMember2021-01-012021-12-310001860543us-gaap:CustomerRelationshipsMember2021-01-012021-12-310001860543cdre:CyalumeAcquisitionMemberus-gaap:TrademarksMember2022-05-042022-05-040001860543us-gaap:TradeNamesMember2022-12-310001860543us-gaap:TechnologyBasedIntangibleAssetsMember2022-12-310001860543us-gaap:NoncompeteAgreementsMember2022-12-310001860543us-gaap:CustomerRelationshipsMember2022-12-310001860543us-gaap:TradeNamesMember2021-12-310001860543us-gaap:TechnologyBasedIntangibleAssetsMember2021-12-310001860543us-gaap:NoncompeteAgreementsMember2021-12-310001860543us-gaap:CustomerRelationshipsMember2021-12-310001860543us-gaap:RestrictedStockUnitsRSUMember2022-12-310001860543us-gaap:RestrictedStockMember2022-12-310001860543us-gaap:EmployeeStockOptionMember2022-12-3100018605432021-11-2200018605432021-11-1100018605432021-08-112021-08-110001860543us-gaap:RetainedEarningsMember2022-01-012022-12-310001860543us-gaap:RetainedEarningsMember2021-01-012021-12-310001860543us-gaap:DisposalGroupNotDiscontinuedOperationsMembercdre:DaventryUkFacilityMember2022-01-012022-12-310001860543us-gaap:DisposalGroupNotDiscontinuedOperationsMembercdre:DaventryUkFacilityMember2022-11-300001860543us-gaap:AccruedLiabilitiesMemberus-gaap:InterestRateSwapMember2022-12-310001860543us-gaap:AccruedLiabilitiesMemberus-gaap:InterestRateSwapMember2021-12-310001860543us-gaap:InterestRateSwapMember2022-12-310001860543us-gaap:OtherCurrentAssetsMemberus-gaap:InterestRateSwapMember2021-12-310001860543us-gaap:OtherAssetsMemberus-gaap:InterestRateSwapMember2021-12-310001860543us-gaap:OtherCurrentAssetsMemberus-gaap:InterestRateSwapMember2022-12-310001860543us-gaap:OtherAssetsMemberus-gaap:InterestRateSwapMember2022-12-310001860543us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMember2022-12-310001860543us-gaap:FairValueMeasurementsRecurringMember2022-12-310001860543us-gaap:FairValueInputsLevel2Memberus-gaap:FairValueMeasurementsRecurringMember2021-12-310001860543us-gaap:InterestRateSwapMember2021-12-310001860543us-gaap:FairValueMeasurementsRecurringMember2021-12-310001860543cdre:NewCreditAgreementAugust2021Member2022-12-310001860543cdre:NewCreditAgreementAugust2021Member2021-12-310001860543cdre:AfcoCreditCorporationMemberus-gaap:LoansPayableMember2022-07-012022-07-310001860543cdre:IpfsCorporationMembercdre:ShortTermLoanFacilityEnteredInNovember2021Member2021-11-012021-11-300001860543cdre:IpfsCorporationMembercdre:ShortTermLoanFacilityEnteredInJuly2021Member2021-07-012021-07-310001860543cdre:AonPremiumFinanceMemberus-gaap:LoansPayableMember2021-07-012021-07-310001860543us-gaap:InterestRateSwapMember2022-01-012022-12-310001860543cdre:TermLoanMembercdre:NewCreditAgreementAugust2021Member2021-08-202021-08-200001860543cdre:AfcoCreditCorporationMemberus-gaap:LoansPayableMember2022-07-310001860543cdre:IpfsCorporationMembercdre:ShortTermLoanFacilityEnteredInNovember2021Member2021-11-300001860543cdre:IpfsCorporationMemberus-gaap:LoansPayableMember2021-07-310001860543cdre:IpfsCorporationMembercdre:ShortTermLoanFacilityEnteredInJuly2021Member2021-07-310001860543cdre:AonPremiumFinanceMemberus-gaap:LoansPayableMember2021-07-310001860543us-gaap:RevolvingCreditFacilityMembercdre:NewCreditAgreementAugust2021Member2022-12-310001860543cdre:TermLoanMembercdre:NewCreditAgreementAugust2021Member2022-12-310001860543cdre:TermLoanMember2022-12-310001860543cdre:OtherLongTermDebtMember2022-12-310001860543us-gaap:RevolvingCreditFacilityMembercdre:NewCreditAgreementAugust2021Member2021-12-310001860543cdre:TermLoanMembercdre:NewCreditAgreementAugust2021Member2021-12-310001860543cdre:TermLoanMember2021-12-310001860543cdre:TermLoanMembercdre:NewCreditAgreementAugust2021Member2021-08-200001860543srt:MinimumMembercdre:CanadianCreditFacilityMemberus-gaap:LondonInterbankOfferedRateLIBORMember2022-01-012022-12-310001860543srt:MinimumMembercdre:CanadianCreditFacilityMemberus-gaap:BaseRateMember2022-01-012022-12-310001860543srt:MaximumMembercdre:CanadianCreditFacilityMemberus-gaap:LondonInterbankOfferedRateLIBORMember2022-01-012022-12-310001860543srt:MaximumMembercdre:CanadianCreditFacilityMemberus-gaap:BaseRateMember2022-01-012022-12-310001860543srt:MinimumMembercdre:NewCreditAgreementAugust2021Memberus-gaap:LondonInterbankOfferedRateLIBORMember2021-08-202021-08-200001860543srt:MinimumMembercdre:NewCreditAgreementAugust2021Memberus-gaap:BaseRateMember2021-08-202021-08-200001860543srt:MaximumMembercdre:NewCreditAgreementAugust2021Memberus-gaap:LondonInterbankOfferedRateLIBORMember2021-08-202021-08-200001860543srt:MaximumMembercdre:NewCreditAgreementAugust2021Memberus-gaap:BaseRateMember2021-08-202021-08-200001860543cdre:KandersCompanyIncMember2022-01-012022-12-310001860543us-gaap:OperatingSegmentsMembercdre:ProductsMember2022-01-012022-12-310001860543us-gaap:OperatingSegmentsMembercdre:DistributionServicesMember2022-01-012022-12-310001860543us-gaap:MaterialReconcilingItemsMember2022-01-012022-12-310001860543cdre:ReimbursableDevelopmentContractMember2022-01-012022-12-310001860543us-gaap:OperatingSegmentsMembercdre:ProductsMember2021-01-012021-12-310001860543us-gaap:OperatingSegmentsMembercdre:DistributionServicesMember2021-01-012021-12-310001860543us-gaap:MaterialReconcilingItemsMember2021-01-012021-12-310001860543cdre:ReimbursableDevelopmentContractMember2021-01-012021-12-310001860543us-gaap:CommonStockMember2022-12-310001860543us-gaap:CommonStockMember2021-12-310001860543us-gaap:CommonStockMember2020-12-3100018605432021-08-012021-08-310001860543cdre:CyalumeAcquisitionMember2022-05-042022-05-040001860543cdre:RadarLeatherDivisionS.r.lMember2022-01-112022-01-110001860543cdre:CyalumeAcquisitionMember2022-01-012022-12-3100018605432020-12-310001860543cdre:ExecutiveCompensationPlanMembercdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember2022-03-092022-03-090001860543cdre:ExecutiveCompensationPlanMemberus-gaap:SellingGeneralAndAdministrativeExpensesMembercdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember2022-01-012022-12-310001860543us-gaap:RestrictedStockUnitsRSUMember2022-01-012022-12-310001860543us-gaap:RestrictedStockMember2022-01-012022-12-310001860543us-gaap:EmployeeStockOptionMember2022-01-012022-12-310001860543us-gaap:AdditionalPaidInCapitalMember2022-01-012022-12-310001860543us-gaap:AdditionalPaidInCapitalMember2021-01-012021-12-310001860543cdre:CyalumeAcquisitionMemberus-gaap:TechnologyBasedIntangibleAssetsMember2022-05-042022-05-040001860543cdre:CyalumeAcquisitionMemberus-gaap:CustomerRelationshipsMember2022-05-042022-05-040001860543cdre:RadarLeatherDivisionS.r.lMemberus-gaap:TrademarksMember2022-01-112022-01-110001860543cdre:RadarLeatherDivisionS.r.lMemberus-gaap:TechnologyBasedIntangibleAssetsMember2022-01-112022-01-110001860543cdre:RadarLeatherDivisionS.r.lMemberus-gaap:CustomerRelationshipsMember2022-01-112022-01-1100018605432022-06-3000018605432023-03-1000018605432021-11-040001860543srt:BoardOfDirectorsChairmanMember2021-01-012021-12-310001860543us-gaap:OverAllotmentOptionMember2022-07-142022-07-140001860543cdre:SecondaryOfferingMember2022-06-092022-06-090001860543us-gaap:IPOMember2021-11-032021-11-030001860543srt:MinimumMembercdre:NewCreditAgreementAugust2021Member2021-08-200001860543srt:MaximumMembercdre:NewCreditAgreementAugust2021Member2021-08-200001860543us-gaap:RestrictedStockMember2021-11-042021-11-040001860543srt:MaximumMembercdre:ScenarioPeriodTwoMembercdre:NewCreditAgreementAugust2021Member2021-08-202021-08-200001860543cdre:ScenarioPeriodOneMembercdre:NewCreditAgreementAugust2021Member2021-08-202021-08-200001860543us-gaap:RevolvingCreditFacilityMembercdre:CanadianCreditFacilityMember2022-12-310001860543cdre:TermLoanMembercdre:NewCreditAgreementAugust2021Member2022-01-012022-12-310001860543cdre:ScenarioPeriodThreeMembercdre:NewCreditAgreementAugust2021Member2021-08-202021-08-200001860543cdre:TermLoanMembercdre:NewCreditAgreementAugust2021Member2021-01-012021-12-310001860543cdre:NewCreditAgreementAugust2021Member2021-08-202021-08-2000018605432021-03-012021-03-310001860543cdre:ExecutiveCompensationPlanMemberus-gaap:SellingGeneralAndAdministrativeExpensesMembercdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember2022-12-310001860543cdre:ExecutiveCompensationPlanMembercdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember2022-01-012022-12-310001860543cdre:ExecutiveCompensationPlanMembercdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember2022-03-180001860543cdre:ExecutiveCompensationPlanMembercdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember2022-03-090001860543cdre:CyalumeAcquisitionMember2022-05-040001860543cdre:RadarLeatherDivisionS.r.lMember2022-01-110001860543cdre:RadarLeatherDivisionS.r.lMember2022-01-012022-12-3100018605432022-12-3100018605432021-12-3100018605432022-01-012022-12-3100018605432021-01-012021-12-31iso4217:USDiso4217:USDxbrli:sharesxbrli:sharesxbrli:purecdre:itemiso4217:CADcdre:segment

UNITED STATES

SECURITIES AND EXCHANGE COMMISSION

WASHINGTON, D.C. 20549

FORM 10-K

ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934

For the fiscal year ended December 31, 2022

OR

TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934

For The Transition Period FromTo

Commission file number: 001-40698

CADRE HOLDINGS, INC.

(Exact name of registrant as specified in its charter)

Delaware

38-3873146

(State of Other Jurisdiction of incorporation or Organization)

(I.R.S. Employer Identification No.)

13386 International Parkway, Jacksonville, FL

32218

(Address of principal executive offices)

(Zip code)

Registrant's telephone number, including area code: (904) 741-5400

Securities registered pursuant to Section 12(b) of the Act:

Name Of Each Exchange

Title of Each Class

Trading Symbol(s)

On Which Registered

Common Stock, $0.0001 Par Value per Share

CDRE

New York Stock Exchange

Securities registered pursuant to Section 12(g) of the Act: None

Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Yes No

Indicate by check mark if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act. Yes No

Indicate by check mark whether the registrant: (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days. Yes No

Indicate by check mark whether the Registrant has submitted electronically; every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T (§232.0405 of this chapter) during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).    Yes No

Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or an emerging growth company. See the definitions of “large accelerated filer,” “accelerated filer,” “smaller reporting company,” and “emerging growth company” in Rule 12b-2 of the Exchange Act.

Large accelerated filer 

Accelerated filer 

Non-accelerated filer 

Smaller reporting company 

Emerging growth company 

If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act.

Indicate by check mark whether the registrant has filed a report on and attestation to its management’s assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report.

If securities are registered pursuant to Section 12(b) of the Act, indicate by check mark whether the financial statements of the registrant included in the filing reflect the correction of an error to previously issued financial statements. 

Indicate by check mark whether any of those error corrections are restatements that required a recovery analysis of incentive-based compensation received by any of the registrant’s executive officers during the relevant recovery period pursuant to §240.10D-1(b).

Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act). Yes No

The aggregate market value of the shares of Cadre Holdings, Inc. common stock held by non-affiliates of the registrant as of June 30, 2022 was $366,489,414 based on the closing price of $19.67 as reported by the New York Stock Exchange.

As of March 10, 2023, there were 37,332,271 shares of common stock, par value $0.0001, outstanding

Documents Incorporated by Reference

Portions of the registrant’s definitive proxy statement for its 2023 Annual Meeting of Stockholder, or the Proxy Statement, to be filed within 120 days after the end of the fiscal year covered by this Annual Report on Form 10-K, are incorporated by reference in Part III. Except with respect to information specifically incorporated by reference in this Annual Report, the Proxy Statement shall not be deemed to be filed as part hereof.

TABLE OF CONTENTS

    

Page

PART I

Item 1. Business

5

Item 1A. Risk Factors

13

Item 1B. Unresolved Staff Comments

30

Item 2. Properties

30

Item 3. Legal Proceedings

31

Item 4. Mine Safety Disclosures

31

PART II

Item 5. Market for Registrant’s Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities

31

Item 6. [Reserved]

31

Item 7. Management’s Discussion and Analysis of Financial Condition and Results of Operations

32

Item 7A. Quantitative and Qualitative Disclosures About Market Risk

42

Item 8. Financial Statements and Supplementary Data

43

Item 9. Changes in and Disagreements with Accountants on Accounting and Financial Disclosure

81

Item 9A. Controls and Procedures

81

Item 9B. Other Information

82

PART III

Item 10. Directors, Executive Officers and Corporate Governance

82

Item 11. Executive Compensation

82

Item 12. Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters

82

Item 13. Certain Relationships and Related Transactions, and Director Independence

83

Item 14. Principal Accounting Fees and Services

83

PART IV

Item 15. Exhibits and Financial Statement Schedules

83

2

CAUTIONARY STATEMENT

This Annual Report on Form 10-K (this “Report”) contains “forward-looking statements” within the meaning of the safe harbor provisions of the U.S. Private Securities Litigation Reform Act of 1995. Except where the context otherwise requires or where otherwise indicated, the terms the “Company”, “Cadre”, “we,” “us,” and “our,” refer to the consolidated business of Cadre Holdings, Inc. and its consolidated subsidiaries. All statements in this Report, other than statements of historical fact, are forward-looking statements. These forward-looking statements are based on management’s current expectations, assumptions, hopes, beliefs, intentions, and strategies regarding future events and are based on currently available information as to the outcome and timing of future events. In some cases, you can identify forward-looking statements because they contain words such as “believe,” “may,” “will,” “estimate,” “continue,” “anticipate,” “intend,” “expect,” “should,” “would,” “could,” “plan,” “predict,” “potential,” “seem,” “seek,” “future,” “outlook,” or the negative of these words or other similar terms or expressions that concern our expectations, strategy, plans, or intentions. The Company cautions you that these forward-looking statements are subject to all of the risks and uncertainties, most of which are difficult to predict and many of which are beyond the control of the Company, incident to its business.

Because forward-looking statements relate to the future, they are subject to inherent uncertainties, risks and changes in circumstances that are difficult to predict and many of which are outside of our control. These forward-looking statements are based on information available as of the date of this Report (or, in the case of forward-looking statements incorporated herein by reference, if any, as of the date of the applicable filed document), and any accompanying supplement, and current expectations, forecasts and assumptions, and involve a number of risks and uncertainties. Accordingly, forward-looking statements should not be relied upon as representing the Company’s views as of any subsequent date, and the Company does not undertake any obligation to update forward-looking statements to reflect events or circumstances after the date they were made, whether as a result of new information, future events or otherwise, except as may be required under applicable securities laws. New risks and uncertainties emerge from time to time and it is not possible for us to predict all risks and uncertainties that could have an impact on the forward-looking statements contained in this Report. We cannot assure you that the results, events, and circumstances reflected in the forward-looking statements will be achieved or occur, and actual results, events, or circumstances could differ materially from those described in the forward-looking statements. We may not actually achieve the plans, intentions, or expectations disclosed in our forward-looking statements and you should not place undue reliance on our forward-looking statements. In addition, statements that “we believe” and similar statements reflect our beliefs and opinions on the relevant subject. Our forward-looking statements do not reflect the potential impact of any future acquisitions, partnerships, mergers, dispositions, joint ventures, or investments we may make.

As a result of a number of known and unknown risks and uncertainties, our actual results or performance may be materially different from those expressed or implied by these forward-looking statements. Some factors that could cause actual results to differ include:

the availability of capital to satisfy our working capital requirements;
anticipated trends and challenges in our business and the markets in which we operate;
our ability to anticipate market needs or develop new or enhanced products to meet those needs;
our expectations regarding market acceptance of our products;
the success of competing products by others that are or become available in the market in which we sell our products;
the impact of adverse publicity about the Company and/or its brands, including without limitation, through social media or in connection with brand damaging events and/or public perception;
changes in political, economic or regulatory conditions generally and in the markets in which we operate;
the impact of political unrest, natural disasters or other crises, terrorist acts, acts of war and/or military operations;
our ability to maintain or broaden our business relationships and develop new relationships with strategic alliances, suppliers,

customers, distributors or otherwise;

our ability to retain and attract senior management and other key employees;

3

our ability to quickly and effectively respond to new technological developments;
the effect of an outbreak of disease or similar public health threat, such as the COVID-19 pandemic, on the Company’s business;
logistical challenges related to supply chain disruptions and delays;
the impact of inflationary pressures and our ability to mitigate such impacts with pricing and productivity;
the possibility that the Company may be adversely affected by other economic, business, and/or competitive factors;
the ability of our information technology systems or information security systems to operate effectively, including as a result of security breaches, viruses, hackers, malware, natural disasters, vendor business interruptions or other causes;
our ability to properly maintain, protect, repair or upgrade our information technology systems or information security systems, or problems with our transitioning to upgraded or replacement systems;
our ability to protect our trade secrets or other proprietary rights and operate without infringing upon the proprietary rights of others and prevent others from infringing on the proprietary rights of the Company;
our ability to maintain a quarterly dividend;
the increased expenses associated with being a public company and the related increased disclosure and reporting obligations;
any material differences in the actual financial results of the Company’s past and future acquisitions as compared with the Company’s expectations; and
other risks and uncertainties set forth in the section entitled “Risk Factors” of this Report, which is incorporated herein by reference.

Any expectations based on these forward-looking statements are subject to risks and uncertainties and other important factors, including those discussed in this Report, specifically the sections titled “Risk Factors” and “Management’s Discussion and Analysis of Financial Condition and Results of Operations.” Other risks and uncertainties are and will be disclosed in our prior and future filings with the Securities and Exchange Commission (“SEC”). The following information should be read in conjunction with the Consolidated Financial Statements included in this Report.

Neither we nor any other person assumes responsibility for the accuracy and completeness of any of these forward-looking statements.

4

PART I

Item 1. Business

BUSINESS

Business Overview

For over 55 years, we have been a global leader in the manufacturing and distribution of safety and survivability equipment for first responders. Our equipment provides critical protection which allows its users to safely perform their duties and protect those around them in hazardous or life-threatening situations. Through our dedication to superior quality, we establish a direct covenant with end users that our products will perform and keep them safe when they are most needed. We sell a wide range of products including body armor, explosive ordnance disposal equipment and duty gear through both direct and indirect channels. In addition, through our owned distribution, we serve as a one-stop shop for first responders providing equipment we manufacture as well as third-party products including uniforms, optics, boots, firearms and ammunition. The majority of our diversified product offering is governed by rigorous safety standards and regulations. Demand for our products is driven by technological advancement as well as recurring modernization and replacement cycles for the equipment to maintain its efficiency, effective performance and regulatory compliance.

As discussed below, we believe we have established leading market positions in our major product categories through high-quality standards, innovation and a direct connection to the end users, including being a leading provider of explosive ordnance disposal technician equipment globally as well as a leading provider of safety holsters and a top provider of soft body armor for first responders in the U.S. We service the ever-changing needs of our end users by investing in research and development for new product innovation and technical advancements that continually raise the standards for safety and survivability equipment in the first responder market. Our target end user base includes domestic and international first responders such as state and local law enforcement, fire and rescue, explosive ordnance disposal technicians, emergency medical technicians (“EMT”), fishing and wildlife enforcement and departments of corrections, as well as federal agencies including the U.S. Department of State (“DoS”), U.S. Department of Defense (“DoD”), U.S. Department of Interior (“DoI”), U.S. Department of Justice (“DoJ”), U.S. Department of Homeland Security (“DHS”), U.S. Department of Corrections (“DoC”) and numerous foreign government agencies. We have a large and diverse customer base, with no individual customer representing more than 10% of our total revenue.

We are committed to honoring those who put their lives in danger through the SAVES CLUB®, which pays homage to first responders who experience a life-threatening incident in the line of work in which our armor or duty gear contribute to saving their lives. The SAVES CLUB® currently has over 2,000 members and counting. With the help of our suppliers, distributors and first responder end users, we strive to fulfill the Company creed: Together, We Save Lives.

Industry Overview

The market for safety and survivability equipment serving first responders focuses on providing a diverse set of protective and mission enhancing products and solutions to our target end users. The market is driven by multiple factors including customer refresh cycles, growing number of personnel employed by first responder organizations, equipment replacement and modernization trends, greater emphasis on public and first responders’ safety and demographic shifts.

Body armor, explosive ordnance disposal equipment and duty gear comprise the core product areas in the safety and survivability equipment market and law enforcement personnel growth is a significant driver for our business. The U.S. Bureau of Labor Statistics projects the number of law enforcement personnel in the U.S. to increase at a faster rate than broader labor market growth over the 10-year period from 2019 to 2029, or 5%, from 813,500 in 2019 to 854,200 in 2029. Demand for first responder safety and survivability equipment is also fueled by increasing law enforcement budgets.

In addition to the macro industry trends, each of these product segments experience unique drivers in and of themselves. Increasing mandatory body armor use and refresh policies, evolving technical standards and increases in tactical or special weapons and tactics (“SWAT”) law enforcement personnel act as tailwinds to the body armor market. Meanwhile, the explosive ordnance disposal equipment market is driven by the continued emergence of new global threats while duty gear is driven mainly by product use and replacement cycles.

5

Our management estimates the annual addressable market for soft body armor (including tactical soft armor) to be approximately $870 million. We also estimate explosive ordnance disposal equipment to have an addressable market of approximately $245 million over the seven-to-ten year life cycle of the products’ installed base. Finally, the annual addressable market for holsters for the global law enforcement and military and consumer markets is estimated to be approximately $380 million.

The international market is also poised for growth as foreign governments face increasingly complex safety challenges and seek to replace legacy equipment. Additionally, we foresee the demand for safety and survivability equipment from overseas markets to increase due to heightened awareness of the importance and effectiveness of such products and as countries are exposed to new threats. Our management estimates our addressable number of total law enforcement personnel outside the U.S. to be approximately 9.7 million, representing a substantial market opportunity.

Our management team believes that the safety and survivability equipment industry for first responders represents a stable and growing market with long-term opportunities. Given our strong market standing, direct connection to the end users, extensive distribution network, long history of innovations and high-quality standards, we believe we are well positioned to capitalize on the positive market dynamics.

Competitive Strengths

Leading, independent global provider of safety and survivability equipment for first responders. Our history as a leading provider of high-quality safety and survivability equipment dates back to 1964. Our differentiated value proposition is built on superior quality combined with an unwavering focus on critical safety standards, making us the trusted brand name for first responders. Our extensive product breadth allows us to serve as a one-stop shop for our end users and their safety and survivability equipment needs.

Strong market positions. Based on data we collect related to end users and publicly available information on awarded contracts and purchases, we believe we have leading market positions across multiple product categories through superior quality and performance differentiating us from our competition. By way of reference, we sell concealable tactical, hard armor, or duty retention holsters to the majority of the top 50 police departments in the U.S. by size. Furthermore, we are a party to multi-year contracts for the largest bomb suit teams in the world including the DoD. Our products continually exceed stringent industry safety standards and are recognized for advancements in performance through innovation and technological enhancement.

Mission-critical products with recurring demand characteristics. Our products provide critical protection to their end users as well as those around them, with limited or no room for error. As a result, stringent safety standards and customary warranty provisions create refresh cycles on over 80% of the equipment we supply to ensure efficient and effective performance at all times. Demand associated with these refresh cycles drives a highly predictable recurring revenue stream. The majority of our remaining revenue is associated consumable products driving recurring sales based on replenishment needs.

Attractive macro-economic and secular tailwinds driving demand and visibility for our products. The vast majority of our end markets are acyclical in nature, as their demand is driven primarily by the first responder budgets, and relatively unaffected by economic cycles. Our business has benefitted from key shifts serving as tailwinds to our growth strategy including the increasing focus on safety, replacement and modernization trends as well as demographic shifts and urbanization.

Compelling organic and inorganic growth roadmap. Leveraging our differentiated product development process and technical knowhow, leading domestic market position and first mover advantage with our suppliers, we plan to drive profitable organic revenue growth via new product development and geographic expansion. In particular, international expansion is an especially important initiative in our organic growth roadmap due to the significant market share opportunity and increasing investments in safety and survivability equipment in various key geographic markets. We expect to supplement our organic growth through a targeted M&A program spanning our existing core products and markets as well as attractive adjacencies.

Attractive financial profile with strong EBITDA margins and free-cash-flow generation. We generate strong profitability through diligent portfolio management of customers and contracts and continued focus on cost structure to drive operating leverage. Our strong profitability combined with minimal capital expenditure requirements result in high free-cash-flow generation, which is a key driver for our internal research and development initiatives and targeted M&A program. Our Adjusted EBITDA Conversion Rate ((Adjusted EBITDA less capital expenditures) / Adjusted EBITDA) has consistently been greater than 90%.

6

Tenured management with significant public company platforms. Our management team is comprised of executive officers with extensive experience at public company platforms including Armor Holdings Inc., Danaher Corporation, General Electric Company and IDEX Corporation. Together they bring an established track record of strong performance operating and growing public companies both organically and via acquisitions. This experience has created a differentiated approach to our operating model through their expertise in building a culture of operational and cultural excellence, complexity reduction, and innovation.

Long-term customer relationships across diverse end markets and geographies. We maintain long-term relationships with over 23,000 first responders and federal agencies both domestically and internationally, with top customer relationships averaging an excess of 15 years. Our global presence spans over 100 countries across North America, Europe and other regions.

Products

We design and manufacture a diversified product portfolio of critical safety and survivability equipment to protect first responders. We maintain clear market-leadership positions in certain core product categories including body armor, explosive ordnance disposal equipment and duty gear. Over 80% of our product line is tied to customary or mandated refresh cycles of between five and ten years, which drives a highly predictable recurring revenue stream. The majority of the remaining revenue is associated consumable products. Our overall strategy is to drive growth by leveraging our leading market shares and competitively differentiated offerings in each of our core product categories, including:

Body Armor. We offer a full range of field-proven advanced armor solutions. Our products incorporate cutting-edge technology, innovative materials and processes in order to provide the best protection, reduce weight and optimize ergonomics for the end user. The majority of our armor products, which comply with NIJ or other applicable standards, are made-to-measure. We recently launched an industry-first partnership to provide law enforcement officers and first responders with the ability to determine size through the use of mobile phone scanning and artificial intelligence technologies.

Our principal body armor product offerings include concealable, corrections and tactical armor, which provide varying levels of protection against ballistic or sharp instrument threats. Our body armor products are sold under the well-known Safariland® and Protech® Tactical brand names. We also sell products in partnership with industry leading developer Hardwire LLC.

Our body armor panels manufactured in the United States are designed to meet applicable ballistic performance standards established by the NIJ. We also manufacture body armor in Canada, England and Lithuania that is certified to meet applicable international armor standards. We also distribute a variety of third-party items, including helmets, and face shields for protection from blunt trauma and explosive shrapnel.

Graphic

Explosive Ordnance Disposal. We are the global leader of a highly engineered portfolio of critical operator survival suits, remotely operated vehicles, specialty tools, blast sensors, accessories and vehicle blast attenuation seats for bomb safety technicians. As the most trusted brand in the market, Med-Eng is the go-to source for explosive ordnance solutions in the developed world. Our products provide end users with the latest protective technologies integrated with electronic components and communications equipment.

Med-Eng has a fielded installed base of bomb suits in over 100 countries, yielding predictable, recurring replacement cycles. Our continuous investment in R&D supported by our existing IP portfolio, drives next- generation technologies designed to meet the ever-evolving threats for operators in the field. Select customers include the U.S. Army, U.S. Navy, U.S. Air Force, U.S. Marines, FBI, ATF and all the armed forces of NATO countries.

7

Graphic

Duty Gear. We are the industry leader in holster innovation and safety engineering and our products incorporate industry standard safety locking mechanisms on which a majority of first responders are trained. The end user base for our holster products includes state and local law enforcement, federal agencies including the DoS, DoD, DoI, DHS, and DoC, foreign police and military agencies, and the commercial concealed carry market. We also offer a complementary line of officer duty gear including belts and accessories.

In connection with the mission critical nature of duty gear products, we dedicate significant product development resources to ensure efficient and effective performance of our products. We manufacture and sell duty gear and commercial offerings under the widely recognized Safariland®, Radar® and Bianchi® brands.

Graphic

Other Protective and Law Enforcement Equipment. Supplementary to our core product offerings, we design, manufacture, assemble, and market a suite of equipment to round out our product portfolio. Key products include communications gear, forensic and investigation products, firearms cleaning solutions, and crowd control products. These products are marketed under several well-known niche brands. In addition, through our owned distribution, we serve as a one-stop shop for first responders providing equipment we manufacture as well as third-party products including uniforms, optics, boots, firearms and ammunition.

Growth Strategy

Our growth plan consists of a multi-pronged approach that includes driving profitable core revenue growth through new product introductions and international market expansion combined with targeted acquisitions, enhanced through our operating model.

Profitable Core Revenue Growth. We believe that our leading market positions across a range of core categories will continue to yield significant growth opportunities. Our management team is focused on delivering new product launches, increasing customer wallet share, executing on key new contract opportunities and expanding our high-margin e-commerce and direct-to-consumer capabilities to continue to drive revenue growth. Examples of recent product innovation include the development of a 3D body sizing solution for soft armor, introduction of our next generation holsters, a new tactical armor solution, and working with key suppliers on the use of emerging materials for utilization in new armor products. We are also seeking to expand our leadership in high-growth technologies through the development of our blast sensor equipment for soldier protection. We believe this opportunity could represent a total potential addressable market opportunity of up to approximately $500 million based on the total size of the DoD branches ultimately participating in the program. The requirement for blast sensors and the potential market for all branches of the U.S. military is supported by the Blast Pressure Exposure Study Improvement Act which was signed into law as part of the National Defense Authorization Act for Fiscal Year 2020.

International Market Expansion. We are also committed to increasing our market share internationally. Given our leading domestic market position and our products’ high-quality standards and performance, we believe we are well positioned to take advantage of the growth in international demand for safety and survivability equipment for first responders. We intend to penetrate certain international markets through leveraging existing relationships, building local market teams and expansion into relevant market adjacencies.

Targeted M&A Program. To supplement organic growth and internal research and development, our management team has historically undertaken a targeted M&A program, completing 14 transactions to date. These strategic acquisitions have allowed us to

8

expand our product and technology offerings, enter new markets and expand geographically to achieve attractive returns in our invested capital period.

We maintain a robust pipeline of opportunistic M&A opportunities, spanning our existing core products and markets as well as attractive adjacencies within the safety and survivability landscape. We plan to utilize our relatively high free-cash-flow generation and historical success in acquisitions to drive favorable acquisition structures and efficient integration. Our operating model, passion around connecting with customers and expansive channel help maximize the value created from our acquisitions.

Continuous Margin Improvement Initiatives. Our management team has shown a strong track record of achieving cost structure optimization to drive operating leverage, as evidenced by past years’ margin improvements. Our operating model starts with complexity reduction then uses lean tools and methods to continuously improve operational and commercial processes. Strategic initiatives completed over the past few years include among others, rationalizing the Company’s manufacturing footprint, divesting non-core activities, enhancing our supply chain and optimizing customer relationships and key contracts. Together these activities have helped enhance the Company’s manufacturing and sales operations, ultimately driving profitability growth.

Customers and Selling Channels

We sell our products through distributors and work directly with agencies to effectively reach end users. We classify our first responder customers into four categories: U.S. State and Local Agencies, International, U.S. Federal Agencies, and Commercial (which includes our direct-to-consumer sites).

U.S. State and Local Agencies. We have built relationships with the majority of domestic law enforcement agencies in the country, selling at least one product category to each of the top 50 major departments. Other end users in this category include fire and rescue, explosive ordnance disposal technicians, EMT, fishing and wildlife enforcement and departments of corrections. We sell our products through a network of longstanding third-party distributors as well as an owned distribution platform, both of which interact directly with agencies and end users.

International. Over the past three years, we have sold products to more than 100 countries globally. We service foreign defense ministries, foreign national law enforcement agencies and other foreign agencies through our distribution partners as well as through agency agreements with representatives to help service broad regions.

U.S. Federal Agencies. We sell to a variety of federal agencies including the DoS, DoD, DoI, DoJ and DHS Inc. Furthermore, we have long-standing contracts with key departments within the U.S. Army, U.S. Air Force, U.S. Navy and U.S. Marine Corps.

Commercial. Our Commercial channel consists primarily of sales through largely recognized e-commerce companies and retailers as well as through our own e-commerce sites.

We service each of our channels through in-field technical salespeople and an owned distribution network. Our traditional distribution network consists of longstanding distribution partners and agents for first responders and federal agencies, retailers and e-commerce platforms and our own website where we sell directly to the end user. We pair our in-house expertise with outside partners in order to provide our customers with the best service possible while maintaining a real-time understanding of end user needs. In total, we have 81 salespeople domestically and 21 internationally. We believe that by combining our third party network with our in-house salesforce and our extensive owned distribution network, we create continuous customer interaction and best- in-class service and training, providing us with a distinct advantage over our peers.

Our brand name recognition and reputation among our customers, diversified product line and extensive distribution network are central to our marketing strategy. We leverage these advantages along with involvement and support of several law enforcement associations to market our products.

Manufacturing and Raw Materials

We operate a global manufacturing footprint with 16 sites across North America and Europe. Each site has capacity to scale up without further material investment in machinery and equipment. Additionally, we manage a diverse global supplier base of leading

9

textile, fabric and raw material providers. We have multiple sources for each input in order to limit our dependency on any single vendor. No supplier makes up more than 10% of total purchases.

We are reliant on certain suppliers that provide us with the raw materials and components that we utilize in manufacturing our ballistic resistant garments. Although in some cases substitutable alternative materials and components may be obtained from other commercially available sources, any change in the materials and components that we utilize in manufacturing our ballistic resistant garments may require additional research and development, recertification as well as customer acceptance.

Competition

We compete in the large public safety and outdoor and recreation markets amongst other ancillary addressable markets. Competition in the public safety markets depends on the specific product in question but is generally based on a number of factors including product quality, safety performance, fit, price, and brand recognition. We believe that we have been able to compete successfully driven by the combination of our brand and product dependability, superior engineering and manufacturing capabilities, industry-leading product innovations, as well as on the breadth of our offering to customers.

Our primary competitors include, but are not limited to, Point Blank Enterprises, Inc., Avon Protection Systems, Inc., Central Lake Armor Express, Inc. (d/b/a Armor Express), as well as the Blackhawk division of Vista Outdoor Inc. None of our competitors across individual product categories compete in each of our product verticals, making us the only one-stop provider of critical safety and survivability equipment solutions in the market.

Certain of our products cross over into the broader outdoor and recreation market, which is highly fragmented and highly competitive. While we believe that acceptance in this market is principally driven by the ability to bring new and innovative products to market, price point is critical.

Human Capital

We have a total of 2,274 employees. Of these employees, 1,729 were engaged in manufacturing, 221 in sales, marketing, product management and customer support, 152 in corporate functions (IT, Finance, HR, Legal and Compliance, etc.), 127 in R&D, technical engineering, manufacturing engineering and project management, 33 retail store associates and 12 in various executive and administrative functions. None of our employees are represented by a union in collective bargaining with us. We believe that our employee relations are good. Our human capital objectives center around identifying, recruiting, retaining, incentivizing and integrating our existing and new employees.

Research and Development

Our significant IP portfolio combined with best-in-class product development and advanced materials processing separates us from our competitors. We have dedicated research and development centers at our manufacturing sites that specialize in product categories, including ballistics developments and state-of-the-art testing laboratory in Ontario, California, blast impact and technology development for explosive ordnances in Ottawa, Canada, and holster development and design in Jacksonville, FL, each of which focus on quality and product performance in order to generate critical real-time feedback. We aim to achieve efficient integration of quality materials and latest technologies to develop our products, which will allow us to leverage our first mover advantage from our suppliers.

Intellectual Property and Trademarks

We own significant intellectual property, including patents, trademarks, manufacturing processes and trade secrets related to our products, processes and business. Although our intellectual property plays an important role in maintaining our competitive position, we do not consider any single patent, trademark, manufacturing process or trade secret to be of material importance to any segment or to the business as a whole.

We own a total of 447 patents and pending patent applications worldwide, of which 402 are patents granted and 45 are pending patent applications, with expiry dates ranging from 2023 to 2045 in 33 jurisdictions. Of those 447 patents and pending patent applications, 329 are for utility patents and 118 are for design patents. We own patents and pending patent applications in the United

10

States, Australia, Austria, Belgium, Brazil, Canada, the People’s Republic of China, Czech Republic, Denmark, France, Germany, Hong Kong, India, Ireland, Israel, Italy, Japan, Luxembourg, Mexico, New Zealand, Netherlands, Norway, Poland, Portugal, Singapore, South Africa, South Korea, Spain, Sweden, Switzerland, Turkey, and the United Kingdom, as well as in the European Union.

The loss of patent protection for patents expiring in 2023 is not expected to have a material effect on our business.

Our material registered trademarks include SAFARILAND® and MED-ENG®.

The following table describes the material patents and patent applications owned or licensed by us, segregated by product category, including the range of expiry dates:

    

    

    

Range of

    

    

Range of

Number of

Expiration

Number of

Expiration Dates

Patents

Dates for

Pending Patent

(if Pending Patent

Product Category

    

Ownership

    

Granted

    

Granted Patents

    

Applications

    

Granted)

Body Armor

 

Safariland, LLC

 

38

 

2023 – 2041

 

3

 

2042

Body Armor

 

Pacific Safety Products, Inc.

 

1

 

2023

 

 

Duty Gear

 

Safariland, LLC

 

88

 

2023 – 2041

 

15

 

2036 – 2042

Duty Gear

Radar Leather Division S.r.l.

60

2023 – 2039

3

2037 – 2039

EOD

 

Med-Eng, LLC

 

93

 

2023 – 2045

 

2

 

2036 – 2040

Crowd Control

 

Defense Technology, LLC

 

32

 

2026 – 2038

 

4

 

2035 – 2042

Crowd Control

Safariland, LLC

1

2032

Crowd Control

Radar Leather Division S.r.l.

4

2029 – 2031

Other – Diversified

 

Safariland, LLC

 

32

 

2024 – 2041

 

3

 

2040 – 2041

Other – Diversified

 

Cyalume Technologies

 

53

 

2023 – 2039

 

15

 

2038 – 2042

Government Regulation

We are subject to federal licensing requirements with respect to the sale of some of our products in foreign countries. In addition, we are obligated to comply with a variety of federal, state and local regulations, both domestically and abroad, governing certain aspects of our operations and workplace.

The export of certain of our products from the U.S. is subject to various U.S. regulations, including laws and regulations relating to import-export controls, technology transfers, the International Traffic in Arms Regulations (“ITAR”), and the Export Administration Regulations (“EAR”). More specifically, to export some of our products in accordance with ITAR or EAR, we must obtain export authorizations or licenses from the U.S. government, primarily the U.S. Department of State for ITAR and the U.S. Department of Commerce for EAR. Also, the Arms Export Control Act of 1976 (“AECA”) requires that a certification be provided to the U.S. Congress prior to the granting of any license or other approval for certain transactions involving exports of any defense articles and defense services and for exports of major defense equipment.

Our business in Canada is subject to the Canadian Controlled Good Directorate Registration regime, which regulates commerce in controlled goods, meaning those that require a license to export, including ITAR items.

We are also subject to the Foreign Corrupt Practices Act (“FCPA”) along with similar anti-corruption laws worldwide which prohibit improper payments to foreign governments and their officials by U.S. and other business entities.

The transportation of certain of our products is subject to U.S. Department of Transportation Hazardous Material Regulations (“HMR”), which govern the transportation of hazardous materials in interstate, intrastate, and foreign commerce. Prior to transportation into and within the United States, explosives must be tested and classified by the U.S. Department of Transportation.

Domestically, the manufacture, sale, and purchase of certain products are subject to extensive federal, state, and local governmental regulation, with the primary regulatory body being the U.S. Bureau of Alcohol, Firearms, and Explosives (“ATF”). The primary federal laws are the National Firearms Act of 1934 (“NFA”), the Gun Control Act of 1968 (“GCA”) and the AECA. Among other things, the ATF conducts periodic audits of our facilities that hold Federal Firearms Licenses.

11

The Federal Acquisition Regulation (“FAR”) governs the majority of our contracts with U.S. federal agencies, mandating uniform policies and procedures across agencies and with each agency supplementing the FAR as needed. For example, the U.S. Department of Defense implements the FAR through the Defense Federal Acquisition Regulation Supplement (“DFARS”). Finally, agencies routinely audit and review government contractors for performance and compliance with applicable laws, regulations, and standards.

In addition, like many other manufacturers, we are subject to compliance with the Fair Labor Standards Act (“FLSA”), the Occupational Safety and Health Act (“OSHA”), data privacy laws, and many other regulations surrounding employment law, environmental law, taxation, and consumer protection.

Environmental Laws and Regulations

Our operations are subject to a variety of federal, state, and local laws and regulations relating to environmental protection, including those governing the discharge, treatment, storage, transportation, remediation, and disposal of hazardous materials and wastes; the restoration of damages to the environment; and health and safety matters. We have an excellent workplace safety track record and believe that our operations are in material compliance with these laws and regulations. We incur expenses in complying with environmental requirements and could incur higher costs in the future as a result of more stringent requirements that may be enacted in the future.

Impact of COVID-19

The global outbreak of COVID-19 was declared a pandemic by the World Health Organization and a national emergency by the U.S., and European governments in March 2020, with governments world-wide implementing safety measures restricting travel and requiring citizen lockdowns and self-confinements for quarantining purposes. During the years ended December 31, 2020, 2021, and 2022, this had negatively affected the U.S. and global economies, disrupted global supply chains, and resulted in significant transport restrictions and disruption of global financial markets.

An outbreak of disease or similar public health threat, such as the COVID-19 pandemic, could have, and in the case of the COVID-19 pandemic has had and may continue to have, a significant impact on the global supply chain, with restrictions and limitations on related activities causing disruption and delay, along with increased raw material, storage, and shipping costs. Any of these disruptions and delays may strain domestic and international supply chains, which could negatively affect the flow or availability of certain critical raw materials and finished good products that the Company relies upon. Furthermore, the foregoing impacts may negatively affect our logistical operations, including our fulfillment and shipping functions, which could result in periodic delays in the delivery of our products.

We expect that an outbreak of disease or similar public health threat, such as the COVID-19 pandemic, could have, and in the case of the COVID-19 pandemic may continue to have, an impact on the Company’s sales and profitability in future periods. The duration of these trends and the magnitude of such impacts cannot be precisely estimated at this time, as they are affected by a number of factors (some of which are outside management’s control), including those presented in Item 1A. Risk Factors.

Available Information

Our Internet address is www.cadre-holdings.com. We make available free of charge on or through our website our annual reports on Form 10-K, quarterly reports on Form 10-Q, current reports on Form 8-K, and amendments to those reports, and the proxy statement for our annual meeting of stockholders as soon as reasonably practicable after we electronically file such material with, or furnish it to, the SEC. Forms 3, 4 and 5 filed with respect to our equity securities under Section 16(a) of the Securities Exchange Act of 1934, as amended, are also available on our website. All of the foregoing materials are located at the ‘‘SEC Filings’’ tab. The information found on our website shall not be deemed incorporated by reference by any general statement incorporating by reference this report into any filing under the Securities Act of 1933, as amended, or under the Securities Exchange Act of 1934, as amended, and shall not otherwise be deemed filed under such laws. The SEC also maintains a website that contains reports, proxy and information statements, and other information regarding issuers that file electronically with the SEC at www.sec.gov. In addition, you may request a copy of any such materials, without charge, by submitting a written request to: Cadre Holdings, Inc., c/o the Secretary,

12

13386 International Parkway, Jacksonville, FL 32218. The contents of the websites identified above are not incorporated into this Annual Report on Form 10-K.

Item 1A. Risk Factors

RISK FACTORS

In addition to other information contained in this Annual Report on Form 10-K, the following risk factors should be carefully considered in evaluating our business, because such factors may have a significant impact on our business, operating results, liquidity and financial condition. As a result of the risk factors set forth below, actual results could differ materially from those mentioned in any forward-looking statements. Additional risks and uncertainties not presently known to us, or that we currently consider to be immaterial, may also impact our business, operating results, liquidity and financial condition. If any of the following risks occur, our business, operating results, liquidity and financial condition, and the price of our common stock, could be materially adversely affected.

Risk Factor Summary

The products we sell are inherently risky and could give rise to product liability, product warranty claims, and other loss contingencies.
Our markets are highly competitive, and if we are unable to compete effectively, we will be adversely affected.
Technological advances, the introduction of new products, and new design and manufacturing techniques could adversely affect our operations unless we are able to adapt to the resulting change in conditions.
We may seek to raise additional funds, finance acquisitions or develop strategic relationships by issuing capital stock that would dilute your ownership.
We may be unsuccessful in our future acquisition endeavors, if any, which may have an adverse effect on our business; in addition, some of the businesses we acquire may incur significant losses from operations.
Our business and growth may suffer if we are unable to attract and retain key officers or employees, including our Chief Executive Officer, Warren B. Kanders, as well as any loss of officers or employees due to illness or other events outside of our control.
We are uncertain of our ability to manage our growth.
We have significant payment obligations under the terms of our long-term debt, $151.3 million of which was outstanding as of December 31, 2022.
The concentration of our capital stock ownership with insiders will likely limit your ability to influence corporate matters.

Risks Related to Our Industry

The products we sell are inherently risky and could give rise to product liability, product warranty claims, and other loss contingencies.

The products that we manufacture are typically used in applications and situations that involve high levels of risk of personal injury. Failure to use our products for their intended purposes, failure to use or care for them properly, or their malfunction, or, in some limited circumstances, even correct use of our products, could result in serious bodily injury or death. Given this potential risk of injury, proper maintenance of our products is critical. Our products include: body armor and plates designed to protect against ballistic and sharp instrument penetration; explosive ordnance disposal products; police duty gear; and crowd control products.

13

Claims have been made, and are pending against certain of our subsidiaries, involving permanent physical injury and death allegedly caused by our products or arising from the design, manufacture or sale of such goods. If these claims are decided against us and we are found to be liable, we may be required to pay substantial damages and our insurance costs may increase significantly as a result, which could have a material adverse effect on our business, financial condition and results of operations. Also, a significant or extended lawsuit, such as a class action, could divert significant amounts of management’s time and attention.

We cannot assure you that our insurance coverage would be sufficient to cover the payment of any potential claim. In addition, we cannot assure you that this or any other insurance coverage will continue to be available or, if available, that we will be able to obtain it at a reasonable cost. Any material uninsured loss could have a material adverse effect on our business, financial condition and results of operations. In addition, the inability to obtain product liability coverage would prohibit us from bidding for orders from certain governmental customers because, at present, many bids from governmental entities require such coverage, and any such inability would have a material adverse effect on our business, financial condition, results of operations and liquidity.

Furthermore, while our products are rigorously tested for quality, our products nevertheless do, and may continue to, fail to meet customer expectations from time-to-time. Also, not all defects are immediately detectible. Failures could result from faulty design or problems in manufacturing. In either case, we could incur significant costs to repair and/or replace defective products under warranty. We have experienced such failures in the past, and remain exposed to such failures. In some cases, product redesigns and/or rework may be required to correct a defect, and such occurrences could adversely impact future business with affected customers. Our business, financial condition, results of operations and liquidity could be materially and adversely affected by any unexpected significant warranty costs.

We are subject to extensive government regulations, and our failure or inability to comply with these regulations could materially restrict our operations and subject us to substantial penalties.

We are subject to federal licensing requirements with respect to the export of certain of our products. In addition, we are obligated to comply with a variety of federal, state and local regulations, both domestically and abroad, governing certain aspects of our sales, operations and workplace, including regulations promulgated by, among others, the U.S. Departments of Commerce, Defense, Justice, Treasury, State and Transportation, the Federal Aviation Administration, the U.S. Environmental Protection Agency, the U.S. Bureau of Alcohol, Tobacco and Firearms, and the Equal Employment Opportunity Commission. The U.S. Bureau of Alcohol, Tobacco and Firearms also regulates our manufacturing and distribution of certain destructive devices, firearms, and explosives. We also ship hazardous goods, and in doing so, must comply with the regulations of the U.S. Department of Transportation for packaging and labeling. We are also required to comply with Controlled Goods Directorate Registration regime in Canada for explosive ordnance disposal products. Additionally, the failure to obtain applicable governmental approval and clearances could materially adversely affect our ability to continue to service the government contracts we maintain. Exports of some of our products to certain international destinations may require export authorization from U.S. export control authorities, including the U.S. Departments of Commerce and State, and authorizations may be conditioned on re-export restrictions. Failure to receive these authorizations may materially adversely affect our revenues and in turn our business, financial condition, results of operations and liquidity from international sales. Furthermore, we have material contracts with governmental entities and are subject to rules, regulations and approvals applicable to government contractors. We are also subject to routine audits to assure our compliance with these requirements.

While we continually work to enhance our international trade compliance programs, we cannot assure you that we are or will be in full compliance at all times with applicable laws and regulations governing the export and deemed export of defense articles, defense services, and dual-use products and services that are controlled by U.S. and/or foreign governments. In those instances where we have identified non-compliances with applicable laws or regulations, we have taken affirmative steps to correct or mitigate such identified failures and to self-report them to the cognizant U.S. or foreign government agencies. We also import significant volumes of foreign-made components and materials for use in our manufacturing processes, which may be subject to import duties and other regulations. Violations of international trade (export/ import) controls in the U.S. and elsewhere may result in severe criminal and/or civil penalties, which could have a material adverse effect on our business, financial condition, results of operations and liquidity.

Like other companies operating internationally, we are subject to the U.S. Foreign Corrupt Practices Act and other laws that prohibit improper payments to foreign governments and their officials by U.S. and other business entities. We operate in countries known to experience endemic corruption. Our extensive operations in such countries create risk of an unauthorized payment by one of our employees or agents, which would be in violation of various laws including the Foreign Corrupt Practices Act. Violations of the Foreign Corrupt Practices Act may result in severe criminal penalties, which could have a material adverse effect on our business, financial condition, results of operations and liquidity.

14

We have significant international operations and assets and, therefore, are subject to additional financial and regulatory risks.

We sell our products in foreign countries and seek to increase our level of international business activity. Our overseas operations are subject to various risks, including: U.S.-imposed embargoes and/or sanctions of sales to specific countries (which could prohibit sales of our products there); foreign import controls (which may be arbitrarily imposed and enforced and which could interrupt our supplies or prohibit customers from purchasing our products); exchange rate fluctuations; dividend remittance restrictions; expropriation of assets; war, civil uprisings and riots; government instability; the necessity of obtaining government approvals for both new and continuing operations; and legal systems of decrees, laws, taxes, regulations, interpretations and court decisions that are not always fully developed and that may be retroactively or arbitrarily applied.

One component of our strategy is to expand our operations into selected international markets. Military procurement, for example, has traditionally had a large international base. We actively market our products in Europe, North and South America, the Middle East, Africa, and Asia. However, we may be unable to execute our business model in these markets or new markets. Further, foreign providers of competing products and services may have a substantial advantage over us in attracting consumers and businesses in their countries due to earlier established businesses in those countries, greater knowledge with respect to the cultural differences of consumers and businesses residing in those countries and/or their focus on a single market. In pursuing our international expansion strategy, we face several additional risks, including:

foreign laws and regulations, which may vary by country, that may impact how we conduct our business;
uncertain costs of doing business in foreign countries, including different employment laws;
potential adverse tax consequences if taxing authorities in different jurisdictions worldwide disagree with our interpretation of various tax laws or our determinations as to the income and expenses attributable to specific jurisdictions, which could result in our paying additional taxes, interest and penalties;
technological differences that vary by marketplace, which we may not be able to support;
longer payment cycles and foreign currency fluctuations;
economic downturns; and
uncertainty of sustained revenue growth outside of the United States.

We may also be subject to unanticipated income taxes, excise duties, import taxes, export taxes or other governmental assessments. In addition, a percentage of the payments to us in our international markets are often in local currencies. Although most of these currencies are presently convertible into U.S. dollars, we cannot be sure that convertibility will continue. Even if currencies are convertible, the rate at which they convert is subject to substantial fluctuation. Our ability to transfer currencies into or out of local currencies may be restricted or limited. Any of these events could result in a loss of business or other unexpected costs, which could reduce revenue or profits and have a material adverse effect on our business, financial condition, results of operations and liquidity.

We routinely operate in areas where local government policies regarding foreign entities and the local tax and legal regimes are often uncertain, poorly administered and in a state of flux. We cannot, therefore, be certain that we are in compliance with, or will be protected by, all relevant local laws and taxes at any given point in time. A subsequent determination that we failed to comply with relevant local laws and taxes could have a material adverse effect on our business, financial condition, results of operations and liquidity. One or more of these factors could adversely affect our future international operations and, consequently, could have a material adverse effect on our business, financial condition, results of operation and liquidity.

Changes in global cultural, political, and financial market conditions could impair our international operations and financial performance.

We are subject to risks generally associated with doing business internationally. Some of our operations are conducted or products are sold in countries where economic growth has slowed, or where economies have suffered economic, social and/or political instability or hyperinflation. In addition, global economic uncertainty relating to the effects of fiscal and political crises and political and economic disputes, current or future ‘trade wars,’ changes in consumer spending, foreign currency exchange rate fluctuations, political unrest, wars, terrorist acts, and/or military operations, could have a material adverse effect on our financial condition, results of operations and cash flows.

15

The conflict between Russia and Ukraine could have a material adverse effect on our operations, results of operations, financial condition, liquidity and business outlook.

There is continued, sustained military conflict between Russia and Ukraine and continued disruption in the region is likely. As a result, new and stricter sanctions have been imposed by the U.S., Canada, the United Kingdom, the European Union, and other countries and organizations against officials, individuals, regions, and industries in Russia. Russia’s potential response to such sanctions, as well as prolonged unrest, intensified military activities and/or the implementation of more extensive sanctions impacting the region could have a material adverse effect on our operations, results of operations, financial condition, liquidity and business outlook.

Pandemics, epidemics or other disease outbreaks may negatively impact our business operations, financial condition, liquidity, and consolidated results of operations.

A widespread outbreak of disease can adversely affect the operation of our customers’ businesses, which could lead to a material decline in demand for our products and services and our customers’ ability to pay us for the products and services we have provided to them. A pandemic could also have material negative impact on the operation of our vendors’ and suppliers’ businesses and effect their ability to provide us the products and services we rely on to conduct our business and provide products and services to our customers. A widespread outbreak could potentially result in the infection of the Company's employees and diminish our ability to operate our business, service our customers or produce and sell our products. These potential negative impacts to our business could negatively impact our financial results and thereby reduce our operating results and borrowing capacity, which could limit our ability to operate our business. These situations can also lead to a general downturn in the equity markets which could negatively impact the value of the Company’s shares as well as increase the cost to the Company to raise equity capital. Any and all of the above situations could have a material adverse impact on our operations, results of operations, financial condition, liquidity and business outlook. Beginning in 2020, we felt the impact of the COVID-19 pandemic and related shelter-in-place orders which materially reduced the demand for many of our customers products and services which consequently negatively impacted the demand for our products and services from time to time. The pandemic also resulted in thousands of hours of lost work time for our employees due to illness or steps taken to reduce the spread of the COVID-19 virus. While our customers appear to have resumed business operations that are similar to pre-COVID activities, we cannot predict whether future variants of COVID-19 might cause further slowdowns of cessation of business activities. As a result, we cannot predict the impact that the COVID-19 pandemic might have on our business and operating results in the future

The impacts of the COVID-19 pandemic have resulted in ongoing disruptions and delays in manufacturing, shipping and transportation of our products that have had an adverse effect on our business and results of operations, and we expect this adverse impact to continue.

The COVID-19 pandemic also has the potential to significantly impact our supply chain if the factories that manufacture our products, the distribution centers where we manage our inventory, or the operations of our logistics and other service providers are disrupted, temporarily closed or experience worker shortages. Current vessel, container and other transportation shortages, labor shortages and port congestion globally have delayed and are expected to continue to delay inventory orders and, in turn, deliveries to our customers. These supply chain and logistics disruptions have impacted our inventory levels and net revenues in 2022 and could impact our sales volumes in future periods. We have also incurred in 2022 higher freight and other distribution costs, including air freight, to mitigate these delays. We are also seeing negative impacts to pricing of certain components of our products as a result of the COVID-19 pandemic. In the event we increase prices of our products, there can be no assurance that consumers will accept such increases, which could have a material adverse effect on our business, financial condition, results of operations and cash flows, as well as the trading price of our common stock.

Risks Related to Our Business

Many of our customers have fluctuating budgets, which may cause substantial fluctuations in our results of operations.

Customers for our products include domestic and international first responders such as state and local law enforcement, fire and rescue, explosive ordnance disposal technicians, emergency medical technicians, fishing and wildlife enforcement and departments of corrections, as well as federal agencies and numerous foreign government agencies. Government tax revenues and budgetary constraints, which fluctuate from time to time, can affect budgetary allocations for these customers. Many domestic and foreign government agencies have in the past experienced budget deficits that have led to decreased spending in defense, law enforcement and

16

other military and security areas. In addition, first responder budgets have been the subject of increased discussions as a result of controversies relating to police reform. Our results of operations may be subject to substantial period-to-period fluctuations because of these and other factors affecting military, law enforcement and other governmental spending. A reduction of funding for state, local, municipal as well as federal and foreign governmental agencies could have a material adverse effect on sales of our products and our business, financial condition, results of operations and liquidity.

Our markets are highly competitive, and if we are unable to compete effectively, we will be adversely affected.

The markets in which we operate include a large number of competitors ranging from small businesses to multinational corporations and are highly competitive. Competitors who are larger, better financed and better known than us may compete more effectively than we can. In order to stay competitive in our industry, we must keep pace with changing technologies and customer preferences. If we are unable to differentiate our services from those of our competitors, our revenues may decline. In addition, our competitors have established relationships among themselves or with third parties to increase their ability to address customer needs. As a result, new competitors or alliances amongst competitors may emerge and compete more effectively than we can. There is also a significant industry trend towards consolidation, which may result in the emergence of companies which are better able to compete against us. Any such development could have a material adverse effect on our business, financial condition, results of operations and liquidity.

There are limited sources for some of our raw materials and components, which may significantly curtail our manufacturing operations.

The raw materials and components that we use to manufacture our products, include SpectraShield®,a patented product of Honeywell, Inc.; Kevlar®, a patented product of E.I. du Pont de Nemours Co., Inc.; Dyneema®, a patented product of Koninklijke DSM N.V.; and Twaron®, a patented product of Teijin Limited, amongst others, which we use in manufacturing ballistic resistant garments. We purchase the materials and components that we use in manufacturing ballistic resistant garments directly from these suppliers and also through five independent weaving companies. The supply of the materials and components that we use to manufacture our products may be constrained by a number of factors, including a supplier’s need to prioritize the manufacture of rated orders issued under the Defense Production Act of 1950 (the “DPA”). We cannot predict when the United States government will invoke the DPA, and in the past we have faced shortages from our sources of materials and components when the DPA has been invoked, including shortages in the raw materials and components that we use in manufacturing ballistic resistant garments.

Should these materials or components become unavailable for any reason, we would not necessarily be able to replace them with materials or components of like weight and strength, as our ballistic resistant garments must be manufactured to specific standards using specific materials and components that are not necessarily interchangeable based on metrics such as weight and strength. When we have faced shortages in the past, we have been able to ameliorate the issue by obtaining substitutable alternative materials and components from other commercially available sources. However, the use of alternative materials and components in our ballistic resistant garments requires research and development, recertification as well as customer acceptance of the new products utilizing these alternative materials and components, and there is no guarantee that any such recertification or acceptance will be obtained by us. Thus, if our supply of any of these materials or components were materially reduced or cut off or if there were a material increase in the prices of these materials or components, our manufacturing operations could be adversely affected and our costs increased, and our business, financial condition, results of operations and liquidity could be materially adversely affected.

Our resources may be insufficient to manage demand.

As we expand our operations, any growth may place significant demands on our management, administrative, operating and financial resources. The growth of our customer base, the types of services and products offered and the geographic markets we serve could place a significant strain on our resources. In addition, we cannot easily identify and hire personnel qualified both in the provision and marketing of our products and systems. Our future performance and profitability will depend in large part on our ability to attract and retain additional management and other key personnel; our ability to implement successful enhancements to our management, accounting and information technology systems; and our ability to adapt those systems, as necessary, to respond to any growth in our business.

17

We are dependent on industry relationships.

A number of our products are components in our customers’ final products. Accordingly, to gain market acceptance, we must demonstrate that our products will provide advantages to the manufacturers of final products, including increasing the safety of their products, providing such manufacturers with competitive advantages or assisting such manufacturers in complying with existing or new government regulations affecting their products. There can be no assurance that our products will be able to achieve any of these advantages for the products of our customers. Furthermore, even if we are able to demonstrate such advantages, there can be no assurance that such manufacturers will elect to incorporate our products into their final products, or if they do, that our products will be able to meet such customers’ manufacturing requirements. Additionally, there can be no assurance that our relationships with our manufacturer customers will ultimately lead to volume orders for our products. The failure of manufacturers to incorporate our products into their final products could have a material adverse effect on our business, financial condition, results of operations and liquidity.

We may be unable to protect our proprietary technology.

We depend upon a variety of methods and techniques that we regard as proprietary trade secrets. We also depend upon a variety of trademarks, service marks and designs to promote brand name development and recognition. We rely on a combination of trade secret, copyright, patent, trademark, unfair competition and other intellectual property laws as well as contractual agreements to protect our rights to such intellectual property. Due to the difficulty of monitoring unauthorized use of and access to intellectual property, however, such measures may not provide adequate protection. It is possible that our competitors may access our intellectual property and proprietary information and use it to their advantage. In addition, there can be no assurance that courts will always uphold our intellectual property rights, or enforce the contractual arrangements that we have entered into to protect our proprietary technology. Any unenforceability or misappropriation of our intellectual property could have a material adverse effect on our business, financial condition, results of operations and liquidity.

Furthermore, we cannot assure you that any pending patent application or trademark application made by us will result in an issued patent or registered trademark, or that, if a patent is issued, it will provide meaningful protection against competitors or competitor technologies. In addition, if we bring or become subject to litigation to defend against claimed infringement of our rights or of the rights of others or to determine the scope and validity of our intellectual property rights, such litigation could result in substantial costs and diversion of our resources, which could have a material adverse effect on our business, financial condition, results of operations and liquidity. Unfavorable results in such litigation could also result in the loss or compromise of our proprietary rights, subject us to significant liabilities, require us to seek licenses from third parties on unfavorable terms, or prevent us from manufacturing or selling our products, any of which could have a material adverse effect on our business, financial condition, results of operations and liquidity.

Technological advances, the introduction of new products, and new design and manufacturing techniques could adversely affect our operations unless we are able to adapt to the resulting change in conditions.

Our future success and competitive position depend to a significant extent upon our proprietary technology. We must make significant investments to continue to develop and refine our technologies. We will be required to expend substantial funds for and commit significant resources to research and development activities, the engagement of additional engineering and other technical personnel, the purchase of advanced design, production and test equipment, and the enhancement of design and manufacturing processes and techniques. Our future operating results will depend to a significant extent on our ability to continue to provide design and manufacturing services for new products that compare favorably on the basis of time to introduction, cost and performance with the design and manufacturing capabilities. The success of new design and manufacturing services depends on various factors, including utilization of advances in technology, innovative development of new solutions for customer products, efficient and cost-effective services, timely completion and delivery of new product solutions and market acceptance of customers’ end products. Because of the complexity of our products, we may experience delays from time to time in completing the design and manufacture of new product solutions. In addition, there can be no assurance that any new product solutions will receive or maintain customer or market acceptance. If we are unable to design and manufacture solutions for new products of our customers on a timely and cost-effective basis, such inability could have a material adverse effect on our business, financial condition, results of operations and liquidity.

18

We may be adversely affected by applicable environmental, health and safety laws and regulations.

We are subject to federal, state, local and foreign laws and regulations governing environment, health and safety (“EHS”) matters, including those regulating discharges to the air and water, the management of wastes, the control of noise and odors, and the maintenance of a safe and healthy operating environment for our employees. We cannot assure you that we are at all times in complete compliance with all such requirements. Like all companies in our industry, we are subject to potentially significant fines or penalties if we fail to comply with various EHS requirements. Such requirements are complex, change frequently, and could become more stringent in the future. Accordingly, we cannot assure you whether these requirements will change in a manner requiring material capital or operating expenditures or will otherwise have a material adverse effect on us in the future. In addition, we are also subject to environmental laws requiring the investigation and clean-up of environmental contamination. We may be subject to liability, including liability for clean-up costs, if contamination is discovered at one of our current or former facilities, in some circumstances even if such contamination was caused by a third party such as a prior owner. We also may be subject to liability if contamination is discovered at a landfill or other location where we have disposed of wastes, notwithstanding that historic disposal practices may have been in accordance with all applicable requirements. We use Orthochlorabenzalmalononitrile and Chloroacetophenone chemical agents in connection with our production of our crowd control products, and these chemicals are hazardous and could cause environmental damage if not handled and disposed of properly. Moreover, private parties may bring claims against us based on alleged adverse health impacts or property damage caused by our operations. The amount of liability for cleaning up contamination or defending against private party claims could be material and have a material adverse effect on our business, financial condition, results of operations and liquidity.

The effects of climate change and increased focus by governmental and non-governmental organizations, customers, consumers and investors on sustainability issues, including those related to climate change and socially responsible activities, may adversely affect our business and financial results and damage our reputation.

Climate change is occurring around the world and may impact our business in numerous ways. Such change could lead to an increase in raw material and packaging prices, reduced availability, for example, due to water shortages which could adversely impact raw material availability. Increased frequency of extreme weather (storms and floods) could cause increased incidence of disruption to the production and distribution of our products and an adverse impact on consumer demand and spending.

Investor advocacy groups, certain institutional investors, investment funds, other market participants, shareholders, and stakeholders have focused increasingly on the environmental, social and governance (“ESG”) and related sustainability practices of companies. These parties have placed increased importance on the implications of the social cost of their investments. If our ESG practices do not meet investor or other stakeholder expectations and standards, which continue to evolve, our brands, reputation and employee retention may be negatively impacted. It is possible that stakeholders may not be satisfied with our ESG practices or the speed of their adoption. We could also incur additional costs and require additional resources to monitor, report, and comply with various ESG practices. Also, our failure, or perceived failure, to manage reputational threats and meet expectations with respect to socially responsible activities and sustainability commitments could negatively impact our credibility, employee retention, and the willingness of our customers and suppliers to do business with us.

We may lose money or generate less than expected profits on our fixed-price contracts.

Our direct government contracts are primarily fixed-price for a specified term. Under these contracts, we agree to perform a specific scope of work or deliver a certain quantity of end items for a fixed price. Typically, we assume more risk with fixed-price contracts since we are subject to rising labor costs and commodity price risk. Fixed-price contracts require us to price our contracts by forecasting our expenditures. When making proposals for fixed-price contracts, we rely on our estimates of costs and timing for completing these projects. These estimates reflect management’s judgments regarding our capability to complete projects efficiently and timely. Our production costs may, however, exceed forecasts due to unanticipated delays or increased cost of materials, components, labor, capital equipment or other factors. Therefore, we may incur losses on fixed price contracts that we had expected to be profitable, or such contracts may be less profitable than expected, which could have a material adverse effect on our business, financial condition, results of operations and liquidity.

As it relates to our Product segment, fixed-price contracts represented less than 10% of annual net sales in 2022. For our Distribution segment, we estimate that fixed-price contracts represented approximately 55% of annual net sales in 2022.

19

Our business is subject to various laws and regulations favoring the U.S. government’s contractual position, and our failure to comply with such laws and regulations could harm our operating results and prospects.

As a direct and indirect contractor to the U.S. government, we must comply with laws and regulations relating to the formation, administration and performance of federal government contracts, which effect how we do business with our clients and may impose added costs on our business. These rules generally favor the U.S. government’s contractual position.

For example, these regulations and laws include provisions that subject contracts we have been awarded to:

protest or challenge by unsuccessful bidders; and
unilateral termination, reduction or modification by the government.

The accuracy and appropriateness of certain costs and expenses used to substantiate our direct and indirect costs for the U.S. government under both cost-plus and fixed-price contracts are subject to extensive regulation and audit by the Defense Contract Audit Agency, an arm of the U.S. Department of Defense. Responding to governmental audits, inquiries or investigations may involve significant expense and divert management’s attention. Our failure to comply with these or other laws and regulations could result in contract termination, suspension or debarment from contracting with the federal government, civil fines and damages and criminal prosecution and penalties, any of which could have a material adverse effect on our business, financial condition, results of operations and liquidity.

Our Chief Executive Officer has divided responsibilities and is not required to devote any specified amount of time to our business.

Our Chief Executive Officer, Warren B. Kanders, is also the Executive Chairman of Clarus Corporation, which is in the business of designing, manufacturing, and marketing equipment for outdoor recreation activities. Our employment agreement with Mr. Kanders requires that he devote his time, attention, energy, knowledge, best professional efforts and skills to the duties assigned to him by us, but he is permitted to pursue other professional endeavors and investments that do not violate the terms of his employment agreement, including provisions relative to non-competition. Mr. Kanders’ employment agreement does not require him to devote any specific amount of time to the Company. Accordingly, it is possible that Mr. Kanders will fail to devote the necessary time to our Company which could have a material adverse effect on our business, financial condition, results of operations and liquidity.

We may be subject to disruptions, failures or cyber-attacks in our information technology systems and network infrastructures that could have a material adverse effect on us.

We maintain and rely extensively on information technology systems and network infrastructures for the effective operation of our business. Techniques used to gain unauthorized access to private networks are constantly evolving, and we may be unable to anticipate or prevent unauthorized access to data pertaining to our customers, including credit card and debit card information and other personally identifiable information. Like all Internet services, our direct-to-consumer service, which is supported by our own systems and those of third-party vendors, is vulnerable to computer viruses, Internet worms, break-ins, phishing attacks, attempts to overload servers with denial-of-service or other attacks and similar disruptions from unauthorized use of our and third-party vendor computer systems, any of which could lead to system interruptions, delays or shutdowns, causing loss of critical data or the unauthorized access to personally identifiable information. If an actual or perceived breach of our systems or a vendor’s systems security occurs, we may face civil liability and public perception of our security measures could be diminished, either of which would negatively affect our ability to attract customers, which could have a material adverse effect on our business. We also would be required to expend significant resources to mitigate the breach of security and to address related matters.

Further, a disruption, infiltration or failure of our information technology systems or any of our data centers including the systems and data centers of our third-party vendors as a result of software or hardware malfunctions, computer viruses, cyber-attacks, employee theft or misuse, power disruptions, natural disasters or accidents could cause breaches of data security and loss of critical data, which in turn could materially adversely affect our business.

We cannot fully control the actions of third parties who may have access to the customer data we collect and the customer data collected by our third party vendors. We may be unable to monitor or control such third parties and the third parties having access to our other websites in their compliance with the terms of our privacy policies, terms of use, and other applicable contracts, and we may

20

be unable to prevent unauthorized access to, or use or disclosure of, customer information. Any such misuse could hinder or prevent our efforts with respect to growth opportunities and could expose us to liability or otherwise adversely affect our business. In addition, these third parties may become the victim of security breaches or have practices that may result in a breach, and we could be responsible for those third-party acts or failures to act.

Any failure, or perceived failure, by us or the prior owners of acquired businesses to maintain the security of data relating to our customers and employees, to comply with our posted privacy policies, our predecessors’ posted policies, laws and regulations, rules of self-regulatory organizations, or industry standards and contractual provisions to which we or they may be bound, could result in the loss of confidence in us, or result in actions against us by governmental entities or others, all of which could result in litigation and financial losses, and could potentially cause us to lose customers, revenue and employees.

Initiatives to upgrade our business processes and information technology systems to optimize our operational and financial performance involve many risks which could result in, among other things, business interruptions, higher costs and lost profits.

We regularly implement business process improvement and information technology initiatives intended to optimize our operational and financial performance. Transitioning to these new or upgraded processes and systems requires significant capital investments and personnel resources. Implementation is also highly dependent on the coordination of numerous employees, contractors and software and system providers. The interdependence of these processes and systems is a significant risk to the successful completion and continued refinement of these initiatives, and the failure of any aspect could have a material adverse effect on the functionality of our overall business. We may also experience difficulties in implementing or operating our new or upgraded business processes or information technology systems, including, but not limited to, ineffective or inefficient operations, significant system failures, system outages, delayed implementation and loss of system availability, which could lead to increased implementation and/or operational costs, loss or corruption of data, delayed shipments, excess inventory and interruptions of operations resulting in lost sales and/or profits.

We rely on information technology systems, including third-party cloud-based solutions, and any failure of these systems may result in disruptions or outages, loss of processing capabilities, and/or loss of data, any of which may have a material adverse effect on our financial condition, results of operations or cash flow.

Our reputation and ability to attract, retain and serve consumers is dependent upon the reliable performance of our underlying technology infrastructure and external service providers, including third-party cloud-based solutions. These systems are vulnerable to damage or interruption and we have experienced interruptions in the past. We rely on cloud-based solutions furnished by third parties primarily to allocate resources, pay vendors, collect from customers, process transactions, develop demand and supply plans, manage product design, production, transportation, and distribution, forecast and report operating results, meet regulatory requirements and administer employee payroll and benefits, among other functions. We have also designed a significant portion of our software and computer systems to utilize data processing and storage capabilities from third-party cloud solution providers. Both our on-premises and cloud-based infrastructure may be susceptible to outages due to any number of reasons, including, human error, fire, floods, power loss, telecommunications failures, terrorist attacks and similar events. Despite the implementation of security measures that we believe to be reasonable, both our on-premises and our cloud-based infrastructure may also be vulnerable to hacking, computer viruses, the installation of malware and similar disruptions either by third-parties or employees, which may result in outages. We do not have redundancy for all of our systems and our disaster recovery planning may not account for all eventualities. If we or our existing third-party cloud-based solution providers experience interruptions in service regularly or for a prolonged basis, or other similar issues, our business could be seriously harmed and, in some instances, our consumers may not be able to purchase our products, which could significantly and negatively affect our sales. Additionally, our existing cloud-based solution providers have broad discretion to change and interpret their terms of service and other policies with respect to us, and they may take actions beyond our control that could harm our business. We also may not be able to control the quality of the systems and services we receive from our third-party cloud-based solution providers. Any transition of the cloud-based solutions currently provided to different cloud providers would be difficult to implement and may cause us to incur significant time and expense.

If we and/or our cloud-based solution providers are not successful in preventing or effectively responding to outages and cyberattacks, our financial condition, results of operations and cash flow could be materially and adversely affected.

Additionally, information technology systems require periodic modifications, upgrades, and replacement that subject us to costs and risks, including potential disruption to our internal control structure, substantial capital expenditures, additional administration and

21

operating expenses, retention of sufficiently skilled personnel or outside firms to implement and operate existing or new systems, and other risks and costs of delays or difficulties in transitioning to new or modified systems or of integrating new or modified systems into our current systems. In addition, challenges implementing new or modified technology systems may cause disruptions in our business operations and, if not anticipated and appropriately mitigated, could have a material adverse effect on our business operations.

Misuse of our products may adversely affect the Company’s reputation.

The target end users of the products that we sell, which include firearms, ammunition and body armor, are licensed professionals that include state and local law enforcement, federal agencies, foreign police, military agencies as well as private security firms. However, if any misuse of our products were to occur, the Company’s reputation could be harmed. The occurrence of any misuse of our products could seriously damage our reputation and the image of our brands or cause our customers to consider alternatives to the Company’s products, which could have a material adverse effect on our business, financial condition, results of operations and liquidity.

Adverse publicity about the Company and/or its brands, including without limitation, through social media or in connection with brand damaging events and/or public perception, could negatively impact our business.

Negative claims or publicity involving us, our board of directors, our brands, our products, services and experiences, consumer data, or any of our key employees, or suppliers could seriously damage our reputation and the image of our brands, regardless of whether such claims are accurate. Social media, which accelerates and potentially amplifies the scope of negative publicity, can increase the challenges of responding to negative claims. Negative attention or scrutiny on the various products sold by our brands can also possibly result in negative publicity. For example, heightened governmental scrutiny of the safety of crowd control products has resulted in requests by two subcommittees of the U.S. House Committee on Oversight and Reform for information from major U.S. manufacturers, including us, relating to the production, sale, safety, and regulation of crowd control products. Congressional scrutiny and other similar inquiries by governmental bodies may damage our reputation and may also result in potential legislation designed to regulate the various products sold by our brands.

Adverse publicity could also damage our reputation and the image of our brands, undermine consumer confidence in us and reduce long-term demand for our products, even if such adverse publicity is unfounded or not material to our operations. If the reputation, culture or image of any of our brands is tarnished or receives negative publicity, then our business, financial condition, results of operations and liquidity could be materially adversely affected.

The terms of our outstanding long-term debt and any requirements to incur further indebtedness or refinance our outstanding indebtedness in the future could have a material adverse effect on our business and results of operations.

Our significant payment obligations under the terms of our long-term debt, $151.3 million of which was outstanding as of December 31, 2022, together with any additional indebtedness we may incur in the future (including under the New Credit Agreement (herein defined)), could adversely affect our business, financial condition, results of operations and prospects. For example, our indebtedness or any additional financing may:

make it more difficult for us to pay or refinance debts as they become due;
require us to use a larger portion of cash flow for debt service, reducing funds available for other purposes;
limit our ability to pursue business opportunities, such as potential acquisitions, and to react to changes in market or industry conditions;
reduce the funds available for other purposes, such as implementing our strategy, funding capital expenditures and making distributions to stockholders;
increase our vulnerability to adverse economic, industry or competitive developments;
affect our ability to obtain additional financing;
decrease our profitability or cash flow, or require us to dispose of significant assets in order to satisfy debts and other obligations if we are not able to satisfy these obligations using cash from operations or other sources; and

22

disadvantage us compared to competitors.

Any of the foregoing, alone or in combination, could have a material adverse effect on our business, financial condition, results of operations and prospects. A breach of, or the inability to comply with, the covenants in our term loan facility and revolving credit agreement could result in an event of default, in which case the lenders will have the right to declare all borrowings to be immediately due and payable, which would have a material adverse effect on our business, financial condition, results of operations and prospects and could lead to foreclosure on our assets

In the future, we may need to refinance our indebtedness. However, additional financing may not be available on favorable commercial terms to us, or at all. If, at such time, market conditions are materially different or our credit profile has deteriorated, the cost of refinancing such debt may be significantly higher than our indebtedness existing at that time. Furthermore, we may not be able to procure refinancing at all. Any failure to meet any future debt service obligations through use of cash flow, refinancing or otherwise, could have a material adverse effect on our business, financial condition, results of operations and prospects.

Our business is significantly dependent on our ability to meet our labor needs.

The success of our business depends significantly on our ability to hire and retain quality team members, which include but are not limited to managers and other personnel. Competition for non-entry-level personnel, particularly those with experience in our industry, is highly competitive. We may be unable to meet our labor needs and control our costs due to external factors such as the availability of a sufficient number of qualified persons in the workforce of the markets in which we operate, competition, unemployment levels, demand for certain labor expertise, prevailing wage rates, wage inflation, changing demographics, health and other insurance costs, adoption of new or revised employment and labor laws and regulations, and the impacts of man-made or natural disasters, such as tornadoes, hurricanes, and public health emergencies, such as the ongoing COVID-19 pandemic. We have experienced, and expect to continue to experience, a shortage of labor for certain functions, which has increased our labor costs and negatively impacted our profitability. The extent and duration of the effect of these labor market challenges are subject to numerous factors, including the availability of qualified persons in the markets where we and our vendors and customers operate and unemployment levels within these markets, behavioral changes, prevailing wage rates and other benefits, inflation, adoption of new or revised employment and labor laws and regulations (including increased minimum wage requirements) or government programs, safety levels of our operations, and our reputation within the labor market.

Recent or potential future legislative initiatives may seek to increase the federal minimum wage in the United States, as well as the minimum wage in a number of individual states or markets. As federal or state minimum wage rates increase, we may need to increase not only the wage rates of our minimum wage team members, but also the wages paid to our other hourly team members as well. Further, should we fail to increase our wages competitively in response to increasing wage rates, the quality of our workforce could decline, causing our customer service to suffer. Additionally, the U.S. Department of Labor has proposed rules that may have salary and wage impact for “exempt” team members, which could result in a substantial increase in store payroll expense. Any increase in the cost of our labor could have an adverse effect on our operating costs, financial condition and results of operations, which in turn can materially adversely affect our business.

Although none of our employees are currently covered under collective bargaining agreements, we cannot guarantee that employees will not elect to be represented by labor unions in the future. If some or our entire workforce were to become unionized and collective bargaining agreement terms were significantly different from our current compensation arrangements or work practice, it could have a material adverse effect on our business, financial condition, results of operations and liquidity.

Reductions in the availability of energy supplies or an increase in energy costs may increase our operating costs.

Electricity and natural gas are used to operate equipment at manufacturing facilities. Over the past several years, prices for electricity and natural gas have fluctuated significantly. An outbreak or escalation of hostilities between the United States and any foreign power, or between foreign powers, or a natural disaster, could result in a real or perceived shortage of petroleum and/or natural gas, which could result in an increase in the cost of electricity or energy generally as well as an increase in the cost of our raw materials, of which many are petroleum-based. In addition, increased energy costs negatively impact our freight costs due to higher fuel prices. Future limitations on the availability or consumption of petroleum products and/or an increase in energy costs, particularly electricity for plant operations, could have a material adverse effect upon our business, financial condition, results of operations and liquidity.

23

Risks Related to our Acquisition Strategy

A number of other companies are seeking to make acquisitions in our industry, which may make our acquisition strategy more difficult or expensive to pursue.

We compete with many other companies, and certain of them have greater financial resources than we do for pursuing and consummating acquisitions and to further develop and integrate acquired businesses. Our strategy of growing through the acquisition of businesses and assets relies on our ability to consummate acquisitions to develop and offer new products that foster the growth of our core business, and to establish ourselves in other geographic regions and related businesses in which we do not currently operate. Increased competition for acquisition opportunities may impede our ability to acquire these companies because they choose another acquirer. It could also increase the price that we must pay for these companies. Either of these outcomes could reduce our growth, harm our business and adversely impact our ability to consummate acquisitions.

We may be unsuccessful in identifying suitable acquisition candidates, which may negatively impact our competitive position and our growth strategy.

In addition to organic growth, our future growth will be driven by our selective acquisition of additional businesses, our competitors and complementary businesses. Our growth through acquisitions, to date, has consisted of 14 acquisitions and two divestitures. We may be unable to identify other suitable targets for future acquisition or acquire businesses at favorable prices, which would negatively impact our growth strategy. We may not be able to execute our growth strategy through organic expansion, and if we are unable to identify and successfully acquire new businesses complementary to ours, we may not be able to offer new products in line with industry trends.

The due diligence process that we undertake in connection with acquisitions may not reveal all facts that may be relevant in connection with an investment.

Before making acquisitions and other investments, we conduct due diligence of the target company that we deem reasonable and appropriate based on the facts and circumstances applicable to each acquisition. The objective of the due diligence process is to assess the investment opportunities based on the facts and circumstances surrounding an investment or acquisition. When conducting due diligence, we may be required to evaluate important and complex business, financial, tax, accounting, environmental and legal issues. The due diligence process may at times be subjective with respect to newly-organized companies for which only limited information is available. Accordingly, we cannot be certain that the due diligence investigation that we conduct with respect to any investment or acquisition opportunity will reveal or highlight all relevant facts that may be necessary or helpful in evaluating such investment opportunity. For example, instances of fraud, accounting irregularities and other deceptive practices can be difficult to detect. Executive officers, directors and employees may be named as defendants in litigation involving a company we are acquiring or have acquired. Even if we conduct extensive due diligence on a particular investment or acquisition, we may fail to uncover all material issues relating to such investment, including regarding the controls and procedures of a particular target or the full scope of its contractual arrangements. We rely on our due diligence to identify potential liabilities in the businesses we acquire, including such things as potential or actual lawsuits, contractual obligations or liabilities imposed by government regulation. However, our due diligence process may not uncover these liabilities, and where we identify a potential liability, we may incorrectly believe that we can consummate the acquisition without subjecting ourselves to that liability. If our due diligence fails to identify issues specific to an investment or acquisition, we may obtain a lower return from that transaction than the investment would return or otherwise subject ourselves to unexpected liabilities.

We may face difficulty in integrating the operations of the businesses we have acquired and may acquire in the future.

Acquisitions have been and will continue to be an important component of our growth strategy; however, we will need to integrate these acquired businesses successfully in order for our growth strategy to succeed and for our Company to be profitable. We will implement, and the management teams of the acquired businesses will adopt, our policies, procedures and best practices. We may face difficulty with the integration of the businesses we acquire, such as coordinating geographically dispersed organizations, integrating personnel with disparate business backgrounds and combining different corporate cultures. Furthermore, we may fail in implementing our policies and procedures, or the policies and procedures may not be effective or provide the results we anticipate for a particular business. Further, we will be relying on these policies and procedures in preparing our financial and other reports as a public company, so any failure of acquired businesses to properly adopt these policies and procedures could impair our public

24

reporting. Management of the businesses we acquire may not have the operational or business expertise that we require to successfully implement our policies, procedures and best practices.

We typically retain the management of the businesses we acquire and rely on them to continue running their businesses, which leaves us vulnerable in the event they leave our Company.

We seek to acquire businesses that have strong management teams that will continue to run the business after the acquisition. We often rely on these individuals to conduct the day-to-day operations, and pursue the growth, of these acquired businesses. Although we typically seek to sign employment agreements with the managers of acquired businesses, it remains possible that these individuals will leave our organization. This would harm the prospects of the businesses they manage, potentially causing us to lose money on our investment and harming our growth and financial results.

We may be required to take write downs or write-offs, restructuring, and impairment or other charges that could have a significant negative effect on our financial condition, results of operations and our stock price, which could cause you to lose some or all of your investment.

In connection with our general growth strategy of acquiring businesses and assets, we may be forced to write-down or write-off assets, restructure our operations, or incur impairment or other charges that could result in us reporting losses. Even though these charges may be non-cash items and not have an immediate impact on our liquidity, the fact that we report charges of this nature could contribute to negative market perceptions about us or our common stock.

Risks Related to Ownership of our Common Stock

Our executive officers, directors and principal stockholders, if they choose to act together, will continue to have the ability to control all matters submitted to stockholders for approval.

Our executive officers, directors and stockholders who own more than 5% of our outstanding common stock and their respective affiliates held, in the aggregate, shares representing approximately 49.3% of our outstanding voting stock. As a result, if these stockholders were to choose to act together, they would be able to control or significantly influence all matters submitted to our stockholders for approval, as well as our management and affairs. For example, these persons, if they choose to act together, would control or significantly influence the election of directors and approval of any merger, consolidation or sale of all or substantially all of our assets. This concentration of ownership control may:

delay, defer or prevent a change in control;
entrench our management and the board of directors; or
impede a merger, consolidation, takeover or other business combination involving us that other stockholders may desire.

Shares of our common stock have been, and may continue to be, thinly traded, which may contribute to volatility in our stock price and less liquidity for investors.

The trading volume of our common stock has varied, and at times may be characterized as thinly traded.  As a result of this thin trading market or “float” for our common stock, our common stock has been, and may continue to be, less liquid than the common stock of companies with broader public ownership.  If our common stock is thinly traded, the trading of a relatively small volume of our common stock may have a greater impact on the trading price of our common stock than would be the case if our float were larger.  As a result, the trading prices of our common stock may be more volatile than the common stock of companies with broader public ownership, and an investor be unable to liquidate an investment in our common stock at attractive prices.

We cannot predict the prices at which our common stock will trade in the future. Variations in financial results, announcements of material events, changes in our dividend policy, technological innovations or new products by us or our competitors, our quarterly operating results, changes in general conditions in the economy or government spending on law enforcement and military, other developments affecting us or our competitors or general price and volume fluctuations in the market are among the many factors that could cause the market price of our common stock to fluctuate substantially.

25

Our stock price may be volatile or may decline regardless of our operating performance, resulting in substantial losses for investors.

The market price of our common stock may fluctuate significantly in response to numerous factors, many of which are beyond our control, including:

actual or anticipated fluctuations in our results of operations;
the financial projections we may provide to the public, any changes in these projections or our failure to meet these projections;
failure of securities analysts to initiate or maintain coverage of our company, changes in financial estimates or ratings by any securities analysts who follow our company or our failure to meet these estimates or the expectations of investors;
announcements by us or our competitors of significant technical innovations, acquisitions, strategic partnerships, joint ventures, operating results or capital commitments;
changes in operating performance and stock market valuations of other technology or retail companies generally, or those in our industry in particular;
price and volume fluctuations in the overall stock market, including as a result of trends in the economy as a whole;
changes in our board of directors or management;
sales of large blocks of our common stock, including sales by our executive officers, directors and significant stockholders;
lawsuits threatened or filed against us;
changes in laws or regulations applicable to our business;
the expiration of contractual lock-up agreements;
changes in our capital structure, such as future issuances of debt or equity securities;
short sales, hedging and other derivative transactions involving our capital stock;
general economic conditions in the United States and abroad;
other events or factors, including those resulting from war, pandemics, incidents of terrorism or responses to these events; and
the other factors described in the sections of the Annual Report on Form 10-K titled “Risk Factors” and “Special Note Regarding Forward-Looking Statements.”

In addition, stock markets have experienced extreme price and volume fluctuations that have affected and continue to affect the market prices of equity securities of many companies. Stock prices of many companies have fluctuated in a manner unrelated or disproportionate to the operating performance of those companies. In the past, stockholders have instituted securities class action litigation following periods of market volatility. If we were to become involved in securities litigation, it could subject us to substantial costs, divert resources and the attention of management from our business and have a materially adverse effect on our business, financial condition, results of operations and liquidity.

Substantial future sales of shares of our common stock could cause the market price of our common stock to decline.

Sales of a substantial number of shares of our common stock in the public market, or the perception that these sales might occur, could depress the market price of our common stock and could impair our ability to raise capital through the sale of additional equity securities. We are unable to predict the effect that such sales may have on the prevailing market price of our common stock.

26

If securities or industry analysts do not publish research or reports about our business, or publish negative reports about our business, our share price and trading volume could decline.

The trading market for our common stock will depend in part on the research and reports that securities or industry analysts publish about us or our business, our market and our competitors. We do not have any control over these analysts. If one or more of the analysts who cover us downgrade our shares or change their opinion of our shares, our share price would likely decline. If one or more of these analysts cease coverage of our company or fail to regularly publish reports on us, we could lose visibility in the financial markets, which could cause our share price or trading volume to decline.

We are an emerging growth company, and any decision on our part to comply only with certain reduced reporting and disclosure requirements applicable to emerging growth companies could make our common stock less attractive to investors.

We are an “emerging growth company,” as defined in the JOBS Act, and, for as long as we continue to be an emerging growth company, we may choose to take advantage of exemptions from various reporting requirements applicable to other public companies but not to emerging growth companies, including:

not being required to have our independent registered public accounting firm audit our internal control over financial reporting under Section 404 of the Sarbanes-Oxley Act;
reduced disclosure obligations regarding executive compensation in our periodic reports and annual report on Form 10-K; and
exemptions from the requirements of holding non-binding advisory votes on executive compensation and stockholder approval of any golden parachute payments not previously approved.

We could be an emerging growth company until December 31, 2026. Our status as an emerging growth company will end as soon as any of the following takes place:

the last day of the fiscal year in which we have more than $1.07 billion in annual revenue;
the date we qualify as a “large accelerated filer,” with at least $700 million of equity securities held by non-affiliates;
the date on which we have issued, in any three-year period, more than $1.0 billion in non-convertible debt securities; or
the last day of the fiscal year ending after the fifth anniversary of the completion of our initial public offering, which is December 31, 2026.

We cannot predict if investors will find our common stock less attractive if we choose to rely on any of the exemptions afforded emerging growth companies. If some investors find our common stock less attractive because we rely on any of these exemptions, there may be a less active trading market for our common stock and the market price of our common stock may be more volatile.

Under the JOBS Act, emerging growth companies can also delay adopting new or revised accounting standards until such time as those standards apply to private companies. We have elected to avail ourselves of this provision of the JOBS Act. As a result, we will not be subject to new or revised accounting standards at the same time as other public companies that are not emerging growth companies. Therefore, our consolidated financial statements may not be comparable to those of companies that comply with new or revised accounting pronouncements as of public company effective dates.

Compliance with changing laws, regulations and standards of corporate governance and public disclosure may result in additional expenses.

Changing laws, regulations and standards relating to corporate governance and public disclosure, including the Sarbanes-Oxley Act of 2002 (the “Sarbanes Oxley Act”), the Dodd-Frank Wall Street Reform and Consumer Protection Act, new Securities and Exchange Commission regulations and NASDAQ rules, are creating uncertainty for companies such as ours. These new or changed laws, regulations, and standards are subject to varying interpretations, in many cases due to their lack of specificity. As a result, their application in practice may evolve over time as new guidance is provided by regulatory and governing bodies, which could result in continuing uncertainty regarding compliance matters and higher costs necessitated by ongoing revisions to disclosure and governance

27

practices. We are committed to maintaining high standards of corporate governance and public disclosure. As a result, our efforts to comply with evolving laws, regulations, and standards have resulted in, and are likely to continue to result in, increased general and administrative expenses and a diversion of management time and attention from revenue-generating activities to compliance activities.

Anti-takeover provisions in our charter documents and under Delaware law could make an acquisition of our company more difficult, limit attempts by our stockholders to replace or remove our current management and limit the market price of our common stock, which may also have the consequence of depressing the market price of our common stock.

Our status as a Delaware corporation and the anti-takeover provisions of Delaware law may discourage, delay, or prevent a change in control by prohibiting us from engaging in a business combination with an interested stockholder for a period of three years after the date of the transaction in which the person became an interested stockholder, even if a change of control would be beneficial to our existing stockholders. In addition, our amended and restated certificate of incorporation and amended and restated bylaws contain provisions that may make the acquisition of our company more difficult, including the following:

permitting the board of directors, and not stockholders, to establish the number of directors and fill any vacancies and newly created directorships;
authorizing the issuance of “blank check” preferred stock that our board of directors could use to implement a stockholder rights plan;
restricting the forum for certain litigation against us to Delaware;
establishing advance notice requirements for nominations for election to our board of directors or for proposing matters that can be acted upon by stockholders at annual stockholder meetings;
preventing stockholders from taking any action except at a formal meeting of stockholders;
requiring certain amendments to our amended and restated certificate of incorporation to be approved by the holders of at least 66 2/3% of our then-outstanding common stock; and/or
requiring that any special meeting of our stockholders will only be able to be called by a majority of our board of directors, the chairperson of our board of directors, our Chief Executive Officer, or our President.

These provisions, alone or together, may (a) frustrate or prevent any attempts by our stockholders to replace or remove our current management by making it more difficult for stockholders to select or replace members of our board of directors, which is responsible for appointing the members of our management; (b) discourage, delay, or prevent a transaction involving a change in control of our Company; and/or (c) discourage proxy contests, any of which, under certain circumstances, could limit the opportunity for our stockholders to receive a premium for their shares of our common stock, and could also affect the market price of our common stock.

Our amended and restated bylaws provide that the Court of Chancery of the State of Delaware will be the exclusive forum for substantially all disputes between us and our stockholders, which could limit our stockholders’ ability to obtain a favorable judicial forum for disputes with us or our directors, officers or employees.

Our amended and restated bylaws provide that the Court of Chancery of the State of Delaware (or other state courts of the State of Delaware if the Court of Chancery in the State of Delaware does not have jurisdiction or the federal district court for the District of Delaware if no state court in the State of Delaware has jurisdiction) is the exclusive forum for any derivative action or proceeding brought on our behalf; any action asserting a breach of fiduciary duty; any action asserting a claim against us arising pursuant to the Delaware General Corporation Law, our certificate of incorporation or our bylaws; or any action asserting a claim against us that is governed by the internal affairs doctrine or any action asserting an “internal corporate claim” as that term is defined in Section 115 of the Delaware General Corporation Law. Our amended and restated bylaws provide that this choice of forum does not apply to any complaint asserting a cause of action under the Securities Act or the Exchange Act. Finally, our amended and restated bylaws provide that the federal district courts of the United States of America will be the sole and exclusive forum for the resolution of any complaint asserting a cause of action arising under the Securities Act or the Exchange Act. Although we believe this provision benefits us by providing increased consistency in the application of Delaware law in the types of lawsuits to which it applies, a court may determine that this provision is unenforceable, and to the extent it is enforceable, the provision may have the effect of discouraging lawsuits

28

against our directors and officers, although our stockholders cannot waive our compliance with federal securities laws and the rules and regulations thereunder.

Our amended and restated bylaws provide that the exclusive forum provision will be applicable to the fullest extent permitted by applicable law. Section 27 of the Exchange Act creates exclusive federal jurisdiction over all suits brought to enforce any duty or liability created by the Exchange Act or the rules and regulations thereunder. As a result, the exclusive forum provision will not apply to suits brought to enforce any duty or liability created by the Exchange Act or any other claim for which the federal courts have exclusive jurisdiction.

Our payment of future quarterly dividends on our common stock is subject to the discretion and approval of our board of directors.

On November 11, 2021, the Company announced that its board of directors approved the initiation of a quarterly cash dividend program of $0.08 per share of the Company’s common stock or $0.32 per share on an annualized basis (the “Quarterly Cash Dividend”). While we intend to pay regular Quarterly Cash Dividends for the foreseeable future, all subsequent dividends will be reviewed quarterly and declared at the discretion and approval of our board of directors and will depend upon, among other things, our results of operations, capital requirements, general business conditions, contractual restrictions under our New Credit Agreement on the payment of dividends, legal and regulatory restrictions on the payment of dividends, and other factors our board of directors deems relevant. Therefore, you should not purchase our common stock if you need immediate or future income by way of dividends from your investment. In addition, upon an event of default under our New Credit Agreement, we are prohibited from declaring or paying any dividends on our common stock or generally making other distributions to our stockholders.

We could be subject to securities class action litigation.

In the past, securities class action litigation has often been brought against a company following a decline in the market price of its securities. If we face such litigation, it could result in substantial costs and a diversion of management’s attention and resources, which could harm our business.

Our amended and restated certificate of incorporation authorizes the issuance of shares of blank check preferred stock.

Our amended and restated certificate of incorporation provides that our board of directors will be authorized to issue from time to time, without further stockholder approval, up to 10,000,000 shares of preferred stock in one or more series and to fix or alter the designations, preferences, rights and any qualifications, limitations or restrictions of the shares of each series, including the dividend rights, dividend rates, conversion rights, voting rights, terms of redemption, including sinking fund provisions, redemption price or prices, liquidation preferences and the number of shares constituting any series or designations of any series. Such shares of preferred stock could have preferences over our common stock with respect to dividends and liquidation rights. We may issue additional preferred stock in ways which may delay, defer or prevent a change in control of us without further action by our stockholders. Such shares of preferred stock may be issued with voting rights that may adversely affect the voting power of the holders of our common stock by increasing the number of outstanding shares having voting rights, and by the creation of class or series voting rights.

We may issue a substantial amount of our common stock in connection with future acquisitions, and the sale of those shares could adversely affect our stock price.

As part of our acquisition strategy, we anticipate issuing additional shares of common stock as consideration for such acquisitions. To the extent that we are able to grow through acquisitions and issue shares of our common stock as consideration, the number of outstanding shares of common stock that will be eligible for sale in the future is likely to increase substantially. Persons receiving shares of our common stock in connection with these acquisitions may be more likely to sell large quantities of their common stock, which may influence the price of our common stock. In addition, the potential issuance of additional shares in connection with anticipated acquisitions could lessen demand for our common stock and result in a lower price than would otherwise be obtained.

29

Techniques employed by short sellers or other derivative traders may drive down the market price of our common stock and/or spur litigation or regulatory action.

Short selling is the practice of selling securities that a seller does not own but rather has borrowed from a third party with the intention of buying identical securities back at a later date to return to the lender. Short sellers hope to profit from a decline in the value of the securities between the sale of the borrowed securities and the purchase of the replacement securities, as short sellers expect to pay less in that purchase than they received in the sale. As it is in short sellers’ interest for the price of the security to decline, many short sellers publish, or arrange for the publication of, negative opinions and allegations regarding the relevant issuer and its business prospects in order to create negative market momentum and generate profits for themselves after selling a security short. These short attacks have, in the past, led to selling of shares in the market.

If we were to become the subject of unfavorable allegations contained in short reports, whether such allegations are proven to be true or untrue, we may have to expend a significant amount of resources to investigate such allegations and/or defend ourselves. While we would prefer to strongly defend against any such short seller attacks, we may be constrained in the manner in which we can proceed against the relevant short sellers by principles of freedom of speech, applicable state law or issues of commercial confidentiality. Such a situation could be costly and time-consuming, and could divert management’s attention from our day-to-day operations. Even if such allegations are ultimately proven to be groundless, allegations against us could severely impact the market price of our common stock and our business operations.

Item 1B. Unresolved Staff Comments

None.

Item 2. Properties

We own our corporate headquarters located at 13386 International Parkway, Jacksonville, FL 32218 where we occupy approximately 36,941 square feet of office space and 95,283 square feet of manufacturing space. In total, we operate 19 facilities (8 owned) across the U.S., Canada, Mexico and Europe, spanning more than 1,000,000 square feet. Additionally, we lease 11 retail locations across the East Coast that service our Distribution segment. Our properties are well maintained, and we consider them to be sufficient for our existing capacity requirements.

The following table identifies and provides certain information regarding our facilities:

Primary Activity

    

Location

    

Country

    

Owned/Leased

    

Sq Ft

Corporate HQ and Manufacturing

Jacksonville, Florida

USA

Owned

132,224

Manufacturing and R&D

 

Jacksonville, Florida

 

USA

 

Owned

 

63,000

Warehouse and Distribution

 

Jacksonville, Florida

 

USA

 

Leased

 

27,405

Manufacturing and R&D

 

Ontario, California

 

USA

 

Leased

 

41,475

Sales and R&D

 

Casper, Wyoming

 

USA

 

Owned

 

44,000

Manufacturing and R&D

Casper, Wyoming

 

USA

 

Owned

10,500

Manufacturing

Casper, Wyoming

 

USA

 

Owned

21,000

Manufacturing

 

Dalton, Massachusetts

 

USA

 

Leased

 

33,862

Manufacturing

 

Dover, Tennessee

 

USA

 

Leased

 

87,652

Manufacturing

 

Ogdensburg, New York

 

USA

 

Leased

 

23,220

Manufacturing and R&D

West Springfield, Massachusetts

USA

Owned

200,000

Manufacturing

 

Tijuana, Baja California

 

Mexico

 

Leased

 

158,614

Sales and R&D

 

Ottawa, Ontario

 

Canada

 

Leased

 

39,273

Manufacturing

 

Pembroke, Ontario

 

Canada

 

Leased

 

26,154

Manufacturing

 

Arnprior, Ontario

 

Canada

 

Leased

 

48,853

Manufacturing

 

Warrington, Cheshire

 

UK

 

Leased

 

21,958

Manufacturing

 

Kaunas

 

Lithuania

 

Leased

 

19,160

Manufacturing, Sales and R&D

Fucecchio

Italy

Leased/Owned

30,375

Manufacturing and Sales

Aix-en-Provence

France

Owned

20,387

30

Item 3. Legal Proceedings

Refer to Note 15 of the Notes to Consolidated Financial Statements included in Part II, Item 8 of this Annual Report on Form 10-K, which is incorporated herein by reference.

Item 4. Mine Safety Disclosures

Not applicable.

PART II

Item 5. Market for Registrant's Common Equity, Related Stockholder Matters and Issuer Purchases of Equity Securities

Market Information

Our common stock has been listed on the New York Stock Exchange under the symbol “CDRE” since November 4, 2021. Prior to that date, there was no public trading market for our common stock.

Holders of Record

As of March 10, 2023, there were 17 holders of record of our common stock. The actual number of stockholders is greater than this number of record holders and includes stockholders who are beneficial owners but whose shares are held in street name by brokers and other nominees.

Dividend Policy

On November 11, 2021, the Company announced that its Board of Directors approved the initiation of a quarterly cash dividend program of $0.08 per share of the Company’s common stock or $0.32 per share on an annualized basis. In 2022, our total quarterly cash dividends were $11.5 million.  We expect to continue to pay a quarterly cash dividend of $0.08 per share, or $0.32 on an annualized basis, on our common stock for the foreseeable future, but we may elect to retain all of our future earnings, if any, to finance the growth and development of our business. Any determination to pay dividends in the future will be at the discretion of our board of directors and will be dependent on a number of factors, including the terms of our New Credit Agreement, our earnings, capital requirements, our overall financial condition and other factors that our board of directors considers relevant.

Recent Sales of Unregistered Securities

None.

Issuer Repurchases of Equity Securities

None.

Item 6. [Reserved]

31

Item 7. Management's Discussion and Analysis of Financial Condition and Results of Operations

MANAGEMENT’S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS

The following discussion and analysis of the financial condition and results of operations of Cadre Holdings, Inc. (D/B/A The Safariland Group) (“Cadre,” “the Company” “we,” “us” and “our”) should be read together with our audited consolidated financial statements as of and for the years ended December 31, 2022 and 2021 in each case together with related notes thereto, included elsewhere in this Annual Report on Form 10-K. The following discussion contains forward-looking statements that reflect future plans, estimates, beliefs and expected performance. The forward-looking statements are dependent upon events, risks and uncertainties that may be outside of Cadre’s control. Our actual results may differ significantly from those projected in the forward- looking statements. Factors that might cause future results to differ materially from those projected in the forward- looking statements include, but are not limited to, those discussed in the sections entitled “Risk Factors” and “Cautionary Statement Regarding Forward-Looking Statements” included elsewhere in this Annual Report on Form 10-K. Certain total amounts may not foot due to rounding.

Overview and 2022 Financial Highlights

Cadre is a global leader in the manufacturing and distribution of safety and survivability equipment for first responders. Our equipment provides critical protection to allow its users to safely and securely perform their duties and protect those around them in hazardous or life-threatening situations. Through our dedication to superior quality, we establish a direct covenant with end users that our products will perform and keep them safe when they are most needed. We sell a wide range of products including body armor, explosive ordnance disposal equipment and duty gear through both direct and indirect channels. In addition, through our owned distribution, we serve as a one-stop shop for first responders providing equipment we manufacture as well as third-party products including uniforms, optics, boots, firearms and ammunition. The majority of our diversified product offering is governed by rigorous safety standards and regulations. Demand for our products is driven by technological advancement as well as recurring modernization and replacement cycles for the equipment to maintain its efficiency, effective performance and regulatory compliance.

We service the ever-changing needs of our end users by investing in research and development for new product innovation and technical advancements that continually raise the standards for safety and survivability equipment in the first responder market. Our target end user base includes domestic and international first responders such as state and local law enforcement, fire and rescue, explosive ordnance disposal technicians, emergency medical technicians (“EMT”), fishing and wildlife enforcement and departments of corrections, as well as federal agencies including the U.S. Department of State (“DoS”), U.S. Department of Defense (“DoD”), U.S. Department of Interior (“DoI”), U.S. Department of Justice (“DoJ”), U.S. Department of Homeland Security (“DHS”), U.S. Department of Corrections (“DoC”) and numerous foreign government agencies in over 100 countries.

In January 2022, the Company acquired Radar Leather Division S.r.l. (“Radar”) for $19.4 million, net of cash acquired. We recorded an allocation of the purchase price to tangible and identifiable intangible assets acquired and liabilities assumed based on their estimated fair values.

In May 2022, the Company acquired Cyalume Technologies, Inc, CT SAS Holdings, Inc. and Cyalume Technologies SAS (collectively “Cyalume”) for $36.2 million, net of cash acquired. We recorded a preliminary allocation of the purchase price to tangible and identifiable intangible assets acquired and liabilities assumed based on their estimated fair values. These estimates are preliminary and subject to adjustments as we complete our valuation process.

The following table sets forth a summary of our financial highlights for the periods indicated:

Year ended December 31, 

(in thousands)

2022

2021

Net sales

    

$

457,837

    

$

427,288

Net income

$

5,820

$

12,661

Adjusted EBITDA(1)

$

75,731

$

71,384

(1)Adjusted EBITDA is a non-GAAP financial measure. See “Non-GAAP Measures” below for our definition of, and additional information about, Adjusted EBITDA, and for a reconciliation to net income, the most directly comparable U.S. GAAP financial measure.

32

Net sales increased by $30.5 million for the year ended December 31, 2022 as compared to December 31, 2021, primarily as a result of recent acquisitions and agency demand for hard goods through our Distribution segment.

Net income decreased by $6.8 million for the year ended December 31, 2022 as compared to the year ended December 31, 2021, primarily as a result of an increase in stock-based compensation expense, which was partially offset by an increase in net sales, lower interest expense and the loss on extinguishment of debt related to the August 2021 debt refinance.

Initial Public Offering

On November 3, 2021, the Company completed its initial public offering (“IPO”) in which the Company issued and sold 6,900,000 shares of common stock, which included 900,000 shares that were offered and sold pursuant to the full exercise of the underwriters’ over-allotment option, at a public offering price of $13.00 per share. The Company’s net proceeds from the sale of shares in the IPO were $78.6 million after underwriter discounts and commissions, fees and expenses of $11.1 million, of which $2.3 million was paid to Kanders & Company, Inc., a company controlled by Warren B. Kanders, our Chief Executive Officer.

Secondary Offering

On June 9, 2022, the Company completed a secondary offering in which the Company issued and sold 2,250,000 shares of common stock at a price of $23.50 per share. The Company’s net proceeds from the sale of shares were $47.0 million after underwriter discounts and commissions, fees and expenses of $2.7 million, of which $2.0 million was paid to Kanders & Company, Inc., a company controlled by Warren B. Kanders, our Chief Executive Officer.

On July 14, 2022, the underwriters exercised a portion of their over-allotment option and purchased an additional 300,000 shares of common stock at a price of $23.50 per share, resulting in net proceeds to the Company of $6.4 million after underwriter discounts and commissions, fees and expenses of $0.7 million.

COVID-19

The global outbreak of COVID-19 was declared a pandemic by the World Health Organization and a national emergency by the U.S., and European governments in March 2020, with governments world-wide implementing safety measures restricting travel and requiring citizen lockdowns and self-confinements for quarantining purposes. During the years ended December 31, 2020, 2021, and 2022, this had negatively affected the U.S. and global economies, disrupted global supply chains, and resulted in significant transport restrictions and disruption of global financial markets.

An outbreak of disease or similar public health threat, such as the COVID-19 pandemic, could have, and in the case of the COVID-19 pandemic has had and may continue to have, a significant impact on the global supply chain, with restrictions and limitations on related activities causing disruption and delay, along with increased raw material, storage, and shipping costs. Any of these disruptions and delays may strain domestic and international supply chains, which could negatively affect the flow or availability of certain critical raw materials and finished good products that the Company relies upon. Furthermore, the foregoing impacts may negatively affect our logistical operations, including our fulfillment and shipping functions, which could result in periodic delays in the delivery of our products.

We expect that an outbreak of disease or similar public health threat, such as the COVID-19 pandemic, could have, and in the case of the COVID-19 pandemic may continue to have, an impact on the Company’s sales and profitability in future periods. The duration of these trends and the magnitude of such impacts cannot be precisely estimated at this time, as they are affected by a number of factors (some of which are outside management’s control), including those presented in Item 1A. Risk Factors.

KEY PERFORMANCE METRICS

Orders backlog

We monitor our orders backlog, which we believe is a forward-looking indicator of potential sales. Our orders backlog for products includes all orders that have been received and are believed to be firm. Due to municipal government procurement rules, in certain cases orders included in backlog are subject to budget appropriation or other contract cancellation clauses. Consequently, our

33

orders backlog may differ from actual future sales. Orders backlog can be helpful to investors in evaluating the performance of our business and identify trends over time.

The following table presents our orders backlog as of the periods indicated:

Year ended December 31, 

(in thousands)

2022

2021

Orders backlog

$

117,873

    

$

113,840

Orders comprising backlog as of a given balance sheet date are typically invoiced in subsequent periods. The majority of our products are generally processed and shipped within one to six weeks of an order being placed, though the fulfillment time for certain products, for example, explosive ordnance disposal equipment, may take three months or longer. Our orders backlog could experience volatility between periods, including as a result of customer order volumes and the speed of our order fulfilment, which in turn may be impacted by the nature of products ordered, the amount of inventory on hand and the necessary manufacturing lead time.

Orders backlog increased by $4.0 million as of December 31, 2022 compared to December 31, 2021, primarily due to $8.9 million from recent acquisitions, $8.6 million due to large government and international orders for less lethal product and $6.4 million from higher demand for armor products, offset partially by reductions of $13.2 million from 2022 shipments of large international contracts for bomb suits, $3.3 million driven by reductions in supplier past dues for ammunition and firearms through our Distribution segment and $2.1 million from 2022 shipments of a large domestic duty gear order.

DESCRIPTION OF CERTAIN COMPONENTS OF FINANCIAL DATA

Net sales

We recognize revenue when a contract exists with a customer that specifies the goods and services to be provided at an agreed upon sales price and when the performance obligation is satisfied by transferring the goods or service to the customer. The performance obligation is considered satisfied when control transfers, which is generally determined when products are shipped or delivered to the customer but could be delayed until the receipt of customer acceptance, depending on the terms of the contract. At the time of revenue recognition we also provide for estimated sales returns and miscellaneous claims from customers as reductions to revenues. Charges for shipping and handling fees billed to customers are included in net sales. Taxes collected from customers and remitted to government authorities are reported on a net basis and are excluded from sales. See Note 1 “Significant Accounting Policies — Revenue Recognition” to our audited consolidated financial statements included elsewhere in this Annual Report on Form 10-K.

We generate sales primarily through our four main sales channels: U.S. state and local agencies, international, U.S. federal agencies, and commercial.

Costs and Expenses

Cost of goods sold. Cost of goods sold includes raw material purchases, manufacturing-related labor costs, contracted labor, shipping, reimbursable research and development costs, allocated manufacturing overhead, facility costs, depreciation and amortization, and product warranty costs.

Selling, general and administrative. Selling, general and administrative (“SG&A”) expense includes personnel-related costs, professional services, marketing and advertising expense, research and development, depreciation and amortization, and impairment charges.

Restructuring and transaction costs. Restructuring costs consist primarily of termination benefits and relocation of employees, termination of operating leases and other contracts related to consolidating or closing facilities. Transaction costs consist of legal fees and consulting costs related to one-time transactions.

Related party expense. Related party expense primarily consists of rent expense related to distribution locations owned by related parties and any one-time transaction fees paid to related parties.

34

Other general income. Other general income consists primarily of gains from the disposition of a long-lived assets.

Interest expense. Interest expense consists primarily of interest on outstanding debt.

Loss on extinguishment of debt. Loss on extinguishment of debt consists primarily of recorded losses associated with debt restructuring.

Other expense, net. Other expense, net primarily consists of gains and losses from foreign currency transactions.

Provision for income taxes. A provision or benefit for income tax is calculated for each of the jurisdictions in which we operate. The provision or benefit for income taxes is determined using the asset and liability approach of accounting for income taxes. Under this approach, deferred taxes represent the future tax consequences expected to occur when the reported amounts of assets and liabilities are recovered or paid. The benefit or provision for income taxes represents income taxes paid or payable for the current year plus the change in deferred taxes during the year. Deferred taxes result from differences between the book and tax bases of assets and liabilities and are adjusted for changes in tax rates and tax laws when changes are enacted. Valuation allowances are recorded to reduce deferred tax assets when it is more likely than not that a tax benefit will not be realized. See Note 16 “Income Taxes” in our audited consolidated financial statements included elsewhere in this Annual Report on Form 10-K.

RESULTS OF OPERATIONS

In order to reflect the way our chief operation decision maker reviews and assesses the performance of the business, Cadre has determined that it has two reportable segments — the Product segment and the Distribution segment. Segment information is consistent with how the chief operating decision maker, our chief executive officer, reviews the business, makes investing and resource allocation decisions and assesses operating performance.

The following table presents data from our results of operations for the years ended December 31, 2022 and 2021 (in thousands unless otherwise noted):

Year Ended December 31, 

2022

2021

% Chg

Net sales

$

457,837

$

427,288

7.1

%

Cost of goods sold

 

282,159

 

256,598

10.0

%

Gross profit

 

175,678

 

170,690

2.9

%

Operating expenses

Selling, general and administrative

 

153,288

 

114,962

33.3

%

Restructuring and transaction costs

 

4,355

 

3,430

27.0

%

Related party expense

 

1,478

 

579

155.3

%

Other general income

 

(159)

 

(100.0)

%

Total operating expenses

 

158,962

 

118,971

33.6

%

Operating income

 

16,716

 

51,719

(67.7)

%

Other expense

Interest expense

 

(6,206)

 

(16,425)

(62.2)

%

Loss on extinguishment of debt

 

 

(15,155)

(100.0)

%

Other expense, net

 

(1,137)

 

(947)

20.1

%

Total other expense, net

 

(7,343)

 

(32,527)

(77.4)

%

Income before provision for income taxes

 

9,373

 

19,192

(51.2)

%

Provision for income taxes

 

(3,553)

 

(6,531)

(45.6)

%

Net income

$

5,820

$

12,661

(54.0)

%

35

The following table presents segment data for the years ended December 31, 2022 and 2021 (in thousands unless otherwise noted):

    

Year ended December 31, 2022

Reconciling

    

    Product    

    

Distribution

    

 Items(1)

    

      Total      

Net sales

    

$

385,423

    

$

97,106

$

(24,692)

    

$

457,837

Cost of goods sold

230,245

76,633

(24,719)

282,159

Gross profit

$

155,178

$

20,473

$

27

$

175,678

    

Year ended December 31, 2021

Reconciling

    

    Product    

    

Distribution

    

 Items(1)

    

      Total      

Net sales

    

$

362,189

    

$

90,043

    

$

(24,944)

    

$

427,288

Cost of goods sold

213,881

67,649

(24,932)

256,598

Gross profit

$

148,308

$

22,394

$

(12)

$

170,690

(1)Reconciling items consist primarily of intercompany eliminations and items not directly attributable to operating segments.

Comparison of Year Ended December 31, 2022 to Year Ended December 31, 2021

Net sales. Product segment net sales increased by $23.2 million or 6.4%, from $362.2 million to $385.4 million for the year ended December 31, 2022 as compared to 2021, primarily due to increases of $29.4 million from recent acquisitions and $11.4 million from higher demand for armor products, partially offset by reductions of $9.3 million from a large contractual armor order fulfilled in the prior year, $4.9 million for crowd control product due to higher demand in the prior year, $3.7 million from large international contractual orders for explosive ordnance disposals and $2.3 million for gun cleaning lubricants (higher prior year sales in support of firearms demand). Distribution segment net sales increased by $7.1 million or 7.8%, from $90.0 million to $97.1 million for the year ended December 31, 2022 as compared to 2021, primarily due to agency demand for hard goods. Reconciling items consisting primarily of intercompany eliminations were $24.7 million and $24.9 million for year ended December 31, 2022 and 2021, respectively.

Cost of goods sold. Product segment cost of goods sold increased by $16.3 million, or 7.7%, from $213.9 million to $230.2 million for the year ended December 31, 2022 as compared to 2021 primarily due to increased volume and increasing costs to manufacture product (principally material and labor). Product segment gross profit as a percentage of net sales decreased by 69 basis points to 40.3% in 2022 from 40.9% in 2021 mainly driven by 110 basis points related to amortization of inventory step-up recorded as part of the recent acquisitions, partially offset by favorable pricing net of mix and inflation. Distribution segment cost of goods sold increased by $9.0 million, or 13.3%, from $67.6 million to $76.6 million for the year ended December 31, 2022 as compared to 2021 primarily due to increased volume and costs to acquire products. Distribution segment gross profit as a percentage of net sales decreased 21.1% in 2022 from 24.9% in 2021 mainly driven by unfavorable channel mix with more volume going to agencies versus retail and e-commerce. Reconciling items consisting primarily of intercompany eliminations were $24.7 million and $24.9 million for year ended December 31, 2022 and 2021, respectively.

Selling, general and administrative. SG&A increased by $38.3 million, or 33.3%, for the year ended December 31, 2022 as compared to 2021 primarily due to increased stock-based compensation expense of $31.9 million in the current year and $6.9 million as a result of acquisitions.

Restructuring and transaction costs. Restructuring and transaction costs increased by $0.9 million, for the year ended December 31, 2022 as compared to 2021, which primarily consisted of expenses related to the Company’s various acquisition efforts and various initiatives implemented during the current quarter.

Related party expense. Related party expense increased by $0.9 million for the year ended December 31, 2022 as compared to 2021, primarily due to $1.0 million transaction fee paid to Kanders & Company, Inc., a company controlled by our Chief Executive Officer, in connection with the acquisition of Cyalume. We also recorded rent expense relating to distribution warehouses and retail stores that we lease from related parties.

36

Other general income. Gains in other general income increased by $0.2 million for the year ended December 31, 2022 as compared to 2021 due to a gain from the sale of our Daventry, UK facility in the current year.

Interest expense. Interest expense decreased by $10.2 million, or 62.2%, for the year ended December 31, 2022 as compared to 2021 as a result of our prior year debt refinancing and debt repayments on our outstanding debt.

Loss on extinguishment of debt. Loss on extinguishment of debt decreased by $15.2 million due to the refinancing of our long-term debt in August 2021.

Other expense, net. Other expense, net increased by $0.2 million, for the year ended December 31, 2022 as compared to 2021 primarily due to losses on foreign currency transactions.

Provision for income taxes. Income tax provision was $3.5 million for the year ended December 31, 2022 compared to $6.5 million for the year ended December 31, 2021. The effective tax rate was 37.9% for the year ended December 31, 2022 and was higher than the statutory rate due to state taxes, executive compensation and the tax impact of our foreign earnings, partially offset by research and development tax credits. For the year ended December 31, 2021, the effective tax rate was 34.0% and was higher than the statutory rate primarily due to state taxes and executive compensation, partially offset by research and development tax credits.

NON-GAAP MEASURES

This Annual Report on Form 10-K includes EBITDA, Adjusted EBITDA and Adjusted EBITDA Conversion Rate, which are non-GAAP measures that we use to supplement our results presented in accordance with U.S. GAAP. EBITDA is defined as net income before depreciation and amortization expense, interest expense and provision for income taxes. Adjusted EBITDA represents EBITDA that excludes restructuring and transaction costs, other general income, loss on extinguishment of debt, other expense, net, stock-based compensation expense, stock-based compensation payroll tax expense, long term incentive plan (“LTIP”) bonus, and amortization of inventory step-up as these items do not represent our core operating performance. We also present Adjusted EBITDA Conversion Rate, which we define as Adjusted EBITDA less capital expenditures divided by Adjusted EBITDA. We use Adjusted EBITDA Conversion Rate as a measurement of the cash generation capacity of our underlying operations, exclusive of impacts relating to our capital structure.

EBITDA, Adjusted EBITDA and Adjusted EBITDA Conversion Rate are performance measures that we believe are useful to investors and analysts because they illustrate the underlying financial and business trends relating to our core, recurring results of operations and enhance comparability between periods. Adjusted EBITDA is identical to the financial metric used under our existing credit facilities to measure our covenant compliance and is also considered by our board of directors and management as an important factor in determining performance-based compensation. Adjusted EBITDA Conversion Rate is a liquidity measure that we believe provides investors and analysts with important information about our core, recurring cash generation trends, which are an indication of our ability to make acquisitions, incur additional debt or return capital to investors, after making the capital investments required to support our business operations.

EBITDA, Adjusted EBITDA and Adjusted EBITDA Conversion Rate are not recognized measures under U.S. GAAP and are not intended to be a substitute for any U.S. GAAP financial measure and, as calculated, may not be comparable to other similarly-titled measures of performance of other companies. Investors should exercise caution in comparing our non-GAAP measures to any similarly titled measures used by other companies. These non-GAAP measures exclude certain items required by U.S. GAAP and should not be considered as alternatives to information reported in accordance with U.S. GAAP.

37

The table below presents our EBITDA, Adjusted EBITDA and Adjusted EBITDA Conversion Rate reconciled to the most comparable GAAP measure for the periods indicated:

    

Year Ended December 31, 

 

(in thousands)

    

2022

    

2021

 

Net income

$

5,820

$

12,661

Add back:

 

  

  

 

  

Depreciation and amortization

 

15,651

  

 

13,718

Interest expense

 

6,206

  

 

16,425

Provision for income taxes

 

3,553

  

 

6,531

EBITDA

$

31,230

  

$

49,335

Add back:

 

  

  

 

  

Restructuring and transaction costs(1)

 

5,355

  

 

3,430

Other general income(2)

(159)

Loss on extinguishment of debt(3)

 

  

 

15,155

Other expense, net(4)

 

1,137

  

 

947

Stock-based compensation expense(5)

32,239

355

Stock-based compensation payroll tax expense(6)

305

LTIP bonus(7)

 

1,369

  

 

2,162

Amortization of inventory step-up(8)

4,255

Adjusted EBITDA

$

75,731

  

$

71,384

Less: Capital expenditures

 

(4,666)

  

 

(3,029)

Adjusted EBITDA less capital expenditures

$

71,065

  

$

68,355

Adjusted EBITDA conversion rate

 

94

%  

 

96

%

(1)Reflects the “Restructuring and transaction costs” line item on our consolidated statement of operations, which primarily includes transaction costs composed of legal and consulting fees, and $1.0 million paid to Kanders & Company, Inc., a company controlled by our Chief Executive Officer, for services related to the acquisition of Cyalume, which is included in related party expense in the Company’s consolidated statements of operations and comprehensive income.
(2)Reflects the “Other general income” line item on our consolidated statement of operations and includes a gain from a long-lived asset sale.
(3)Reflects losses incurred in connection with the August 2021 debt refinancing.
(4)Reflects the “Other expense, net” line item on our consolidated statement of operations and primarily includes losses on foreign currency transactions.
(5)Reflects compensation expense related to equity and liability classified stock-based compensation plans.
(6)Reflects payroll taxes associated with vested stock-based compensation awards.
(7)Reflects the cost of a cash-based long-term incentive plan awarded to employees that vests over three years.
(8)Reflects amortization expense related to the step-up inventory adjustment recorded as part of the recent acquisitions

Adjusted EBITDA increased $4.3 million for the year ended December 31, 2022 as compared to 2021, primarily due to the increase in net sales, partially offset by increases in public company costs and marketing spend.

LIQUIDITY AND CAPITAL RESOURCES

Liquidity refers to our ability to generate sufficient cash flows to meet the cash requirements of our business operations, including working capital needs, capital expenditures, service debt, acquisitions and other commitments. Our principal sources of liquidity have been cash provided by operating activities, cash on hand and amounts available under our revolving credit facility.

For the year ended December 31, 2022, net cash provided by operating activities was $46.4 million and as of December 31, 2022, cash and cash equivalents were $45.3 million. We believe that our cash flows from operations and cash on hand, and available borrowing capacity under Debt (as described below) will be adequate to meet our liquidity requirements for at least the 12 months following the date

38

of this Annual Report on Form 10-K. Our future capital requirements will depend on several factors, including future acquisitions and investments in our manufacturing facilities and equipment. We could be required, or could elect, to seek additional funding through public or private equity or debt financings; however, additional funds may not be available on terms acceptable to us, if at all.

Debt

As of December 31, 2022 and December 31, 2021, we had $149.7 million and $159.7 million in outstanding debt, net of debt discounts and debt issuance costs, respectively, primarily related to the term loan facilities.

New Credit Agreement

On August 20, 2021 (the “Closing Date”), the Company refinanced its existing credit facilities and entered into a new credit agreement whereby Safariland, LLC, as borrower (the “Borrower”), the Company and certain domestic subsidiaries of the Borrower, as guarantors (the “Guarantors”), closed on and received funding under a credit agreement (initially entered into on July 23, 2021), pursuant to a First Amendment to Credit Agreement (as amended by the Second Amendment to Credit Agreement, dated as of December 14, 2022, collectively, the “New Credit Agreement”) with PNC Bank, National Association (“PNC”), as administrative agent, and the several lenders from time to time party thereto (together with PNC, the “Lenders”) pursuant to which the Borrower (i) borrowed $200.0 million under a term loan (the “Term Loan”), and (ii) may borrow up to $100.0 million under a revolving credit facility (including up to $15.0 million for letters of credit and up to $10.0 million for swing line loans) (the “Revolving Loan”). Each of the Term Loan and the Revolving Loan mature on July 23, 2026. Commencing December 31, 2021, the New Term Loan requires scheduled quarterly payments in amounts equal to 1.25% per quarter of the original aggregate principal amount of the Term Loan, with the balance due at maturity. The New Credit Agreement is guaranteed, jointly and severally, by the Guarantors and, subject to certain exceptions, secured by a first-priority security interest in substantially all of the assets of the Borrower and the Guarantors pursuant to a Security and Pledge Agreement and a Guaranty and Suretyship Agreement, each dated as of the Closing Date.

There were no amounts outstanding under the Revolving Loan as of December 31, 2022 and 2021. As of December 31, 2022, there were $2.4 million in outstanding letters of credit, and $97.6 million of availability.

The Borrower may elect to have the Revolving Loan and Term Loan under the New Credit Agreement bear interest at a base rate or a LIBOR rate, in each case, plus an applicable margin. The applicable margin for these borrowings will range from 0.50% to 1.50% per annum, in the case of base rate borrowings, and 1.50% to 2.50% per annum, in the case of LIBOR borrowings, in each case based upon the level of the Company’s consolidated total net leverage ratio. The New Credit Agreement also requires the Borrower to pay a commitment fee on the unused portion of the loan commitments. Such commitment fee will range between 0.175% and 0.25% per annum, and is also based upon the level of the Company’s consolidated total net leverage ratio.

The New Credit Agreement also contains customary representations and warranties, and affirmative and negative covenants, including limitations on additional indebtedness, dividends, and other distributions, entry into new lines of business, use of loan proceeds, capital expenditures, restricted payments, restrictions on liens on the assets of the Borrowers or any Guarantor, transactions with affiliates, amendments to organizational documents, accounting changes, sale and leaseback transactions, dispositions, and mandatory prepayments in connection with certain liquidity events. The New Credit Agreement contains certain restrictive debt covenants, which require us to: (i) maintain a minimum fixed charge coverage ratio of 1.25 to 1.00, starting with the quarter ended December 31, 2021, which is to be determined for each quarter end on a trailing four quarter basis and (ii) maintain a quarterly maximum consolidated total net leverage ratio of 3.75 to 1.00 from the quarter ended December 31, 2021 until the quarter ended September 30, 2022, and thereafter 3.50 to 1.00, which is in each case to be determined on a trailing four quarter basis; provided that under certain circumstances and subject to certain limitations, in the event of a material acquisition, we may temporarily increase the consolidated total net leverage ratio by up to 0.50 to 1.00 for four fiscal quarters following such acquisition. The New Credit Agreement contains customary events of default that include, among others, non-payment of principal, interest or fees, violation of covenants, inaccuracy of representations and warranties, failure to make payment on, or defaults with respect to, certain other material indebtedness, bankruptcy and insolvency events, material judgments and change of control provisions. Upon the occurrence of an event of default, and after the expiration of any applicable grace period, payment of any outstanding loans under the New Credit Agreement may be accelerated and the Lenders could foreclose on their security interests in the assets of the Borrowers and the Guarantors. As of March 10, 2023, there were no amounts outstanding under the Revolving Loan.

The foregoing description of the New Credit Agreement does not purport to be complete and is qualified in its entirety by reference to exhibits 10.15, 10.16 and 10.17, respectively, to this Annual Report on Form 10-K.

39

Canadian Credit Facility

On October 14, 2021, Med-Eng Holdings ULC and Pacific Safety Products Inc., the Company’s Canadian subsidiaries, as borrowers (the “Canadian Borrowers”), and Safariland, LLC, as guarantor (the “Canadian Guarantor”), closed on a line of credit pursuant to a Loan Agreement (the “Canadian Loan Agreement”) and a Revolving Line of Credit Note (the “Note”) with PNC Bank Canada Branch (“PNC Canada”), as lender pursuant to which the Canadian Borrowers may borrow up to CDN$10.0 million under a revolving line of credit (including up to $3.0 million for letters of credit) (the “Revolving Canadian Loan”). The Revolving Canadian Loan matures on July 23, 2026. The Canadian Loan Agreement is guaranteed by the Canadian Guarantor pursuant to a Guaranty and Suretyship Agreement.

The Canadian Borrowers may elect to have borrowings either in United States dollars or Canadian dollars under the Canadian Loan Agreement, which will bear interest at a base rate or a LIBOR rate, in each case, plus an applicable margin, in the case of borrowings in United States dollars, or at a Canadian Prime Rate (as announced from time to time by PNC Canada) or a Canadian deposit offered rate (“CDOR”) as determined from time to time by PNC Canada in accordance with the Canadian Loan Agreement. The applicable margin for these borrowings will range from 0.50% to 1.50% per annum, in the case of base rate borrowings and Canadian Prime Rate borrowings, and 1.50% to 2.50% per annum, in the case of LIBOR borrowings and CDOR borrowings. The Canadian Loan Agreement also requires the Canadian Borrowers to pay (i) an unused line fee on the unused portion of the loan commitments in an amount ranging between 0.175% and 0.25% per annum, based upon the level of the Company’s consolidated total net leverage ratio, and (ii) an upfront fee equal to 0.25% of the principal amount of the Note.

There were no amounts outstanding under the Revolving Canadian Loan as of December 31, 2022.

The Canadian Loan Agreement also contains customary representations and warranties, and affirmative and negative covenants, including, among others, limitations on additional indebtedness, entry into new lines of business, entry into guarantee agreements, making of any loans or advances to, or investments in, any other person, restrictions on liens on the assets of the Canadian Borrowers and mergers, transfers of assets and acquisitions. The Canadian Loan Agreement and Note also contain customary events of default that include, among others, non-payment of principal, interest or fees, violation of covenants, inaccuracy of representations and warranties, failure to make payment on, or defaults with respect to, certain other material indebtedness, bankruptcy and insolvency events, material judgments and change of control provisions. Upon the occurrence of an event of default, and after the expiration of any applicable grace period, payment of any outstanding loans under the Canadian Loan Agreement may be accelerated. As of March 10, 2023, there were no amounts outstanding under the Revolving Canadian Loan.

The foregoing description of the Canadian Loan Agreement does not purport to be complete and is qualified in its entirety by reference to the Canadian Loan Agreement, which is incorporated by reference as exhibit 10.18 to this Annual Report on Form 10-K.

Cash Flows

The following table presents a summary of our cash flows for the periods indicated:

    

Year Ended December 31, 

(in thousands)

    

2022

    

2021

Net cash provided by operating activities

    

$

46,409

  

$

40,094

Net cash used in investing activities

 

(59,626)

  

 

(2,832)

Net cash provided by (used in) financing activities

 

24,463

  

 

(6,596)

Effects of foreign exchange rates on cash and cash equivalents

 

183

  

 

318

Change in cash and cash equivalents

 

11,429

  

 

30,984

Cash and cash equivalents, beginning of period

 

33,857

  

 

2,873

Cash and cash equivalents, end of period

$

45,286

  

$

33,857

Net cash provided by operating activities

During the year ended December 31, 2022, net cash provided by operating activities of $46.4 million resulted primarily from net income of $5.8 million, a $31.9 million add back to net income for stock-based compensation, a $15.7 million add back to net income for depreciation and amortization, a $4.3 million add back to net income for amortization of inventory step-up and a $12.6 million deduction to net income from changes in operating assets and liabilities. Changes in operating assets and liabilities were primarily driven by an increase in accounts receivable of $11.5 million, an increase in prepaid expense and other assets of $7.7 million and an increase in accounts payable and other liabilities of $5.5 million.

40

During the year ended December 31, 2021, net cash provided by operating activities of $40.1 million resulted primarily from net income of $12.7 million, a $15.2 million add back to net income for loss on extinguishment of debt, a $13.7 million add back to net income for depreciation and amortization, a $3.2 million add back to net income for amortization of original debt issuance discount and debt issuance costs and a $9.7 million deduction to net income from changes in operating assets and liabilities. Changes in operating assets and liabilities were driven by an increase in accounts receivable of $4.6 million, an increase in inventories of $3.2, an increase in prepaid expense and other assets of $4.6 million and an increase in accounts payable and other liabilities of $2.7 million.

Net cash used in investing activities

During the year ended December 31, 2022, we used $59.6 million of cash in investing activities, primarily consisting of $19.4 million for the acquisition of Radar, $36.2 million for the acquisition of Cyalume and $4.5 million for purchases of property and equipment.

During the year ended December 31, 2021, we used $2.8 million of cash in investing activities relating to the purchase of property and equipment.

Net cash provided by (used in) financing activities

During the year ended December 31, 2022, net cash provided by financing activities of $24.5 million resulted primarily from proceeds from the secondary offering of $56.3 million, partially offset by principal payments on term loans of $10.1 million, taxes paid in connection with employee stock transactions of $6.3 million and dividends distributed of $11.5 million.

During the year ended December 31, 2021, we used $6.6 million of cash in financing activities, primarily consisting of proceeds from the revolving credit facility of $258.0 million, proceeds from term loans of $198.7 million, and proceeds from the initial public offering, net of underwriter discounts of $83.4 million, offset by principal payments on the revolving credit facility of $258.6 million, principal payments on term loans of $266.0 million and dividends distributed of $12.7 million.

Contractual Obligations

The following table summarizes our significant contractual obligations as of December 31, 2022 by period:

Less than

More than

(in thousands)

    

Total

    

1 year

    

1-3 Years

    

3-5 Years

    

5 Years

Lease obligations(1)

$

9,118

  

$

4,012

  

$

4,518

  

$

588

  

$

Debt(2)

 

149,076

  

 

10,000

  

 

20,256

  

 

118,820

  

 

Interest on debt(3)

 

18,510

  

 

5,708

  

 

10,241

  

 

2,561

  

 

Total contractual obligations

$

176,704

  

$

19,720

  

$

35,015

  

$

121,969

  

$

(1)Includes future minimum lease payments required under non-cancelable operating and capital leases.
(2)Includes scheduled cash principal payments on our debt, excluding interest, original issuance discount and debt issuance costs.
(3)Includes the effect of our interest rate swap and assumes (a) one-month LIBOR rate in effect as of December 31, 2022; (b) applicable margins remain constant; (c) only mandatory debt repayments are made; and (d) no refinancing occurs at debt maturity.

Off-Balance Sheet Arrangements

We do not engage in off-balance sheet financing arrangements, as defined in Item 303(a)(4)(ii) of Regulation S-K.

Critical Accounting Policies and Significant Judgements and Estimates

Our consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles, or U.S. GAAP. Preparation of the financial statements requires us to make judgments, estimates and assumptions that impact the reported amount of net sales and expenses, assets and liabilities and the disclosure of contingent assets and liabilities. We consider an accounting judgment, estimate or assumption to be critical when the estimate or assumption is complex in nature or requires a high degree of judgment and when the use of different judgments, estimates and assumptions could have a material impact on our consolidated financial statements. While our significant accounting policies are described in more detail in Note 1

41

of our consolidated financial statements, we believe that the following accounting policies are those most critical to the judgments and estimates used in the preparation of our financial statements.

Goodwill

Goodwill is initially recorded at the fair value. Goodwill represents the excess of the purchase price of acquisitions over the fair value of the net assets acquired. Goodwill is not subject to any amortization but is tested for impairment annually as of October 31st, and when events or circumstances indicate that the estimated fair value of a reporting unit may no longer exceed its carrying value. If the fair value of a reporting unit is less than its carrying value, an impairment loss is recognized in an amount equal to the excess, limited to the total amount of goodwill allocated to the reporting unit.

In evaluating goodwill for impairment, qualitative factors are considered to determine whether it is more likely than not that the fair value of a reporting unit is less than its carrying amount. If, through this qualitative assessment, the conclusion is made that it is more likely than not that a reporting unit’s fair value is less than its carrying value, an impairment test is conducted. This quantitative test is performed by comparing the fair value of a reporting unit, determined by a weighted combination of the discounted cash flow method of the income approach and the market approach, to its carrying value. If the carrying amount of the reporting unit exceeds its fair value, an impairment loss is recognized in an amount equal to that excess. We had three reporting units as of October 31, 2022: Safariland, Med-Eng, and Distribution.

We determine the fair value of reporting units based on a combination of the income approach and market approach, weighted based on the circumstances, as management believes this is the most direct approach to incorporate the specific economic attributes and risk profiles of our reporting units into our valuation model. Under the income approach, the discounted cash flow model determines fair value based on the present value of projected cash flows over a specific projection period and a residual value related to future cash flows beyond the projection period. Both values are discounted using a rate that reflects our best estimate of the weighted average cost of capital of a market participant and is adjusted for appropriate risk factors. We perform sensitivity tests with respect to growth rates and discount rates used in the income approach. Under the market approach, valuation multiples are derived based on a selection of comparable companies and acquisition transactions and applied to projected operating data for each reporting unit to arrive at an indication of fair value.

Item 7A. Quantitative and Qualitative Disclosures About Market Risk

This Item 7A is not required for Smaller Reporting Companies.

42

REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM

To the Shareholders and Board of Directors

Cadre Holdings, Inc.:

Opinion on the Consolidated Financial Statements

We have audited the accompanying consolidated balance sheets of Cadre Holdings, Inc. and subsidiaries (the Company) as of December 31, 2022 and 2021, the related consolidated statements of operations and comprehensive income, shareholders’ equity, and cash flows for each of the years in the two-year period ended December 31, 2022, and the related notes (collectively, the consolidated financial statements). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial position of the Company as of December 31, 2022 and 2021, and the results of its operations and its cash flows for each of the years in the two-year period ended December 31, 2022, in conformity with U.S. generally accepted accounting principles.

Change in Accounting Principle

As discussed in Note 1 to the consolidated financial statements, the Company has changed its method of accounting for leases as of January 1, 2022 due to the adoption of Accounting Standards Update 2016-02, Leases, and several related amendments, as issued by the Financial Accounting Standards Board.

Basis for Opinion

These consolidated financial statements are the responsibility of the Company’s management. Our responsibility is to express an opinion on these consolidated financial statements based on our audits. We are a public accounting firm registered with the Public Company Accounting Oversight Board (United States) (PCAOB) and are required to be independent with respect to the Company in accordance with the U.S. federal securities laws and the applicable rules and regulations of the Securities and Exchange Commission and the PCAOB.

We conducted our audits in accordance with the standards of the PCAOB. Those standards require that we plan and perform the audit to obtain reasonable assurance about whether the consolidated financial statements are free of material misstatement, whether due to error or fraud. The Company is not required to have, nor were we engaged to perform, an audit of its internal control over financial reporting. As part of our audits, we are required to obtain an understanding of internal control over financial reporting but not for the purpose of expressing an opinion on the effectiveness of the Company’s internal control over financial reporting. Accordingly, we express no such opinion.

Our audits included performing procedures to assess the risks of material misstatement of the consolidated financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the consolidated financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the consolidated financial statements. We believe that our audits provide a reasonable basis for our opinion.

/s/ KPMG LLP

We have served as the Company’s auditor since 2014.

Jacksonville, Florida

March 15, 2023

44

CADRE HOLDINGS, INC.

Consolidated Balance Sheets

As of December 31, 2022 and 2021

(In thousands, except for share and per share amounts)

December 31, 2022

    

December 31, 2021

Assets

 

  

 

  

Current assets

 

  

 

  

Cash and cash equivalents

$

45,286

$

33,857

Accounts receivable, net

 

64,557

 

48,344

Inventories

 

70,273

 

63,978

Prepaid expenses

 

10,091

 

10,353

Other current assets

 

6,811

 

3,171

Assets held for sale

 

 

278

Total current assets

 

197,018

 

159,981

Property and equipment, net

45,285

33,053

Operating lease assets

8,489

Deferred tax assets, net

 

2,255

 

7,059

Intangible assets, net

 

50,695

 

42,415

Goodwill

 

81,576

 

66,262

Other assets

 

6,634

 

3,026

Total assets

$

391,952

$

311,796

Liabilities, Mezzanine Equity and Shareholders' Equity

 

  

 

  

Current liabilities

 

  

 

  

Accounts payable

$

23,406

$

19,328

Accrued liabilities

 

38,720

 

40,736

Income tax payable

 

4,584

 

1,255

Liabilities held for sale

128

Current portion of long-term debt

 

12,211

 

13,174

Total current liabilities

 

78,921

 

74,621

Long-term debt

 

137,476

 

146,516

Long-term operating lease liabilities

4,965

Deferred tax liabilities

 

3,508

 

1,297

Other liabilities

 

1,192

 

722

Total liabilities

 

226,062

 

223,156

Commitments and contingencies (Note 15)

 

 

  

Mezzanine equity

 

 

  

Preferred stock ($0.0001 par value, 10,000,000 shares authorized, no shares issued and outstanding as of December 31, 2022 and December 31, 2021)

 

 

Shareholders' equity

 

 

  

Common stock ($0.0001 par value, 190,000,000 shares authorized, 37,332,271 and 34,383,350 shares issued and outstanding as of December 31, 2022 and December 31, 2021, respectively)

 

4

 

3

Additional paid-in capital

 

206,540

 

127,606

Accumulated other comprehensive income (loss)

 

2,087

 

(1,917)

Accumulated deficit

 

(42,741)

 

(37,052)

Total shareholders’ equity

 

165,890

 

88,640

Total liabilities, mezzanine equity and shareholders' equity

$

391,952

$

311,796

The accompanying notes are an integral part of these consolidated financial statements.

45

CADRE HOLDINGS, INC.

Consolidated Statements of Operations and Comprehensive Income

For the Years Ended December 31, 2022 and 2021

(In thousands, except for share and per share amounts)

    

2022

    

2021

Net sales

$

457,837

$

427,288

Cost of goods sold

 

282,159

 

256,598

Gross profit

 

175,678

 

170,690

Operating expenses

 

  

 

  

Selling, general and administrative

 

153,288

 

114,962

Restructuring and transaction costs

 

4,355

 

3,430

Related party expense

 

1,478

 

579

Other general income

(159)

Total operating expenses

 

158,962

 

118,971

Operating income

 

16,716

 

51,719

Other expense

 

  

 

  

Interest expense

 

(6,206)

 

(16,425)

Loss on extinguishment of debt

(15,155)

Other expense, net

 

(1,137)

 

(947)

Total other expense, net

 

(7,343)

 

(32,527)

Income before provision for income taxes

 

9,373

 

19,192

Provision for income taxes

 

(3,553)

 

(6,531)

Net income

$

5,820

$

12,661

Net income per share:

 

  

 

  

Basic

$

0.16

$

0.44

Diluted

$

0.16

$

0.44

Weighted average shares outstanding:

 

  

 

  

Basic

 

36,109,844

 

28,598,692

Diluted

 

36,122,374

 

28,598,692

Net income

$

5,820

$

12,661

Other comprehensive income:

 

  

 

  

Unrealized holding gains, net of tax(1)

6,444

767

Reclassification adjustments for gains included in net loss, net of tax(2)

(618)

146

Total unrealized gains on interest rate swaps, net of tax

5,826

913

Foreign currency translation adjustments, net of tax(3)

 

(1,822)

 

30

Other comprehensive income

4,004

943

Comprehensive income, net of tax

$

9,824

$

13,604

(1) Net of income tax expense of $2,148 and $256 for the years ended December 31, 2022 and 2021, respectively.

(2) Amounts reclassified to net income relate to gains on interest rate swaps and are included in Interest expense above. Amount is net of income tax benefit of $206 and income tax expense of $49 for the years ended December 31, 2022 and 2021, respectively.

(3) Net of income tax expense of $587 and $24 for the years ended December 31, 2022 and 2021, respectively.

The accompanying notes are an integral part of these consolidated financial statements.

46

CADRE HOLDINGS, INC.

Consolidated Statements of Cash Flows

For the Years Ended December 31, 2022 and 2021

(In thousands)

Year Ended December 31, 

    

2022

    

2021

Cash Flows From Operating Activities:

 

  

 

  

Net income

$

5,820

$

12,661

Adjustments to reconcile net income to net cash provided by operating activities:

 

  

 

  

Depreciation and amortization

 

15,651

 

13,718

Amortization of original issue discount and debt issue costs

 

740

 

3,193

Amortization of inventory step-up

4,255

Loss on extinguishment of debt

15,155

Deferred income taxes

 

(1,087)

 

4,772

Stock-based compensation

31,858

355

Gain on sale of fixed assets

(170)

Provision for (recoveries from) losses on accounts receivable

 

417

 

(188)

Foreign exchange loss

 

1,517

 

102

Changes in operating assets and liabilities, net of impact of acquisitions:

 

 

  

Accounts receivable

 

(11,536)

 

(4,641)

Inventories

 

1,162

 

(3,189)

Prepaid expenses and other assets

 

(7,711)

 

(4,564)

Accounts payable and other liabilities

 

5,493

 

2,720

Net cash provided by operating activities

 

46,409

 

40,094

Cash Flows From Investing Activities:

 

  

 

  

Purchase of property and equipment

 

(4,494)

 

(2,832)

Proceeds from disposition of property and equipment

411

Business acquisitions, net of cash acquired

 

(55,543)

 

Net cash used in investing activities

 

(59,626)

 

(2,832)

Cash Flows From Financing Activities:

 

  

 

  

Proceeds from revolving credit facilities

 

43,000

 

257,980

Principal payments on revolving credit facilities

 

(43,000)

 

(258,612)

Proceeds from term loans

198,716

Principal payments on term loans

 

(10,116)

 

(266,000)

Proceeds from insurance premium financing

3,989

5,010

Principal payments on insurance premium financing

 

(4,952)

 

(3,061)

Payment of capital leases

 

(25)

 

(43)

Payments for debt issuance costs

(2,198)

Payments on extinguishment of debt

(4,217)

Taxes paid in connection with employee stock transactions

(6,300)

Proceeds from initial public offering, net of underwriter discounts

83,421

Proceeds from secondary offering, net of underwriter discounts

56,329

Deferred offering costs

(2,953)

(4,841)

Dividends distributed

 

(11,509)

 

(12,751)

Net cash provided by (used in) financing activities

 

24,463

 

(6,596)

Effect of foreign exchange rates on cash and cash equivalents

 

183

 

318

Change in cash and cash equivalents

 

11,429

 

30,984

Cash and cash equivalents, beginning of period

 

33,857

 

2,873

Cash and cash equivalents, end of period

$

45,286

$

33,857

Supplemental Disclosure of Cash Flows Information:

Cash paid for income taxes, net

$

1,395

$

1,158

Cash paid for interest

$

6,109

$

13,336

Supplemental Disclosure of Non-Cash Investing and Financing Activities:

Accruals and accounts payable for capital expenditures

$

172

$

197

The accompanying notes are an integral part of these consolidated financial statements.

47

CADRE HOLDINGS, INC.

Consolidated Statements of Shareholders’ Equity

For the Years Ended December 31, 2022 and 2021

(In thousands, except for share amounts)

Accumulated

Additional

Other

Common Stock

Paid-In

Comprehensive

Accumulated

Shareholders’

    

Shares

    

Amount

    

Capital

    

Income (Loss)

    

Deficit

    

Equity

Balance, December 31, 2020

27,483,350

$

3

$

48,670

$

(2,860)

$

(36,962)

$

8,851

Net income

 

 

 

 

 

12,661

 

12,661

Issuance of common stock in initial public offering, net of underwriter discounts and issuance costs

6,900,000

78,581

78,581

Dividends declared

(12,751)

(12,751)

Stock-based compensation

355

355

Foreign currency translation adjustments

 

 

 

 

30

 

 

30

Change in fair value of derivative instruments

913

913

Balance, December 31, 2021

 

34,383,350

 

$

3

 

$

127,606

 

$

(1,917)

 

$

(37,052)

 

$

88,640

Net income

 

 

 

 

 

5,820

 

5,820

Issuance of common stock in secondary offering, net of underwriter discounts and issuance costs

2,550,000

1

53,376

53,377

Dividends declared

(11,509)

(11,509)

Stock-based compensation

30,706

30,706

Common stock issued under employee compensation plans

580,990

1,152

1,152

Common stock withheld related to net share settlement of stock-based compensation

(182,069)

(6,300)

(6,300)

Foreign currency translation adjustments

 

 

 

 

(1,822)

 

 

(1,822)

Change in fair value of derivative instruments

5,826

5,826

Balance, December 31, 2022

 

37,332,271

 

$

4

 

$

206,540

 

$

2,087

 

$

(42,741)

 

$

165,890

The accompanying notes are an integral part of these consolidated financial statements.

48

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

1.SIGNIFICANT ACCOUNTING POLICIES

Nature of Operations and Basis of Presentation

Cadre Holdings, Inc., D/B/A The Safariland Group (the “Company”, “Cadre”, “we”, “us”, and “our”), a Delaware corporation, began operations on April 12, 2012. The Company, headquartered in Jacksonville, Florida, is a global leader in manufacturing and distributing safety and survivability products and other related products for the law enforcement, first responder and military markets. The business operates through 16 manufacturing plants within the U.S., Mexico, Canada, the United Kingdom, Italy, France and Lithuania, and sells its products worldwide through its direct sales force, distribution channel and distribution partners, online stores, and third-party resellers.

Principles of Consolidation

The accompanying consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (“GAAP” or “U.S. GAAP”) and include the accounts of Cadre Holdings, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.

Stock Split

In July 2021, the Company effected a 50-for-1 stock split of its common stock and preferred stock. All share and per share information has been retroactively adjusted to reflect the stock split for all periods presented.

Emerging Growth Company

We are an “emerging growth company,” as defined in the Jumpstart Our Business Startups Act of 2012 (the “JOBS Act”). As such, we are eligible for exemptions from various reporting requirements applicable to other public companies that are not emerging growth companies, including, but not limited to, presenting only two years of audited financial statements, not being required to comply with the auditor attestation requirements of Section 404 of the Sarbanes-Oxley Act of 2002, reduced disclosure obligations regarding executive compensation, and an exemption from the requirements to obtain a non-binding advisory vote on executive compensation or golden parachute arrangements.

In addition, an emerging growth company can take advantage of an extended transition period for complying with new or revised accounting standards. This provision allows an emerging growth company to delay the adoption of certain accounting standards until those standards would otherwise apply to private companies. We have elected to avail ourselves of this provision of the JOBS Act. As a result, we will not be subject to new or revised accounting standards at the same time as other public companies that are not emerging growth companies. Therefore, our consolidated financial statements may not be comparable to those of companies that comply with new or revised accounting pronouncements as of public company effective dates.

Use of Estimates

The preparation of these consolidated financial statements requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenue and expenses during the reporting period. Actual results could differ from these estimates.

Fair Value Measurements

The Company follows the guidance of Accounting Standards Codification (“ASC”) Topic 820, Fair Value Measurements and Disclosures, which defines fair value, establishes a framework for measuring fair value and expands disclosures about fair value

49

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

measurements. This guidance also establishes the following three-level hierarchy based upon the transparency of inputs to the valuation of an asset or liability on the measurement date:

Level 1: Observable inputs that reflect unadjusted quoted prices for identical assets or liabilities traded in active markets.

Level 2: Inputs other than quoted prices included within Level 1 that are observable for the asset or liability, either directly or indirectly, for substantially the full term of the asset or liability.

Level 3: Unobservable inputs that reflect assumptions about what market participants would use in pricing assets or liabilities based on the best information available.

The Company’s financial instruments consist principally of cash, accounts receivable, prepaid expenses, other current assets, accounts payable, accrued liabilities, income tax payable and debt. The carrying amounts of certain of these financial instruments, including cash, accounts receivable, prepaid expenses, other current assets, accounts payable, accrued liabilities and income tax payable approximate their current fair value due to the relatively short-term nature of these accounts.

Cash and Cash Equivalents

Included in cash and cash equivalents are deposits with banks, cash on hand in stores, and amounts due from credit card transactions. We have no restrictions on our cash and cash equivalents.

Accounts Receivable

Trade accounts receivable consists of amounts owed to the Company and is stated net of allowances. The Company’s outstanding accounts receivable balances are exposed to credit risk and valuation allowances are established for estimated losses resulting from non-collection of outstanding amounts due from customers.

The Company establishes a reserve for estimated doubtful accounts based on the aging of its receivable balances and collection history. In addition, specific reserves are established for customer accounts as known collection problems occur due to insolvency, disputes, or other collection issues. The amounts of these specific reserves are estimated by management based on the customer’s financial position, the age of the customer’s receivables and the reasons for any disputes. The allowance for doubtful accounts is reduced by any write-off of uncollectible customer accounts.

Inventories

Inventories are stated at the lower of cost, determined using the first-in, first-out (“FIFO”) or average cost methods, or net realizable value. Elements of cost in the Company’s manufactured inventories generally include raw materials, direct labor, indirect labor, manufacturing overhead and freight-in. The Company periodically reviews its inventories considering sales forecasts and historical experience to identify excess, close-out, or slow-moving items and makes provisions as necessary to properly reflect inventory value at the lower of cost or net realizable value.

Assets Held for Sale

An asset is considered to be held for sale when all of the following criteria are met: (i) management commits to a plan to sell the asset; (ii) it is unlikely that the disposal plan will be significantly modified or discontinued; (iii) the asset is available for immediate sale in its present condition; (iv) actions required to complete the sale of the asset have been initiated; (v) sale of the asset is probable and the completed sale is expected to occur within one year; and (vi) the asset is actively being marketed for sale at a price that is reasonable given its current market value.

50

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

A long-lived asset classified as held for sale is measured at the lower of its carrying amount or fair value less cost to sell. A long-lived asset is not depreciated or amortized while it is classified as held for sale.

Property and Equipment

Property and equipment, including those acquired under capital lease agreements, is stated at cost less accumulated depreciation and amortization, except for assets acquired using acquisition accounting, which are initially recorded at fair value. Depreciation is computed using the straight-line method over the following estimated useful lives:

Buildings and improvements

   

5 to 39 years

Furniture and fixtures

2 to 10 years

Computer hardware and software

3 to 5 years

Machinery and equipment

3 to 8 years

Leasehold improvements are amortized over the lesser of the estimated useful life of the improvement or the life of the lease. Major replacements, which extend the useful lives of property and equipment, are capitalized and depreciated over the remaining useful life of the asset. Normal repair and maintenance items are expensed as incurred.

The recoverability of the carrying amount of property and equipment is assessed when events or changes in circumstances indicate that the carrying amount of an asset or asset group may not be recoverable. If it is determined that the carrying amount of an asset or asset group is not recoverable based upon expected undiscounted future cash flows of the asset or asset group, an impairment loss equal to the excess of the carrying amount over the estimated fair value of the asset or asset group is recorded.

Leases

Lease assets and lease liabilities are recognized at the commencement of an arrangement where it is determined at inception that a lease exists.  Lease assets represent the right to use an underlying asset for the lease term, and lease liabilities represent the obligation to make lease payments arising from the lease.  These assets and liabilities are initially recognized based on the present value of lease payments over the lease term calculated using our incremental borrowing rate.  Lease terms include options to extend or terminate the lease when it is reasonably certain that those options will be exercised.

Variable lease payments are generally expensed as incurred and include certain non-lease components, such as common area maintenance and other services provided by the lessor, and other charges such as utilities, insurance and property taxes included in the lease.  Leases with an initial term of 12 months or less are not recorded on the balance sheet, and the expense for these short-term leases and for operating leases is recognized on a straight-line basis over the lease term. Non-lease components are excluded from the right-of-use (“ROU”) asset and lease liability present value computations. The Company’s lease agreements do not contain any material residual value guarantees or material restrictive covenants.

Goodwill and Intangible Assets

The Company classifies intangible assets into three categories: i) intangible assets with definite lives subject to amortization, ii) intangible assets with indefinite lives not subject to amortization and iii) goodwill. The Company determines the useful lives of its identifiable intangible assets after considering the specific facts and circumstances related to each intangible asset. Factors the Company considers when determining useful lives include the contractual term of any agreement related to the asset, the historical performance of the asset, the Company’s long-term strategy for using the asset, any laws or other local regulations which could impact the useful life of the asset, and other economic factors, including competition and specific market conditions. Intangible assets that are deemed to have definite lives are amortized on a straight-line basis over their useful lives.

51

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

The Company tests goodwill and intangible assets determined to have indefinite useful lives for impairment annually, or more frequently if events or circumstances indicate that assets might be impaired. The Company performs these annual impairment tests as of October 31st each year. Goodwill is evaluated for impairment at the reporting unit level, which is defined as an operating segment or one level below an operating segment. As of October 31, 2022 and 2021, the Company had three reporting units: Safariland, Med-Eng, and Distribution.

In evaluating goodwill for impairment, qualitative factors are considered to determine whether it is more likely than not that the fair value of a reporting unit is less than its carrying amount. Some of these qualitative factors may include macroeconomic conditions, industry and market considerations, a change in financial performance, or entity-specific events. If, through this qualitative assessment, the conclusion is made that it is more likely than not that a reporting unit’s fair value is less than its carrying amount, the Company performs a two-step goodwill impairment test. The first step involves a comparison of the fair value of a reporting unit to its carrying value. If the carrying amount of the reporting unit exceeds its fair value, the second step of the process is performed, which compares the implied value of the reporting unit goodwill with the carrying value of the goodwill of that reporting unit. If the carrying value of the goodwill of a reporting unit exceeds the implied fair value of that goodwill, an impairment loss is recognized in an amount equal to that excess.

The Company determines the fair value of reporting units based on a combination of the income approach and market approach, weighted based on the circumstances. Under the income approach, the discounted cash flow model determines fair value based on the present value of projected cash flows over a specific projection period and a residual value related to future cash flows beyond the projection period. Both values are discounted using a rate that reflects the Company’s best estimate of the weighted average cost of capital of a market participant and is adjusted for appropriate risk factors. The Company performs sensitivity tests with respect to growth rates and discount rates used in the income approach. Under the market approach, valuation multiples are derived based on a selection of comparable companies and acquisition transactions and applied to projected operating data for each reporting unit to arrive at an indication of fair value.

The Company performed the qualitative assessment of goodwill and determined it was more likely than not that the fair value of each of its reporting units would be greater than its carrying amount. Therefore, the Company determined it was not necessary to perform the quantitative goodwill impairment test.

For indefinite-lived intangible assets other than goodwill, the impairment test consists of a comparison of the fair value of the intangible asset with its carrying amount. If the carrying amount exceeds the fair value, an impairment charge is recognized in an amount equal to that excess.

The Company tests definite-lived intangible assets for recoverability when changes in circumstances indicate the carrying value may not be recoverable. Events that trigger a test for recoverability include:

material adverse changes in projected revenues and expenses;
significant underperformance relative to historical and projected future operating results;
significant negative industry or economic trends; and,
a significant adverse change in the manner in which an asset group is used or in its physical condition.

Future adverse changes in these or other unforeseeable factors could result in an impairment charge that could materially impact future results of operations and financial position in the reporting period identified.

When a triggering event occurs, a test for recoverability is performed by comparing projected undiscounted future cash flows to the carrying value of the asset group. If the test for recoverability identifies a possible impairment, the asset group’s fair value is

52

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

measured relying primarily on a discounted cash flow method. An impairment charge is recognized for the amount by which the carrying value of the asset group exceeds its estimated fair value. When an impairment loss is recognized for assets to be held and used, the adjusted carrying amount of those assets is depreciated over their remaining useful life. We did not have any events or circumstances indicating impairment of our long-lived assets for the years presented.

Accounts Payable

Accounts payable represents amounts owed by us to third parties at the end of the period. Accounts payable includes $188 and $670 of book cash overdrafts in excess of cash balances in such accounts as of December 31, 2022 and 2021, respectively. We include the change in book cash overdrafts in operating cash flows in the consolidated statements of cash flows.

Revenue Recognition

The Company derives revenue primarily from the sale of physical products. The Company recognizes revenue when a contract exists with a customer that specifies the goods and services to be provided at an agreed upon sales price and when the performance obligation is satisfied by transferring the goods or service to the customer. The performance obligation is considered satisfied when control transfers, which is generally determined when products are shipped or delivered to the customer but could be delayed until the receipt of customer acceptance, depending on the terms of the contract. Sales are made on normal and customary short-term credit terms or upon delivery for point of sale transactions.

The Company enters into contractual arrangements primarily with customers in the form of individual customer orders which specify the goods, quantity, pricing, and associated order terms. The Company has some long-term contracts that may contain research and development performance obligations that are satisfied over time. The Company invoices the customer once the billing milestone is reached and collects under customary short-term credit terms. For long-term contracts, the Company recognizes revenue using the input method based on costs incurred, as this method is an appropriate measure of progress toward the complete satisfaction of the performance obligation. Due to uncertainties inherent in the estimation process, it is possible that estimates of costs to complete a performance obligation will be revised in the near-term. For those performance obligations for which revenue is recognized using a cost-to-cost input method, changes in total estimated costs, and related progress towards complete satisfaction of the performance obligation, are recognized on a cumulative catch-up basis in the period in which the revisions to the estimates are made. When the current estimate of total costs for a performance obligation indicate a loss, a provision for the entire estimated loss on the unsatisfied performance obligation is made in the period in which the loss becomes evident.

At the time of revenue recognition, the Company also provides for estimated sales returns and miscellaneous claims from customers as reductions to revenues. The estimates are based on historical rates of product returns and claims. The Company accrues for such estimated returns and claims with an estimated accrual and associated reduction of revenue. Additionally, the Company records inventory that it expects to be returned as part of inventories, with a corresponding reduction to cost of goods sold.

Charges for shipping and handling fees billed to customers are included in net sales and the corresponding shipping and handling expenses are included in cost of goods sold in the accompanying consolidated statements of operations and comprehensive income. We consider our costs related to shipping and handling after control over a product has transferred to a customer to be a cost of fulfilling the promise to transfer the product to the customer.

Sales commissions paid to employees as compensation are expensed as incurred for contracts with service periods less than a year. For contracts with service periods greater than a year, these costs are capitalized and amortized over the life of the contract. These costs are recorded in selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income.

53

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

Product Warranty

Some of the Company’s manufactured products carry limited warranty provisions for defects in quality and workmanship. A warranty reserve is established at the time of sale to cover estimated costs based on the Company’s history of warranty repairs and replacements and is recorded in cost of goods sold in the Company’s consolidated statements of operations and comprehensive income.

The following table sets forth the changes in the Company’s accrued warranties, which is recorded in accrued liabilities in the consolidated balance sheets:

Year ended December 31, 

    

2022

    

2021

Beginning accrued warranty expense

$

1,256

$

1,133

Current period claims

 

(278)

 

(399)

Provision for current period sales

 

256

 

522

Ending accrued warranty expense

$

1,234

$

1,256

Cost of Goods Sold

Cost of goods sold includes raw material purchases, manufacturing-related labor costs, contracted labor, shipping costs, reimbursable research and development costs, allocated manufacturing overhead, facility costs, depreciation and amortization, and product warranty costs.

Selling, General & Administrative Expenses

Selling, general and administrative expense includes personnel-related costs, including stock-based compensation, professional services, marketing and advertising expense, research and development, depreciation and amortization, and impairment charges.

Advertising Expenses

Advertising costs are expensed in the period incurred. Advertising expenses primarily consist of marketing, promotions, catalog and trade show expenses and were $4,711 and $3,120 during the years ended December 31, 2022 and 2021, respectively. Advertising expenses are included in selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income.

Research and Development

Research and development expenses are expensed as incurred and included within selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income. Total research and development costs were $7,086 and $6,460 for the years ended December 31, 2022 and 2021, respectively.

In addition, the Company incurs research and development expenses related to reimbursable development contracts. Contractual research and development expenses are included in cost of goods sold in the Company’s consolidated statements of operations and comprehensive income and were $1,639 and $5,895 for the years ended December 31, 2022 and 2021, respectively.

54

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

Debt Issuance Costs

The Company capitalizes costs related to the issuance of debt under the provisions of ASC Subtopic 835-30, Interest — Imputation of Interest. Debt issuance costs related to a recognized debt liability are presented in the consolidated balance sheets as a direct deduction from the carrying amount of that debt liability and subsequently amortized on a straight-line method which approximates the effective interest method over the life of the related loan. Debt issuance costs related to line-of-credit are presented in the consolidated balance sheets as an asset and subsequently amortized ratably over the term of the respective arrangement. Amortization of debt issuance costs is included as a component of interest expense in the Company’s consolidated statements of operations and comprehensive income.

Stock-Based Compensation

The Company records compensation expense for all stock-based awards granted based on the fair value of the award at the time of the grant. The fair value of each option award is estimated on the date of grant using the Black-Scholes option pricing model that uses assumptions and estimates that the Company believes are reasonable. The fair value of restricted stock awards is measured based on the closing market value of the Company’s common stock on the date of the grant. For restricted stock awards subject to market conditions, the fair value of each restricted stock award has been estimated as of the date of grant using a Monte-Carlo pricing model. The Company recognizes the cost of the stock-based awards on a straight-line basis over the requisite service period of the award and recognizes forfeitures in the period they occur. Stock options granted have contractual terms of up to ten years. Upon vesting of restricted stock awards, the Company issues shares from those authorized and reserved for issuance.

Derivatives

The Company mitigates the impact of changes in interest rates with interest rate swaps that are accounted for as designated hedges pursuant to ASC Topic 815, Derivatives and Hedging ("ASC 815"). ASC 815 requires that an entity recognize all derivatives as either assets or liabilities on the balance sheet, measure those instruments at fair value and recognize changes in the fair value of derivatives in earnings in the period of change unless the derivative qualifies as designated cash flow hedge that offsets certain exposures. Certain criteria must be satisfied in order for derivative financial instruments to be classified and accounted for as a cash flow hedge. Changes in the fair value of derivatives that are not elected for hedge accounting treatment are recorded immediately into earnings.

The Company would discontinue hedge accounting prospectively (i) if it is determined that the derivative is no longer effective in offsetting changes in the cash flows of a hedged item, (ii) when the derivative expires or is sold, terminated, or exercised, (iii) if it becomes probable that the forecasted transaction being hedged by the derivative will not occur, (iv) if a hedged firm commitment no longer meets the definition of a firm commitment, or (v) if it is determined that designation of the derivative as a hedge instrument is no longer appropriate. 

Restructuring Costs

Restructuring costs consist primarily of termination benefits and relocation of employees, termination of operating leases and other contracts related to consolidating or closing facilities. The Company applies the provisions of ASC Topic 420, Exit or Disposal Cost Obligations (“ASC 420”) and ASC Topic 712, Nonretirement Postemployment Benefits (“ASC 712”) in the recording of severance costs. Severance costs accounted for under ASC 420 are recognized when management with the proper level of authority commits to a restructuring plan and communicates those actions to employees and other applicable criteria. Severance costs accounted for under ASC 712 are recognized when it is probable that employees are entitled to benefits and the amount could be reasonably estimated. Other exit costs are accounted for under ASC 420 and are either deferred or expensed as incurred based on the nature of the expense.

55

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

Income Taxes

The Company accounts for income taxes under the provisions of ASC Topic 740, Income Taxes. Deferred tax assets and liabilities are determined based on differences between the financial statement carrying amounts and tax bases of assets and liabilities and are classified as noncurrent in the consolidated balance sheets.

Deferred tax assets and liabilities are measured using enacted tax rates expected to apply to taxable income in the years in which those temporary differences are expected to be recovered or settled. The effect of changes in tax rates on deferred tax assets and liabilities is recognized in income in the period that includes the enactment date. Changes in tax laws and rates could have a material impact on the deferred tax assets and liabilities recorded.

Deferred tax assets are reduced by a valuation allowance when, in the opinion of management, it is more likely than not that some portion or all of the deferred tax assets will not be realized. Significant estimates are used in the evaluation of the need for a valuation allowance including estimates regarding future taxable income. Changes to those estimates could impact management’s conclusions regarding the need for valuation allowances on some or all of the deferred tax assets. The Company releases the income tax effects of deferred tax balances that have a valuation allowance from accumulated other comprehensive income (loss) once the reason the tax effects were established ceases to exist.

The Company is subject to income taxes in the United States and several foreign jurisdictions. In the United States, the Company files a consolidated income tax return with its domestic subsidiaries. When tax returns are filed, it is highly certain that some positions taken would be sustained upon examination by taxing authorities, while others are subject to uncertainty about the merits of the position taken or the amount of the position that would be ultimately sustained. The benefit of a tax position is recognized in the consolidated financial statements in the period during which, based on all available evidence, it is more likely than not that the position will be sustained upon examination, including the resolution of appeals or litigation processes, if any. Tax positions taken are not offset or aggregated with other positions. Tax positions that meet the more-likely than-not threshold are measured as the largest amount of tax benefit that is more than 50% likely of being realized upon settlement with the applicable taxing authority. The portion of the benefits associated with tax positions taken that exceeds the amount measured as described above is reflected as a liability for unrecognized tax benefits in the accompanying balance sheets along with any associated interest and penalties that would be payable to the taxing authorities upon examination.

Further information regarding the Company’s tax positions is included in Note 16, Income Taxes.

Accumulated Other Comprehensive Income (Loss)

Comprehensive income (loss) represents all changes in equity of the Company that result from recognized transactions and other economic events during the period. Other comprehensive income (loss) refers to revenues, expenses, gains, and losses that under GAAP are included in comprehensive income but excluded from net income.

Foreign Currency

Translation

Assets and liabilities of subsidiaries operating outside the United States with a functional currency other than U.S. Dollars are translated into U.S. Dollars using the exchange rates in effect at the balance sheet date. Results of operations are translated using the average exchange rate prevailing throughout the period. The effects of unrealized exchange rate fluctuations on translating foreign currency assets and liabilities into U.S. dollars are accumulated as the cumulative translation adjustment included in accumulated other comprehensive income (loss) in the consolidated balance sheets.

56

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

Transaction

Transactions denominated in foreign currency are recorded at the exchange rate on the date of each transaction. Realized gains and losses on foreign currency transactions are included in other income, net in the consolidated statements of operations and comprehensive income, except on certain intercompany balances which the Company has determined are of a long-term investment nature, which are included in accumulated other comprehensive income (loss) in the consolidated balance sheets. Monetary assets and liabilities are remeasured at the balance sheet date at end-of-period exchange rates. Unrealized gains and losses arising from remeasurement of foreign currency-denominated monetary assets and liabilities are included in other expense, net in the consolidated statements of operations and comprehensive income in the period in which they occur.

Net Income per Share

Basic income or loss per share is computed by dividing net income by the weighted average number of common shares outstanding during the periods presented. Diluted income or loss per share is calculated by adjusting weighted average shares outstanding for the dilutive effect of potential common shares, determined using the treasury-stock method. The calculation of weighted average shares outstanding and net income per share are as follows:

    

Year ended December 31, 

    

2022

    

2021

Net income

$

5,820

$

12,661

 

  

 

  

Weighted average shares outstanding - basic

 

36,109,844

 

28,598,692

Effect of dilutive securities:

Stock-based awards

12,530

Weighted average shares outstanding - diluted

 

36,122,374

 

28,598,692

Net income per share:

 

  

 

  

Basic

$

0.16

$

0.44

Diluted

$

0.16

$

0.44

There were no dilutive instruments outstanding for the year ended December 31, 2021.

Risk and Uncertainties

Concentration of Credit Risk

Financial instruments that potentially subject the Company to concentration of credit risk consist principally of cash and accounts receivable. Risks associated with cash within the United States and foreign countries are mitigated by banking with federally insured, creditworthy institutions. As of December 31, 2022 and 2021, the Company had deposits of $10,142 and $7,593, respectively, at foreign financial institutions.

Accounts receivable are financial instruments that also expose the Company to concentration of credit risk. Such exposure is limited by the large number of customers comprising the Company’s customer base and their dispersion across different geographic areas. In addition, the Company routinely assesses the financial strength of its customers and maintains an allowance for doubtful accounts that management believes will adequately provide for credit losses. Accordingly, the Company performs ongoing credit evaluations of its customers and maintains allowances for possible losses as considered necessary by management.

57

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

Recent Accounting Pronouncements

Recently Adopted Accounting Pronouncements

In February 2016, the FASB issued ASU 2016-02, Leases (Topic 842), which is intended to increase transparency and comparability among organizations by requiring the recognition of right-of-use (“ROU”) assets and lease liabilities on the balance sheet. In July 2018, the FASB issued additional guidance which provided an additional transition method for adopting the updated guidance. Under the additional transition method, entities may elect to recognize a cumulative-effect adjustment to the opening balance of retained earnings in the year of adoption. In June 2020, the FASB issued additional guidance which extends the effective date of ASU 2016-02 for emerging growth companies to begin in fiscal years beginning after December 15, 2021. We adopted ASU 2016-02 prospectively on January 1, 2022. As part of the adoption, we elected the package of practical expedients which permits us under the new standard not to reassess historical lease classification, not to recognize short-term leases on our balance sheet, and not to separate lease and non-lease components for all our leases. In addition, we elected the use of hindsight to determine the lease term of its leases and applied its incremental borrowing rate based on the remaining term of its leases as of the adoption date. The impact upon adoption, on January 1, 2022, resulted in the recognition of operating right-of-use assets of $11,769, and operating lease liabilities of $12,029 on our consolidated balance sheet. Refer to Note 17, Leases, for further discussion.

In December 2019, the FASB issued ASU 2019-12, Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes. ASU 2019-12 simplifies the accounting for income taxes by removing certain exceptions to the general principles in Topic 740 and improves consistent application of and simplifies GAAP for other areas of Topic 740 by clarifying existing guidance. For emerging growth companies, this ASU is effective for fiscal years beginning after December 15, 2021, and interim periods within those fiscal years beginning after December 15, 2022. Early adoption is permitted. The Company adopted this standard on January 1, 2022, which did not result in a material impact on our consolidated financial statements and related disclosures.

Accounting Pronouncements Not Yet Adopted

In June 2016, the FASB issued ASU 2016-13, Financial Instruments — Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments. ASU 2016-13 includes an impairment model (known as the current expected credit loss model) that is based on expected losses rather than incurred losses. Under the new guidance, an entity recognizes as an allowance its estimate of expected credit losses, which the FASB believes will result in more timely recognition of such losses. The use of forecasted information is intended to incorporate more timely information in the estimate of expected credit loss. In November 2019, the FASB issued additional guidance which extends the effective date of ASU 2016-13 for emerging growth companies to begin in fiscal years beginning after December 15, 2022. Early adoption is permitted. The Company plans to adopt this standard on January 1, 2023 and is currently in the process of evaluating the impact of the adoption of this standard on its consolidated financial statements.

In March 2020, the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) 2020-04, Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting. This ASU provides temporary optional expedients and exceptions to existing guidance on contract modifications and hedge accounting to facilitate the market transition from existing reference rates, such as the London Inter-Bank Offered Rate (“LIBOR”) which is being phased out in 2021, to alternate reference rates, such as the Secured Overnight Financing Rate (“SOFR”). The standard is currently effective and upon adoption may be applied prospectively to contract modifications made on or before December 31, 2022. The provisions have impact as contract modifications and other changes occur while LIBOR is phased out. The Company is in the process of evaluating the optional relief guidance provided within this ASU. Management will continue its assessment and monitor regulatory developments during the LIBOR transition period. Currently, management does not believe that the impact of transitioning from LIBOR to SOFR will have a material effect on the interest rates of the company.

There were no other new accounting standards that the Company expects to have a potential material impact to the financial position or results of operations upon adoption.

58

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

2.ACQUISITIONS

Radar Acquisition

On January 11, 2022, Safariland, LLC, a wholly-owned subsidiary of the Company, completed the acquisition of Radar Leather Division S.r.l. (“Radar”), a premiere family-owned duty gear business based in Italy that specializes in the production of high-quality holsters, belts, duty belts, and other accessories.

The acquisition was accounted for as a business combination. Total acquisition-related costs for the acquisition of Radar were $627, of which $204 was incurred and recognized during the year ended December 31, 2022.

Total consideration, net of cash acquired, was $19,365 for 100% of the equity interests in Radar. The total consideration was as follows:

Cash paid

    

$

20,844

Less: cash acquired

 

(1,479)

Total consideration, net

$

19,365

The following table summarizes the total purchase price consideration and the amounts recognized for the assets acquired and liabilities assumed, which have been estimated at their fair values. Since our initial purchase price allocation and during the measurement period, we have increased goodwill by $390 for revisions made to cash paid, inventory acquired and deferred income taxes for certain book and tax basis differences as we completed the tax return filings for the pre-acquisition period. The excess of purchase consideration over the assets acquired and liabilities assumed is recorded as goodwill. Goodwill for the Radar acquisition is included in the Product segment and reflects synergies and additional legacy growth and profitability expected from this acquisition through expansion into new markets and customers.

Total consideration, net

    

$

19,365

Accounts receivable

$

2,347

Inventories

1,874

Prepaid expenses

682

Other current assets

665

Property and equipment

3,053

Intangible assets

10,200

Goodwill

7,101

Total assets acquired

25,922

Accounts payable

1,120

Deferred tax liabilities

2,787

Accrued liabilities

2,106

Long-term debt

544

Total liabilities assumed

6,557

Net assets acquired

$

19,365

59

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

In connection with the acquisition, the Company acquired exclusive rights to Radar’s trademarks, customer relationships, and product technologies. The amounts assigned to each class of intangible asset and the related average useful lives are as follows:

    

Gross

    

Average Useful Life

Customer relationships

$

9,300

15

Technology

600

 

10

Trademarks

300

7

Total

$

10,200

The full amount of goodwill of $7,101 is expected to be non-deductible for tax purposes. No pre-existing relationships existed between the Company and Radar prior to the acquisition. Radar revenue and cost of goods sold are included in the Product segment from the date of acquisition. The acquisition was not material to our consolidated financial statements.

Cyalume Acquisition

On May 4, 2022, Safariland, LLC, a wholly-owned subsidiary of the Company, completed the acquisition of Cyalume Technologies, Inc, CT SAS Holdings, Inc. and Cyalume Technologies SAS (collectively “Cyalume”). Cyalume is engaged in the design and manufacture of proprietary chemical illumination solutions for a diverse range of products, including light sticks, infrared products, safety markings and non-pyrophoric training ammunition.

The acquisition was accounted for as a business combination. Acquisition-related costs for the acquisition of Cyalume were $3,546 for the year ended December 31, 2022.

Total consideration, net of cash acquired, was $36,178 for 100% of the equity interests in Cyalume. The total consideration was as follows:

Cash paid

    

$

38,012

Less: cash acquired

 

(1,834)

Total consideration, net

$

36,178

The following table summarizes the total purchase price consideration and the preliminary fair value amounts recognized for the assets acquired and liabilities assumed, which have been estimated at their fair values. The fair value estimates for the purchase price allocation are based on the Company’s best estimates and assumptions as of the reporting date and are considered preliminary. Since our initial purchase price allocation, we have increased goodwill by $2,460 for revisions made to cash paid as a result of a working capital settlement and deferred income taxes for certain book and tax basis differences as we completed the tax return filings for the pre-acquisition period. The fair value measurements of identifiable assets, specifically property and equipment, liabilities, and the resulting goodwill related to the Cyalume acquisition are subject to change as we complete our valuation process and the final purchase price allocation could be different from the amounts presented below. We expect to finalize the valuations as soon as practicable, but no later than one year from the date of the acquisition. The excess of purchase consideration over the assets acquired and liabilities assumed is

60

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

recorded as goodwill. Goodwill for the Cyalume acquisition is included in the Product segment and reflects synergies and additional legacy growth and profitability expected from this acquisition through expansion into new markets and customers.

Total consideration, net

    

$

36,178

Accounts receivable

$

3,302

Inventories

10,908

Prepaid expenses

255

Other current assets

10

Property and equipment

11,701

Intangible assets

8,300

Goodwill

9,101

Total assets acquired

43,577

Accounts payable

1,080

Deferred tax liabilities

4,454

Accrued liabilities

1,577

Other long-term liabilities

288

Total liabilities assumed

7,399

Net assets acquired

$

36,178

In connection with the acquisition, the Company acquired exclusive rights to Cyalume’s trademarks, customer relationships, and product technologies. The amounts assigned to each class of intangible asset and the related average useful lives are as follows:

    

Gross

    

Average Useful Life

Customer relationships

$

3,900

15

Technology

3,600

 

10

Trademarks

800

Indefinite

Total

$

8,300

The full amount of goodwill of $9,101 is expected to be non-deductible for tax purposes. No pre-existing relationships existed between the Company and Cyalume prior to the acquisition. Cyalume revenue and cost of goods sold are included in the Product segment from the date of acquisition. The acquisition was not material to our consolidated financial statements.

3.ACCOUNTS RECEIVABLE, NET

The following is a reconciliation of the changes in our allowance for doubtful accounts during fiscal 2022 and 2021:

Year ended December 31, 

    

2022

    

2021

Beginning allowance for doubtful accounts

$

645

$

1,113

Provision

 

417

 

(188)

Write-offs

 

(138)

 

(280)

Ending allowance for doubtful accounts

$

924

$

645

61

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

4.DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE

In October 2021, the Company designated our Daventry, UK facility as held for sale. Accordingly, during 2021, the Company determined that the assets and liabilities associated with the Daventry facility met the criteria for classification as held for sale but did not meet the criteria for classification as discontinued operations as the deconsolidation did not represent a strategic shift in the business.

In November 2022, the Company completed the sale of our Daventry, UK facility for a net sales price of $411, resulting in a gain of $170, which is included in other general income in the consolidated statements of operations and comprehensive income for the year ended December 31, 2022.

5.REVENUE RECOGNITION

The following tables disaggregate net sales by channel and geography:

Year ended December 31, 

    

2022

    

2021

U.S. state and local agencies (a)

$

250,680

$

231,095

Commercial

 

45,357

 

34,860

U.S. federal agencies

 

51,165

 

47,575

International

 

106,593

 

107,503

Other

 

4,042

 

6,255

Net sales

$

457,837

$

427,288

(a) Includes all Distribution sales

Year ended December 31, 

    

2022

    

2021

United States

$

351,244

$

319,785

International

 

106,593

 

107,503

Net sales

$

457,837

$

427,288

Revenue by product is not disclosed, as it is impractical to do so.

Contract Liabilities

Contract liabilities are recorded as a component of other liabilities when customers remit cash payments in advance of the Company satisfying performance obligations which are satisfied at a future point of time. Contract liabilities are derecognized when the performance obligation is satisfied. Contract liabilities are included in accrued liabilities in the Company’s consolidated balance sheets and totaled $4,615 and $10,949, as of December 31, 2022 and 2021, with $8,324 of the 2021 contract liabilities being recognized in revenue during the year ended December 31, 2022.

Remaining Performance Obligations

As of December 31, 2022, we had $19,997 of remaining performance obligations, which included amounts that will be invoiced and recognized in future periods. The remaining performance obligations are limited only to arrangements that meet the definition of a contract under Topic 606 as of December 31, 2022. We expect to recognize 52% of this balance over the next twelve months and expect the remainder to be recognized in the following two years.

62

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

6.FAIR VALUE MEASUREMENTS

Assets and liabilities measured at fair value on a recurring basis as of December 31, 2022 and 2021 consisted of the following:

December 31, 2022

December 31, 2021

Carrying 

Fair Value

Carrying 

Fair Value

    

amount

    

Level 1

    

Level 2

    

Level 3

    

amount

    

Level 1

    

Level 2

    

Level 3

Assets:

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

Interest rate swap (Note 11)

$

8,985

$

$

8,985

$

$

1,607

$

$

1,607

$

Liabilities:

Interest rate swap (Note 11)

389

389

There were no transfers of assets or liabilities between levels during the years ended December 31, 2022 and 2021.

7.INVENTORIES

The following table sets forth a summary of inventories stated at lower of cost or net realizable value, as of December 31, 2022 and 2021:

    

December 31, 

    

2022

    

2021

Finished goods

$

25,208

$

28,707

Work-in-process

 

7,466

 

4,053

Raw materials and supplies

 

37,599

 

31,218

Total

$

70,273

$

63,978

8.

8.PROPERTY AND EQUIPMENT

Property and equipment consist of the following:

    

December 31, 

2022

    

2021

Land

$

7,545

$

4,620

Building and improvements

 

22,992

 

17,556

Furniture and fixtures

 

1,400

 

1,209

Computer hardware and software

 

24,140

 

23,547

Machinery and equipment

 

28,464

 

21,795

Construction in progress

 

3,438

 

1,497

 

87,979

 

70,224

Less accumulated depreciation

 

(42,694)

 

(37,171)

Total

$

45,285

$

33,053

The Company recorded depreciation expense of $6,851 and $5,143 for the years ended December 31, 2022 and 2021, respectively, of which $3,433 and $2,144 was included in cost of goods sold in the consolidated statements of operations and comprehensive income for the respective years.

63

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

9.GOODWILL AND OTHER INTANGIBLE ASSETS

Goodwill

The following table summarizes the changes in goodwill during the years ended December 31, 2022 and 2021:

    

Product

    

Distribution

    

Total

Balance, December 31, 2020

 

$

63,698

 

$

2,616

 

$

66,314

Foreign currency translation adjustments

 

(52)

 

 

(52)

Balance, December 31, 2021

$

63,646

$

2,616

$

66,262

Radar acquisition

6,711

6,711

Cyalume acquisition

6,641

6,641

Measurement period adjustments

2,850

2,850

Foreign currency translation adjustments

(888)

(888)

Balance, December 31, 2022

$

78,960

$

2,616

$

81,576

Impairment of Goodwill

No impairment losses were recorded during the years ended December 31, 2022 and 2021. Gross goodwill and accumulated impairment losses was $89,161 and $7,585 as of December 31, 2022 and $73,847 and $7,585, respectively, as of December 31, 2021.

Intangible Assets

Intangible assets such as certain customer relationships and patents on core technologies and product technologies are amortizable over their estimated useful lives. Certain trade names and trademarks which provide exclusive and perpetual rights to manufacture and sell their respective products are deemed indefinite-lived and are therefore not subject to amortization.

Intangible assets, net of amortization, as of December 31, 2022 and 2021 are as follows:

December 31, 2022

    

    

    

    

Weighted 

Accumulated 

Average 

Gross

amortization

Net

 

Useful Life

Definite lived intangibles:

 

  

 

  

 

  

 

  

Customer relationships

$

85,847

 

$

(59,122)

 

$

26,725

 

11

Technology

 

15,629

 

 

(11,309)

 

 

4,320

 

8

Tradenames

 

6,484

 

 

(4,254)

 

 

2,230

 

4

Non-compete agreements

 

973

 

 

(973)

 

 

 

4

$

108,933

 

$

(75,658)

 

$

33,275

Indefinite lived intangibles:

 

  

 

 

  

 

 

  

 

  

Tradenames

 

17,420

 

 

 

 

17,420

 

Indefinite

Total

$

126,353

 

$

(75,658)

 

$

50,695

 

  

64

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

December 31, 2021

    

    

    

    

Weighted 

Accumulated 

Average 

Gross

amortization

Net

 

Useful Life

Definite lived intangibles:

 

  

 

  

 

  

 

  

Customer relationships

$

74,078

$

(52,536)

 

$

21,542

 

11

Technology

 

11,978

 

 

(10,988)

 

 

990

 

7

Tradenames

 

6,473

 

 

(3,264)

 

 

3,209

 

4

Non-compete agreements

 

1,037

 

 

(1,037)

 

 

 

4

$

93,566

 

$

(67,825)

 

$

25,741

Indefinite lived intangibles:

 

  

 

 

  

 

 

  

 

  

Tradenames

 

16,674

 

 

 

 

16,674

 

Indefinite

Total

$

110,240

 

$

(67,825)

 

$

42,415

 

  

The Company recorded amortization expense of $8,800 and $8,575 for the years ended December 31, 2022 and 2021, respectively, of which $439 and $666 was included in cost of goods sold in the consolidated statements of operations and comprehensive income for the respective years.

The estimated amortization expense for definite-lived intangible assets for the next five years and thereafter is presented below:

2023

    

$

7,719

2024

 

5,015

2025

 

3,060

2026

 

2,665

2027

 

2,490

Thereafter

 

12,326

Total

$

33,275

10.

10.ACCRUED LIABILITIES

Accrued liabilities as of December 31, 2022 and 2021 are as follows:

    

December 31, 

2022

2021

Accrued expenses

$

3,656

$

3,226

Accrued compensation and payroll tax

 

20,420

 

19,227

Accrued interest payable

 

73

 

70

Accrued warranty expense

 

1,234

 

1,256

Deferred revenue and customer credit balances

5,937

12,605

Current lease liabilities

3,773

Other accrued liabilities

3,627

4,352

Total

$

38,720

$

40,736

11.

65

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

11.DEBT

The Company’s debt is as follows:

    

December 31, 2022

    

December 31, 2021

Short-term debt:

 

  

 

  

Insurance premium financing

$

2,211

$

3,174

Current portion of term loan

 

10,000

 

10,000

$

12,211

$

13,174

Long-term debt:

 

  

 

  

Revolver

 

 

Term loan

 

138,564

 

148,564

Other

 

512

 

$

139,076

$

148,564

Unamortized debt discount and debt issuance costs

 

(1,600)

 

(2,048)

Total long-term debt, net

$

137,476

$

146,516

The following summarizes the aggregate principal payments of our long-term debt, excluding debt discount and debt issuance costs as of December 31, 2022:

2023

    

$

10,000

2024

 

10,128

2025

 

10,128

2026

 

118,692

2027

 

128

Thereafter

 

Total principal payments

$

149,076

New Credit Facility

On August 20, 2021 (the “Closing Date”), the Company refinanced its existing credit facilities and entered into a new credit agreement whereby Safariland, LLC, as borrower (the “Borrower”), the Company and certain domestic subsidiaries of the Borrower, as guarantors (the “Guarantors”), closed on and received funding under a credit agreement (initially entered into on July 23, 2021), pursuant to a First Amendment to Credit Agreement (as amended by the Second Amendment to Credit Agreement, dated as of December 14, 2022, collectively, the “New Credit Agreement”) with PNC Bank, National Association (“PNC”), as administrative agent, and the several lenders from time to time party thereto (together with PNC, the “Lenders”) pursuant to which the Borrower (i) borrowed $200,000 under a term loan (the “Term Loan”), and (ii) may borrow up to $100,000 under a revolving credit facility (including up to $15,000 for letters of credit and up to $10,000 for swing line loans) (the “Revolving Loan”). Each of the Term Loan and the Revolving Loan mature on July 23, 2026. Commencing December 31, 2021, the New Term Loan requires scheduled quarterly payments in amounts equal to 1.25% per quarter of the original aggregate principal amount of the Term Loan, with the balance due at maturity. The New Credit Agreement is guaranteed, jointly and severally, by the Guarantors and, subject to certain exceptions, secured by a first-priority security interest in substantially all of the assets of the Borrower and the Guarantors pursuant to a Security and Pledge Agreement and a Guaranty and Suretyship Agreement, each dated as of the Closing Date.

The Company performed an analysis on a creditor-by-creditor basis for debt modifications and extinguishments to determine the appropriate accounting treatment of associated issuance costs. In connection with the refinancing, the Company recorded a loss on debt extinguishment of $15,155 for the year ended December 31, 2021 related to early extinguishments fees and the write-off of unamortized debt discount and debt issuance costs.

66

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

In connection with the New Credit Agreement, the Company paid financing costs totaling $4,114, of which $2,749 related to the Term Loan and $1,365 related to the Revolving Loan. Total financing costs consisted of $1,916 of fees paid to lenders and $2,198 of debt issuance costs. Costs incurred in connection with the Term Loan were deferred and recorded as an offset to long-term debt. Costs incurred in connection with the Revolving Loan were deferred and recorded to other assets. All deferred debt costs are amortized to interest expense over the term of the loan using the effective interest method.

As of December 31, 2022 and 2021, the Company had an unamortized debt discount of $748 and $956 and unamortized debt issuance costs of $851 and $1,092, respectively, included as an offset to debt in the consolidated balance sheets.

There were no amounts outstanding under any revolving loans as of December 31, 2022 and 2021. As of December 31, 2022, there were $2,355 in outstanding letters of credit and $97,645 of availability.

As of December 31, 2022 and 2021, the term loan outstanding principal balance was $148,564 and $158,564 and bore interest at 6.14% and 2.61%, respectively.

The Borrower may elect to have the Revolving Loan and Term Loan under the New Credit Agreement bear interest at a base rate or a LIBOR rate, in each case, plus an applicable margin. The applicable margin for these borrowings will range from 0.50% to 1.50% per annum, in the case of base rate borrowings, and 1.50% to 2.50% per annum, in the case of LIBOR borrowings, in each case based upon the level of the Company’s consolidated total net leverage ratio. The New Credit Agreement also requires the Borrower to pay a commitment fee on the unused portion of the loan commitments. Such commitment fee will range between 0.175% and 0.25% per annum, and is also based upon the level of the Company’s consolidated total net leverage ratio. The New Credit Agreement also contains customary representations and warranties, and affirmative and negative covenants, including limitations on additional indebtedness, dividends, and other distributions, entry into new lines of business, use of loan proceeds, capital expenditures, restricted payments, restrictions on liens on the assets of the Borrowers or any Guarantor, transactions with affiliates, amendments to organizational documents, accounting changes, sale and leaseback transactions, dispositions, and mandatory prepayments in connection with certain liquidity events. The New Credit Agreement contains certain restrictive debt covenants, which require us to: (i) maintain a minimum fixed charge coverage ratio of 1.25 to 1.00, starting with the quarter ended December 31, 2021, which is to be determined for each quarter end on a trailing four quarter basis and (ii) maintain a quarterly maximum consolidated total net leverage ratio of 3.75 to 1.00 from the quarter ended December 31, 2021 until the quarter ended September 30, 2022, and thereafter 3.50 to 1.00, which is in each case to be determined on a trailing four quarter basis; provided that under certain circumstances and subject to certain limitations, in the event of a material acquisition, we may temporarily increase the consolidated total net leverage ratio by up to 0.50 to 1.00 for four fiscal quarters following such acquisition. The New Credit Agreement contains customary events of default that include, among others, non-payment of principal, interest or fees, violation of covenants, inaccuracy of representations and warranties, failure to make payment on, or defaults with respect to, certain other material indebtedness, bankruptcy and insolvency events, material judgments and change of control provisions. Upon the occurrence of an event of default, and after the expiration of any applicable grace period, payment of any outstanding loans under the New Credit Agreement may be accelerated and the Lenders could foreclose on their security interests in the assets of the Borrowers and the Guarantors.

Canadian Credit Facility

On October 14, 2021, Med-Eng Holdings ULC and Pacific Safety Products Inc., the Company’s Canadian subsidiaries, as borrowers (the “Canadian Borrowers”), and Safariland, LLC, as guarantor (the “Canadian Guarantor”), closed on a line of credit pursuant to a Loan Agreement (the “Canadian Loan Agreement”) and a Revolving Line of Credit Note (the “Note”) with PNC Bank Canada Branch (“PNC Canada”), as lender pursuant to which the Canadian Borrowers may borrow up to CDN$10,000 under a revolving line of credit (including up to $3,000 for letters of credit) (the “Revolving Canadian Loan”). The Revolving Canadian Loan matures on July 23, 2026. The Canadian Loan Agreement is guaranteed by the Canadian Guarantor pursuant to a Guaranty and Suretyship Agreement.

67

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

The Canadian Borrowers may elect to have borrowings either in United States dollars or Canadian dollars under the Canadian Loan Agreement, which will bear interest at a base rate or a LIBOR rate, in each case, plus an applicable margin, in the case of borrowings in United States dollars, or at a Canadian Prime Rate (as announced from time to time by PNC Canada) or a Canadian deposit offered rate (“CDOR”) as determined from time to time by PNC Canada in accordance with the Canadian Loan Agreement. The applicable margin for these borrowings will range from 0.50% to 1.50% per annum, in the case of base rate borrowings and Canadian Prime Rate borrowings, and 1.50% to 2.50% per annum, in the case of LIBOR borrowings and CDOR borrowings. The Canadian Loan Agreement also requires the Canadian Borrowers to pay (i) an unused line fee on the unused portion of the loan commitments in an amount ranging between 0.175% and 0.25% per annum, based upon the level of the Company’s consolidated total net leverage ratio, and (ii) an upfront fee equal to 0.25% of the principal amount of the Note.

There were no amounts outstanding under the Revolving Canadian Loan as of December 31, 2022 and 2021.

The Canadian Loan Agreement also contains customary representations and warranties, and affirmative and negative covenants, including, among others, limitations on additional indebtedness, entry into new lines of business, entry into guarantee agreements, making of any loans or advances to, or investments in, any other person, restrictions on liens on the assets of the Canadian Borrowers and mergers, transfers of assets and acquisitions. The Canadian Loan Agreement and Note also contain customary events of default that include, among others, non-payment of principal, interest or fees, violation of covenants, inaccuracy of representations and warranties, failure to make payment on, or defaults with respect to, certain other material indebtedness, bankruptcy and insolvency events, material judgments and change of control provisions.

Upon the occurrence of an event of default, and after the expiration of any applicable grace period, payment of any outstanding loans under the Canadian Loan Agreement may be accelerated.

Short-Term Debt

In July 2021, the Company entered into a short-term loan facility for insurance premiums with Aon Premium Finance for $3,436 with a maturity date of June 27, 2022. The loan had fixed annual interest of 3.75% on the outstanding balance and required monthly payments of principal and interest of $318. As of December 31, 2021, $1,889 was outstanding.

In July 2021, the Company entered into a short-term loan facility for insurance premiums with IPFS Corporation for $410 with a maturity date of June 27, 2022. The loan had fixed annual interest of 1.98% on the outstanding balance and required monthly payments of principal and interest of $37. As of December 31, 2021, $221 was outstanding.

In November 2021, the Company entered into a short-term loan facility for insurance premiums with IPFS Corporation for $1,183 with a maturity date of October 4, 2022. The loan had fixed annual interest of 1.98% on the outstanding balance and required monthly payments of principal and interest of $108. As of December 31, 2021, $1,064 was outstanding.

In July 2022, the Company entered into a short-term loan facility for insurance premiums with AFCO Credit Corporation for $3,989 with a maturity date of June 27, 2023. The loan has fixed annual interest of 5.75% on the outstanding balance and requires monthly payments of principal and interest of $373. As of December 31, 2022, $2,211 was outstanding.

Fair Value of Debt

The fair value of our Term Loan is based upon established market prices for the securities using Level 2 inputs. The fair value of our Term Loan as of December 31, 2022 was $151,530 compared to its carrying value of $148,563. The Company classifies its long-term debt within Level 2 of the fair value hierarchy

68

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

Interest Rate Swaps

In September 2021, we entered into an interest rate swap agreement to hedge forecasted monthly interest rate payments on our floating rate debt. As of December 31, 2022, we had the following interest rate swap agreement (the “Swap Agreement”):

Effective date

    

Notional amount

    

Fixed rate

 

September 30, 2021 through July 23, 2026

    

$

100,000

    

0.875

%

Under the terms of the Swap Agreement, we receive or make payments based on the 1-month LIBOR (approximately 4.38% as of December 31, 2022).

During the year ended December 31, 2022, there were no interest rate swap agreements that expired.

We entered into the Swap Agreement to convert a portion of the interest rate exposure on our floating rate debt from variable to fixed. We designated this Swap Agreement as a cash flow hedge. A portion of the amount included in accumulated other comprehensive income (loss) is reclassified into interest expense, net as a yield adjustment as interest is either paid or received on the hedged debt. The fair value of our Swap Agreement is based upon Level 2 inputs. We have considered our own credit risk and the credit risk of the counterparties when determining the fair value of our Swap Agreement.

It is our policy to execute such instruments with creditworthy banks and not to enter into derivative financial instruments for speculative purposes. We believe our interest rate swap counterparty will be able to fulfill their obligations under our agreement, and we believe we will have debt outstanding through the expiration date of the swap such that the occurrence of future cash flow hedges remains probable.

The estimated fair value of our Swap Agreement in the consolidated balance sheets was as follows:

    

Balance sheet accounts

    

December 31, 2022

    

December 31, 2021

Other current assets

$

3,619

$

Other assets

$

5,366

$

1,607

Accrued liabilities

$

$

389

A cumulative gain, net of tax, of $6,739 and $913 is recorded in accumulated other comprehensive income (loss) as of December 31, 2022 and 2021, respectively.

The amount of gain, net of tax, recognized in other comprehensive income for the years ended December 31, 2022 and 2021 was $6,444 and $767, respectfully. There was $618, net of tax, reclassified from accumulated other comprehensive income (loss) into earnings for the year ended December 31, 2022.

As of December 31, 2022, approximately $3,646 is expected to be reclassified from accumulated other comprehensive income (loss) into interest expense over the next 12 months.

12.SHAREHOLDERS’ EQUITY

Initial Public Offering

On November 3, 2021, the Company completed its initial public offering (“IPO”) in which the Company issued and sold 6,900,000 shares, which included 900,000 shares that were offered and sold pursuant to the full exercise of the underwriters’

69

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

over-allotment option, of common stock at a public offering price of $13.00 per share. The Company’s net proceeds from the sale of shares in the IPO was $78,581 after underwriter discounts and commissions, fees and expenses of $11,119, of which $2,250 was paid to Kanders & Company, Inc., a company controlled by Warren B. Kanders, our Chief Executive Officer.

Secondary Offering

On June 9, 2022, the Company completed a secondary offering in which the Company issued and sold 2,250,000 shares of common stock at a price of $23.50 per share. The Company’s net proceeds from the sale of shares were $46,987 after underwriter discounts and commissions, fees and expenses of $2,715, of which $2,000 was paid to Kanders & Company, Inc., a company controlled by Warren B. Kanders, our Chief Executive Officer.

On July 14, 2022, the underwriters exercised a portion of their over-allotment option and purchased an additional 300,000 shares of common stock at a price of $23.50 per share, resulting in net proceeds to the Company of $6,389 after underwriter discounts and commissions, fees and expenses of $661.

Dividends

In August 2021, the Company declared and paid a $10,000, or $0.36 per share, dividend to shareholders on record as of August 11, 2021.

On November 11, 2021, the Company announced that its board of directors approved the initiation of a quarterly cash dividend policy of $0.08 per share of the Company’s common stock (the “Quarterly Cash Dividend”) or $0.32 per share on an annualized basis. The declaration and payment of future Quarterly Cash Dividends is subject to the discretion of and approval of the Company’s board of directors. Our Quarterly Cash Dividends totaled $11,509 and $2,751 for the years ended December 31, 2022 and 2021, respectively.

13.STOCK-BASED COMPENSATION

2021 Phantom Restricted Share Plan

The Company maintains a cash-based executive compensation plan for certain employees. The Company’s board of directors awarded 1,433,500  interests in the plan (“units”). Each unit represents an unfunded and unsecured right, subject to certain conditions as set forth by the plan. One-third of the units granted to any holder will vest on each of the first, second, and third anniversaries of March 18, 2021 during the term of such holder’s employment with the Company. Payment of a holder’s vested balance is dependent upon a transaction or series of related transactions constituting a qualifying exit event, as defined by the executive compensation plan. The plan will expire on March 18, 2025, at which time the plan and all awarded units will be terminated for no consideration if a qualifying exit event has not occurred before that date.

On March 9, 2022, the Company’s board of directors modified the performance condition, specifically the definition of a qualifying exit event. In addition, the board of directors approved the settlement of vested and unvested units in common stock rather than cash, which resulted in a change in classification of the outstanding units from liability to equity. As a result, modification of the units occurred on March 9, 2022 with a grant date fair value of $23.45, the closing stock price of the Company on the date of modification. There were 632,500 units that vested March 18, 2022 and 791,667 units that will vest in equal amounts on the second and third anniversaries of the plan. The Company recognized compensation expense of $22,100 on March 9, 2022, the date the performance condition became probable.

70

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

A summary of our phantom award activity for the year ended December 31, 2022 is as follows:

Weighted Average 

Grant Date

Shares

Fair Value

Outstanding at December 31, 2021

1,433,500

 

$

Granted

 

Vested

 

(632,500)

 

23.45

Forfeited

 

(9,333)

 

23.45

Outstanding at December 31, 2022

791,667

 

$

23.45

The total fair value of phantom awards vested in 2022 was $22,649.

Compensation cost related to phantom awards was $28,578 for the year ended December 31, 2022 and is recorded in selling, general, and administrative expense. As of December 31, 2022, there was $4,679 of unrecognized compensation cost related to phantom awards, which is expected to be recognized over a weighted-average period of 1.2 years.

2021 Stock Incentive Plan

In November 2021, we adopted the 2021 Stock Incentive Plan (the “2021 Plan”). The 2021 Plan provides for the grant of incentive stock options to our employees and any parent and subsidiary companies’ employees, and for the grant of non-statutory stock options, restricted stock, restricted stock units (“RSUs”), stock appreciation rights (“SARs”), performance units, and performance shares to our employees, directors, and consultants and our parent and subsidiary companies’ employees and consultants. The maximum aggregate number of shares of common stock that may be issued under the 2021 Plan is 9,650,000 shares. As of December 31, 2022, 4,418 shares of common stock were reserved and available for issuance under the 2021 Plan.

Market Condition Restricted Shares

On November 4, 2021, the Company issued and granted to certain employees a total of 2,600,000 RSUs under the 2021 Plan, of which 2,600,000 RSUs will vest if, on or before November 8, 2031, the Fair Market Value (as defined in the Plan) of the Company’s common stock shall have equaled or exceeded $40.00 per share for twenty consecutive trading days. For computing the fair value of the 2,600,000 RSUs with a market condition, the fair value of the RSU grant has been estimated as of the date of grant using the Monte-Carlo pricing model with the assumptions below.

2021

Number issued

2,600,000

Vesting period

$40.00 stock price target

Grant price (per share)

$4.65

Dividend yield

0.0%

Expected volatility

32.08%

Risk-free interest rate

1.59%

Expected term (years)

5.67

Weighted average fair value (per share)

$4.65

71

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

A summary of our market condition RSU activity for the year ended December 31, 2022 is as follows:

Weighted Average 

Grant Date

Shares

Fair Value

Outstanding at December 31, 2021

2,600,000

 

$

4.65

Granted

 

Vested

 

 

Forfeited

 

 

Outstanding at December 31, 2022

2,600,000

 

$

4.65

Compensation cost related to market condition RSUs was $2,132 for the year ended December 31, 2022 and is recorded in selling, general, and administrative expense. As of December 31, 2022, there was $9,602 of unrecognized compensation cost related to market condition RSUs, which is expected to be recognized over a weighted-average period of 4.5 years.

Stock Options

During the year ended December 31, 2022, the Company issued stock options for an aggregate of 373,479 shares under the 2021 Plan to directors and employees of the Company. The options issued during the year ended December 31, 2022 generally vest and become exercisable over a period of one to three years and expire ten years from the date of the grant.

For computing the fair value of the stock-based awards, the fair value of each option grant has been estimated as of the date of grant using the Black-Scholes option-pricing model with the following assumptions:

2022

Number issued

373,479

Vesting period

1 - 3 years

Grant price (per share)

$23.45 - $23.70

Dividend yield

1.35% - 1.36%

Expected volatility

33.22%

Risk-free interest rate

1.12%

Expected term (years)

4.61 - 6.00

Weighted average fair value (per share)

$6.69

A summary of our stock option activity for the year ended December 31, 2022 is as follows:

Weighted 

Aggregate

Weighted Average 

Average 

Intrinsic

Remaining Contractual

Options

Exercise Price

Value

Life (in years)

Outstanding at December 31, 2021

 

$

 

$

Granted

 

373,479

23.46

 

10.0

Exercised

 

 

 

 

Forfeited

 

(5,868)

 

23.45

 

 

9.6

Outstanding at December 31, 2022

367,611

 

$

23.46

 

$

9.2

Fully vested options outstanding at December 31, 2022

64,000

 

$

23.51

 

$

9.2

72

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

There were no options exercisable as of December 31, 2022 as the exercise price of all outstanding options was greater than the closing stock price.

Compensation cost related to stock options was $974 for the year ended December 31, 2022 and is recorded in selling, general, and administrative expense. As of December 31, 2022, there was $1,486 of unrecognized compensation cost related to stock options, which is expected to be recognized over a weighted-average period of 2.2 years.

Restricted Stock Units

During the year ended December 31, 2022, the Company granted 85,108 RSUs under the 2021 Plan to employees of the Company. The RSUs will vest in three equal installments over a three-year period from the date of grant and have a grant date fair value of the closing stock price of the Company on the date of grant.

A summary of our RSU activity for the year ended December 31, 2022 is as follows:

Weighted Average 

Grant Date

Shares

Fair Value

Outstanding at December 31, 2021

 

$

Granted

 

85,108

23.45

Vested

 

 

Forfeited

 

(1,614)

 

23.45

Outstanding at December 31, 2022

83,494

 

$

23.45

Compensation cost related to RSUs was $531 for the year ended December 31, 2022 and is recorded in selling, general, and administrative expense. As of December 31, 2022, there was $1,427 of unrecognized compensation cost related to RSUs, which is expected to be recognized over a weighted-average period of 2.2 years.

14.COMPENSATION AND DEFINED CONTRIBUTION PLANS

The Company and its wholly owned subsidiaries sponsor Internal Revenue Code Section 401(k) defined contribution plans for the benefit of all full-time and part-time employees. Employees are entitled to make tax- deferred contributions up to the maximum allowed by law of their eligible compensation.

The Company sponsors various other non-U.S. Defined Contribution and Defined Profit-Sharing Plans that are offered by the Company’s foreign subsidiaries. Many of these plans were assumed through the Company’s acquisitions or are required by local regulatory requirements. The Company may deposit funds for these plans with insurance companies, or into government-managed accounts consistent with local regulatory requirements, as applicable.

Contribution to the plans are made by both the employee and the Company. The Company’s contributions to the plans was $3,198 and $1,780 for the years ended December 31, 2022 and 2021, respectively.

Long-Term Incentive Plan

In March 2021, the Company initiated a cash-based long-term incentive plan. Each award granted under the plan shall be eligible to vest in three equal annual installments over a period of three consecutive one-year performance periods, with each installment of the award vesting on the last day of the applicable performance period, subject to the achievement of the performance metrics established by the board of directors for the applicable annual performance period.

73

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

On March 9, 2022, the Company’s board of directors approved the common stock settlement of vested awards of the long-term incentive plan. The board of directors also approved the option to settle unvested awards in common stock. Modification accounting was not applied as this change did not affect the fair value of the awards, vesting conditions, or the liability classification of the awards.

Total compensation expense related to this plan was $1,369 and $2,162 for the years ended December 31, 2022 and 2021, respectively, and is included in selling, general and administrative in the Company’s consolidated statements of operations and comprehensive income.

15.COMMITMENTS AND CONTINGENCIES

Legal Proceedings

In March 2020, the Company settled an administrative enforcement action filed by the U.S. Federal Trade Commission (“FTC”) relating to Company’s sale of VieVu, LLC to Axon Enterprise Inc. (“Axon”) wherein the FTC alleged that the operative agreements contained non-compete and non-solicitation provisions in violation of Section 5 of the Federal Trade Commission Act, as amended, 15 U.S.C. § 45, and Section 7 of the Clayton Act, as amended, 15 U.S.C. § 18. The FTC’s administrative complaint sought only injunctive relief against the Company to enjoin the enforcement of these provisions, now and in the future, and did not seek monetary damages against the Company. In January 2020, the Company and Axon had rescinded these provisions. Pursuant to a consent agreement and proposed consent order entered into by the FTC and the Company, on June 11, 2020, the FTC issued a Decision and Order accepting the Consent Agreement (the “Order”). Under the Order, the Company agreed to not modify and reinstate the rescinded provisions and to not enter into any new similar provisions with Axon, absent prior approval from the FTC. In addition, as part of the Company’s compliance program, the Order imposes an obligation to distribute to, and train the directors and officers on, the requirements of the consent order and to report annually for five years to the FTC ensuring compliance with the consent order. On July 10, 2020, the Company filed its Interim Verified Compliance Report and, thereafter, on June 11, 2021 and June 10, 2022, filed its Annual Compliance Reports, each as required by the Order.

In September 2021, Safariland, LLC, a wholly-owned subsidiary of the Company, received a jury verdict awarding $7,500 to a plaintiff relating to a personal injury case wherein the plaintiff alleged various product liability claims against Safariland, LLC. The plaintiff in the proceeding, Mr. David Hakim, instituted the proceeding on July 24, 2015, through the filing of a complaint with the United States District Court, Northern District of Illinois, Eastern Division. In the proceeding, the plaintiff, a SWAT officer with the DuPage County Sheriff’s Office (“DCSO”), alleged that he suffered injuries during a training exercise conducted by DCSO in which a Defense Technology Shotgun Breaching TKO round was deployed and passed through a door and lower-floor ceiling causing a fragment to strike plaintiff’s back resulting in injury. Prior to the jury rendering its verdict, the court deferred ruling on Safariland, LLC’s Motion for Judgment as a Matter of Law (“JMOL”). On November 8, 2021, Safariland, LLC filed its post-trial motions, including a supplemental JMOL, motion for new trial and remittitur. On April 18, 2022, the court denied Safariland, LLC’s JMOL, motion for new trial and remittitur and, accordingly, entered a judgment in favor of plaintiff, David Hakim, as to the Third Claim. In response, Safariland, LLC timely filed its notice of appeal with the United States Court of Appeals for the Seventh Circuit.  Safariland and Plaintiff have filed their appeal briefs, and oral arguments were held on October 25, 2022. While any litigation contains an element of uncertainty, the Company believes it is reasonably possible, not probable, that the Company could incur losses related to this case, however, any losses would be indemnified by our insurance carrier under applicable policies.

The Company is also involved in various legal disputes and other legal proceedings and claims that arise from time to time in the ordinary course of business. The Company vigorously defends itself against all lawsuits and evaluates the amount of reasonably possible losses that the Company could incur as a result of these matters. While any litigation contains an element of uncertainty, the Company believes that the reasonably possible losses that the Company could incur in excess of insurance coverage would not have a material adverse effect on the Company’s consolidated financial position, results of operations, or liquidity.

74

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

Insurance

The Company has various insurance policies, including product liability insurance, covering risks and in amounts it considers adequate. There can be no assurance that the insurance coverage maintained by the Company is sufficient or will be available in adequate amounts or at a reasonable cost.

International

As an international company, we are, from time to time, the subject of investigations relation to the Company’s international operations, including under U.S. export control laws (such as ITAR), the FCPA and other similar U.S. and international laws.

16. INCOME TAXES

Consolidated income from continuing operations before provision for income taxes consisted of the following:

Year ended December 31, 

2022

    

2021

U.S. operations

$

6,455

$

18,243

Foreign operations

2,918

949

Income before provision for income taxes

$

9,373

$

19,192

The provision for income taxes is detailed below:

Year ended December 31, 

2022

    

2021

Current tax provision:

Federal

$

2,711

$

State

 

624

 

907

Foreign

 

1,305

 

852

Total current provision

 

4,640

 

1,759

Deferred tax (benefit) provision:

Federal

 

(24)

 

4,704

State

 

(5)

 

897

Foreign

 

(1,058)

 

(829)

Total deferred (benefit) provision

 

(1,087)

 

4,772

Total provision for income taxes

$

3,553

$

6,531

75

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

The following is a reconciliation of the statutory federal income tax rate to the effective rate reported in the Company’s consolidated financial statements:

    

Year ended December 31, 

2022

    

2021

 

Federal statutory rate

21.0

%

21.0

%

Increase (decrease) in income taxes resulting from:

State income taxes, net of federal income taxes

 

5.6

 

8.4

Change in valuation allowance

 

 

0.8

Current year tax credits

 

(6.5)

 

(4.7)

Difference between foreign and federal tax rate

 

5.4

 

2.8

Permanent items

 

12.2

 

5.2

Reserve for uncertain tax positions

 

0.5

 

Other

 

(0.3)

 

0.5

Effective tax rate

 

37.9

%

34.0

%

Deferred taxes have not been recognized for the excess financial reporting basis over the tax basis of investments of foreign subsidiaries. It is the Company’s intent to permanently reinvest the earnings of those foreign subsidiaries in those jurisdictions. It is not practical to determine the amount of any unrecognized deferred tax liability on this item.

Deferred income tax assets and liabilities are determined based on the difference between the financial reporting carrying amounts and tax bases of existing assets and liabilities and operating loss and tax credit carryforwards. The tax effects of temporary differences giving rise to significant components of the Company’s deferred income tax assets and liabilities are as follows:

    

December 31, 

2022

    

2021

Deferred tax assets:

Net operating loss and other carry forwards

$

7,335

$

12,477

Accrued liabilities

 

3,351

 

3,831

Reserves and other

 

3,039

 

2,265

263A uniform capitalization costs

 

201

 

657

Other deferred tax assets

 

5,232

 

1,911

Total deferred tax assets

 

19,158

 

21,141

Valuation allowance

 

(1,888)

 

(1,890)

Net deferred tax assets

 

17,270

 

19,251

Deferred tax liabilities:

Intangibles

 

(5,789)

 

(2,624)

Depreciation

 

(4,447)

 

(3,403)

Goodwill

 

(7,560)

 

(6,594)

Other

 

(727)

 

(868)

Total deferred tax liabilities

 

(18,523)

 

(13,489)

Total deferred income taxes

$

(1,253)

$

5,762

In assessing the realizability of deferred income tax assets, the Company performs an evaluation of whether it is more likely than not that some portion, or all, of its deferred income tax assets will not be realized. During the course of this evaluation, the Company considers all available positive and negative evidence and if, based upon the weight of available evidence, it is more likely than not the deferred tax assets will not be realized, a valuation allowance is recorded. Based on its current evaluation, the Company determined it was appropriate to decrease its valuation allowance by $2 for the year ended December 31, 2022.

76

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

As of December 31, 2022, the Company had net operating loss carryforwards that expire in varying amounts beginning in 2023 through 2038 and tax credit carryforwards that expire in varying amounts beginning in 2023 through 2037.

The total amount of unrecognized benefits on uncertain tax positions that, if recognized, would affect the Company’s effective tax rate was $1,986. A reconciliation of the change in the unrecognized income tax benefit for the years ended December 31, 2022 and 2021 is as follows:

    

Year ended December 31, 

2022

    

2021

Beginning unrecognized tax benefits

$

2,090

$

2,122

Current period unrecognized tax benefits

 

39

 

(32)

Foreign currency fluctuations

(143)

Ending unrecognized tax benefits

$

1,986

$

2,090

The Company recognizes interest expense and penalties related to unrecognized tax benefits as income tax expense. No amounts representing penalties and interest were recorded as income tax expense during the years ended December 31, 2022 and 2021. The Company had no interest or penalties accrued in the consolidated balance sheets as of December 31, 2022 and 2021.

The Company and its subsidiaries file income tax returns in the U.S. federal, various state and local, and certain foreign jurisdictions. As of December 31, 2022, the Company’s tax years subsequent to 2016 are subject to examination by tax authorities with few exceptions. One of the Company’s Canadian subsidiaries underwent an examination of its tax filings for the period June 1, 2016 through December 31, 2017. In January 2022, the Company received notification that the Canadian tax authority has completed its examination and proposed no changes to the tax filings.

17.LEASES

The Company leases certain manufacturing and office space, retail locations, and equipment. Operating lease assets and liabilities are recognized at the commencement date based on the present value of lease payments over the lease term. The Company has elected not to recognize a lease liability or right-of-use (“ROU”) asset for short-term leases (leases with a term of twelve months or less). The Company uses its incremental borrowing rate based on the information available at the commencement date in determining the present value of lease payments. The Company’s incremental borrowing rate is the rate for collateralized borrowings based on the current economic environment, credit history, credit rating, value of leases, currency in which the lease obligation is satisfied, rate sensitivity, lease term and materiality. Our operating leases have remaining contractual terms of up to five years, some of which include options to extend the leases for up to five years.

The amount of assets and liabilities related to our operating leases were as follows:

Balance sheet accounts

    

December 31, 2022

Assets:

Operating lease assets

Operating lease assets

$

8,489

Liabilities:

Current:

Operating lease liabilities

Accrued liabilities

$

3,773

Long-term:

Operating lease liabilities

Long-term operating lease liabilities

4,965

Total lease liabilities

$

8,738

77

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

The components of lease expense are recorded to cost of sales and selling, general and administration expenses in the consolidated statements of comprehensive income. The components of lease expense were as follows:

    

December 31, 2022

Fixed operating lease costs(1)

 

$

4,047

Variable operating lease costs

1,329

Total

$

5,376

(1) Includes short-term leases, which are immaterial.

The weighted average remaining lease term and weighted average discount rate is as follows:

    

December 31, 2022

Weighted average remaining lease term (years):

 

Operating leases

2.62

Weighted average discount rate:

Operating leases

2.96%

The approximate future minimum lease payments under operating leases as of December 31, 2022 are as follows:

2023

$

4,012

2024

 

2,958

2025

 

1,560

2026

 

513

2027

 

75

Thereafter

 

Total future lease payments

9,118

Less: Amount representing interest

(380)

Present value of lease liabilities

$

8,738

Future minimum lease payments required under non-cancelable operating leases as of December 31, 2021 are as follows:

2022

$

4,293

2023

 

3,853

2024

 

2,725

2025

 

1,391

2026

 

406

Thereafter

 

35

Total minimum lease payments

$

12,703

78

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

Supplemental cash flow information related to leases is as follows:

    

December 31, 2022

Cash paid for amounts included in the measurement of lease liabilities:

 

Operating cash flows - operating leases

$

4,047

Right-of-use assets obtained in exchange for lease liabilities:

Operating leases

$

18.RELATED PARTY TRANSACTIONS

The Company leases several distribution warehouses and retail stores from related parties. During the years ended December 31, 2022 and 2021 the Company made payments and recorded rent expense related to these leases of $478 and $579 respectively which are included in related party expense in the Company’s consolidated statements of operations and comprehensive income.

For the year ended December 31, 2022, the Company made the following payments to Kanders & Company, Inc., a company controlled by Warren B. Kanders, our Chairman of the Board:

$1,000 for services related to the acquisition of Cyalume, which is included in related party expense in the Company’s consolidated statements of operations and comprehensive income.
$2,000 for services related to the Company’s secondary offering, which is included in direct offering costs and recorded against offering proceeds in additional paid in capital in the Company’s consolidated balance sheets.

For the year ended December 31, 2021, the Company made the following payments to Kanders & Company, Inc.:

$2,250 for services related to the Company’s initial public offering, which is included in direct offering costs and recorded against offering proceeds in additional paid in capital in the Company’s consolidated balance sheets.
$1,000 for services related to the execution of the New Credit Agreement, which is included in debt issuance costs and recorded as an offset to long-term debt in the Company’s consolidated balance sheets.

19.RESTRUCTURING

During the year ended December 31, 2021, the Company initiated and completed a plan to consolidate operations in the U.K. and incurred and paid $395 of restructuring changes.

Restructuring expenses are included within restructuring and transactions costs in the Company’s consolidated statements of operations and comprehensive income.

20.SEGMENT DATA

Our operations are comprised of two reportable segments: Product and Distribution. Segment information is consistent with how the chief operating decision maker (“CODM”), our chief executive officer, reviews the business, makes investing and resource

79

Table of Contents

CADRE HOLDINGS, INC.

Notes to Consolidated Financial Statements

(In thousands, except for share amounts)

allocation decisions and assesses operating performance. Senior management evaluates segment performance based on segment profit. Each segment’s profit is measured as gross profit. The CODM is not provided asset information or operating expenses by segment.

    

Year ended December 31, 2022

Reconciling

    

    Product    

    

Distribution

    

 Items(1)

    

      Total      

Net sales

    

$

385,423

    

$

97,106

$

(24,692)

    

$

457,837

Cost of goods sold

230,245

76,633

(24,719)

282,159

Gross profit

$

155,178

$

20,473

$

27

$

175,678

    

Year ended December 31, 2021

Reconciling

    

    Product    

    

Distribution

    

 Items(1)

    

      Total      

Net sales

    

$

362,189

    

$

90,043

    

$

(24,944)

    

$

427,288

Cost of goods sold

213,881

67,649

(24,932)

256,598

Gross profit

$

148,308

$

22,394

$

(12)

$

170,690

(1)Reconciling items consist primarily of intercompany eliminations and items not directly attributable to operating segments.

80

Item 9. Changes in and Disagreements with Accountants on Accounting and Financial Disclosure

None.

Item 9A. Controls and Procedures

Evaluation of Disclosure Controls and Procedures

The Company’s management carried out an evaluation, under the supervision and with the participation of the Company’s Chief Executive Officer and Chief Financial Officer, its principal executive officer and principal financial officer, respectively, of the effectiveness of the design and operation of the Company’s disclosure controls and procedures (as such term is defined in Rules 13a-15(c) and 15d-15(e) under the Securities Exchange Act of 1934, as amended (“Exchange Act”)) as of December 31, 2022, pursuant to Exchange Act Rule 13a-15. Such disclosure controls and procedures are designed to ensure that information required to be disclosed by the Company in reports we file or submit under the Exchange Act is (i) recorded, processed, summarized, evaluated and reported, as applicable, within the time periods specified in the SEC’s rules and forms, and (ii) accumulated and communicated to the appropriate management on a basis that permits timely decisions regarding disclosure. Based upon that evaluation, the Company’s Chief Executive Officer and Chief Financial Officer concluded that the Company’s disclosure controls and procedures as of December 31, 2022 were effective.

Management’s Report on Internal Control Over Financial Reporting

Management of the Company is responsible for establishing and maintaining adequate internal control over financial reporting as defined in Rules 13a-15(f) and 15d-15(f) under the Exchange Act. The Company’s internal control over financial reporting is designed to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with accounting principles generally accepted in the United States of America (“US GAAP”). The Company’s internal control over financial reporting includes those policies and procedures that:

pertain to the maintenance of records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of the assets of the Company;
provide reasonable assurance that transactions are recorded as necessary to permit preparation of financial statements in accordance with US GAAP, and that receipts and expenditures of the Company are being made only in accordance with authorizations of management and directors of the Company; and
provide reasonable assurance regarding prevention or timely detection of unauthorized acquisition, use or disposition of the Company’s assets that could have a material effect on the financial statements.

Because of its inherent limitations, internal control over financial reporting may not prevent or detect misstatements. Also, projections of any evaluation of effectiveness to future periods are subject to the risk that controls may become inadequate because of changes in conditions, or that the degree of compliance with the policies or procedures may deteriorate.

As required by Section 404 of the Sarbanes-Oxley Act of 2002, management assessed the effectiveness of the Company’s internal control over financial reporting as of December 31, 2022. In making this assessment, management used the criteria set forth by the Committee of Sponsoring Organizations of the Treadway Commission (“COSO”) in Internal Control-Integrated Framework (2013).

On May 4, 2022, the Company completed the acquisition of Cyalume. Management excluded Cyalume from its assessment of the effectiveness of the Company’s internal control over financial reporting as of December 31, 2022. Cyalume’s financial statements constitute 11% of total assets (excluding goodwill and intangible assets, which are included within the assessment) and 4% of total sales of the consolidated financial statement amounts as of and for the year ended December 31, 2022.

Based on our assessment and those criteria, management concluded that the Company maintained effective internal control over financial reporting as of December 31, 2022.

81

Changes in Internal Control over Financial Reporting

The Company acquired Cyalume on May 4, 2022 and is currently in the process of integrating the internal controls over financial reporting at Cyalume. Except for the continued integration of Cyalume, there has been no change in our internal control over financial reporting during the quarter ended December 31, 2022 that has materially affected, or is reasonably likely to materially affect, our internal control over financial reporting.

Limitations on Effectiveness of Controls and Procedures

Our management, including our principal executive officer and principal financial officer, does not expect that our disclosure controls can prevent all errors and all fraud. A control system, no matter how well conceived and operated, can provide only reasonable, not absolute, assurance that the objectives of the control system are met. There are inherent limitations in all control systems, including the realities that judgments in decision-making can be faulty and that breakdowns can occur because of simple error or mistake. Additionally, controls can be circumvented by the individual acts of one or more persons. The design of any system of controls also is based in part upon certain assumptions about the likelihood of future events and there can be no assurance that any design will succeed in achieving its stated goals under all potential conditions. Because of the inherent limitations in any control system, misstatements due to error or fraud may occur and not be detected.

Item 9B. Other Information

None.

PART III

Item 10. Directors, Executive Officers, and Corporate Governance

The Company has adopted a Code of Business Conduct and ethics that applies to all of its directors and employees, including the chief executive officer, chief financial officers, and all senior financial officers of the Company and its subsidiaries, including the principal financial officer, principal accounting officer, controller and internal audit staff of the Company and its subsidiaries. In addition, such officers are also subject to the Code of Ethics for Senior Executive Officer and Senior Financial Officers. These documents may be accessed at www.cadre-holdings.com, our Internet website, at the tab “Governance” under the section called “Governance Documents.” The Company intends to disclose future amendments to, or waivers from, certain provisions of its codes of conduct, if any, on the above website within five business days following the date of such amendment or waiver.

Other information required by this Item 10 of Form 10-K will be included in our Proxy Statement for the 2023 Annual Meeting of Stockholders to be filed with the SEC within 120 days of the fiscal year ended December 31, 2022 (the “2023 Proxy Statement”), and is incorporated herein by reference.

Item 11. Executive Compensation

The information required by this Item 11 of Form 10-K will be included in our 2023 Proxy Statement and is incorporated herein by reference.

Item 12. Security Ownership of Certain Beneficial Owners and Management and Related Stockholder Matters

The information required by this Item 12 of Form 10-K will be included in our 2023 Proxy Statement and is incorporated herein by reference.

82

Item 13. Certain Relationships and Related Transactions, and Director Independence

The information required by this Item 13 of Form 10-K will be included in our 2023 Proxy Statement and is incorporated herein by reference.

Item 14. Principal Accountant’s Fees and Services

The information required by this Item 14 of Form 10-K will be included in our 2023 Proxy Statement and is incorporated herein by reference

Part IV

Item 15. Exhibits and Financial Statement Schedules

Financial Statements, Financial Statement Schedules and Exhibits

(a)(1) The Financial Statements. The Financial Statements of the Company are included in Item 8 above.

(a)(2) Financial Statement Schedules. No schedules are included because the required information is inapplicable, not required or are presented in the financial statements or the related notes thereto.

(a)(3) The following Exhibits are hereby filed as part of this Annual Report on Form 10-K:

83

EXHIBIT INDEX

Exhibit
Number

    

Description

2.1

Stock Purchase Agreement dated May 3, 2022, by and between Safariland, LLC and Cyalume Technologies Holdings, Inc. (incorporated by reference to Exhibit 2.1 to the Company’s Current Report on Form 8-K filed on May 6, 2022).

3.1

Amended and Restated and Certificate of Incorporation of the Company (incorporated by reference to Exhibit 3.1 to the Company’s Registration Statement on Form S-1 filed on July 12, 2021).

3.2

Amended and Restated Bylaws of the Company (incorporated by reference to Exhibit 3.2 to the Company’s Registration Statement on Form S-1 filed on July 12, 2021).

4.1

See Exhibits 3.1 and 3.2 for provisions of the Amended and Restated Certificate of Incorporation and Amended and Restated Bylaws of the Company defining rights of the holders of Common Stock of the Company.

10.01

Safariland Group Long-Term Incentive Plan (incorporated by reference to Exhibit 10.11 to the Company’s Registration Statement on Form S-1 filed on July 12, 2021). +

10.02

Form of Award Agreement under the Safariland Group Long-Term Incentive Plan (incorporated by reference to Exhibit 10.12 to the Company’s Registration Statement on Form S-1 filed on July 12, 2021). +

10.03

Safariland Group 2021 Amended and Restated Phantom Restricted Share Plan (incorporated by reference to Exhibit 10.23 to Amendment No. 2 to the Company’s Registration Statement on Form S-1 filed on August 3, 2021). +

10.04

Form of Award Agreement under the Safariland Group 2021 Amended and Restated Phantom Restricted Share Plan (incorporated by reference to Exhibit 10.14 to the Company’s Registration Statement on Form S-1 filed on July 12, 2021). +

10.05

2021 Stock Incentive Plan (incorporated by reference to Exhibit 10.15 to the Company’s Registration Statement on Form S-1 filed on July 12, 2021). +

10.06

Form of Option Agreement under the 2021 Stock Incentive Plan (incorporated by reference to Exhibit 10.16 to the Company’s Registration Statement on Form S-1 filed on July 12, 2021). +

10.07

Form of Stock Award Agreement under the 2021 Stock Incentive Plan (incorporated by reference to Exhibit 10.17 to the Company’s Registration Statement on Form S-1 filed on July 12, 2021). +

10.08

Form of Indemnification Agreement (incorporated by reference to Exhibit 10.18 to the Company’s Registration Statement on Form S-1 filed on July 12, 2021).

10.09

Employment Agreement between Cadre Holdings, Inc. and Warren B. Kanders, dated as of July 9, 2021 (incorporated by reference to Exhibit 10.19 to the Company’s Registration Statement on Form S-1 filed on July 12, 2021). +

10.10

First Amendment to Employment Agreement between Cadre Holdings, Inc. and Warren B. Kanders, dated September 1, 2021 (incorporated by reference to Exhibit 10.25 to Amendment No. 3 to the Company’s Registration Statement on Form S-1 filed on September 13, 2021). +

10.11

Employment Agreement between Cadre Holdings, Inc. and Brad Williams, dated as of July 9, 2021 (incorporated by reference to Exhibit 10.20 to the Company’s Registration Statement on Form S-1 filed on July 12, 2021). +

10.12

First Amendment to Employment Agreement between Cadre Holdings, Inc. and Brad Williams, dated September 1, 2021 (incorporated by reference to Exhibit 10.26 to Amendment No. 3 to the Company’s Registration Statement on Form S-1 filed on September 13, 2021). +

10.13

Employment Agreement between Cadre Holdings, Inc. and Blaine Browers, dated as of July 9, 2021 (incorporated by reference to Exhibit 10.21 to the Company’s Registration Statement on Form S-1 filed on July 12, 2021). +

10.14

First Amendment to Employment Agreement between Cadre Holdings, Inc. and Blaine Browers, dated September 1, 2021 (incorporated by reference to Exhibit 10.27 to Amendment No. 3 to the Company’s Registration Statement on Form S-1 filed on September 13, 2021). +

84

10.15

Credit Agreement, dated July 23, 2021, by and among Cadre Holdings, Inc., certain of its domestic subsidiaries, as guarantors, PNC Bank, National Association, as administrative agent, and the several lenders from time to time party thereto (incorporated by reference to Exhibit 10.22 to Amendment No. 1 to the Company’s Registration Statement on Form S-1 filed on July 27, 2021).

10.16

First Amendment to Credit Agreement, dated August 20, 2021, by and among Cadre Holdings, Inc., certain of its domestic subsidiaries, as guarantors, PNC Bank, National Association, as administrative agent, and the several lenders from time to time party thereto (incorporated by reference to Exhibit 10.24 to Amendment No. 3 to the Company’s Registration Statement on Form S-1 filed on September 13, 2021).

10.17*

Second Amendment to Credit Agreement, dated December 14, 2022, by and among Cadre Holdings, Inc., certain of its domestic subsidiaries, as guarantors, PNC Bank, National Association, as administrative agent, and the several lenders from time to time party thereto.*

10.18

Loan Agreement, dated as of October 14, 2021, by and among Med-Eng Holdings ULC and Pacific Safety Products Inc., as borrowers, and PNC Bank Canada Branch, as lender (incorporated by reference to Exhibit 10.28 to Amendment No. 4 to the Company’s Registration Statement on Form S-1 filed on October 28, 2021).

21.1*

Subsidiaries of the Company.

23.1*

Consent of Independent Registered Public Accounting Firm.

31.1*

Certification of Principal Executive Officer pursuant to Rules 13a-14(a) and 15d-14(a), as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.

31.2*

Certification of Principal Financial Officer pursuant to Rule 13a-14(a) and 15d-14(a), as adopted pursuant to Section 302 of the Sarbanes-Oxley Act of 2002.

32.1**

Certification of Principal Executive Officer pursuant to 18 U.S.C. Section 1350 as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.

32.2**

Certification of Principal Financial Officer pursuant to 18 U.S.C. Section 1350 as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002.

101.INS*

XBRL Instance Document

101.SCH*

XBRL Taxonomy Extension Schema Document

101.CAL*

XBRL Taxonomy Extension Calculation Linkbase Document.

101.LAB*

XBRL Taxonomy Extension Label Linkbase Document.

101.PRE*

XBRL Taxonomy Extension Presentation Linkbase Document.

104

Cover Page Interactive Data File (embedded within the Inline XBRL document)

* Filed herewith

** Furnished herewith

+ Indicates management contract or compensatory plan

85

SIGNATURES

Pursuant to the requirements of Section 13 or 15(d) of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized, on March 15, 2023.

CADRE HOLDINGS, INC.

By:

/s/ Blaine Browers

Blaine Browers

Chief Financial Officer

(Principal Financial Officer and

Principal Accounting Officer)

Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed below on March 15, 2023 by the following persons on behalf of the registrant and in the capacities indicated:

Signature

Title

/s/ Warren B. Kanders

Chief Executive Officer

Warren B. Kanders

(Principal Executive Officer)

/s/ Blaine Browers

Chief Financial Officer

Blaine Browers

(Principal Financial Officer and Principal Accounting Officer)

/s/ Hamish Norton

Director

Hamish Norton

/s/ Nicholas Sokolow

Director

Nicholas Sokolow

/s/ William Quigley

Director

William Quigley

/s/ Deborah A. DeCotis

Director

Deborah A. DeCotis

86

EX-10.17 2 cdre-20221231xex10d17.htm EX-10.17

Exhibit 10.17

EXECUTION VERSION

SECOND AMENDMENT TO CREDIT AGREEMENT

This SECOND AMENDMENT TO CREDIT AGREEMENT, dated as of December 14, 2022 (this “Agreement”), is entered into by and among SAFARILAND, LLC, a Delaware limited liability company (the “Borrower”), the Guarantors party hereto, the Lenders party hereto, and PNC BANK, NATIONAL ASSOCIATION in its capacities as Administrative Agent, Swingline Loan Lender and Issuing Lender.

RECITALS

A.The Borrower, the Guarantors party thereto, the Lenders party thereto, and the Administrative Agent have entered into that certain Credit Agreement, dated as of July 23, 2021 (as amended, restated, amended and restated, modified, supplemented, increased and extended from time to time, the “Existing Credit Agreement”).

B.The Borrower has requested certain amendments to the Existing Credit Agreement to (i) permit the issuance of a certain standby letter of credit and cash collateral securing the Borrower’s obligations with respect thereto and (ii) add an additional issuing lender.

C.The Required Lenders have agreed to provide the requested amendments to the Existing Credit Agreement, subject to the terms and conditions hereof.

AGREEMENT

NOW, THEREFORE, in consideration of the agreements contained herein and other good and valuable consideration, the receipt and sufficiency of which are hereby acknowledged, the parties hereto agree as follows:

1.Defined Terms. Capitalized terms used herein and not otherwise defined herein (including in the introductory paragraph and recitals) shall have the meanings given to such terms in the Credit Agreement attached hereto as Exhibit A (the “Amended Credit Agreement”).

2.Amendments to Existing Credit Agreement.

(a)The Existing Credit Agreement (other than the schedules, exhibits or appendices thereto) is hereby amended in its entirety to read in the form attached hereto as Exhibit A.

3.Conditions Precedent. This Agreement shall be effective upon satisfaction of the following conditions precedent:

(a)Agreement.  Receipt by the Administrative Agent of a counterpart of this Agreement signed by the Administrative Agent, the Required Lenders, the Borrower and the Guarantors.

(b)Administrative Agent Fees and Expenses.  Receipt by the Administrative Agent of all fees and other amounts due and payable on or prior to the date hereof,


including, without limitation, reimbursement or payment of all out-of-pocket expenses (including reasonable fees, charges and disbursements of counsel to the Administrative Agent) required to be reimbursed or paid by the Borrower pursuant to Section 4 of this Agreement.

4.Expenses. The Borrower agrees to pay all out-of-pocket expenses (including reasonable fees, charges and disbursements of counsel to the Administrative Agent) with respect to the preparation, execution and delivery of this Agreement to the extent such are required to be reimbursed or paid by the Borrower pursuant to Section 12.3 of the Existing Credit Agreement.

5.Miscellaneous.

(a)This Agreement shall be deemed to be, and is, a Loan Document.

(b) Effective as of the date hereof, all references to the Credit Agreement in each of the Loan Documents shall hereafter mean the Amended Credit Agreement.

(c)Except as expressly modified by this Agreement, the Existing Credit Agreement, the Loan Documents and the obligations of each Loan Party thereunder and under the other Loan Documents are hereby ratified and confirmed and shall continue and remain in full force and effect according to their terms.

(d)Each of the Loan Parties (i) acknowledges and consents to all of the terms and conditions of this Agreement, (ii) agrees that this Agreement and all documents executed in connection herewith do not operate to reduce or discharge its obligations under the Existing Credit Agreement or the other Loan Documents or any certificates, documents, agreements and instruments executed in connection therewith, (iii) affirms all of its obligations under the Loan Documents, (iv) agrees that this Agreement shall in no manner impair or otherwise adversely affect any of the Liens granted in or pursuant to the Loan Documents and (v) affirms that each of the Liens granted in or pursuant to the Loan Documents are valid and subsisting.

(e)Each of the Loan Parties hereby represents and warrants to the Administrative Agent and the Lenders as follows:

(i)the execution, delivery and performance by such Loan Party of this Agreement are within such Loan Party’s organizational powers and have been duly authorized by all necessary organizational, and if required, shareholder, partner or member, action, as applicable;

(ii)this Agreement has been duly executed and delivered by such Loan Party and constitutes a legal, valid and binding obligation of such Loan Party, enforceable against such Loan Party in accordance with its terms, except as may be limited by applicable bankruptcy, insolvency, reorganization, moratorium, or similar laws affecting the enforcement of creditors’ rights generally and by general principles of equity;

(iii)the execution, delivery and performance by such Loan Party of this Agreement do not require any consent or approval of, registration or filing with, notice to,

2


or any action by, any Governmental Authority, except those as have been obtained or made and are in full force and effect;

(iv)after giving effect to this Agreement, all representations and warranties of each Loan Party set forth in the Loan Documents are true and correct in all material respects (other than those representations and warranties that are expressly qualified by a Material Adverse Effect or other materiality, in which case such representations and warranties shall be true and correct in all respects) except to the extent that such representations and warranties specifically refer to an earlier date, in which case they are true and correct in all material respects (other than those representations and warranties that are expressly qualified by a Material Adverse Effect or other materiality, in which case such representations and warranties are true and correct in all respects) as of such earlier date; and

(v)after giving effect to this Agreement, no Default or Event of Default exists.

(f)This Agreement may be executed by one or more of the parties to this Agreement on any number of separate counterparts (including by electronic mail), and all of said counterparts taken together shall be deemed to constitute one and the same instrument.  Delivery of an executed counterpart of a signature page of this Agreement by electronic transmission or by any other electronic imaging means (including .pdf), shall be effective as delivery of a manually executed counterpart of this Agreement.

(g)THIS AGREEMENT AND ANY CLAIMS, CONTROVERSY, DISPUTE OR CAUSE OF ACTION (WHETHER IN CONTRACT OR TORT OR OTHERWISE) BASED UPON, ARISING OUT OF OR RELATING TO THIS AGREEMENT AND THE TRANSACTIONS CONTEMPLATED HEREBY AND THEREBY SHALL BE GOVERNED BY, AND CONSTRUED IN ACCORDANCE WITH, THE LAW OF THE STATE OF NEW YORK.

6.No Other Changes.  Except as modified hereby, all of the terms and provisions of the Loan Documents shall remain in full force and effect.

[Signature pages follow.]

3


IN WITNESS WHEREOF, each of the parties hereto has caused a counterpart of this Amendment to be duly executed and delivered as of the date first above written.

BORROWER:

SAFARILAND, LLC,

a Delaware limited liability company

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

GUARANTORS:

CADRE HOLDINGS, INC.,

a Delaware corporation

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

SAFARILAND GLOBAL SOURCING, LLC,

a Delaware limited liability company

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

GH ARMOR SYSTEMS INC.,

a Delaware corporation

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

HORSEPOWER, LLC,

a Delaware limited liability company

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

SAFARILAND, LLC

SECOND AMENDMENT TO CREDIT AGREEMENT


SENCAN HOLDINGS, LLC,

a Delaware limited liability company

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

MED-ENG, LLC,

a Delaware limited liability company

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

ATLANTIC TACTICAL, INC.,

a Pennsylvania corporation

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

SAFARILAND DISTRIBUTION, LLC,

a Delaware limited liability company

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

UNITED UNIFORM DISTRIBUTION, LLC,

a Delaware limited liability company

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

LAWMEN’S DISTRIBUTION, LLC,

a Delaware limited liability company

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

SAFARILAND, LLC

SECOND AMENDMENT TO CREDIT AGREEMENT


DEFENSE TECHNOLOGY, LLC,

a Delaware limited liability company

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

CYALUME TECHNOLOGIES, INC.,

a Delaware corporation

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

CT SAS HOLDINGS, INC.,

a Delaware corporation

By:

/s/ Chad Appleby

Name:

Chad Appleby

Title:

Vice President, Tax and Treasurer

SAFARILAND, LLC

SECOND AMENDMENT TO CREDIT AGREEMENT


ADMINISTRATIVE

AGENT:

PNC BANK, NATIONAL ASSOCIATION,

as Administrative Agent, as Swingline Loan

Lender, as Issuing Lender and as a Lender

By:

/s/ James Cullen

Name:

James Cullen

Title:

Senior Vice President

SAFARILAND, LLC

SECOND AMENDMENT TO CREDIT AGREEMENT


LENDER:

BANK OF AMERICA, N.A.,

as a Lender

By:

/s/ Robert Riechmann

Name:

Robert Riechmann

Title:

Senior Vice President

SAFARILAND, LLC

SECOND AMENDMENT TO CREDIT AGREEMENT


LENDER:

REGIONS BANK,

as a Lender

By:

/s/ Mike Roane

Name:

Mike Roane

Title:

Director

SAFARILAND, LLC

SECOND AMENDMENT TO CREDIT AGREEMENT


LENDER:

U.S. BANK NATIONAL ASSOCIATION,

as a Lender

By:

/s/ Dustin Shepherd

Name:

Dustin Shepherd

Title:

Vice President

SAFARILAND, LLC

SECOND AMENDMENT TO CREDIT AGREEMENT


LENDER:

SOUTH STATE BANK, N.A.,

as a Lender

By:

/s/ Michael R. Butler

Name:

Michael R. Butler

Title:

Senior Vice President

SAFARILAND, LLC

SECOND AMENDMENT TO CREDIT AGREEMENT


EXHIBIT A

(see attached)


EXHIBIT A TO SECOND AMENDMENT

Published CUSIP Number:

78636LAA9

Revolving Credit CUSIP Number:

7836LAB7

Term Loan A CUSIP Number:

78636LAC5

CREDIT AGREEMENT

by and among

SAFARILAND, LLC

and

THE GUARANTORS PARTY HERETO

and

THE LENDERS PARTY HERETO

and

PNC BANK, NATIONAL ASSOCIATION,

as Administrative Agent, Swingline Loan Lender and an Issuing Lender

BANK OF AMERICA, N.A.,

as Syndication Agent and an Issuing Lender

PNC CAPITAL MARKETS LLC

and

BOFA SECURITIES, INC.,

as Joint Lead Arrangers and Joint Bookrunners

Dated as of July 23, 2021


Table of Contents

Page

ARTICLE 1 CERTAIN DEFINITIONS

1

1.1

Certain Definitions.

1

1.2

Construction.

52

1.3

Accounting Principles; Changes in GAAP.

53

1.4

LIBOR Notification.

53

1.5

Limited Condition Transactions.

53

ARTICLE 2 REVOLVING CREDIT AND SWINGLINE LOAN FACILITIES

54

2.1

Revolving Credit Commitments.

54

2.2

Nature of Lenders’ Obligations with Respect to Revolving Credit Loans.

55

2.3

Commitment Fees.

55

2.4

Termination or Reduction of Revolving Credit Commitments.

55

2.5

Revolving Credit Loan Requests; Conversions and Renewals; Swingline Loan Requests.

56

2.6

Making Revolving Credit Loans and Swingline Loans; Presumptions by the Administrative Agent; Repayment of Revolving Credit Loans; Borrowings to Repay Swingline Loans.

57

2.7

Notes.

59

2.8

Letter of Credit Subfacility.

59

ARTICLE 3 TERM LOANS

67

3.1

Term Loan Commitments.

67

3.2

Nature of Lenders’ Obligations with Respect to Term Loans; Repayment Terms.

67

ARTICLE 4 INTEREST RATES

68

4.1

Interest Rate Options.

68

4.2

Interest Periods.

69

4.3

Interest After Default

69

4.4

LIBOR Rate Unascertainable; Increased Costs; Deposits Not Available; Illegality; Benchmark Replacement Setting.

70

4.5

Selection of Interest Rate Options.

73

ARTICLE 5 PAYMENTS; Taxes; Yield maintenance; ETC.

73

5.1

Payments..

73

5.2

Voluntary Prepayments.

74

5.3

Mandatory Prepayments.

75

5.4

Pro Rata Treatment of Lenders.

76

5.5

Sharing of Payments by Lenders.

76

5.6

Administrative Agent’s Clawback.

77

5.7

Interest Payment Dates.

78

5.8

Increased Costs.

78

5.9

Taxes.

79

5.10

Indemnity.

83

5.11

Settlement Date Procedures.

84

5.12

Cash Collateral.

84

5.13

Replacement of a Lender.

85

-i-


Table of Contents

(continued)

Page

5.14

Designation of a Different Lending Office.

86

5.15

Defaulting Lenders.

86

5.16

Maturity Extensions.

89

5.17

Incremental Loans.

91

ARTICLE 6 REPRESENTATIONS AND WARRANTIES

95

6.1

Organization and Qualification; Power and Authority; Compliance With Laws; Title to Properties; Event of Default.

95

6.2

Loan Parties; Subsidiaries and Owners; Investment Companies.

96

6.3

Validity and Binding Effect.

96

6.4

No Conflict; Material Agreements; Consents.

97

6.5

Litigation.

97

6.6

Financial Statements.

97

6.7

No Material Adverse Change.

98

6.8

Margin Stock.

98

6.9

Full Disclosure

98

6.10

Taxes.

99

6.11

Intellectual Property.

99

6.12

Ownership of Property; Liens in the Collateral.

99

6.13

Insurance.

100

6.14

ERISA Compliance.

100

6.15

Environmental Matters.

101

6.16

Solvency.

101

6.17

Sanctions and other Anti-Terrorism Laws.

101

6.18

Anti-Corruption Laws.

102

6.19

Certificate of Beneficial Ownership.

102

6.20

No Affected Financial Institutions.

102

6.21

Surety Obligations

102

6.22

Subordination of Subordinated Debt.

102

6.23

No Casualty.

102

ARTICLE 7 CONDITIONS OF LENDING AND ISSUANCE OF LETTERS OF CREDIT

102

7.1

Conditions to Effectiveness.

102

7.2

Conditions to Funding Date.

103

7.3

Each Loan or Letter of Credit.

105

ARTICLE 8 AFFIRMATIVE COVENANTS

106

8.1

Preservation of Existence, Etc.

106

8.2

Payment of Liabilities, Including Taxes, Etc.

106

8.3

Maintenance of Insurance.

107

8.4

Maintenance of Properties and Leases..

107

8.5

Inspection Rights.

107

8.6

Keeping of Records and Books of Account.

107

8.7

Compliance with Laws; Use of Proceeds.

108

8.8

Additional Subsidiaries; Further Assurances.

108


Table of Contents

(continued)

Page

8.9

Sanctions and other Anti-Terrorism Laws.

111

8.10

Keepwell.

111

8.11

Reporting Requirements.

111

8.12

Certificates; Notices; Additional Information.

112

8.13

Certificate of Beneficial Ownership and Other Additional Information.

114

8.14

Post-Closing Covenant.

114

ARTICLE 9 NEGATIVE COVENANTS

115

9.1

Indebtedness

115

9.2

Liens.

117

9.3

Loans and Investments.

118

9.4

Dividends and Related Distributions.

118

9.5

Liquidations, Mergers, Consolidations, Acquisitions.

120

9.6

Dispositions of Assets or Subsidiaries.

120

9.7

Affiliate Transactions.

120

9.8

Subsidiaries, Partnerships and Joint Ventures.

121

9.9

Continuation of or Change in Business.

121

9.10

Accounting Changes; Change in Fiscal Year.

121

9.11

Changes to Organizational Documents.

121

9.12

Minimum Consolidated Fixed Charge Coverage Ratio.

121

9.13

Maximum Consolidated Total Net Leverage Ratio.

121

9.14

Limitation on Negative Pledges and Restrictive Agreements.

122

9.15

Subordinated Indebtedness.

122

9.16

Agreements Restricting Dividends.

123

9.17

Sanctions and other Anti-Terrorism Laws.

123

9.18

Use of Proceeds.

123

9.19

Sale and Leaseback Transactions.

124

9.20

Designation as Senior Debt.

124

ARTICLE 10 DEFAULT

124

10.1

Events of Default.

124

10.2

Consequences of Event of Default.

126

10.3

Application of Proceeds.

128

ARTICLE 11 THE ADMINISTRATIVE AGENT

130

11.1

Appointment and Authority

130

11.2

Rights as a Lender

130

11.3

Exculpatory Provisions.

130

11.4

Reliance by Administrative Agent.

131

11.5

Delegation of Duties.

132

11.6

Resignation of Administrative Agent.

132

11.7

Non-Reliance on Administrative Agent and Other Lenders.

133

11.8

No Other Duties, Etc.

133

11.9

Administrative Agent’s Fee.

133

11.10

Administrative Agent May File Proofs of Claim.

133

11.11

Collateral and Guaranty Matters.

134


Table of Contents

(continued)

Page

11.12

No Reliance on Administrative Agent’s Customer Identification Program.

135

11.13

Lender Provided Interest Rate Hedges, Lend Provided Foreign Currency Hedges, Other Lender Provided Financial Service Products and Canadian Subsidiary Obligations.

135

11.14

ERISA Matters.

135

11.15

Erroneous Payments.

137

ARTICLE 12 MISCELLANEOUS

140

12.1

Modifications, Amendments or Waivers.

140

12.2

No Implied Waivers; Cumulative Remedies..

142

12.3

Expenses; Indemnity; Damage Waiver.

142

12.4

Holidays.

144

12.5

Notices; Effectiveness; Electronic Communication

144

12.6

Severability.

146

12.7

Duration; Survival.

146

12.8

Successors and Assigns.

147

12.9

Confidentiality.

151

12.10

Counterparts; Integration; Effectiveness; Electronic Execution.

152

12.11

CHOICE OF LAW; SUBMISSION TO JURISDICTION; WAIVER OF VENUE; SERVICE OF PROCESS; WAIVER OF JURY TRIAL.

153

12.12

Acknowledgement and Consent to Bail-In of Affected Financial Institutions.

154

12.13

USA PATRIOT Act Notice.

155

12.14

Acknowledgement Regarding Any Supported QFCs.

155


LIST OF SCHEDULES AND EXHIBITS

SCHEDULES

SCHEDULE 1.1(B)

-

COMMITMENTS OF LENDERS AND ADDRESSES FOR NOTICES

SCHEDULE 1.1(C)

-

EXISTING LETTERS OF CREDIT

SCHEDULE 1.1(D)

-

PERMITTED LIENS

SCHEDULE 6.2

-

SUBSIDIARIES

SCHEDULE 6.11

-

INTELLECTUAL PROPERTY

SCHEDULE 6.15

-

ENVIRONMENTAL DISCLOSURES

SCHEDULE 6.21

-

SURETY OBLIGATIONS

SCHEDULE 9.1

-

EXISTING INDEBTEDNESS

SCHEDULE 9.3

-

EXISTING INVESTMENTS

SCHEDULE 9.7

-

AFFILIATE TRANSACTIONS

EXHIBITS

EXHIBIT A

-

ASSIGNMENT AND ASSUMPTION AGREEMENT

EXHIBIT B

-

GUARANTOR JOINDER

EXHIBIT C

-

REVOLVING CREDIT NOTE

EXHIBIT D

-

SWINGLINE LOAN NOTE

EXHIBIT E

-

TERM NOTE

EXHIBIT F

PERMITTED ACQUISITION CERTIFICATE

EXHIBIT G

-

LOAN REQUEST

EXHIBIT H

-

SWINGLINE LOAN REQUEST

EXHIBIT I-1

-

U.S. TAX COMPLIANCE CERTIFICATE (For Foreign Lenders That Are Not Partnerships For U.S. Federal Income Tax Purposes)

EXHIBIT I-2

-

U.S. TAX COMPLIANCE CERTIFICATE (For Foreign Participants That Are Not Partnerships For U.S. Federal Income Tax Purposes)

EXHIBIT I-3

-

U.S. TAX COMPLIANCE CERTIFICATE (For Foreign Participants That Are Partnerships For U.S. Federal Income Tax Purposes)

EXHIBIT I-4

-

U.S. TAX COMPLIANCE CERTIFICATE (For Foreign Lenders That Are Partnerships For U.S. Federal Income Tax Purposes)

EXHIBIT J

-

COMPLIANCE CERTIFICATE


CREDIT AGREEMENT

THIS CREDIT AGREEMENT is dated as of July 23, 2021 and is made by and among SAFARILAND, LLC, a Delaware limited liability company (the “Borrower”), the GUARANTORS (as hereinafter defined), the LENDERS (as hereinafter defined), the Issuing Lenders (as hereinafter defined) and PNC BANK, NATIONAL ASSOCIATION, in its capacity as the Administrative Agent (as hereinafter defined), Swingline Loan Lender (as hereinafter defined) and an Issuing Lender (as hereinafter defined).

The Borrower initially requested the Lenders to provide (i) a revolving credit facility to the Borrower in an aggregate principal amount not to exceed $100,000,000, including therein a Swingline Loan (as hereinafter defined) subfacility and a Letter of Credit (as hereinafter defined) subfacility and (ii) a $150,000,000 term loan facility.

After the Closing Date, but prior to the Funding Date, the Borrower has requested that the $150,000,000 term loan facility be increased by $50,000,000 to $200,000,000 pursuant to the terms of the First Amendment.

In consideration of their mutual covenants and agreements hereinafter specified and intending to be legally bound hereby, the parties hereto covenant and agree as follows:

ARTICLE 1

CERTAIN DEFINITIONS

1.1Certain Definitions.  In addition to words and terms defined elsewhere in this Agreement, the following words and terms shall have the following meanings, respectively, unless the context hereof clearly requires otherwise:

Acquisition” means any transaction, or any series of related transactions, by which any Loan Party or any of its Subsidiaries (a) acquires any going business or all or substantially all of the assets of any firm, corporation or limited liability company, or division thereof, whether through purchase of assets, merger or otherwise or (b) directly or indirectly acquires (in one transaction or as the most recent transaction in a series of transactions) at least a majority (in number of votes) of the securities of a corporation which have ordinary voting power for the election of directors (other than securities having such power only by reason of the happening of a contingency) or a majority (by percentage or voting power) of the outstanding ownership interests of a partnership or limited liability company.

Additional Commitment Lender” means as is specified in Section 5.16(d).

Administrative Agent” means PNC Bank, National Association, in its capacity as administrative agent hereunder or any successor administrative agent.

Administrative Agent’s Fee” means as is specified in Section 11.9.

Administrative Agent’s Letter” means as is specified in Section 11.9.


Administrative Questionnaire” means an administrative questionnaire in a form supplied by the Administrative Agent.

Affected Financial Institution” means (a) any EEA Financial Institution or (b) any UK Financial Institution.

Affiliate” means, with respect to a specified Person, another Person that directly or indirectly through one or more intermediaries, Controls or is Controlled by or is under common Control with the Person specified.

Agent Parties” means as is specified in Section 12.5(d)(ii).

Agreement” means this Credit Agreement, as the same may be amended, supplemented, modified or restated from time to time, including all schedules and exhibits.

Alternate Source” means as is specified in the definition of LIBOR Rate.

Anti-Corruption Laws” means the United States Foreign Corrupt Practices Act of 1977, as amended, the UK Bribery Act 2010, and any other similar anti-corruption laws or regulations administered or enforced in any jurisdiction in which Holdings or any of its Subsidiaries conduct business.

Anti-Terrorism Law” means any Law in force or hereinafter enacted related to terrorism, money laundering, or economic sanctions, including Executive Order No. 13224, the USA PATRIOT Act, the International Emergency Economic Powers Act, 50 U.S.C. 1701, et. seq., the Trading with the Enemy Act, 50 U.S.C. App. 1, et. seq., 18 U.S.C. § 2332d, and 18 U.S.C. § 2339B, and any regulations or directives promulgated under these provisions.

Applicable Margin” means the corresponding percentages per annum as specified under and in accordance with the terms set forth below based on the Consolidated Total Net Leverage Ratio:

Level

Consolidated Total Net
Leverage Ratio

Commitment
Fee

Letter of
Credit Fee

Base Rate
Spread

LIBOR Rate
Spread

I

Less than 1.50 to 1.00

0.175%

1.50%

0.50%

1.50%

II

Greater than or equal to 1.50 to
1.00 but less than 2.00 to 1.00

0.175%

1.75%

0.75%

1.75%

III

Greater than or equal to 2.00 to
1.00 but less than 2.50 to 1.00

0.200%

2.00%

1.00%

2.00%

IV

Greater than or equal to 2.50 to
1.00 but less than 3.00 to 1.00

0.225%

2.25%

1.25%

2.25%

V

Greater than or equal to 3.00 to
1.00

0.250%

2.50%

1.50%

2.50%

For purposes of determining the Applicable Margin:

2


(a)The Applicable Margin shall be determined on the Funding Date based on Pricing Level V.

(b)The Applicable Margin shall be recomputed as of the end of each Fiscal Quarter ending after the Funding Date based on the Consolidated Total Net Leverage Ratio as of such quarter end.  Any increase or decrease in the Applicable Margin computed as of a quarter end shall be effective on the date on which the Compliance Certificate evidencing such computation is due to be delivered under Section 8.12(a).  If a Compliance Certificate is not delivered when due in accordance with such Section 8.12(a), then the rates in Level V shall apply as of the first Business Day after the date on which such Compliance Certificate was required to have been delivered and shall remain in effect until the date on which such Compliance Certificate is delivered.

(c)If, as a result of any restatement of or other adjustment to the financial statements of Holdings or for any other reason, the Borrower or the Lenders determine that (i) the Consolidated Total Net Leverage Ratio as calculated by the Borrower as of any applicable date was inaccurate and (ii) if a proper calculation of the Consolidated Total Net Leverage Ratio would have resulted in higher pricing for such period, the Borrower shall immediately and retroactively be obligated to pay to the Administrative Agent for the account of the applicable Lenders, promptly on demand by the Administrative Agent (or, after the occurrence of an actual or deemed entry of an order for relief with respect to the Borrower or Holdings under the Bankruptcy Code of the United States, automatically and without further action by the Administrative Agent, any Lender or any Issuing Lender), an amount equal to the excess of the amount of interest and fees that should have been paid for such period over the amount of interest and fees actually paid for such period.  This paragraph shall not limit the rights of the Administrative Agent, any Lender or any Issuing Lender, as the case may be, under Section 2.8 or Section 4.3 or Article 10.  The Borrower’s obligations under this paragraph shall survive the termination of the Commitments and the repayment of all other Obligations hereunder.

Approved Fund” means any Fund that is administered or managed by (a) a Lender, (b) an Affiliate of a Lender or (c) an entity or an Affiliate of an entity that administers or manages a Lender.

Asset Disposition” means the sale, transfer, license, lease or other disposition of any property by any Loan Party or any Subsidiary thereof, including, in each case, by way of an LLC Division (or the granting of any option or other right to do any of the foregoing), any issuance of Equity Interests by any Subsidiary of the Borrower to any Person that is not a Loan Party or any Subsidiary thereof, any sale and leaseback transaction and any sale, assignment, transfer or other disposal, with or without recourse, of any notes or accounts receivable or any rights and claims associated therewith.  The term “Asset Disposition” shall not include (a) the sale of inventory in the Ordinary Course of Business, (b) the transfer of assets to the Borrower or any Guarantor (other than Holdings) pursuant to any other transaction permitted pursuant to Section 9.5, (c) the write-off, discount, sale or other disposition of defaulted or past-due receivables and similar obligations in the Ordinary Course of Business and not undertaken as part of an accounts receivable financing transaction, (d) the disposition of any Swap, (e) dispositions of cash or Investments in cash and Cash Equivalents, (f) the transfer by any Loan Party of its assets to any other Loan Party, (g) the transfer by any non-Loan Party Subsidiary of its assets to any Loan Party (provided that in connection with any new transfer, such Loan Party shall not pay more than an amount equal to the

3


fair market value of such assets as determined in good faith at the time of such transfer), (h) the transfer by any non-Loan Party Subsidiary of its assets to any other non-Loan Party Subsidiary, (i) the sale or disposition for fair market value of obsolete or worn out property or other property not necessary for operations of the Borrower and its Subsidiaries disposed of in the Ordinary Course of Business, (j) licenses, sublicenses, leases or subleases granted to others in the Ordinary Course of Business or not interfering in any material respect with the business of the Borrower or any Subsidiary, (k) the disposition of Equity Interests of any Subsidiary in order to qualify members of the governing body of such Subsidiary if required by applicable Law, (l) sales, transfers and dispositions of accounts receivable in connection with the compromise, settlement or collection thereof in the Ordinary Course of Business (but not, for purposes of clarity, in connection with any receivables sale or factoring program or facility), (m) sales, transfers and dispositions of or constituting Permitted Investments, (n) Sale and Leaseback Transactions solely to the extent permitted by Section 9.19, (o) dispositions resulting from any Recovery Event, (p) the abandonment or the discontinuation of the use of any Intellectual Property (including any application or right to file any application with respect thereto) that is not used in, useful to, or material to the business of the Loan Parties and its Subsidiaries, or (q) the subcontracting or assignment of manufacturing or other production rights under customer contracts to a Loan Party or wholly-owned Subsidiary for purposes relating to the manufacture, production or delivery of inventory or the transfer or assignment of customer or Loan Party information, data, know how, tooling, materials or inventory required in connection with performing such agreements in the Ordinary Course of Business.

Assignment and Assumption Agreement” means an assignment and assumption entered into by a Lender and an Eligible Assignee (with the consent of any party whose consent is required by Section 12.8), and accepted by the Administrative Agent, in substantially the form of Exhibit A or any other form approved by the Administrative Agent.

Authorized Officer” means, with respect to any Loan Party, the Chief Executive Officer, President, Chief Financial Officer, Treasurer or Assistant Treasurer of such Loan Party, any manager or the members (as applicable) in the case of any Loan Party which is a limited liability company, or such other individuals, designated by written notice to the Administrative Agent from the Borrower, authorized to execute notices, reports and other documents on behalf of such Loan Party required hereunder.  The Borrower may amend such list of individuals from time to time by giving written notice of such amendment to the Administrative Agent.

Available Tenor” means, as of any date of determination and with respect to the then-current Benchmark, as applicable, (x) if the then current Benchmark is a term rate or is based on a term rate, any tenor for such Benchmark that is or may be used for determining the length of an Interest Period pursuant to this Agreement as of such date and not including, for the avoidance of doubt, any tenor for such Benchmark that is then-removed from the definition of “Interest Period” pursuant to Section 4.4(d)(v), or (y) if the then current Benchmark is not a term rate nor based on a term rate, any payment period for interest calculated with reference to such Benchmark pursuant to this Agreement as of such date.

Bail-In Action” means the exercise of any Write-down and Conversion Powers by the applicable Resolution Authority in respect of any liability of an Affected Financial Institution.

4


Bail-In Legislation” means (a) with respect to any EEA Member Country implementing Article 55 of Directive 2014/59/EU of the European Parliament and of the Council of the European Union, the implementing law, regulation rule or requirement for such EEA Member Country from time to time which is described in the EU Bail-In Legislation Schedule and (b) with respect to the United Kingdom, Part I of the United Kingdom Banking Act 2009 (as amended from time to time) and any other law, regulation or rule applicable in the United Kingdom relating to the resolution of unsound or failing banks, investment firms or other financial institutions or their affiliates (other than through liquidation, administration or other insolvency proceedings).

Base Rate” means, for any day, a fluctuating per annum rate of interest equal to the highest of (i) the Overnight Bank Funding Rate, plus 0.50%, (ii) the Prime Rate, and (iii) the Daily LIBOR Rate, plus 1.00%, so long as Daily LIBOR Rate is offered, ascertainable and not unlawful.  Any change in the Base Rate (or any component thereof) shall take effect at the opening of business on the day such change occurs.  Notwithstanding the foregoing, if the Base Rate as determined under any method above would be less than zero percent (0.00%), such rate shall be deemed to be zero percent (0.00%) for purposes of this Agreement.

Base Rate Option” means the option of the Borrower to have Loans bear interest at the rate and under the terms specified in either Section 4.1(a)(i) or Section 4.1(c)(i), as applicable.

Benchmark” means, initially, USD LIBOR; provided that if a Benchmark Transition Event a Term SOFR Transition Event, an Early Opt-in Election, or an Other Benchmark Rate Election, as applicable, and its related Benchmark Replacement Date have occurred with respect to USD LIBOR or the then-current Benchmark, then “Benchmark” means the applicable Benchmark Replacement to the extent that such Benchmark Replacement has replaced such prior benchmark rate pursuant to Section 4.4(d)(ii).

Benchmark Replacement” means, for any Available Tenor:

(a)the first alternative set forth in the order below that can be determined by the Administrative Agent for the applicable Benchmark Replacement Date:

(1)the sum of: (A) Term SOFR and (B) the related Benchmark Replacement Adjustment;

(2)the sum of: (A) Daily Simple SOFR and (B) the related Benchmark Replacement Adjustment;

(3)the sum of: (A) the alternate benchmark rate that has been selected by the Administrative Agent and the Borrower as the replacement for the then-current Benchmark for the applicable Corresponding Tenor giving due consideration to (I) any selection or recommendation of a replacement benchmark rate or the mechanism for determining such a rate by the Relevant Governmental Body or (II) any evolving or then-prevailing market convention for determining a benchmark rate as a replacement for the then-current Benchmark for U.S. dollar-

5


denominated syndicated credit facilities at such time and (B) the related Benchmark Replacement Adjustment; and

(b)in the case of an Other Benchmark Rate Election, the “Benchmark Replacement” shall mean the alternative set forth in clause (a)(3) above;

provided that, in the case of clause (1), such Unadjusted Benchmark Replacement is displayed on a screen or other information service that publishes such rate from time to time as selected by the Administrative Agent in its reasonable discretion; provided further that, in the case of clause (a)(3) above, when such clause is used to determine the Benchmark Replacement in connection with the occurrence of an Other Benchmark Rate Election, the alternate benchmark rate selected by the Administrative Agent and the Borrower shall be the term benchmark rate that is used in lieu of a LIBOR Rate-based rate in relevant other Dollar-denominated syndicated credit facilities; provided, further, that, with respect to a Term SOFR Transition Event, on the applicable Benchmark Replacement Date, the “Benchmark Replacement” shall revert to and shall be determined as set forth in clause (1) of this definition. If the Benchmark Replacement as determined pursuant to clause (1), (2) or (3) above would be less than the Floor, the Benchmark Replacement will be deemed to be the Floor for the purposes of this Agreement and the other Loan Documents.

Benchmark Replacement Adjustment” means, with respect to any replacement of the then-current Benchmark with an Unadjusted Benchmark Replacement for any applicable Available Tenor for any setting of such Unadjusted Benchmark Replacement:

(1) for purposes of clauses (a)(1) and (a)(2) of the definition of “Benchmark Replacement,” the applicable amount(s) set forth below:

Available Tenor

Benchmark Replacement Adjustment*

One-Week

0.03839% (3.839 basis points)

One-Month

0.11448% (11.448 basis points)

Two-Months

0.18456% (18.456 basis points)

Three-Months

0.26161% (26.161 basis points)

Six-Months

0.42826% (42.826 basis points)

* These values represent the ARRC/ISDA recommended spread adjustment values available here: https://assets.bbhub.io/professional/sites/10/IBOR-Fallbacks-LIBOR-Cessation_Announcement_20210305.pdf

6


(2) for purposes of clause (a)(3) of the definition of “Benchmark Replacement,” the spread adjustment, or method for calculating or determining such spread adjustment, (which may be a positive or negative value or zero) that has been selected by the Administrative Agent and the Borrower for the applicable Corresponding Tenor giving due consideration to (A) any selection or recommendation of a spread adjustment, or method for calculating or determining such spread adjustment, for the replacement of such Benchmark with the applicable Unadjusted Benchmark Replacement by the Relevant Governmental Body on the applicable Benchmark Replacement Date or (B) any evolving or then-prevailing market convention for determining a spread adjustment, or method for calculating or determining such spread adjustment, for the replacement of such Benchmark with the applicable Unadjusted Benchmark Replacement for U.S. dollar-denominated syndicated credit facilities; provided, that, if the then-current Benchmark is a term rate, more than one tenor of such Benchmark is available as of the applicable Benchmark Replacement Date and the applicable Unadjusted Benchmark Replacement will not be a term rate, the Available Tenor of such Benchmark for purposes of this definition of “Benchmark Replacement Adjustment” shall be deemed to be the Available Tenor that has approximately the same length (disregarding business day adjustments) as the payment period for interest calculated with reference to such Unadjusted Benchmark Replacement.

Benchmark Replacement Conforming Changes” means, with respect to any Benchmark Replacement, any technical, administrative or operational changes (including changes to the definition of “Base Rate,” the definition of “Business Day,” the definition of “Interest Period,” timing and frequency of determining rates and making payments of interest, timing of borrowing requests or prepayment, conversion or continuation notices, length of lookback periods, the applicability of breakage provisions, and other technical, administrative or operational matters) that the Administrative Agent decides may be appropriate to reflect the adoption and implementation of such Benchmark Replacement and to permit the administration thereof by the Administrative Agent in a manner substantially consistent with market practice (or, if the Administrative Agent decides that adoption of any portion of such market practice is not administratively feasible or if the Administrative Agent determines that no market practice for the administration of such Benchmark Replacement exists, in such other manner of administration as the Administrative Agent decides is reasonably necessary in connection with the administration of this Agreement and the other Loan Documents).

Benchmark Replacement Date” means the earliest to occur of the following events with respect to the then-current Benchmark:

(1) in the case of clause (1) or (2) of the definition of “Benchmark Transition Event,” the later of (a) the date of the public statement or publication of information referenced therein and (b) the date on which the administrator of such Benchmark (or the published component used in the calculation thereof) permanently or indefinitely ceases to provide all Available Tenors of such Benchmark (or such component thereof);

7


(2) in the case of clause (3) of the definition of “Benchmark Transition Event,” the date determined by the Administrative Agent, which date shall promptly follow the date of the public statement or publication of information referenced therein;

(3) in the case of a Term SOFR Transition Event, the date that is set forth in the Term SOFR Notice provided to the Lenders and the Borrower pursuant to Section 4.4(d), which date shall be at least thirty (30) days from the date of the Term SOFR Notice; or

(4) in the case of an Early Opt-in Election or an Other Benchmark Rate Election, the sixth (6th) Business Day after the date notice of such Early Opt-in Election or an Other Benchmark Rate Election, as applicable, is provided to the Lenders, so long as the Administrative Agent has not received, by 5:00 p.m. (New York City time) on the fifth (5th) Business Day after the date notice of such Early Opt-in Election or an Other Benchmark Rate Election, as applicable, is provided to the Lenders, written notice of objection to such Early Opt-in Election or an Other Benchmark Rate Election, as applicable, from Lenders comprising the Required Lenders.

For the avoidance of doubt, (i) if the event giving rise to the Benchmark Replacement Date occurs on the same day as, but earlier than, the Reference Time in respect of any determination, the Benchmark Replacement Date will be deemed to have occurred prior to the Reference Time for such determination and (ii) the “Benchmark Replacement Date” will be deemed to have occurred in the case of clause (1) or (2) above with respect to any Benchmark upon the occurrence of the applicable event or events set forth therein with respect to all then-current Available Tenors of such Benchmark (or the published component used in the calculation thereof).

Benchmark Transition Event” means the occurrence of one or more of the following events with respect to the then-current Benchmark:

(1) a public statement or publication of information by or on behalf of the administrator of such Benchmark (or the published component used in the calculation thereof) announcing that such administrator has ceased or will cease to provide all Available Tenors of such Benchmark (or such component thereof), permanently or indefinitely; provided that, at the time of such statement or publication, there is no successor administrator that will continue to provide any Available Tenor of such Benchmark (or such component thereof);

(2) a public statement or publication of information by an Official Body having jurisdiction over the Administrative Agent, the regulatory supervisor for the administrator of such Benchmark (or the published component used in the calculation thereof), the Federal Reserve Board, the Federal Reserve Bank of New York, an insolvency official with jurisdiction over the administrator for such Benchmark (or such component), a resolution authority with jurisdiction over the

8


administrator for such Benchmark (or such component) or a court or an entity with similar insolvency or resolution authority over the administrator for such Benchmark (or such component), which states that the administrator of such Benchmark (or such component) has ceased or will cease to provide all Available Tenors of such Benchmark (or such component thereof) permanently or indefinitely; provided that, at the time of such statement or publication, there is no successor administrator that will continue to provide any Available Tenor of such Benchmark (or such component thereof); or

(3) a public statement or publication of information by the regulatory supervisor for the administrator of such Benchmark (or the published component used in the calculation thereof) or an Official Body having jurisdiction over the Administrative Agent announcing that all Available Tenors of such Benchmark (or such component thereof) are no longer representative.

For the avoidance of doubt, a “Benchmark Transition Event” will be deemed to have occurred with respect to any Benchmark if a public statement or publication of information set forth above has occurred with respect to each then-current Available Tenor of such Benchmark (or the published component used in the calculation thereof).

Benchmark Unavailability Period” means the period (if any) (x) beginning at the time that a Benchmark Replacement Date pursuant to clause (1) or clause (2) of that definition has occurred if, at such time, no Benchmark Replacement has replaced the then-current Benchmark for all purposes hereunder and under any Loan Document in accordance with Section 4.4(d) and (y) ending at the time that a Benchmark Replacement has replaced the then-current Benchmark for all purposes hereunder and under any Loan Document in accordance with Section 4.4(d).

Beneficial Owner” means, for the Borrower, each of the following:  (a) each individual, if any, who, directly or indirectly, owns 25% or more of such Borrower’s Equity Interests; and (b) a single individual with significant responsibility to control, manage, or direct such Borrower.

Borrower” means as is specified in the introductory paragraph.

Borrowing Date” means, with respect to any Loan, the date of the making, renewal or conversion thereof, which shall be a Business Day.

Borrowing Tranche” means specified portions of Loans outstanding as follows:  (a) any Loans to which a LIBOR Rate Option applies and which have the same Interest Period shall constitute one Borrowing Tranche, and (b) all Loans to which a Base Rate Option applies shall constitute one Borrowing Tranche.

Business Day” means any day other than a Saturday or Sunday or a legal holiday on which commercial banks are authorized or required to be closed, or are in fact closed, for business in Pittsburgh, Pennsylvania (or, if otherwise, the Lending Office of the Administrative Agent) and if the applicable Business Day relates to any Loan to which the LIBOR Rate Option

9


applies, such day must also be a day on which dealings are carried on in the London interbank market.

Canadian Bilateral Facility” means unsecured revolving Indebtedness of certain Canadian Subsidiaries of the Borrower owed to the Canadian Obligation Provider pursuant to bilateral credit documentation reasonably acceptable to the Administrative Agent in an aggregate amount not to exceed $10,000,000.

Canadian Obligation Loan Documents” means all legal documentation entered into between the applicable Canadian Subsidiaries and the Canadian Obligation Provider in connection with the Canadian Subsidiary Obligations.

Canadian Obligation Provider” shall have the meaning set forth in the definition of “Canadian Subsidiary Obligations”.

Canadian Subsidiary Obligations” means all unpaid principal of, accrued and unpaid interest and fees and reimbursement obligations, and all expenses, reimbursements, indemnities and other obligations under or with respect to, any loans, letters of credit, acceptances, guarantees, overdraft facilities, other credit extensions or accommodations or similar obligations owing by any Foreign Subsidiary to PNC Bank or any office, branch or Affiliate of PNC Bank (each, a “Canadian Obligation Provider”) under the Canadian Bilateral Facility.

Capital Expenditures” means for any period, with respect to any Person, the aggregate of all expenditures by such Person for the acquisition or leasing (pursuant to a capital lease) of fixed or capital assets or additions to equipment (including replacements, capitalized repairs and improvements during such period) which are required to be capitalized under GAAP on a consolidated balance sheet of such Person.

Capital Lease Obligations” of any Person shall mean all obligations of such Person to pay rent or other amounts under any lease (or other arrangement conveying the right to use) of real or personal property, or a combination thereof, which obligations are required to be classified and accounted for as capital leases on a balance sheet of such Person, and the amount of such obligations shall be the capitalized amount thereof.

Cash Collateralize” means, to pledge and deposit with or deliver to the Administrative Agent, for the benefit of one or more of the Issuing Lenders or the Lenders, as collateral for Letter of Credit Obligations or obligations of Lenders to fund participations in respect of Letter of Credit Obligations, cash or deposit account balances or, if the Administrative Agent and each applicable Issuing Lender shall agree in their sole discretion, other credit support, in each case pursuant to documentation in form and substance satisfactory to the Administrative Agent and each applicable Issuing Lender.  “Cash Collateral” shall have a meaning correlative to the foregoing and shall include the proceeds of such cash collateral and other credit support.

Cash Equivalents” means, collectively, such items described in clauses (a) through (e) of the definition of Permitted Investments.

Cash Management Agreements” means as is specified in Section 2.6(f).

10


Cash Management Bank” means any Person that (a) at the time it enters into an Other Lender Provided Financial Service Product, is a Lender or an Affiliate of a Lender or (b) or (b) at the time it (or its Affiliate) becomes a Lender, is a party to an Other Lender Provided Financial Service Product with a Loan Party or any Subsidiary, in each case, in its capacity as a party to such Other Lender Provided Financial Service Product (even if such Person ceases to be a Lender or such Person’s Affiliate ceased to be a Lender).

CEA” means the Commodity Exchange Act (7 U.S.C. §1 et seq.), as amended from time to time, and any successor statute.

Certificate of Beneficial Ownership”  means, for the Borrower, a certificate in form and substance acceptable to the Administrative Agent (as amended or modified by the Administrative Agent from time to time in its sole discretion), certifying, among other things, the Beneficial Owner of such Borrower.

Cessation Announcements” means as is specified in Section 4.4(d)(i).

CFC Debt” means intercompany loans, Indebtedness or receivables owed or treated as owed by one or more Foreign Subsidiaries.

CFTC” means the Commodity Futures Trading Commission.

Change in Law” means the occurrence, after the date of this Agreement, of any of the following: (a) the adoption or taking effect of any Law, (b) any change in any Law or in the administration, interpretation, implementation or application thereof by any Official Body or (c) the making or issuance of any request, rule, guideline or directive (whether or not having the force of Law) by any Official Body; provided that notwithstanding anything herein to the contrary, (x) the Dodd-Frank Wall Street Reform and Consumer Protection Act and all requests, rules, regulations, guidelines, interpretations or directives thereunder or issued in connection therewith (whether or not having the force of Law) and (y) all requests, rules, regulations, guidelines, interpretations or directives promulgated by the Bank for International Settlements, the Basel Committee on Banking Supervision (or any successor or similar authority) or the United States or foreign regulatory authorities (whether or not having the force of Law), in each case pursuant to Basel III, shall in each case be deemed to be a Change in Law regardless of the date enacted, adopted, issued, promulgated or implemented.

Change of Control” means (a) prior to the Holdings IPO, Kanders SAF and its Controlled Investment Affiliates ceases to own and control, beneficially and of record, directly or indirectly, more than 50% of the Equity Interests in Holdings, (b) after the Holdings IPO, (i) any “person” or “group” (as such terms are used in Sections 13(d) and 14(d) of the Securities Exchange Act of 1934, as amended (the “Exchange Act”)), shall become, or obtain rights (whether by means of warrants, options or otherwise) to become, the “beneficial owner” (as defined in Rules 13(d)-3 and 13(d)-5 under the Exchange Act), directly or indirectly, of more than 35.0% of the Equity Interests of Holdings (other than Warren B. Kanders, any trust under which Warren B. Kanders has Control or is the primary beneficiary, or any entity that is Controlled by Warren B. Kanders); (ii) during any period of twenty-four (24) consecutive months, a majority of the members of the board of directors or other equivalent governing body of Holdings cease to be composed of

11


individuals (A) who were members of that board or equivalent governing body on the first day of such period, (B) whose election or nomination to that board or equivalent governing body was nominated, appointed or approved by individuals referred to in clause (b)(ii)(A) above constituting at the time of such election or nomination at least a majority of that board or equivalent governing body or (C) whose election or nomination to that board or other equivalent governing body was nominated, appointed or approved by individuals referred to in clauses (b)(ii)(A) and (b)(ii)(B) above constituting at the time of such election or nomination at least a majority of that board or equivalent governing body, (c) Holdings shall cease to own, directly or indirectly, free and clear of all Liens or other encumbrances, 100% of the outstanding voting Equity Interests of the Borrower on a fully diluted basis; or (d) the Borrower shall cease to own, directly or indirectly, free and clear of all Liens or other encumbrances, 100% of the outstanding voting Equity Interests of each Guarantor (other than Holdings) on a fully diluted basis.

CIP Regulations” means as is specified in Section 11.12.

Class”, when used in reference to any Loan or borrowing, refers to whether such Loan, or the Loans comprising such borrowing, are Revolving Credit Loans or Term Loans and, when used in reference to any Commitment, refers to whether such Commitment is a Revolving Credit Commitment or Term Loan Commitment.

Closing Date” means July 23, 2021.

Code” means the Internal Revenue Code of 1986, as the same may be amended or supplemented from time to time, and any successor statute of similar import, and the rules and regulations promulgated thereunder, as from time to time in effect.

Collateral” means the personal and/or real property of any Person granted as collateral to secure the Obligations for the benefit of the Secured Parties.

Collateral Documents” means the Security Agreement, any Control Agreement, and any other agreement, document or instrument granting a Lien in Collateral for the benefit of the Secured Parties.

Commercial Letter of Credit” means any letter of credit which is a commercial letter of credit issued in respect of the purchase of goods or services by one or more of the Loan Parties in the Ordinary Course of Business.

Commitment” means, as to any Lender, its Revolving Credit Commitment, Term Loan Commitment and, in the case of PNC (in its capacity as the Swingline Loan Lender), its Swingline Loan Commitment (but not the aggregate of its Revolving Credit Commitment and its Swingline Loan Commitment), and Commitments means the aggregate of the Revolving Credit Commitments and Term Loan Commitments of all of the Lenders.

Commitment Fee” means as is specified in Section 2.3.

Communications” means as is specified in Section 12.5(d)(ii).

Compliance Certificate” means as is specified in Section 8.12(a).

12


Connection Income Taxes” means Other Connection Taxes that are imposed on or measured by net income (however denominated) or that are franchise Taxes or branch profits Taxes.

Consolidated EBITDA” means, for any period of determination, the sum of the following determined on a consolidated basis, without duplication, for Holdings and its Subsidiaries in accordance with GAAP: (a) Consolidated Net Income for such period plus (b) the sum of the following, without duplication, to the extent deducted in determining Consolidated Net Income for such period: (i) income and franchise taxes; (ii) Consolidated Interest Expense; (iii) amortization and depreciation expense; (iv) losses arising from the sale of capital assets; (v) (A) non-cash compensation to officers, directors and employees paid in the form of Equity Interests to the extent permitted by Section 9.7 and (B) Qualified LTIP Accrual Amounts with respect to awards granted prior to the date of the Holdings IPO to officers, directors and employees in an aggregate amount not to exceed $2,000,000; (vi) non-cash facilities relocation costs, non-cash fees, non-cash expenses or non-cash charges relating to non-recurring plant shutdowns and discontinuance of operations and non-cash acquisition integration costs and fees but only to the extent constituting Permitted Pro Forma Adjustments; (vii) severance, retention, recruiting, relocation and signing bonuses and expenses, stock option and other equity-based compensation expenses, one-time compensation expenses, stay bonuses, any one-time compensation expenses relating to enhanced accounting and tax function and other similar transaction costs, including those associated with becoming a standalone entity or public company (including, without limitation, any such payments made in connection with the consummation of the Transactions or any other action not prohibited under the Loan Documents) but only to the extent constituting Permitted Pro Forma Adjustments; provided, however, that the aggregate amount such amounts added back pursuant to this clause (b)(vii) and clause (b)(viii) below shall not in any period exceed 25% of Consolidated EBITDA for any period (determined without giving effect to this clause (b)(vii) or clause (b)(viii)); (viii) (A) integration costs, transition costs, consolidation and closing costs for facilities, costs incurred in connection with any non-recurring strategic initiatives, acquisitions and non-recurring intellectual property development after the Closing Date, other business optimization expenses (including costs and expenses relating to business optimization programs, new systems design, technology upgrades and implementation costs), project start-up costs, pre-opening expenses and other restructuring charges, accruals or reserves (including restructuring costs related to acquisitions after the Closing Date and to closure/consolidation of facilities, retention charges, systems establishment costs and excess pension charges), and other charges attributable to the undertaking and/or implementation of operating improvements, operating expense reductions, established cost savings initiatives and other strategic or operational initiatives, including transaction fees, costs and expenses incurred in connection with the foregoing, and (B) the amount of pro forma cost adjustments, cost savings, operating expense reductions, other operating expense improvements and cost synergies related to any Specified Transaction or the implementation of an operational initiative, operational change or cost reduction program after the Closing Date but only to the extent constituting Permitted Pro Forma Adjustments, net of the amount of actual benefits realized during such period from such actions; provided, that, the aggregate amount of such amounts added back to Consolidated EBITDA pursuant to this clause (b)(viii) and clause (b)(vii) above, taken together in the aggregate, shall not in any period exceed 25% of Consolidated EBITDA for any period (determined without giving effect to this clause (b)(viii) or clause (b)(vii)); (ix) any non-cash write-offs, write-downs or other non-cash charges of assets (excluding (A) any such charge that represents an accrual or reserve for

13


a cash expenditure for a future period and (B) write-downs or write-offs of accounts receivable or inventory); (x) the effect on earnings of any write-downs of inventory following the closing of the Transactions or any Permitted Acquisition, in each case as a result of purchase accounting, in an aggregate amount not to exceed $5,000,000 for any single Permitted Acquisition; (xi) the amount of (A) any reserve or accrual for, or (B) any payments on account of, any acquisition-related Earnout Obligations or deferred purchase price of any kind in connection with Permitted Acquisitions (provided that any such amounts payable in cash constitute Subordinated Indebtedness and any such payments which are made in cash may only be added back if permitted pursuant to Section 9.15), in an amount not to exceed $10,000,000 for any single Permitted Acquisition and in an amount not to exceed $25,000,000 for all Permitted Acquisitions made during the term of this Agreement; (xii) any costs or expenses incurred by the Loan Parties and their Subsidiaries pursuant to any management equity plan or stock option plan or any other management or employee benefit plan or agreement or any stock subscription or stockholders agreement, solely to the extent that such costs or expenses are funded with cash proceeds contributed to the capital of the Loan Parties or Net Cash Proceeds of the issuance of Equity Interests of the Loan Parties concurrently with, or within ten (10) days of, the incurrence of such costs or expenses; (xiii) any costs or expenses incurred by the Loan Parties to the extent either (A) cash reimbursement is received therefore from another Person within the same period in which the cost or expense is incurred or (B) the costs or expenses are indemnified by, or reimbursable from, a third party (provided, however, that if such costs or expenses are not reimbursed within sixty (60) days of the end of the applicable measurement period, then such costs and expenses shall not be added back); (xiv) costs and expenses incurred in connection with the Transactions or the Holdings IPO; (xv) any losses (net of gains) with respect to exchange rates or expenses or charges relating to currency valuation; (xvi) fees, costs and expenses incurred under or in connection with this Agreement for such period; (xvii) the cumulative effect of a change in accounting principles for such period that decreases Consolidated Net Income; (xviii) expenses paid in cash during such period in connection with the settlement of any litigation or claim involving Holdings or any of its Subsidiaries in an aggregate amount not to exceed $3,000,000 during the term of this Agreement; (xix) any loss resulting from the payment of Earnout Obligations; (xx) any net unrealized loss resulting in such period from obligations in respect of derivative instruments and the applicable of Statement of Financial Accounting Standards No. 133; and (xxi) extraordinary losses, less (c) the sum of the following, without duplication, to the extent included in determining Consolidated Net Income for such period (other than clause (c)(iv)): (i) extraordinary gains, (ii) non-cash gains or non-cash items increasing Consolidated Net Income, (iii) gains arising from the sale of capital assets, (iv) the effect on earnings of any write-ups of inventory following the closing of the Transactions or any Permitted Acquisition and (v) the cumulative effect of a change in accounting principles for such period that increases Consolidated Net Income.  For purposes of this Agreement, Consolidated EBITDA shall be adjusted on a Pro Forma Basis for any period of measurement during which any Specified Transaction has occurred.

Consolidated Fixed Charge Coverage Ratio” means, as of any date of determination, the ratio of (a) the sum of (i) Consolidated EBITDA minus (ii) the aggregate amount of all non-financed cash Capital Expenditures, minus (iii) Restricted Payments (other than Restricted Payments permitted pursuant to Sections 9.4(a) and 9.4(d)) paid in cash minus (iv) the aggregate amount of federal, state, local and foreign income taxes paid in cash to (b) Consolidated Fixed Charges, in each case measured on a consolidated basis for the most recently completed Measurement Period.

14


Consolidated Fixed Charges” means, for Holdings and its Subsidiaries for Measurement Period, the sum, without duplication, of (a) Consolidated Interest Expense paid in cash for such period and (b) scheduled principal payments (without giving effect to any reduction thereof as a result of any voluntary prepayment of the Term Loans) made on Consolidated Total Debt during such period.  Notwithstanding the foregoing, for purposes of calculating the Consolidated Fixed Charge Coverage Ratio (I) for the four (4) Fiscal Quarter period ending December 31, 2021, the amounts set forth in clauses (a) and (b) above shall be deemed to be equal to the product of such amounts for the one (1) Fiscal Quarter period ending December 31, 2021 multiplied by four (4); (II) for the four (4) Fiscal Quarter period ending March 31, 2022, the amounts set forth in clauses (a) and (b) above shall be deemed to be equal to the product of such amounts for the two (2) Fiscal Quarter period ending March 31, 2022 multiplied by two (2); and (III) for the four (4) Fiscal Quarter period ending June 30, 2022, the amounts set forth in clauses (a) and (b) above shall be deemed to be equal to the product of such amounts for the three (3) Fiscal Quarter period ending June 30, 2022 multiplied by four thirds (4/3).

Consolidated Interest Expense” means, for any Measurement Period, the sum of (a) all interest, premium payments, debt discount, fees, charges and related expenses in connection with borrowed money (including capitalized interest) or in connection with the deferred purchase price of assets, in each case to the extent treated as interest in accordance with GAAP, (b) all interest paid or payable with respect to discontinued operations and (c) the portion of rent expense under capitalized leases that is treated as interest in accordance with GAAP, in each case, of or by Holdings and its Subsidiaries on a consolidated basis for the most recently completed Measurement Period less any consolidated interest income for such Measurement Period as recorded by Holdings in accordance with GAAP.

Consolidated Net Income” means, at any date of determination, the net income (or loss) of Holdings and its Subsidiaries on a consolidated basis for the most recently completed Measurement Period; provided that Consolidated Net Income shall exclude (a)  the net income of any Subsidiary during such Measurement Period to the extent that the declaration or payment of dividends or similar distributions by such Subsidiary of such income is not permitted by operation of the terms of its organizational documents or any agreement, instrument or Law applicable to such Subsidiary during such Measurement Period, except that Holdings’ equity in any net loss of any such Subsidiary for such Measurement Period shall be included in determining Consolidated Net Income, and (b) any income (or loss) for such Measurement Period of any Person if such Person is not a Subsidiary, except that Holdings’ equity in the net income of any such Person for such Measurement Period shall be included in Consolidated Net Income up to the aggregate amount of cash actually distributed by such Person during such Measurement Period to Holdings or a Subsidiary as a dividend or other distribution (and in the case of a dividend or other distribution to a Subsidiary, such Subsidiary is not precluded from further distributing such amount to Holdings as described in clause (a) of this proviso).

Consolidated Total Debt” means, as of any date, all Indebtedness of Holdings and its Subsidiaries measured on a consolidated basis as of such date, but excluding (a) Indebtedness of the type described in clause (j) of the definition thereof and (b) Indebtedness incurred in connection with the financing of insurance premiums in the Ordinary Course of Business to the extent that the principal amount does not exceed $10,000,000 in any twelve month period.

15


Consolidated Total Net Leverage Ratio” means, as of any date, the ratio of (a) (i) Consolidated Total Debt as of such date, less (ii) Unrestricted Cash of Holdings and its Subsidiaries on a consolidated basis that is available as of such date in excess of $5,000,000 (provided that the maximum amount of Unrestricted Cash permitted to be subtracted from Consolidated Total Debt pursuant to this clause (a)(ii) shall not exceed $50,000,000) to (b) Consolidated EBITDA, for the most recently ended Measurement Period.

Contingent Obligation” means any obligation of a Person arising from a guaranty, indemnity or other assurance of payment or performance of any Indebtedness, lease, dividend or other obligation (“primary obligations”) of another obligor (“primary obligor”) in any manner, whether directly or indirectly, including any obligation of such Person under any (a) guaranty, endorsement, co-making or sale with recourse of an obligation of a primary obligor; (b) obligation to make take-or-pay or similar payments regardless of nonperformance by any other party to an agreement; and (c) arrangement (i) to purchase any primary obligation or security therefor, (ii) to supply funds for the purchase or payment of any primary obligation, (iii) to maintain or assure working capital, equity capital, net worth or solvency of the primary obligor, (iv) to purchase property or services for the purpose of assuring the ability of the primary obligor to perform a primary obligation, or (v) otherwise to assure or hold harmless the holder of any primary obligation against loss in respect thereof.  The amount of any Contingent Obligation shall be deemed to be the stated or determinable amount of the primary obligation (or, if less, the maximum amount for which such Person may be liable under the instrument evidencing the Contingent Obligation) or, if not stated or determinable, the maximum reasonably anticipated liability with respect thereto.

Control” means the possession, directly or indirectly, of the power to direct or cause the direction of the management or policies of a Person, whether through the ability to exercise voting power, by contract or otherwise.  “Controlling” and “Controlled” have meanings correlative thereto.

Controlled Investment Affiliate” means, as to any Person, any other Person which directly or indirectly is in Control of, is Controlled by, or is under common Control with such Person and is organized by such Person (or any Person Controlling such Person) primarily for making equity or debt investments in Holdings or its direct or indirect parent company or other portfolio companies of such Person.

Corresponding Tenor” with respect to any Available Tenor means, as applicable, either a tenor (including overnight) or an interest payment period having approximately the same length (disregarding business day adjustment) as such Available Tenor.

Covered Entity” means (a) Holdings, the Borrower, each of Borrower’s Subsidiaries, all Guarantors and all pledgors of Collateral, and (b) each Person that, directly or indirectly, is in control of a Person described in clause (a) above. For purposes of this definition, control of a Person means the direct or indirect (x) ownership of, or power to vote, 25% or more of the issued and outstanding Equity Interests having ordinary voting power for the election of directors of such Person or other Persons performing similar functions for such Person, or (y) power to direct or cause the direction of the management and policies of such Person whether by ownership of Equity Interests, contract or otherwise.

16


Covered Party” means as is specified in Section 12.14(a).

Daily LIBOR Rate” means, for any day, the rate per annum determined by the Administrative Agent by dividing (x) the Published Rate by (y) a number equal to 1.00 minus the LIBOR Reserve Percentage on such day.  The rate of interest will be adjusted automatically as of each Business Day based on changes in the Daily LIBOR Rate without notice to the Borrower. Notwithstanding the foregoing, if the Daily LIBOR Rate as determined above would be less than zero percent (0.00%), such rate shall be deemed to be zero percent (0.00%) for purposes of this Agreement.

Daily Simple SOFR” means, for any day, SOFR, with the conventions for this rate (which will include a lookback) being established by the Administrative Agent in accordance with the conventions for this rate selected or recommended by the Relevant Governmental Body for determining “Daily Simple SOFR” for business loans; provided, that if the Administrative Agent decides that any such convention is not administratively feasible for the Administrative Agent, then the Administrative Agent may establish another convention in its reasonable discretion.

Debtor Relief Laws” means the Bankruptcy Code of the United States of America, and all other liquidation, conservatorship, bankruptcy, assignment for the benefit of creditors, moratorium, rearrangement, receivership, insolvency, reorganization, or similar debtor relief Laws of the United States or other applicable jurisdictions from time to time in effect.

Defaulting Lender” means, subject to Section 5.15(b), any Lender that (a) has failed to (i) fund all or any portion of its Loans within two (2) Business Days of the date such Loans were required to be funded hereunder unless such Lender notifies the Administrative Agent and the Borrower in writing that such failure is the result of such Lender’s determination that one or more conditions precedent to funding (each of which conditions precedent, together with any applicable default, shall be specifically identified in such writing) has not been satisfied, or (ii) pay to the Administrative Agent, any Issuing Lender, the Swingline Loan Lender or any other Lender any other amount required to be paid by it hereunder (including in respect of its participation in Letters of Credit or Swingline Loans) within two (2) Business Days of the date when due, (b) has notified the Borrower, the Administrative Agent, any Issuing Lender or the Swingline Loan Lender in writing that it does not intend to comply with its funding obligations hereunder, or has made a public statement to that effect (unless such writing or public statement relates to such Lender’s obligation to fund a Loan hereunder and states that such position is based on such Lender’s determination that a condition precedent to funding (which condition precedent, together with any applicable default, shall be specifically identified in such writing or public statement) cannot be satisfied), (c) has failed, within three (3) Business Days after written request by the Administrative Agent or the Borrower, to confirm in writing to the Administrative Agent and the Borrower that it will comply with its prospective funding obligations hereunder (provided that such Lender shall cease to be a Defaulting Lender pursuant to this clause (c) upon receipt of such written confirmation by the Administrative Agent and the Borrower), or (d) has, or has a direct or indirect parent company that has, (i) become the subject of a proceeding under any Debtor Relief Law, (ii) had appointed for it a receiver, custodian, conservator, trustee, administrator, assignee for the benefit of creditors or similar Person charged with reorganization or liquidation of its business or assets, including the Federal Deposit Insurance Corporation or any other state or federal regulatory authority acting in such a capacity, or (iii) become the subject of a Bail-In Action; provided that a

17


Lender shall not be a Defaulting Lender solely by virtue of the ownership or acquisition of any equity interest in that Lender or any direct or indirect parent company thereof by an Official Body so long as such ownership interest does not result in or provide such Lender with immunity from the jurisdiction of courts within the United States or from the enforcement of judgments or writs of attachment on its assets or permit such Lender (or such Official Body) to reject, repudiate, disavow or disaffirm any contracts or agreements made with such Lender.  Any determination by the Administrative Agent that a Lender is a Defaulting Lender under any one or more of clauses (a) through (d) above shall be conclusive and binding absent manifest error, and such Lender shall be deemed to be a Defaulting Lender (subject to Section 5.15(b)) upon delivery of written notice of such determination to the Borrower, the Issuing Lenders, the Swingline Loan Lender and each Lender.

Disqualified Equity Interests” means any Equity Interest in a Person which, by its terms (or by the terms of any security into which it is convertible or for which it is exchangeable), or upon the happening of any event, (a) matures or is mandatorily redeemable (other than in connection with a transaction that would constitute an Event of Default under Section 10.1(i) hereof), pursuant to a sinking fund obligation or otherwise, or is redeemable at the option of the holder thereof (whether described as a “put option” or otherwise), in whole or in part, on or prior to the date that is ninety-one (91) days after the Latest Maturity Date (excluding any provisions requiring redemption upon a “change of control” or asset sale; provided that any such “change of control” or asset sale shall be subject to the prior repayment in full of the Loans and other Obligations that are accrued and payable and the terminations of the Commitments), (b) is convertible into or exchangeable for (i) debt securities or (ii) any Equity Interests referred to in clause (a) above, or (c) is entitled to receive a mandatory dividend or distribution (other than for taxes attributable to the operations of the business) on or prior to the date that is ninety-one (91) days after the Latest Maturity Date; in each case, in respect of the foregoing clauses (a) through (c) in the case of capital stock or other equity interests in Holdings, except to the extent that the terms of such Equity Interest expressly provide that such mandatory redemption, dividend or any other similar right, is exercisable or payable only to the extent that (x) the Obligations shall have been repaid in full or Holdings is expressly permitted to consummate such redemption, dividend or other similar right pursuant to Section 9.4 hereof, and (y) the exercise of such mandatory redemption or other similar right or payment of such dividend is not prohibited by the terms any loan documents to which Holdings or any of its Subsidiaries are from time to time a party. Notwithstanding anything to the contrary in the foregoing, (A) only the portion of the Equity Interests that so mature or are mandatorily redeemable, are so convertible or exchangeable, so accrue dividends, or are so redeemable at the option of the holder thereof prior to the applicable dates set forth above shall be deemed to be Disqualified Equity Interests; and (B) if such Equity Interests are issued to any employee or to any plan for the benefit of employees of Holdings or its Subsidiaries or by any such plan to such employees, such Equity Interests shall not constitute Disqualified Equity Interests solely because they may be required to be repurchased by Holdings in order to satisfy applicable statutory or regulatory obligations or as a result of such employee’s termination, death or disability.

Dollar”, “Dollars”, “U.S. Dollars” and the symbol “$” means, in each case, lawful money of the United States of America.

18


Domestic Subsidiary” means any Subsidiary of the Borrower that is organized under the laws of any political subdivision of the United States.

Drawing Date” means as is specified in Section 2.8(c).

Early Opt-in Electionmeans, if the then-current Benchmark is USD LIBOR, the occurrence of:

(1) a notification by the Administrative Agent to (or the request by the Borrower to the Administrative Agent to notify) each of the other parties hereto that at least five currently outstanding U.S. dollar-denominated syndicated credit facilities at such time contain (as a result of amendment or as originally executed) a SOFR-based rate (including SOFR, a term SOFR or any other rate based upon SOFR) as a benchmark rate (and such syndicated credit facilities are identified in such notice and are publicly available for review), and

(2) the joint election by the Administrative Agent and the Borrower to trigger a fallback from USD LIBOR and the provision by the Administrative Agent of written notice of such election to the Lenders.

Earnout Obligations” means, with respect to any Acquisition, all obligations of Holdings or any Subsidiary to make earnout or other contingency payments which are payable based on the achievement of specified financial results over time or similar contingent payment or arrangement and other indemnity obligations pursuant to the documentation relating to such Acquisition (and including fixed deferred payments related to such Acquisitions).  For purposes of determining the aggregate consideration paid for an Acquisition and for determining the amount of any Earnout Obligations to be included in the definition of Consolidated Total Debt, the amount of Earnout Obligations shall be deemed to be the aggregate liability in respect thereof, as determined in accordance with GAAP.

EEA Financial Institution” means (a) any credit institution or investment firm established in any EEA Member Country which is subject to the supervision of an EEA Resolution Authority, (b) any entity established in an EEA Member Country which is a parent of an institution described in clause (a) of this definition, or (c) any financial institution established in an EEA Member Country which is a subsidiary of an institution described in clause (a) or clause (b) of this definition and is subject to consolidated supervision with its parent.

EEA Member Country” means any of the member states of the European Union, Iceland, Liechtenstein, and Norway.

EEA Resolution Authority” means any public administrative authority or any person entrusted with public administrative authority of any EEA Member Country (including any delegee) having responsibility for the resolution of any EEA Financial Institution.

Effective Date” means the date indicated in a document or agreement to be the date on which such document or agreement becomes effective, or, if there is no such indication, the date of execution of such document or agreement.

19


Effective Federal Funds Rate” means for any day the rate per annum (based on a year of three hundred sixty (360) days and actual days elapsed and rounded upward to the nearest 1/100 of 1%) announced by the Federal Reserve Bank of New York (or any successor) on such day as being the weighted average of the rates on overnight federal funds transactions arranged by federal funds brokers on the previous trading day, as computed and announced by such Federal Reserve Bank (or any successor) in substantially the same manner as such Federal Reserve Bank computes and announces the weighted average it refers to as the “Effective Federal Funds Rate” as of the date of this Agreement; provided that if such Federal Reserve Bank (or its successor) does not announce such rate on any day, the “Effective Federal Funds Rate” for such day shall be the Effective Federal Funds Rate for the last day on which such rate was announced.  Notwithstanding the foregoing, if the Effective Federal Funds Rate as determined under any method above would be less than zero percent (0.00%), such rate shall be deemed to be zero percent (0.00%) for purposes of this Agreement.

Eligible Assignee” means any Person that meets the requirements to be an assignee under Sections 12.8(b)(iv), 12.8(b)(v) and 12.8(b)(vi) (subject to such consents, if any, as may be required under Section 12.8(b)(iii)).

Eligible Contract Participant” means an “eligible contract participant” as defined in the CEA and regulations thereunder.

Eligibility Date” means, with respect to each Loan Party and each Swap, the date on which this Agreement or any other Loan Document becomes effective with respect to such Swap (for the avoidance of doubt, the Eligibility Date shall be the Effective Date of such Swap if this Agreement or any other Loan Document is then in effect with respect to such Loan Party, and otherwise it shall be the Effective Date of this Agreement and/or such other Loan Document(s) to which such Loan Party is a party).

Embargoed Property” means any property (a) in which a Sanctioned Person holds an interest; (b) beneficially owned, directly or indirectly, by a Sanctioned Person; (c) that is due to or from a Sanctioned Person; (d) that is located in a Sanctioned Jurisdiction; or (e) that would otherwise cause any actual or possible violation by the Lenders or Administrative Agent of any applicable Anti-Terrorism Law if the Lenders were to obtain an encumbrance on, lien on, pledge of or security interest in such property, or provide services in consideration of such property.

Environmental Laws” means all applicable federal, state, local, tribal, territorial and foreign Laws (including common law), constitutions, statutes, treaties, regulations, rules, ordinances and codes and any consent decrees, settlement agreements, judgments, orders, directives, policies or programs issued by or entered into with an Official Body pertaining or relating to: (a) pollution or pollution control; (b) protection of human health from exposure to regulated substances; (c) protection of the environment and/or natural resources; (d) employee safety in the workplace; (e) the presence, use, management, generation, manufacture, processing, extraction, treatment, recycling, refining, reclamation, labeling, packaging, sale, transport, storage, collection, distribution, disposal or release or threat of release of regulated substances; (f) the presence of contamination; (g) the protection of endangered or threatened species; and (h) the protection of environmentally sensitive areas.

20


Environmental Liability” means any liability, contingent or otherwise (including any liability for damages, costs of environmental remediation, fines, penalties or indemnities), of the Borrower, any other Loan Party or any of their respective Subsidiaries directly or indirectly resulting from or based upon (a) violation of any Environmental Law, (b) the generation, use, handling, transportation, storage, treatment or disposal of any Hazardous Materials, (c) exposure to any Hazardous Materials, (d) the release or threatened release of any Hazardous Materials into the environment or (e) any contract, agreement or other consensual arrangement pursuant to which liability is assumed or imposed with respect to any of the foregoing.

Equity Interests” means, with respect to any Person, all of the shares of capital stock of (or other ownership or profit interests in) such Person, all of the warrants, options or other rights for the purchase or acquisition from such Person of shares of capital stock of (or other ownership or profit interests in) such Person, all of the securities convertible into or exchangeable for shares of capital stock of (or other ownership or profit interests in) such Person or warrants, rights or options for the purchase or acquisition from such Person of such shares (or such other interests), and all of the other ownership or profit interests in such Person (including partnership, member or trust interests therein), whether voting or nonvoting, and whether or not such shares, warrants, options, rights or other interests are outstanding on any date of determination.

ERISA” means the Employee Retirement Income Security Act of 1974, as the same may be amended or supplemented from time to time, and any successor statute of similar import, and the rules and regulations thereunder, as from time to time in effect.

ERISA Event” means (a) with respect to a Pension Plan, a reportable event under Section 4043 of ERISA as to which event (after taking into account notice waivers provided for in the regulations) there is a duty to give notice to the PBGC; (b) a withdrawal by Borrower or any member of the ERISA Group from a Pension Plan subject to Section 4063 of ERISA during a plan year in which it was a substantial employer (as defined in Section 4001(a)(2) of ERISA) or a cessation of operations that is treated as such a withdrawal under Section 4062(e) of ERISA; (c) a complete or partial withdrawal by Borrower or any member of the ERISA Group from a Multiemployer Plan, notification that a Multiemployer Plan is in reorganization, or occurrence of an event described in Section 4041A(a) of ERISA that results in the termination of a Multiemployer Plan; (d) the filing of a notice of intent to terminate a Pension Plan, the treatment of a Pension Plan amendment as a termination under Section 4041(e) of ERISA, or the commencement of proceedings by the PBGC to terminate a Pension Plan; (e) an event or condition which constitutes grounds under Section 4042 of ERISA for the termination of, or the appointment of a trustee to administer, any Pension Plan or Multiemployer Plan; (f) the determination that any Pension Plan or Multiemployer Plan is considered an at-risk plan or a plan in endangered or critical status within the meaning of Sections 430.431 and 432 of the Code or Sections 303, 304 and 305 of ERISA; or (g) the imposition of any liability under Title IV of ERISA, other than for PBGC premiums due but not delinquent under Section 4007 of ERISA, upon Borrower or any member of the ERISA Group.

ERISA Group” means, at any time, the Borrower and all members of a controlled group of corporations and all trades or businesses (whether or not incorporated) under common control and all other entities which, together with the Borrower, are treated as a single employer under Section 414 of the Code or Section 4001(b)(1) of ERISA.

21


Erroneous Payment” has the meaning assigned to it in Section 11.15(a).

Erroneous Payment Deficiency Assignment” has the meaning assigned to it in Section 11.15(d).

Erroneous Payment Impacted Class” has the meaning assigned to it in Section 11.15(d).

Erroneous Payment Return Deficiency” has the meaning assigned to it in Section 11.15(d).

Erroneous Payment Subrogation Rights” has the meaning assigned to it in Section 11.15(d).

EU Bail-In Legislation Schedule” means the EU Bail-In Legislation Schedule published by the Loan Market Association (or any successor person), as in effect from time to time.

Event of Default” means any of the events described in Section 10.1.

Excluded Accounts” means (a) deposit and/or securities accounts the balance of which consists exclusively of (i) withheld income taxes and federal, state or local employment taxes in such amounts as are required in the reasonable judgment of the Borrower to be paid to the IRS or state or local government agencies within the following two months with respect to employees of any of the Loan Parties or (ii) amounts required to be paid over to an employee benefit plan pursuant to DOL Reg. Sec. 2510.3-102 on behalf of or for the benefit of employees of one or more Loan Parties, (b) all tax accounts (including, without limitation, sales tax accounts), accounts used solely for payroll, accounts maintained solely in trust for the benefit of third parties and fiduciary purposes, escrow accounts, zero balance or swept accounts and employee benefit accounts (including 401(k) accounts and pension fund accounts), in each case, so long as such account is used solely for such purpose, (c) any deposit and/or securities account maintained in a jurisdiction outside of the United States and (d) accounts the balance of which consists exclusively of amounts to be paid to employees in the ordinary course of business.

Excluded Hedge Liability or Liabilities” means, with respect to each Loan Party, each of its Swap Obligations if, and only to the extent that, all or any portion of this Agreement or any other Loan Document that relates to such Swap Obligation is or becomes illegal under the CEA, or any rule, regulation or order of the CFTC, solely by virtue of such Loan Party’s failure to qualify as an Eligible Contract Participant on the Eligibility Date for such Swap. Notwithstanding anything to the contrary contained in the foregoing or in any other provision of this Agreement or any other Loan Document, the foregoing is subject to the following provisos: (a) if a Swap Obligation arises under a master agreement governing more than one Swap, this definition shall apply only to the portion of such Swap Obligation that is attributable to Swaps for which such guaranty or security interest is or becomes illegal under the CEA, or any rule, regulations or order of the CFTC, solely as a result of the failure by such Loan Party for any reason to qualify as an Eligible Contract Participant on the Eligibility Date for such Swap, (b) if a guarantee of a Swap Obligation would cause such obligation to be an Excluded Hedge Liability but the grant of a security interest would not cause such obligation to be an Excluded Hedge Liability, such Swap

22


Obligation shall constitute an Excluded Hedge Liability for purposes of the guaranty but not for purposes of the grant of the security interest, and (c) if there is more than one Loan Party executing this Agreement or the other Loan Documents and a Swap Obligation would be an Excluded Hedge Liability with respect to one or more of such Persons, but not all of them, the definition of Excluded Hedge Liability or Liabilities with respect to each such Person shall only be deemed applicable to (i) the particular Swap Obligations that constitute Excluded Hedge Liabilities with respect to such Person, and (ii) the particular Person with respect to which such Swap Obligations constitute Excluded Hedge Liabilities.

Excluded Property” means (a) any intent-to-use trademark application prior to the filing of a “Statement of Use” or “Amendment to Allege Use” with respect thereto, to the extent, if any, that, and solely during the period, if any, in which, the grant of a security interest therein would impair the validity or enforceability of such intent-to-use trademark application under applicable Law, (b) any rights or interest in any contract, lease, permit, license, charter or license agreement covering real or personal property of any Loan Party if under the terms of such contract, lease, permit, license, charter or license agreement, or applicable law with respect thereto, the grant of a Lien therein is prohibited as a matter of law or under the terms of such contract, lease, permit, license, charter or license agreement and such prohibition has not been waived or the consent of the other party to such contract, lease, permit, license, charter or license agreement has not been obtained (provided, that, the foregoing exclusions of this clause (b) shall in no way be construed (i) to apply to the extent that any described prohibition is unenforceable under Sections 9-406, 9-407, 9-408 or 9-409 of the UCC or other applicable law, (ii) to limit, impair or otherwise affect the Administrative Agent’s continuing security interest in and Liens upon any rights or interests of any Loan Party in or to (A) monies due or to become due under any such contract, lease, permit, license, charter or license agreement (including any accounts) or (B) any proceeds from the sale, license, lease or other disposition of any such contract, lease, permit, license, charter or license agreement, or (iii) apply to the extent that any consent or waiver has been obtained that would permit the Administrative Agent’s Lien notwithstanding the prohibition; and provided, further that unless and until such time as any such consent is obtained, such Loan Party shall hold its interest in such contract, lease, permit, license, charter or license agreement in trust for the Administrative Agent unless the creation of such trust would constitute a breach of such contract, lease, permit, license, charter or license agreement), (c) all owned or leased real property of any Loan Party, (d) any property located outside of the United States that is acquired or held by a Loan Party solely in its capacity as nominee or trustee (or any similar or comparable relationship) and (e) motor vehicles, aircraft, aircraft engines, and other assets subject to certificates of title where perfection may not be obtained solely by the filing of a UCC financing statement.  Notwithstanding anything to the contrary in the foregoing, the security interests granted to the Administrative Agent under the Collateral Documents shall attach immediately to any property or asset of any Loan Party that is otherwise required under the Collateral Documents to be Collateral at such time as such property or asset ceases to meet any of the criteria for “Excluded Property” described in any of the foregoing clauses (a) through (e).

Excluded Subsidiary” means (a) any Foreign Holding Company, (b) any Domestic Subsidiary that is a direct or indirect Subsidiary of a Foreign Subsidiary, (c) any Foreign Subsidiary and (d) in the case of any obligation under any Excluded Hedge Liability, any Subsidiary of the Borrower that is a Non-Qualifying Party with respect thereto.

23


Excluded Taxes” means any of the following Taxes imposed on or with respect to a Recipient or required to be withheld or deducted from a payment to a Recipient, (a) Taxes imposed on or measured by net income (however denominated), franchise Taxes, and branch profits Taxes, in each case, (i) imposed as a result of such Recipient being organized under the laws of, or having its principal office or, in the case of any Lender, its applicable Lending Office located in, the jurisdiction imposing such Tax (or any political subdivision thereof) or (ii) that are Other Connection Taxes, (b) in the case of a Lender, U.S. federal withholding Taxes imposed on amounts payable to or for the account of such Lender with respect to an applicable interest in a Loan or Commitment pursuant to a law in effect on the date on which (i) such Lender acquires such interest in such Loan or Commitment (other than pursuant to an assignment request by the Borrower under Section 5.13) or (ii) such Lender changes its lending office, except in each case to the extent that, pursuant to Section 5.9(g), amounts with respect to such Taxes were payable either to such Lender’s assignor immediately before such Lender became a party hereto or to such Lender immediately before it changed its lending office, (c) Taxes attributable to such Recipient’s failure to comply with Section 5.9(g), and (d) any U.S. federal withholding Taxes imposed under FATCA (except to the extent imposed due to the failure of the Borrower to provide documentation or information to the IRS).

Executive Order No. 13224” means the Executive Order No. 13224 on Terrorist Financing, effective September 24, 2001, as the same has been, or shall hereafter be, renewed, extended, amended or replaced.

Existing Expiration Date” means as is specified in Section 5.16(a).

Existing Letters of Credit” means those letters of credit that exist on the Closing Date and are identified on Schedule 1.1(C).

Existing Term Loan Maturity Date” means as is specified in Section 5.16(a).

Expiration Date” means, with respect to the Revolving Credit Commitments, July 23, 2026, as such date may be extended with respect to certain Lenders’ Revolving Credit Commitments pursuant to Section 5.16(a) or Section 12.1.

Extension Effective Date” means as is specified in Section 5.16(c).

Facilities” means the Revolving Credit Facility and/or the Term Loan Facility, as the context may require.

Facility Termination Date” means the date as of which all of the following shall have occurred: (a) the aggregate Commitments have been terminated, (b) all Obligations have been paid in full (other than (i) contingent indemnification obligations that are not yet due and (ii) obligations and liabilities under any Lender Provided Interest Rate Hedge, any Lender Provided Foreign Currency Hedge and any Other Lender Provided Financial Service Product (other than any such obligations for which written notice has been received by the Administrative Agent that either (x) amounts are currently due and payable under such Lender Provided Interest Rate Hedge, any Lender Provided Foreign Currency Hedge and any Other Lender Provided Financial Service Product, as applicable, or (y) no arrangements reasonably satisfactory to the applicable Cash Management Bank or Hedge Bank have been made)), and (c) all Letters of Credit have terminated

24


or expired (other than Letters of Credit as to which other arrangements with respect thereto reasonably satisfactory to the Administrative Agent (to the extent the Administrative Agent is a party to such arrangements) and each Issuing Lender, including the provision of cash collateral, shall have been made).

FATCA” means Sections 1471 through 1474 of the Code, as of the date of this Agreement (or any amended or successor version that is substantively comparable and not materially more onerous to comply with), any current or future regulations or official interpretations thereof and any agreements entered into pursuant to Section 1471(b)(1) of the Code.

First Amendment” means that certain First Amendment to Credit Agreement dated as of the First Amendment Effective Date by and among the Loan Parties, the Lenders party thereto and the Administrative Agent.

First Amendment Effective Date” means August 20, 2021.

First Tier Foreign Subsidiary” means as is specified in Section 8.8(b).

Fiscal Quarter” means any fiscal quarter of Holdings.

Fiscal Year” means any fiscal year of Holdings.

Floor” means the benchmark rate floor, if any, provided in this Agreement initially (as of the execution of this Agreement, the modification, amendment or renewal of this Agreement or otherwise) with respect to USD LIBOR or, if no floor is specified, zero.

Foreign Currency Hedge” shall mean any foreign exchange transaction, including spot and forward foreign currency purchases and sales, listed or over-the-counter options on foreign currencies, non-deliverable forwards and options, foreign currency swap agreements, currency exchange rate price hedging arrangements, and any other similar transaction providing for the purchase of one currency in exchange for the sale of another currency.

Foreign Currency Hedge Liabilities” means as is specified in the definition of Lender Provided Foreign Currency Hedge.

Foreign Holding Company” means any Subsidiary of the Borrower all or substantially all of the assets of which are comprised of Equity Interests in one or more Foreign Subsidiaries or CFC Debt.

Foreign Lender” means (i) if the Borrower is a U.S. Person, a Lender that is not a U.S. Person, and (ii) if the Borrower is not a U.S. Person, a Lender that is resident or organized under the Laws of a jurisdiction other than that in which the Borrower is resident for tax purposes.

Foreign Subsidiary” means any Subsidiary of the Borrower that is organized under the laws of a jurisdiction other than the United States, a State thereof or the District of Columbia.

25


Fronting Exposure” means, at any time there is a Defaulting Lender, (a) with respect to any Issuing Lender, such Defaulting Lender’s Ratable Share of the outstanding Letter of Credit Obligations with respect to Letters of Credit issued by such Issuing Lender other than Letter of Credit Obligations as to which such Defaulting Lender’s participation obligation has been reallocated to other Lenders or Cash Collateralized in accordance with the terms hereof, and (b) with respect to any Swingline Loan Lender, such Defaulting Lender’s Ratable Share of outstanding Swingline Loans made by such Swingline Loan Lender other than Swingline Loans as to which such Defaulting Lender’s participation obligation has been reallocated to other Lenders.

Fund” means any Person (other than a natural Person) that is (or will be) engaged in making, purchasing, holding or otherwise investing in commercial loans, bonds and similar extensions of credit in the ordinary course of its activities.

Funding Date” means the date on which the conditions precedent set forth in Section 7.2 shall be satisfied and the initial funding hereunder shall have occurred.

GAAP” means generally accepted accounting principles as are in effect from time to time, subject to the provisions of Section 1.3, and applied on a consistent basis both as to classification of items and amounts.

Guarantors” means, collectively, (a) Holdings, (b) each direct or indirect Subsidiary of the Borrower (other than Excluded Subsidiaries), and (c) any other Person that is from time to time party to the Guaranty Agreement or any other agreement pursuant to which it guarantees the Obligations or any portion thereof.

Guaranty” means, with respect to any Person, any obligation of such Person guaranteeing or in effect guaranteeing any liability or obligation of any other Person in any manner, whether directly or indirectly.  The amount of obligations under a Guaranty shall be deemed to be an amount equal to the stated or determinable amount of the related primary obligation, or portion thereof, in respect of which such Guaranty is made or, if not stated or determinable, the maximum reasonably anticipated liability in respect thereof as determined by the Administrative Agent in good faith.

Guaranty Agreement” means the Continuing Agreement of Guaranty and Suretyship, dated as of the Funding Date, executed and delivered by each of the Guarantors in favor of the Administrative Agent for the benefit of the Secured Parties.

Guaranty Joinder” means a joinder by a Person as a Guarantor under the Loan Documents in substantially the form of Exhibit B.

Gun Control Laws” means all present and future federal, state, provincial, municipal, local and foreign laws, rules, regulations, judgments, orders and ordinances, including the Gun Control Act, that in any manner regulate the production, sale, distribution or possession of any firearms, ammunition or related products manufactured, held for sale or sold by the Borrower or a Guarantor.

Hazardous Materials” means all explosive or radioactive substances or wastes and all hazardous or toxic substances, wastes or other pollutants, including petroleum or petroleum

26


distillates, asbestos or asbestos-containing materials, polychlorinated biphenyls, radon gas, infectious or medical wastes and all other substances or wastes of any nature regulated pursuant to any Environmental Law.

Hedge Bank” means any Person that (a) at the time it enters into a Lender Provided Interest Rate Hedge or a Lender Provided Foreign Currency Hedge, is a Lender or an Affiliate of a Lender or (b) at the time it (or its Affiliate) becomes a Lender, is a party to a Lender Provided Interest Rate Hedge or a Lender Provided Foreign Currency Hedge, in each case, in its capacity as a party to such Lender Provided Interest Rate Hedge or Lender Provided Foreign Currency Hedge (even if such Person ceases to be a Lender or such Person’s Affiliate ceased to be a Lender).

Hedge Liabilities” means collectively, the Foreign Currency Hedge Liabilities and the Interest Rate Hedge Liabilities.

Hedge Termination Value” means, in respect of any one or more interest rate hedges, commodity hedges and/or foreign currency hedges, after taking into account the effect of any legally enforceable netting agreement relating to such interest rate hedges, commodity hedges and/or foreign currency hedges, (a) for any date on or after the date such interest rate hedges, commodity hedges and/or foreign currency hedges have been closed out and termination value(s) determined in accordance therewith, such termination value(s), and (b) for any date prior to the date referenced in clause (a), the amount(s) determined as the mark-to-market value(s) for such interest rate hedges, commodity hedges and/or foreign currency hedges, as determined based upon one or more mid-market or other readily available quotations provided by any recognized dealer in such interest rate hedges, commodity hedges and/or foreign currency hedges (which may include an interest rate hedge bank, a commodity hedge bank or foreign currency hedge bank, as applicable).

Holdings” means Cadre Holdings, Inc., a Delaware corporation and the direct parent of the Borrower.

Holdings IPO” means the initial public offering of the common Equity Interests of Holdings to occur after the Funding Date.

Increased Amount Date” means as is specified in Section 5.17(b).

Incremental Cap” means, as of any date of determination, the sum of (a) $75,000,000 plus (b) an amount if, in the case of this clause (b), after giving effect to the incurrence of any such Incremental Loan Commitment and the use of proceeds thereof, the Consolidated Total Net Leverage Ratio after giving effect to the incurrence of such Incremental Loan Commitment on a Pro Forma Basis would not exceed 2.50 to 1.00 (it being understood that, (x) when calculating any ratio in this clause (b), no effect will be given to any simultaneous, or substantially concurrent, establishment or incurrence of any Incremental Loan Commitment permitted under clause (a) above, including the application of the proceeds thereof (without “netting” the cash proceeds of the applicable Incremental Loan Commitment against Consolidated Total Debt) and (y) in the case of any Incremental Revolving Credit Commitment, assuming a full drawing under such Incremental Revolving Credit Commitment) minus (c) the amount of all Incremental Loan Commitments outstanding at such time that were incurred in reliance on the foregoing clause (a).

27


Incremental Lender” means as is specified in Section 5.17(b).

Incremental Loan Commitments” means as is specified in Section 5.17(b).

Incremental Loans” means as is specified in Section 5.17(b).

Incremental Revolving Credit Commitment” means as is specified in Section 5.17(b).

Incremental Revolving Credit Increase” means as is specified in Section 5.17(b).

Incremental Term Loan” means as is specified in Section 5.17(a).

Incremental Term Loan Commitment” means as is specified in Section 5.17(a).

Indebtedness” of any Person means, without dupli­cation (a) all obligations of such Person for borrowed money, (b) all obligations of such Person evidenced by bonds, debentures, notes, loan agreements or other similar instruments, (c) all obligations upon which interest charges are customarily paid, (d) all obligations of such Person in respect of the deferred purchase price of property or services (other than trade payables incurred in the Ordinary Course of Business; provided, that for purposes of Section 10.1(e), trade payables overdue by more than one hundred twenty (120) days shall be included in this definition except to the extent that any of such trade payables are being disputed in good faith and by appropriate measures), including, without limitation, any Earnout Obligations solely to the extent included as a liability on the consolidated balance sheet of Holdings in accordance with GAAP, (e) all obligations of such Person under any conditional sale or other title retention agreement(s) relating to property acquired by such Person, (f) all Capital Lease Obligations of such Person, (g) all obligations, contingent or otherwise, of such Person in respect of letters of credit, acceptances or similar extensions of credit, (h) all obligations of such Person, contingent or otherwise, to purchase, redeem, retire or otherwise acquire for value any Equity Interests of such Person, (i) Off-Balance Sheet Liabilities, (j) the Hedge Termination Value of all Lender Provided Hedge Agreements, (k) all Guaranties of such Person of the type of Indebtedness described in clauses (a) through (j) above, (l) all Indebtedness of a third party secured by any Lien on property owned by such Person, whether or not such Indebtedness has been assumed by such Person, and (m) all Disqualified Equity Interests of such Person.  The Indebtedness of any Person shall include the Indebtedness of any partnership or joint venture in which such Person is a general partner or a joint venturer, except to the extent that the terms of such Indebtedness provide that such Person is not liable therefor. Notwithstanding the foregoing, (x) obligations under Plans and (y) warranty return and product liability reserves in the Ordinary Course of Business shall not constitute Indebtedness.

Indemnified Taxes” means (i) Taxes, other than Excluded Taxes, imposed on or with respect to any payment made by or on account of any obligation of any Loan Party under any Loan Document, and (ii) to the extent not otherwise described in the preceding clause (i), Other Taxes.

Indemnitee” means as is specified in Section 12.3(b).

28


Information” means all information received from the Loan Parties or any of their Subsidiaries relating to the Loan Parties or any of such Subsidiaries or any of their respective businesses, other than any such information that is available to the Administrative Agent, any Lender or any Issuing Lender on a non-confidential basis prior to disclosure by the Loan Parties or any of their Subsidiaries; provided that, in the case of information received from the Loan Parties or any of their Subsidiaries after the date of this Agreement, such information is clearly identified at the time of delivery as confidential.

Insolvency Proceeding” means, with respect to any Person, (a) a case, action or proceeding with respect to such Person (i) before any court or any other Official Body under any bankruptcy, insolvency, reorganization or other similar Law now or hereafter in effect, or (ii) for the appointment of a receiver, liquidator, assignee, custodian, trustee, sequestrator, conservator (or similar official) of any Loan Party or otherwise relating to the liquidation, dissolution, winding-up or relief of such Person, or (b) any general assignment for the benefit of creditors, composition, marshaling of assets for creditors, or other, similar arrangement in respect of such Person’s creditors generally or any substantial portion of its creditors; undertaken under any Law.

Intellectual Property” means all intellectual and similar property of a Person, including inventions, designs, patents, copyrights, trademarks, service marks, trade names, trade secrets, confidential or proprietary information, customer lists, know-how, software and databases; all embodiments or fixations thereof and all related documentation, applications, registrations and franchises; all licenses or other rights to use any of the foregoing; and all books and records relating to the foregoing.

Intellectual Property Claim” means any claim or assertion (whether in writing, by suit or otherwise) that a Loan Party’s or a Subsidiary’s ownership, use, marketing, sale or distribution of any inventory, equipment, Intellectual Property or other property violates another Person’s Intellectual Property.

Interest Period” means the period of time selected by the Borrower in connection with (and to apply to) any election permitted hereunder by the Borrower to have Revolving Credit Loans or Term Loans bear interest under the LIBOR Rate Option.  Subject to the last sentence of this definition, such period shall be one, three or six Months.  Such Interest Period shall commence on the effective date of such LIBOR Rate Option, which shall be (i) the Borrowing Date if the Borrower is requesting new Loans, or (ii) the date of renewal of or conversion to the LIBOR Rate Option if the Borrower is renewing or converting to the LIBOR Rate Option applicable to outstanding Loans.  Notwithstanding the second sentence hereof: (A) any Interest Period which would otherwise end on a date which is not a Business Day shall be extended to the next succeeding Business Day unless such Business Day falls in the next calendar month, in which case such Interest Period shall end on the next preceding Business Day, and (B) the Borrower shall not select, convert to or renew an Interest Period for any portion of the Loans that would end after the Expiration Date.

Interest Rate Hedge” means an interest rate exchange, collar, cap, swap, floor, adjustable strike cap, adjustable strike corridor, cross-currency swap or similar agreements entered into by any Loan Party in order to provide protection to, or minimize the impact upon, such Loan Party of increasing floating rates of interest applicable to Indebtedness.

29


Interest Rate Hedge Liabilities” means as is specified in the definition of Lender Provided Interest Rate Hedge.

Interest Rate Option” means any LIBOR Rate Option or Base Rate Option.

Investment” means, as to any Person, any direct or indirect acquisition or investment by such Person, whether by means of (a) the purchase or other acquisition of Equity Interests of another Person, (b) a loan, advance or capital contribution to, Guaranty or assumption of debt of, or purchase or other acquisition of any other debt or interest in, another Person (including any partnership or joint venture interest in such other Person and any arrangement pursuant to which the investor guarantees Indebtedness of such other Person), or (c) the purchase or other acquisition (in one transaction or a series of transactions) of assets of another Person which constitute all or substantially all of the assets of such Person or of a division, line of business or other business unit of such Person. For purposes of covenant compliance, the amount of any Investment shall be the amount actually invested, without adjustment for subsequent increases or decreases in the value of such Investment.

IRS” means the United States Internal Revenue Service.

ISDA Definitions” means the 2006 ISDA Definitions published by the International Swaps and Derivatives Association, Inc. or any successor thereto, as amended or supplemented from time to time, or any successor definitional booklet for interest rate derivatives published from time to time by the International Swaps and Derivatives Association, Inc. or such successor thereto.

Issuing Lender” means (a) PNC, in its individual capacity as an issuer of Letters of Credit hereunder, (b) Bank of America, N.A., in its individual capacity as an issuer of Letters of Credit hereunder and (c) with respect to the Existing Letters of Credit and the Specified Letters of Credit, Bank of America, N.A., in its capacity as issuer thereof.

Joint Venture” means a corporation, partnership, limited liability company or other entity in which any Person other than the Loan Parties and their Subsidiaries holds, directly or indirectly, an equity interest.

Kanders SAF” means Kanders SAF, LLC, a Delaware limited liability company.

Latest Maturity Date” means, at any time of determination, the latest Expiration Date or Term Loan Maturity Date applicable to any Loan or Commitment hereunder at such time, including the latest maturity date of any Incremental Loan at such time, in each case as extended in accordance with this Agreement from time to time.

Law” or “Laws” means, collectively, all international, foreign, federal, state and local statutes, treaties, rules, guidelines, regulations, ordinances, codes and administrative or judicial precedents or authorities, including the interpretation or administration thereof by any Official Body charged with the enforcement, interpretation or administration thereof, and all applicable administrative orders, directed duties, requests, licenses, authorizations and permits of, and agreements with, any Official Body, in each case whether or not having the force of law.

30


LCA Test Date” means as is specified in Section 1.5.

Lead Arrangers” means, collectively, (a) PNC Capital Markets LLC and (b) BofA Securities, Inc., in their capacities as joint lead arrangers and joint bookrunners.

Lender Joinder Agreement” means a joinder agreement in form and substance reasonably satisfactory to the Administrative Agent delivered in connection with any Incremental Loan Commitments pursuant to Section 5.17.

Lender Provided Foreign Currency Hedge” means a Foreign Currency Hedge which is entered into between any Loan Party and any Hedge Bank that: (a) is documented in a standard International Swaps and Derivatives Association Master Agreement or another reasonable and customary manner, (b) provides for the method of calculating the reimbursable amount of the provider’s credit exposure in a reasonable and customary manner, and (c) is entered into for hedging (rather than speculative) purposes.  The liabilities owing to the Hedge Bank providing any Lender Provided Foreign Currency Hedge (the “Foreign Currency Hedge Liabilities”) by any Loan Party that is party to such Lender Provided Foreign Currency Hedge shall, for purposes of this Agreement and all other Loan Documents be “Obligations” of such Person and of each other Loan Party, be guaranteed obligations under the Guaranty Agreement and secured obligations under any other Loan Document, as applicable, and otherwise treated as Obligations for purposes of the other Loan Documents, except to the extent constituting Excluded Hedge Liabilities of such Person. The Liens securing the Foreign Currency Hedge Liabilities shall be pari passu with the Liens securing all other Obligations under this Agreement and the other Loan Documents, subject to the express provisions of Section 10.3.

Lender Provided Interest Rate Hedge” means an Interest Rate Hedge which is entered into between any Loan Party and any Hedge Bank that: (a) is documented in a standard International Swaps and Derivatives Association Master Agreement or another reasonable and customary manner, (b) provides for the method of calculating the reimbursable amount of the provider’s credit exposure in a reasonable and customary manner, and (c) is entered into for hedging (rather than speculative) purposes.  The liabilities owing to the Hedge Bank providing any Lender Provided Interest Rate Hedge (the “Interest Rate Hedge Liabilities”) by any Loan Party that is party to such Lender Provided Interest Rate Hedge shall, for purposes of this Agreement and all other Loan Documents, be “Obligations” of such Person and of each other Loan Party, be guaranteed obligations under any Guaranty Agreement and secured obligations under any other Loan Document, as applicable, except to the extent constituting Excluded Hedge Liabilities of such Person. The Liens securing the Hedge Liabilities shall be pari passu with the Liens securing all other Obligations under this Agreement and the other Loan Documents, subject to the express provisions of Section 10.3.

Lenders” means the financial institutions named on Schedule 1.1(B) and their respective successors and assigns as permitted hereunder, each of which is referred to herein as a Lender.  For the purpose of any Loan Document which provides for the granting of a security interest or other Lien to the Lenders or to the Administrative Agent for the benefit of the Secured Parties as security for the Obligations, “Lenders” shall include any Affiliate of a Lender to which such Obligation is owed. Unless the context requires otherwise, the term “Lenders” includes the Swingline Loan Lender, but not any Issuing Lender.

31


Lending Office” means, as to the Administrative Agent, any Issuing Lender or any Lender, the office or offices of such Person described as such in such Lender’s Administrative Questionnaire, or such other office or offices as such Person may from time to time notify the Borrower and the Administrative Agent.

Letter of Credit” means as is specified in Section 2.8(a) and the Specified Letters of Credit.  As of the Funding Date, each of the Existing Letters of Credit (to the extent then outstanding) shall constitute, for all purposes of this Agreement and the other Loan Documents, a Letter of Credit issued and outstanding hereunder.

Letter of Credit Borrowing” means as is specified in Section 2.8(c)(iii).

Letter of Credit Fee” means as is specified in Section 2.8(b).

Letter of Credit Obligation” means, as of any date of determination, the aggregate amount available to be drawn under all outstanding Letters of Credit on such date (if any Letter of Credit shall increase in amount automatically in the future, such aggregate amount available to be drawn shall currently give effect to any such future increase) plus the aggregate Reimbursement Obligations and Letter of Credit Borrowings on such date.

Letter of Credit Sublimit” means as is specified in Section 2.8(a)(i).

LIBOR Rate” means, with respect to the Loans comprising any Borrowing Tranche to which the LIBOR Rate Option applies for any Interest Period, the interest rate per annum determined by the Administrative Agent by dividing (the resulting quotient rounded upwards, at the Administrative Agent’s discretion, to the nearest 1/100 of 1%) (a) the rate which appears on the Bloomberg Page BBAM1 (or on such other substitute Bloomberg page that displays rates at which US dollar deposits are offered by leading banks in the London interbank deposit market), or the rate which is quoted by another source selected by the Administrative Agent as an authorized information vendor for the purpose of displaying rates at which US dollar deposits are offered by leading banks in the London interbank deposit market (an “Alternate Source”), at approximately 11:00 a.m., London time, two (2) Business Days prior to the commencement of such Interest Period as the London interbank offered rate for U.S. Dollars for an amount comparable to such Borrowing Tranche and having a borrowing date and a maturity comparable to such Interest Period (or if there shall at any time, for any reason, no longer exist a Bloomberg Page BBAM1 (or any substitute page) or any Alternate Source, a comparable replacement rate determined by the Administrative Agent at such time (which determination shall be conclusive absent manifest error)), by (b) a number equal to 1.00 minus the LIBOR Reserve Percentage.  Notwithstanding the foregoing, if the LIBOR Rate as determined under any method above would be less than zero percent (0.00%), such rate shall be deemed to be zero percent (0.00%) for purposes of this Agreement.

The LIBOR Rate shall be adjusted with respect to any Loan to which the LIBOR Rate Option applies that is outstanding on the effective date of any change in the LIBOR Reserve Percentage as of such effective date.  The Administrative Agent shall give prompt notice to the Borrower of the LIBOR Rate as determined or adjusted in accordance herewith, which determination shall be conclusive absent manifest error.

32


LIBOR Rate Option” means the option of the Borrower to have Loans bear interest at the rate and under the terms specified in Section 4.1(a)(ii) or Section 4.1(c)(ii), as applicable.

LIBOR Reserve Percentage” means as of any day the maximum effective percentage in effect on such day, as prescribed by the Board of Governors of the Federal Reserve System (or any successor) for determining the reserve requirements (including supplemental, marginal and emergency reserve requirements) with respect to eurocurrency funding or in respect of eurocurrency liabilities or any similar category of liabilities for a member bank of the Federal Reserve System in New York City.

License” means any license or agreement under which a Loan Party is authorized to use Intellectual Property in connection with any manufacture, marketing, distribution or disposition of Collateral, any use of property or any other conduct of its business.

Lien” means any mortgage, deed of trust, pledge, lien, security interest, charge or other encumbrance or security arrangement of any nature whatsoever, whether voluntarily or involuntarily given, including any conditional sale or title retention arrangement, and any assignment, deposit arrangement or lease intended as, or having the effect of, security and any filed financing statement or other notice of any of the foregoing (whether or not a lien or other encumbrance is created or exists at the time of the filing).

Limited Condition Transaction” means any Acquisition (or similar Investment) by one or more of the Borrower or any of its Subsidiaries of or in any assets, business or Person permitted by this Agreement whose consummation is not conditioned on the availability of, or on obtaining, third-party financing.

LLC Division” means, in the event the Borrower or a Guarantor is a limited liability company, (a) the division of the Borrower or any such Guarantor into two or more newly formed limited liability companies (whether or not the Borrower or such Guarantor is a surviving entity following any such division) pursuant to Section 18-217 of the Delaware Limited Liability Company Act or any similar provision under any similar act governing limited liability companies organized under the laws of any other State or Commonwealth or of the District of Columbia, or (b) the adoption of a plan contemplating, or the filing of any certificate with any applicable Official Body that results or may result in, any such division.

Loan Documents” means this Agreement, the Administrative Agent’s Letter, the Collateral Documents, the Guaranty Agreement, the Notes, and any other instruments, certificates or documents delivered in connection herewith or therewith.

Loan Parties” means the Borrower and the Guarantors.

Loan Request” means as is specified in Section 2.5(a).

Loans” means, collectively, and Loan means, separately, all Revolving Credit Loans, Swingline Loans and the Term Loans or any Revolving Credit Loan, Swingline Loan or the Term Loan.

33


Material Acquisition” means any Permitted Acquisition involving aggregate consideration (including, without limitation, any Earnout Obligations, non-compete or deferred compensation arrangements (in each case as determined in good faith by the board of directors of Holdings)) in excess of $25,000,000.

Material Adverse Change” means any set of circumstances or events which (a) has a material adverse effect whatsoever upon the validity or enforceability of this Agreement or any other Loan Document, (b) is material and adverse to the business, properties, assets, financial condition, results of operations of the Loan Parties taken as a whole, (c) impairs materially the ability of the Loan Parties taken as a whole to duly and punctually pay or perform any of the Obligations, or (d) impairs materially the ability of the Administrative Agent or any of the Lenders, to the extent permitted, to enforce their legal remedies pursuant to this Agreement or any other Loan Document.

Material Indebtedness” means any Indebtedness (other than the Loans and Letters of Credit) and Hedging Obligations of Holdings or any of its Subsidiaries, individually or in an aggregate committed or outstanding principal amount exceeding $3,000,000.  For purposes of determining the amount of attributed Indebtedness from Hedging Obligations, the “principal amount” of any Hedging Obligations at any time shall be the Net Mark-to-Market Exposure of such Hedging Obligations.

Measurement Period” means, at any date of determination, the most recently completed four (4) Fiscal Quarters of Holdings for which financial statements have been delivered pursuant to Section 8.11 (or, prior to the first delivery thereof after the Funding Date, the most recent Statements).

Minimum Collateral Amount” means, at any time, (a) with respect to Cash Collateral consisting of cash or deposit account balances, an amount equal to 105% of the Fronting Exposure of the Issuing Lenders with respect to Letters of Credit issued and outstanding at such time and (b) otherwise, an amount determined by the Administrative Agent and the Issuing Lenders in their sole discretion.

Month”, with respect to an Interest Period under the LIBOR Rate Option, means the interval between the days in consecutive calendar months numerically corresponding to the first day of such Interest Period.  If any Interest Period begins on a day of a calendar month for which there is no numerically corresponding day in the month in which such Interest Period is to end, the final month of such Interest Period shall be deemed to end on the last Business Day of such final month.

Multiemployer Plan” means any employee pension benefit plan which is a “multiemployer plan” within the meaning of Section 4001(a)(3) of ERISA and to which the Borrower or any member of the ERISA Group is then making or accruing an obligation to make contributions or, within the preceding five (5) plan years, has made or had an obligation to make such contributions, or to which the Borrower or any member of the ERISA Group has any liability (contingent or otherwise).

34


Net Cash Proceeds” means the aggregate cash or Cash Equivalents proceeds received by Holdings or any Subsidiary in respect of any Asset Disposition, Recovery Event or any issuance of Indebtedness or Equity Interests net of (a) direct costs incurred in connection therewith (including legal, accounting and investment banking fees, and sales commissions), (b) taxes paid or payable as a result thereof and (c) in the case of any Asset Disposition or Recovery Event, the amount necessary to retire any Indebtedness secured by a Lien permitted by Section 9.2 (ranking senior to any Lien of the Administrative Agent) on the related property.

Non-Consenting Lender” means any Lender that does not approve any consent, waiver or amendment that (a) requires the approval of all or all affected Lenders in accordance with the terms of Section 12.1 and (b) has been approved by the Required Lenders.

Non-Defaulting Lender” means, at any time, each Lender that is not a Defaulting Lender at such time.

Non-Extending Lender” means as is specified in Section 5.16(b).

Non-Qualifying Party” means any Loan Party that fails for any reason to qualify as an Eligible Contract Participant on the Effective Date of the applicable Swap.

Notes” means collectively, and Note means separately, the promissory notes in the form of Exhibit C evidencing the Revolving Credit Loans, in the form of Exhibit D evidencing the Swingline Loan, and in the form of Exhibit E evidencing the Term Loans.

Notice Date” means as is specified in Section 5.16(b).

Obligation” means any obligation or liability of any of the Loan Parties or other credit support providers specified in the Loan Documents, howsoever created, arising or evidenced, whether direct or indirect, absolute or contingent, now or hereafter existing, or due or to become due, under or in connection with (a) this Agreement, the Notes, the Letters of Credit, the Administrative Agent’s Letter or any other Loan Document whether to the Administrative Agent, any of the Lenders or their Affiliates or other persons provided for under such Loan Documents, (b) any Lender Provided Interest Rate Hedge, (c) any Erroneous Payment Subrogation Rights, (d) any Lender Provided Foreign Currency Hedge, (e) any Other Lender Provided Financial Service Product and (f) Canadian Subsidiary Obligations.  Notwithstanding anything to the contrary contained in the foregoing, the Obligations shall not include any Excluded Hedge Liabilities.

OFAC” means the Office of Foreign Assets Control of the United States Department of the Treasury.

Off-Balance Sheet Liabilities” of any Person means (a) any repurchase obligation or liability of such Person with respect to accounts or notes receivable sold by such Person, (b) any liability of such Person under any sale and leaseback transactions that do not create a liability on the balance sheet of such Person, (c) any Synthetic Lease Obligation or (d) any obligation arising with respect to any other transaction which is the functional equivalent of or takes the place of borrowing but which does not constitute a liability on the balance sheet of such Person.

35


Official Body” means the government of the United States of America or any other nation, or of any political subdivision thereof, whether state or local, and any agency, authority, instrumentality, regulatory body, court, central bank or other entity exercising executive, legislative, judicial, taxing, regulatory or administrative powers or functions of or pertaining to government (including any supra-national bodies such as the European Union or the European Central Bank) and any group or body charged with setting financial accounting or regulatory capital rules or standards (including the Financial Accounting Standards Board, the Bank for International Settlements or the Basel Committee on Banking Supervision or any successor or similar authority to any of the foregoing).

Order” means as is specified in Section 2.8(h).

Ordinary Course of Business” means the ordinary course of business of any Loan Party or Subsidiary, consistent with past practices and undertaken in good faith.

Other Benchmark Rate Election” means, with respect to any Loan denominated in Dollars, if the then-current Benchmark is the LIBOR Rate, the occurrence of: (a) either (x) a request by the Borrower to the Administrative Agent, or (y) notice by the Administrative Agent to the Borrower, that, at the determination of the Borrower or the Administrative Agent, as applicable, Dollar-denominated syndicated credit facilities at such time contain (as a result of amendment or as originally executed), in lieu of a LIBOR Rate-based rate, a term benchmark rate as a benchmark rate, and (b) the Administrative Agent, in its sole discretion, and the Borrower jointly elect to trigger a fallback from the LIBOR Rate and the provision, as applicable, by the Administrative Agent of written notice of such election to the Borrower and the Lenders.

Other Connection Taxes” means, with respect to any Recipient, Taxes imposed as a result of a present or former connection between such Recipient and the jurisdiction imposing such Tax (other than connections arising from such Recipient having executed, delivered, become a party to, performed its obligations under, received payments under, received or perfected a security interest under, engaged in any other transaction pursuant to or enforced any Loan Document, or sold or assigned an interest in any Loan or Loan Document).

Other Lender Provided Financial Service Product” means agreements or other arrangements entered into between any Loan Party and any Cash Management Bank that provides any of the following products or services to any of the Loan Parties: (a) credit cards, (b) credit card processing services, (c) debit cards, (d) purchase cards, (e) ACH transactions, or (f) cash management, including controlled disbursement, overdraft lines, accounts or services.

Other Taxes” means all present or future stamp, court or documentary, intangible, recording, filing or similar Taxes that arise from any payment made under, from the execution, delivery, performance, enforcement or registration of, from the receipt or perfection of a security interest under, or otherwise with respect to, any Loan Document, except any such Taxes that are Other Connection Taxes imposed with respect to an assignment (other than an assignment made pursuant to Section 5.13).

Overnight Bank Funding Rate” means for any day, the rate comprised of both overnight federal funds and overnight eurocurrency borrowings by U.S.-managed banking offices

36


of depository institutions, as such composite rate shall be determined by the Federal Reserve Bank of New York (“NYFRB”), as set forth on its public website from time to time, and as published on the next succeeding Business Day as the overnight bank funding rate by the NYFRB (or by such other recognized electronic source (such as Bloomberg) selected by PNC for the purpose of displaying such rate); provided, that if such day is not a Business Day, the Overnight Bank Funding Rate for such day shall be such rate on the immediately preceding Business Day; provided, further, that if such rate shall at any time, for any reason, no longer exist, a comparable replacement rate determined by PNC at such time (which determination shall be conclusive absent manifest error). If the Overnight Bank Funding Rate determined as above would be less than zero, then such rate shall be deemed to be zero. The rate of interest charged shall be adjusted as of each Business Day based on changes in the Overnight Bank Funding Rate without notice to the Borrower.

Participant” means as is specified in Section 12.8(d).

Participant Register” means as is specified in Section 12.8(d).

Participation Advance” means as is specified in Section 2.8(c)(iii).

Payment Date” means the first day of each calendar quarter after the Funding Date and on the Expiration Date or upon acceleration of the Notes.

Payment Item” means each check, draft or other item of payment payable to a Loan Party, including those constituting proceeds of any Collateral.

PBGC” means the Pension Benefit Guaranty Corporation established pursuant to Subtitle A of Title IV of ERISA or any successor.

Pension Plan” means at any time an “employee pension benefit plan” (as such term is defined in Section 3(2) of ERISA) (including a “multiple employer plan” as described in Sections 4063 and 4064 of ERISA, but not a Multiemployer Plan) which is covered by Title IV of ERISA or is subject to the minimum funding standards under Section 412 or Section 430 of the Code and either (a) is sponsored, maintained or contributed to by any member of the ERISA Group for employees of any member of the ERISA Group, (b) has at any time within the preceding five years been sponsored, maintained or contributed to by any entity which was at such time a member of the ERISA Group for employees of any entity which was at such time a member of the ERISA Group, or in the case of a “multiple employer” or other plan described in Section 4064(a) of ERISA, has made contributions at any time during the immediately preceding five plan years or (c) or to which the Borrower or any member of the ERISA Group may have any liability (contingent or otherwise).

Permitted Acquisition” means an Acquisition (the Person or division, line of business or other business unit of the Person to be acquired in such Acquisition shall be referred to herein as the “Target”), in each case that is a type of business (or assets used in a type of business) permitted to be engaged in by the Borrower and its Subsidiaries pursuant to the terms of this Agreement, in each case so long as:

(a)no Potential Default or Event of Default shall then exist or would exist after giving effect thereto;

37


(b)the Loan Parties shall demonstrate to the reasonable satisfaction of the Administrative Agent that, after giving effect to the Acquisition on a Pro Forma Basis, (i) the Loan Parties are in Pro Forma Compliance and (ii) the Consolidated Total Net Leverage Ratio shall be 0.50 to 1.00 less than the then applicable level specified in Section 9.13, calculated using the same Measurement Period used to determine Pro Forma Compliance;

(c)the Administrative Agent shall be satisfied that as and to the extent required by (and, unless otherwise required by the Administrative Agent by an earlier time no earlier than the consummation of such Acquisition, within the time period set forth in) the Loan Documents, it shall receive, in connection with such Acquisition, a first priority perfected security interest in all real (if applicable) and personal property (including, without limitation, Equity Interests) acquired with respect to the Target and a Guaranty Joinder and it shall have received upon the effectiveness of such Acquisition, all required joinder documentation from the Target and each of its applicable Subsidiaries;

(d)the Administrative Agent and the Lenders shall have received not less than twenty (20) days prior to the consummation of any such Acquisition (i) a description of the material terms of such Acquisition, (ii) audited financial statements (or, if unavailable, management-prepared financial statements) of the Target for its two most recent fiscal years and for any Fiscal Quarters ended within the fiscal year to date, (iii) consolidated projected income statements of Holdings and its Subsidiaries (after giving effect to such Acquisition), and (iv) not less than five (5) Business Days prior to the consummation of any Permitted Acquisition with a purchase price in excess of $10,000,000, a Permitted Acquisition Certificate, executed by an Authorized Officer of the Borrower certifying that such Permitted Acquisition complies with the requirements of this Agreement;

(e)the Target shall have earnings before interest, taxes, depreciation and amortization for the four (4) Fiscal Quarter period prior to the acquisition date, and after giving effect to any pro forma adjustments reasonably acceptable to the Administrative Agent, in an amount greater than $0; and

(f)such Acquisition shall not be a “hostile” Acquisition and shall have been approved by the board of directors (or equivalent) and/or shareholders (or equivalent) of the applicable Loan Party and the Target.

Permitted Acquisition Certificate” means a certificate substantially the form of Exhibit F or any other form approved by the Administrative Agent.

Permitted Contingent Obligations” means Contingent Obligations (a) arising from endorsements of Payment Items for collection or deposit in the Ordinary Course of Business; (b) arising from Hedging Agreements permitted hereunder; (c) incurred in the Ordinary Course of Business with respect to surety, appeal or performance bonds, or other similar obligations (other than letters of credit) and not constituting borrowed money; (d) arising from customary indemnification obligations in favor of purchasers or sellers, as applicable, in connection with

38


Asset Dispositions permitted hereunder or Permitted Acquisitions; (e) arising under the Loan Documents; or (f) in an aggregate amount of $7,500,000 or less at any time

Permitted Investmentsmeans:

(a)direct obligations of the United States of America or any agency or instrumentality thereof or obligations backed by the full faith and credit of the United States of America maturing within one year from the date of acquisition;

(b)commercial paper maturing within two hundred seventy (270) days or less rated not lower than A-1, by Standard & Poor’s or P-1 by Moody’s Investors Service, Inc. on the date of acquisition;

(c)demand deposits, time deposits or certificates of deposit maturing within one year in commercial banks whose obligations are rated A-1, A or the equivalent or better by Standard & Poor’s on the date of acquisition;

(d)money market or mutual funds whose investments are limited to those types of investments described in clauses (a)-(c) above;

(e)repurchase agreements with a term of not more than thirty (30) days for underlying investments of the types described in clauses (a)-(c) above entered into by any Person with a bank or trust company (including, without limitation, any of the Lenders or the Administrative Agent) or recognized securities dealer having capital and surplus in excess of Five-Hundred Million Dollars ($500,000,000), in which such Person shall have a perfected, first-priority security interest (subject to no other Liens) and having, on the date of purchase thereof, a fair market value of at least one-hundred percent (100.0%) of the amount of the applicable repurchase obligations; and

(f)investments made under the Cash Management Agreements or under cash management agreements with any other Lenders.

Permitted Joint Ventures” means joint ventures engaged in any similar line of business as Holdings and its Subsidiaries (or one reasonably ancillary or complementary thereto).

Permitted Liens” means:

(a)Liens for taxes, assessments, or similar charges, incurred in the Ordinary Course of Business and which are not yet due and payable;

(b)pledges or deposits made in the Ordinary Course of Business to secure payment of workmen’s compensation, or to participate in any fund in connection with workmen’s compensation, unemployment insurance, old-age pensions or other social security programs;

(c)(i) Liens of mechanics, materialmen, warehousemen, carriers, or other like Liens, securing obligations incurred in the Ordinary Course of Business that (A) are not yet due and payable or (B) are being Properly Contested and (ii) Liens of landlords securing obligations

39


to pay lease payments that (A) are not yet due and payable or in default or (B) are being Properly Contested;

(d)good-faith pledges or deposits made in the Ordinary Course of Business to secure performance of bids, tenders, contracts (other than for the repayment of borrowed money or as security for Hedge Liabilities or margining related to commodities hedges) or leases, not in excess of the aggregate amount due thereunder, or to secure statutory obligations, or surety, appeal, indemnity, performance or other similar bonds required in the Ordinary Course of Business;

(e)encumbrances consisting of zoning restrictions, easements or other restrictions on the use of real property, none of which materially impairs the use of such property or the value thereof, and none of which is violated in any material respect by existing or proposed structures or land use;

(f)Liens in the Collateral in favor of the Secured Parties;

(g)any Lien existing on the date of this Agreement and described on Schedule 1.1(D) and any replacements, modifications, renewals or extensions thereof; provided that the principal amount secured thereby is not hereafter increased, no additional assets become subject to such Lien, the direct or any contingent obligations with respect thereto is not changed and any renewal or extension of the obligations secured thereby is permitted by Section 9.1(b);

(h)purchase money Liens upon or in any fixed or capital assets to secure the purchase price or the cost of construction or improvement of such fixed or capital assets or to secure Indebtedness incurred solely for the purpose of financing the acquisition, construction or improvement of such fixed or capital assets (including Liens securing any Capital Lease Obligations); provided, that (i) such Lien secures Indebtedness permitted by Section 9.1(c), (ii) such Lien attaches to such asset concurrently or within ninety (90) days after the acquisition, improvement or completion of the construction thereof; (iii) such Lien does not extend to any other asset; and (iv) the Indebtedness secured thereby does not exceed the cost of acquiring, constructing or improving such fixed or capital assets;

(i)statutory Liens (other than Liens for Taxes or imposed under ERISA) arising in the Ordinary Course of Business, but only if (i) payment of the obligations secured thereby is not yet due or is being Properly Contested, and (ii) such Liens do not materially impair the value or use of the property or materially impair operation of the business of any Loan Party or Subsidiary;

(j)Liens incurred or deposits made with respect to any Loan Party or Subsidiary in the Ordinary Course of Business to secure the performance of tenders, bids, leases, contracts (except those relating to borrowed money), statutory obligations and other similar obligations, or arising as a result of progress payments under government contracts, as long as such Liens are at all times junior to the Administrative Agent’s Liens;

(k)Liens securing judgment for the payment of money (or appeal or other surety bond, relating to such judgment) against any Loan Party or Subsidiary, or any property of a Loan Party or Subsidiary, as long as such judgment does not constitute an Event of Default under Section 10.1;

40


(l)normal and customary rights of setoff upon deposits in favor of depository institutions, and Liens of a collecting bank on Payment Items in the course of collection;

(m)licenses, sublicenses, leases or subleases of Intellectual Property granted by the Loan Parties or any of their respective Subsidiaries to the extent such licenses, sublicenses, leases or subleases are permitted by Section 9.6;

(n)Liens securing Indebtedness owing by Foreign Subsidiaries permitted pursuant to Section 9.1(m), Section 9.1(n) or Section 9.1(p) so long as (i) any Loan Party guarantee of such Indebtedness is permitted pursuant to Section 9.1(f) and (ii) such Indebtedness is not secured by the Collateral;

(o)Liens exclusively on the unearned premiums relating to debt incurred in the Ordinary Course of Business in connection with the financing of insurance premiums; provided, that the amount of debt secured by such Liens shall not exceed $10,000,000 in any twelve-month period;

(p)possessory Liens in favor of customs and revenue authorities arising as a matter of law to secure payment of customs duties in connection with the importation of goods in the Ordinary Course of Business;

(q)Liens in favor of any Loan Party and Liens granted by any Subsidiary that is not a Loan Party in favor of any other Subsidiary that is not a Loan Party;

(r)Liens solely on any cash earnest money deposits made by Borrower or any of its Subsidiaries in connection with any letter of intent or purchase agreement with respect to any Permitted Acquisition, any Investment permitted hereunder, any Asset Disposition permitted hereunder or any other transaction permitted hereunder;

(s)other Liens which do not secure Indebtedness for borrowed money or letters of credit and as to which the aggregate amount of the obligations secured thereby does not exceed $500,000;

(t)Leases, subleases or licenses of properties owned, leased or licensed by Holdings or its Subsidiaries, in each case, entered into in the ordinary course of business so long as such leases, subleases and licenses are subordinate in all respects to the Liens granted and evidenced by the Collateral Documents and do not, individually or in the aggregate, (i) interfere in any material respect with the ordinary conduct of the business of Holdings or any of its Subsidiaries, or (ii) materially impair the use (for its intended purposes) or the value of the property subject thereto;

(u)Liens arising from UCC financing statements filings relating to leases or consignment of goods entered into by Holdings and its Subsidiaries in the Ordinary Course of Business and not prohibited by this Agreement or any other Loan Document;

(v)in the case of any non-wholly owned Subsidiary of the Borrower, any put and call arrangements or restrictions on disposition related to its Equity Interests set forth in its

41


organizational documents or any related joint venture or similar agreement so long as such Equity Interests do not constitute Disqualified Equity Interests; and

(w)Liens on cash and Cash Equivalents securing obligations with respect to the Specified Letters of Credit.

For purposes of determining compliance with Section 9.2, (x) a Lien need not be incurred solely by reference to one category of Permitted Liens but may be incurred under any combination of such categories (including in part under one such category and in part under any other such category) and (y) in the event that a Lien (or any portion thereof) meets the criteria of one or more of such categories of Permitted Liens, the Loan Parties, in their sole discretion, may classify or may subsequently reclassify at any time such Lien (or any portion thereof) in any manner that complies with this definition and Section 9.2; provided that all Liens securing the Obligations shall at all times be justified in reliance only on the exception in clause (f) of this definition.

Permitted Pro Forma Adjustments” means, as applied to any Person or business unit, means any adjustment to the actual results of operations of such Person or business unit that is permitted to be recognized in pro forma financial statements prepared in accordance with Regulation S-X of the Securities Act of 1933 or that are otherwise approved by the Administrative Agent or Required Lenders to reflect verifiable and adequately documented severance payments and reductions in, among other items, officer and employee compensation, insurance expenses, interest expense, rental expense and other overhead expense, and other quantifiable expenses which are not anticipated to be incurred on an ongoing basis following consummation of such Specified Transaction and which (x) are identified in documentation reasonably acceptable to the Administrative Agent; provided that, with respect to any Permitted Acquisition, such adjustments are identified in a quality of earnings report from a third-party firm reasonably acceptable to the Administrative Agent, and (y) are reasonably expected to be realized within twelve (12) months of such Specified Transaction as described in reasonable detail on a certificate of an Authorized Officer of Holdings delivered to the Administrative Agent.  Subject to the foregoing, for purposes of calculating compliance with the financial covenants set forth in Sections 9.12 and 9.13, to the extent that during such period any Loan Party shall have consummated a Permitted Acquisition, Consolidated EBITDA shall be calculated with respect to any Person, business, property or asset acquired in a Permitted Acquisition as if such Acquisition had been consummated on the first day of the applicable period, based on historical results accounted for in accordance with GAAP.

Person” means any natural person, corporation, limited liability company, trust, joint venture, association, company, partnership, Official Body or other entity.

Plan” means any employee benefit plan within the meaning of Section 3(3) of ERISA (including a Pension Plan), maintained for employees of the Borrower or any member of the ERISA Group or any such Plan to which the Borrower or any member of the ERISA Group is required to contribute on behalf of any of its employees.

Platform” means Debt Domain, Intralinks, Syndtrak or a substantially similar electronic transmission system.

42


PNC” means PNC Bank, National Association, its successors and assigns.

Potential Default” means any event or condition which with notice or passage of time, or both, would constitute an Event of Default.

Prime Rate” means the interest rate per annum announced from time to time by the Administrative Agent at its Principal Office as its then prime rate, which rate may not be the lowest or most favorable rate then being charged to commercial borrowers or others by the Administrative Agent and may not be tied to any external rate of interest or index. Any change in the Prime Rate shall take effect at the opening of business on the day such change is announced.

Principal Office” means the main banking office of the Administrative Agent in Pittsburgh, Pennsylvania.

Pro Forma Basis” and “Pro Forma Effect” means, for purposes of calculating Consolidated EBITDA for any period during which one or more Specified Transactions occurs, that such Specified Transaction (and all other Specified Transactions that have been consummated during the applicable period) shall be deemed to have occurred as of the first day of the applicable period of measurement and all income statement items (whether positive or negative) attributable to the property or Person disposed of in an Asset Disposition shall be excluded and all income statement items (whether positive or negative) attributable to the property or Person acquired in a Permitted Acquisition shall be included (provided that such income statement items to be included are reflected in financial statements or other financial data reasonably acceptable to the Administrative Agent and based upon reasonable assumptions and calculations which are expected to have a continuous impact).

Pro Forma Compliance” means, with respect to any transaction, that such transaction does not cause, create or result in a Potential Default or Event of Default after giving Pro Forma Effect, based upon the results of operations for the most recently completed Measurement Period to (a) such transaction and (b) all other transactions which are contemplated or required to be given Pro Forma Effect hereunder that have occurred on or after the first day of the relevant Measurement Period.

Properly Contested” means with respect to any obligation of a Loan Party, (a) the obligation is subject to a bona fide dispute regarding amount or the Loan Party’s liability to pay; (b) the obligation is being properly contested in good faith by appropriate proceedings promptly instituted and diligently pursued; (c) appropriate reserves have been established in accordance with GAAP; and (d) non-payment could not cause a Material Adverse Change.

Published Rate” means the rate of interest published each Business Day in The Wall Street Journal “Money Rates” listing under the caption “London Interbank Offered Rates” for a one month period; provided that if no such rate is published therein for any reason, then the Published Rate shall be the rate at which U.S. dollar deposits are offered by leading banks in the London interbank deposit market for a one month period either (a) as published in another publication selected by the Administrative Agent or (b) in an Alternate Source (or if there shall at any time, for any reason, no longer exist any such reference or any Alternate Source, a comparable

43


replacement rate determined by the Administrative Agent at such time (which determination shall be conclusive absent manifest error)).

QFC Credit Support” means as is specified in Section 12.14(a).

Qualified ECP Loan Party” means each Loan Party that on the Eligibility Date is (a) a corporation, partnership, proprietorship, organization, trust, or other entity other than a “commodity pool” as defined in Section 1a(10) of the CEA and CFTC regulations thereunder that has total assets exceeding $10,000,000, or (b) an Eligible Contract Participant that can cause another person to qualify as an Eligible Contract Participant on the Eligibility Date under Section 1a(18)(A)(v)(II) of the CEA by entering into or otherwise providing a “letter of credit or keepwell, support, or other agreement” for purposes of Section 1a(18)(A)(v)(II) of the CEA.

Qualified LTIP Accrual Amounts” means any accrued compensation expense (to the extent such expense is deducted in the calculation of net income) under a Long Term Incentive Plan of any of the Loan Parties or Subsidiaries in respect of awards granted on or prior to the date of the Holdings IPO.

Ratable Share” means:

(a)with respect to a Lender’s obligation to make Revolving Credit Loans, participate in Letters of Credit and other Letter of Credit Obligations, participate in Swingline Loans, and receive payments, interest, and fees related thereto, the proportion that such Lender’s Revolving Credit Commitment bears to the Revolving Credit Commitments of all of the Lenders; provided that if the Revolving Credit Commitments have terminated or expired, the Ratable Shares for purposes of this clause shall be determined based upon the Revolving Credit Commitments most recently in effect, giving effect to any assignments;

(b)with respect to a Lender’s obligation to make Term Loans and receive payments, interest, and fees related thereto, proportion that such Lender’s Term Loan Commitment bears to the Term Loan Commitments of all of the Lenders; provided that if the Term Loans have not yet been funded, the computation in this clause shall be determined based upon the Term Loan Commitments of the Lenders and not the amount of their Term Loans and (y) to receive payments, interest, and fees related to Term Loans, the proportion that such Lender’s Term Loans bears to the Term Loans of all of the Lenders;

(c)with respect to all other matters as to a particular Lender, the percentage obtained by dividing (i) such Lender’s Revolving Credit Commitment plus Term Loan, by (ii) the sum of the aggregate amount of the Revolving Credit Commitments plus Term Loans of all Lenders; provided, however, that (A) if the Revolving Credit Commitments have terminated or expired, the computation in this clause shall be determined based upon the Revolving Credit Commitments most recently in effect, giving effect to any assignments, and not on the current amount of the Revolving Credit Commitments and (B) if the Term Loans have not yet been funded, the computation in this clause shall be determined based upon the Term Loan Commitments and not the current amount of the Term Loans, subject to Section 5.15.

Recipient” means (a) the Administrative Agent, (b) any Lender and (c) any Issuing Lender, as applicable.

44


Recovery Event” means any loss of, damage to or destruction of, or any condemnation or other taking for public use of, any property of Holdings, the Borrower or any Subsidiary.

Reference Time” with respect to any setting of the then-current Benchmark means (1) if such Benchmark is USD LIBOR, 11:00 a.m. (London time) on the day that is two (2) London banking days preceding the date of such setting, and (2) if such Benchmark is not USD LIBOR, the time determined by the Administrative Agent in its reasonable discretion.

Refinancing Conditions” means the following conditions for Refinancing Indebtedness:  (a) it is in an aggregate principal amount that does not exceed the principal amount of the Indebtedness being extended, renewed or refinanced; (b) it has a final maturity no sooner than, a weighted average life no less than, and an interest rate no greater than, the Indebtedness being extended, renewed or refinanced; (c) it is subordinated to the Obligations at least to the same extent as the Indebtedness being extended, renewed or refinanced (if such Indebtedness was subordinated); (d) the representations, covenants and defaults applicable to it are no less favorable to Borrower, taken as a whole, than those applicable to the Indebtedness being extended, renewed or refinanced, taken as a whole; (e) if such Indebtedness being refinanced was secured by a Lien, no additional Lien beyond such Lien is granted to secure it; (f) no additional Person is obligated on such Indebtedness; and (g) upon giving effect to it, no Event of Default exists. The definition of Refinancing Conditions is subject to the terms and conditions set forth in the last paragraph of Section 9.1.

Refinancing Indebtedness” means Indebtedness that is the result of an extension, renewal or refinancing of Indebtedness permitted under Sections 9.1(b), 9.1(c) or 9.1(e)(iv).

Reimbursement Obligation” means as is specified in Section 2.8(c).

Related Parties” means, with respect to any Person, such Person’s Affiliates and the partners, directors, officers, employees, agents and advisors of such Person and of such Person’s Affiliates.

Relevant Governmental Body” means the Federal Reserve Board or the Federal Reserve Bank of New York, or a committee officially endorsed or convened by the Federal Reserve Board or the Federal Reserve Bank of New York, or any successor thereto.

Relief Proceeding” means any proceeding seeking a decree or order for relief in respect of any Loan Party or Subsidiary of a Loan Party in a voluntary or involuntary case under any applicable bankruptcy, insolvency, reorganization or other similar law now or hereafter in effect, or for the appointment of a receiver, liquidator, assignee, custodian, trustee, sequestrator, conservator (or similar official) of any Loan Party or Subsidiary of a Loan Party for any substantial part of its property, or for the winding-up or liquidation of its affairs, or an assignment for the benefit of its creditors.

Removal Effective Date” means as is specified in Section 11.6(b).

Reportable Compliance Event” means that: (a) any Covered Entity becomes a Sanctioned Person, or is charged by indictment, criminal complaint, or similar charging

45


instrument, arraigned, custodially detained, penalized or the subject of an assessment for a penalty, or enters into a settlement with an Official Body in connection with any sanctions or other Anti-Terrorism Law or Anti-Corruption law, or any predicate crime to any Anti-Terrorism Law or Anti-Corruption Law, or has knowledge of facts or circumstances to the effect that it is reasonably likely that any aspect of its operations represents a violation of any Anti-Terrorism Law or Anti-Corruption Law; (b) any Covered Entity engages in a transaction that has caused or may cause the Lenders or Administrative Agent to be in violation of any Anti-Terrorism Laws, including a Covered Entity’s use of any proceeds of the Facilities to fund any operations in, finance any investments or activities in, or, make any payments to, directly or indirectly, a Sanctioned Person or Sanctioned Jurisdiction; or (c) any Collateral becomes Embargoed Property.

Required Class Lenders” means, at any time with respect to any Class of Loans or Commitments, at least two (2) unaffiliated Lenders (unless there is only one (1) Lender, in which case such Lender) having (i) with respect to the Revolving Credit Facility, more that 50% of the aggregate amount of the Revolving Credit Commitments of the Lenders (excluding any Defaulting Lender) or, after the termination of the Revolving Credit Commitments, the outstanding Revolving Credit Loans and Ratable Share of Letter of Credit Obligations of the Lenders (excluding any Defaulting Lender) and (ii) with respect to the Term Loan Facility, more that 50% of the aggregate outstanding amount of any Term Loans.

Required Lenders” means at least two (2) unaffiliated Lenders (unless there is only one (1) Lender, in which case such Lender) (other than any Defaulting Lender) having more than 50% of the sum of (i) the aggregate amount of the Revolving Credit Commitments of the Lenders (excluding any Defaulting Lender) or, after the termination of the Revolving Credit Commitments, the outstanding Revolving Credit Loans and Ratable Share of Letter of Credit Obligations of the Lenders (excluding any Defaulting Lender), and (ii) the aggregate outstanding amount of any Term Loans.

Required Share” means as is specified in Section 5.11.

Resignation Effective Date” means as is specified in Section 11.6(a).

Resolution Authority” means an EEA Resolution Authority or, with respect to any UK Financial Institution, a UK Resolution Authority.

Restricted” means, when referring to cash or Cash Equivalents of Holdings or any of its Subsidiaries, that such cash or Cash Equivalents (a) appears (or would be required to appear) as “restricted” on a consolidated balance sheet of Holdings or of any such Subsidiary (unless such appearance is related to the Loan Documents or Liens created thereunder) as determined in accordance with GAAP or (b) are subject to any Lien in favor of any Person other than Administrative Agent for the benefit of the holders of the Obligations (but excluding amounts serving as cash collateral for Letters of Credit) other than bankers’ liens and rights of setoff.

Restricted Payment” means any dividend or other distribution (whether in cash, securities or other property) with respect to any Equity Interests in Holdings or any Subsidiary, or any payment (whether in cash, securities or other property), including any sinking fund or similar deposit, on account of the purchase, redemption, retirement, acquisition, cancellation or

46


termination of any such Equity Interests in Holdings or any option, warrant or other right to acquire any such Equity Interests in Holdings.

Revolving Credit Commitment” means, as to any Lender at any time, the amount initially specified opposite its name on Schedule 1.1(B) in the column labeled “Amount of Commitment for Revolving Credit Loans,” as such Commitment is thereafter assigned or modified and Revolving Credit Commitments means the aggregate Revolving Credit Commitments of all of the Lenders.  On the Closing Date, the aggregate amount of the Revolving Credit Commitments is $100,000,000.

Revolving Credit Facility” means the revolving loan facility provided pursuant to Article 2.

Revolving Credit Loans” means, collectively, and Revolving Credit Loan means, separately, all Revolving Credit Loans or any Revolving Credit Loan made by the Lenders or one of the Lenders to the Borrower pursuant to Section 2.1 or Section 2.8(c).

Revolving Facility Usage” means at any time the sum of the outstanding Revolving Credit Loans, the outstanding Swingline Loans, and the Letter of Credit Obligations.

Royalties” means all royalties, fees, expense reimbursement and other amounts payable by a Loan Party under a License.

Sanctioned Person” means (a) a Person that is the subject of sanctions administered by OFAC or the U.S. Department of State (“State”), including by virtue of being (i) named on OFAC’s list of “Specially Designated Nationals and Blocked Persons”; (ii) organized under the laws of, ordinarily resident in, or physically located in a Sanctioned Jurisdiction; (iii) owned or controlled 50% or more in the aggregate, by one or more Persons that are the subject of sanctions administered by OFAC; (b) a Person that is the subject of sanctions maintained by the European Union (“E.U.”), including by virtue of being named on the E.U.’s “Consolidated list of persons, groups and entities subject to E.U. financial sanctions” or other, similar lists; (c) a Person that is the subject of sanctions maintained by the United Kingdom (“U.K.”), including by virtue of being named on the “Consolidated List Of Financial Sanctions Targets in the U.K.” or other, similar lists; or (d) a Person that is the subject of sanctions imposed by any Official Body of a jurisdiction whose laws apply to this Agreement.

Sanctioned Jurisdiction” means any country, territory, or region that is the subject of sanctions administered by OFAC.

Secondary Term SOFR Conversion Date” means as is specified in Section 4.4(d)(vii).

Security Agreement” means the Security and Pledge Agreement, dated as of the Funding Date, executed and delivered by each of the Loan Parties to the Administrative Agent for the benefit of the Secured Parties.

Secured Parties” means, collectively, the Administrative Agent, the Lenders, the Issuing Lenders, the Cash Management Banks, the Hedge Banks, the Canadian Obligation

47


Providers, each co-agent or sub-agent appointed by the Administrative Agent from time to time pursuant to Section 11.5, and the other Persons the Obligations owing to which are or are purported to be secured by the Collateral under the terms of the Collateral Documents.

Settlement Date” means the Business Day on which the Administrative Agent elects to effect settlement pursuant Section 5.11.

SOFR” means, with respect to any Business Day, a rate per annum equal to the secured overnight financing rate for such Business Day published by the SOFR Administrator on the SOFR Administrator’s Website on the immediately succeeding Business Day.

SOFR Administrator” means the Federal Reserve Bank of New York (or a successor administrator of the secured overnight financing rate).

SOFR Administrator’s Website” means the website of the Federal Reserve Bank of New York, currently at http://www.newyorkfed.org, or any successor source for the secured overnight financing rate identified as such by the SOFR Administrator from time to time.

Solvent” means, with respect to any Person on any date of determination, taking into account any right of reimbursement, contribution or similar right available to such Person from other Persons, that on such date (a) the fair value of the property of such Person is greater than the total amount of liabilities, including contingent liabilities, of such Person, (b) the present fair saleable value of the assets of such Person is not less than the amount that will be required to pay the probable liability of such Person on its debts as they become absolute and matured, (c) such Person is able to realize upon its assets and pay its debts and other liabilities, contingent obligations and other commitments as they mature in the normal course of business, (d) such Person does not intend to, and does not believe that it will, incur debts or liabilities beyond such Person’s ability to pay as such debts and liabilities mature, and (e) such Person is not engaged in business or a transaction, and is not about to engage in business or a transaction, for which such Person’s property would constitute unreasonably small capital after giving due consideration to the prevailing practice in the industry in which such Person is engaged.  In computing the amount of contingent liabilities at any time, it is intended that such liabilities will be computed at the amount which, in light of all the facts and circumstances existing at such time, represents the amount that can reasonably be expected to become an actual or matured liability. “Solvency” has a corresponding meaning.

Special Distribution” means a one-time distribution on or within ten (10) Business Days after the date of the consummation of the Holdings IPO by Holdings to the holders of its Equity Interests in an aggregate amount not to exceed fifty percent (50%) of the Net Cash Proceeds of the Holdings IPO; provided that such distribution may exceed fifty percent (50%) of the Net Cash Proceeds of the Holdings IPO so long as (a) the Borrower shall have made a $50,000,000 mandatory prepayment pursuant to the terms of Section 5.3(b) and (b) the aggregate amount of such distribution does not exceed an amount equal to the Net Cash Proceeds of the Holdings IPO minus the $50,000,000 mandatory prepayment made pursuant to the terms of Section 5.3(b).

Specified Event of Default” means an Event of Default arising under Sections 10.1(a), (c) (solely with respect to the failure to comply with Sections 9.12 or 9.13) or (j) hereof.

48


Specified Letters of Credit” means each of (i) that certain standby letter of credit with a face amount of $82,308.42 issued by Bank of America, N.A. in favor of Tesorería de la Federación and (ii) that certain standby letter of credit with a face amount of $371,748.05 issued by Bank of America, N.A. in favor of Tesorería de la Federación.

Specified Representations” means in connection with a Limited Condition Transaction, (a) the representations and warranties made by or on behalf of the target of such Limited Condition Transaction, its subsidiaries or their respective businesses in the applicable acquisition agreement which are material to the interest of the Lenders, but only to the extent that the applicable Loan Party or Subsidiary has the right to terminate its obligations under such acquisition agreement or to decline to consummate such Limited Condition Transaction as a result of a breach of such representations and warranties, and (b) the representations and warranties of the Loan Parties set forth in Section 6.1(a)(i)-6.1(a)(iv), Section 6.4 (with respect to the entering into, borrowing under, guaranteeing under, and performance of the Loan Documents and the granting of Liens in the Collateral), Section 6.2 (solely with respect to the last sentence thereof), Section 6.8, Section 6.12, Section 6.16, Section 6.17, Section 6.18, and Section 6.22.

Specified Transactions” means (a) any permitted Investment, (b) any Permitted Acquisition, (c) any sale, transfer or other disposition of assets or property or a sale of a business unit, line of business or division of all or substantially all of the assets of, or customer lists of, Holdings or a Subsidiary, (d) any capital expenditure and (e) any merger or other business combination.

Standard & Poor’s” means Standard & Poor’s Ratings Services, a division of The McGraw-Hill Companies, Inc.

Standby Letter of Credit” means a Letter of Credit issued to support obligations of one or more of the Loan Parties, contingent or otherwise, which finance the working capital and business needs of the Loan Parties incurred in the Ordinary Course of Business.

Statements” means as is specified in Section 6.6(a).

Subordinated Indebtedness” means Indebtedness incurred by any Loan Party or Subsidiary that is expressly subordinate and junior in right of payment to the payment in full of all Obligations, and is on terms (including maturity, interest, fees, repayment, covenants and subordination) reasonably satisfactory to Administrative Agent and the Required Lenders.

Subsidiary”, of any Person, at any time, means any corporation, trust, partnership, limited liability company or other business entity (a) of which more than 50% of the outstanding voting securities or other interests normally entitled to vote for the election of one or more directors or trustees (regardless of any contingency which does or may suspend or dilute the voting rights) is at such time owned directly or indirectly by such Person or one or more of such Person’s Subsidiaries, or (b)  which is controlled or capable of being controlled by such Person or one or more of such Person’s Subsidiaries.

Swap” means any “swap” as defined in Section 1a(47) of the CEA and regulations thereunder, other than (a) a swap entered into, or subject to the rules of, a board of trade designated

49


as a contract market under Section 5 of the CEA, or  (b) a commodity option entered into pursuant to CFTC Regulation 32.3(a).

Swap Obligation” means any obligation to pay or perform under any agreement, contract or transaction that constitutes a Swap which is also a Lender Provided Interest Rate Hedge or a Lender Provided Foreign Currency Hedge.

Swingline Loan Commitment” means PNC’s commitment to make Swingline Loans to the Borrower pursuant to Section 2.1(b) hereof in an aggregate principal amount up to $10,000,000.

Swingline Loan Lender” means PNC, in its capacity as a lender of Swingline Loans.

Swingline Loan Note” means the Swingline Loan Note of the Borrower in the form of Exhibit D evidencing the Swingline Loans, together with all amendments, extensions, renewals, replacements, refinancing or refunding thereof in whole or in part.

Swingline Loan Request” means a request for Swingline Loans made in accordance with Section 2.5(b) hereof.

Swingline Loans” means, collectively, and Swingline Loan means, separately, all Swingline Loans or any Swingline Loan made by PNC to the Borrower pursuant to Section 2.1(b) hereof.

Synthetic Lease” means a lease transaction under which the parties intend that (i) the lease will be treated as an “operating lease” by the lessee pursuant to Accounting Standards Codification Sections 840-10 and 840-20 and (ii) the lessee will be entitled to various tax and other benefits ordinarily available to owners (as opposed to lessees) of like property.

Synthetic Lease Obligations” means, with respect to any Person, the sum of (i) all remaining rental obligations of such Person as lessee under Synthetic Leases which are attributable to principal and, without duplication, (ii) all rental and purchase price payment obligations of such Person under such Synthetic Leases assuming such Person exercises the option to purchase the lease property at the end of the lease term.

Target” means as is specified in the definition of Permitted Acquisition.

Taxes” means all present or future taxes, levies, imposts, duties, deductions, withholdings (including backup withholding), assessments, fees or other charges imposed by any Official Body, including any interest, additions to tax or penalties applicable thereto.

Term Lender” means a Lender holding a Term Loan.

Term Loan” means as is specified in Section 3.1; “Term Loans” means, collectively, all of the Term Loans.

50


Term Loan Commitment” means, as to any Lender at any time, the amount initially specified opposite its name on Schedule 1.1(B) in the column labeled “Amount of Commitment for Term Loans,” as such Commitment is thereafter assigned or modified and Term Loan Commitments means the aggregate Term Loan Commitments of all of the Lenders.  The aggregate principal amount of all Lenders’ Term Loan Commitments as of the First Amendment Effective Date is $200,000,000.

Term Loan Facility” means the term loan facility provided pursuant to Article 3.

Term Loan Maturity Date” means (a) with respect to the initial Term Loans, July 23, 2026, and (b) with respect to any Incremental Term Loans, the date set forth in the relevant Lender Joinder Agreement with respect to such Incremental Term Loans, in each case as such date may be extended with respect to certain Lenders’ Term Loans pursuant to Section 5.16(a) or Section 12.1.

Term SOFR” means, for the applicable Corresponding Tenor as of the applicable Reference Time, the forward-looking term rate based on SOFR that has been selected or recommended by the Relevant Governmental Body.

Term SOFR Notice” means a notification by the Administrative Agent to the Lenders and the Borrower of the occurrence of a Term SOFR Transition Event.

Term SOFR Transition Event” means the determination by the Administrative Agent that (1) Term SOFR has been recommended for use by the Relevant Governmental Body, and is determinable for each Available Tenor, (2) the administration of Term SOFR is administratively feasible for the Administrative Agent and (3) a Benchmark Transition Event or an Early Opt-in Election, as applicable, (and, for the avoidance of doubt, not in the case of an Other Benchmark Rate Election) has previously occurred resulting in a Benchmark Replacement in accordance with Section 4.4(d) that is not Term SOFR.

Transactions” means (a) the refinancing of the Loan Parties existing Indebtedness, (b) the funding of the Loans on the Funding Date and the consummation of the other transactions contemplated by this Agreement, (c) the consummation of any other transactions in connection with the foregoing on the Funding Date and (d) the payment of the fees and expenses incurred in connection with any of the foregoing.

UCP” means as is specified in Section 12.11(a).

UK Financial Institution” means any BRRD Undertaking (as such term is defined under the PRA Rulebook (as amended form time to time) promulgated by the United Kingdom Prudential Regulation Authority) or any person falling within IFPRU 11.6 of the FCA Handbook (as amended from time to time) promulgated by the United Kingdom Financial Conduct Authority, which includes certain credit institutions and investment firms, and certain affiliates of such credit institutions or investment firms.

UK Resolution Authority” means the Bank of England or any other public administrative authority having responsibility for the resolution of any UK Financial Institution.

51


Unadjusted Benchmark Replacement” means the applicable Benchmark Replacement excluding the related Benchmark Replacement Adjustment.

Unrestricted Cash” means, at any time, cash and Cash Equivalents maintained in deposit accounts in the United States that are not Restricted at such time.

USA PATRIOT Act” means the Uniting and Strengthening America by Providing Appropriate Tools Required to Intercept and Obstruct Terrorism Act of 2001, Public Law 107-56, as the same has been, or shall hereafter be, renewed, extended, amended or replaced.

U.S. Borrower” means any Borrower that is a U.S. Person.

USD LIBOR” means the London interbank offered rate for U.S. dollars.

U.S. Person” means any Person that is a “United States Person” as defined in Section 7701(a)(30) of the Code.

U.S. Special Resolution Regime” means as is specified in Section 12.14.

U.S. Tax Compliance Certificate” means as is specified in Section 5.9(g)(ii)(2)(III).

Withholding Agent” means any Loan Party and the Administrative Agent.

Write-down and Conversion Powers” means, (a) with respect to any EEA Resolution Authority, the write-down and conversion powers of such EEA Resolution Authority from time to time under the Bail-In Legislation for the applicable EEA Member Country, which write-down and conversion powers are described in the EU Bail-In Legislation Schedule, and (b) with respect to the United Kingdom, any powers of the applicable Resolution Authority under the Bail-In Legislation to cancel, reduce, modify or change the form of a liability of any UK Financial Institution or any contract or instrument under which that liability arises, to convert all or part of that liability into shares, securities or obligations of that person or any other person, to provide that any such contract or instrument is to have effect as if a right had been exercised under it or to suspend any obligation in respect of that liability or any of the powers under that Bail-In Legislation that are related to or ancillary to any of those powers.

1.2Construction.  Unless the context of this Agreement otherwise clearly requires, the following rules of construction shall apply to this Agreement and each of the other Loan Documents: (a) references to the plural include the singular, the plural, the part and the whole and the words “include,” “includes” and “including” shall be deemed to be followed by the phrase “without limitation”; (b) the word “will” shall be construed to have the same meaning and effect as the word “shall”; (c) the words “hereof,” “herein,” “hereunder,” “hereto” and similar terms in this Agreement or any other Loan Document refer to this Agreement or such other Loan Document as a whole; (d) article, section, subsection, clause, schedule and exhibit references are to this Agreement or other Loan Document, as the case may be, unless otherwise specified; (e) reference to any Person includes such Person’s successors and assigns; (f) reference to this Agreement or any other Loan Document, means this Agreement or such other Loan Document, together with the schedules and exhibits hereto or thereto, as amended, modified, replaced, substituted for,

52


superseded or restated from time to time (subject to any restrictions thereon specified in this Agreement or the other applicable Loan Document); (g) relative to the determination of any period of time, “from” means “from and including,” “to” means “to but excluding,” and “through” means “through and including”; (h) any reference to any law or regulation herein shall, unless otherwise specified, refer to such law or regulation as amended, modified or supplemented from time to time (i) the words “asset” and “property” shall be construed to have the same meaning and effect and to refer to any and all tangible and intangible assets and properties, including cash, securities, accounts and contract rights; (j) whenever the context may require, any pronoun shall include the corresponding masculine, feminine and neuter forms; (k) section headings herein and in each other Loan Document are included for convenience and shall not affect the interpretation of this Agreement or such Loan Document, and (l) unless otherwise specified, all references herein to times of day shall constitute references to Eastern Time.

1.3Accounting Principles; Changes in GAAP.  Except as otherwise provided in this Agreement, all computations and determinations as to accounting or financial matters and all financial statements to be delivered pursuant to this Agreement shall be made and prepared in accordance with GAAP (including principles of consolidation where appropriate), and all accounting or financial terms shall have the meanings ascribed to such terms by GAAP as in effect on the Closing Date applied on a basis consistent with those used in preparing the Statements referred to in Section 6.6(a).  Notwithstanding the foregoing, if at any time any change in GAAP (including the adoption of IFRS) would affect the computation of any financial ratio or requirement set forth in any Loan Document, and either the Borrower or the Required Lenders shall so request, the Administrative Agent, the Lenders and the Borrower shall negotiate in good faith to amend such ratio or requirement to preserve the original intent thereof in light of such change in GAAP (subject to the approval of the Required Lenders); provided that, until so amended, (a) such ratio or requirement shall continue to be computed in accordance with GAAP prior to such change therein and (b) the Borrower shall provide to the Administrative Agent and the Lenders financial statements and other documents required under this Agreement or as reasonably requested hereunder setting forth a reconciliation between calculations of such ratio or requirement made before and after giving effect to such change in GAAP.  Notwithstanding anything to the contrary in this Agreement or any other Loan Document, for all purposes of this Agreement and the other Loan Documents, including negative covenants, financial covenants and component definitions, GAAP will be deemed to treat operating leases and Capital Lease Obligations in a manner consistent with the treatment under GAAP as in effect immediately prior to the issuance by the Financial Accounting Standards Board on February 25, 2016 of Accounting Standards Update No. 2016-02.

1.4LIBOR Notification. Section 4.4(d) of this Agreement provides a mechanism for determining an alternative rate of interest in the event that the London interbank offered rate is no longer available or in certain other circumstances. The Administrative Agent does not warrant or accept any responsibility for and shall not have any liability with respect to, the administration, submission or any other matter related to the London interbank offered rate or other rates in the definition of “LIBOR Rate” or with respect to any alternative or successor rate thereto, or replacement rate therefor.

1.5Limited Condition Transactions.  For purposes of determining compliance on a Pro Forma Basis with any Consolidated Total Net Leverage Ratio or any other basket based on

53


Consolidated EBITDA or total assets, or whether a Potential Default or Event of Default has occurred and is continuing, in each case in connection with the consummation of a Limited Condition Transaction, the date of determination shall, at the option of the Borrower, be the time the definitive agreements for such Limited Condition Transaction are entered into (the “LCA Test Date”) after giving effect to such Limited Condition Transaction on a Pro Forma Basis (provided that notwithstanding the foregoing, in all cases no Specified Event of Default shall have occurred and be continuing after giving effect to such Acquisition) and the other transactions to be entered into in connection therewith (including any incurrence of Indebtedness and the use of proceeds thereof) as if they occurred at the beginning of the most recently completed Measurement Period then ended prior to the LCA Test Date, and, for the avoidance of doubt, if any of such ratios or amounts are exceeded as a result of fluctuations in such ratio or amount including due to fluctuations in Consolidated EBITDA of Holdings or the person subject to such acquisition, at or prior to the consummation of the relevant Limited Condition Transaction, such ratios will not be deemed to have been exceeded as a result of such fluctuations solely for purposes of determining whether the relevant Limited Condition Transaction is permitted to be consummated; provided that if the Borrower elects to have such determinations occur at the time of entry into such definitive agreement, the Limited Condition Transaction and the Incremental Term Loan to be incurred (and any associated Lien) and the use of proceeds thereof (and the consummation of the applicable Acquisition) shall be deemed incurred and/or applied at the time of such election (until such time as the Incremental Term Loan is actually incurred or the applicable acquisition agreement is terminated without actually consummating the applicable Acquisition) and outstanding thereafter for purposes of determining compliance on a Pro Forma Basis with any applicable Consolidated Total Net Leverage Ratio or any other financial covenant or ratio basket or calculation of total assets, as the case may be (it being understood and agreed that with respect to any such ratio test or basket (even if unrelated to determining whether such Acquisition is a Permitted Acquisition), the Borrower shall demonstrate compliance with the applicable test both after giving effect to the applicable Limited Condition Transaction and assuming that such transaction had not occurred).  Notwithstanding the foregoing, it is understood and agreed that (a) in the event the consummation of any such Limited Condition Transaction shall not have occurred on or prior to the date that is one hundred eighty (180) days following the signing of the definitive agreement therefore, such transaction shall no longer constitute a Limited Condition Transaction for any purpose hereunder and (b) in no event will any Incremental Revolving Credit Commitment be subject to the Limited Condition Transaction provisions of this Section 1.5 and Section 5.17.

ARTICLE 2

REVOLVING CREDIT AND SWINGLINE LOAN FACILITIES

2.1Revolving Credit Commitments.

(a)Revolving Credit Loans.  Subject to the terms and conditions hereof and relying upon the representations and warranties herein specified, each Lender severally agrees to make Revolving Credit Loans to the Borrower in Dollars at any time or from time to time on or after the Funding Date to the Expiration Date; provided that after giving effect to each such Loan (i) the aggregate amount of Revolving Credit Loans from such Lender shall not exceed such Lender’s Revolving Credit Commitment minus such Lender’s Ratable Share of the outstanding Swingline Loans and Letter of Credit Obligations and (ii) the Revolving Facility Usage shall not exceed the Revolving Credit Commitments.  Within such limits of time and amount and subject to

54


the other provisions of this Agreement, the Borrower may borrow, repay and reborrow pursuant to this Section 2.1.

(b)Swingline Loan Commitment.  Subject to the terms and conditions hereof and relying upon the representations and warranties herein specified and the agreements of the other Lenders specified in Section 2.6 with respect to Swingline Loans, PNC may, at its option, cancelable at any time for any reason whatsoever, make Swingline Loans (the “Swingline Loans”) to the Borrower in Dollars at any time or from time to time after the Funding Date to, but not including, the Expiration Date, in an aggregate principal amount up to but not in excess of $10,000,000; provided that after giving effect to such Swingline Loan (i) the aggregate amount of any Lender’s Revolving Credit Loans plus such Lender’s Ratable Share of the outstanding Swingline Loans and Letter of Credit Obligations shall not exceed such Lender’s Revolving Credit Commitment and (ii) the Revolving Facility Usage shall not exceed the aggregate Revolving Credit Commitments of the Lenders.  Within such limits of time and amount and subject to the other provisions of this Agreement, the Borrower may borrow, repay and reborrow pursuant to this Section 2.1(b).

2.2Nature of Lenders’ Obligations with Respect to Revolving Credit Loans.  Each Lender shall be obligated to fund each request for Revolving Credit Loans pursuant to Section 2.5 in accordance with its Ratable Share.  The aggregate of each Lender’s Revolving Credit Loans outstanding hereunder to the Borrower at any time shall never exceed its Revolving Credit Commitment minus its Ratable Share of the outstanding Swingline Loans and Letter of Credit Obligations.  The obligations of each Lender hereunder are several.  The failure of any Lender to perform its obligations hereunder shall not affect the Obligations of the Borrower to any other party nor shall any other party be liable for the failure of such Lender to perform its obligations hereunder.  The Lenders shall have no obligation to make Revolving Credit Loans hereunder on or after the Expiration Date.

2.3Commitment Fees. Accruing for each day from the Funding Date until the Expiration Date (and without regard to whether the conditions to making Revolving Credit Loans are then met), the Borrower agrees to pay to the Administrative Agent for the account of each Lender according to its Ratable Share, a nonrefundable commitment fee (the “Commitment Fee”) equal to the Applicable Margin for such day  (computed on the basis of a year of three hundred sixty (360) days and actual days elapsed) multiplied by the difference for such day between the amount of (a) the Revolving Credit Commitments minus (b) the Revolving Facility Usage (provided, however, that solely in connection with determining the share of each Lender in the Commitment Fee, the Revolving Facility Usage with respect to the portion of the Commitment Fee allocated to PNC shall include the full amount of the outstanding Swingline Loans, and with respect to the portion of the Commitment Fee allocated by the Administrative Agent to all of the Lenders other than PNC, such portion of the Commitment Fee shall be calculated (according to each such Lender’s Ratable Share) as if the Revolving Facility Usage excludes the outstanding Swingline Loans); provided that no Defaulting Lender shall be entitled to receive any Commitment Fee for any period during which that Lender is a Defaulting Lender (and the Borrower shall not be required to pay any such Commitment Fee that otherwise would have been required to have been paid to that Defaulting Lender).  Subject to the proviso in the directly preceding sentence, all Commitment Fees shall be payable in arrears on each Payment Date.

55


2.4Termination or Reduction of Revolving Credit Commitments.  The Borrower shall have the right, upon not less than three (3) Business Days’ notice to the Administrative Agent, to terminate the Revolving Credit Commitments or, from time to time, to reduce the aggregate amount of the Revolving Credit Commitments (ratably among the Lenders in proportion to their Ratable Shares); provided that no such termination or reduction of Revolving Credit Commitments shall be permitted if, after giving effect thereto and to any prepayments of the Revolving Credit Loans made on the effective date thereof, the Revolving Facility Usage would exceed the aggregate Revolving Credit Commitments of the Lenders; and provided, further, that in the event the Revolving Credit Commitments are reduced to an aggregate amount less than the Letter of Credit Sublimit or the Swingline Loan Commitment then in effect, the Letter of Credit Sublimit and the Swingline Loan Commitment, as applicable, shall be reduced by an amount such that none of the Letter of Credit Sublimit and the Swingline Loan Commitment, as applicable, exceed the Revolving Credit Commitments.  Any such reduction shall be in integral multiples of $1,000,000 and an amount equal to no less than $5,000,000, and shall reduce permanently the Revolving Credit Commitments then in effect.  Any such reduction or termination shall be accompanied by prepayment of the Notes, together with outstanding Commitment Fees, and the full amount of interest accrued on the principal sum to be prepaid (and all amounts referred to in Section 5.10 hereof) to the extent necessary to cause the aggregate Revolving Facility Usage after giving effect to such prepayments to be equal to or less than the Revolving Credit Commitments as so reduced or terminated.  Any notice to reduce the Revolving Credit Commitments under this Section 2.4 shall be irrevocable.

2.5Revolving Credit Loan Requests; Conversions and Renewals; Swingline Loan Requests.

(a)Revolving Credit Loan Requests; Conversions and Renewals.  Except as otherwise provided herein, the Borrower may from time to time prior to the Expiration Date request the Lenders to make Revolving Credit Loans, or renew or convert the Interest Rate Option applicable to existing Revolving Credit Loans or Term Loans pursuant to Section 4.2, by delivering to the Administrative Agent, not later than 10:00 a.m. Eastern Time, (i) three (3) Business Days prior to the proposed Borrowing Date with respect to the making of Revolving Credit Loans to which the LIBOR Rate Option applies or the conversion to or the renewal of the LIBOR Rate Option for any Revolving Credit Loans; and (ii) the same Business Day of the proposed Borrowing Date with respect to the making of a Revolving Credit Loan to which the Base Rate Option applies or the last day of the preceding Interest Period with respect to the conversion to the Base Rate Option for any Revolving Credit Loan, of a duly completed request therefor substantially in the form of Exhibit G or a request by telephone immediately confirmed in writing by letter, facsimile or telex in such form (each, a “Loan Request”), it being understood that the Administrative Agent may rely on the authority of any individual making such a telephonic request without the necessity of receipt of such written confirmation.  Each Loan Request shall be irrevocable and shall specify the aggregate amount of the proposed Loans comprising each Borrowing Tranche, and, if applicable, the Interest Period, which amounts shall be in (x) integral multiples of $100,000 and not less than $500,000 for each Borrowing Tranche under the LIBOR Rate Option, and (y) integral multiples of $100,000 and not less than $500,000 for each Borrowing Tranche under the Base Rate Option.

56


(b)Swingline Loan Requests.  Except as otherwise provided herein, the Borrower may from time to time prior to the Expiration Date request the Swingline Loan Lender to make Swingline Loans by delivery to the Swingline Loan Lender not later than 12:00 noon on the proposed Borrowing Date of a duly completed request therefor substantially in the form of Exhibit H hereto or a request by telephone immediately confirmed in writing by letter, facsimile or telex (each, a “Swingline Loan Request”), it being understood that the Administrative Agent may rely on the authority of any individual making such a telephonic request without the necessity of receipt of such written confirmation.  Each Swingline Loan Request shall be irrevocable and shall specify the proposed Borrowing Date and the principal amount of such Swingline Loan, which shall be not less than $100,000.

2.6Making Revolving Credit Loans and Swingline Loans; Presumptions by the Administrative Agent; Repayment of Revolving Credit Loans; Borrowings to Repay Swingline Loans.

(a)Making Revolving Credit Loans.  The Administrative Agent shall, promptly after receipt by it of a Loan Request pursuant to Section 2.5, notify the applicable Lenders of its receipt of such Loan Request specifying the information provided by the Borrower and the apportionment among the Lenders of the requested Revolving Credit Loans as determined by the Administrative Agent in accordance with Section 2.2.  Each Lender shall remit its apportioned share (as provided to it by the Administrative Agent) of the principal amount of each Revolving Credit Loan to the Administrative Agent such that the Administrative Agent is able to, and the Administrative Agent shall, to the extent the Lenders have made funds available to it for such purpose and subject to Section 7.3, fund such Revolving Credit Loans to the Borrower in U.S. Dollars and immediately available funds at the Principal Office prior to 2:00 p.m. Eastern Time, on the applicable Borrowing Date; provided that if any Lender fails to remit such funds to the Administrative Agent in a timely manner, the Administrative Agent may elect in its sole discretion to fund with its own funds the Revolving Credit Loans of such Lender on such Borrowing Date, and such Lender shall be subject to the repayment obligation in Section 2.6(b).

(b)Presumptions by the Administrative Agent.  Unless the Administrative Agent shall have received notice from a Lender prior to the proposed time of any Loan that such Lender will not make available to the Administrative Agent such Lender’s share of such Loan, the Administrative Agent may assume that such Lender has made such share available on such date in accordance with Section 2.6(a) and may, in reliance upon such assumption, make available to the Borrower a corresponding amount.  In such event, if a Lender has not in fact made its share of the applicable Loan available to the Administrative Agent, then the applicable Lender and the Borrower severally agree to pay to the Administrative Agent forthwith on demand such corresponding amount with interest thereon, for each day from and including the date such amount is made available to the Borrower to but excluding the date of payment to the Administrative Agent, at (i) in the case of a payment to be made by such Lender, the greater of the Effective Federal Funds Rate and a rate determined by the Administrative Agent in accordance with banking industry rules on interbank compensation and (ii) in the case of a payment to be made by the Borrower, the interest rate applicable to Loans under the Base Rate Option.  If such Lender pays its share of the applicable Loan to the Administrative Agent, then the amount so paid shall constitute such Lender’s Loan.  Any payment by the Borrower shall be without prejudice to any

57


claim the Borrower may have against a Lender that shall have failed to make such payment to the Administrative Agent.

(c)Making Swingline Loans.  So long as PNC elects to make Swingline Loans, PNC shall, after receipt by it of a Swingline Loan Request pursuant to Section 2.5(b), fund such Swingline Loan to the Borrower in U.S. Dollars and immediately available funds at the Principal Office prior to 4:00 p.m. Eastern Time on the Borrowing Date.  A Swingline Loan Note shall, if required by PNC, evidence the Swingline Loans.

(d)Repayment of Revolving Credit Loans.  The Borrower shall repay the outstanding principal amount of all Revolving Credit Loans, together with all outstanding interest thereon, on the Expiration Date.

(e)Borrowings to Repay Swingline Loans.

(i)PNC may, at its option, exercisable at any time for any reason whatsoever, demand repayment of any or all of the outstanding Swingline Loans, and each Lender shall make a Revolving Credit Loan in an amount equal to such Lender’s Ratable Share of the aggregate principal amount of the outstanding Swingline Loans with respect to which repayment is demanded, plus, if PNC so requests, accrued interest thereon; provided that no Lender shall be obligated in any event to make Revolving Credit Loans in excess of its Revolving Credit Commitment minus its Ratable Share of Letter of Credit Obligations and minus its Ratable Share of any Swingline Loans not so being repaid. Revolving Credit Loans made pursuant to the preceding sentence shall bear interest at the Base Rate Option and shall be deemed to have been properly requested in accordance with Section 2.5(a) without regard to any of the requirements of that provision.  PNC shall provide notice to the Lenders (which may be telephonic or written notice by letter, facsimile or telex) that such Revolving Credit Loans are to be made under this Section 2.6(e) and of the apportionment among the Lenders, and the Lenders shall be unconditionally obligated to fund such Revolving Credit Loans (whether or not the conditions specified in Section 2.5(a) or in Section 7.3 are then satisfied) by the time PNC so requests, which shall not be earlier than 3:00 p.m. Eastern Time on the Business Day next after the date the Lenders receive such notice from PNC.

(ii)If any Lender fails to make available to the Administrative Agent for the account of PNC (as the Swingline Loan Lender) any amount required to be paid by such Lender pursuant to the foregoing provisions of this Section 2.6(e) by the time specified in Section 2.6(e)(i), the Swingline Loan Lender shall be entitled to recover from such Lender (acting through the Administrative Agent), on demand, such amount with interest thereon for the period from the date such payment is required to the date on which such payment is immediately available to the Swingline Loan Lender at a rate per annum equal to the greater of the Effective Federal Funds Rate and a rate determined by the Administrative Agent in accordance with banking industry rules on interbank compensation, plus any administrative, processing or similar fees customarily charged by the Swingline Loan Lender in connection with the foregoing.  If such Lender pays such amount (with interest and fees as aforesaid), the amount so paid shall constitute such Lender’s Revolving Credit Loan with respect to such prepayment.  A certificate of the

58


Swingline Loan Lender submitted to any Lender (through the Administrative Agent) with respect to any amounts owing under this clause (ii) shall be conclusive absent manifest error.

(f)Swingline Loans Under Cash Management Agreements.  In addition to making Swingline Loans pursuant to the foregoing provisions of Section 2.6(c), without the requirement for a specific request from the Borrower pursuant to Section 2.5(b), PNC as the Swingline Loan Lender may make Swingline Loans to the Borrower in accordance with the provisions of the agreements between the Borrower and such Swingline Loan Lender relating to the Borrower’s deposit, sweep and other accounts at such Swingline Loan Lender and related arrangements and agreements regarding the management and investment of the Borrower’s cash assets as in effect from time to time (the “Cash Management Agreements”) to the extent of the daily aggregate net negative balance in the Borrower’s accounts which are subject to the provisions of the Cash Management Agreements.  Swingline Loans made pursuant to this Section 2.6(f) in accordance with the provisions of the Cash Management Agreements shall (i) be subject to the limitations as to aggregate amount specified in Section 2.1(b), (ii) not be subject to the limitations as to individual amount specified in Section 2.5(b), (iii) be payable by the Borrower, both as to principal and interest, at the rates and times specified in the Cash Management Agreements (but in no event later than the Expiration Date), (iv) not be made at any time after such Swingline Loan Lender has received written notice of the occurrence of an Event of Default and so long as such shall continue to exist, or, unless consented to by the Required Lenders, a Potential Default and so long as such shall continue to exist, (v) if not repaid by the Borrower in accordance with the provisions of the Cash Management Agreements, be subject to each Lender’s obligation pursuant to Section 2.6(e), and (vi) except as provided in Sections 2.6(f)(i) through 2.6(f)(v), be subject to all of the terms and conditions of this Article 2.

2.7Notes.  The Obligation of the Borrower to repay the aggregate unpaid principal amount of the Revolving Credit Loans, Swingline Loans and Term Loans made to it by each Lender, together with interest thereon, shall be evidenced by a revolving credit Note, a swing Note and a term Note, dated the Funding Date payable to the order of such Lender in a face amount equal to the Revolving Credit Commitment, Swingline Loan Commitment or Term Loan Commitment, as applicable, of such Lender.

2.8Letter of Credit Subfacility.

(a)Issuance of Letters of Credit.  The Borrower or any other Loan Party may at any time prior to the Expiration Date request the issuance of a letter of credit (each, a “Letter of Credit”) for its own account or the account of another Loan Party or on behalf of the Borrower and either an Excluded Subsidiary or a Subsidiary of the Borrower which is not a Loan Party (in which case the Borrower and such Excluded Subsidiaries or Subsidiary, as applicable, shall be co-applicants with respect to such Letter of Credit) or the amendment or extension of an existing Letter of Credit, by delivering or transmitting electronically, or having such other Loan Party deliver or transmit electronically to the applicable Issuing Lender (with a copy to the Administrative Agent) a completed application for letter of credit, or request for such amendment or extension, as applicable, in such form as the applicable Issuing Lender may specify from time to time by no later than 10:00 a.m. Eastern Time at least five (5) Business Days, or such shorter period as may be agreed to by the applicable Issuing Lender, in advance of the proposed date of

59


issuance.  Each Letter of Credit shall be a Standby Letter of Credit (and may not be a Commercial Letter of Credit). The Borrower or any Loan Party shall authorize and direct the applicable Issuing Lender to name the Borrower or any Loan Party or any Subsidiary as the “Applicant” or “Account Party” of each Letter of Credit.  Promptly after receipt of any letter of credit application, the applicable Issuing Lender shall confirm with the Administrative Agent (by telephone or in writing) that the Administrative Agent has received a copy of such Letter of Credit application and if not, the applicable Issuing Lender will provide the Administrative Agent with a copy thereof.  As of the Funding Date, each of the Existing Letters of Credit (to the extent then outstanding) shall constitute, for all purposes of this Agreement and the other Loan Documents, a Letter of Credit issued and outstanding hereunder.

(i)Unless the applicable Issuing Lender has received notice from any Lender, the Administrative Agent or any Loan Party, at least one (1) day prior to the requested date of issuance, amendment or extension of the applicable Letter of Credit, that one or more applicable conditions in Article 7 is not satisfied, then, subject to the terms and conditions hereof and in reliance on the agreements of the other Lenders specified in this Section 2.8, the applicable Issuing Lender or any of the applicable Issuing Lender’s Affiliates will issue the proposed Letter of Credit or agree to such amendment or extension; provided that each Letter of Credit shall (A) have a maximum maturity of twelve (12) months from the date of issuance, and (B) in no event expire later than the Expiration Date; and provided, further, that in no event shall (1) the Letter of Credit Obligations exceed, at any one time, $15,000,000 (the “Letter of Credit Sublimit”) or (2) the Revolving Facility Usage exceed, at any one time, the Revolving Credit Commitments.  Each request by the Borrower for the issuance, amendment or extension of a Letter of Credit shall be deemed to be a representation by the Borrower that it shall be in compliance with the preceding sentence and with Article 7 after giving effect to the requested issuance, amendment or extension of such Letter of Credit.  Promptly after its delivery of any Letter of Credit or any amendment to a Letter of Credit to the beneficiary thereof, the applicable Issuing Lender will also deliver to the Borrower and the Administrative Agent a true and complete copy of such Letter of Credit or amendment. Upon the request of the Administrative Agent, (x) if any Issuing Lender has honored any full or partial drawing request under any Letter of Credit and such drawing has resulted in a Letter of Credit Borrowing, or (y) if, on the Expiration Date, any Letter of Credit Obligation for any reason remains outstanding, Borrower shall, in each case, immediately Cash Collateralize the then outstanding amount of all Letter of Credit Obligations.  The Borrower hereby grants to the Administrative Agent, for the benefit of each Issuing Lender and the Lenders, a security interest in all cash collateral pledged pursuant to this Section or otherwise under this Agreement.

(ii)Notwithstanding Section 2.8(a)(i), no Issuing Lender shall be under any obligation to issue any Letter of Credit if (A) any order, judgment or decree of any Official Body or arbitrator shall by its terms purport to enjoin or restrain such Issuing Lender from issuing the Letter of Credit, or any Law applicable to such Issuing Lender or any request or directive (whether or not having the force of law) from any Official Body with jurisdiction over such Issuing Lender shall prohibit, or request that such Issuing Lender refrain from, the issuance of letters of credit generally or the Letter of Credit in particular or shall impose upon such Issuing Lender with respect to the Letter of Credit any restriction, reserve or capital requirement (for which such Issuing Lender is not otherwise

60


compensated hereunder) not in effect on the Funding Date, or shall impose upon such Issuing Lender any unreimbursed loss, cost or expense which was not applicable on the Funding Date and which such Issuing Lender in good faith deems material to it, (B) the issuance of the Letter of Credit would violate one or more policies of such Issuing Lender applicable to letters of credit generally or (C) any Lender is at that time a Defaulting Lender, unless such Issuing Lender has entered into arrangements, including the delivery of Cash Collateral, satisfactory to such Issuing Lender (in its sole discretion) with the Borrower or such Lender to eliminate such Issuing Lender’s actual or potential Fronting Exposure (after giving effect to Section 5.15(a)(iv)) with respect to the Defaulting Lender arising from either the Letter of Credit then proposed to be issued or that Letter of Credit and all other Issuing Lender Obligations as to which such Issuing Lender has actual or potential Fronting Exposure, as it may elect in its sole discretion.

(b)Letter of Credit Fees.  The Borrower shall pay (i) to the Administrative Agent for the ratable account of the Lenders a fee (the “Letter of Credit Fee”) equal to the Applicable Margin for Letters of Credit times the daily amount available to be drawn under each Letter of Credit (it being understood and agreed that in no event shall the fee under this Section 2.8(b)(i) in respect of any Letter of Credit be less than the Administrative Agent’s minimum fee in effect from time to time), and (ii) to the applicable Issuing Lender for its own account a fronting fee equal to 0.125% per annum on the daily amount available to be drawn under each Letter of Credit issued by such Issuing Lender.  All Letter of Credit Fees and fronting fees shall be computed on the basis of a year of three hundred sixty (360) days and actual days elapsed and shall be payable quarterly in arrears on each Payment Date following issuance of each Letter of Credit.  The Borrower shall also pay to the applicable Issuing Lender for such Issuing Lender’s sole account such Issuing Lender’s then-in-effect customary fees and administrative expenses payable with respect to the Letters of Credit as such Issuing Lender may generally charge or incur from time to time in connection with the issuance, maintenance, amendment (if any), assignment or transfer (if any), negotiation, and administration of Letters of Credit.

(c)Disbursements, Reimbursement.  Immediately upon the issuance of each Letter of Credit, each Lender shall be deemed to, and hereby irrevocably and unconditionally agrees to, purchase from the applicable Issuing Lender a participation in such Letter of Credit and each drawing thereunder in an amount equal to such Lender’s Ratable Share of the maximum amount available to be drawn under such Letter of Credit and the amount of such drawing, respectively.

(i)In the event of any request for a drawing under a Letter of Credit by the beneficiary or transferee thereof, the applicable Issuing Lender will promptly notify the Borrower and the Administrative Agent thereof.  Provided that it shall have received such notice, the Borrower shall reimburse (such obligation to reimburse the applicable Issuing Lender shall sometimes be referred to as a “Reimbursement Obligation”) the applicable Issuing Lender prior to 12:00 noon on each date that an amount is paid by the applicable Issuing Lender under any Letter of Credit issued by such Issuing Lender (each such date, a “Drawing Date”) by paying to the Administrative Agent for the account of the applicable Issuing Lender an amount equal to the amount so paid by the applicable Issuing Lender.  In the event the Borrower fails to reimburse the applicable Issuing Lender (through the Administrative Agent) for the full amount of any drawing under any Letter of Credit issued

61


by such Issuing Lender by 12:00 noon on the Drawing Date, the Administrative Agent will promptly notify each Lender thereof, and the Borrower shall be deemed to have requested that Revolving Credit Loans be made by the Lenders under the Base Rate Option to be disbursed on the Drawing Date under such Letter of Credit, subject to the amount of the unutilized portion of the Revolving Credit Commitment and subject to the conditions specified in Section 7.3 other than any notice requirements.  Any notice given by the Administrative Agent or any Issuing Lender pursuant to this Section 2.8(c)(i) may be oral if immediately confirmed in writing; provided that the lack of such an immediate confirmation shall not affect the conclusiveness or binding effect of such notice.

(ii)Each Lender shall upon any notice pursuant to Section 2.8(c)(i) make available to the Administrative Agent for the account of the applicable Issuing Lender an amount in immediately available funds equal to its Ratable Share of the amount of the drawing, whereupon the participating Lenders shall (subject to Section 2.8(c)) each be deemed to have made a Revolving Credit Loan under the Base Rate Option to the Borrower in that amount.  If any Lender so notified fails to make available to the Administrative Agent for the account of the applicable Issuing Lender the amount of such Lender’s Ratable Share of such amount by no later than 2:00 p.m. Eastern Time on the Drawing Date, then interest shall accrue on such Lender’s obligation to make such payment, from the Drawing Date to the date on which such Lender makes such payment (A) at a rate per annum equal to the Effective Federal Funds Rate during the first three (3) days following the Drawing Date and (B) at a rate per annum equal to the rate applicable to Revolving Credit Loans under the Base Rate Option on and after the fourth day following the Drawing Date.  The Administrative Agent and the applicable Issuing Lender will promptly give notice (as described in Section 2.8(c)(i) above) of the occurrence of the Drawing Date, but failure of the Administrative Agent or the applicable Issuing Lender to give any such notice on the Drawing Date or in sufficient time to enable any Lender to effect such payment on such date shall not relieve such Lender from its obligation under this Section 2.8(c)(ii).

(iii)With respect to any unreimbursed drawing that is not converted into Revolving Credit Loans under the Base Rate Option to the Borrower in whole or in part as contemplated by Section 2.8(c)(i), because of the Borrower’s failure to satisfy the conditions specified in Section 7.3 other than any notice requirements, or for any other reason, the Borrower shall be deemed to have incurred from the applicable Issuing Lender a borrowing (each a “Letter of Credit Borrowing”) in the amount of such drawing.  Such Letter of Credit Borrowing shall be due and payable on demand (together with interest) and shall bear interest at the rate per annum applicable to the Revolving Credit Loans under the Base Rate Option.  Each Lender’s payment to the Administrative Agent for the account of the applicable Issuing Lender pursuant to this Section 2.8(c) shall be deemed to be a payment in respect of its participation in such Letter of Credit Borrowing (each, a “Participation Advance”) from such Lender in satisfaction of its participation obligation under this Section 2.8(c).

62


(d)Repayment of Participation Advances.

(i)Upon (and only upon) receipt by the Administrative Agent for the account of the applicable Issuing Lender of immediately available funds from the Borrower (A) in reimbursement of any payment made by the applicable Issuing Lender under the Letter of Credit with respect to which any Lender has made a Participation Advance to the Administrative Agent, or (B) in payment of interest on such a payment made by the applicable Issuing Lender under such a Letter of Credit, the Administrative Agent on behalf of the applicable Issuing Lender will pay to each Lender, in the same funds as those received by the Administrative Agent, the amount of such Lender’s Ratable Share of such funds, except the Administrative Agent shall retain for the account of the applicable Issuing Lender the amount of the Ratable Share of such funds of any Lender that did not make a Participation Advance in respect of such payment by the applicable Issuing Lender.

(ii)If the Administrative Agent is required at any time to return to any Loan Party, or to a trustee, receiver, liquidator, custodian, or any official in any Insolvency Proceeding, any portion of any payment made by any Loan Party to the Administrative Agent for the account of any Issuing Lender pursuant to this Section 2.8 in reimbursement of a payment made under any Letter of Credit issued by the applicable Issuing Lender or interest or fees thereon, each Lender shall, on demand of the Administrative Agent, forthwith return to the Administrative Agent for the account of the applicable Issuing Lender the amount of its Ratable Share of any amounts so returned by the Administrative Agent plus interest thereon from the date such demand is made to the date such amounts are returned by such Lender to the Administrative Agent, at a rate per annum equal to the Effective Federal Funds Rate in effect from time to time.

(e)Documentation.  Each Loan Party agrees to be bound by the terms of the applicable Issuing Lender’s application and agreement for letters of credit and the applicable Issuing Lender’s written regulations and customary practices relating to letters of credit, though such interpretation may be different from such Loan Party’s own.  In the event of a conflict between such application or agreement and this Agreement, this Agreement shall govern.  It is understood and agreed that, except in the case of gross negligence or willful misconduct, no Issuing Lender shall be liable for any error, negligence and/or mistakes, whether of omission or commission, in following any Loan Party’s instructions or those contained in the Letters of Credit or any modifications, amendments or supplements thereto.

(f)Determinations to Honor Drawing Requests.  In determining whether to honor any request for drawing under any Letter of Credit by the beneficiary thereof, the applicable Issuing Lender shall be responsible only to determine that the documents and certificates required to be delivered under such Letter of Credit have been delivered and that they comply on their face with the requirements of such Letter of Credit.

(g)Nature of Participation and Reimbursement Obligations.  Each Lender’s obligation in accordance with this Agreement to make the Revolving Credit Loans or Participation Advances, as contemplated by Section 2.8(c), as a result of a drawing under a Letter of Credit, and the Obligations of the Borrower to reimburse the applicable Issuing Lender upon a draw under a Letter of Credit, shall be absolute, unconditional and irrevocable, and shall be performed strictly

63


in accordance with the terms of this Section 2.8 under all circumstances, including the following circumstances:

(i)any set-off, counterclaim, recoupment, defense or other right which such Lender may have against the applicable Issuing Lender or any of its Affiliates, the Borrower or any other Person for any reason whatsoever, or which any Loan Party may have against the applicable Issuing Lender or any of its Affiliates, any Lender or any other Person for any reason whatsoever;

(ii)the failure of any Loan Party or any other Person to comply, in connection with a Letter of Credit Borrowing, with the conditions specified in Sections 2.1, 2.5, 2.6 or 7.3 or as otherwise specified in this Agreement for the making of a Revolving Credit Loan, it being acknowledged that such conditions are not required for the making of a Letter of Credit Borrowing and the obligation of the Lenders to make Participation Advances under Section 2.8(c);

(iii)any lack of validity or enforceability of any Letter of Credit;

(iv)any claim of breach of warranty that might be made by any Loan Party or any Lender against any beneficiary of a Letter of Credit, or the existence of any claim, set-off, recoupment, counterclaim, cross claim, defense or other right which any Loan Party or any Lender may have at any time against a beneficiary, successor beneficiary any transferee or assignee of any Letter of Credit or the proceeds thereof (or any Persons for whom any such transferee may be acting), the applicable Issuing Lender or its Affiliates or any Lender or any other Person, whether in connection with this Agreement, the transactions contemplated herein or any unrelated transaction (including any underlying transaction between any Loan Party or Subsidiaries of a Loan Party and the beneficiary for which any Letter of Credit was procured);

(v)the lack of power or authority of any signer of (or any defect in or forgery of any signature or endorsement on) or the form of or lack of validity, sufficiency, accuracy, enforceability or genuineness of any draft, demand, instrument, certificate or other document presented under or in connection with any Letter of Credit, or any fraud or alleged fraud in connection with any Letter of Credit, or the transport of any property or provision of services relating to a Letter of Credit, in each case even if the applicable Issuing Lender or any of its Affiliates has been notified thereof;

(vi)payment by any Issuing Lender or any of its Affiliates under any Letter of Credit issued by such Issuing Lender against presentation of a demand, draft or certificate or other document which does not comply with the terms of such Letter of Credit;

(vii)the solvency of, or any acts or omissions by, any beneficiary of any Letter of Credit, or any other Person having a role in any transaction or obligation relating to a Letter of Credit, or the existence, nature, quality, quantity, condition, value or other characteristic of any property or services relating to a Letter of Credit;

64


(viii)any failure by any Issuing Lender or any of its Affiliates to issue any Letter of Credit in the form requested by any Loan Party, unless the applicable Issuing Lender has received written notice from such Loan Party of such failure within three (3) Business Days after the applicable Issuing Lender shall have furnished such Loan Party and the Administrative Agent a copy of such Letter of Credit and such error is material and no drawing has been made thereon prior to receipt of such notice;

(ix)any adverse change in the business, operations, properties, assets, condition (financial or otherwise) or prospects of any Loan Party or Subsidiaries of a Loan Party;

(x)any breach of this Agreement or any other Loan Document by any party thereto;

(xi)the occurrence or continuance of an Insolvency Proceeding with respect to any Loan Party;

(xii)the fact that an Event of Default or a Potential Default shall have occurred and be continuing;

(xiii)the fact that the Expiration Date shall have passed or this Agreement or the Commitments hereunder shall have been terminated; and

(xiv)any other circumstance or happening whatsoever, whether or not similar to any of the foregoing.

(h)Liability for Acts and Omissions.  As between any Loan Party and any Issuing Lender, or such Issuing Lender’s Affiliates, such Loan Party assumes all risks of the acts and omissions of, or misuse of the Letters of Credit by, the respective beneficiaries of such Letters of Credit.  In furtherance and not in limitation of the foregoing, no Issuing Lender shall be responsible for any of the following, including any losses or damages to any Loan Party or other Person or property relating therefrom:  (i) the form, validity, sufficiency, accuracy, genuineness or legal effect of any document submitted by any party in connection with the application for an issuance of any such Letter of Credit issued by such Issuing Lender, even if it should in fact prove to be in any or all respects invalid, insufficient, inaccurate, fraudulent or forged (even if such Issuing Lender or its Affiliates shall have been notified thereof); (ii) the validity or sufficiency of any instrument transferring or assigning or purporting to transfer or assign any such Letter of Credit or the rights or benefits thereunder or proceeds thereof, in whole or in part, which may prove to be invalid or ineffective for any reason; (iii) the failure of the beneficiary of any such Letter of Credit, or any other party to which such Letter of Credit may be transferred, to comply fully with any conditions required in order to draw upon such Letter of Credit or any other claim of any Loan Party against any beneficiary of such Letter of Credit, or any such transferee, or any dispute between or among any Loan Party and any beneficiary of any Letter of Credit or any such transferee; (iv) errors, omissions, interruptions or delays in transmission or delivery of any messages, by mail, cable, telegraph, telex or otherwise, whether or not they be in cipher; (v) errors in interpretation of technical terms; (vi) any loss or delay in the transmission or otherwise of any document required in order to make a drawing under any such Letter of Credit or of the proceeds

65


thereof; (vii) the misapplication by the beneficiary of any such Letter of Credit of the proceeds of any drawing under such Letter of Credit; or (viii) any consequences arising from causes beyond the control of the applicable Issuing Lender or its Affiliates, as applicable, including any act or omission of any Official Body, and none of the above shall affect or impair, or prevent the vesting of, any of the applicable Issuing Lender’s or its Affiliates rights or powers hereunder.  Nothing in the preceding sentence shall relieve any Issuing Lender from liability for such Issuing Lender’s gross negligence or willful misconduct in connection with actions or omissions described in such clauses (i) through (viii) of such sentence.  Notwithstanding the foregoing, in no event shall any Issuing Lender or its Affiliates be liable to any Loan Party for any indirect, consequential, incidental, punitive, exemplary or special damages or expenses (including attorneys’ fees), or for any damages resulting from any change in the value of any property relating to a Letter of Credit.

Without limiting the generality of the foregoing, each Issuing Lender and each of their respective Affiliates (i) may rely on any oral or other communication believed in good faith by such Issuing Lender or such Affiliate to have been authorized or given by or on behalf of the applicant for a Letter of Credit, (ii) may honor any presentation if the documents presented appear on their face substantially to comply with the terms and conditions of the relevant Letter of Credit; (iii) may honor a previously dishonored presentation under a Letter of Credit, whether such dishonor was pursuant to a court order, to settle or compromise any claim of wrongful dishonor, or otherwise, and shall be entitled to reimbursement to the same extent as if such presentation had initially been honored, together with any interest paid by the applicable Issuing Lender or its Affiliate; (iv) may honor any drawing that is payable upon presentation of a statement advising negotiation or payment, upon receipt of such statement (even if such statement indicates that a draft or other document is being delivered separately), and shall not be liable for any failure of any such draft or other document to arrive, or to conform in any way with the relevant Letter of Credit; (v) may pay any paying or negotiating bank claiming that it rightfully honored under the laws or practices of the place where such bank is located; and (vi) may settle or adjust any claim or demand made on the applicable Issuing Lender or its Affiliate in any way related to any order issued at the applicant’s request to an air carrier, a letter of guarantee or of indemnity issued to a carrier or any similar document (each, an “Order”) and honor any drawing in connection with any Letter of Credit that is the subject of such Order, notwithstanding that any drafts or other documents presented in connection with such Letter of Credit fail to conform in any way with such Letter of Credit.

In furtherance and extension and not in limitation of the specific provisions specified above, any action taken or omitted by any Issuing Lender or its Affiliates under or in connection with the Letters of Credit issued by it or any documents and certificates delivered thereunder, if taken or omitted in good faith, shall not put such Issuing Lender or its Affiliates under any resulting liability to the Borrower or any Lender.

(i)Issuing Lender Reporting Requirements.  Each Issuing Lender shall, on the first Business Day of each month, provide to Administrative Agent and Borrower a schedule of the Letters of Credit issued by it, in form and substance satisfactory to Administrative Agent, showing the date of issuance of each Letter of Credit, the account party, the original face amount (if any), and the expiration date of any Letter of Credit outstanding at any time during the preceding month, and any other information relating to such Letter of Credit that the Administrative Agent may request.

66


ARTICLE 3

TERM LOANS

3.1Term Loan Commitments.  Subject to the terms and conditions hereof, and relying upon the representations and warranties herein specified, each Lender severally agrees to make a term loan (the “Term Loan”) to the Borrower on the Funding Date in such principal amount as the Borrower shall request up to, but not exceeding, such Lender’s Term Loan Commitment.

3.2Nature of Lenders’ Obligations with Respect to Term Loans; Repayment Terms.

(a)The obligations of each Lender to make Term Loans to the Borrower shall equal its Ratable Share of the requested Term Loan; provided that no Lender’s Term Loan to the Borrower shall exceed its Term Loan Commitment.  The failure of any Lender to make a Term Loan shall not relieve any other Lender of its obligations to make a Term Loan nor shall it impose any additional liability on any other Lender hereunder.  The Lenders shall have no obligation to make Term Loans hereunder after the Funding Date, and any portion of the Term Loan Commitment not drawn on the Funding Date shall automatically expire.  The Term Loan Commitments are not revolving credit commitments, and the Borrower shall not have the right to borrow, repay and reborrow under Section 3.1.

(b)The Borrower shall repay to the applicable Lenders the aggregate principal amount of all Term Loans outstanding on the following dates in the respective amounts set forth opposite such dates (which amounts shall be reduced as a result of the application of voluntary and mandatory prepayments in accordance with the order of priority set forth in Section 5.2 and Section 5.3):

Date

Amount

December 31, 2021

$2,500,000

March 31, 2022

$2,500,000

June 30, 2022

$2,500,000

September 30, 2022

$2,500,000

December 31, 2022

$2,500,000

March 31, 2023

$2,500,000

June 30, 2023

$2,500,000

September 30, 2023

$2,500,000

December 31, 2023

$2,500,000

March 31, 2024

$2,500,000

June 30, 2024

$2,500,000

September 30, 2024

$2,500,000

December 31, 2024

$2,500,000

March 31, 2025

$2,500,000

June 30, 2025

$2,500,000

September 30, 2025

$2,500,000

December 31, 2025

$2,500,000

March 31, 2026

$2,500,000

June 30, 2026

$2,500,000

67


provided, however, that the final principal repayment installment of the Term Loans shall be repaid on the Term Loan Maturity Date and in any event shall be in an amount equal to the aggregate principal amount of all Term Loans outstanding on such date.

ARTICLE 4

INTEREST RATES

4.1Interest Rate Options. The Borrower shall pay interest in respect of the outstanding unpaid principal amount of the Loans as selected by it from the Base Rate Option or LIBOR Rate Option specified below applicable to the Revolving Credit Loans, the Terms Loans, or the Swingline Loans, respectively, it being understood that, subject to the provisions of this Agreement, the Borrower may select different Interest Rate Options and different Interest Periods to apply simultaneously to the Loans comprising different Borrowing Tranches and may convert to or renew one or more Interest Rate Options with respect to all or any portion of the Loans comprising any Borrowing Tranche; provided that there shall not be at any one time outstanding more than six (6) Borrowing Tranches of Revolving Credit Loans or more than six (6) Borrowing Tranches of Term Loans; provided, further, that if an Event of Default exists and is continuing, the Borrower may not request, convert to, or renew the LIBOR Rate Option for any Loans and the Required Lenders may demand that all existing Borrowing Tranches bearing interest under the LIBOR Rate Option shall be converted immediately to the Base Rate Option, subject to the obligation of the Borrower to pay any indemnity under Section 5.10 in connection with such conversion.  If at any time the designated rate applicable to any Loan made by any Lender exceeds such Lender’s highest lawful rate, the rate of interest on such Lender’s Loan shall be limited to such Lender’s highest lawful rate.

(a)Revolving Credit Interest Rate Options. The Borrower shall have the right to select from the following Interest Rate Options applicable to the Revolving Credit Loans:

(i)Revolving Credit Base Rate Option: A fluctuating rate per annum (computed on the basis of a year of three hundred sixty-five (365) or three hundred sixty-six (366) days, as the case may be, and actual days elapsed) equal to the Base Rate plus the Applicable Margin, such interest rate to change automatically from time to time effective as of the effective date of each change in the Base Rate; or

(ii)Revolving Credit LIBOR Rate Option: A rate per annum (computed on the basis of a year of three hundred sixty (360) days and actual days elapsed) equal to the LIBOR Rate as determined for each applicable Interest Period plus the Applicable Margin.

(b)Swingline Loan Interest Rate.  Subject to Section 4.3, only the Base Rate Option applicable to Revolving Credit Loans shall apply to the Swingline Loans.

(c)Term Loan Interest Rate Options. The Borrower shall have the right to select from the following Interest Rate Options applicable to the Term Loans:

(i)Term Loan Base Rate Option: A fluctuating rate per annum (computed on the basis of a year of three hundred sixty-five (365) or three hundred sixty-

68


six (366) days, as the case may be, and actual days elapsed) equal to the Base Rate plus the Applicable Margin, such interest rate to change automatically from time to time effective as of the effective date of each change in the Base Rate; or

(ii)Term Loan LIBOR Rate Option:  A rate per annum (computed on the basis of a year of three hundred sixty (360) days and actual days elapsed) equal to the LIBOR Rate as determined for each applicable Interest Period plus the Applicable Margin.

(d)Rate Quotations.  The Borrower may call the Administrative Agent on or before the date on which a Loan Request is to be delivered to receive an indication of the rates then in effect, but it is acknowledged that such projection shall not be binding on the Administrative Agent or the Lenders nor affect the rate of interest which thereafter is actually in effect when the election is made.

4.2Interest Periods.  At any time when the Borrower shall select, convert to or renew a LIBOR Rate Option, the Borrower shall notify the Administrative Agent thereof at least three (3) Business Days prior to the effective date of such LIBOR Rate Option by delivering a Loan Request.  The notice shall specify an Interest Period during which such Interest Rate Option shall apply.  Notwithstanding the preceding sentence, the following provisions shall apply to any selection of, renewal of, or conversion to a LIBOR Rate Option:

(a)Amount of Borrowing Tranche.  Each Borrowing Tranche of Loans under the LIBOR Rate Option shall be in integral multiples of, and not less than, the respective amounts specified in Section 2.5(a); and

(b)Renewals.  In the case of the renewal of a LIBOR Rate Option at the end of an Interest Period, the first day of the new Interest Period shall be the last day of the preceding Interest Period, without duplication in payment of interest for such day.

4.3Interest After Default.  To the extent permitted by Law, upon the occurrence of an Event of Default and until such time such Event of Default shall have been cured or waived, at the discretion of the Administrative Agent or upon written demand by the Required Lenders to the Administrative Agent (or automatically in the case of an Event of Default under Section 10.1(a)(i)):

(a)Letter of Credit Fees, Interest Rate.  The Letter of Credit Fees and the rate of interest for each Loan otherwise applicable pursuant to Section 2.8(b) or Section 4.1, respectively, shall be increased by 2.0% per annum;

(b)Other Obligations.  Each other Obligation hereunder if not paid when due shall bear interest at a rate per annum equal to the sum of the rate of interest applicable to Revolving Credit Loans under the Base Rate Option plus an additional 2.00% per annum from the time such Obligation becomes due and payable until the time such Obligation is paid in full; and

(c)Acknowledgment.  The Borrower acknowledges that the increase in rates referred to in this Section 4.3 reflects, among other things, the fact that such Loans or other amounts have become a substantially greater risk given their default status and that the Lenders

69


are entitled to additional compensation for such risk; and all such interest shall be payable by Borrower upon demand by Administrative Agent.

4.4LIBOR Rate Unascertainable; Increased Costs; Deposits Not Available; Illegality; Benchmark Replacement Setting.

(a)Unascertainable; Increased Costs; Deposits Not Available.  If, on or prior to the first day of an Interest Period:

(i)the Administrative Agent shall have determined (which determination shall be conclusive and binding absent manifest error) (x) that by reason of circumstances affecting the London or other applicable offshore interbank market, LIBOR Rate cannot be determined because the LIBOR Rate is not available or published on a current basis or (y) a fundamental change has occurred in the foreign exchange or interbank markets with respect to LIBOR (including, without limitation, changes in national or international financial, political or economic conditions or currency exchange rates or exchange controls), or

(ii)the Required Lenders determine that for any reason in connection with any request for a LIBOR Rate Loan or a conversion thereto or a continuation thereof that (A) Dollar deposits are not available to any Lender in connection with such LIBOR Rate Loan or being offered to banks in the London or other applicable offshore interbank market for the amount and Interest Period of such LIBOR Rate Loan, or (B) the LIBOR Rate for any requested Interest Period with respect to a proposed LIBOR Rate Loan does not adequately and fairly reflect the cost to such Lenders of funding such Loan,

then the Administrative Agent shall have the rights specified in Section 4.4(c).

(b)Illegality.  If at any time any Lender shall have determined that the making, maintenance or funding of any LIBOR Rate Loan has been made impracticable or unlawful by compliance by such Lender in good faith with any Law or any interpretation or application thereof by any Official Body or with any request or directive of any such Official Body (whether or not having the force of Law), then the Administrative Agent shall have the rights specified in Section 4.4(c).

(c)Administrative Agent’s and Lender’s Rights.  In the case of any event specified in Section 4.4(a) above, the Administrative Agent shall promptly so notify the Lenders and the Borrower thereof, and in the case of an event specified in Section 4.4(b) above, such Lender shall promptly so notify the Administrative Agent and endorse a certificate to such notice as to the specific circumstances of such notice, and the Administrative Agent shall promptly send copies of such notice and certificate to the other Lenders and the Borrower.  Upon such date as shall be specified in such notice (which shall not be earlier than the date such notice is given), the obligation of (i) the Lenders, in the case of such notice given by the Administrative Agent, or (ii) such Lender, in the case of such notice given by such Lender, to allow the Borrower to select, convert to or renew a LIBOR Rate Loan shall be suspended (to the extent of the affected LIBOR Rate Loan or Interest Periods) until the Administrative Agent shall have later notified the Borrower, or such Lender shall have later notified the Administrative Agent, of the Administrative

70


Agent’s or such Lender’s, as the case may be, determination that the circumstances giving rise to such previous determination no longer exist.  If at any time the Administrative Agent makes a determination under Section 4.4(a) and the Borrower has previously notified the Administrative Agent of its selection of, conversion to or renewal of a LIBOR Rate Option and the LIBOR Rate Option has not yet gone into effect, such notification shall be deemed to provide for selection of, conversion to or renewal of the Base Rate Option otherwise available with respect to such Loans.  If any Lender notifies the Administrative Agent of a determination under Section 4.4(b), the Borrower shall, subject to the Borrower’s indemnification Obligations under Section 5.10, as to any Loan of the Lender to which a LIBOR Rate Option applies, on the date specified in such notice either convert such Loan to the Base Rate Option otherwise available with respect to such Loan or prepay such Loan in accordance with Section 5.2.  Absent due notice from the Borrower of conversion or prepayment, such Loan shall automatically be converted to the Base Rate Option otherwise available with respect to such Loan upon such specified date.

(d)Benchmark Replacement Setting.

(i)Announcements Related to LIBOR.  On March 5, 2021, the ICE Benchmark Administration, the administrator of LIBOR (the “IBA”) and the U.K. Financial Conduct Authority, the regulatory supervisor for the IBA, announced in a public statement the future cessation or loss of representativeness of overnight/Spot Next, 1-week, 1-month, 2-month, 3-month, 6-month and 12-month USD LIBOR tenor settings (collectively, the “Cessation Announcements”). The parties hereto acknowledge that, as a result of the Cessation Announcements, a Benchmark Transition Event occurred on March 5, 2021 with respect to USD LIBOR under clauses (1) and (2) of the definition of Benchmark Transition Event below; provided, however, no related Benchmark Replacement Date occurred as of such date.

(ii)Benchmark Replacement. Notwithstanding anything to the contrary herein or in any other Loan Document (and any agreement executed in connection with an Interest Rate Hedge shall be deemed not to be a “Loan Document” for purposes of this Section 4.4(d)), if a Benchmark Transition Event, an Early Opt-in Election or an Other Benchmark Rate Election, as applicable, and its related Benchmark Replacement Date have occurred prior to the Reference Time in respect of any setting of the then-current Benchmark, then (x) if a Benchmark Replacement is determined in accordance with clause (1) or (2) of the definition of “Benchmark Replacement” for such Benchmark Replacement Date, such Benchmark Replacement will replace such Benchmark for all purposes hereunder and under any Loan Document in respect of such Benchmark setting and subsequent Benchmark settings without any amendment to, or further action or consent of any other party to, this Agreement or any other Loan Document and (y) if a Benchmark Replacement is determined in accordance with clause (3) of the definition of “Benchmark Replacement” for such Benchmark Replacement Date, such Benchmark Replacement will replace such Benchmark for all purposes hereunder and under any Loan Document in respect of any Benchmark setting at or after 5:00 p.m. (New York City time) on the fifth (5th) Business Day after the date notice of such Benchmark Replacement is provided to the Lenders without any amendment to, or further action or consent of any other party to, this Agreement or any other Loan Document so long as the Administrative Agent has not

71


received, by such time, written notice of objection to such Benchmark Replacement from Lenders comprising the Required Lenders.

(iii)Benchmark Replacement Conforming Changes. In connection with the implementation of a Benchmark Replacement, the Administrative Agent will have the right to make Benchmark Replacement Conforming Changes from time to time and, notwithstanding anything to the contrary herein or in any other Loan Document, any amendments implementing such Benchmark Replacement Conforming Changes will become effective without any further action or consent of any other party to this Agreement or any other Loan Document.

(iv)Notices; Standards for Decisions and Determinations. The Administrative Agent will promptly notify the Borrower and the Lenders of (1) any occurrence of a Benchmark Transition Event, a Term SOFR Transition Event, an Early Opt-in Election, or an Other Benchmark Rate Election, as applicable, and its related Benchmark Replacement Date, (2) the implementation of any Benchmark Replacement, (3) the effectiveness of any Benchmark Replacement Conforming Changes, (4) the removal or reinstatement of any tenor of a Benchmark pursuant to paragraph (v) below and (5) the commencement or conclusion of any Benchmark Unavailability Period. Any determination, decision or election that may be made by the Administrative Agent or, if applicable, any Lender (or group of Lenders) pursuant to this Section 4.4(d), including any determination with respect to a tenor, rate or adjustment or of the occurrence or non-occurrence of an event, circumstance or date and any decision to take or refrain from taking any action or any selection, will be conclusive and binding absent manifest error and may be made in its or their sole discretion and without consent from any other party to this Agreement or any other Loan Document, except, in each case, as expressly required pursuant to this Section 4.4(d).

(v)Unavailability of Tenor of Benchmark. Notwithstanding anything to the contrary herein or in any other Loan Document, at any time (including in connection with the implementation of a Benchmark Replacement), (1) if the then-current Benchmark is a term rate (including Term SOFR or USD LIBOR) and either (A) any tenor for such Benchmark is not displayed on a screen or other information service that publishes such rate from time to time as selected by the Administrative Agent in its reasonable discretion or (B) the regulatory supervisor for the administrator of such Benchmark has provided a public statement or publication of information announcing that any tenor for such Benchmark is or will be no longer representative, then the Administrative Agent may modify the definition of “Interest Period” for any Benchmark settings at or after such time to remove such unavailable or non-representative tenor and (2) if a tenor that was removed pursuant to clause (1) above either (A) is subsequently displayed on a screen or information service for a Benchmark (including a Benchmark Replacement) or (B) is not, or is no longer, subject to an announcement that it is or will no longer be representative for a Benchmark (including a Benchmark Replacement), then the Administrative Agent may modify the definition of “Interest Period” for all Benchmark settings at or after such time to reinstate such previously removed tenor.

72


(vi)Benchmark Unavailability Period. Upon the Borrower’s receipt of notice of the commencement of a Benchmark Unavailability Period, the Borrower may revoke any request for a Loan bearing interest based on USD LIBOR, conversion to or continuation of Loans bearing interest based on USD LIBOR to be made, converted or continued during any Benchmark Unavailability Period and, failing that, the Borrower will be deemed to have converted any such request into a request for a Loan of or conversion to Loans bearing interest under the Base Rate Option. During any Benchmark Unavailability Period or at any time that a tenor for the then-current Benchmark is not an Available Tenor, the component of the Base Rate based upon the then-current Benchmark or such tenor for such Benchmark, as applicable, will not be used in any determination of the Base Rate.

(vii)Term SOFR Transition Event.  Notwithstanding anything to the contrary herein or in any other Loan Document and subject to the proviso below in this paragraph, if a Term SOFR Transition Event and its related Benchmark Replacement Date have occurred prior to the Reference Time in respect of any setting of the then-current Benchmark, then (1) the applicable Benchmark Replacement will replace the then-current Benchmark for all purposes hereunder or under any Loan Document in respect of such Benchmark setting (the “Secondary Term SOFR Conversion Date”) and subsequent Benchmark settings, without any amendment to, or further action or consent of any other party to, this Agreement or any other Loan Document; and (2) Loans outstanding on the Secondary Term SOFR Conversion Date bearing interest based on the then-current Benchmark shall be deemed to have been converted to Loans bearing interest at the Benchmark Replacement with a tenor approximately the same length as the interest payment period of the then-current Benchmark; provided that, this paragraph (vii) shall not be effective unless the Administrative Agent has delivered to the Lenders and the Borrower a Term SOFR Notice. For the avoidance of doubt, the Administrative Agent shall not be required to deliver a Term SOFR Notice after a Term SOFR Transition Event and may do so in its sole discretion.

4.5Selection of Interest Rate Options.  If the Borrower fails to select a new Interest Period to apply to any Borrowing Tranche of Loans under the LIBOR Rate Option at the expiration of an existing Interest Period applicable to such Borrowing Tranche in accordance with the provisions of Section 4.2, the Borrower shall be deemed to have converted such Borrowing Tranche to the Base Rate Option, as applicable to Revolving Credit Loans or Term Loans as the case may be, commencing upon the last day of the existing Interest Period. If the Borrower provides any Loan Request related to a Loan at the LIBOR Rate Option but fails to identify an Interest Period therefor, such Loan Request shall be deemed to request an Interest Period of one (1) month.  Any Loan Request that fails to select an Interest Rate Option shall be deemed to be a request for the Base Rate Option.

ARTICLE 5

PAYMENTS; TAXES; YIELD MAINTENANCE; ETC.

5.1Payments.  All payments and prepayments to be made in respect of principal, interest, Commitment Fees, Letter of Credit Fees, Administrative Agent’s Fee or other fees or amounts due from the Borrower hereunder shall be payable prior to 11:00 a.m. Eastern Time on

73


the date when due without presentment, demand, protest or notice of any kind, all of which are hereby expressly waived by the Borrower, and without set-off, counterclaim or other deduction of any nature, and an action therefor shall immediately accrue.  Such payments shall be made to the Administrative Agent at the Principal Office for the account of the Swingline Loan Lender with respect to the Swingline Loans and for the ratable accounts of the Lenders with respect to the Revolving Credit Loans or Term Loans in U.S. Dollars and in immediately available funds, and the Administrative Agent shall promptly distribute such amounts to the Lenders in immediately available funds; provided that in the event payments are received by 11:00 a.m. Eastern Time by the Administrative Agent with respect to the Loans and such payments are not distributed to the Lenders on the same day received by the Administrative Agent, the Administrative Agent shall pay the Lenders interest at the Effective Federal Funds Rate with respect to the amount of such payments for each day held by the Administrative Agent and not distributed to the Lenders.  The Administrative Agent’s statement of account, ledger or other relevant record shall, in the absence of manifest error, be conclusive as the statement of the amount of principal of and interest on the Loans and other amounts owing under this Agreement.

5.2Voluntary Prepayments.

(a)Right to Prepay. The Borrower shall have the right at its option from time to time to prepay the Loans, in whole or part, without premium or penalty (except as provided in Section 5.13 below, in Section 5.8 and Section 5.10).  Whenever the Borrower desires to prepay any part of the Loans, it shall provide a prepayment notice to the Administrative Agent by 1:00 p.m. Eastern Time at least one (1) Business Day prior to the date of prepayment of the Revolving Credit Loans or Term Loans that bear interest at the Base Rate Option and at least three (3) Business Days in the case of Loans bearing interest at the LIBOR Rate Option, or no later than 1:00 p.m. Eastern Time on the date of prepayment of Swingline Loans, setting forth the following information:

(i)the date, which shall be a Business Day, on which the proposed prepayment is to be made;

(ii)a statement indicating the application of the prepayment between the Revolving Credit Loans, Term Loans and Swingline Loans;

(iii)a statement indicating the application of the prepayment between Loans to which the Base Rate Option applies and Loans to which the LIBOR Rate Option applies; and

(iv)the total principal amount of such prepayment, which shall not be less than the lesser of (A) the Revolving Facility Usage or (B) $100,000 (or if less the full outstanding amount) for any Swingline Loan or $500,000 for any Revolving Credit Loan or Term Loan.

All prepayment notices shall be irrevocable.  The principal amount of the Loans for which a prepayment notice is given, together with interest on such principal amount, shall be due and payable on the date specified in such prepayment notice as the date on which the proposed prepayment is to be made.  All Term Loan prepayments permitted pursuant to this Section 5.2

74


shall be applied to the unpaid installments of principal of the Term Loans on a pro rata basis.  Except as provided in Section 4.4(c), if the Borrower prepays a Loan but fails to specify the applicable Borrowing Tranche which the Borrower is prepaying, the prepayment shall be applied (1) first to Revolving Credit Loans and then to Term Loans; and (2) after giving effect to the allocations in clause (1) above and in the preceding sentence, first to Loans to which the Base Rate Option applies, then to Loans to which the LIBOR Rate Option applies.  Any prepayment hereunder shall be subject to the Borrower’s Obligation to indemnify the Lenders under Section 5.10.

5.3Mandatory Prepayments.

(a)Sale of Assets; Recovery Events.  Within five (5) Business Days of any Asset Disposition permitted by Section 9.6 or Recovery Event, the Borrower shall make a mandatory prepayment of principal on the Loans equal to the Net Cash Proceeds of such Asset Disposition or Recovery Event, together with accrued interest on such principal amount; provided, however, that so long as no Potential Default or Event of Default shall have occurred and be continuing, such Net Cash Proceeds shall not be required to be applied (i) until the aggregate amount of the Net Cash Proceeds from all such Asset Dispositions or Recovery Events is in excess of $5,000,000 in any Fiscal Year, and (ii) at the election of the Borrower (as notified by the Borrower to the Administrative Agent on or prior to the date of such Asset Disposition or Recovery Event), to the extent such Net Cash Proceeds are reinvested in assets (excluding current assets as classified in accordance with GAAP) within twelve (12) months after the receipt of such Net Cash Proceeds; provided that if such Net Cash Proceeds shall not have been so reinvested, such prepayment shall be due immediately upon the expiration of the applicable period.  All prepayments pursuant to this Section 5.3(a) shall be applied as set forth in Section 5.3(d).

(b)Holdings IPO.  In the event of any issuance of Equity Interests of Holdings pursuant to any Holdings IPO (including any “greenshoe” or supplemental offering made within the first calendar year after any Holdings IPO), the Borrower shall, no later than one (1) Business Day after the receipt by Holdings or any of its Subsidiaries of the Net Cash Proceeds from any such issuance, repay the Loans in an amount equal to the lesser of (i) fifty percent (50%) of such Net Cash Proceeds and (ii) $50,000,000. All prepayments pursuant to this Section 5.3(b) shall be applied as set forth in Section 5.3(d).

(c)Indebtedness.  In the event of any issuance or other incurrence of any Indebtedness (other than Indebtedness permitted by Section 9.1), the Borrower shall, no later than one (1) Business Day after the receipt by Holdings or any of its Subsidiaries of the Net Cash Proceeds from any such issuance or incurrence of Indebtedness, repay the Loans in an amount equal to one hundred percent (100%) of such Net Cash Proceeds. All prepayments pursuant to this Section 5.3(c) shall be applied as set forth in Section 5.3(d).

(d)Application of Prepayments.

(i)Any prepayments made by the Borrower pursuant to Sections 5.3(a) 5.3(b) or 5.3(c) above shall be applied as follows: first, to Administrative Agent’s fees and reimbursable expenses then due and payable pursuant to any of the Loan Documents; second, to all reimbursable expenses of the Lenders and all fees and reimbursable expenses

75


of the Issuing Lenders then due and payable pursuant to any of the Loan Documents, pro rata to the Lenders and the Issuing Lenders based on their respective Ratable Shares of such fees and expenses; third, to interest and fees then due and payable hereunder, pro rata to the Lenders based on their respective Ratable Shares of such interest and fees; fourth, to the principal balance of the Term Loans until the same shall have been paid in full, pro rata to the Lenders based on their Ratable Shares thereof, and applied to the remaining principal installments thereof (including the installment due on the Term Loan Maturity Date thereof) in the inverse order of scheduled maturities; fifth, to the principal balance of the Swingline Loans, until the same shall have been paid in full, to the Swingline Loan Lender, sixth, to the principal balance of the Revolving Credit Loans, until the same shall have been paid in full, pro rata to the Lenders based on their respective Revolving Credit Commitments and seventh, to Cash Collateralize the Letters of Credit in an amount in cash equal to the Letter of Credit Obligations of such date plus any accrued and unpaid fees thereon.  The Revolving Credit Commitments of the Lenders shall not be permanently reduced by the amount of any prepayments made pursuant to clauses fifth through seventh above, unless a Potential Default or an Event of Default has occurred and is continuing and the Required Lenders so request.

(ii)All prepayments required pursuant to this Section 5.3 shall first be applied among the Interest Rate Options to the principal amount of the Loans subject to the Base Rate Option, then to Loans subject to a LIBOR Rate Option.  In accordance with Section 5.10, the Borrower shall indemnify the Lenders for any loss or expense, including loss of margin, incurred with respect to any such prepayments applied against Loans subject to a LIBOR Rate Option on any day other than the last day of the applicable Interest Period.

5.4Pro Rata Treatment of Lenders.  Each borrowing of Revolving Credit Loans shall be allocated to each Lender according to its Ratable Share, and each selection of, conversion to or renewal of any Interest Rate Option and each payment or prepayment by the Borrower with respect to principal, interest, Commitment Fees and Letter of Credit Fees (but excluding the Administrative Agent’s Fee and each Issuing Lender’s fronting fee) shall (except as otherwise may be provided with respect to a Defaulting Lender and except as provided in Sections 4.4(c) in the case of an event specified in Section 4.4, 5.8 or 5.13) be payable ratably among the Lenders entitled to such payment in accordance with the amount of principal, interest, Commitment Fees and Letter of Credit Fees, as specified in this Agreement.  Notwithstanding any of the foregoing, each borrowing or payment or prepayment by the Borrower of principal, interest, fees or other amounts from the Borrower with respect to Swingline Loans shall be made by or to the Swingline Loan Lender according to Section 2.6.(e).

5.5Sharing of Payments by Lenders.  If any Lender shall, by exercising any right of setoff, counterclaim or banker’s lien or other any right, by receipt of voluntary payment, by realization upon security, or by any other non-pro rata source, obtain payment in respect of any principal of or interest on any of its Loans or other obligations hereunder resulting in such Lender’s receiving payment of a proportion of the aggregate amount of its Loans and accrued interest thereon or other such obligations greater than the pro-rata share of the amount such Lender is entitled thereto, then the Lender receiving such greater proportion shall (a) notify the Administrative Agent of such fact, and (b) purchase (for cash at face value) participations in the

76


Loans and such other obligations of the other Lenders, or make such other adjustments as shall be equitable, so that the benefit of all such payments shall be shared by the Lenders ratably in accordance with the aggregate amount of principal of and accrued interest on their respective Loans and other amounts owing them; provided that:

(i)if any such participations are purchased and all or any portion of the payment giving rise thereto is recovered, such participations shall be rescinded and the purchase price restored to the extent of such recovery, together with interest or other amounts, if any, required by Law (including court order) to be paid by the Lender or the holder making such purchase; and

(ii)the provisions of this Section 5.5 shall not be construed to apply to (x) any payment made by the Loan Parties pursuant to and in accordance with the express terms of the Loan Documents (including the application of funds arising from the existence of a Defaulting Lender) or (y) any payment obtained by a Lender as consideration for the assignment of or sale of a participation in any of its Loans or Participation Advances to any assignee or participant.

Each Loan Party consents to the foregoing and agrees, to the extent it may effectively do so under applicable Law, that any Lender acquiring a participation pursuant to the foregoing arrangements may exercise against each Loan Party rights of setoff and counterclaim with respect to such participation as fully as if such Lender were a direct creditor of each Loan Party in the amount of such participation.

5.6Administrative Agent’s Clawback.

(a)Funding by Lenders; Presumption by Administrative Agent.  Unless the Administrative Agent shall have received notice from a Lender, prior to the proposed date of any Borrowing Tranche of Loans that such Lender will not make available to the Administrative Agent such Lender’s Ratable Share, the Administrative Agent may assume that such Lender has made such share available on such date in accordance with Section 2.6 (a) or Section 3.2 and may, in reliance upon such assumption, make available to the Borrower a corresponding amount.  In such event, if a Lender has not in fact made its share of the applicable Borrowing Tranche of Loans available to the Administrative Agent, then the applicable Lender and the Borrower severally agree to pay to the Administrative Agent forthwith on demand such corresponding amount with interest thereon, for each day from and including the date such amount is made available to the Borrower to but excluding the date of payment to the Administrative Agent, at (i) in the case of a payment to be made by such Lender, the greater of the Effective Federal Funds Rate and a rate determined by the Administrative Agent in accordance with banking industry rules on interbank compensation, and (ii) in the case of a payment to be made by the Borrower, the interest rate applicable to Loans under the Base Rate Option.  If the Borrower and such Lender shall pay such interest to the Administrative Agent for the same or an overlapping period, the Administrative Agent shall promptly remit to the Borrower the amount of such interest paid by the Borrower for such period.  If such Lender pays its share of the applicable Borrowing Tranche of Loans to the Administrative Agent, then the amount so paid shall constitute such Lender’s Loan included in such Borrowing Tranche of Loans.  Any payment by the Borrower shall be without prejudice to any claim the

77


Borrower may have against a Lender that shall have failed to make such payment to the Administrative Agent.

(b)Payments by Borrower; Presumptions by Administrative Agent.  Unless the Administrative Agent shall have received notice from the Borrower prior to the date on which any payment is due to the Administrative Agent for the account of the Lenders or the Issuing Lenders hereunder that the Borrower will not make such payment, the Administrative Agent may assume that the Borrower has made such payment on such date in accordance herewith and may, in reliance upon such assumption, distribute to the Lenders or the Issuing Lenders, as the case may be, the amount due.  In such event, if the Borrower has not in fact made such payment, then each of the Lenders or the Issuing Lenders, as the case may be, severally agrees to repay to the Administrative Agent forthwith on demand the amount so distributed to such Lender or such Issuing Lender, with interest thereon, for each day from and including the date such amount is distributed to it to but excluding the date of payment to the Administrative Agent, at the greater of the Effective Federal Funds Rate and a rate determined by the Administrative Agent in accordance with banking industry rules on interbank compensation.

5.7Interest Payment Dates.  Interest on Loans to which the Base Rate Option applies shall be due and payable in arrears on each Payment Date.  Interest on Loans to which the LIBOR Rate Option applies shall be due and payable on the last day of each Interest Period for those Loans and, if such Interest Period is longer than three (3) Months, also on the 90th day of such Interest Period.  Interest on mandatory prepayments of principal under Section 5.3 shall be due on the date such mandatory prepayment is due.  Interest on the principal amount of each Loan or other monetary Obligation shall be due and payable on demand after such principal amount or other monetary Obligation becomes due and payable (whether on the stated Expiration Date, upon acceleration or otherwise).

5.8Increased Costs.

(a)Increased Costs Generally.  If any Change in Law shall:

(i)impose, modify or deem applicable any reserve, special deposit, compulsory loan, insurance charge or similar requirement against assets of, deposits with or for the account of, or credit extended or participated in by, any Lender (except any reserve requirement reflected in the LIBOR Rate) or any Issuing Lender;

(ii)subject any Recipient to any Taxes (other than (A) Indemnified Taxes, (B) Taxes described in clauses (b) through (d) of the definition of Excluded Taxes and (C) Connection Income Taxes) on its loans, loan principal, letters of credit, commitments, or other obligations, or its deposits, reserves, other liabilities or capital attributable thereto; or

(iii)impose on any Lender, any Issuing Lender or the London interbank market any other condition, cost or expense (other than Taxes) affecting this Agreement or Loans made by such Lender or any Letter of Credit or participation therein;

78


and the result of any of the foregoing shall be to increase the cost to such Lender or such other Recipient of making, converting to, continuing or maintaining any Loan or of maintaining its obligation to make any such Loan, or to increase the cost to such Lender, such Issuing Lender or such other Recipient of participating in, issuing or maintaining any Letter of Credit (or of maintaining its obligation to participate in or to issue any Letter of Credit), or to reduce the amount of any sum received or receivable by such Lender, such Issuing Lender or other Recipient hereunder (whether of principal, interest or any other amount) then, upon request of such Lender, such Issuing Lender or other Recipient, the Borrower will pay to such Lender, such Issuing Lender or other Recipient, as the case may be, such additional amount or amounts as will compensate such Lender or such Issuing Lender or other Recipient, as the case may be, for such additional costs incurred or reduction suffered.

(b)Capital Requirements.  If any Lender or any Issuing Lender determines that any Change in Law affecting such Lender or such Issuing Lender or any Lending Office of such Lender or such Lender’s or such Issuing Lender’s holding company, if any, regarding capital or liquidity requirements has or would have the effect of reducing the rate of return on such Lender’s or such Issuing Lender’s capital or on the capital of such Lender’s or such Issuing Lender’s holding company, if any, as a consequence of this Agreement, the Commitments of such Lender or the Loans made by, or participations in Letters of Credit or Swingline Loans held by, such Lender, or the Letters of Credit issued by such Issuing Lender, to a level below that which such Lender or such Issuing Lender or such Lender’s or such Issuing Lender’s holding company could have achieved but for such Change in Law (taking into consideration such Lender’s or such Issuing Lender’s policies and the policies of such Lender’s or such Issuing Lender’s holding company with respect to capital adequacy), then from time to time the Borrower will pay to such Lender or such Issuing Lender, as the case may be, such additional amount or amounts as will compensate such Lender or such Issuing Lender or such Lender’s or such Issuing Lender’s holding company for any such reduction suffered.

(c)Certificates for Reimbursement.  A certificate of a Lender or an Issuing Lender setting forth the amount or amounts necessary to compensate such Lender or such Issuing Lender or its holding company, as the case may be, as specified in Sections 5.8(a) or 5.8(b) and delivered to the Borrower shall be conclusive absent manifest error.  The Borrower shall pay such Lender or such Issuing Lender, as the case may be, the amount shown as due on any such certificate within ten (10) days after receipt thereof.

(d)Delay in Requests.  Failure or delay on the part of any Lender or any Issuing Lender to demand compensation pursuant to this Section 5.8 shall not constitute a waiver of such Lender’s or such Issuing Lender’s right to demand such compensation; provided that the Borrower shall not be required to compensate a Lender or an Issuing Lender pursuant to this Section 5.8 for any increased costs incurred or reductions suffered more than nine (9) months prior to the date that such Lender or such Issuing Lender, as the case may be, notifies the Borrower of the Change in Law giving rise to such increased costs or reductions and of such Lender’s or such Issuing Lender’s intention to claim compensation therefor (except that, if the Change in Law giving rise to such increased costs or reductions is retroactive, then the nine (9) month period referred to above shall be extended to include the period of retroactive effect thereof).

5.9Taxes.

79


(a)Issuing Lender.  For purposes of this Section 5.9, the term “Lender” includes each Issuing Lender and the term “applicable Law” includes FATCA.

(b)Payments Free of Taxes.  Any and all payments by or on account of any obligation of any Loan Party under any Loan Document shall be without deduction or withholding for any Taxes, except as required by applicable Law.  If any applicable Law (as determined in the good faith discretion of an applicable Withholding Agent) requires the deduction or withholding of any Tax from any such payment by a Withholding Agent, then the applicable Withholding Agent shall be entitled to make such deduction or withholding and shall timely pay the full amount deducted or withheld to the relevant Official Body in accordance with applicable Law and, if such Tax is an Indemnified Tax, then the sum payable by the applicable Loan Party shall be increased as necessary so that after such deduction or withholding has been made (including such deductions and withholdings applicable to additional sums payable under this Section 5.9) the applicable Recipient receives an amount equal to the sum it would have received had no such deduction or withholding been made.

(c)Payment of Other Taxes by the Loan Parties.  The Loan Parties shall timely pay to the relevant Official Body in accordance with applicable Law, or at the option of the Administrative Agent timely reimburse it for the payment of, any Other Taxes.

(d)Indemnification by the Loan Parties.  The Loan Parties shall jointly and severally indemnify each Recipient, within ten (10) days after demand therefor, for the full amount of any Indemnified Taxes (including Indemnified Taxes imposed or asserted on or attributable to amounts payable under this Section 5.9) payable or paid by such Recipient or required to be withheld or deducted from a payment to such Recipient and any reasonable expenses arising therefrom or with respect thereto, whether or not such Indemnified Taxes were correctly or legally imposed or asserted by the relevant Official Body.  A certificate as to the amount of such payment or liability delivered to the Borrower by a Lender (with a copy to the Administrative Agent), or by the Administrative Agent on its own behalf or on behalf of a Lender, shall be conclusive absent manifest error.

(e)Indemnification by the Lenders.  Each Lender shall severally indemnify the Administrative Agent, within ten (10) days after demand therefor, for (i) any Indemnified Taxes attributable to such Lender (but only to the extent that any Loan Party has not already indemnified the Administrative Agent for such Indemnified Taxes and without limiting the obligation of any of the Loan Parties to do so), (ii) any Taxes attributable to such Lender’s failure to comply with the provisions of Section 12.8(a) relating to the maintenance of a Participant Register, and (iii) any Excluded Taxes attributable to such Lender, in each case, that are payable or paid by the Administrative Agent in connection with any Loan Document, and any reasonable expenses arising therefrom or with respect thereto, whether or not such Taxes were correctly or legally imposed or asserted by the relevant Official Body.  A certificate as to the amount of such payment or liability delivered to any Lender by the Administrative Agent shall be conclusive absent manifest error.  Each Lender hereby authorizes the Administrative Agent to set off and apply any and all amounts at any time owing to such Lender under any Loan Document or otherwise payable by the Administrative Agent to the Lender from any other source against any amount due to the Administrative Agent under this Section 5.9(e).

80


(f)Evidence of Payments.  As soon as practicable after any payment of Taxes by any Loan Party to an Official Body pursuant to this Section 5.9, such Loan Party shall deliver to the Administrative Agent the original or a certified copy of a receipt issued by such Official Body evidencing such payment, a copy of the return reporting such payment or other evidence of such payment reasonably satisfactory to the Administrative Agent.

(g)Status of Lenders.

(i)Any Lender that is entitled to an exemption from or reduction of withholding Tax with respect to payments made under any Loan Document shall deliver to the Borrower and the Administrative Agent, at the time or times reasonably requested by the Borrower or the Administrative Agent, such properly completed and executed documentation reasonably requested by the Borrower or the Administrative Agent as will permit such payments to be made without withholding or at a reduced rate of withholding.  In addition, any Lender, if reasonably requested by the Borrower or the Administrative Agent, shall deliver such other documentation prescribed by applicable Law or reasonably requested by the Borrower or the Administrative Agent as will enable the Borrower or the Administrative Agent to determine whether or not such Lender is subject to backup withholding or information reporting requirements.  Notwithstanding anything to the contrary in the preceding two sentences, the completion, execution and submission of such documentation (other than such documentation specified in Section 5.9.(g)(ii)(1), (ii)(2) and (ii)(4) below) shall not be required if in the Lender’s reasonable judgment such completion, execution or submission would subject such Lender to any material unreimbursed cost or expense or would materially prejudice the legal or commercial position of such Lender.

(ii)Without limiting the generality of the foregoing, in the event that the Borrower is a U.S. Borrower,

(1)any Lender that is a U.S. Person shall deliver to the Borrower and the Administrative Agent on or prior to the date on which such Lender becomes a Lender under this Agreement (and from time to time thereafter upon the reasonable request of the Borrower or the Administrative Agent), executed originals of IRS Form W-9 certifying that such Lender is exempt from U.S. federal backup withholding tax;

(2)any Foreign Lender shall, to the extent it is legally entitled to do so, deliver to the Borrower and the Administrative Agent (in such number of copies as shall be requested by the recipient) on or prior to the date on which such Foreign Lender becomes a Lender under this Agreement (and from time to time thereafter upon the reasonable request of the Borrower or the Administrative Agent), whichever of the following is applicable:

(I)in the case of a Foreign Lender claiming the benefits of an income tax treaty to which the United States is a party (x) with respect to payments of interest under any Loan Document, executed originals of IRS Form W-8BEN-E (or W-8BEN if applicable)  establishing an

81


exemption from, or reduction of, U.S. federal withholding Tax pursuant to the “interest” article of such tax treaty and (y) with respect to any other applicable payments under any Loan Document, IRS Form W-8BEN-E (or W-8BEN if applicable) establishing an exemption from, or reduction of, U.S. federal withholding Tax pursuant to the “business profits” or “other income” article of such tax treaty;

(II)executed originals of IRS Form W-8ECI;

(III)in the case of a Foreign Lender claiming the benefits of the exemption for portfolio interest under Section 881(c) of the Code, (x) a certificate substantially in the form of Exhibit I-1 to the effect that such Foreign Lender is not (A) a “bank” within the meaning of Section 881(c)(3)(A) of the Code, (B) a “10 percent shareholder” of the Borrower within the meaning of Section 881(c)(3)(B) of the Code, or (C) a “controlled foreign corporation” described in Section 881(c)(3)(C) of the Code (a “U.S. Tax Compliance Certificate”) and (y) executed originals of IRS Form W-8BEN-E (or W-8BEN if applicable); or

(IV)to the extent a Foreign Lender is not the beneficial owner, executed originals of IRS Form W-8IMY, accompanied by IRS Form W-8ECI, IRS Form W-8BEN-E (or W-8BEN if applicable), a U.S. Tax Compliance Certificate substantially in the form of Exhibit I-2 or Exhibit I-3, IRS Form W-9, and/or other certification documents from each beneficial owner, as applicable; provided that if the Foreign Lender is a partnership and one or more direct or indirect partners of such Foreign Lender are claiming the portfolio interest exemption, such Foreign Lender may provide a U.S. Tax Compliance Certificate substantially in the form of Exhibit I-4 on behalf of each such direct and indirect partner;

(3)any Foreign Lender shall, to the extent it is legally entitled to do so, deliver to the Borrower and the Administrative Agent (in such number of copies as shall be requested by the recipient) on or prior to the date on which such Foreign Lender becomes a Lender under this Agreement (and from time to time thereafter upon the reasonable request of the Borrower or the Administrative Agent), executed originals of any other form prescribed by applicable Law as a basis for claiming exemption from or a reduction in U.S. federal withholding Tax, duly completed, together with such supplementary documentation as may be prescribed by applicable Law to permit the Borrower or the Administrative Agent to determine the withholding or deduction required to be made; and

(4)if a payment made to a Lender under any Loan Document would be subject to U.S. federal withholding Tax imposed by FATCA if such Lender were to fail to comply with the applicable reporting requirements of FATCA (including those contained in Section 1471(b) or 1472(b) of the Code, as applicable), such Lender shall deliver to the Borrower and the Administrative Agent at the time or times prescribed by law and at such time or times reasonably

82


requested by the Borrower or the Administrative Agent such documentation prescribed by applicable law (including as prescribed by Section 1471(b)(3)(C)(i) of the Code) and such additional documentation reasonably requested by the Borrower or the Administrative Agent as may be necessary for the Borrower and the Administrative Agent to comply with their obligations under FATCA and to determine that such Lender has complied with such Lender’s obligations under FATCA or to determine the amount to deduct and withhold from such payment.  Solely for purposes of this clause (4), “FATCA” shall include any amendments made to FATCA after the date of this Agreement.

Each Lender agrees that if any form or certification it previously delivered expires or becomes obsolete or inaccurate in any respect, it shall update such form or certification or promptly notify the Borrower and the Administrative Agent in writing of its legal inability to do so.

(h)Treatment of Certain Refunds.  If any party determines, in its sole discretion exercised in good faith, that it has received a refund of any Taxes as to which it has been indemnified pursuant to this Section 5.9 (including by the payment of additional amounts pursuant to this Section 5.9), it shall pay to the indemnifying party an amount equal to such refund (but only to the extent of indemnity payments made under this Section 5.9 with respect to the Taxes giving rise to such refund), net of all out-of-pocket expenses (including Taxes) of such indemnified party and without interest (other than any interest paid by the relevant Official Body with respect to such refund).  Such indemnifying party, upon the request of such indemnified party incurred in connection with obtaining such refund, shall repay to such indemnified party the amount paid over pursuant to this Section 5.9(h) (plus any penalties, interest or other charges imposed by the relevant Official Body) in the event that such indemnified party is required to repay such refund to such Official Body.  Notwithstanding anything to the contrary in this Section 5.9(h), in no event will the indemnified party be required to pay any amount to an indemnifying party pursuant to this Section 5.9(h) the payment of which would place the indemnified party in a less favorable net after-Tax position than the indemnified party would have been in if the Tax subject to indemnification and giving rise to such refund had not been deducted, withheld or otherwise imposed and the indemnification payments or additional amounts with respect to such Tax had never been paid.  This paragraph shall not be construed to require any indemnified party to make available its Tax returns (or any other information relating to its Taxes that it deems confidential) to the indemnifying party or any other Person.

(i)Survival.  Each party’s obligations under this Section 5.9 shall survive the resignation of the Administrative Agent or any assignment of rights by, or the replacement of, a Lender, the termination of the Commitments and the repayment, satisfaction or discharge of all Obligations.

5.10Indemnity.  In addition to the compensation or payments required by Section 5.8 or Section 5.9, the Borrower shall indemnify each Lender against all liabilities, losses or expenses (including any foreign exchange losses and any loss or expense arising from the liquidation or reemployment of funds obtained by it to maintain such Loan, from fees payable to terminate the deposits from which such funds were obtained or from the performance of any foreign exchange contract) which such Lender sustains or incurs as a consequence of any:

83


(a)payment, prepayment, conversion or renewal of any Loan to which a LIBOR Rate Option applies on a day other than the last day of the corresponding Interest Period (whether or not such payment or prepayment is mandatory, voluntary or automatic and whether or not such payment or prepayment is then due); or

(b)attempt by the Borrower to revoke (expressly, by later inconsistent notices or otherwise) in whole or part any Loan Requests under Section 2.5 or Section 4.2 or notice relating to prepayments under Section 5.2 or failure by the Borrower (for a reason other than the failure of such Lender to make a Loan) to prepay, borrow, continue or convert any Loan other than a Loan under the Base Rate Option on the date or in the amount notified by the Borrower, or

(c)any assignment of a Loan under the LIBOR Rate Option on a day other than the last day of the Interest Period therefor as a result of a request by the Borrower pursuant to Section 5.13.

If any Lender sustains or incurs any such loss or expense, it shall from time to time notify the Borrower of the amount determined in good faith by such Lender (which determination may include such assumptions, allocations of costs and expenses and averaging or attribution methods as such Lender shall deem reasonable) to be necessary to indemnify such Lender for such loss or expense.  Such notice shall specify in reasonable detail the basis for such determination.  Such amount shall be due and payable by the Borrower to such Lender ten (10) Business Days after such notice is given.

5.11Settlement Date Procedures.  In order to minimize the transfer of funds between the Lenders and the Administrative Agent, the Borrower may borrow, repay and reborrow Swingline Loans and the Swingline Loan Lender may make Swingline Loans as provided in Section 2.1(b) hereof during the period between Settlement Dates.  The Administrative Agent shall notify each Lender of its Ratable Share of the total of the Revolving Credit Loans and the Swingline Loans (each, a “Required Share”).  On such Settlement Date, each Lender shall pay to the Administrative Agent the amount equal to the difference between its Required Share and its Revolving Credit Loans, and the Administrative Agent shall pay to each Lender its Ratable Share of all payments made by the Borrower to the Administrative Agent with respect to the Revolving Credit Loans.  The Administrative Agent shall also effect settlement in accordance with the foregoing sentence on the proposed Borrowing Dates for Revolving Credit Loans and on any mandatory prepayment date as provided for herein and may at its option effect settlement on any other Business Day.  These settlement procedures are established solely as a matter of administrative convenience, and nothing contained in this Section 5.11 shall relieve the Lenders of their obligations to fund Revolving Credit Loans on dates other than a Settlement Date pursuant to Section 2.1(b).  The Administrative Agent may at any time at its option for any reason whatsoever require each Lender to pay immediately to the Administrative Agent such Lender’s Ratable Share of the outstanding Revolving Credit Loans and each Lender may at any time require the Administrative Agent to pay immediately to such Lender its Ratable Share of all payments made by the Borrower to the Administrative Agent with respect to the Revolving Credit Loans.

5.12Cash Collateral.  At any time that there shall exist a Defaulting Lender, within one (1) Business Day following the written request of the Administrative Agent or any Issuing Lender (with a copy to the Administrative Agent) the Borrower shall Cash Collateralize such Issuing

84


Lender’s Fronting Exposure with respect to such Defaulting Lender (determined after giving effect to Section 5.15(a)(iv) and any Cash Collateral provided by such Defaulting Lender) in an amount not less than the Minimum Collateral Amount.

(a)Grant of Security Interest.  The Borrower, and to the extent provided by any Defaulting Lender, such Defaulting Lender, hereby grants to the Administrative Agent, for the benefit of the Issuing Lenders, and agrees to maintain, a first priority security interest in all such Cash Collateral as security for the Defaulting Lenders’ obligation to fund participations in respect of Letter of Credit Obligations, to be applied pursuant to clause (b) below.  If at any time the Administrative Agent determines that Cash Collateral is subject to any right or claim of any Person other than the Administrative Agent and the Issuing Lenders as herein provided, or that the total amount of such Cash Collateral is less than the Minimum Collateral Amount, the Borrower will, promptly upon demand by the Administrative Agent, pay or provide to the Administrative Agent additional Cash Collateral in an amount sufficient to eliminate such deficiency (after giving effect to any Cash Collateral provided by the Defaulting Lender).

(b)Application.  Notwithstanding anything to the contrary contained in this Agreement, Cash Collateral provided under this Section 5.12 or Section 5.15 in respect of Letters of Credit shall be applied to the satisfaction of the Defaulting Lender’s obligation to fund participations in respect of Letter of Credit Obligations (including, as to Cash Collateral provided by a Defaulting Lender, any interest accrued on such obligation) for which the Cash Collateral was so provided, prior to any other application of such property as may otherwise be provided for herein.

(c)Termination of Requirement.  Cash Collateral (or the appropriate portion thereof) provided to reduce the applicable Issuing Lender’s Fronting Exposure shall no longer be required to be held as Cash Collateral pursuant to this Section 5.12 following (i) the elimination of the applicable Fronting Exposure (including by the termination of Defaulting Lender status of the applicable Lender), or (ii) the determination by the Administrative Agent and the applicable Issuing Lender that there exists excess Cash Collateral; provided that, subject to Section 5.15 the Person providing Cash Collateral and the applicable Issuing Lender may agree that Cash Collateral shall be held to support future anticipated Fronting Exposure or other obligations; and provided, further, that to the extent that such Cash Collateral was provided by the Borrower, such Cash Collateral shall remain subject to the security interest granted pursuant to Section 5.12(a) above.

5.13Replacement of a Lender.  If any Lender requests compensation under Section 5.8, or if the Borrower is required to pay any Indemnified Taxes or additional amounts to any Lender or any Official Body for the account of any Lender pursuant to Section 5.9 and, in each case, such Lender has declined or is unable to designate a different lending office in accordance with Section 5.14, or if any Lender is a Defaulting Lender or a Non-Consenting Lender, then the Borrower may, at its sole expense and effort, upon notice to such Lender and the Administrative Agent, require such Lender to assign and delegate, without recourse (in accordance with and subject to the restrictions contained in, and consents required by, Section 12.8), all of its interests, rights (other than its existing rights to payments pursuant to Section 5.8 or Section 5.9) and obligations under this Agreement and the related Loan Documents to an Eligible Assignee that shall assume such obligations (which assignee may be another Lender, if a Lender accepts such assignment); provided that:

85


(a)the Borrower shall have paid to the Administrative Agent the assignment fee (if any) specified in Section 12.8;

(b)such Lender shall have received payment of an amount equal to the outstanding principal of its Loans and participations in Letter of Credit Borrowings, accrued interest thereon, accrued fees and all other amounts payable to it hereunder and under the other Loan Documents (including any amounts under Section 5.10) from the assignee (to the extent of such outstanding principal and accrued interest and fees) or the Borrower (in the case of all other amounts);

(c)in the case of any such assignment resulting from a claim for compensation under Section 5.8 or payments required to be made pursuant to Section 5.9, such assignment will result in a reduction in such compensation or payments thereafter;

(d)such assignment does not conflict with applicable law; and

(e)in the case of any assignment resulting from a Lender becoming a Non-Consenting Lender, the applicable assignee shall have consented to the applicable amendment, waiver or consent.

A Lender shall not be required to make any such assignment or delegation if, prior thereto, as a result of a waiver by such Lender or otherwise, the circumstances entitling the Borrower to require such assignment and delegation cease to apply.

5.14Designation of a Different Lending Office.  If any Lender requests compensation under Section 5.8, or the Borrower is or will be required to pay any Indemnified Taxes or additional amounts to any Lender or any Official Body for the account of any Lender pursuant to Section 5.9, then such Lender shall (at the request of the Borrower) use reasonable efforts to designate a different Lending Office for funding or booking its Loans hereunder or to assign its rights and obligations hereunder to another of its offices, branches or affiliates, if, in the judgment of such Lender, such designation or assignment (i) would eliminate or reduce amounts payable pursuant to Section 5.8 or Section 5.9, as the case may be, in the future, and (ii) would not subject such Lender to any unreimbursed cost or expense and would not otherwise be disadvantageous to such Lender.  The Borrower hereby agrees to pay all reasonable costs and expenses incurred by any Lender in connection with any such designation or assignment.

5.15Defaulting Lenders.

(a)Defaulting Lender Adjustments.  Notwithstanding anything to the contrary contained in this Agreement, if any Lender becomes a Defaulting Lender, then, until such time as such Lender is no longer a Defaulting Lender, to the extent permitted by applicable law:

(i)Waivers and Amendments.  Such Defaulting Lender’s right to approve or disapprove any amendment, waiver or consent with respect to this Agreement shall be restricted as specified in the definition of Required Lenders.

(ii)Defaulting Lender Waterfall. Any payment of principal, interest, fees or other amounts received by the Administrative Agent for the account of such

86


Defaulting Lender (whether voluntary or mandatory, at maturity, pursuant to Article 10 or otherwise) or received by the Administrative Agent from a Defaulting Lender pursuant to Section 10.2(b) shall be applied at such time or times as may be determined by the Administrative Agent as follows: first, to the payment of any amounts owing by such Defaulting Lender to the Administrative Agent hereunder; second, to the payment on a pro rata basis of any amounts owing by such Defaulting Lender to any Issuing Lender or Swingline Loan Lender hereunder; third, to Cash Collateralize the Issuing Lenders’ Fronting Exposure with respect to such Defaulting Lender in accordance with Section 5.12; fourth, as the Borrower may request (so long as no Potential Default or Event of Default exists), to the funding of any Loan in respect of which such Defaulting Lender has failed to fund its portion thereof as required by this Agreement, as determined by the Administrative Agent; fifth, if so determined by the Administrative Agent and the Borrower, to be held in a deposit account and released pro rata in order to (x) satisfy such Defaulting Lender’s potential future funding obligations with respect to Loans under this Agreement and (y) Cash Collateralize the Issuing Lenders’ future Fronting Exposure with respect to such Defaulting Lender with respect to future Letters of Credit issued under this Agreement, in accordance with Section 5.12; sixth, to the payment of any amounts owing to the Lenders, the Issuing Lenders or Swingline Loan Lender as a result of any judgment of a court of competent jurisdiction obtained by any Lender, any Issuing Lender or Swingline Loan Lender against such Defaulting Lender as a result of such Defaulting Lender’s breach of its obligations under this Agreement; seventh, so long as no Potential Default or Event of Default exists, to the payment of any amounts owing to the Borrower as a result of any judgment of a court of competent jurisdiction obtained by the Borrower against such Defaulting Lender as a result of such Defaulting Lender’s breach of its obligations under this Agreement; and eighth, to such Defaulting Lender or as otherwise directed by a court of competent jurisdiction; provided that if (x) such payment is a payment of the principal amount of any Loans or Letter of Credit Borrowing in respect of which such Defaulting Lender has not fully funded its appropriate share, and (y) such Loans were made or the related Letters of Credit were issued at a time when the conditions specified in Section 7.3 were satisfied or waived, such payment shall be applied solely to pay the Loans of, and Letter of Credit Borrowings owed to, all Non-Defaulting Lenders on a pro rata basis prior to being applied to the payment of any Loans of, or Letter of Credit Borrowing owed to, such Defaulting Lender until such time as all Loans and funded and unfunded participations in Letter of Credit Obligations and Swingline Loans are held by the Lenders pro rata in accordance with the Commitments under the applicable Facility without giving effect to Section 5.15(a)(iv). Any payments, prepayments or other amounts paid or payable to a Defaulting Lender that are applied (or held) to pay amounts owed by a Defaulting Lender or to post Cash Collateral pursuant to this Section 5.15(a)(ii) shall be deemed paid to and redirected by such Defaulting Lender, and each Lender irrevocably consents hereto.

(iii)Certain Fees.

(1)No Defaulting Lender shall be entitled to receive any Commitment Fee for any period during which that Lender is a Defaulting Lender (and the Borrower shall not be required to pay any such fee that

87


otherwise would have been required to have been paid to that Defaulting Lender).

(2)Each Defaulting Lender shall be entitled to receive Letter of Credit Fees for any period during which that Lender is a Defaulting Lender only to the extent allocable to its Ratable Share of the stated amount of Letters of Credit for which it has provided Cash Collateral pursuant to Section 5.12.

(3)With respect to any Letter of Credit Fee not required to be paid to any Defaulting Lender pursuant to clause (1) or (2) above, the Borrower shall (x) pay to each Non-Defaulting Lender that portion of any such fee otherwise payable to such Defaulting Lender with respect to such Defaulting Lender’s participation in Letter of Credit Obligations or Swingline Loans that has been reallocated to such Non-Defaulting Lender pursuant to clause (iv) below, (y) pay to each Issuing Lender and Swingline Loan Lender, as applicable, the amount of any such fee otherwise payable to such Defaulting Lender to the extent allocable to such Issuing Lender’s or Swingline Loan Lender’s Fronting Exposure to such Defaulting Lender, and (z) not be required to pay the remaining amount of any such fee.

(iv)Reallocation of Participations to Reduce Fronting Exposure.  All or any part of such Defaulting Lender’s participation in Letter of Credit Obligations and Swingline Loans shall be reallocated among the Non-Defaulting Lenders in accordance with their respective Ratable Shares (calculated without regard to such Defaulting Lender’s Commitment) but only to the extent that such reallocation does not cause the aggregate Revolving Facility Usage of any Non-Defaulting Lender to exceed such Non-Defaulting Lender’s Revolving Credit Commitment.  Subject to Section 12.12, no reallocation hereunder shall constitute a waiver or release of any claim of any party hereunder against a Defaulting Lender arising from that Lender having become a Defaulting Lender, including any claim of a Non-Defaulting Lender as a result of such Non-Defaulting Lender’s increased exposure following such reallocation.

(v)Cash Collateral, Repayment of Swingline Loans.  If the reallocation described in clause (iv) above cannot, or can only partially, be effected, the Borrower shall, without prejudice to any right or remedy available to it hereunder or under law, (x) first, prepay Swingline Loans in an amount equal to the Swingline Loan Lender’s Fronting Exposure and (y) second, Cash Collateralize the Issuing Lenders’ Fronting Exposure in accordance with the procedures specified in Section 5.12.

(b)Defaulting Lender Cure.  If the Borrower, the Administrative Agent and each Swingline Loan Lender and each Issuing Lender agree in writing that a Lender is no longer a Defaulting Lender, the Administrative Agent will so notify the parties hereto, whereupon as of the effective date specified in such notice and subject to any conditions specified therein (which may include arrangements with respect to any Cash Collateral), that Lender will, to the extent applicable, purchase at par that portion of outstanding Loans of the other Lenders or take such other actions as the Administrative Agent may determine to be necessary to cause the Loans and funded and unfunded participations in Letters of Credit and Swingline Loans to be held pro rata

88


by the Lenders in accordance with the Commitments under the applicable Facility (without giving effect to Section 5.15(a)(iv)), whereupon such Lender will cease to be a Defaulting Lender; provided that no adjustments will be made retroactively with respect to fees accrued or payments made by or on behalf of the Borrower while that Lender was a Defaulting Lender; and provided, further, that except to the extent otherwise expressly agreed by the affected parties, no change hereunder from Defaulting Lender to Lender will constitute a waiver or release of any claim of any party hereunder arising from that Lender’s having been a Defaulting Lender.

(c)New Swingline Loans/Letters of Credit.  So long as any Lender is a Defaulting Lender, (i) the Swingline Loan Lender shall not be required to fund any Swingline Loans unless it is satisfied that it will have no Fronting Exposure after giving effect to such Swingline Loan and (ii) no Issuing Lender shall be required to issue, extend, renew or increase any Letter of Credit unless it is satisfied that it will have no Fronting Exposure after giving effect thereto.

5.16Maturity Extensions.

(a)Requests for Extension.  The Borrower may, by notice to the Administrative Agent (who shall promptly notify the applicable Lenders of such request and of the Notice Date), which such notice shall not, in the case of a request for extension of the Expiration Date, be earlier than forty-five (45) days or later than thirty-five (35) days prior to the Expiration Date then in effect hereunder (the “Existing Expiration Date”), request that (i) each Lender to the Revolving Credit Facility extend the Existing Expiration Date to a date beyond the Existing Expiration Date or (ii) each Lender to the Term Loan Facility extend the Term Loan Maturity Date then in effect hereunder (the “Existing Term Loan Maturity Date”) to a date beyond the Existing Term Loan Maturity Date.

(b)Lender Elections to Extend.  Each applicable Lender, acting in its sole and individual discretion, shall, by written notice to the Administrative Agent given by a date specified by the Administrative Agent (which such date shall not be earlier than the date that is ten (10) days after notice is provided to the applicable Lenders, and in any event not earlier than thirty (30) days nor later than twenty (20) days prior to the applicable Expiration Date in the case of extensions of the Expiration Date) (the “Notice Date”), advise the Administrative Agent whether or not such Lender agrees to such extension, and each Lender that determines not to so extend its Expiration Date or Term Loan Maturity Date (a “Non-Extending Lender”) shall notify the Administrative Agent in writing of such fact promptly after such determination (but in any event no later than the Notice Date) and any Lender that does not so advise the Administrative Agent on or before the Notice Date shall be deemed to be a Non-Extending Lender.  The election of any Lender to agree to such extension shall not obligate any other Lender to so agree.

(c)Notification by Administrative Agent.  The Administrative Agent shall notify the Borrower in writing of each Lender’s determination under this Section 5.16 promptly, but in no event later than two (2) Business Days after the Notice Date.  Upon receipt of the responses of the applicable Lenders, the Administrative Agent and the Borrower shall determine the date upon which the relevant extension, if applicable, shall be effective (the “Extension Effective Date”), which such date shall not (unless agreed by the relevant Lenders and the Administrative Agent) be earlier than ten (10) days after the Notice Date.

89


(d)Additional Commitment Lenders.  The Borrower shall have the right on or before the Existing Expiration Date or Existing Term Loan Maturity Date to replace each Non-Extending Lender with, and add as “Lenders” under this Agreement in place thereof, one or more Eligible Assignees (each, an “Additional Commitment Lender”) with the approval of the Administrative Agent (and, with respect to prospective Additional Commitment Lenders under the Revolving Credit Facility, the Swingline Loan Lender and each Issuing Lender), each of which approvals shall not be unreasonably withheld.  Each Additional Commitment Lender shall have entered into an agreement in form and substance satisfactory to the Borrower and the Administrative Agent pursuant to which such Additional Commitment Lender shall, effective as of the Extension Effective Date, undertake either (i) a Revolving Credit Commitment (and, if any such Additional Commitment Lender is already a Lender under the Revolving Credit Facility, its Revolving Credit Commitment shall be in addition to such Lender’s Revolving Credit Commitment hereunder on such date) or (ii) Term Loans under the Term Loan Facility, in each case in replacement of the applicable Non-Extending Lender, and shall have purchased such Non-Extending Lenders outstanding Loans at par, and each Additional Commitment Lender shall thereupon become a “Lender” for all purposes of this Agreement under the applicable facility.

(e)Conditions to Effectiveness of Extensions.  Notwithstanding the foregoing, the extension of the Expiration Date or the Term Loan Maturity Date pursuant to this Section 5.16 shall only be effective with respect to any Lender on the Extension Effective Date if:

(i)in the case of any proposed extension of the Expiration Date, the total of the Revolving Credit Commitments of the Lenders that have agreed so to extend their Expiration Date and the additional Revolving Credit Commitments of the relevant Additional Commitment Lenders shall be more than 50% of the aggregate amount of the Revolving Credit Commitments in effect immediately prior to the Extension Effective Date;

(ii)in the case of any proposed extension of the Term Loan Maturity Date, the total of the outstanding Term Loans of the Lenders that have agreed so to extend the Term Loan Maturity Date shall be more than 50% of the aggregate amount of the Term Loans outstanding immediately prior to the Extension Effective Date;

(iii)as of the date of such extension, and after giving effect thereto, the representations, warranties of the Borrower and the other Loan Parties herein and in the other Loan Documents shall be true and correct in all material respects (unless qualified by materiality or reference to the absence of a Material Adverse Change, in which event shall be true and correct), except to the extent that such representations and warranties specifically refer to an earlier date, in which case they shall be true and correct as of such earlier date, and except that for purposes of this Section 5.16, the representations and warranties contained in Section 6.6 shall be deemed to refer to the most recent statements furnished pursuant to Section 8.11 (and the Borrower and each other Loan Party shall be deemed to have made all such representations and warranties on the proposed Extension Effective Date);

(iv)no Event of Default or Potential Default shall have occurred and be continuing on the date of such extension and after giving effect thereto;

90


(v)the Borrower shall deliver or cause to be delivered any customary legal opinions or other documents (including, without limitation, a resolution duly adopted by the board of directors (or equivalent governing body) of each Loan Party authorizing such extension) reasonably requested by Administrative Agent in connection with any such extension;

(vi)on or before the Expiration Date or Term Loan Maturity Date of each Non-Extending Lender (A) the Borrower shall have paid in full the principal of and interest on all of the Loans made by such Non-Extending Lender to the Borrower hereunder and (B) the Borrower shall have paid in full all other Obligations owing to such Lender hereunder and other under the other Loan Documents (it being understood that after giving effect to this clause (vi) with respect to any Non-Extending Lender, such Non-Extending Lender’s Commitment shall be deemed terminated on the then-existing Expiration Date or Term Loan Maturity Date and such Non-Extending Lender shall no longer be a “Lender” hereunder); and

(vii)if such extension is being effectuated in accordance with the last paragraph of Section 12.1 pursuant to which the terms of such extended Loans or Commitments are being amended, an amendment entered into by the parties required by such provision shall have become effective.

5.17Incremental Loans.

At any time, the Borrower may by written notice to the Administrative Agent elect to request the establishment of:

(a)one or more incremental term loan commitments (any such incremental term loan commitment, an “Incremental Term Loan Commitment”) to (i) increase the outstanding principal amount of the outstanding Term Loans or (ii) establish one or more additional term loan tranches (any such increase or additional term loan, an “Incremental Term Loan”); or

(b)one or more increases in the Revolving Credit Commitments (any such increase, an “Incremental Revolving Credit Commitment” and, together with the Incremental Term Loan Commitments, the “Incremental Loan Commitments”) to make revolving credit loans under the Revolving Credit Facility (any such increase, an “Incremental Revolving Credit Increase” and, together with the Incremental Term Loans, the “Incremental Loans”); provided that (i) the total aggregate principal amount for all such Incremental Loan Commitments shall not (as of any date of incurrence thereof) exceed the Incremental Cap and (ii) the total aggregate principal amount for each Incremental Loan Commitment (and the Incremental Loans made thereunder) shall not be less than a minimum principal amount of $5,000,000 or, if less, the remaining amount permitted pursuant to the foregoing clause (i).  Each such notice shall specify the date (each, an “Increased Amount Date”) on which the Borrower proposes that any Incremental Loan Commitment shall be effective, which shall be a date not less than twenty (20) Business Days after the date on which such notice is delivered to Administrative Agent.  The Borrower shall invite existing Lenders and may invite any Affiliate of any Lender and/or any Approved Fund, and/or any other Person approved by the Administrative Agent (such approval not to be unreasonably withheld, conditioned or delayed), to provide an Incremental Loan Commitment (any such Person,

91


an “Incremental Lender”); provided that both the Swingline Loan Lender and each Issuing Lender shall each approve each Incremental Lender providing any portion of an Incremental Revolving Credit Commitment (such approval not to be unreasonably withheld, conditioned or delayed).  Any proposed Incremental Lender offered or approached to provide all or a portion of any Incremental Loan Commitment may elect or decline, in its sole discretion, to provide such Incremental Loan Commitment.  No Loan or Commitment of any Lender shall be increased without the consent of such Lender, and none of the Lead Arrangers and/or their Affiliates shall have any obligation to arrange any Incremental Loans without its prior written agreement.  Any Incremental Loan Commitment shall become effective as of such Increased Amount Date; provided that:

(i)no Potential Default or Event of Default shall exist on such Increased Amount Date before or after giving effect to (1) any Incremental Loan Commitment, (2) the making of any Incremental Loans pursuant thereto and (3) any Permitted Acquisition consummated in connection therewith; provided that in connection with a requested borrowing of any Incremental Term Loan for the express purposes of funding, in whole or in part, the purchase price of a Permitted Acquisition that is a Limited Condition Transaction, the condition of this clause (i) shall be (x) no Potential Default or Event of Default exists or would exist at the time a binding purchase agreement for such transaction is entered into by the applicable Loan Party and (y) the absence of a Specified Event of Default at the time of and after giving effect to the consummation of such Limited Condition Transaction;

(ii)the Administrative Agent and the Lenders shall have received from the Borrower a Compliance Certificate demonstrating, in form and substance reasonably satisfactory to the Administrative Agent, that the Borrower is in compliance with the financial covenants specified in Sections 9.12 and 9.13, in each case based on the financial statements most recently delivered pursuant to Section 8.11(a) or 8.11(b), as applicable, both before and after giving effect (on a Pro Forma Basis) to (x) any Incremental Loan Commitment, (y) the making of any Incremental Loans pursuant thereto (with any Incremental Loan Commitment being deemed to be fully drawn) and (z) any Permitted Acquisition consummated in connection therewith;

(iii)each of the representations and warranties contained in Article 6 shall be true and correct in all material respects, except to the extent any such representation and warranty is qualified by materiality or reference to Material Adverse Change, in which case, such representation and warranty shall be true, correct and complete in all respects, on such Increased Amount Date (regardless of whether the Incremental Loan Commitments, as applicable, are actually drawn on the Increased Amount Date) with the same effect as if made on and as of such date (except for any such representation and warranty that by its terms is made only as of an earlier date, which representation and warranty shall remain true and correct as of such earlier date); provided that in connection with a requested borrowing of any Incremental Term Loan for the sole express purpose of financing in whole or in part the purchase price for a Limited Condition Transaction, (i) such representations and warranties shall be true and correct in all material respects (except to the extent any such representation and warranty is qualified by materiality or reference to Material Adverse Change, in which case, such representation and warranty shall be true, correct and complete in all respects) on and as of the date of effectiveness of the definitive

92


purchase agreement for such Limited Condition Transaction and (ii) the representations and warranties required to be correct and accurate at the time of the closing of such Limited Condition Transaction and funding of any applicable Incremental Term Loan will be limited to the Specified Representations;

(iv)the proceeds of any Incremental Loans shall be used for general corporate purposes of the Borrower and its Subsidiaries (including Permitted Acquisitions);

(v)any proposed Incremental Lender shall join this Agreement as a Lender pursuant to a Lender Joinder Agreement;

(vi)each Incremental Loan Commitment (and the Incremental Loans made thereunder) shall constitute Obligations of the Borrower and shall be secured and guaranteed with the other Obligations on a pari passu basis;

(1)in the case of each Incremental Term Loan:

(I)such Incremental Term Loan will mature and amortize in a manner reasonably acceptable to the Administrative Agent, the Incremental Lenders making such Incremental Term Loan and the Borrower, but will not in any event have a shorter weighted average life to maturity than the remaining weighted average life to maturity (as reasonably determined by the Administrative Agent) of the initial Term Loans or a maturity date earlier than the Term Loan Maturity Date;

(II)the Applicable Margin and pricing grid, if applicable, for such Incremental Term Loan shall be determined by the Administrative Agent, the applicable Incremental Lenders and the Borrower on the applicable Increased Amount Date;

(III)any Incremental Lender making any Incremental Term Loan shall be entitled to the same voting rights as the existing Lenders under the Term Loan Facility and (unless otherwise agreed by the applicable Incremental Lenders; provided that no such agreement shall allow the Incremental Term Loans to be prepaid prior to the initial Term Loans) each Incremental Term Loan shall receive proceeds of prepayments on the same basis as the initial Term Loans (such prepayments to be shared pro rata on the basis of the original aggregate funded amount thereof); and

(IV)except as provided above, all other terms and conditions applicable to such Incremental Term Loan shall, except to the extent otherwise provided in this Section 5.17, be identical to the terms and conditions applicable to the initial Term Loans;

(2)in the case of each Incremental Revolving Credit Increase:

93


(I)such Incremental Revolving Credit Increase shall be part of the Revolving Credit Facility, shall mature on the Expiration Date, shall bear interest and be entitled to fees, in each case at the rate applicable to the Revolving Credit Facility, and shall otherwise be subject to the same terms and conditions as the Revolving Credit Facility (other than with respect to the payment of any upfront and/or arrangement fees in connection with the establishment thereof);

(II)any Incremental Lender making any Incremental Revolving Credit Increase shall be entitled to the same voting rights as the existing Lenders under the Revolving Credit Facility and (unless otherwise agreed by the applicable Incremental Lenders; provided that no such agreement shall allow the Revolving Credit Commitments with respect to the Incremental Revolving Credit Increase to be terminated prior to termination of the existing Revolving Credit Commitments) each Revolving Credit Loan funded by an Incremental Revolving Credit Increase shall receive proceeds of prepayments on the same basis as the existing Revolving Credit Loans (such prepayments to be shared pro rata on the basis of the original aggregate funded amount thereof); and

(III)the outstanding Revolving Credit Loans and Ratable Shares of Swingline Loans and Letter of Credit Obligations will be reallocated by the Administrative Agent on the applicable Increased Amount Date among the Lenders to the Revolving Credit Facility (including the Incremental Lenders providing such Incremental Revolving Credit Increase) in accordance with their revised Ratable Shares (and the Lenders to the Revolving Credit Facility (including the Incremental Lenders providing such Incremental Revolving Credit Increase) agree to make all payments and adjustments necessary to effect such reallocation and the Borrower shall pay any and all costs required).

(3)Incremental Loan Commitments shall be effected pursuant to such amendments to this Agreement and the other Loan Documents as may be necessary or appropriate, in the opinion of the Administrative Agent, to effect the provisions of this Section 5.17, without the consent of any other Lenders; and

(4)the Borrower shall deliver or cause to be delivered any customary legal opinions or other documents (including, without limitation, a resolution duly adopted by the board of directors (or equivalent governing body) of each Loan Party authorizing such Incremental Loans and/or Incremental Loan Commitments) reasonably requested by Administrative Agent in connection with any such transaction.

(c)The Incremental Lenders shall be included in any determination of the Required Lenders and, unless otherwise agreed, the Incremental Lenders will not constitute a separate voting class for any purposes under this Agreement.

94


(d)On any Increased Amount Date on which any Incremental Term Loan Commitment becomes effective, subject to the foregoing terms and conditions, each Incremental Lender with an Incremental Term Loan Commitment shall make, or be obligated to make, an Incremental Term Loan to the Borrower in an amount equal to its Incremental Term Loan Commitment and shall become a Lender hereunder with respect to such Incremental Term Loan Commitment and the Incremental Term Loan made pursuant thereto.

(e)On any Increased Amount Date on which any Incremental Revolving Credit Increase becomes effective, subject to the foregoing terms and conditions, each Incremental Lender with an Incremental Revolving Credit Commitment shall become a Lender under the Revolving Credit Facility hereunder with respect to such Incremental Revolving Credit Commitment.

ARTICLE 6

REPRESENTATIONS AND WARRANTIES

On the Funding Date and any date thereafter on which the representations and warranties set forth herein are required to be made hereunder (or deemed to be made hereunder), the Loan Parties, jointly and severally, represent and warrant to the Administrative Agent and each of the Lenders as follows:

6.1Organization and Qualification; Power and Authority; Compliance With Laws; Title to Properties; Event of Default.

(a)Each Loan Party and each Subsidiary of each Loan Party:

(i)is a corporation, partnership or limited liability company duly organized or formed, validly existing and in good standing under the laws of its jurisdiction of organization;

(ii)has all necessary lawful power and authority, and all necessary licenses, approvals and authorizations to own or lease its properties and to engage in the business it presently conducts or currently proposes to conduct, except where the failure to do so would not reasonably be expected to have or result in a Material Adverse Change;

(iii)is duly licensed or qualified and in good standing under the laws of each jurisdiction where its ownership, lease or operations of properties, or the conduct of its business, requires such qualification except, in each case referred to in this clause (a)(iii), to the extent failure to do so would not reasonably be expected to have or result in a Material Adverse Change;

(iv)has full power and authority to enter into, execute, deliver and carry out this Agreement and the other Loan Documents to which it is a party, to incur the Indebtedness contemplated by the Loan Documents and to perform its Obligations, and all such actions have been duly authorized by all necessary action and proceedings on its part;

(v)is in compliance in all material respects with all applicable Laws (other than Environmental Laws which are specifically addressed in Section 6.14) in all

95


jurisdictions in which any Loan Party or Subsidiary of any Loan Party is presently or will be doing business except where (i) the failure to do so, either individually or in the aggregate, would not reasonably be expected to have or result in a Material Adverse Change or (ii) any non-compliance is being contested in good faith by appropriate proceedings diligently conducted;

(vi)has good and marketable title to or valid leasehold interest in all properties, assets and other rights which it purports to own or lease or which are reflected as owned or leased on its books and records, free and clear of all Liens and encumbrances other than Permitted Liens, except where the failure to do so, either individually or in the aggregate, would not reasonably be expected to have or result in a Material Adverse Change; and

(vii)has procured all material import, export or other licenses, permits or certificates for the import or handling of any goods or other Collateral imported or handled in the Ordinary Course of Business and such licenses permits or certificates are in effect, and the Loan Parties and their respective Subsidiaries have complied with all foreign and domestic laws with respect to the shipment and importation of any goods or Collateral, except where such noncompliance, non-procurement or non-effectiveness could not reasonably be expected to have or result in a Material Adverse Change.

(b)No Event of Default or Potential Default has occurred and is continuing or would result from the performance by any Loan Party of its Obligations.

6.2Loan Parties; Subsidiaries and Owners; Investment Companies.  All of the Equity Interests in each Loan Party outstanding have been duly authorized and validly issued and are fully paid and non-assessable (to the extent that the jurisdiction of formation of such entity has such concepts).  Set forth on Schedule 6.2 is the following information, which is true and complete in all respects as of the Closing Date and as of the last date such Schedule 6.2 was required to be updated in accordance with Section 8.12(j): (a) the name of Holdings, each of Holdings’ Subsidiaries, its jurisdiction of organization and the amount, percentage and type of Equity Interests in such Subsidiary, (b) the name of each holder of a Subsidiary Equity Interest in each subsidiary, and the amount thereof, and (c) any options, warrants or other rights outstanding to purchase any such Equity Interests referred to in clause (a) or (b).  Holdings and each Subsidiary of Holdings has good and marketable title to all of the Equity Interests in its Subsidiaries that it purports to own, free and clear in each case of any Lien and all such Equity Interests have been duly authorized and validly issued, and are fully paid and nonassessable (to the extent that the jurisdiction of formation of such Person has such concepts). No Loan Party has any equity investment in another entity not disclosed on Schedule 6.2.  None of the Loan Parties or Subsidiaries of any Loan Party is an “investment company” registered or required to be registered under the Investment Company Act of 1940 or under the “control” of an “investment company” as such terms are defined in the Investment Company Act of 1940.

6.3Validity and Binding Effect.  This Agreement has been, and each of the other Loan Documents when delivered will have been, (a) duly authorized, validly executed and delivered by each Loan Party, and (b) constitutes, or will constitute, legal, valid and binding obligations of each Loan Party which is or will be a party thereto, enforceable against such Loan Party in accordance

96


with its terms, except as the enforceability may be limited by applicable bankruptcy, insolvency, reorganization, receivership, moratorium and other applicable Laws affecting creditors’ rights generally and by the application of general equitable principles (whether considered in proceedings at law or in equity).

6.4No Conflict; Material Agreements; Consents.  Neither the execution and delivery of this Agreement or the other Loan Documents by any Loan Party nor the consummation of the transactions herein or therein contemplated or compliance with the terms and provisions hereof or thereof by any of them will conflict with, constitute a default under or result in any breach of (a) the terms and conditions of the certificate of incorporation, bylaws, certificate of limited partnership, partnership agreement, certificate of formation, limited liability company agreement or other organizational documents of any Loan Party or (b) any applicable Law or any material agreement or instrument or order, writ, judgment, injunction or decree to which any Loan Party or any of its Subsidiaries is a party or by which it or any of its Subsidiaries is bound or to which it is subject or by which it is affected, or result in the creation or enforcement of any Lien whatsoever upon any property (now or hereafter acquired) of any Loan Party or any of its Subsidiaries (other than Liens granted under the Loan Documents).  There is no default by any Loan Party or any of its Subsidiaries under any such material agreement (referred to above) and none of the Loan Parties or their Subsidiaries is bound by any contractual obligation, or subject to any restriction in any organization document, or any requirement of Law which, in each instance, would reasonably be expected to have or result in a Material Adverse Change.  No consent, approval, exemption, order or authorization of, or a registration or filing with, or notice to, any Official Body or any other Person is required by any applicable Law or any agreement in connection with the execution, delivery and performance by any Loan Party of this Agreement and the other Loan Documents, except such as has been obtained or issued or are necessary to perfect Liens created pursuant to the Loan Documents.  All necessary import, export or other licenses, permits or certificates for the import or handling of any goods or other Collateral have been procured and are in effect, and the Loan Parties and Subsidiaries have complied with all applicable foreign and domestic laws with respect to the shipment and importation of any goods or Collateral, except where the failure to procure, maintain, or comply would not reasonably be expected to have or result in a Material Adverse Change.

6.5Litigation.  There are no actions, suits, claims, proceedings or investigations pending or, to the knowledge of any Loan Party, threatened in writing against such Loan Party or any Subsidiary of such Loan Party or any of their properties at law or in equity before any Official Body which (a) individually or in the aggregate would reasonably be expected to result in any Material Adverse Change or (b) purport to affect the legality, validity, binding effect or enforceability of any aspect of this Agreement or any other Loan Document.  None of the Loan Parties or any Subsidiaries of any Loan Party is in violation of any order, writ, injunction or any decree of any Official Body which would reasonably be expected to result in any Material Adverse Change.

6.6Financial Statements.

(a)Historical Statements.  Holdings has delivered to the Administrative Agent copies of its audited consolidated year-end balance sheet, statement of income or operations, shareholders’ equity and cash flows, for and as of the end of the Fiscal Year ended December 31,

97


2020. In addition, Holdings has delivered to the Administrative Agent copies of its unaudited consolidated interim balance sheet, statement of income or operations, shareholders’ equity and cash flows, as of the end of the Fiscal Quarter ended March 31, 2021 (all such annual and interim statements being collectively referred to as the “Statements”). The Statements present fairly in all material respects the consolidated financial position of Holdings and its Subsidiaries as of the respective dates thereof and the results of operations for the fiscal periods then ended in accordance with GAAP consistently applied throughout the period covered thereby, subject (in the case of the interim statements) only to normal year-end audit adjustments and the absence of footnotes.

(b)Financial Projections.  The Borrower has delivered to the Administrative Agent a summary of projected financial statements (including, without limitation, statements of operations together with a detailed explanation of the assumptions used in preparing such projected financial statements) of Holdings and its Subsidiaries for the period from the Closing Date through July 23, 2026 derived from various assumptions of the Loan Parties’ management (the “Projections”).  The Projections represent a reasonable range of possible results in light of the history of the business, present and foreseeable conditions and the intentions of Holdings’ management, it being understood that such Projections are (i) as to future events and not to be viewed as facts, (ii) are subject to significant uncertainties and contingencies, many of which are beyond the Loan Parties’ control, and (iii) no assurance can be given that the Projections will be realized.

6.7No Material Adverse Change.  Since December 31, 2020, there has been no event or circumstance that has had or would reasonably be expected to have or result in a Material Adverse Change.

6.8Margin Stock.  None of the Loan Parties or any Subsidiaries of any Loan Party engages or intends to engage principally, or as one of its important activities, in the business of extending credit for the purpose, immediately, incidentally or ultimately, of purchasing or carrying margin stock (within the meaning of Regulation U, T or X as promulgated by the Board of Governors of the Federal Reserve System).  No part of the proceeds of any Loan has been or will be used, immediately, incidentally or ultimately, to purchase or carry any margin stock or to extend credit to others for the purpose of purchasing or carrying any margin stock or which is inconsistent with the provisions of the regulations of the Board of Governors of the Federal Reserve System.  None of the Loan Parties or any Subsidiary of any Loan Party holds or intends to hold margin stock in such amounts that more than 25% of the reasonable value of the assets of any Loan Party or Subsidiary of any Loan Party are or will be represented by margin stock.

6.9Full Disclosure.  The Loan Parties have disclosed to the Lenders all agreements, instruments and corporate or other restrictions to which any Loan Party or any Subsidiary is subject, and all other matters known to it, that, individually or in the aggregate, could reasonably be expected to result in a Material Adverse Change. None of the reports, financial statements, certificates or other information furnished by or on behalf of any Loan Party or any Subsidiary to the Administrative Agent or any Lender in connection with the negotiation of this Agreement or any other Loan Document (as modified or supplemented by other information so furnished), taken as a whole, contains any material misstatement of fact or omits to state any material fact necessary to make the statements therein, in the light of the circumstances under which they were made, not misleading in any material respect; provided that, with respect to projected financial information,

98


the Loan Parties represent only that such information was prepared in good faith based upon assumptions believed to be reasonable at the time delivered and, if such projected financial information was delivered prior to the Closing Date, as of the Closing Date (it being understood that forecasts and projections are subject to contingencies and no assurance can be given that any forecast or projection will be realized).

6.10Taxes.  All federal and state income tax returns and all other material tax returns required by Law to have been filed with respect to each Loan Party and each Subsidiary of each Loan Party have been filed, and payment or adequate provision has been made for the payment of all federal and state income taxes and all other material taxes, fees, assessments and other governmental charges which have or may become due pursuant to said returns or otherwise levied or imposed upon them, their properties, income or assets which are due and payable, except to the extent that such taxes, fees, assessments and other charges are being contested in good faith by appropriate proceedings diligently conducted and for which such reserves or other appropriate provisions, if any, as shall be required by GAAP, shall have been made.

6.11Intellectual Property.  Each Loan Party and each Subsidiary owns or has the lawful right to use all Intellectual Property used in its business, without conflict with any rights of others that would reasonably be expected to have or result in a Material Adverse Change. Except as disclosed on Schedule 6.11, there are no pending or, to any Loan Party’s knowledge, threatened Intellectual Property Claims with respect to any Loan Party, any Subsidiary or any of their property (including any Intellectual Property) that has resulted or could reasonably be expected to result in liability of a Loan Party with respect to any such Intellectual Property Claim in excess of $3,000,000.  Except as disclosed on Schedule 6.11, no Loan Party nor any Subsidiary pays or owes any Royalty or other compensation to any Person with respect to any Intellectual Property except for Royalties and compensation paid or owed in connection with off-the-shelf software used in the Ordinary Course of Business or Royalties and compensation paid or owed in an amount less than $5,000,000 through the Term Loan Maturity Date.  Set forth on Schedule 6.11 as of the Closing Date and as of the last date such Schedule 6.11 was required to be updated in accordance with Section 8.12(j) are all registered trademarks, owned common law trademarks material to the business of the Loan Parties, taken as a whole, trademark applications, patents, patent applications, registered copyrights owned or licensed and registered designs as the case may be, by any Loan Party.

6.12Ownership of Property; Liens in the Collateral.

(a)Each Loan Party and its Subsidiaries has good record and marketable title in fee simple to all real property owned by such Loan Party or Subsidiary, or valid leasehold interests in all real property leased by such Loan Party or Subsidiary, except for such defects in title or leasehold interest as would not reasonably be expected to have or result in a Material Adverse Change.

(b)The Liens in the Collateral granted to the Administrative Agent for the benefit of the Secured Parties pursuant to the Collateral Documents constitute and will continue to constitute first priority, perfected security interests, except in the case of (i) Permitted Liens, to the extent any such Permitted Liens would have priority over Liens in favor of the Administrative

99


Agent pursuant to any applicable Law and (ii) Liens perfected only by possession, to the extent the Administrative Agent has not obtained or does not maintain possession of such Collateral.

6.13Insurance.  The properties of each Loan Party and each of its Subsidiaries are insured pursuant to policies and other bonds which are valid and in full force and effect and which provide coverage from reputable and financially sound insurers which are not Affiliates of any Loan Party in amounts, subject to deductibles and self-insurance retentions and covering such assets and risks, which are customarily maintained by comparable companies engaged in the same business as such Loan Party and its Subsidiaries in the locations where the applicable Loan Party conducts business.

6.14ERISA Compliance. (a) Each Plan is in compliance in all material respects with the applicable provisions of ERISA, the Code and other federal or state Laws.  Each Plan that is intended to qualify under Section 401(a) of the Code has received from the IRS a favorable determination or opinion letter, which has not by its terms expired, that such Plan is so qualified, or such Plan is entitled to rely on an IRS advisory or opinion letter with respect to an IRS-approved master and prototype or volume submitter plan, or a timely application for such a determination or opinion letter is currently being processed by the IRS with respect thereto; and, to the best knowledge of Borrower, nothing has occurred which would prevent, or cause the loss of, such qualification.  Borrower and each member of the ERISA Group have made all required contributions to each Pension Plan subject to Sections 412 or 430 of the Code, and no application for a funding waiver or an extension of any amortization period pursuant to Sections 412 or 430 of the Code has been made with respect to any Pension Plan.

(b)There are no pending or, to the best knowledge of the Borrower, threatened claims, actions or lawsuits, or action by any Official Body, with respect to any Plan that could reasonably be expected to result in a Material Adverse Change.  There has been no prohibited transaction or violation of the fiduciary responsibility rules with respect to any Plan that has resulted or would reasonably be expected to have or result in a Material Adverse Change.

(c)Except as would not reasonably be expected to have or result in a Material Adverse Change (i) No ERISA Event has occurred or is reasonably expected to occur; (ii) no Pension Plan has any unfunded pension liability (i.e., excess of benefit liabilities over the current value of that Pension Plan’s assets, determined pursuant to the assumptions used for funding the Pension Plan for the applicable plan year in accordance with Section 430 of the Code); (iii) neither Borrower nor any member of the ERISA Group has incurred, or reasonably expects to incur, any liability under Title IV of ERISA with respect to any Pension Plan (other than premiums due and not delinquent under Section 4007 of ERISA); (iv) neither Borrower nor any member of the ERISA Group has incurred, or reasonably expects to incur, any liability (and, to the knowledge of the Loan Parties, no event has occurred which, with the giving of notice under Section 4219 of ERISA, would result in such liability) under Section 4201 of ERISA, with respect to a Multiemployer Plan; (v) neither Borrower nor any member of the ERISA Group has received notice pursuant to Section 4242(a)(1)(B) of ERISA that a Multiemployer Plan is in reorganization and that additional contributions are due to the Multiemployer Plan pursuant to Section 4243 of ERISA; (vi) neither Borrower nor any member of the ERISA Group has engaged in a transaction that could be subject to Sections 4069 or 4212(c) of ERISA; and (vii) no Pension Plan or Multiemployer Plan has been terminated by the plan administrator thereof nor by the PBGC, and, to the knowledge of the Loan

100


Parties, no event or circumstance has occurred or exists that could reasonably be expected to cause the PBGC to institute proceedings under Title IV of ERISA to terminate any Pension Plan or Multiemployer Plan.

6.15Environmental Matters.

(a)Except as disclosed on Schedule 6.15, each Loan Party is, and for the past five (5) years has been, in material compliance with applicable Environmental Laws.  The matters described on Schedule 6.15 could not reasonably be expected, individually or in the aggregate, to result in a Material Adverse Change.

(b)Neither any Loan Party or any of its Subsidiaries nor, to the knowledge of Borrower, any other Person has caused any release of any Hazardous Materials at or from properties owned, lease or operated by any Loan Party in violation of or in a manner that could give rise to liability under applicable Environmental Laws that could reasonably be expected, individually or in the aggregate, to result in a Material Adverse Change.

(c)No Loan Party nor any of its Subsidiaries has received any written notice of violation, alleged violation, non-compliance, liability or potential liability regarding environmental matters, Hazardous Materials, or compliance with Environmental Laws that, if adversely determined, could reasonably be expected, individually or in the aggregate to, result in a Material Adverse Change, nor does any Loan Party have knowledge that any such notice will be received or is being threatened.

(d)No judicial proceedings or governmental or administrative action is pending, or to the knowledge of the Borrower, threatened, under any Environmental Law to which any Loan Party or any of its Subsidiaries are or will be named as a potentially responsible party, nor are there any consent decrees or other decrees, consent orders, administrative orders or other orders, or other administrative or judicial requirements outstanding under any applicable Environmental Law with respect to any Loan Party or any of its Subsidiaries or operations conducted in connection therewith that could reasonably be expected, individually or in the aggregate, to result in a Material Adverse Change.

(e)To the knowledge of the Borrower, no Loan Party nor any of its Subsidiaries has arranged for disposal of any Hazardous Material in violation of or in a manner or location that could result liability under any applicable Environmental Law that could reasonably be expected to result in a Material Adverse Change.

6.16Solvency.  On the Funding Date and after giving effect to the initial Loans hereunder, each of the Loan Parties is Solvent.

6.17Sanctions and other Anti-Terrorism Laws.  No: (a) Covered Entity: (i) is a Sanctioned Person, nor any employees, officers, directors, affiliates, consultants, brokers or agents acting on a Covered Entity’s behalf in connection with this Agreement is a Sanctioned Person; (ii) directly, or, to the knowledge of the Loan Parties indirectly through any third party, engages in any transactions or other dealings with any Sanctioned Person or Sanctioned Jurisdiction, or which otherwise are prohibited by any Laws of the United States or laws of other applicable jurisdictions

101


relating to economic sanctions and other Anti-Terrorism Laws; (b) Collateral is Embargoed Property.

6.18Anti-Corruption Laws.  Each Covered Entity (a) is in compliance with all Anti-Corruption Laws in all material respects and (b) has instituted and maintains policies and procedures designed to promote and achieve compliance with such Anti-Corruption Laws.

6.19Certificate of Beneficial Ownership.  To the knowledge of the Borrower, the Certificate of Beneficial Ownership executed and delivered to the Administrative Agent and Lenders for the Borrower on or prior to the date of this Agreement, as updated from time to time in accordance with this Agreement, is accurate, complete and correct as of the date hereof and as of the date any such update is delivered. The Borrower acknowledges and agrees that the Certificate of Beneficial Ownership is one of the Loan Documents.

6.20No Affected Financial Institutions.  None of Holdings or any Subsidiary is an Affected Financial Institution.

6.21Surety Obligations.  No Loan Party or Subsidiary is obligated as surety or indemnitor under any bond or other contract that assures payment or performance of any obligation of any Person, except as permitted hereunder or as set forth on Schedule 6.21.

6.22Subordination of Subordinated Debt.  The Revolving Credit Loans, the Term Loans and all other Obligations of the Loan Parties to the Lenders and the Administrative Agent under this Agreement and all other Loan Documents, and all amendments, modifications, extensions, renewals, refinancings or refundings of any of the foregoing, constitute “Senior Indebtedness”, “Senior Debt”, “Designated Senior Indebtedness” or any similar designation under and as defined in any agreement governing any Subordinated Indebtedness of the Borrower and the subordination provisions set forth in each such agreement are legally valid and enforceable against the parties thereto, except as the enforceability may be limited by applicable bankruptcy, insolvency, reorganization, receivership, moratorium and other applicable Laws affecting creditors’ rights generally and by the application of general equitable principles (whether considered in proceedings at law or in equity).

6.23No Casualty.  Neither the businesses nor the properties of any Loan Party or any of its Subsidiaries are affected by any fire, explosion, accident, strike, lockout or other labor dispute, drought, storm, hail, earthquake, embargo, act of God or of the public enemy or other casualty (whether or not covered by insurance) that, either individually or in the aggregate, would reasonably be expected to have or result in a Material Adverse Change.

ARTICLE 7

CONDITIONS OF LENDING AND ISSUANCE OF LETTERS OF CREDIT

7.1Conditions to Effectiveness.  This Agreement shall not become effective until the date on which each of the following conditions is satisfied (each of which were previously satisfied on the Closing Date):

102


(a)Deliveries.  On the Closing Date, the Administrative Agent shall have received each of the following in form and substance satisfactory to the Administrative Agent:

(i)this Agreement duly executed by the parties hereto; and

(ii)a certificate of each of the Loan Parties signed by an Authorized Officer, dated the Closing Date certifying that (A) no Event of Default or Potential Default has occurred and is continuing and (B) no Material Adverse Change has occurred since December 31, 2020 (and the Administrative Agent and Required Lenders shall not have otherwise determined).

(b)[Reserved].

(c)Payment of Fees.  The Borrower shall have paid all fees and expenses payable on or before the Closing Date as required by this Agreement, the Administrative Agent’s Letter or any other Loan Document.

Without limiting the generality of the provisions of the last paragraph of Section 11.3, for purposes of determining compliance with the conditions specified in this Section 7.1, each Lender that has signed this Agreement shall be deemed to have consented to, approved or accepted or to be satisfied with, each document or other matter required thereunder to be consented to or approved by or acceptable or satisfactory to a Lender unless the Administrative Agent shall have received notice from such Lender prior to the proposed Closing Date specifying its objection thereto.

7.2Conditions to Funding Date. The obligation of each Lender to make Loans and of the Issuing Lenders to issue Letters of Credit hereunder is subject to the performance by each of the Loan Parties of its Obligations to be performed hereunder at or prior to the making of any such Loans or issuance of such Letters of Credit and to the satisfaction of the following further conditions:

(a)Deliveries.  On the Funding Date (or at such other time as provided in this Section 7.2), the Administrative Agent shall have received each of the following in form and substance satisfactory to the Administrative Agent:

(i)a certificate of each of the Loan Parties signed by an Authorized Officer, dated the Funding Date stating that (A) the Loan Parties are in compliance with each of the covenants and conditions hereunder and under the Loan Documents, (B) no Material Adverse Change has occurred since December 31, 2020 (and the Administrative Agent and Required Lenders shall not have otherwise determined), (C) there is no action, suit, investigation or proceeding pending, or to the knowledge of the Borrower, threatened in any court or before any arbitrator or Official Body that would reasonably be expected to have or result in a Material Adverse Change, and (D) the conditions stated in this Section 7.2 and Section 7.3 have been satisfied;

(ii)a certificate dated the Funding Date and signed by an Authorized Officer or Secretary of each of the Loan Parties, certifying as appropriate as to: (A) all action taken by each Loan Party to validly authorize, duly execute and deliver this Agreement and the other Loan Documents and attaching copies of such resolution or other

103


corporate or organizational action; (B) the names, authority and capacity of the Authorized Officers authorized to sign the Loan Documents and their true signatures; and (C) copies of its organizational documents as in effect on the Funding Date, to the extent applicable, certified as of a sufficiently recent date prior to the Funding Date by the appropriate state official where such documents are filed in a state office together with certificates from the appropriate state officials as to due organization and the continued valid existence, good standing and qualification to engage in its business of each Loan Party in the state of its organization;

(iii)to the extent not delivered on the Funding Date, each of the Loan Documents duly executed by the parties thereto;

(iv)written opinion(s) of counsel for the Loan Parties, dated the Funding Date and in form and substance satisfactory to the Administrative Agent;

(v)on or prior to the Funding Date, certificates of insurance evidencing that adequate insurance, including flood insurance, if applicable, required to be maintained under this Agreement is in full force and effect, with the Administrative Agent indicated as additional insured and lender loss payable, as applicable;

(vi)a duly completed Compliance Certificate as of the last day of the Fiscal Quarter of Holdings most recently ended prior to the Funding Date, signed by an Authorized Officer of the Borrower, together with reasonably detailed calculations attached thereto demonstrating that, after giving effect to the incurrence of Loans on the Funding Date and the Transactions on a Pro Forma Basis, (A) the Consolidated Total Net Leverage Ratio does not exceed 3.20 to 1.00 and (B); the Loan Parties are in compliance with Section 9.12.

(vii)all material consents, licenses and approvals required for the delivery and performance by any Loan Party of any Loan Document and the enforceability of any Loan Document against such Loan Party, certified by an Authorized Officer that each is in full force and effect and none other is so required or necessary;

(viii)evidence that all Indebtedness not permitted under Section 9.1 shall have been paid in full and that all necessary termination statements, release statements and other releases in connection with all Liens (other than Permitted Liens) have been filed or satisfactory arrangements have been made for such filing (including payoff letters, if applicable, in form and substance reasonably satisfactory to the Administrative Agent);

(ix)receipt by the Administrative Agent of the following:

(A)searches of Uniform Commercial Code filings in the jurisdiction of formation of each Loan Party;

(B)Uniform Commercial Code financing statements for each appropriate jurisdiction as is necessary, in the Administrative Agent’s reasonable discretion, to perfect the Administrative Agent’s security interest in the Collateral;

104


(C) subject to Section 8.14(b), all certificates evidencing any certificated Equity Interests pledged to the Administrative Agent pursuant to the Security Agreement or any other pledge agreement, together with duly executed in blank, undated stock powers attached thereto (unless, with respect to the pledged Equity Interests of any Foreign Subsidiary, such stock powers are deemed unnecessary by the Administrative Agent in its reasonable discretion under the Law of the jurisdiction of organization of such Person);

(D)searches of ownership of, and Liens on, United States registered intellectual property owned by each Loan Party in the appropriate governmental offices; and

(E)duly executed notices of grant of security interest in the form required by any security agreement as are necessary, in the Administrative Agent’s reasonable discretion, to perfect the Administrative Agent’s security interest in the United States registered intellectual property owned by the Loan Parties (if and to the extent perfection may be achieved in the United States Patent and Trademark Office or the United States Copyright Office by such filings).

(x)a certificate of an Authorized Officer of the Borrower as to the Solvency of each of the Loan Parties taken as a whole after giving effect to the transactions contemplated by this Agreement;

(xi)the Statements and the Projections;

(xii)[reserved];

(xiii)the Administrative Agent and each Lender shall have received, in form and substance acceptable to the Administrative Agent and each Lender an executed Certificate of Beneficial Ownership and such other documentation and other information requested in connection with applicable “know your customer” and anti-money laundering rules and regulations, including the USA PATRIOT Act;

(xiv)such other documents in connection with such transactions as the Administrative Agent or its counsel may reasonably request.

(b)Payment of Fees.  The Borrower shall have paid all fees and expenses payable on or before the Funding Date as required by this Agreement, the Administrative Agent’s Letter or any other Loan Document.

Without limiting the generality of the provisions of the last paragraph of Section 11.3, for purposes of determining compliance with the conditions specified in this Section 7.2, each Lender that has signed this Agreement shall be deemed to have consented to, approved or accepted or to be satisfied with, each document or other matter required thereunder to be consented to or approved by or acceptable or satisfactory to a Lender unless the Administrative Agent shall have received notice from such Lender prior to the proposed Funding Date specifying its objection thereto.

7.3Each Loan or Letter of Credit.  At the time of making any Loans or issuing, extending or increasing any Letters of Credit and after giving effect to the proposed extensions of credit:

105


(a)subject to the terms of Section 1.5 with respect to any Limited Condition Transaction, the representations, warranties of the Loan Parties shall then be true and correct in all material respects (unless qualified by materiality or reference to the absence of a Material Adverse Change, in which event shall be true and correct), except to the extent that such representations and warranties specifically refer to an earlier date, in which case they shall be true and correct as of such earlier date, and except that for purposes of this Section 7.3, the representations and warranties contained in Section 6.6 shall be deemed to refer to the most recent statements furnished pursuant to Section 8.11,

(b)subject to the terms of Section 1.5 with respect to any Limited Condition Transaction, no Event of Default or Potential Default shall have occurred and be continuing or would result from such Loan or Letter of Credit or the application of the proceeds thereof,

(c)the Borrower shall have delivered to the Administrative Agent a duly executed and completed Loan Request or to the applicable Issuing Lender an application for a Letter of Credit, as the case may be.

Each Loan Request and Letter of Credit application shall be deemed to be a representation that the conditions specified in Section 7.1, Section 7.2 and this Section 7.3 have been satisfied on or prior to the date thereof.

ARTICLE 8

AFFIRMATIVE COVENANTS

On the Funding Date and thereafter, each Loan Party hereby covenants and agrees that until the Facility Termination Date, the Loan Party shall comply at all times with the following covenants:

8.1Preservation of Existence, Etc.  Each Loan Party shall, and shall cause each of its Subsidiaries to, (a) maintain its legal existence as a corporation, limited partnership or limited liability company and its license or qualification and good standing in each jurisdiction in which its ownership or lease of property or the nature of its business makes such license or qualification necessary, except as otherwise expressly permitted in Section 9.5 (b) maintain all licenses, consents, permits, franchises, rights and qualifications necessary for the standard operation of its business, except where the maintenance thereof would not reasonably be expected to have or result in a Material Adverse Change, and (c) maintain and preserve all intellectual properties, including without limitation trademarks, trade names, patents, copyrights and other marks, registered and necessary for the standard operation of its business except where the maintenance thereof would not reasonably be expected to have or result in a Material Adverse Change.

8.2Payment of Liabilities, Including Taxes, Etc.  Each Loan Party shall, and shall cause each of its Subsidiaries to, duly pay and discharge (a) all liabilities to which it is subject or which are asserted against it, promptly as and when the same shall become due and payable, including all taxes, assessments and governmental charges upon it or any of its properties, assets, income or profits, prior to the date on which penalties attach thereto, except to the extent that such liabilities, including taxes, assessments or charges, are being contested in good faith and by appropriate and lawful proceedings diligently conducted and for which such reserve or other appropriate

106


provisions, if any, as shall be required by GAAP shall have been made and (b) all lawful and valid claims which, if unpaid, would result in the attachment of a Lien (other than a Permitted Lien) on its property as a matter of law or contract.

8.3Maintenance of Insurance.  Each Loan Party shall, and shall cause each of its Subsidiaries to, insure its properties and assets against loss or damage by fire and such other insurable hazards as such assets are commonly insured (including fire, extended coverage, property damage, workers’ compensation, public liability and business interruption insurance) and against other risks (including errors and omissions) in such amounts as similar properties and assets are insured by prudent companies in similar circumstances carrying on similar businesses, and with reputable and financially sound insurers, including self-insurance to the extent customary or acceptable to the Administrative Agent, all as reasonably determined by the Administrative Agent.  At the request of the Administrative Agent, the Loan Parties shall deliver to the Administrative Agent and each of the Lenders (x) on the Funding Date and annually thereafter an original certificate of insurance signed by the Loan Parties’ independent insurance broker describing and certifying as to the existence of the insurance on the Collateral required to be maintained by this Agreement and the other Loan Documents, together with a copy of the endorsement described in the next sentence attached to such certificate, and (y) from time to time a summary schedule indicating all insurance then in force with respect to each of the Loan Parties.  Such policies of insurance shall contain special endorsements which include the provisions specified below or are otherwise in form acceptable to the Administrative Agent in its discretion.  The applicable Loan Parties shall notify the Administrative Agent promptly of any occurrence causing a material loss or decline in value of the Collateral and the estimated (or actual, if available) amount of such loss or decline.

8.4Maintenance of Properties and Leases.  Each Loan Party shall, and shall cause each of its Subsidiaries to, maintain in good repair, working order and condition (ordinary wear and tear excepted) in accordance with the general practice of other businesses of similar character and size, all of those properties useful or necessary to its business, and from time to time, such Loan Party will make or cause to be made all necessary and appropriate repairs, renewals or replacements thereof, except where the failure to do so would not reasonably be expected to have or result in a Material Adverse Change.

8.5Inspection Rights.  Each Loan Party shall, and shall cause each of its Subsidiaries to, permit any of the officers or authorized employees or representatives of the Administrative Agent or any of the Lenders to visit and inspect any of its properties and to examine and make excerpts from its books and records and discuss its business affairs, finances and accounts with its officers, directors and independent accountants, all in such detail and at such times and as often as any of the Lenders may reasonably request; provided that (i) each Lender shall provide the Borrower and the Administrative Agent with reasonable notice prior to any visit or inspection and (ii) any such visit and inspection shall be at the expense of the Borrower only once per year except when an Event of Default has occurred and is continuing.

8.6Keeping of Records and Books of Account.  Each Loan Party shall, and shall cause each of its Subsidiaries to, maintain and keep books of record and account which enable Holdings and its Subsidiaries to issue financial statements in accordance with GAAP consistently applied and as otherwise required by applicable Laws of any Official Body having jurisdiction over

107


Holdings or any Subsidiary of Holdings, and in which full, true and correct entries shall be made in all material respects of all financial transactions.

8.7Compliance with Laws; Use of Proceeds.

(a)Each Loan Party shall, and shall cause each of its Subsidiaries to, comply in all material respects with all applicable Laws, including all Environmental Laws, Gun Control Laws and the FLSA, in all respects; except (i) where such compliance with any law is being contested in good faith by appropriate proceedings diligently conducted, and (ii) that it shall not be deemed to be a violation of this Section 8.7 if any failure to comply with any Law would not result in fines, penalties, remediation costs, other similar liabilities or injunctive relief which in the aggregate would constitute a Material Adverse Change.

(b)The Loan Parties will use the proceeds of (i) the Revolving Credit Facility for working capital, Capital Expenditures, Permitted Acquisitions, other Investments permitted by Section 9.3, and other lawful corporate purposes not in contravention of the terms of the Loan Documents and (ii) the Term Loan Facility on the Funding Date to (A) refinance certain outstanding Indebtedness of Holdings and its Subsidiaries and (B) pay fees and expenses incurred in connection with Transactions, in each case, not in contravention of the terms of the Loan Documents.

8.8Additional Subsidiaries; Further Assurances.

(a)Additional Domestic Subsidiaries.  Commencing on the Funding Date, promptly after the creation or acquisition of any Domestic Subsidiary (and, in any event, within thirty (30) days after such creation or acquisition, as such time period may be extended by the Administrative Agent in its sole discretion) cause such Domestic Subsidiary to (i) become a Guarantor and grant a security interest in all personal property of such Domestic Subsidiary (subject to the exceptions specified in the Collateral Documents) owned by such Subsidiary by delivering to the Administrative Agent a duly executed Guaranty Joinder or such other documents as the Administrative Agent shall deem appropriate for such purpose, (ii) deliver to the Administrative Agent such opinions, documents and certificates referred to in Section 7.2 as may be reasonably requested by the Administrative Agent, (iii) deliver to the Administrative Agent such original certificated Equity Interests or other certificates and stock or other transfer powers evidencing the Equity Interests of such Domestic Subsidiary, (iv) deliver to the Administrative Agent such updated Schedules to the Loan Documents as requested by the Administrative Agent with respect to such Domestic Subsidiary, and (v) deliver to the Administrative Agent such other documents consistent with the requirements set forth in this Section 8.8(a) as may be reasonably requested by the Administrative Agent, all in form, content and scope reasonably satisfactory to the Administrative Agent.

(b)Foreign Subsidiaries.

(i)Commencing on the Funding Date, notify the Administrative Agent promptly after any Person becomes a direct Foreign Subsidiary of the Borrower or a Guarantor (a “First Tier Foreign Subsidiary”), and promptly thereafter (and, in any event, within thirty (30) days after such notification (as such time period may be extended by the

108


Administrative Agent in its sole discretion)), cause (i) the applicable Loan Party to deliver to the Administrative Agent Security Documents pledging under New York law (and, if required under Section 8.8(b)(ii), local foreign law) sixty six percent (66%) of the total outstanding voting Equity Interests (and one hundred percent (100%) of the non-voting Equity Interests) of any such new First Tier Foreign Subsidiary (including, without limitation, if applicable, original certificated Equity Interests (or the equivalent thereof pursuant to the applicable Laws and practices of any relevant foreign jurisdiction) evidencing the Equity Interests of such new First Tier Foreign Subsidiary, together with an appropriate undated stock or other transfer power for each certificate duly executed in blank by the registered owner thereof), (ii) such applicable Loan Party to deliver to the Administrative Agent such opinions, documents and certificates referred to in Section 7.2 as may be reasonably requested by the Administrative Agent, (iii) such applicable Loan Party to deliver to the Administrative Agent such updated Schedules to the Loan Documents as requested by the Administrative Agent with regard to such Person and (iv) such applicable Loan Party to deliver to the Administrative Agent such other documents consistent with the requirements set forth in this Section 8.8(b)(i) as may be reasonably requested by the Administrative Agent, all in form, content and scope reasonably satisfactory to the Administrative Agent.  Notwithstanding the foregoing, (x) with respect to any Equity Interests in a First Tier Foreign Subsidiary for which a perfected security interest cannot be obtained under documentation governed by New York law, no such Equity Interests shall be required to be pledged hereunder and (y) to the extent that the Administrative Agent agrees in writing that the cost, burden, difficulty or consequence of obtaining or perfecting the security interests described in this Section 8.8(b)(i) outweighs the benefit to the Lenders of such security interests, the Loan Parties shall not be required to comply with this Section 8.8(b)(i) to the extent agreed in writing.

(ii)After the Funding Date, to the extent the aggregate EBITDA attributable to all Foreign Subsidiaries whose Equity Interests have not been pledged to secure the Obligations pursuant to this Section 8.8(b) for the most recently ended twelve month period exceeds twenty percent (20%) of Consolidated EBITDA for the most recently ended twelve month period (the “Foreign Pledge Date”), the Borrower (i) shall notify the Administrative Agent and the Lenders thereof, (ii) deliver stock certificates and related local law pledge agreements, in form satisfactory to a collateral agent acceptable to the Administrative Agent, evidencing the pledge of sixty-six percent (66%) of the issued and outstanding Equity Interests entitled to vote (within the meaning of Treas. Reg. Section 1.956-2(c)(2)) and one hundred percent (100%) of the issued and outstanding Equity Interests not entitled to vote (within the meaning of Treas. Reg. Section 1.956-2(c)(2)) of one or more First Tier Foreign Subsidiaries to secure the Obligations to the extent necessary such that, after giving effect to such pledge, the EBITDA attributable to all Foreign Subsidiaries whose Equity Interests have not been pledged to secure the Obligations pursuant to this Section 8.8(b) for the most recently ended twelve (12) month period does not exceed twenty percent (20%) of Consolidated EBITDA, and (iii) cause such First Tier Foreign Subsidiary whose stock is pledged pursuant to the immediately preceding Section 8.8(b)(ii) to deliver simultaneously therewith similar documents applicable to such Foreign Subsidiary described in Section 7.2 as reasonably requested by the Administrative Agent; provided that in no event shall any such First Tier Foreign Subsidiary be required to join the Guaranty Agreement or otherwise to guarantee any of

109


the Obligations.  Upon the occurrence of the Foreign Pledge Date, the Borrower will be required to comply with the terms of this Section 8.8(b)(ii) within thirty (30) days (as such time period may be extended by the Administrative Agent in its sole discretion) after (i) the Foreign Pledge Date or (ii) the date of formation or acquisition of any new First Tier Foreign Subsidiary.  Notwithstanding the foregoing, to the extent that the Administrative Agent agrees in writing that the cost, burden, difficulty or consequence of obtaining or perfecting the security interests under local law described in this Section 8.8(b)(ii) outweighs the benefit to the Lenders of such security interests, the Loan Parties shall not be required to comply with this Section 8.8(b)(ii) to the extent agreed in writing.

(c)Landlord Waivers.  Within sixty (60) days (or such later date as the Administrative Agent may agree in its sole discretion) of (i) the Funding Date, with respect to leased locations of the Loan Parties consisting of (A) the Loan Parties’ corporate headquarters, (B) any leased location where material books and records are maintained and (C) locations leased from Persons who are Affiliates of any Loan Party, in each case, existing on the Funding Date and (ii) the date a new leasehold interest in real property is acquired by a Loan Party (or an existing lease is renewed or extended), use commercially reasonable efforts to deliver or cause to be delivered to the Administrative Agent a duly executed landlord consent with respect to each leased location described in clauses (i)(A), (i)(B) and (i)(C) above, which consents shall be in form and substance reasonably acceptable to the Administrative Agent.

(d)Control Agreements.  To the extent that a deposit account, disbursement account, investment account, cash management account, lockbox account or other account (other than an Excluded Account) is maintained with a financial institution (or any of its Affiliates) other than PNC Bank (or any of its Affiliates), cause such deposit account, disbursement account, investment account, cash management account, lockbox account or other account (other than Excluded Accounts) to be subject to a “with activation” or “springing” account control agreement in form and substance reasonably satisfactory to the Administrative Agent (it being understood and agreed that the Borrower shall have up to ninety (90) days after the Funding Date (or such later date as the Administrative Agent may agree in its sole discretion) to cause any such accounts existing as of the Funding Date to become subject to such an account control agreement); provided that no such account control agreement shall be required with respect to any account that has a balance (or which holds assets with a fair market value) less than $300,000, in any individual instance, or $1,500,000, when taken together with the account balances (or aggregate amount of the fair market value of assets) of all other accounts (other than Excluded Accounts) that are not subject to an account control agreement in form and substance reasonably acceptable to the Administrative Agent.

(e)Merger Subsidiaries.  Notwithstanding the foregoing, to the extent any new Subsidiary is created solely for the purpose of consummating a merger transaction pursuant to a Permitted Acquisition, and such new Subsidiary at no time holds any assets or liabilities other than any merger consideration contributed to it contemporaneously with the closing of such merger transaction, such new Subsidiary shall not be required to take the actions specified in Section 8.8(a) or (b), as applicable, until the consummation of such Permitted Acquisition (at which time, the surviving entity of the respective merger transaction shall be required to so comply with Section 8.8(a) or (b), as applicable, within ten (10) Business Days of the consummation of such Permitted

110


Acquisition, as such time period may be extended by the Administrative Agent in its sole discretion).

(f)Exclusions.  The provisions of this Section 8.8 shall not apply to Excluded Property.

(g)Further Assurances.  Each Loan Party shall, from time to time, at its expense, faithfully preserve and protect the Administrative Agent’s Lien on Collateral and all other real and personal property of the Loan Parties whether now owned or hereafter acquired as a continuing first priority perfected Lien, subject only to Permitted Liens, and shall do such other acts and things as the Administrative Agent in its sole discretion may deem necessary or advisable from time to time in order to preserve, perfect and protect the Liens granted under the Loan Documents and to exercise and enforce its rights and remedies thereunder with respect to the Collateral.

8.9Sanctions and other Anti-Terrorism Laws.  The Loan Parties covenant and agree that (a) they shall promptly notify the Administrative Agent and each of the Lenders in writing upon the occurrence of a Reportable Compliance Event; and (b) if, at any time, any Collateral becomes Embargoed Property, in addition to all other rights and remedies available to the Administrative Agent and each of the Lenders, upon request by the Administrative Agent or any of the Lenders, the Loan Parties shall provide substitute Collateral acceptable to the Lenders that is not Embargoed Property.

8.10Keepwell.  Each Qualified ECP Loan Party jointly and severally (together with each other Qualified ECP Loan Party) hereby absolutely unconditionally and irrevocably (a) guarantees the prompt payment and performance of all Swap Obligations owing by each Non-Qualifying Party (it being understood and agreed that this guarantee is a guaranty of payment and not of collection), and (b) undertakes to provide such funds or other support as may be needed from time to time by any Non-Qualifying Party to honor all of such Non-Qualifying Party’s obligations under this Agreement or any other Loan Document in respect of Swap Obligations (provided, however, that each Qualified ECP Loan Party shall only be liable under this Section 8.10 for the maximum amount of such liability that can be hereby incurred without rendering its obligations under this Section 8.10, or otherwise under this Agreement or any other Loan Document, voidable under applicable law, including applicable law relating to fraudulent conveyance or fraudulent transfer, and not for any greater amount).  The obligations of each Qualified ECP Loan Party under this Section 8.10 shall remain in full force and effect until the Facility Termination Date.  Each Qualified ECP Loan Party intends that this Section 8.10 constitute, and this Section 8.10 shall be deemed to constitute, a guarantee of the obligations of, and a “keepwell, support, or other agreement” for the benefit of each other Loan Party for all purposes of Section 1a(18)(A)(v)(II) of the CEA.

8.11Reporting Requirements.  The Loan Parties will furnish or cause to be furnished to the Administrative Agent and each of the Lenders:

(a)Quarterly Financial Statements.  As soon as available and in any event within forty-five (45) calendar days after the end of each Fiscal Quarter in each Fiscal Year,

111


financial statements of Holdings and its Subsidiaries, consisting of a consolidated balance sheet as of the end of such Fiscal Quarter and related consolidated statements of income, stockholders’ equity and cash flows for the Fiscal Quarter then ended and the Fiscal Year through that date, all in reasonable detail and certified (subject to normal year-end audit adjustments) by the Chief Executive Officer, President or Chief Financial Officer of Holdings as having been prepared in accordance with GAAP (subject only to normal year-end audit adjustments and the absence of notes), consistently applied, and setting forth in comparative form the respective financial statements for the corresponding date and period in the previous Fiscal Year (all of which may be provided by means of delivery of the applicable SEC Form 10-Q, which will be deemed delivered upon filing thereof).

(b)Annual Financial Statements.  As soon as available and in any event within ninety (90) days after the end of each Fiscal Year of Holdings, financial statements of Holdings and its Subsidiaries consisting of a consolidated balance sheet as of the end of such Fiscal Year, and related consolidated statements of income, stockholders’ equity and cash flows for the Fiscal Year then ended, all in reasonable detail and prepared in accordance with GAAP consistently applied and setting forth in comparative form the financial statements as of the end of and for the preceding Fiscal Year, and audited and reported on independent certified public accountants of nationally recognized standing satisfactory to the Administrative Agent (all of which may be provided by means of delivery of the applicable SEC Form 10-K, which will be deemed delivered upon filing thereof).  The opinion or report of accountants shall be prepared in accordance with reasonably acceptable auditing standards and shall be free of any qualification (other than any consistency qualification that may result from a change in the method used to prepare the financial statements as to which such accountants concur), including without limitation as to the scope of such audit or status as a “going concern” of Holdings or any Subsidiary.

8.12Certificates; Notices; Additional Information. The Loan Parties will furnish or cause to be furnished to the Administrative Agent and each of the Lenders:

(a)Certificate of the Borrower. Concurrently with the financial statements of Holdings furnished to the Administrative Agent and to the Lenders pursuant to Section 8.11(a) for each of the first three Fiscal Quarters of each Fiscal Year and Section 8.11(b), a certificate (each, a “Compliance Certificate”) of the Borrower signed by the Chief Executive Officer, President, Chief Financial Officer or Treasurer of the Borrower, in the form of Exhibit J.

(b)Default. Promptly after any officer of any Loan Party has learned of the occurrence of an Event of Default or Potential Default, a certificate signed by an Authorized Officer setting forth the details of such Event of Default or Potential Default, including all specific provisions of this Agreement and any other Loan Document that have been breached, and the action which such Loan Party proposes to take with respect thereto.

(c)Material Adverse Change. Promptly after any officer of any Loan Party has learned of any matter that would reasonably be expected to have or result in a Material Adverse Change, including any dispute, litigation, action, suit, proceeding or investigation before or by any Official Body or any other Person against any Loan Party or Subsidiary of any Loan Party or of any material development in any litigation or proceeding affecting a Loan Party or any Subsidiary of a Loan Party, written notice thereof accompanied by a statement of an Authorized Officer of

112


the Borrower or the applicable Loan Party setting forth details of the occurrence referred to therein and stating what action the Borrower or the applicable Loan Party has taken and proposes to take with respect thereto.

(d)Organizational Documents.  Within ten (10) days prior (or such extended period of time as agreed by the Administrative Agent) to any merger, consolidation, dissolution or other change in entity structure of any Loan Party or any of its Subsidiaries permitted pursuant to the terms hereof, provide notice of such change in entity structure to the Administrative Agent, along with such other information as reasonably requested by the Administrative Agent.  Provide notice to the Administrative Agent, not less than ten (10) days prior (or such extended period of time as agreed to by the Administrative Agent) of any change in any Loan Party’s legal name, state of organization, or organizational existence.

(e)Erroneous Financial Information; Change in Accounting.  (i) Promptly in the event that the Borrower or its accountants conclude or advise that any previously issued financial statement, audit report or interim review should no longer be relied upon or that disclosure should be made or action should be taken to prevent future reliance, notice in writing setting forth the details thereof and the action which the Borrower proposes to take with respect thereto and (ii) promptly notice in writing of any material change in accounting policies or financial reporting practice by any Loan Party or any Subsidiary thereof.

(f)ERISA Event.  Promptly upon any Loan Party learning of the occurrence of any ERISA Event, notice in writing setting forth the details thereof and the action which the Borrower proposes to take with respect thereto.

(g)Other Reports.  Promptly upon their becoming available to the Borrower:

(i)Annual Budget.  The annual budget, forecasts and projections of Holdings, to be supplied not later than forty-five (45) days following the commencement of each Fiscal Year to which any of the foregoing may be applicable; and

(ii)Management Letters.  Any reports including management letters or recommendations submitted to the Borrower (including its board of directors or the audit committee thereof) by independent accountants in connection with any annual, interim or special audit.

(h)[reserved].

(i)Other Information.  Such other reports and information regarding the business, financial condition or corporate affairs of Holdings or its Subsidiaries, or compliance with the terms of the Loan Documents, as the Administrative Agent or the Required Lenders may from time to time reasonably request.

(j)Updates to Schedules.  Concurrently with the delivery of the Compliance Certificate referred to in clause (a) above, the following updated Schedules to this Agreement (which may be attached to the Compliance Certificate) to the extent required to make the representation related to such Schedule true and correct as of the date of such Compliance Certificate: Schedule 6.2 and Schedule 6.11. Notwithstanding anything to the contrary in the

113


foregoing, should any of the information or disclosures provided on any of the Schedules attached hereto become outdated or incorrect in any material respect, the Borrower shall promptly provide the Administrative Agent in writing with such revisions or updates to such Schedule as may be necessary or appropriate to update or correct same.  No such Schedule shall be deemed to have been amended, modified or superseded by any such correction or update, nor shall any breach of warranty or representation resulting from the inaccuracy or incompleteness of any such Schedule be deemed to have been cured thereby, unless and until the Required Lenders, in their sole and absolute discretion, shall have accepted in writing such revisions or updates to such Schedule; provided, however, that (x) the Borrower may update Schedule 6.2 and Schedule 6.11 pursuant to the first sentence of this clause (j) and (y) the Borrower may update Schedule 6.2 without any Lender approval in connection with any transaction permitted under Sections 9.5, 9.6 and 9.8.

8.13Certificate of Beneficial Ownership and Other Additional Information.  Provide to the Administrative Agent and the Lenders: (i) confirmation of the accuracy of the information set forth in the most recent Certificate of Beneficial Ownership provided to the Administrative Agent and Lenders; (ii) a new Certificate of Beneficial Ownership, in form and substance acceptable to the Administrative Agent and each Lenders, when the individual(s) to be identified as a Beneficial Owner have changed; and (iii) such other information and documentation as may reasonably be requested by the Administrative Agent or any Lender from time to time for purposes of compliance by the Administrative Agent or such Lender with applicable laws (including without limitation the USA PATRIOT Act and other “know your customer” and anti-money laundering rules and regulations), and any policy or procedure implemented by the Administrative Agent or such Lender to comply therewith.

8.14Post-Closing Covenant.

(a)Within thirty (30) days of the Funding Date (or such later date as the Administrative Agent may agree in its sole discretion), provide special endorsements to the liability and property insurance policies required to be maintained under this Agreement in form and substance satisfactory to the Administrative Agent and its counsel naming the Administrative Agent as additional insured and lender loss payee, as applicable.

(b)(i) Within two (2) Business Days of the Funding Date (or such later date as the Administrative Agent may agree in its sole discretion), deliver to the Administrative Agent all certificates evidencing any certificated Equity Interests of domestic Subsidiaries of Holdings pledged to the Administrative Agent pursuant to the Security Agreement or any other pledge agreement, together with duly executed in blank, undated stock powers attached thereto and (ii) within fifteen (15) Business Days of the Funding Date (or such later date as the Administrative Agent may agree in its sole discretion), deliver to the Administrative Agent all certificates evidencing any certificated Equity Interests of Foreign Subsidiaries pledged to the Administrative Agent pursuant to the Security Agreement or any other pledge agreement, together with duly executed in blank, undated stock powers attached thereto (unless, with respect to the pledged Equity Interests of any Foreign Subsidiary, such stock powers are deemed unnecessary by the Administrative Agent in its reasonable discretion under the Law of the jurisdiction of organization of such Person).

114


ARTICLE 9NEGATIVE COVENANTS

On the Funding Date and thereafter, each Loan Party hereby covenants and agrees that until the Facility Termination Date, the Loan Party will not, and will not permit any its Subsidiaries to:

9.1Indebtedness.  At any time create, incur, assume or suffer to exist any Indebtedness, except:

(a)Indebtedness under the Loan Documents;

(b)existing Indebtedness as specified on Schedule 9.1 (including any refinancings, refundings, extensions or renewals thereof; provided that (i) there is no increase in the principal amount thereof (except by an amount equal to a reasonable premium or other reasonable amount paid, and fees and expenses reasonably incurred, in connection with such refinancing, refunding, extension or renewal and by an amount equal to any existing commitments unutilized at the time of such refinancing, refunding, extension or renewal), (ii) the final maturity date shall not be earlier, and weighted average life of such refinancing, refunding, renewal or extension shall not be shorter, than the Indebtedness being refinanced, refunded, renewed or extended, (iii) the refinancing, refunding, renewal or extension shall have no additional obligors (including any guarantors) than the Indebtedness being refinanced, refunded, renewed or extended and (iv) any refinancing, refunding, renewal or extension of any subordinated Indebtedness shall be (A) on subordination terms at least as favorable to the Administrative Agent and the Lenders and (B) no more restrictive to the Borrower and its Subsidiaries, in each case with respect to clauses (A) and (B), than the Indebtedness being refinanced, refunded, renewed or extended);

(c)Indebtedness of the Borrower or any Subsidiary incurred to finance the acquisition, construction or improvement of any fixed or capital assets, including Capital Lease Obligations; provided, that such Indebtedness is incurred prior to or within one hundred eighty (180) days after such acquisition or the completion of such construction or improvements or extensions, renewals, and replacements of any such Indebtedness that do not increase the outstanding principal amount thereof (immediately prior to giving effect to such extension, renewal or replacement) or shorten the maturity or the weighted average life thereof; provided, further, that the aggregate principal amount of such Indebtedness does not exceed $10,000,000 at any time outstanding;

(d)Indebtedness of (i) a Loan Party to another Loan Party, (ii) any Subsidiary that is not a Loan Party to any other Subsidiary that is not a Loan Party, (iii) any Subsidiary that is not a Loan Party to any Loan Party so long as such Indebtedness under this clause (iii) is permitted pursuant to Section 9.3(g) or 9.3(j) and (iv) any Loan Party to a Subsidiary that is not a Loan Party so long as such Indebtedness under this clause (iv) is subordinated to the Obligations in a manner reasonably satisfactory to the Administrative Agent;

(e)any (i) Lender Provided Interest Rate Hedge, (ii) Lender Provided Foreign Currency Hedge, (iii) other Interest Rate Hedge or Foreign Currency Hedge approved by the Administrative Agent or (iv) Indebtedness under any Other Lender Provided Financial Service

115


Product; provided, however, the Loan Parties shall enter into an Interest Rate Hedge only for hedging (rather than speculative) purposes;

(f)Guaranties with respect to any Indebtedness permitted pursuant to this Section 9.1 (other than Section 9.1(d)(ii), (d)(iii), (d)(iv) (in each case of clause (d), except to the extent permitted by Section 9.3) or (h)) except to the extent specifically prohibited in this Agreement; provided that (x) the aggregate amount of all Guaranties of all Loan Parties with respect to Indebtedness permitted pursuant to Section 9.1(n) or (p) shall not exceed $10,000,000 at any time and (y) any Guaranty of Indebtedness permitted pursuant to Section 9.1(g) is also subordinated to the payment in full of all Obligations;

(g)Subordinated Indebtedness;

(h)Indebtedness that is in existence when a Person becomes a Subsidiary or that is secured by an asset when acquired by a Loan Party or a Subsidiary, as long as such Indebtedness was not incurred in contemplation of such Person becoming a Subsidiary or such acquisition, and does not exceed of $5,000,000 in the aggregate at any time;

(i)Permitted Contingent Obligations;

(j)Indebtedness with respect to the Specified Letters of Credit;

(k)Indebtedness incurred in connection with a Permitted Acquisition, to the extent permitted under the definition of Permitted Acquisition, that consists of Indebtedness existing prior to the consummation of the Permitted Acquisition (and not incurred in contemplation thereof) that is permitted to be assumed by the Loan Parties pursuant to (and subject to the limitations set forth in) Section 9.1(c) and does not constitute a revolving credit facility;

(l)Indebtedness incurred in connection with the financing of insurance premiums, incurred in the Ordinary Course of Business;

(m)obligations under or in connection with the Canadian Bilateral Facility so long as (i) no Potential Default or Event of Default exists or would result from the incurrence thereof, (ii) such Indebtedness is not recourse to any Loan Party (except to the extent permitted by Section 9.1(f)) and (iii) such Indebtedness is not secured by any asset constituting Collateral, except pursuant to the terms of this Agreement and the other Loan Documents;

(n)other Indebtedness (which may include letters of credit or letter of credit facilities) of Foreign Subsidiaries in an aggregate amount not to exceed $35,000,000 so long as (i) no Potential Default or Event of Default exists or would result from the incurrence thereof, (ii) such Indebtedness is incurred in connection with an Investment (including a Permitted Acquisition or any Investment in an existing Subsidiary) permitted by Section 9.3 or such Indebtedness is used to refinance outstanding Revolving Credit Loans incurred in connection with an Investment permitted by Section 9.3, (iii) such Indebtedness is not recourse to any Loan Party (except to the extent permitted by Section 9.1(f)) and (iv) such Indebtedness is not secured by any asset constituting Collateral;

116


(o)Refinancing Indebtedness as long as each Refinancing Condition is satisfied;

(p)Indebtedness owing by Foreign Subsidiaries in an aggregate amount outstanding at any time not to exceed $5,000,000, in each case so long as (i) no Potential Default or Event of Default exists or would result from the incurrence thereof, (ii) such Indebtedness is not recourse to any Loan Party (except to the extent permitted by Section 9.1(f)), and (iii) such Indebtedness is not secured by any assets constituting Collateral;

(q)other unsecured Indebtedness in an aggregate principal amount not to exceed $7,500,000 at any time outstanding; and

(r)Indebtedness arising from the honoring by a bank or other financial institution of a check, draft or similar instrument drawn against insufficient funds in the Ordinary Course of Business, provided, however, that such Indebtedness is extinguished within five (5) Business Days of its incurrence.

Further, for purposes of determining compliance with this Section 9.1, (A) Indebtedness need not be permitted solely by reference to one category of permitted Indebtedness (or any portion thereof) described in this Section 9.1 but may be permitted in part under any combination thereof and (B) in the event that an item of Indebtedness (or any portion thereof) meets the criteria of one or more of the categories of permitted Indebtedness (or any portion thereof) described in this Section 9.1, the Loan Parties may, in their sole discretion, classify or reclassify, or later divide, classify or reclassify (as if incurred at such later time), such item of Indebtedness (or any portion thereof) in any manner that complies with this Section 9.1 and will be entitled to only include the amount and type of such item of Indebtedness (or any portion thereof) in one of the above clauses (or any portion thereof) and such item of Indebtedness (or any portion thereof) shall be treated as having been incurred or existing pursuant to only such clause or clauses (or any portion thereof) without giving pro forma effect to such item (or portion thereof) when calculating the amount of Indebtedness that may be incurred pursuant to any other clause; provided that (x) all Indebtedness outstanding under the Loan Documents shall at all times be deemed to be outstanding in reliance only on the exception in Section 9.1(a), (y) all Indebtedness described on Schedule 9.1 and any Permitted Refinancing in respect thereof shall at all times be deemed to be outstanding in reliance only on the exception in Section 9.1(b) and (z) all Indebtedness owing to Holdings or any of its Subsidiaries shall be deemed to be outstanding in reliance only on one or more exceptions in Section 9.1(d).  Accrual of interest or dividends, the accretion of accreted value, the accretion or amortization of original issue discount and the payment of interest, premium, fees or expenses, in the form of additional Indebtedness, or preferred stock (in each case so long as such additional Indebtedness or preferred stock is in the same form and on the same terms as the Indebtedness to which such payment relates) shall not be deemed to be an incurrence of Indebtedness for purposes of this Section 9.1.

9.2Liens.  At any time create, incur, assume or suffer to exist any Lien on any of its property or assets, tangible or intangible, now owned or hereafter acquired, or agree or become liable to do so, except Permitted Liens; provided, however, and notwithstanding the above or any other provision of this Agreement or any other Loan Document, no Liens shall be permitted to

117


exist directly or indirectly on any real property of any Loan Party other than pursuant to clauses (a), (c), (e), (i), (k), (s) or (t) of the definition of “Permitted Liens”.

9.3Loans and Investments.  At any time make or suffer to remain outstanding any Investment, except:

(a)trade credit extended on usual and customary terms in the Ordinary Course of Business;

(b)advances to employees to meet expenses incurred by such employees in the Ordinary Course of Business;

(c)Permitted Investments;

(d)loans, advances and investments in other Loan Parties;

(e)intercompany Indebtedness to the extent permitted by Section 9.1(d);

(f)Permitted Acquisitions;

(g)Investments existing on the Closing Date in Subsidiaries existing on the Closing Date;

(h)cash and Cash Equivalents;

(i)any Investment by a Foreign Subsidiary in another Foreign Subsidiary or a Loan Party;

(j)any Investment by a Loan Party in a Foreign Subsidiary (i) in an aggregate amount at any time outstanding not in excess of $5,000,000 so long as no Event of Default exists at the time such Investment is made or would be caused thereby or (ii) in any other amount so long as (A) at the time such Investment is made, no Event of Default exists or would be caused thereby, (B) at the time such Investment is made, the Borrower provides the Administrative Agent evidence that, after giving effect to such Investment, the Loan Parties are in compliance with the financial covenants set forth in Sections 9.12 and 9.13 on a Pro Forma Basis and (C) the Loan Parties shall be Solvent both before and after giving effect to such Investment and an Authorized Officer having primary responsibility for financial matters of the Borrower shall certify to the Administrative Agent, not less than five (5) Business Days prior to the date such Investment is made, that all such conditions have been satisfied;

(k)loans and advances to an officer or employee for salary, travel expenses, commissions and similar items in the Ordinary Course of Business in an aggregate amount not to exceed $1,500,000 at any time;

(l)loans or advances to officers or employees in the Ordinary Course of Business pursuant to and in accordance with the terms of any Plan in an aggregate amount not to exceed $1,500,000 at any time;

118


(m)prepaid expenses and extensions of trade credit made in the Ordinary Course of Business;

(n)deposits with financial institutions permitted hereunder;

(o)as long as no Event of Default exists at the time of incurrence thereof, intercompany loans by a Loan Party to another Loan Party;

(p)as long as no Event of Default exists at the time of incurrence thereof, intercompany loans by a Foreign Subsidiary to another Foreign Subsidiary;

(q)loans and Investments existing as of the Closing Date and set forth on Schedule 9.3;

(r)Permitted Joint Ventures in an aggregate amount, taken together with all other Investments consisting of Permitted Joint Ventures that are at that time outstanding, not to exceed $5,000,000; and

(s)other Investments in an aggregate amount not to exceed $5,000,000 at any time outstanding.

9.4Dividends and Related Distributions.  Make any Restricted Payment, or agree to become or remain liable to make any Restricted Payment, except:

(a)dividends or other distributions payable to another Loan Party;

(b)so long as no Event of Default has occurred and is continuing or would result therefrom, the Borrower or any of its Subsidiaries may pay dividends in shares of its own Equity Interests (other than Disqualified Equity Interests);

(c)any Restricted Payment made by a Subsidiary that is not a Loan Party to another Subsidiary that is not a Loan Party or a Loan Party;

(d)the Special Distribution, so long as (i) no Potential Default or Event of Default then exists or arises therefrom and (ii) after giving effect thereto on a Pro Forma Basis, the Loan Parties are in compliance with the covenants set forth in Sections 9.12 and 9.13;

(e)Restricted Payments consisting of redemptions of Equity Interests of Holdings held by employees, officers, or directors of Holdings (or any spouses, ex-spouses, estates or Affiliates of any of the foregoing); provided, that the aggregate amount of such redemptions made by Holdings in respect of each Fiscal Year prior to the Expiration Date shall not exceed (i) the greater of (A) $2,000,000 or (B) 5.00% of Consolidated EBITDA for the four Fiscal Quarter period most recently ended as of such date of determination in respect of which financial statements have been delivered pursuant to Section 8.1(a) or 8.1(b), as applicable less (ii) the aggregate amount of cash compensation consisting of Qualified LTIP Accrual Amounts added to Consolidated EBITDA pursuant to clause (b)(vii)(B) thereof in respect of such period; provided, further, that Restricted Payments under this Section 9.4(e) shall be subject to the satisfaction of the following conditions: (i) no Event of Default has occurred or would result from such Restricted Payment, (ii) the Borrower

119


provides Administrative Agent evidence that after giving effect to the consummation of such Restricted Payment, Holdings and its Subsidiaries on a consolidated basis shall maintain a Consolidated Fixed Charge Coverage Ratio of at least 1.25 to 1.00 on a Pro Forma Basis, measured as of the most recently ended Fiscal Quarter for which the Loan Parties have delivered the financial statements required under Sections 8.1(a) or (b), as the case may be, for the four Fiscal Quarter period then ended, (iii) after giving effect to the consummation of such Restricted Payment, the Consolidated Total Net Leverage Ratio is less than or equal to 2.50 to 1.00, and (iv) each Loan Party shall be Solvent before and after giving effect to such Restricted Payment; and

(f)dividends, distributions and/or share repurchases in an aggregate amount not to exceed $10,000,000 per Fiscal Year, so long as (i) no Potential Default or Event of Default then exists or arises therefrom and (ii) after giving effect thereto on a Pro Forma Basis, the Loan Parties are in compliance with the covenants set forth in Sections 9.12 and 9.13; provided that the aggregate amount of dividends, distributions and share repurchases under this Section 9.4(f) shall be unlimited so long as after giving effect thereto on a Pro Forma Basis, the Consolidated Total Net Leverage Ratio is less than 2.50 to 1.00.

9.5Liquidations, Mergers, Consolidations, Acquisitions.  Dissolve, liquidate or wind-up its affairs, or become a party to any merger or consolidation, or acquire by purchase, lease or otherwise all or substantially all of the assets or Equity Interests of any other Person (other than the acquisition of all or substantially all of the assets or Equity Interests of any other Person pursuant to a Permitted Acquisition) or consummate an LLC Division; provided that (a) any Loan Party other than Holdings or the Borrower may consolidate or merge into, or liquidate into, another Loan Party which is wholly-owned by one or more of the other Loan Parties, (b) any Foreign Subsidiary that is not a Loan Party may consolidate or merge into, or liquidate into, any other Subsidiary that is not a Loan Party and (c) any Domestic Subsidiary that is not a Loan Party may consolidate or merge into, or liquidate into, any other Domestic Subsidiary that is not a Loan Party.

9.6Dispositions of Assets or Subsidiaries.  Make any Asset Disposition, except the sale or other disposition of such assets so long as (a) at least 75% of the consideration paid in connection therewith shall be cash or Cash Equivalents paid contemporaneously with the consummation of the transaction and shall be in an amount not less than the fair market value of the property disposed of, (b) such transaction is not prohibited by the terms of Section 9.20, (c) such transaction does not involve the sale or other disposition of a minority Equity Interest in any Subsidiary, (d) such transaction does not involve a sale or other disposition of receivables other than receivables owned by or attributable to other property concurrently being disposed of in a transaction otherwise permitted under this Section 9.6, and (e) the aggregate fair market value of all of the assets sold or otherwise disposed of by the Borrower and its Subsidiaries in all such transactions in any Fiscal Year shall not exceed (i) $5,000,000 with respect to tangible assets and (ii) 10.0% of Consolidated EBITDA for the most recently completed Measurement Period with respect to the Equity Interests of any Subsidiary of the Borrower.

9.7Affiliate Transactions. Enter into or carry out any transaction with any Affiliate of any Loan Party (including purchasing property or services from or selling property or services to any Affiliate of any Loan Party or other Person) other than (a) transactions expressly permitted by the Loan Documents; (b) payment of reasonable compensation to officers, employees and consultants who are Affiliates, in each case for services actually rendered, and payment of

120


customary directors’ fees and indemnities (including severance and indemnification arrangements with officers and employees in the Ordinary Course of Business and participation in stock option plans and employee benefit plans and arrangements in the Ordinary Course of Business); (c) transactions solely among the Loan Parties; (d) transactions solely among non-Loan party Subsidiaries; (e) transactions with Affiliates that were consummated on or prior to the Closing Date, as shown on Schedule 9.7; (f) sales of inventory and services between Loan Parties in the Ordinary Course of Business and sales of equipment in compliance with the terms of Section 9.6, in each case, upon fair and reasonable terms; and (g) transactions with Affiliates in the Ordinary Course of Business, upon fair and reasonable terms and no less favorable than would be obtained in a comparable arm’s-length transaction with a non-Affiliate.

9.8Subsidiaries, Partnerships and Joint Ventures.  Own or create directly or indirectly any Subsidiaries other than (i) any Subsidiary which has joined this Agreement as Guarantor on the Closing Date; (ii) Excluded Subsidiaries and (iii) any Subsidiary formed after the Closing Date which joins this Agreement as a Guarantor by delivering to the Administrative Agent items required by Section 8.8.  No Loan Party shall become or agree to become a party to a Joint Venture except Permitted Joint Ventures.

9.9Continuation of or Change in Business.  Engage in any business other than substantially as conducted and operated by such Loan Party or Subsidiary as of the Closing Date and businesses substantially related, incidental or ancillary thereto.

9.10Accounting Changes; Change in Fiscal Year.  Make any significant change in accounting treatment or reporting practices, except as required by GAAP, or change the Fiscal Year of Holdings or of any of its Subsidiaries, except to change the Fiscal Year of a Subsidiary to conform its Fiscal Year to that of Holdings.

9.11Changes to Organizational Documents.  Amend in any respect its certificate of incorporation (including any provisions or resolutions relating to Equity Interests), by-laws, certificate of limited partnership, partnership agreement, certificate of formation, limited liability company agreement or other organizational documents in a manner materially adverse to the Lenders.

9.12Minimum Consolidated Fixed Charge Coverage Ratio.  Permit the Consolidated Fixed Charge Coverage Ratio, calculated as of the end of each Fiscal Quarter, commencing with the Fiscal Quarter ending December 31, 2021, to be less than 1.25 to 1.00.

9.13Maximum Consolidated Total Net Leverage Ratio.  Permit the Consolidated Total Net Leverage Ratio as of the end of each Fiscal Quarter, commencing with the Fiscal Quarter ending December 31, 2021, to be greater than (a) with respect to the Fiscal Quarter ending December 31, 2021 through and including the Fiscal Quarter ending September 30, 2022, 3.75 to 1.00 and (b) with respect to the Fiscal Quarter ending December 31, 2022 and for each Fiscal Quarter ending thereafter, 3.50 to 1.00; provided that if a Material Acquisition occurs during a Fiscal Quarter, the Borrower shall have the right to elect to increase the Consolidated Total Net Leverage Ratio required to be maintained by this Section 9.13 by up to 0.50 to 1.00; provided, further, that (i) the Consolidated Total Net Leverage Ratio for any Measurement Period required to be maintained by this Section 9.13 shall be reduced by 0.50 to 1.00 on the last day of the fifth

121


Fiscal Quarter after such increase occurs (returning to the Consolidated Total Net Leverage Ratio level required to be maintained prior to such election); (ii) following any increase in the Consolidated Total Net Leverage Ratio pursuant to this Section 9.13, there shall be at least one full Fiscal Quarter in which the required Consolidated Total Leverage Ratio is tested at the level set forth in this Section 9.13 without giving effect to the provisos herein before the Borrower may again elect to increase the Consolidated Total Net Leverage Ratio pursuant to this Section 9.13, (iii) the Consolidated Total Net Leverage Ratio shall not be increased more than two (2) times pursuant to this Section 9.13 during the term of this Agreement and (iv) such election shall be made by the delivery of a written notice by the Borrower to the Administrative Agent making reference to this Section 9.13 and notifying the Administrative Agent of the Borrower’s exercise of this right on or prior to the date of the actual or required delivery of a Compliance Certificate for the Fiscal Quarter in which the applicable Permitted Acquisition occurs.

9.14Limitation on Negative Pledges and Restrictive Agreements.  Enter into, or permit to exist, any contractual obligation (except for this Agreement and the other Loan Documents) that (a) encumbers or restricts the ability of any such Person to (i) to act as a Loan Party; (ii) make dividends or distribution to any Loan Party, (iii) pay any Indebtedness or other obligation owed to any Loan Party, (iv) make loans or advances to any Loan Party, or (v) create any Lien upon any of their properties or assets, whether now owned or hereafter acquired (except, in the case of clause (a)(v) only, for any document or instrument governing any purchase money Liens, capital lease obligations permitted hereby (in which case, any prohibition or limitation shall only be effective against the assets financed thereby) or other secured Indebtedness permitted by Sections 9.1(b), (k), (m), (n) or (p), customary provisions restricting assignment of any licensing agreement (in which a Loan Party or its Subsidiaries are the licensee) with respect to a contract entered into by a Loan Party or its Subsidiaries in the Ordinary Course of Business and customary provisions restricting subletting, sublicensing or assignment of any intellectual property license or any lease governing any leasehold interests of a Loan Party and its Subsidiaries) or (b) requires the grant of any Lien (other than Permitted Liens) on property for any obligation if a Lien on such property is given as security for the Obligations.

9.15Subordinated Indebtedness.

(a)Make any payments (whether voluntary or mandatory, or a prepayment, redemption, retirement, defeasance or acquisition) with respect to any:

(i)Subordinated Indebtedness (other than Subordinated Indebtedness of the type described in the following clause (a)(ii)), except regularly scheduled payments of principal, interest and fees, but only to the extent permitted under any subordination agreement relating to such Subordinated Indebtedness (and a Senior Officer or vice president of finance or similar officer having primary responsibility for financial matters of the Borrower shall certify to Administrative Agent, not less than five (5) Business Days prior to the date of payment, that all conditions under such agreement have been satisfied); or

(ii)Subordinated Indebtedness constituting Earnout Obligations in respect of any Permitted Acquisition, except payments made when the following conditions are satisfied:

122


(A)no Potential Default or Event of Default has occurred or would result from such payment, and

(B)after giving effect to the consummation of such payment, the Loan Parties are in compliance with the financial covenants set forth in Sections 9.12 and 9.13 on a pro forma basis; provided, that such financial covenant shall be measured as of the most recently ended Fiscal Quarter for which the Loan Parties have delivered the financial statements required under Section 8.11(a) or 8.11(b), as the case may be, for the twelve fiscal month period then ended.

(b)The Borrower will not, and will not permit any of its Subsidiaries to, agree to or permit any amendment, modification or waiver of any provision of any Subordinated Indebtedness Document if the effect of such amendment, modification or waiver is to (i) increase the yield on such Subordinated Indebtedness or change (to earlier dates) the dates upon which principal and interest are due thereon; (ii) alter the redemption, prepayment or subordination provisions thereof; (iii) alter the covenants and events of default in a manner that would make such provisions more onerous or restrictive to the Borrower or any such Subsidiary; or (iv) otherwise increase the obligations of the Borrower or any Subsidiary in respect of such Subordinated Indebtedness or confer additional rights upon the holders thereof which individually or in the aggregate would be adverse to the Borrower or any of its Subsidiaries or to the Administrative Agent or the Lenders.

9.16Agreements Restricting Dividends.  Each of the Loan Parties covenants and agrees that it shall not, and shall not permit any of its Subsidiaries to, enter into any agreement (other than a Loan Document) with any Person which restricts any of the Loan Parties’ right to pay dividends or other distributions to the Borrower or repay intercompany loans from the Borrower to each Loan Party.

9.17Sanctions and other Anti-Terrorism Laws.  Each Loan Party hereby covenants and agrees that until the Facility Termination Date, the Loan Party will not, and will not permit any its Subsidiaries to: (a) become a Sanctioned Person or allow its employees, officers, directors, affiliates, consultants, brokers, and agents acting on its behalf in connection with this Agreement to become a Sanctioned Person; (b) directly, or indirectly through a third party, engage in any transactions or other dealings with any Sanctioned Person or Sanctioned Jurisdiction, including any use of the proceeds of the Facilities to fund any operations in, finance any investments or activities in, or, make any payments to, a Sanctioned Person or Sanctioned Jurisdiction; (c) repay the Facilities with funds derived from any unlawful activity; (d) permit any of the Collateral to become Embargoed Property; (e) engage in any transactions or other dealings with any Sanctioned Person or Sanctioned Jurisdiction prohibited by any Laws of the United States or other applicable jurisdictions relating to economic sanctions and any Anti-Terrorism Laws; or (f) cause any Lender or the Administrative Agent to violate any sanctions administered by OFAC.

9.18Use of Proceeds.  Each Loan Party hereby covenants and agrees that until the Facility Termination Date, the Loan Party will not, and will not permit any its Subsidiaries to directly or indirectly, use the Loans or any proceeds thereof for any purpose (a) which would breach any Anti-Corruption Laws in any jurisdiction in which any Covered Entity conducts

123


business or (b) that would violate any rule or regulation of the Board of Governors of the Federal Reserve System, including Regulations T, U or X.

9.19Sale and Leaseback Transactions.  Enter into any arrangement, directly or indirectly, whereby it shall sell or transfer any property, real or personal, used or useful in its business, whether now owned or hereinafter acquired, and thereafter rent or lease such property or other property that it intends to use for substantially the same purpose or purposes as the property sold or transferred (a “Sale and Leaseback Transaction”); provided that, notwithstanding anything to the contrary in the foregoing, the Borrower and its Subsidiaries shall be permitted to enter into a Sale and Leaseback Transaction with respect to real property so long as the aggregate fair market value of real property sold in connection therewith does not exceed $7,500,000.

9.20Designation as Senior Debt.  Designate any Indebtedness (other than Indebtedness under the Loan Documents) of the Borrower or any of its Subsidiaries as “Senior Debt” or “Designated Senior Debt” (or in each case any similar term) under, and as defined in, the documentation governing any Subordinated Indebtedness.

ARTICLE 10

DEFAULT

10.1Events of Default.  An Event of Default means the occurrence or existence of any one or more of the following events or conditions (whatever the reason therefor and whether voluntary, involuntary or effected by operation of Law):

(a)Payments Under Loan Documents.

(i)Any Loan Party shall fail to pay any principal of any Loan or of any Reimbursement Obligation in respect of any Letter of Credit when and as the same shall become due and payable, whether at the due date thereof or at a date fixed for prepayment or otherwise; or

(ii)any Loan Party shall fail to pay any interest on any Loan or any fee or any other amount (other than an amount payable under Section 8.1(a)(i) or an amount related to an Other Lender Provided Financial Service Product) pay­able under this Agreement or any other Loan Document, when and as the same shall become due and payable, and such failure shall continue unremedied for a period of three (3) Business Days; or

(b)Breach of Warranty.  Any representation or warranty made at any time by any of the Loan Parties herein or by any of the Loan Parties in any other Loan Document, or in any certificate, other instrument or statement furnished pursuant to the provisions hereof or thereof, shall prove to have been false or misleading in any material respect (other than a representation or warranty this is expressly qualified by Material Adverse Change or other materiality qualified, in which case such representation or warranty proves to be incurred in any respect) as of the time it was made, deemed made or furnished; or

124


(c)Breach of Certain Covenants.  Any of the Loan Parties shall default in the observance or performance of any covenant contained in Section 8.1, Section 8.5, Section 8.7, Section 8.8, Section 8.9, Section 8.11, Section 8.12(a), (b), (c), (e), (f) or (g)(i) or Article 9; or

(d)Breach of Other Covenants.  Any of the Loan Parties shall default in the observance or performance of any other covenant, condition or provision hereof or of any other Loan Document and such default shall continue unremedied for a period of thirty (30) days after the earlier to occur of (i) any Authorized Officer of a Loan Party’s knowledge of such breach or (ii) notice thereof from the Administrative Agent or any Lender; or

(e)Defaults in Other Agreements or Indebtedness.  (i) A breach, default or event of default shall occur at any time under the terms of any one or more other agreements with respect to Material Indebtedness under which any Loan Party or Subsidiary of any Loan Party may be obligated as a borrower or guarantor, and such breach, default or event of default either (A) consists of the failure to pay (beyond any period of grace permitted with respect thereto, whether waived or not) any such Material Indebtedness when due (whether at stated maturity, by acceleration or otherwise) or (B) causes, or permits the holder or holders of such Material Indebtedness or the beneficiary or beneficiaries of such guarantee (or a trustee or agent on behalf of such holder or holders or beneficiary or beneficiaries) to cause, with the giving of notice if required, such Material Indebtedness to be demanded or to become due or to be repurchased, prepaid, defeased or redeemed (automatically or otherwise), or an offer to repurchase, prepay, defease or redeem such Material Indebtedness to be made, prior to its stated maturity, or such guarantee to become payable or cash collateral in respect thereof to be demanded; or (ii) there occurs any default or event of default under any Canadian Obligation Loan Document; or

(f)Final Judgments or Orders.

(i)Any final judgments or orders for the payment of money in excess of $3,000,000 in the aggregate (to the extent not covered by insurance or indemnities as to which the applicable insurance company or third party has been notified of the claim and has confirmed coverage) shall be entered against any Loan Party by a court having jurisdiction in the premises, and with respect to which either (A) enforcement proceedings are commenced by any creditor upon such judgment or order, or (B) there is a period of thirty (30) consecutive days during which a stay of enforcement of such judgment or order, by reason of a pending appeal or otherwise, is not in effect; or

(ii)any non-monetary final judgment or order shall be rendered against Holdings, any Borrower or any Subsidiary that would reasonably be expected to have or result in a Material Adverse Change, and there is a period of thirty (30) consecutive days during which a stay of enforcement of such judgment or order, by reason of appeal or otherwise, is not in effect; or

(g)Loan Document Unenforceable.  Any of the Loan Documents shall cease to be legal, valid and binding agreements enforceable against the party executing the same or such party’s successors and assigns (as permitted under the Loan Documents) in accordance with the respective terms thereof or shall in any way be terminated (except in accordance with its terms) or become or be declared ineffective or inoperative or shall in any way be challenged or contested or

125


cease to give or provide the respective Liens, security interests, rights, titles, interests, remedies, powers or privileges intended to be created thereby; or

(h)Events Relating to Pension Plans and Multiemployer Plans.  An ERISA Event occurs with respect to a Pension Plan or Multiemployer Plan which has resulted or could reasonably be expected to result in liability of Borrower or any member of the ERISA Group under Title IV of ERISA to the Pension Plan, Multiemployer Plan or the PBGC in an aggregate amount in excess of $3,000,000 at any one time, or Borrower or any member of the ERISA Group fails to pay when due, after the expiration of any applicable grace period, any installment payment with respect to its withdrawal liability under Section 4201 of ERISA under a Multiemployer Plan, where the aggregate amount of unamortized withdrawal liability is in excess of $3,000,000 at any one time; or

(i)Change of Control.  A Change of Control shall occur; or

(j)Relief Proceedings; Solvency; Attachment.  Either (i) a Relief Proceeding shall have been instituted against any Loan Party or Subsidiary of a Loan Party or a substantial part of the assets of any Loan Party or Subsidiary and such Relief Proceeding shall remain undismissed or unstayed and in effect for a period of thirty (30) consecutive days or such court shall enter a decree or order granting any of the relief sought in such Relief Proceeding, (ii) any Loan Party or Subsidiary of a Loan Party institutes, or takes any action in furtherance of, a Relief Proceeding, (iii) any Loan Party or any Subsidiary of a Loan Party ceases to be Solvent or admits in writing its inability to pay its debts as they mature or (iv) any writ or warrant of attachment or execution or similar process is issued or levied against all or any material part of the property of any Loan Party or any Subsidiary of any Loan Party and is not released, vacated or fully bonded within thirty (30) days after its issue or levy; or

(k)Subordinated Indebtedness.  Any default or event of default (after giving effect to any grace period) shall have occurred and be continuing under the Subordinated Debt Documents or any Subordinated Debt Document shall cease to be in full force and effect or the validity or enforceability thereof is disaffirmed by or on behalf of any subordinated lender party thereto, or any Obligations fail to constitute “Senior Indebtedness” for purposes of the applicable Subordinated Debt Document, or all or any part of the Subordinated Indebtedness is accelerated, is declared to be due and payable is required to be prepaid or redeemed, in each case prior to the stated maturity thereof.

10.2Consequences of Event of Default.

(a)Generally.  If any Event of Default specified under Section 10.1 shall occur and be continuing, the Lenders and the Administrative Agent shall be under no further obligation to make Loans and no Issuing Lender shall be under any obligation to issue Letters of Credit and the Administrative Agent may, and upon the request of the Required Lenders shall, take any or all of the following actions:

(i)declare the commitment of each Lender to make Loans and any obligation of the Issuing Lenders to issue, amend or extend Letters of Credit to be terminated, whereupon such commitments and obligation shall be terminated;

126


(ii)declare the unpaid principal amount of all outstanding Loans, all interest accrued and unpaid thereon, and all other amounts owing or payable hereunder or under any other Loan Document to be immediately due and payable, without presentment, demand, protest or other notice of any kind, all of which are hereby expressly waived by the Borrower;

(iii)require the Borrower to, and the Borrower shall thereupon, deposit in a non-interest-bearing account with the Administrative Agent, as Cash Collateral for its Obligations under the Loan Documents, an amount equal to the maximum amount currently or at any time thereafter available to be drawn on all outstanding Letters of Credit, and the Borrower hereby pledges to the Administrative Agent and the Lenders, and grants to the Administrative Agent and the Lenders a security interest in, all such cash as security for such Obligations; and

(iv)exercise on behalf of itself, the Lenders and the Issuing Lenders all rights and remedies available to it, the Lenders and the Issuing Lenders under the Loan Documents;

provided that upon the occurrence of an actual or deemed entry of an order for relief with respect to the Borrower under the Bankruptcy Code of the United States, the obligation of each Lender to make Loans and any obligation of the Issuing Lenders to issue, amend or extend any Letter of Credit shall automatically terminate, the unpaid principal amount of all outstanding Loans and all interest and other amounts as aforesaid shall automatically become due and payable, and the obligation of the Borrower to provide cash collateral as specified in clause (iii) above shall automatically become effective, in each case without further act of the Administrative Agent or any Lender.

(b)Set-off.  If an Event of Default shall have occurred and be continuing, each Lender, each Issuing Lender, and each of their respective Affiliates and any participant of such Lender or Affiliate which has agreed in writing to be bound by the provisions of Section 5.5, after obtaining the prior written consent of the Administrative Agent, is hereby authorized at any time and from time to time, to the fullest extent permitted by applicable Law, to set off and apply any and all deposits (general or special, time or demand, provisional or final, in whatever currency) at any time held and other obligations (in whatever currency) at any time owing by such Lender, such Issuing Lender or any such Affiliate or participant to or for the credit or the account of any Loan Party against any and all of the Obligations of such Loan Party now or hereafter existing under this Agreement or any other Loan Document to such Lender, such Issuing Lender, Affiliate or participant, irrespective of whether or not such Lender, such Issuing Lender, Affiliate or participant shall have made any demand under this Agreement or any other Loan Document and although such Obligations of the Borrower or such Loan Party may be contingent or unmatured or are owed to a branch or office of such Lender or such Issuing Lender different from the branch or office holding such deposit or obligated on such Indebtedness; provided that in the event that any Defaulting Lender shall exercise any such right of setoff, (x) all amounts so set off shall be paid over immediately to the Administrative Agent for further application in accordance with the provisions of Section 5.15 and, pending such payment, shall be segregated by such Defaulting Lender from its other funds and deemed held in trust for the benefit of the Administrative Agent, the Issuing Lenders, and the Lenders, and (y) the Defaulting Lender shall provide promptly to the

127


Administrative Agent a statement describing in reasonable detail the Obligations owing to such Defaulting Lender as to which it exercised such right of setoff. The rights of each Lender, each Issuing Lender and their respective Affiliates and participants under this Section 10.2 are in addition to other rights and remedies (including other rights of setoff) that such Lender, such Issuing Lender or their respective Affiliates and participants may have.  Each Lender and each Issuing Lender agrees to notify the Borrower and the Administrative Agent promptly after any such setoff and application; provided that the failure to give such notice shall not affect the validity of such setoff and application; and

(c)Enforcement of Rights and Remedies.  Notwithstanding anything to the contrary contained herein or in any other Loan Document, the authority to enforce rights and remedies hereunder and under the other Loan Documents against the Loan Parties or any of them shall be vested exclusively in, and all actions and proceedings at law in connection with such enforcement shall be instituted and maintained exclusively by, the Administrative Agent in accordance with this Section 10.2 for the benefit of all the Lenders and the Issuing Lenders and the other Secured Parties; provided that the foregoing shall not prohibit (i) the Administrative Agent from exercising on its own behalf the rights and remedies that inure to its benefit (solely in its capacity as Administrative Agent) hereunder and under the other Loan Documents, (ii) any Issuing Lender or the Swingline Loan Lender from exercising the rights and remedies that inure to its benefit (solely in its capacity as an Issuing Lender or Swingline Loan Lender, as the case may be) hereunder and under the other Loan Documents, (iii) any Lender from exercising setoff rights in accordance with Section 10.2(b) (subject to the terms of Section 5.5), or (iv) any Lender from filing proofs of claim or appearing and filing pleadings on its own behalf during the pendency of a proceeding relative to any Loan Party under any Insolvency Proceeding; and provided, further, that if at any time there is no Person acting as Administrative Agent hereunder and under the other Loan Documents, then (A) the Required Lenders shall have the rights otherwise ascribed to the Administrative Agent pursuant to this Section 10.2(c), and (B) in addition to the matters specified in clauses (ii), (iii) and (iv) of the preceding proviso and subject to Section 5.5), any Lender may, with the consent of the Required Lenders, enforce any rights and remedies available to it and as authorized by the Required Lenders.

10.3Application of Proceeds.  From and after the date on which the Administrative Agent has taken any action pursuant to Section 10.2 (or after the Loans have automatically become immediately due and payable and the Letter of Credit Obligations have automatically been required to be Cash Collateralized as specified in the proviso to Section 10.2(a)) and until the Facility Termination Date, any and all proceeds received on account of the Obligations shall (subject to Sections 5.15 and 10.2(a)(iii)) be applied as follows:

(a)First, to payment of that portion of the Obligations constituting fees (other than Letter of Credit Fees), indemnities, expenses and other amounts, including attorney fees, payable to the Administrative Agent in its capacity as such, any Issuing Lender in its capacity as such and the Swingline Loan Lender in its capacity as such, ratably among the Administrative Agent, such Issuing Lender and Swingline Loan Lender in proportion to the respective amounts described in this clause First payable to them;

(b)Second, to payment of that portion of the Obligations constituting fees, indemnities and other amounts (other than principal, interest and Letter of Credit Fees) payable to

128


the Lenders under the Loan Documents and the Canadian Obligation Providers under the Canadian Obligation Loan Documents, including attorney fees, ratably among the Lenders and the Canadian Obligation Providers in proportion to the respective amounts described in this clause Second payable to them;

(c)Third, to payment of that portion of the Obligations constituting accrued and unpaid Letter of Credit Fees and interest on the Loans and Reimbursement Obligations and accrued and unpaid interest under the Canadian Obligation Loan Documents, ratably among the Lenders, the Canadian Obligation Providers and the Issuing Lenders in proportion to the respective amounts described in this clause Third payable to them;

(d)Fourth, to payment of that portion of the Obligations constituting unpaid principal of the Loans, Reimbursement Obligations, payment obligations then owing under Lender Provided Interest Rate Hedges, Lender Provided Foreign Currency Hedges and Other Lender Provided Financial Service Products, and the unpaid principal amount of the Canadian Subsidiary Obligations, ratably among the Lenders, the Issuing Lenders, the applicable Cash Management Banks, the applicable Hedge Banks, and the Canadian Obligation Providers in proportion to the respective amounts described in this clause Fourth held by them;

(e)Fifth, to the Administrative Agent for the account of the Issuing Lenders, to Cash Collateralize any undrawn amounts under outstanding Letters of Credit (to the extent not otherwise cash collateralized pursuant to this Agreement); and

(f)Last, the balance, if any, after all of the Obligations have been indefeasibly paid in full, to the Borrower or as otherwise required by Law.

Amounts used to Cash Collateralize the aggregate undrawn amount of Letters of Credit pursuant to clause Fifth above shall be applied to satisfy drawings under such Letters of Credit as they occur.  If any amount remains on deposit as cash collateral after all Letters of Credit have either been fully drawn or expired, such remaining amount shall be applied to the other Obligations, if any, in the order specified above.

Notwithstanding anything to the contrary in this Section 10.3, no Swap Obligations of any Non-Qualifying Party shall be paid with amounts received from such Non-Qualifying Party under its Guaranty Agreement (including sums received as a result of the exercise of remedies with respect to such Guaranty Agreement) or from the proceeds of such Non-Qualifying Party’s Collateral if such Swap Obligations would constitute Excluded Hedge Liabilities; provided that to the extent possible appropriate adjustments shall be made with respect to payments and/or the proceeds of Collateral from other Loan Parties that are Eligible Contract Participants with respect to such Swap Obligations to preserve the allocation to Obligations otherwise specified above in this Section 10.3.

In addition, notwithstanding the foregoing, Obligations arising under Lender Provided Interest Rate Hedges, Lender Provided Foreign Currency Hedges and Other Lender Provided Financial Service Products shall be excluded from the application described above if the Administrative Agent has not received written notice thereof, together with such supporting documentation, as the Administrative Agent may reasonably request, from the applicable Cash Management Bank or

129


Hedge Bank, as the case may be.  Each Cash Management Bank or Hedge Bank not a party to the Agreement that has given the notice contemplated by the preceding sentence shall, by such notice, be deemed to have acknowledged and accepted the appointment of the Administrative Agent pursuant to the terms of Article 11 hereof for itself and its Affiliates as if a “Lender” party hereto.

ARTICLE 11

THE ADMINISTRATIVE AGENT

11.1Appointment and Authority.  Each of the Lenders and each Issuing Lender hereby irrevocably appoints PNC Bank, National Association to act on its behalf as the Administrative Agent hereunder and under the other Loan Documents and authorizes the Administrative Agent to take such actions on its behalf and to exercise such powers as are delegated to the Administrative Agent by the terms hereof or thereof, together with such actions and powers as are reasonably incidental thereto.  The provisions of this Article 11 are solely for the benefit of the Administrative Agent, the Lenders and the Issuing Lenders, and neither the Borrower nor any other Loan Party shall have rights as a third-party beneficiary of any of such provisions.  It is understood and agreed that the use of the term “agent” herein or in any other Loan Documents (or any other similar term) with reference to the Administrative Agent is not intended to connote any fiduciary or other implied (or express) obligations arising under agency doctrine of any applicable law. Instead such term is used as a matter of market custom and is intended to create or reflect only an administrative relationship between contracting parties.

11.2Rights as a Lender.  The Person serving as the Administrative Agent hereunder shall have the same rights and powers in its capacity as a Lender as any other Lender and may exercise the same as though it were not the Administrative Agent, and the term “Lender” or “Lenders” shall, unless otherwise expressly indicated or unless the context otherwise requires, include the Person serving as the Administrative Agent hereunder in its individual capacity.  Such Person and its Affiliates may accept deposits from, lend money to, own securities of, act as the financial advisor or in any other advisory capacity for, and generally engage in any kind of business with, the Borrower or any Subsidiary or other Affiliate thereof as if such Person were not the Administrative Agent hereunder and without any duty to account therefor to the Lenders.

11.3Exculpatory Provisions.

(a) The Administrative Agent shall not have any duties or obligations except those expressly specified herein and in the other Loan Documents, and its duties hereunder shall be administrative in nature.  Without limiting the generality of the foregoing, the Administrative Agent:

(i)shall not be subject to any fiduciary or other implied duties, regardless of whether a Potential Default or Event of Default has occurred and is continuing;

(ii)shall not have any duty to take any discretionary action or exercise any discretionary powers, except discretionary rights and powers expressly contemplated hereby or by the other Loan Documents that the Administrative Agent is required to exercise as directed in writing by the Required Lenders (or such other number or percentage of the Lenders as shall be expressly provided for

130


herein or in the other Loan Documents); provided that the Administrative Agent shall not be required to take any action that, in its opinion or the opinion of its counsel, may expose the Administrative Agent to liability or that is contrary to any Loan Document or applicable law, including for the avoidance of doubt any action that may be in violation of the automatic stay under any Debtor Relief Law or that may effect a forfeiture, modification or termination of property of a Defaulting Lender in violation of any Debtor Relief Law; and

(iii)shall not, except as expressly specified herein and in the other Loan Documents, have any duty to disclose, and shall not be liable for the failure to disclose, any information relating to the Borrower or any of its Affiliates that is communicated to or obtained by the Person serving as the Administrative Agent or any of its Affiliates in any capacity.

(b)The Administrative Agent shall not be liable for any action taken or not taken by it (i) with the consent or at the request of the Required Lenders (or such other number or percentage of the Lenders as shall be necessary, or as the Administrative Agent shall believe in good faith shall be necessary, under the circumstances as provided in Sections 12.1 and 10.2), or (ii) in the absence of its own gross negligence or willful misconduct as determined by a court of competent jurisdiction by final and nonappealable judgment.  The Administrative Agent shall be deemed not to have knowledge of any Potential Default or Event of Default unless and until notice describing such Potential Default or Event of Default is given to the Administrative Agent in writing by the Borrower, a Lender or an Issuing Lender.

(c)The Administrative Agent shall not be responsible for or have any duty to ascertain or inquire into (i) any statement, warranty or representation made in or in connection with this Agreement or any other Loan Document, (ii) the contents of any certificate, report or other document delivered hereunder or thereunder or in connection herewith or therewith, (iii) the performance or observance of any of the covenants, agreements or other terms or conditions specified herein or therein or the occurrence of any Potential Default or Event of Default, (iv) the validity, enforceability, effectiveness or genuineness of this Agreement, any other Loan Document or any other agreement, instrument or document, or (v) the satisfaction of any condition specified in Article 7 or elsewhere herein, other than to confirm receipt of items expressly required to be delivered to the Administrative Agent.

11.4Reliance by Administrative Agent.  The Administrative Agent shall be entitled to rely upon, and shall not incur any liability for relying upon, any notice, request, certificate, consent, statement, instrument, document or other writing (including any electronic message, Internet or intranet website posting or other distribution) believed by it to be genuine and to have been signed, sent or otherwise authenticated by the proper Person.  The Administrative Agent also may rely upon any statement made to it orally or by telephone and believed by it to have been made by the proper Person, and shall not incur any liability for relying thereon.  In determining compliance with any condition hereunder to the making of a Loan, or the issuance, extension, renewal or increase of a Letter of Credit, that by its terms must be fulfilled to the satisfaction of a Lender or an Issuing Lender, the Administrative Agent may presume that such condition is satisfactory to such Lender or such Issuing Lender unless the Administrative Agent shall have received notice to

131


the contrary from such Lender or such Issuing Lender prior to the making of such Loan or the issuance of such Letter of Credit.  The Administrative Agent may consult with legal counsel (who may be counsel for the Borrower), independent accountants and other experts selected by it, and shall not be liable for any action taken or not taken by it in accordance with the advice of any such counsel, accountants or experts.

11.5Delegation of Duties.  The Administrative Agent may perform any and all of its duties and exercise its rights and powers hereunder or under any other Loan Document by or through any one or more sub-agents appointed by the Administrative Agent.  The Administrative Agent and any such sub-agent may perform any and all of its duties and exercise its rights and powers by or through their respective Related Parties.  The exculpatory provisions of this Article 11 shall apply to any such sub-agent and to the Related Parties of the Administrative Agent and any such sub-agent, and shall apply to their respective activities in connection with the syndication of the Facilities as well as activities as Administrative Agent.  The Administrative Agent shall not be responsible for the negligence or misconduct of any sub-agents except to the extent that a court of competent jurisdiction determines in a final and nonappealable judgment that the Administrative Agent acted with gross negligence or willful misconduct in the selection of such sub-agents.

11.6Resignation of Administrative Agent.

(a) The Administrative Agent may at any time give notice of its resignation to the Lenders, the Issuing Lenders and the Borrower.  Upon receipt of any such notice of resignation, the Required Lenders shall have the right, in consultation with the Borrower (so long as no Potential Default or Event of Default has occurred and is continuing), to appoint a successor, which shall be a bank with an office in the United States, or an Affiliate of any such bank with an office in the United States.  If no such successor shall have been so appointed by the Required Lenders and shall have accepted such appointment within thirty (30) days after the retiring Administrative Agent gives notice of its resignation (or such earlier day as shall be agreed by the Required Lenders) (the “Resignation Effective Date”), then the retiring Administrative Agent may (but shall not be obligated to), on behalf of the Lenders and the Issuing Lenders, appoint a successor Administrative Agent meeting the qualifications specified above; provided that in no event shall any such successor Administrative Agent be a Defaulting Lender.  Whether or not a successor has been appointed, such resignation shall become effective in accordance with such notice on the Resignation Effective Date.

(b)If the Person serving as Administrative Agent is a Defaulting Lender pursuant to clause (d) of the definition thereof, the Required Lenders may, to the extent permitted by applicable law, by notice in writing to the Borrower and such Person remove such Person as Administrative Agent and, in consultation with the Borrower, appoint a successor. If no such successor shall have been so appointed by the Required Lenders and shall have accepted such appointment within thirty (30) days (or such earlier day as shall be agreed by the Required Lenders) (the “Removal Effective Date”), then such removal shall nonetheless become effective in accordance with such notice on the Removal Effective Date.

(c)  With effect from the Resignation Effective Date or the Removal Effective Date (as applicable) (i) the retiring or removed Administrative Agent shall be discharged from its duties and obligations hereunder and under the other Loan Documents (except that in the case of any

132


collateral security held by the Administrative Agent on behalf of the Lenders or the Issuing Lenders under any of the Loan Documents, the retiring or removed Administrative Agent shall continue to hold such collateral security until such time as a successor Administrative Agent is appointed) and (ii) except for any indemnity payments owed to the retiring or removed Administrative Agent, all payments, communications and determinations provided to be made by, to or through the Administrative Agent shall instead be made by or to each Lender and each Issuing Lender directly, until such time, if any, as the Required Lenders appoint a successor Administrative Agent as provided for above.  Upon the acceptance of a successor’s appointment as Administrative Agent hereunder, such successor shall succeed to and become vested with all of the rights, powers, privileges and duties of the retiring or removed Administrative Agent (other than any rights to indemnity payments owed to the retiring or removed Administrative Agent), and the retiring or removed Administrative Agent shall be discharged from all of its duties and obligations hereunder or under the other Loan Documents.  The fees payable by the Borrower to a successor Administrative Agent shall be the same as those payable to its predecessor unless otherwise agreed between the Borrower and such successor.  After the retiring or removed Administrative Agent’s resignation or removal hereunder and under the other Loan Documents, the provisions of this Article 11 and Section 12.3 shall continue in effect for the benefit of such retiring or removed Administrative Agent, its sub-agents and their respective Related Parties in respect of any actions taken or omitted to be taken by any of them while the retiring or removed Administrative Agent was acting as Administrative Agent.

11.7Non-Reliance on Administrative Agent and Other Lenders.  Each Lender and each Issuing Lender acknowledges that it has, independently and without reliance upon the Administrative Agent or any other Lender or any of their Related Parties and based on such documents and information as it has deemed appropriate, made its own credit analysis and decision to enter into this Agreement.  Each Lender and each Issuing Lender also acknowledges that it will, independently and without reliance upon the Administrative Agent or any other Lender or any of their Related Parties and based on such documents and information as it shall from time to time deem appropriate, continue to make its own decisions in taking or not taking action under or based upon this Agreement, any other Loan Document or any related agreement or any document furnished hereunder or thereunder.

11.8No Other Duties, Etc.  Anything herein to the contrary notwithstanding, none of the bookrunners, arrangers, syndication agents, or documentation agents listed on the cover page hereof shall have any powers, duties or responsibilities under this Agreement or any of the other Loan Documents, except in its capacity, as applicable, as the Administrative Agent, a Lender or an Issuing Lender hereunder.

11.9Administrative Agent’s Fee.  The Borrower shall pay to the Administrative Agent a nonrefundable fee (the “Administrative Agent’s Fee”) under the terms of a letter (the “Administrative Agent’s Letter”) between the Borrower and Administrative Agent, as amended from time to time.

11.10Administrative Agent May File Proofs of Claim.  In case of the pendency of any proceeding under any Debtor Relief Law or any other judicial proceeding relative to any Loan Party, the Administrative Agent (irrespective of whether the principal of any Loan or Letter of Credit Obligation shall then be due and payable as herein expressed or by declaration or otherwise

133


and irrespective of whether the Administrative Agent shall have made any demand on the Borrower) shall be entitled and empowered (but not obligated) by intervention in such proceeding or otherwise:

(a)to file and prove a claim for the whole amount of the principal and interest owing and unpaid in respect of the Loans, Letter of Credit Obligations and all other Obligations that are owing and unpaid and to file such other documents as may be necessary or advisable in order to have the claims of the Lenders, the Issuing Lenders and the Administrative Agent (including any claim for the reasonable compensation, expenses, disbursements and advances of the Lenders, the Issuing Lenders and the Administrative Agent and their respective agents and counsel and all other amounts due the Lenders, the Issuing Lenders and the Administrative Agent under Sections 2.8(b) and 12.3) allowed in such judicial proceeding; and

(b)to collect and receive any monies or other property payable or deliverable on any such claims and to distribute the same;

and any custodian, receiver, assignee, trustee, liquidator, sequestrator or other similar official in any such judicial proceeding is hereby authorized by each Lender and each Issuing Lender to make such payments to the Administrative Agent and, in the event that the Administrative Agent shall consent to the making of such payments directly to the Lenders and the Issuing Lenders, to pay to the Administrative Agent any amount due for the reasonable compensation, expenses, disbursements and advances of the Administrative Agent and its agents and counsel, and any other amounts due the Administrative Agent under Section 12.3.

11.11Collateral and Guaranty Matters.

(a) Each of the Secured Parties irrevocably authorizes the Administrative Agent, at its option and in its discretion,

(i)to release any Lien on any property granted to or held by the Administrative Agent under any Loan Document (x) upon the Facility Termination Date, (y) that is sold or otherwise disposed of or to be sold or otherwise disposed of as part of or in connection with any sale or other disposition permitted under the Loan Documents, or (z) subject to Section 12.1, if approved, authorized or ratified in writing by the Required Lenders;

(ii)to subordinate any Lien on any property granted to or held by the Administrative Agent under any Loan Document to the holder of any Lien on such property that is permitted by clause (h) of the definition of “Permitted Liens”; and

(iii)to release any Guarantor from its obligations under the Guaranty Agreement if such Person ceases to be a Subsidiary as a result of a transaction permitted under the Loan Documents.

Upon request by the Administrative Agent at any time, the Required Lenders will confirm in writing the Administrative Agent’s authority to release or subordinate its interest in

134


particular types or items of property, or to release any Guarantor from its obligations under the Guaranty Agreement pursuant to this Section 11.11.

(b)The Administrative Agent shall not be responsible for or have a duty to ascertain or inquire into any representation or warranty regarding the existence, value or collectability of the Collateral, the existence, priority or perfection of the Administrative Agent’s Lien thereon, or any certificate prepared by any Loan Party in connection therewith, nor shall the Administrative Agent be responsible or liable to the Lenders for any failure to monitor or maintain any portion of the Collateral.

11.12No Reliance on Administrative Agent’s Customer Identification Program.  Each Lender acknowledges and agrees that neither such Lender, nor any of its Affiliates, participants or assignees, may rely on the Administrative Agent to carry out such Lender’s, Affiliate’s, participant’s or assignee’s customer identification program, or other obligations required or imposed under or pursuant to the USA PATRIOT Act or the regulations thereunder, including the regulations contained in 31 CFR 103.121 (as hereafter amended or replaced, the “CIP Regulations”), or any other Anti-Terrorism Law or any Anti-Corruption Law, including any programs involving any of the following items relating to or in connection with any of the Loan Parties, their Affiliates or their agents, the Loan Documents or the transactions hereunder or contemplated hereby: (i) any identity verification procedures, (ii) any recordkeeping, (iii) comparisons with government lists, (iv) customer notices or (v) other procedures required under the CIP Regulations or such other Laws.

11.13Lender Provided Interest Rate Hedges, Lender Provided Foreign Currency Hedges, Other Lender Provided Financial Service Products and Canadian Subsidiary Obligations.  Except as otherwise expressly specified herein, no Cash Management Bank, Hedge Bank or Canadian Obligation Provider that obtains the benefits of Section 10.3, the Guaranty Agreement or any Collateral by virtue of the provisions hereof or of the Guaranty Agreement or any Loan Document shall have any right to notice of any action or to consent to, direct or object to any action hereunder or under any other Loan Document or otherwise in respect of the Collateral (including the release or impairment of any Collateral) other than in its capacity as a Lender and, in such case, only to the extent expressly provided in the Loan Documents.  Notwithstanding any other provision of this Article 11 to the contrary, the Administrative Agent shall not be required to verify the payment of, or that other satisfactory arrangements have been made with respect to, Obligations arising under Lender Provided Interest Rate Hedges, Lender Provided Foreign Currency Hedges, Other Lender Provided Financial Service Products, and/or Canadian Subsidiary Obligations unless the Administrative Agent has received written notice of such Obligations, together with such supporting documentation as the Administrative Agent may request, from the applicable Cash Management Bank, Hedge Bank or Canadian Obligation Provider, as the case may be.

11.14

ERISA Matters.

(a)Each Lender (x) represents and warrants, as of the date such Person became a Lender party hereto, to, and (y) covenants, from the date such Person became a Lender party hereto to the date such Person ceases being a Lender party hereto, for the benefit of, Administrative Agent and the Lead Arrangers and their respective Affiliates, and for the benefit of Borrower or any other Loan Party, that at least one of the following is and will be true:

135


(i)such Lender is not using “plan assets” (within the meaning of 29 CFR § 2510.3-101, as modified by Section 3(42) of ERISA) of one or more Plans in connection with the Loans or the Commitments,

(ii)the transaction exemption set forth in one or more Prohibited Transaction Exemptions (“PTEs”), such as PTE 84-14 (a class exemption for certain transactions determined by independent qualified professional asset managers), PTE 95-60 (a class exemption for certain transactions involving insurance company general accounts), PTE 90-1 (a class exemption for certain transactions involving insurance company pooled separate accounts), PTE 91-38 (a class exemption for certain transactions involving bank collective investment funds) or PTE 96-23 (a class exemption for certain transactions determined by in-house asset managers), is applicable with respect to such Lender’s entrance into, participation in, administration of and performance of the Loans, the Commitments and this Agreement,

(iii)(A) such Lender is an investment fund managed by a “Qualified Professional Asset Manager” (within the meaning of Part VI of PTE 84-14), (B) such Qualified Professional Asset Manager made the investment decision on behalf of such Lender to enter into, participate in, administer and perform the Loans, the Commitments and this Agreement, (C) the entrance into, participation in, administration of and performance of the Loans, the Commitments and this Agreement satisfies the requirements of sub-sections (b) through (g) of Part I of PTE 84-14 and (D) to the best knowledge of such Lender, the requirements of subsection (a) of Part I of PTE 84-14 are satisfied with respect to such Lender’s entrance into, participation in, administration of and performance of the Loans, the Commitments and this Agreement, or

(iv)such other representation, warranty and covenant as may be agreed in writing between the Administrative Agent, in its sole discretion, and such Lender.

(b)In addition, unless sub-clause (i) in the immediately preceding Section 11.14(a) is true with respect to a Lender or such Lender has not provided another representation, warranty and covenant as provided in sub-clause (iv) in the immediately preceding Section 11.14(a), such Lender further (x) represents and warrants, as of the date such Person became a Lender party hereto, to, and (y) covenants, from the date such Person became a Lender party hereto to the date such Person ceases being a Lender party hereto, for the benefit of, the Administrative Agent and the Lead Arrangers and their respective Affiliates, and not, for the avoidance of doubt, to or for the benefit of Borrower, that:

(i)none of the Administrative Agent or the Lead Arrangers or any of their respective Affiliates is a fiduciary with respect to the assets of such Lender (including in connection with the reservation or exercise of any rights by Administrative Agent under this Agreement, any Loan Document or any documents related to hereto or thereto),

(ii)the Person making the investment decision on behalf of such Lender with respect to the entrance into, participation in, administration of and performance of the Loans, the Commitments and this Agreement is capable of evaluating investment risks

136


independently, both in general and with regard to particular transactions and investment strategies (including in respect of the Loans),

(iii)the Person making the investment decision on behalf of such Lender with respect to the entrance into, participation in, administration of and performance of the Loans, the Commitments and this Agreement is a fiduciary under ERISA or the Code, or both, with respect to the Loans, the Commitments and this Agreement and is responsible for exercising independent judgment in evaluating the transactions hereunder, and

(iv)no fee or other compensation is being paid directly to the Administrative Agent or Lead Arrangers or any their respective Affiliates for investment advice (as opposed to other services) in connection with the Loans, the Commitments or this Agreement.

The Administrative Agent and the Lead Arrangers hereby inform the Lenders that each such Person is not undertaking to provide impartial investment advice, or to give advice in a fiduciary capacity, in connection with the transactions contemplated hereby, and that such Person has a financial interest in the transactions contemplated hereby in that such Person or an Affiliate thereof (i) may receive interest or other payments with respect to the Loans, the Commitments and this Agreement, (ii) may recognize a gain if it extended the Loans, or the Commitments for an amount less than the amount being paid for an interest in the Loans or the Commitments by such Lender or (iii) may receive fees or other payments in connection with the transactions contemplated hereby, the Loan Documents or otherwise, including structuring fees, commitment fees, arrangement fees, facility fees, upfront fees, underwriting fees, ticking fees, agency fees, administrative agent or collateral agent fees, utilization fees, minimum usage fees, letter of credit fees, fronting fees, deal-away or alternate transaction fees, amendment fees, processing fees, term out premiums, banker’s acceptance fees, breakage or other early termination fees or fees similar to the foregoing.

11.15 Erroneous Payments.

(a)If the Administrative Agent notifies a Lender, an Issuing Lender or Secured Party, or any Person who has received funds on behalf of a Lender, an Issuing Lender or Secured Party such Lender or such Issuing Lender (any such Lender, Issuing Lender, Secured Party or other recipient, a “Payment Recipient”) that the Administrative Agent has determined in its sole discretion (whether or not after receipt of any notice under immediately succeeding clause (b)) that any funds received by such Payment Recipient from the Administrative Agent or any of its Affiliates were erroneously transmitted to, or otherwise erroneously or mistakenly received by, such Payment Recipient (whether or not known to such Lender, Issuing Lender, Secured Party or other Payment Recipient on its behalf)  (any such funds, whether received as a payment, prepayment or repayment of principal, interest, fees, distribution or otherwise, individually and collectively, an “Erroneous Payment”) and demands the return of such Erroneous Payment (or a portion thereof), such Erroneous Payment shall at all times remain the property of the Administrative Agent and shall be segregated by the Payment Recipient and held in trust for the benefit of the Administrative Agent, and such Lender, Issuing Lender or Secured Party shall (or, with respect to any Payment Recipient who received such funds on its behalf, shall cause such Payment Recipient to) promptly, but in no event later than two (2) Business Days thereafter, return

137


to the Administrative Agent the amount of any such Erroneous Payment (or portion thereof) as to which such a demand was made, in same day funds (in the currency so received), together with interest thereon in respect of each day from and including the date such Erroneous Payment (or portion thereof) was received by such Payment Recipient to the date such amount is repaid to the Administrative Agent in same day funds at the greater of the Overnight Bank Funding Rate and a rate determined by the Administrative Agent in accordance with banking industry rules on interbank compensation from time to time in effect. A notice of the Administrative Agent to any Payment Recipient under this clause (a) shall be conclusive, absent manifest error.

(b)Without limiting immediately preceding clause (a), each Lender, Issuing Lender or Secured Party, or any Person who has received funds on behalf of a Lender, an Issuing Lender or Secured Party, hereby further agrees that if it receives a payment, prepayment or repayment (whether received as a payment, prepayment or repayment of principal, interest, fees, distribution or otherwise) from the Administrative Agent (or any of its Affiliates) (x) that is in a different amount than, or on a different date from, that specified in a notice of payment, prepayment or repayment sent by the Administrative Agent (or any of its Affiliates) with respect to such payment, prepayment or repayment, (y) that was not preceded or accompanied by a notice of payment, prepayment or repayment sent by the Administrative Agent (or any of its Affiliates), or (z) that such Lender, such Issuing Lender or Secured Party, or other such recipient, otherwise becomes aware was transmitted, or received, in error or by mistake (in whole or in part) in each case:

(i)(A) in the case of immediately preceding clauses (x) or (y), an error shall be presumed to have been made (absent written confirmation from the Administrative Agent to the contrary) or (B) an error has been made (in the case of immediately preceding clause (z)), in each case, with respect to such payment, prepayment or repayment; and

(ii)such Lender, Issuing Lender or Secured Party shall (and shall cause any other recipient that receives funds on its respective behalf to) promptly (and, in all events, within one Business Day of its knowledge of such error) notify the Administrative Agent of its receipt of such payment, prepayment or repayment, the details thereof (in reasonable detail) and that it is so notifying the Administrative Agent pursuant to this Section 11.15(b).

(c)Each Lender, Issuing Lender or Secured Party hereby authorizes the Administrative Agent to set off, net and apply any and all amounts at any time owing to such Lender, Issuing Lender or Secured Party under any Loan Document, or otherwise payable or distributable by the Administrative Agent to such Lender, Issuing Lender or Secured Party from any source, against any amount due to the Administrative Agent under immediately preceding clause (a) or under the indemnification provisions of this Agreement.

(d)In the event that an Erroneous Payment (or portion thereof) is not recovered by the Administrative Agent for any reason, after demand therefor by the Administrative Agent in accordance with immediately preceding clause (a), from any Lender or any Issuing Lender that has received such Erroneous Payment (or portion thereof) (and/or from any Payment Recipient who received such Erroneous Payment (or portion thereof) on its respective behalf)  (such unrecovered amount, an “Erroneous Payment Return Deficiency”), upon the Administrative

138


Agent’s notice to such Lender or such Issuing Lender at any time, (i) such Lender or such Issuing Lender shall be deemed to have assigned its Loans (but not its Commitments) of the relevant class with respect to which such Erroneous Payment was made (the “Erroneous Payment Impacted Class”) in an amount equal to the Erroneous Payment Return Deficiency (or such lesser amount as the Administrative Agent may specify) (such assignment of the Loans (but not Commitments) of the Erroneous Payment Impacted Class, the “Erroneous Payment Deficiency Assignment”) at par plus any accrued and unpaid interest (with the assignment fee to be waived by the Administrative Agent in such instance), and is hereby (together with the Borrower) deemed to execute and deliver an Assignment and Assumption Agreement with respect to such Erroneous Payment Deficiency Assignment, and such Lender or such Issuing Lender shall deliver any Notes evidencing such Loans to the Borrower or the Administrative Agent, (ii) the Administrative Agent as the assignee Lender shall be deemed to acquire the Erroneous Payment Deficiency Assignment, (iii) upon such deemed acquisition, the Administrative Agent as the assignee Lender shall become a Lender or an Issuing Lender, as applicable, hereunder with respect to such Erroneous Payment Deficiency Assignment and the assigning Lender or assigning Issuing Lender shall cease to be a Lender or an Issuing Lender, as applicable, hereunder with respect to such Erroneous Payment Deficiency Assignment, excluding, for the avoidance of doubt, its obligations under the indemnification provisions of this Agreement and its applicable Commitments which shall survive as to such assigning Lender or assigning Issuing Lender and (iv) the Administrative Agent may reflect in the Register its ownership interest in the Loans subject to the Erroneous Payment Deficiency Assignment. The Administrative Agent may, in its discretion, sell any Loans acquired pursuant to an Erroneous Payment Deficiency Assignment and upon receipt of the proceeds of such sale, the Erroneous Payment Return Deficiency owing by the applicable Lender or applicable Issuing Lender shall be reduced by the net proceeds of the sale of such Loan (or portion thereof), and the Administrative Agent shall retain all other rights, remedies and claims against such Lender or such Issuing Lender (and/or against any recipient that receives funds on its respective behalf). For the avoidance of doubt, no Erroneous Payment Deficiency Assignment will reduce the Commitments of any Lender or any Issuing Lender and such Commitments shall remain available in accordance with the terms of this Agreement.  In addition, each party hereto agrees that, except to the extent that the Administrative Agent has sold a Loan (or portion thereof) acquired pursuant to an Erroneous Payment Deficiency Assignment, and irrespective of whether the Administrative Agent may be equitably subrogated, the Administrative Agent shall be contractually subrogated to all the rights and interests of the applicable Lender, Issuing Lender or Secured Party under the Loan Documents with respect to each Erroneous Payment Return Deficiency (the “Erroneous Payment Subrogation Rights”).

(e)The parties hereto agree that an Erroneous Payment shall not pay, prepay, repay, discharge or otherwise satisfy any Obligations owed by the Borrower or any other Loan Party, except, in each case, to the extent such Erroneous Payment is, and solely with respect to the amount of such Erroneous Payment that is, comprised of funds received by the Administrative Agent from the Borrower or any other Loan Party for the purpose of making such Erroneous Payment.

(f)To the extent permitted by applicable law, no Payment Recipient shall assert any right or claim to an Erroneous Payment, and hereby waives, and is deemed to waive, any claim, counterclaim, defense or right of set-off or recoupment with respect to any demand, claim

139


or counterclaim by the Administrative Agent for the return of any Erroneous Payment received, including without limitation waiver of any defense based on “discharge for value” or any similar doctrine

(g)Each party’s obligations, agreements and waivers under this Section 11.15 shall survive the resignation or replacement of the Administrative Agent, the termination of the Commitments and/or the repayment, satisfaction or discharge of all Obligations (or any portion thereof) under any Loan Document.

ARTICLE 12

MISCELLANEOUS

12.1Modifications, Amendments or Waivers.  With the written consent of the Required Lenders (or as expressly provided by Section 5.17), the Administrative Agent, acting on behalf of all the Lenders, and the Borrower, on behalf of the Loan Parties, may from time to time enter into written agreements amending or changing any provision of this Agreement or any other Loan Document or the rights of the Lenders or the Loan Parties hereunder or thereunder, or may grant written waivers or consents hereunder or thereunder.  Any such agreement, waiver or consent made with such written consent shall be effective to bind all the Lenders and the Loan Parties; provided, that no such agreement, waiver or consent may be made which will:

(a)Increase of Commitment.  Increase the amount of the Revolving Credit Commitment or Term Loan Commitment of any Lender hereunder without the consent of such Lender;

(b)Extension of Payment; Reduction of Principal, Interest or Fees; Modification of Terms of Payment.  Whether or not any Loans are outstanding, extend the Expiration Date or the scheduled time for payment of principal or interest of any Loan (excluding the due date of any mandatory prepayment of a Loan), the Commitment Fee or any other fee payable to any Lender, or reduce the principal amount of or the stated rate of interest borne by any Loan (other than as a result of waiving the applicability of any post-default increase in interest rates) or reduce the stated rate of the Commitment Fee or any other fee payable to any Lender, without the consent of each Lender directly affected thereby (provided that any amendment or modification of defined terms used in the financial covenants of this Agreement shall not constitute a reduction in the stated rate of interest or fees for purposes of this clause (b));

(c)Release of Collateral or Guarantor.  Except for sales of assets permitted by Section 9.6, release all or substantially all of the Collateral or release all or substantially all the value of the Guarantors from their Obligations under the Guaranty Agreement, in each case without the consent of all Lenders (other than Defaulting Lenders);

(d)Class Voting.  Directly and materially adversely affect the rights of Lenders holding Commitments or Loans of one Class differently from the rights of Lenders holding Commitments or Loans of any other Class without the written consent of the applicable Required Class Lenders;

(e)Miscellaneous.  Amend Section 5.4, Section 11.3, Section 5.5, Section 10.3 or this Section 12.1, alter any provision regarding the pro rata treatment of the Lenders or requiring

140


all Lenders to authorize the taking of any action or reduce any percentage specified in the definition of Required Lenders, in each case without the consent of all of the Lenders;

provided that (i) no agreement, waiver or consent which would modify the interests, rights or obligations of the Administrative Agent, any Issuing Lender, or the Swingline Loan Lender may be made without the written consent of the Administrative Agent, any Issuing Lender or the Swingline Loan Lender, as applicable, and (ii) the Administrative Agent’s Letter may be amended, or rights or privileges thereunder waived, in a writing executed only by the parties thereto, and provided, further, that, if in connection with any proposed waiver, amendment or modification referred to in Sections 12.1(a) through 12.1(d) above, there is a Non-Consenting Lender, then the Borrower shall have the right to replace any such Non-Consenting Lender with one or more replacement Lenders pursuant to Section 5.13.  Notwithstanding anything to the contrary herein, no Defaulting Lender shall have any right to approve or disapprove any amendment, waiver or consent hereunder (and any amendment, waiver or consent which by its terms requires the consent of all Lenders or each affected Lender may be effected with the consent of the applicable Lenders other than Defaulting Lenders), except that (x) the Commitment of any Defaulting Lender may not be increased or extended without the consent of such Lender and (y) any waiver, amendment or modification requiring the consent of all Lenders or each affected Lender that by its terms affects any Defaulting Lender disproportionately adversely relative to other affected Lenders shall require the consent of such Defaulting Lender.

Notwithstanding any provision herein to the contrary, this Agreement may be amended to extend (x) the Expiration Date with respect to the Revolving Credit Commitments of Lenders under the Revolving Credit Facility that agree to such extension with respect to their Revolving Credit Commitments with the written consent of each such approving Lender, the Administrative Agent and the Borrower (and no other Lender) and, in connection therewith, to provide for different rates of interest and fees under the Revolving Credit Facility with respect to the portion of the Revolving Credit Commitments with an Expiration Date so extended; and/or (y) the Term Loan Maturity Date with respect to applicable Lenders that agree to such extension with respect to their Term Loans with the written consent of each such approving Lender, the Administrative Agent and the Borrower (and no other Lender) and, in connection therewith, to provide for different rates of interest and fees under the Term Loan Facility with respect to the portion thereof with a Term Loan Maturity Date so extended; provided that in each such case any such proposed extension of the Expiration Date or the Term Loan Maturity Date shall have been offered to each Lender with Loans or Commitments under the applicable Facility proposed to be extended, and if the consents of such Lenders exceed the portion of Commitments and Loans the Borrower wishes to extend, such consents shall be accepted on a pro rata basis among the applicable consenting Lenders.  This paragraph shall apply to any Incremental Term Loans in the same manner as it applies to the Term Loan Facility; provided that any such offer may, at the Borrower’s option, be made to the Lenders in respect of any tranche or tranches of Incremental Term Loans and/or any Term Loan Facility without being made to any other tranche of Incremental Term Loans or the Term Loan Facility, as the case may be.

In addition, notwithstanding the foregoing, (a) with the consent of the Borrower, the Administrative Agent may amend, modify or supplement any Loan Document without the consent of any Lender or the Required Lenders in order to correct or cure any ambiguity, inconsistency or defect or correct any typographical or ministerial error in any Loan Document (provided that any

141


such amendment, modification or supplement shall not be materially adverse to the interests of the Lenders taken as a whole), and (b) without the consent of any Lender or the Borrower, within a reasonable time after (i) the effective date of any increase or addition to, extension of or decrease from, the “Revolving Commitment Amount” set forth on Schedule 1.1(B), or (ii) any assignment by any Lender of some or all of its “Revolving Commitment Amount” set forth on Schedule 1.1(B), the Administrative Agent shall, and is hereby authorized to, revise Schedule 1.1(B) to reflect such change, whereupon such revised Schedule 1.1(B) shall replace the old Schedule 1.1(B) and become part of this Agreement.

12.2No Implied Waivers; Cumulative Remedies.  No course of dealing and no delay or failure of the Administrative Agent or any Lender in exercising any right, power, remedy or privilege under this Agreement or any other Loan Document shall affect any other or future exercise thereof or operate as a waiver thereof, nor shall any single or partial exercise thereof preclude any further exercise thereof or of any other right, power, remedy or privilege.  The enumeration of the rights and remedies of the Administrative Agent and the Lenders specified in this Agreement is not intended to be exhaustive and the exercise by the Administrative Agent and the Lenders of any right or remedy shall not preclude the exercise of any other rights or remedies, all of which shall be cumulative, and shall be in addition to any other right or remedy given hereunder or under the other Loan Documents or that may now or hereafter exist at law or in equity or by suit or otherwise.  No reasonable delay or failure to take action on the part of the Administrative Agent or any Lender in exercising any right, power or privilege shall operate as a waiver thereof, nor shall any single or partial exercise of any such right, power or privilege preclude any other or further exercise thereof or the exercise of any other right, power or privilege or shall be construed to be a waiver of any Event of Default.

12.3Expenses; Indemnity; Damage Waiver.

(a)Costs and Expenses.  The Borrower shall pay (i) all reasonable and documented out-of-pocket expenses incurred by the Administrative Agent and its Affiliates (including the reasonable fees, charges and disbursements of counsel for the Administrative Agent), and shall pay all reasonable and documented fees and time charges and disbursements for attorneys who may be employees of the Administrative Agent, in connection with the syndication of the credit facilities provided for herein, the preparation, negotiation, execution, delivery and administration of this Agreement and the other Loan Documents or any amendments, modifications or waivers of the provisions hereof or thereof (whether or not the transactions contemplated hereby or thereby shall be consummated), (ii) all reasonable and documented out-of-pocket expenses incurred by the Issuing Lenders in connection with the issuance, amendment, renewal or extension of any Letter of Credit or any demand for payment thereunder, (iii) all reasonable and documented out-of-pocket expenses incurred by the Administrative Agent, any Lender or any Issuing Lender (including the fees, charges and disbursements of any outside counsel for the Administrative Agent, any Lender or any Issuing Lender), in connection with the enforcement or protection of its rights (A) in connection with this Agreement and the other Loan Documents, including its rights under this Section 12.3(a), or (B) in connection with the Loans made or Letters of Credit issued hereunder, including all such out-of-pocket expenses incurred during any workout, restructuring or negotiations in respect of such Loans or Letters of Credit, and (iv) all reasonable and documented out-of-pocket expenses of the Administrative Agent’s regular

142


employees and agents engaged periodically to perform audits of the Loan Parties’ books, records and business properties.

(b)Indemnification by the Borrower.  The Borrower shall indemnify the Administrative Agent (and any sub-agent thereof), the Lead Arrangers, each Lender and each Issuing Lender, and each Related Party of any of the foregoing Persons (each such Person being called an “Indemnitee”) against, and hold each Indemnitee harmless from (and shall reimburse each Indemnitee as the same are incurred), any and all losses, claims, damages, liabilities and related expenses (limited in case of legal fees and expenses to one counsel selected by the Administrative Agent for all Indemnitees taken as a whole and, if reasonably necessary, a single local counsel selected by the Administrative Agent for all Indemnitees taken as a whole in each relevant material jurisdiction and, solely in the case of an actual or reasonably perceived conflict of interest, one additional counsel in each relevant material jurisdiction for each group of similarly situated Indemnitees, and, if reasonably necessary, one regulatory counsel in any material specialty), incurred by any Indemnitee or asserted against any Indemnitee by any Person (including the Borrower or any other Loan Party, or any affiliate of any such party) other than such Indemnitee and its Related Parties arising out of, in connection with, or as a result of (i) the execution or delivery of this Agreement, any other Loan Document or any agreement or instrument contemplated hereby or thereby, the performance by the parties hereto of their respective obligations hereunder or thereunder or the consummation of the transactions contemplated hereby or thereby, (ii) any Loan or Letter of Credit or the use or proposed use of the proceeds therefrom (including any refusal by any Issuing Lender to honor a demand for payment under a Letter of Credit if the documents presented in connection with such demand do not strictly comply with the terms of such Letter of Credit), (iii) any actual or alleged presence or release of Hazardous Materials on or from any property owned or operated by the Borrower or any of its Subsidiaries, or any Environmental Liability related in any way to the Borrower or any of its Subsidiaries, or (iv) any actual or prospective claim, litigation, investigation or proceeding relating to any of the foregoing, whether based on contract, tort or any other theory, whether brought by a third party or by the Borrower or any other Loan Party or any affiliate of any such party, and regardless of whether any Indemnitee is a party thereto; provided that such indemnity shall not, as to any Indemnitee, be available to the extent that such losses, claims, damages, liabilities or related expenses (x) are determined by a court of competent jurisdiction by final and non-appealable judgment to have resulted from the gross negligence, bad faith or willful misconduct of such Indemnitee or (y) result from a claim brought by the Borrower or any other Loan Party against an Indemnitee for breach in bad faith of such Indemnitee’s obligations hereunder or under any other Loan Document, if the Borrower or such Loan Party has obtained a final and non-appealable judgment in its favor on such claim as determined by a court of competent jurisdiction.  This Section 12.3(b) shall not apply with respect to Taxes other than any Taxes that represent losses, claims, damages, etc. arising from any non-Tax claim.

(c)Reimbursement by Lenders.  To the extent that the Borrower for any reason fails to indefeasibly pay any amount required under paragraph (a) or (b) of this Section 12.3 to be paid by it to the Administrative Agent (or any sub-agent thereof), each Issuing Lender, the Swingline Loan Lender or any Related Party of any of the foregoing, each Lender severally agrees to pay to the Administrative Agent (or any such sub-agent), such Issuing Lender, such Swingline Loan Lender or such Related Party, as the case may be, such Lender’s pro rata share (determined as of the time that the applicable unreimbursed expense or indemnity payment is sought based on each Lender’s Ratable Share at such time) of such unpaid amount (including any such unpaid

143


amount in respect of a claim asserted by such Lender); provided that with respect to such unpaid amounts owed to any Issuing Lender or the Swingline Loan Lender solely in its capacity as such, only the Lenders with Revolving Credit Commitments shall be required to pay such unpaid amounts, such payment to be made severally among them based on such Lenders’ Ratable Share of the Revolving Credit Facility (determined as of the time that the applicable unreimbursed expense or indemnity payment is sought); provided, further, that the unreimbursed expense or indemnified loss, claim, damage, liability or related expense, as the case may be, was incurred by or asserted against the Administrative Agent (or any such sub-agent), any Issuing Lender or the Swingline Loan Lender in its capacity as such, or against any Related Party of any of the foregoing acting for the Administrative Agent (or any such sub-agent), any Issuing Lender or the Swingline Loan Lender in connection with such capacity.  The obligations of the Lenders under this paragraph (b) are subject to the provisions of Section 2.2.

(d)Waiver of Consequential Damages, Etc.  To the fullest extent permitted by applicable Law, neither the Borrower nor any of the Lenders shall assert, and hereby waives, any claim against any Indemnitee, on any theory of liability, for special, indirect, consequential or punitive damages (as opposed to direct or actual damages) arising out of, in connection with, or as a result of, this Agreement, any other Loan Document or any agreement or instrument contemplated hereby, the transactions contemplated hereby or thereby, any Loan or Letter of Credit or the use of the proceeds thereof.  No Indemnitee referred to in Section 12.3(a) shall be liable for any damages arising from the use by unintended recipients of any information or other materials distributed by it through telecommunications, electronic or other information transmission systems in connection with this Agreement or the other Loan Documents or the transactions contemplated hereby or thereby, except to the extent such liability or damages are determined by a court of competent jurisdiction by final and non-appealable judgment to have resulted from the gross negligence or willful misconduct of such Indemnitee.

(e)Payments.  All amounts due under this Section 12.3 shall be payable not later than thirty (30) days after written demand therefor.

(f)Survival.  Each party’s obligations under this Section 12.3 shall survive the termination of the Loan Documents and payment of the obligations hereunder.

12.4Holidays.  Whenever payment of a Loan to be made or taken hereunder shall be due on a day which is not a Business Day such payment shall be due on the next Business Day (except as provided in Section 4.2) and such extension of time shall be included in computing interest and fees, except that the Loans shall be due on the Business Day preceding the Expiration Date if the Expiration Date is not a Business Day.  Whenever any payment or action to be made or taken hereunder (other than payment of the Loans) shall be stated to be due on a day which is not a Business Day, such payment or action shall be made or taken on the next following Business Day, and such extension of time shall not be included in computing interest or fees, if any, in connection with such payment or action.

12.5Notices; Effectiveness; Electronic Communication

(a)Notices Generally.  Except in the case of notices and other communications expressly permitted to be given by telephone (and except as provided in paragraph (b) below), all

144


notices and other communications provided for herein shall be in writing and shall be delivered by hand or overnight courier service, mailed by certified or registered mail or sent by facsimile as follows:

(i)if to the Borrower or any other Loan Party, to it at the address set forth on Schedule 1.1(B);

(ii)if to the Administrative Agent, to PNC Bank, National Association at the address set forth on Schedule 1.1(B);

(iii)if to PNC Bank, National Association in its capacity as an Issuing Lender, to it at the address set forth on Schedule 1.1(B);

(iv)if to a Lender or any other Issuing Bank, to it at its address (or facsimile number) specified in its Administrative Questionnaire.

Notices sent by hand or overnight courier service, or mailed by certified or registered mail, shall be deemed to have been given when received; notices sent by facsimile shall be deemed to have been given when sent (except that, if not given during normal business hours for the recipient, shall be deemed to have been given at the opening of business on the next business day for the recipient).  Notices delivered through electronic communications, to the extent provided in paragraph (b) below, shall be effective as provided in said paragraph (b).

(b)Electronic Communications.  Notices and other communications to the Lenders and the Issuing Lenders hereunder may be delivered or furnished by electronic communication (including e-mail and Internet or intranet websites) pursuant to procedures approved by the Administrative Agent; provided that the foregoing shall not apply to notices to any Lender or any Issuing Lender pursuant to Article 2 or Article 3 if such Lender or such Issuing Lender, as applicable, has notified the Administrative Agent that it is incapable of receiving notices under Article 2 or Article 3 by electronic communication.  The Administrative Agent or the Borrower may, in its discretion, agree to accept notices and other communications to it hereunder by electronic communications pursuant to procedures approved by it; provided that approval of such procedures may be limited to particular notices or communications.

Unless the Administrative Agent otherwise prescribes, (i) notices and other communications sent to an e-mail address shall be deemed received upon the sender’s receipt of an acknowledgement from the intended recipient (such as by the “return receipt requested” function, as available, return e-mail or other written acknowledgement), and (ii) notices or communications posted to an Internet or intranet website shall be deemed received upon the deemed receipt by the intended recipient, at its e-mail address as described in the foregoing clause (i), of notification that such notice or communication is available and identifying the website address therefor; provided that, for both clauses (i) and (ii) above, if such notice, email or other communication is not sent during the normal business hours of the recipient, such notice or communication shall be deemed to have been sent at the opening of business on the next business day for the recipient.

145


(c)Change of Address, etc.  Any party hereto may change its address or facsimile number for notices and other communications hereunder by notice to the other parties hereto.

(d)Platform.

(i)Each Loan Party agrees that the Administrative Agent may, but shall not be obligated to, make the Communications (as defined below) available to the Issuing Lenders and the other Lenders by posting the Communications on the Platform.

(ii)The Platform is provided “as is” and “as available.”  The Agent Parties (as defined below) do not warrant the adequacy of the Platform and expressly disclaim liability for errors or omissions in the Communications.  No warranty of any kind, express, implied or statutory, including, without limitation, any warranty of merchantability, fitness for a particular purpose, non-infringement of third-party rights or freedom from viruses or other code defects, is made by any Agent Party in connection with the Communications or the Platform.  In no event shall the Administrative Agent or any of its Related Parties (collectively, the “Agent Parties”) have any liability to the Borrower or the other Loan Parties, any Lender or any other Person or entity for damages of any kind, including, without limitation, direct or indirect, special, incidental or consequential damages, losses or expenses (whether in tort, contract or otherwise) arising out of the Borrower’s, any Loan Party’s or the Administrative Agent’s transmission of communications through the Platform.  “Communications” means, collectively, any notice, demand, communication, information, document or other material provided by or on behalf of any Loan Party pursuant to any Loan Document or the transactions contemplated therein which is distributed to the Administrative Agent, any Lender or any Issuing Lender by means of electronic communications pursuant to this Section 12.5, including through the Platform.

12.6Severability.  The provisions of this Agreement are intended to be severable.  If any provision of this Agreement shall be held invalid or unenforceable in whole or in part in any jurisdiction, such provision shall, as to such jurisdiction, be ineffective to the extent of such invalidity or unenforceability without in any manner affecting the validity or enforceability thereof in any other jurisdiction or the remaining provisions hereof in any jurisdiction.  Without limiting the foregoing provisions of this Section 12.6, if and to the extent that the enforceability of any provisions in this Agreement relating to Defaulting Lenders shall be limited by Debtor Relief Laws, as determined in good faith by the Administrative Agent, any Issuing Lender or the Swingline Loan Lender, as applicable, then such provisions shall be deemed to be in effect only to the extent not so limited.

12.7Duration; Survival.  All representations and warranties of the Loan Parties contained herein or made in connection herewith shall survive the execution and delivery of this Agreement and the completion of the transactions hereunder, and shall continue in full force and effect until the Facility Termination Date.  All covenants and agreements of the Borrower contained herein relating to the payment of principal, interest, premiums, additional compensation

146


or expenses and indemnification, including those specified in the Notes, Section 5 and Section 12.3, shall survive the Facility Termination Date.  All other covenants and agreements of the Loan Parties shall continue in full force and effect from and after the Closing Date and until the Facility Termination Date.

12.8Successors and Assigns.

(a)Successors and Assigns Generally.  The provisions of this Agreement shall be binding upon, and inure to the benefit of, the parties hereto and their respective successors and assigns permitted hereby, except that neither the Borrower nor any other Loan Party may assign or otherwise transfer any of its rights or obligations hereunder (including, in each case, by way of an LLC Division) without the prior written consent of the Administrative Agent and each Lender and no Lender may assign or otherwise transfer any of its rights or obligations hereunder except (i) to an assignee in accordance with the provisions of Section 12.8(b), (ii) by way of participation in accordance with the provisions of Section 12.8(d), or (iii) by way of pledge or assignment of a security interest subject to the restrictions of Section 12.8(e) (and any other attempted assignment or transfer by any party hereto shall be null and void).  Nothing in this Agreement, expressed or implied, shall be construed to confer upon any Person (other than the parties hereto, their respective successors and assigns permitted hereby, Participants to the extent provided in Section 12.8(d) and, to the extent expressly contemplated hereby, the Related Parties of each of the Administrative Agent and the Lenders) any legal or equitable right, remedy or claim under or by reason of this Agreement.

(b)Assignments by Lenders.  Any Lender may at any time assign to one or more assignees all or a portion of its rights and obligations under this Agreement (including all or a portion of its Commitment and the Loans at the time owing to it); provided that (in each case with respect to any Facility) any such assignment shall be subject to the following conditions:

(i)Minimum Amounts.

(A)in the case of an assignment of the entire remaining amount of the assigning Lender’s Commitment and the Loans at the time owing to it (in each case with respect to any Facility) or contemporaneous assignments to related Approved Funds (determined after giving effect to such assignments) that equal at least the amount specified in Section 12.8(b)(i)(B) in the aggregate or in the case of an assignment to a Lender, an Affiliate of a Lender or an Approved Fund, no minimum amount need be assigned; and

(B)in any case not described in Section 12.8(b)(i)(A), the aggregate amount of the Commitment (which for this purpose includes Loans outstanding thereunder) or, if the applicable Commitment is not then in effect, the principal outstanding balance of the Loans of the assigning Lender subject to each such assignment (determined as of the date the Assignment and Assumption Agreement with respect to such assignment is delivered to the Administrative Agent or, if “Trade Date” is specified in the Assignment and Assumption Agreement, as of the Trade Date) shall not be less than $5,000,000, in the case of any assignment in respect of the Revolving Credit Commitment of the assigning

147


Lender, or $2,500,000, in the case of the Term Loan of such assigning Lender, unless each of the Administrative Agent and, so long as no Event of Default has occurred and is continuing, the Borrower otherwise consents (each such consent not to be unreasonably withheld or delayed).

(ii)Proportionate Amounts.  Each partial assignment shall be made as an assignment of a proportionate part of all the assigning Lender’s rights and obligations under this Agreement with respect to the Loan or the Commitment assigned provided, further, that the Borrower’s consent shall not be required during the primary syndication of the Facilities, except that this clause (ii) shall not prohibit any Lender from assigning all or a portion of its rights and obligations among separate Facilities on a non-pro rata basis.

(iii)Required Consents.  No consent shall be required for any assignment except to the extent required by Section 12.8(b)(i)(B) and, in addition:

(A)the consent of the Borrower (such consent not to be unreasonably withheld or delayed) shall be required unless (x) an Event of Default has occurred and is continuing at the time of such assignment or (y) such assignment is to a Lender, an Affiliate of a Lender or an Approved Fund; provided that the Borrower shall be deemed to have consented to any such assignment unless it shall object thereto by written notice to the Administrative Agent within five (5) Business Days after having received notice thereof; and provided, further, that the Borrower’s consent shall not be required during the primary syndication of the Facilities;

(B)the consent of the Administrative Agent (such consent not to be unreasonably withheld or delayed) shall be required for assignments in respect of (i) the Revolving Credit Facility or any unfunded Commitments with respect to the Term Loan Facility if such assignment is to a Person that is not a Lender with a Commitment in respect of such Facility, an Affiliate of such Lender or an Approved Fund with respect to such Lender, or (ii) any Term Loans to a Person who is not a Lender, an Affiliate of a Lender or an Approved Fund; and

(C)the consent of each Issuing Lender and Swingline Loan Lender (such consent not to be unreasonably withheld or delayed) shall be required for any assignment in respect of the Revolving Credit Facility.

(iv)Assignment and Assumption Agreement.  The parties to each assignment shall execute and deliver to the Administrative Agent an Assignment and Assumption Agreement, together with a processing and recordation fee of $3,500.00. The assignee, if it is not a Lender, shall deliver to the Administrative Agent an Administrative Questionnaire.

(v)No Assignment to Certain Persons.  No such assignment shall be made to (A) the Borrower or any of the Borrower’s Affiliates or Subsidiaries or (B) to any Defaulting Lender or any of its Subsidiaries, or any Person who, upon becoming a Lender hereunder, would constitute a Defaulting Lender or a Subsidiary thereof.

148


(vi)No Assignment to Natural Persons.  No such assignment shall be made to a natural Person (or a holding company, investment vehicle or trust for, or owned and operated for the primary benefit of, a natural Person).

(vii)Certain Additional Payments.  In connection with any assignment of rights and obligations of any Defaulting Lender hereunder, no such assignment shall be effective unless and until, in addition to the other conditions thereto specified herein, the parties to the assignment shall make such additional payments to the Administrative Agent in an aggregate amount sufficient, upon distribution thereof as appropriate (which may be outright payment, purchases by the assignee of participations or subparticipations, or other compensating actions, including funding, with the consent of the Borrower and the Administrative Agent, the applicable pro rata share of Loans previously requested but not funded by the Defaulting Lender, to each of which the applicable assignee and assignor hereby irrevocably consent), to (x) pay and satisfy in full all payment liabilities then owed by such Defaulting Lender to the Administrative Agent, each Issuing Lender, the Swingline Loan Lender and each other Lender hereunder (and interest accrued thereon), and (y) acquire (and fund as appropriate) its full pro rata share of all Loans and participations in Letters of Credit and Swingline Loans in accordance with its Ratable Share.  Notwithstanding the foregoing, in the event that any assignment of rights and obligations of any Defaulting Lender hereunder shall become effective under applicable law without compliance with the provisions of this paragraph, then the assignee of such interest shall be deemed to be a Defaulting Lender for all purposes of this Agreement until such compliance occurs.

(viii)Effectiveness; Release.  Subject to acceptance and recording thereof by the Administrative Agent pursuant to paragraph (c), from and after the effective date specified in each Assignment and Assumption Agreement, the assignee thereunder shall be a party to this Agreement and, to the extent of the interest assigned by such Assignment and Assumption Agreement, have the rights and obligations of a Lender under this Agreement, and the assigning Lender thereunder shall, to the extent of the interest assigned by such Assignment and Assumption Agreement, be released from its obligations under this Agreement (and, in the case of an Assignment and Assumption Agreement covering all of the assigning Lender’s rights and obligations under this Agreement, such Lender shall cease to be a party hereto) but shall continue to be entitled to the benefits of Sections 4.4, 5.8, and 12.3 with respect to facts and circumstances occurring prior to the effective date of such assignment; provided, that except to the extent otherwise expressly agreed by the affected parties, no assignment by a Defaulting Lender will constitute a waiver or release of any claim of any party hereunder arising from that Lender’s having been a Defaulting Lender.  Any assignment or transfer by a Lender of rights or obligations under this Agreement that does not comply with this paragraph shall be treated for purposes of this Agreement as a sale by such Lender of a participation in such rights and obligations in accordance with Section 12.8(d).

(c)Register.  The Administrative Agent, acting solely for this purpose as an agent of the Borrower, shall maintain at one of its offices in Pittsburgh, Pennsylvania a copy of each Assignment and Assumption Agreement delivered to it and a register for the recordation of the names and addresses of the Lenders, and the Commitments of, and principal amounts (and

149


stated interest) of the Loans owing to, each Lender pursuant to the terms hereof from time to time (the “Register”).  The entries in the Register shall be conclusive absent manifest error, and the Borrower, the Administrative Agent and the Lenders shall treat each Person whose name is recorded in the Register pursuant to the terms hereof as a Lender hereunder for all purposes of this Agreement.  The Register shall be available for inspection by the Borrower and any Lender, at any reasonable time and from time to time upon reasonable prior notice.

(d)Participations.  Any Lender may at any time, without the consent of, or notice to, the Borrower or the Administrative Agent, sell participations to any Person (other than a natural Person, or a holding company, investment vehicle or trust for, or owned and operated for the primary benefit of, a natural Person, or the Borrower or any of the Borrower’s Affiliates or Subsidiaries) (each, a “Participant”) in all or a portion of such Lender’s rights and/or obligations under this Agreement (including all or a portion of its Commitment and/or the Loans owing to it); provided that (i) such Lender’s obligations under this Agreement shall remain unchanged, (ii) such Lender shall remain solely responsible to the other parties hereto for the performance of such obligations, and (iii) the Borrower, the Administrative Agent, the Issuing Lenders and Lenders shall continue to deal solely and directly with such Lender in connection with such Lender’s rights and obligations under this Agreement.  For the avoidance of doubt, each Lender shall be responsible for the indemnity under Section 12.3 with respect to any payments made by such Lender to its Participant(s).

Any agreement or instrument pursuant to which a Lender sells such a participation shall provide that such Lender shall retain the sole right to enforce this Agreement and to approve any amendment, modification or waiver of any provision of this Agreement; provided that such agreement or instrument may provide that such Lender will not, without the consent of the Participant, agree (other than as is already provided for herein) to any amendment, modification or waiver with respect to Sections 12.1(a), 12.1(b), or 12.1(c) that affects such Participant.  The Borrower agrees that each Participant shall be entitled to the benefits of Sections 4.4, 5.8, 5.9 and 5.10 (subject to the requirements and limitations therein, including the requirements under Section 5.9(g) (it being understood that the documentation required under Section 5.9(g) shall be delivered to the participating Lender)) to the same extent as if it were a Lender and had acquired its interest by assignment pursuant to Section 12.8(b); provided that such Participant (A) agrees to be subject to the provisions of Section 5.13 as if it were an assignee under to Section 12.8(b); and (B) shall not be entitled to receive any greater payment under Sections 5.8 or 5.9, with respect to any participation, than its participating Lender would have been entitled to receive, except to the extent such entitlement to receive a greater payment results from a Change in Law that occurs after the Participant acquired the applicable participation.  Each Lender that sells a participation agrees, at the Borrower’s request and expense, to use reasonable efforts to cooperate with the Borrower to effectuate the provisions of Section 5.13 with respect to any Participant.  To the extent permitted by law, each Participant also shall be entitled to the benefits of Section 10.2(b) as though it were a Lender; provided that such Participant agrees to be subject to Section 5.5 as though it were a Lender.  Each Lender that sells a participation shall, acting solely for this purpose as a non-fiduciary agent of the Borrower, maintain a register on which it enters the name and address of each Participant and the principal amounts (and stated interest) of each Participant’s interest in the Loans or other obligations under the Loan Documents (the “Participant Register”); provided that no Lender shall have any obligation to disclose all or any portion of the Participant Register (including the identity of any Participant or any information relating to a Participant’s interest in

150


any commitments, loans, letters of credit or its other obligations under any Loan Document) to any Person except to the extent that such disclosure is necessary to establish that such commitment, loan, letter of credit or other obligation is in registered form under Section 5f.103-1(c) of the United States Treasury Regulations.  The entries in the Participant Register shall be conclusive absent manifest error, and such Lender shall treat each Person whose name is recorded in the Participant Register as the owner of such participation for all purposes of this Agreement notwithstanding any notice to the contrary.  For the avoidance of doubt, the Administrative Agent (in its capacity as Administrative Agent) shall have no responsibility for maintaining a Participant Register.

(e)Certain Pledges; Successors and Assigns Generally.  Any Lender may at any time pledge or assign a security interest in all or any portion of its rights under this Agreement to secure obligations of such Lender, including any pledge or assignment to secure obligations to a Federal Reserve Bank; provided that no such pledge or assignment shall release such Lender from any of its obligations hereunder or substitute any such pledgee or assignee for such Lender as a party hereto.

(f)Cashless Settlement.  Notwithstanding anything to the contrary contained in this Agreement, any Lender may exchange, continue or rollover all or a portion of its Loans in connection with any refinancing, extension, loan modification or similar transaction permitted by the terms of this Agreement, pursuant to a cashless settlement mechanism approved by the Borrower, the Administrative Agent and such Lender.

(g)Arrangers/Bookrunners.  Notwithstanding anything to the contrary contained in this Agreement, the name of any arranger and/or bookrunner listed on the cover page of this Agreement may be changed by the Administrative Agent to the name of any Lender or Lender’s broker-dealer Affiliate, upon written request to the Administrative Agent by any such arranger and/or bookrunner and the applicable Lender or Lender’s broker-deal Affiliate.

12.9Confidentiality.

(a)General.  Each of the Administrative Agent, the Lenders and the Issuing Lenders agree to maintain the confidentiality of the Information (as defined below), except that Information may be disclosed (a) to its Affiliates and to its Related Parties (it being understood that the Persons to whom such disclosure is made will be informed of the confidential nature of such Information and instructed to keep such Information confidential); (b) to the extent required or requested by any regulatory authority purporting to have jurisdiction over such Person or its Related Parties (including any self-regulatory authority, such as the National Association of Insurance Commissioners), in which case, except for requests in connection with regulatory examinations, the Administrative Agent, the Lenders and the Issuing Lenders agree to inform the Borrower promptly thereof prior to disclosure to the extent lawfully permitted to do so; (c) to the extent required by applicable laws or regulations or by any subpoena or similar legal process, in which case, the Administrative Agent, the Lenders and the Issuing Lenders agree to inform the Borrower promptly thereof prior to disclosure to the extent lawfully permitted to do so; (d) to any other party hereto; (e) in connection with the exercise of any remedies hereunder or under any other Loan Document or any action or proceeding relating to this Agreement or any other Loan Document or the enforcement of rights hereunder or thereunder; (f) subject to an agreement containing provisions substantially the same as those of this Section 12.9, to (i) any assignee of or

151


Participant in, or any prospective assignee of or Participant in, any of its rights and obligations under this Agreement, or (ii) any actual or prospective party (or its Related Parties) to any swap, derivative or other transaction under which payments are to be made by reference to the Borrower and its obligations, this Agreement or payments hereunder; (g) to (i) any rating agency in connection with rating the Borrower or its Subsidiaries or the Facilities or (ii) the CUSIP Service Bureau or any similar agency in connection with the issuance and monitoring of CUSIP numbers with respect to the Facilities; (h) with the consent of the Borrower; or (i) to the extent such Information (x) becomes publicly available other than as a result of a breach of this Section 12.9, or (y) becomes available to the Administrative Agent, any Lender, any Issuing Lender or any of their respective Affiliates on a nonconfidential basis from a source other than the Borrower other than as a result of a breach of this Section 12.9. In addition, the Administrative Agent and the Lenders may disclose the existence of this Agreement and information about this Agreement to market data collectors, similar service providers to the lending industry and service providers to the Administrative Agent and the Lenders in connection with the administration of this Agreement, the other Loan Documents, and the Commitments.

For purposes of this Section 12.9, “Information” means all information received from Holdings or any of its Subsidiaries relating to Holdings or any of its Subsidiaries or any of their respective businesses, other than any such information that is available to the Administrative Agent, any Lender or any Issuing Lender on a nonconfidential basis prior to disclosure by Holdings or any of its Subsidiaries; provided that, in the case of information received from Holdings or any of its Subsidiaries after the date hereof, such information is clearly identified at the time of delivery as confidential.  Any Person required to maintain the confidentiality of Information as provided in this Section 12.9 shall be considered to have complied with its obligation to do so if such Person has exercised the same degree of care to maintain the confidentiality of such Information as such Person would accord to its own confidential information.

(b)Sharing Information With Affiliates of the Lenders.  Each Loan Party acknowledges that from time to time financial advisory, investment banking and other services may be offered or provided to the Borrower or one or more of its Affiliates (in connection with this Agreement or otherwise) by any Lender or by one or more Subsidiaries or Affiliates of such Lender and each of the Loan Parties hereby authorizes each Lender to share any information delivered to such Lender by such Loan Party and its Subsidiaries pursuant to this Agreement with any such Subsidiary or Affiliate of the Lender subject to the provisions of Section 12.9(a).

12.10Counterparts; Integration; Effectiveness; Electronic Execution.

(a)Counterparts; Integration; Effectiveness.  This Agreement may be executed in counterparts (and by different parties hereto in different counterparts), each of which shall constitute an original, but all of which when taken together shall constitute a single contract.  This Agreement and the other Loan Documents, and any separate letter agreements with respect to fees payable to the Administrative Agent, constitute the entire contract among the parties relating to the subject matter hereof and supersede any and all previous agreements and understandings, oral or written, relating to the subject matter hereof, including any prior confidentiality agreements and commitments.  Except as provided in Article 7, this Agreement shall become effective when it shall have been executed by the Administrative Agent and when the Administrative Agent shall have received counterparts hereof that, when taken together, bear the signatures of each of the

152


other parties hereto.  Delivery of an executed counterpart of a signature page of this Agreement by telecopy or e-mail shall be effective as delivery of a manually executed counterpart of this Agreement.

(b)Electronic Execution of Assignments.  The words “execution,” “signed,” “signature,” and words of like import in any Assignment and Assumption Agreement shall be deemed to include electronic signatures or the keeping of records in electronic form, each of which shall be of the same legal effect, validity or enforceability as a manually executed signature or the use of a paper-based recordkeeping system, as the case may be, to the extent and as provided for in any applicable Law, including the Federal Electronic Signatures in Global and National Commerce Act, the New York State Electronic Signatures and Records Act, or any other similar state laws based on the Uniform Electronic Transactions Act.

12.11CHOICE OF LAW; SUBMISSION TO JURISDICTION; WAIVER OF VENUE; SERVICE OF PROCESS; WAIVER OF JURY TRIAL.

(a)Governing Law.  This Agreement and the other Loan Documents and any claims, controversy, dispute or cause of action (whether in contract or tort or otherwise) based upon, arising out of or relating to this Agreement or any other Loan Document (except, as to any other Loan Document, as expressly specified therein) and the transactions contemplated hereby and thereby shall be governed by, and construed in accordance with, the law of the State of New York.  Each standby Letter of Credit issued under this Agreement shall be subject, as applicable, to the rules of the Uniform Customs and Practice for Documentary Credits, as most recently published by the International Chamber of Commerce (the “ICC”) at the time of issuance (“UCP”) or the rules of the International Standby Practices (ICC Publication Number 590) (“ISP98”), as determined by any Issuing Lender, and each trade Letter of Credit shall be subject to UCP, and in each case to the extent not inconsistent therewith, the Laws of the State of New York without regard to its conflict of laws principles.

The Borrower and each other Loan Party irrevocably and unconditionally agrees that it will not commence any action, litigation or proceeding of any kind or description, whether in law or equity, whether in contract or in tort or otherwise, against the Administrative Agent, any Lender, any Issuing Lender, or any Related Party of the foregoing in any way relating to this Agreement or any other Loan Document or the transactions relating hereto or thereto, in any forum other than the courts of the State of New York sitting in New York County, and of the United States District Court of the Southern District of New York, and any appellate court from any thereof, and each of the parties hereto irrevocably and unconditionally submits to the jurisdiction of such courts and agrees that all claims in respect of any such action, litigation or proceeding may be heard and determined in such New York State court or, to the fullest extent permitted by applicable law, in such federal court.  Each of the parties hereto agrees that a final judgment in any such action, litigation or proceeding shall be conclusive and may be enforced in other jurisdictions by suit on the judgment or in any other manner provided by law.  Nothing in this Agreement or in any other Loan Document shall affect any right that the Administrative Agent, any Lender or any Issuing Lender may otherwise have to bring any action or proceeding relating to this Agreement or any other Loan Document against the Borrower or any other Loan Party or its properties in the courts of any jurisdiction.

153


(b)Waiver of Venue.  The Borrower and each other Loan Party irrevocably and unconditionally waives, to the fullest extent permitted by applicable law, any objection that it may now or hereafter have to the laying of venue of any action or proceeding arising out of or relating to this Agreement or any other Loan Document in any court referred to in Section 12.11(a).  Each of the parties hereto hereby irrevocably waives, to the fullest extent permitted by applicable Law, the defense of an inconvenient forum to the maintenance of such action or proceeding in any such court.

(c)Service of Process.  Each party hereto irrevocably consents to service of process in the manner provided for notices in Section 12.5.  Nothing in this Agreement will affect the right of any party hereto to serve process in any other manner permitted by applicable Law.

(d)WAIVER OF JURY TRIAL.  EACH PARTY HERETO HEREBY IRREVOCABLY WAIVES, TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, ANY RIGHT IT MAY HAVE TO A TRIAL BY JURY IN ANY LEGAL PROCEEDING DIRECTLY OR INDIRECTLY ARISING OUT OF OR RELATING TO THIS AGREEMENT OR ANY OTHER LOAN DOCUMENT OR THE TRANSACTIONS CONTEMPLATED HEREBY OR THEREBY (WHETHER BASED ON CONTRACT, TORT OR ANY OTHER THEORY).  EACH PARTY HERETO (A) CERTIFIES THAT NO REPRESENTATIVE, AGENT OR ATTORNEY OF ANY OTHER PERSON HAS REPRESENTED, EXPRESSLY OR OTHERWISE, THAT SUCH OTHER PERSON WOULD NOT, IN THE EVENT OF LITIGATION, SEEK TO ENFORCE THE FOREGOING WAIVER AND (B) ACKNOWLEDGES THAT IT AND THE OTHER PARTIES HERETO HAVE BEEN INDUCED TO ENTER INTO THIS AGREEMENT AND THE OTHER LOAN DOCUMENTS BY, AMONG OTHER THINGS, THE MUTUAL WAIVERS AND CERTIFICATIONS IN THIS SECTION 12.8(d).

12.12Acknowledgement and Consent to Bail-In of Affected Financial Institutions. Notwithstanding anything to the contrary in any Loan Document or in any other agreement, arrangement or understanding among any such parties, each party hereto acknowledges that any liability of any Affected Financial Institution arising under any Loan Document, to the extent such liability is unsecured, may be subject to the write-down and conversion powers of the applicable Resolution Authority and agrees and consents to, and acknowledges and agrees to be bound by:

(a)the application of any Write-Down and Conversion Powers by the applicable Resolution Authority to any such liabilities arising hereunder which may be payable to it by any party hereto that is an Affected Financial Institution; and

(i)the effects of any Bail-In Action on any such liability, including, if applicable:

(ii)a reduction in full or in part or cancellation of any such liability;

(iii)a conversion of all, or a portion of, such liability into shares or other instruments of ownership in such Affected Financial Institution, its parent undertaking, or a bridge institution that may be issued to it or otherwise conferred on it, and that such shares

154


or other instruments of ownership will be accepted by it in lieu of any rights with respect to any such liability under this Agreement or any other Loan Document; or

(b)the variation of the terms of such liability in connection with the exercise of the write-down and conversion powers of the applicable Resolution Authority.

12.13USA PATRIOT Act Notice.  Each Lender that is subject to the USA PATRIOT Act and the Administrative Agent (for itself and not on behalf of any Lender) hereby notifies Loan Parties that pursuant to the requirements of the USA PATRIOT Act, it is required to obtain, verify and record information that identifies the Loan Parties, which information includes the name and address of Loan Parties and other information that will allow such Lender or Administrative Agent, as applicable, to identify the Loan Parties in accordance with the USA PATRIOT Act.  The Borrower shall, promptly following a request by the Administrative Agent or any Lender, provide all documentation and other information that the Administrative Agent or such Lender requests in order to comply with its ongoing obligations under applicable “know your customer” and anti-money laundering rules and regulations, including the USA PATRIOT Act.

12.14Acknowledgement Regarding Any Supported QFCs. To the extent that the Loan Documents provide support, through a guarantee or otherwise, for Lender Provided Hedge Agreements or any other agreement or instrument that is a QFC (such support, “QFC Credit Support” and each such QFC a “Supported QFC”), the parties acknowledge and agree as follows with respect to the resolution power of the Federal Deposit Insurance Corporation under the Federal Deposit Insurance Act and Title II of the Dodd-Frank Wall Street Reform and Consumer Protection Act (together with the regulations promulgated thereunder, the “U.S. Special Resolution Regimes”) in respect of such Supported QFC and QFC Credit Support (with the provisions below applicable notwithstanding that the Loan Documents and any Supported QFC may in fact be stated to be governed by the laws of the State of New York and/or of the United States or any other state of the United States):

(a)In the event a Covered Entity that is party to a Supported QFC (each, a “Covered Party”) becomes subject to a proceeding under a U.S. Special Resolution Regime, the transfer of such Supported QFC and the benefit of such QFC Credit Support (and any interest and obligation in or under such Supported QFC and such QFC Credit Support, and any rights in property securing such Supported QFC or such QFC Credit Support) from such Covered Party will be effective to the same extent as the transfer would be effective under the U.S. Special Resolution Regime if the Supported QFC and such QFC Credit Support (and any such interest, obligation and rights in property) were governed by the laws of the United States or a state of the United States.  In the event a Covered Party or a BHC Act Affiliate of a Covered Party becomes subject to a proceeding under a U.S. Special Resolution Regime, Default Rights under the Loan Documents that might otherwise apply to such Supported QFC or any QFC Credit Support that may be exercised against such Covered Party are permitted to be exercised to no greater extent than such Default Rights could be exercised under the U.S. Special Resolution Regime if the Supported QFC and the Loan Documents were governed by the laws of the United States or a state of the United States.  Without limitation of the foregoing, it is understood and agreed that rights and remedies of the parties with respect to a Defaulting Lender shall in no event affect the rights of any Covered Party with respect to a Supported QFC or any QFC Credit Support.

155


(b)As used in this Section 12.14, the following terms have the following meanings:

BHC Act Affiliate” of a party means an “affiliate” (as such term is defined under, and interpreted in accordance with, 12 U.S.C. 1841(k)) of such party.

Covered Entity” means any of the following:  (i) a “covered entity” as that term is defined in, and interpreted in accordance with, 12 C.F.R. § 252.82(b), (ii) a “covered bank” as that term is defined in, and interpreted in accordance with, 12 C.F.R. § 47.3(b); or (iii) a “covered FSI” as that term is defined in, and interpreted in accordance with, 12 C.F.R. § 382.2(b).

Default Right” has the meaning assigned to that term in, and shall be interpreted in accordance with, 12 C.F.R. §§ 252.81, 47.2 or 382.1, as applicable.

QFC” has the meaning assigned to the term “qualified financial contract” in, and shall be interpreted in accordance with, 12 U.S.C. 5390(c)(8)(D).

[Signature pages intentionally omitted.]

156


EX-21.1 3 cdre-20221231xex21d1.htm EX-21.1

EXHIBIT 21.1

 

SUBSIDIARIES OF CADRE HOLDINGS, INC.

The following are subsidiaries of Cadre Holdings, Inc. as of December 31, 2022 and the jurisdictions in which they are organized.



Company

 

State or Jurisdiction of Incorporation/Organization

Safariland, LLC

 

Delaware

Safariland Global Sourcing, LLC

 

Delaware

Horsepower, LLC

 

Delaware

Sencan Holdings, LLC

 

Delaware

Med-Eng, LLC

 

Delaware

Atlantic Tactical, Inc.

 

Pennsylvania

GH Armor Systems Inc.

 

Delaware

Defense Technology, LLC

 

Delaware

Safariland Distribution, LLC

 

Delaware

Lawmen’s Distribution, LLC

 

Delaware

United Uniform Distribution, LLC

 

Delaware

Safariland Internacional S.A. de C.V.

 

Mexico

The Safariland Group Hong Kong Limited

 

Hong Kong

The Safariland Group Nederland B.V.

 

Netherlands

UAB Safariland Lithuania

Lithuania

The Safariland Group SPRL

Belgium

Med-Eng Holdings ULC

British Columbia

Pacific Safety Products Inc.

Canada

TSG UK Investment Holdings Limited

England and Wales

Safariland UK Holding Limited

England and Wales

Safariland UK Ltd.

England and Wales

LBA International Limited

England and Wales

SenCan Limited

England and Wales

TSG Italy Investment Holdings S.r.l.

Italy

Radar Leather Division S.r.l.

Italy

Cyalume Technologies, Inc.

Delaware

CT SAS Holdings, Inc.

Delaware

Cyalume Technologies SAS

France


EX-23.1 4 cdre-20221231xex23d1.htm EX-23.1

Consent of Independent Registered Public Accounting Firm

 

We consent to the incorporation by reference in the registration statement (No. 333-261813) on Form S-8 of our report dated March 15, 2023, with respect to the consolidated financial statements of Cadre Holdings, Inc.

Our report on the consolidated financial statements refers to a change in the method of accounting for leases as of January 1, 2022 due to the adoption of Accounting Standards Update 2016-02, Leases, and several related amendments, as issued by the Financial Accounting Standards Board.

/s/ KPMG LLP

Jacksonville, Florida

March 15, 2023


EX-31.1 5 cdre-20221231xex31d1.htm EX-31.1

Exhibit 31.1

CERTIFICATION OF PRINCIPAL FINANCIAL OFFICER

I, Warren B. Kanders, certify that:

1. I have reviewed this Annual Report on Form 10-K of Cadre Holdings, Inc.;

2. Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;

3. Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;

4. The registrant's other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:

(a) designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;

(b) designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;

(c) evaluated the effectiveness of the registrant's disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and

(d) disclosed in this report any change in the registrant's internal control over financial reporting that occurred during the registrant's most recent fiscal quarter (the registrant's fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant's internal control over financial reporting; and

5. The registrant's other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the registrant's board of directors (or persons performing the equivalent functions):

(a) all significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record, process, summarize and report financial information; and

(b) any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.

Date: March 15, 2023

By:

/s/ Warren B. Kanders

Name:

Warren B. Kanders

Title:

Chief Executive Officer

 

(Principal Executive Officer)


EX-31.2 6 cdre-20221231xex31d2.htm EX-31.2

Exhibit 31.2

CERTIFICATION OF PRINCIPAL EXECUTIVE OFFICER

I, Blaine Browers, certify that:

1. I have reviewed this Annual Report on Form 10-K of Cadre Holdings, Inc.;

2. Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report;

3. Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report;

4. The registrant's other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have:

(a) designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared;

(b) designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles;

(c) evaluated the effectiveness of the registrant's disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation; and

(d) disclosed in this report any change in the registrant's internal control over financial reporting that occurred during the registrant's most recent fiscal quarter (the registrant's fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant's internal control over financial reporting; and

5. The registrant's other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant's auditors and the audit committee of the registrant's board of directors (or persons performing the equivalent functions):

(a) all significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant's ability to record, process, summarize and report financial information; and

(b) any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant's internal control over financial reporting.

Date: March 15, 2023

By:

/s/ Blaine Browers

Name:

Blaine Browers

Title:

Chief Financial Officer

 

(Principal Financial Officer)


EX-32.1 7 cdre-20221231xex32d1.htm EX-32.1

Exhibit 32.1

CERTIFICATION PURSUANT TO

18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO

SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002

In connection with the Annual Report of Cadre Holdings, Inc. (the “Company”) on Form 10-K for the period ended December 31, 2022, as filed with the Securities and Exchange Commission on the date hereof (the “Report”), I, Warren B. Kanders, Chief Executive Officer, certify to my knowledge, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that:

(1)

the Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and

(2)

the information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.

A signed original of this written statement required by Section 906 has been provided to the Company and will be retained by the Company and furnished to the Securities and Exchange Commission or its staff upon request.

2

Date: March 15, 2023

By:

/s/ Warren B. Kanders

Name:

Warren B. Kanders

Title:

Chief Executive Officer

 

(Principal Executive Officer)


EX-32.2 8 cdre-20221231xex32d2.htm EX-32.2

Exhibit 32.2

CERTIFICATION PURSUANT TO

18 U.S.C. SECTION 1350,

AS ADOPTED PURSUANT TO

SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002

In connection with the Annual Report of Cadre Holdings, Inc. (the “Company”) on Form 10-K for the period ended December 31, 2022, as filed with the Securities and Exchange Commission on the date hereof (the “Report”), I, Blaine Browers, Chief Financial Officer, certify to my knowledge, pursuant to 18 U.S.C. Section 1350, as adopted pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, that:

(1)

the Report fully complies with the requirements of Section 13(a) or 15(d) of the Securities Exchange Act of 1934; and

(2)

the information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.

A signed original of this written statement required by Section 906 has been provided to the Company and will be retained by the Company and furnished to the Securities and Exchange Commission or its staff upon request.

Date: March 15, 2023

By:

/s/ Blaine Browers

Name:

Blaine Browers

Title:

Chief Financial Officer

 

(Principal Financial Officer)


GRAPHIC 9 cdre-20221231x10k001.jpg GRAPHIC begin 644 cdre-20221231x10k001.jpg M_]C_X 02D9)1@ ! @ 0 ! #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" !U VH# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#]4Z3I2TV3 M.QL=<4 4/$'B#3/#&CW.J:OJ%MIFG6Z[I;NZE6..,$X&6)P.2!^->0:U^V5\ M%=#WBZ^(VBY'40RF7_T$&OAG_@J[^TW8^)7TGX5>&M46YALKEKO7S;L=AE48 MA@+#KC+LPZ9"9Y%? 5DC7=HK?Q#AL4 ?T8> ?&^B?$7PS9>(?#NHQ:IH]ZF^ M"Z@/R.,D'W&"",&NB!!Z'-?EW_P2L^/CZ+K&I?"K5[G_ $2^)O=*WMPDH \R M,?4#=]0?6OU AXR#B@"6D+ =2!2&10<%A7S)\TT>'SS"?1VR%!]LT ?3A8#J0/QHW#/4?G7Y)?M=?\%0]0\5W'ANR^"VM MZCH-E"HNK^_DMPDSOG"P%7!!4 9)[Y'-7/@U_P %;O%VBR6]E\1O#MGXBM00 MCZGIG^BW*CNS1_ZMCS_"$H _6'-+65X=UZT\3Z%IVK63EK2^MTN82W4HR@C/ MYUJT %%%% !1110 4444 %%%)F@"M?ZI9Z5 9KV[@LX1UDN)%11^)-84WQ1\ M&6Y_>^+="B_W]2A'_LU?C=_P4&^+NI_$;]I7Q5IPU>:?0="F73[.UBF80HR* M!*=H."V_<"?8>E?,3PECR6/U-5RL5S^B>'XM^![B39'XQT!VST75(3_[-6S: M>*]$O\?9=8T^YST\JZ1OY&OYPX+8;AU_[Z(KHM+1PPV2RH>Q65A_(T^4+G]% MJR(ZY5E8>H.:4$'H0:_!#PWXN\0Z%+&^G>(=6L74Y#6]_*F/R:OU;_8.^,FL M?%WX23?\)#=F^UG1[IK.2Y<_O)DP"C/ZMUY^F>)M/\ #]I)<:E>V]G#&,NTT@7 K&^)WQ%T MSX:^$[K6]3?,40VQPQ\O-(>%51WR:_,?Q3XZ\0?%/XB>*KZX\9ZII6GVLH:8 MJ+=(K?=_RR&48_(.IS7)6KJGHMS:%-S9^BEI^T=X(OQ="TU":Z,!Z);O^\'J MA(^:M/1_CGX+U:T\Y=>M;9@)-7\1:A;Z9=7G MD6?]JRQMYP4X20XC!0$@\ XQ79:S ;?Q%)J,4AGM]2'FB3=O"R8Y ;N#U'IG M':O+>/J)_"=JPB?4_1*W^*_A*Y;;'XBTYF/0&X4?SK8A\5Z/.H,>J64F>FVX M4_UK\V(ISV)_&K,5VZ?=(_J7F?I='OSP\-_$3Q!X8U&"33-;NM/5SL(:0O%_P)#D<^V*^B_ 7[3(F>&T\201K M.WRBZM>%G'8^B<_2D#9/(K-TO5K36;2.YLYDGA< M9#*<_A6B&!;%>HI1DKQ..S6C'T4450!1110 444A8 XS0 M-+ =Q2[@.]>7? M&WX^^%?@7IUO=>([B4S7A9;6SMEWS3D8SM&0 !QR2 ,]:EM)78TFW9'._'WX M[O\ !?QO\.+:Z\I="\0:G)I][*XYBW)^[8'L Y /UKW%)%=00001D$5^.'[? MG[5=Y\8;_1=+&CG1]%BB6ZL9&.ZY,S=2S@E1@ 8 'XU][?L3?M/:5\>_AUIN MFRWC/XRT6RB@U>&5"OF2* IF0]&5L9]06Q6<9J6VQI*FX[[GTW2T@/:EK8R" MBBB@ HHHH **** "BBB@ HHI"<"@ )'(STZU'YHSVZXZU!>3Q6T$LDC".-5+ M.['@ 5^?WQ9_X*#>+9=9O=)\$:'8:;9K+)%%K%ZWVIYE4G]XBC"+TXW;OI6- M2K&FKR&HN6Q^@Y<$9W@#ZT]77IN'YU^-&N?M3_'.VUQ-:F\8:C?]8%'W9!T9 M>G<8!P,H8B$]C:5)Q5V?68(/0BEJM;."H (Y/:K&X>M=9S@6 ZD"FLZ\6TE&' R*_./X:_\%4;L:A:V'C_ ,#+;1NP5M3T&=G3 MG[K>2^3@@'HY.17W3\,_B1H'Q1\,6VO^'+Y;W39V(#E=K*PZJRX!!'H:F-2, MM@:L=K12 @]*6K$%%%%, HHIKC<,#@T ->55)R:3SD;&&&:\Z^/'Q4B^"OPQ MUOQG/I%[KD.F(LCV=CM\PJ6"YY( SN)[ 'TK\ROBY_P4\^)OQ/LFT[P)HT? M@BS?_67<$@N;MAZ;V4*@_P!T9Z;L?K5K7B'2_#=E)>Z MKJ%KIMH@^::[F6)1^+$5+I>JV6LV,%]8W4-W9SH)(KB%PZ.I'!!'!K\ -?OO M&WQ$N1>>+/%M[JMR>BZC>RSY/XL5'Y5]<_LL_M3^(?A'X2NK32H/^$K\&Z>Q M>ZT"_NQ%J.C/UD\B4C;) 3RJL!C) -=%;"5L/%3J+1F-+$TJTW"#U1^J:R*Y MX(-+O7U%?('AC_@II\&M=@<>A*8]NMO##QYZCLC^@X3H>AIZRJ>]?BI\._VN/CS\*=1C8^*+GQ M3I2%0]EJS"[CD0'IEAYB'W5A7WS^S;^W?H?Q[\56?A:7P_J&B^(9HFDV<2VY MVKEB'&".!QN'4@5=;"UL/_%BT10Q5'$*]*:9]:CVI:BM^$QZ&I:Y3K"BBB@ MHHHH **** $) ZU'/I-$YPHKX7_;U^-&+B18X_$.ER.QP%6]C))_[ZK\8VO7)_P!:P_&H MAJ-Q#,'25B135=OH+E/V^25'0,&!!Z'UI]?)O[#GQN;QOX9D\*:IS-GZN:DTZ5K5+:9#EHFS]1F@#U31-.UG0RG MB+2)Y-,>R;=%J$,FR1'_ -@CG/TKWCPA_P %5OC'X$MHM/U:UT3Q2MLHB,U_ M;O',X'0L\;#)]]OI7SYIGBXZXNG:)]HDALI90A(B.Q&)ZL1UYKBO$&AZM#K5 M]%<6%P9HI6C8QPL5XXX..1P*GF5[7'9GTI\7O^"HOQ?^)^EW&FZ?-I_@ZRG4 MI(-&C83NIX(\UR67_@.*^/[BXFO9I)993--(Q9Y'.68GJ23UK2F\.WGWOL5R MG_;%A_2J[:1+$]=O!I$=W80N!@E O-RG->N?M/VWE?M'_$K/?7+P_^1WKV+]B[]B3PC^T]X+U_5=5\ M9WVFZQI^JM;2:99;&*0&-&CE(;G#%F'I\AK1NQ"U/D:&+#"M[3DX%?I8O_!( M'P$N"?&WB$D?[,7^%*/^"1_@B!]T?C77>.0'6.CF0['Y\:>,$9[&OT+_ ."6 MH(M?&^<\S*>?]XC^E?,W[27PC\+_ 6\3Q^%_#VI)JL]IM^TSF0-('(;*N 3 MM(X&*^J/^"7=N/\ A&_%L^W&;C;GU_>2?X54MB5N?=-%%%8F@4444 %%%% " M,< U5N+A4B8DC./PJ:>0)&M0W9-C2N['F_[2?QHUWQ#KFH7.L0BVLM-=X] M)L(7#++<.=L>2#\Q"@MGID@5Y5X>^'=G&=.\0)I]KE36]CT\Z(>9L_+G%1&G)P;N-SBI6:/=-X22 M14D,R!B%D( W#UQD_P ZD2;CK@UB:+K5CX@MOM%C=Q7,(ZLC8Q[$=C]:U44% M@!@@]#7%*+.BT2T46>-DR,L,<]O>K^E:H;BQAE+ RA3'+GKE>,_RI-&TE]4F M&"1'G;QW-;EWX)BTFUFFMS<329+O;PA223UZD9S6(]+M=1M)!)!.@88_A/*HQE'VD3ZF%+42.20#U[U)UKZO<\46BBBF 5#,P4CU MQ4U03(6;C&* /BK]H_\ X*-Z=\*?$6I>&_"_ARXUG5;"0P7-[>AHH(9!U54 MW/\ 7Y1]:^"_BS\1_BE^T9J)U_4M"U/6+3=MQ'"T<:1 YV1JO0<9S7Z]?%3P M+\.;:"\\7>+-!TVXEM8=LEU-$-[J> I_O$YP,\U\-?&[]L'Q!807VA>!M/@T MU 6M+6TTFW4J@(QG\:[!/X>NY"N[]_:C/'3YU_0'\Z^C X)QWKZ7"5UB**F?/8JC[" MJX=!U%%%=AR!1110 4444 %%%% !3'Z>UQE3BD!R/Q1LI]3^''BBSL]PNK MC3;B.(CKO,;;<5_/MX#\977A_7=3TBZG*V%X[P3Q.S!HR6V[EXRK#FOZ,)H2 M\;@@$$=Z_ /]L[PP?AW^TUX^T^W4VD+W[3QQH@4%)!OX_$FLIPB]T7%N-FCT M'1=#4V$^CWDTEW=12%")F!:="?E89X ]ZN^$?$FN?#3Q7I=[I,/V"XTVX\^+ MRBT@8GE@6Z;2."!FO._ OQWT&WT71?[7BD&KV'^BR2[,^=#D!N^, M;.YU"%6L;\B"Z4-;B).$4KG(^OK7SU12H3YFK(].36(A9,_5[X/_ !.TSXK> M"-.\0Z _>MY@!O1OH?TP:[H2C ]*_+_\ 94_:,LOV:;?6-&U=;[78 M-3=;MH[8J6BN.%)R2.&7 ^JBOH.[_;UMY[AQI_@ZYGML#:\]ZB/D]<@ XKUJ M>-I.*NS@]C+8^F_'_C#3_ GA#6/$>IRB'3]*M9+R9LCE44G ]ST'N17\Y?Q4 M^(VH_%?XD>(?%^JR--?:M>273$M]Q2<*@] J[5'LM?J!^U'^TIJ/Q\^#E]X( MTO29_#MSJDL8N;IIUE4PJ=Q3 QU(%? 5U^R=XGCE AGMYDQGYCM(_(G-:K%4 M>XG0J+6Q#\.M>U>>TTN2W2UF0![,B9"2^'^M_#_4K"61X[B2VNMTJ1YZ?+ MV/&< U]C?L?W=Q??'SP;>6Q*Q2&XBN(@<\>1)_\ KX]*\QS2K)P>C+=127(U MJC]18N%%25#$W"@^N*FKWSF"BBB@ I#2T4 >#?MNZ1J6L?LL?$NUTQI!=G2' MEQ$<,44AI /JBL/Q/K7XZZ#:BZTV 0 ;/+4X''.T9/O7[X:_I5OKFEWFGW:K M):W4+P2(PSE6!!_3-?C%I/@"3X;_ !WU+P;<::^KII.M"VCT[<5:[BW[HDSZ ME<"OILAG&->49+HV?,Y\I*A&4>Z.6T'X7>)/$FBW^JZ7H]Q>Z;8\W-Q%C;#@ M9Y.>N*X;Q5H]S%;/+!)+;W#IY,NPE1.F.M?&_[W3Q-/,7]6E'?9]CQZM&I@$L3S;'Q!!XIUNRT2;1(Y&AL'!5X MO+ZGY@?KPQ_.ND\#_$KQWX4T2/3])>*"RW%UFNPFT88,>7('4]#[UNW6D6=P MG[V)';D?.H-8$O@W3@XD, 4ZT?AU,71)=76_U" MVTB[>+[:QCO6M6Q ZD\@ <>O(KUKPYX9BTS3;>SB8+''\[$?QMQD_2M[]F?X M>:=\0/&NJ:1>PSR6]K8RW2V]M*D+.Z@8&]N!R>]?06B?LZ:?J]MKSVZ:CI&H MV5[:VRV5W/%*VQU5G8LGR]#D8_&O6RWZOERO+63/"S9XG'M1AI$\$71U$8#* M) WX=Z]5_8STJZL_VM?"RVCLD:VM\URB]&C\G&"?]\J?PKOM5_9ZT;3CXF\K M4M2O(]+N7MS+:0I,;8+$) \Z#Y@K9P"H[5I?\$\_#,VL?%SQ5XDGCV+IE@EE M$W4%I7#'Z<(,^QK;-\70Q.!E*/1K\3CR;#5\/CHJ76Y^B,(PISZ]:>.:9""$ MY]:?TK\Q1^GBT444P"BBB@ I"P4$0?4X_"OR,U[6[[Q/K5_K&HRFXO[^=KB>4_Q,QS^78>P KZ>_;P M^+Q\2^+K?P3I\^^PTD^;>%#PUPPX7_@(/YFOE7KGBO.K5+RL:Q17D&/I4$@S MZYJX0#P>#]:SK[4(;678W)'4L<*OU8\"LD7<4\\=NM-*\_X5)%(ES&&4_4>E M##!JDR#K?A'\0[[X9>.M+UNQD*R6TP8KGAEZ,I]B#BOUX\'>*+'QKX=TW6]/ ME\RTO8EE3GD9Z@^X/'X5^*W0@]QR#7W/^P-\9A*\W@;49OF?-Q8;C_$.70?A M\P^AKII3Z$M'W%13!("P !IV?8UV$"UB^-M__"&:]Y?,GV"?;]?+;%;58/CV MX6T\#>(IF.%CTZX8GZ1M0!_--K)D&KW@8D-YS[@#WW'-?0_[)_A30/%NF:[# MK&DVE_=6LB/&]Q'N*JPZ?I7SSJ$RR:I=S<'=([?F2?\ "OHC]C%F.K>)B2=C M11C\OI3;3-:7QH^E=)TVST&T%G9V\5K;HS%8H4"*N3G@"KQD& .*J2,/ M-900>>U)DD]:\6[[GIV19:4,1E1BHI!$PYC4Y[E0:8#^--8X.!1<-"-X+8D! MK>(D^L8_PJ"YL;*:/$EK#(%' :-3CZ<4YSS[$]*1N2<=*=P/HO\ 8#-GIOB7 MQKI\,,<,UW#;W1V*%+!"R$\>F]1^-?:]?GO^R!J[Z5\>[*!6VQZA9W%LPSUP MHD'ZQU^A%>OAI7IGGUU:84445U'.%%%% !1110 5$TP5B"#QQ4M?E-_P4+^/ M7BF?X[WWA6QU.[TS1M'@CA^SVMU+$MPSC MHZJ>QKC+EGN9GFD;=))RQJJZC!X^M:D(_H"^%_Q.T+XN^!M+\5>'KI;S2]0B M$D; Y*'^)&'9E/!'M7AW[<'[647[.G@(6&B21W'CW6U:'2[4D-Y Z-<./1>P M[FOSE_91_;#\1_LKWNJVMMIP\2^%]24ROI$EQY)@N1P)HVP<;APPQS@=,5Y[ M\1/B7K_QG^(^K>-O%$WFZG?N1% C$QVD ^Y"GL!^9YJ.76Q5QFEB9FFN+VZD MO=1NI6GN[N=MSSRL\?:I\3O@?X6\2:T8CJE[:AK@Q="P)4GH.3C)P,5ZM6)H%% M%% !1110!'*#LZ_E7Y<_M8?$#3OA?\:OB1IWV];FQU>_LM4FLX1_JITM%0[V M[$@@X^GI7ZBSY"' R?I7Y8?\%-/V;]1_X3V+Q9H4*M9>)VCMID#@%+U5(SST M5HT!)]5-!QZ?2HK?\ :MLXV _L M20$C Q*,U\\:M87.DWT]E<;#-"Y1RA!7(X.#Z5G,2C!O3H/>I6%I-;%>WJ'U M?I_[4WAR9U6ZL;FV(&#@*W%M(O(:)] MM>N_#?XF?$7Q5>?V+83_ -O9C,C6MX=^5''!^]^1KEJ8)Q5TSICBE)ZGWKXJ MN=6T'X9W.K^'8'GU"/9\EH!)*L>XB1DSD%N]6/A)J_B37%U6\UW4%OM*F=!I M:26?V:=44$2&1?=L8[U\D^!OVB/%'@J_.GQW+6#[LG3=3'F0[O1)#\RU],^! M_P!H6?7;*2/4/#5Q9WR*&5X"&MI<_P 2OZ5E+]W#E-5+GES$FN^ YCJMK=>? M)::S--<)/J5H^V4Q@%X]X/$@& N&!QG(P:3P9X^UKP5KVD:G%/XLYY8D\9!J[9 M^.=-UF.>"X#TKZ(7D"OI:,N:"D>)47+-H=1116Q 4TC-.I".: .3^(_P[L/B7X^TYP?8C(_&H/"7P>\&^ Y/,T#PUIFE2[=OFV]LH?'^]C-=G@^ MM'Z4K*]RN>7+R]#\KOVXO![>$_VHKBZ="]AXBMHKX9'&]%\MR3[;5/XUYYX& M_:-\%^'KIM.O=2>.V5L,ZP%E)Y!YKZ/_ ."IFK^&8M/\.V3@MXKQ)MDCD(,= MJ?O J/[Q&/PK\VI-:T2RL(X1;$7?FXD#Q_)L_P!GWYZYKR:N6PQ%1SFST:6/ ME0BHP1][^'OVH/ 6C7%GJ.C:M<37-O)O3R83DX/3GM7Z!_"_XD:5\4O!NG>( M]'F\VTNT)*GAHW'#*1V(K\ 9?$,-E%(^GKY:E@J84@>YQ7T?^Q[^V/KGP-UR M.PNV_M#PK?W*M?6KJ6=,\&2(YX8=QT(SWYKLPN#AA8VIO0Y\3BYXEIS1^SP? M)QC\:=61H/B&Q\1Z;;ZCIMPEW97"!XIHSD,*U5?<2,5UG(.HHHH **** "BB MB@ I#TI:* &/_JC7Y _\%?/AW;:3\7O#_BJ!H]VL6'EW$8/S!HB0&^A'\C7Z M_N/D(K\AO^"N^K)=?&CP[8D FUTA4)Z %Y&8$CO_ /KJ&-'Y^1L=K*>G7G^5 M>U?#'XW7,&C2Z#J+X7>W:] M\D-*EJIP)'QC![X[UC7A&I!\QI2DXRT/ICP#:7]]8RWKV;+<-+ND8_-M.#M3 MGN,YQ71S-?0.9)7>V01VJR,#'IUNFR.$#H<\EB?4 MFJ\=E%=?.\\10@[D:0DG\Z^7:CM$]B]]2S::O?*N$F,@ ^]US5LZ]J+_ '@0 M^,;C&.E8L&F_O"JW,:+D@#)Q5O\ L?Q#WX=*VZ\M_9INFO?@=X,F;ES8@,=NW)#,"*9 MX[5F%%%%6(***3=0!%.A=6YX-?DM^VA=1^#OVI?%DZ2FVN9EM;U7B)5US%C< M&'H17ZT2R[<_XU^3'_!2Y%@_:.,Z#YKC1;E=F#KSPU7VD%.N>,5X?XG^+ M=SXNGMY=3O;W46MHQ!%)<,TC)&N=J@GL,FN(OD+ LUP%'/R]1^8K#+;E81S" M/GJ"PS^5>PLSG3?-"-FSRO[*A4BHU)7L=G+XWT]#R)A[;#S5;_A-K-\CRIE' MJ4-<)$K;2K6XD,IM+>:5 ME#& Q'ELD]=W)[8KXTA7:ZN)Q$,Y(RV1*#^I-?ENLBJ2!<^:X'"88[OT_I7ZS_P#! M.VV@TS]FW18U*M>/=W$MRHQE9"^=IQ[8KFQ6+G4HN*C:+_0K"8.%.M[1S]Y7 M5O+N?5D8VKCOFGTQ'W+DC%.'->*CW!:***8!1110 UFVKFO/?CI\5;3X2?#3 M5?$,VUKB)/+M(&/^NG;A%^F>3[ UZ#+_ *ML\5^>W[=GQ NO$7Q%MO"L;%-- MT6(2LF<>9-(,D_@,#\36-6?)$J*NSYCU"_N]6O[F^OIFN+VZE>>>9^KNS$LQ M_$U2;)YP1[XJ>164D=#ZUXO?>$O%6M^.M?DAU2XTVQBG$D$AF?E<9ZLU;L>N%WYY)_P_SBN5U;1$M9I7M;1_M-R&)NT),@X^[GL.V?2O)[30 M_'UFZ7"7%\K2K<+YC7+8!Z(6R2H!SQC%2P>'/%-Q9:A\^KVVVS#113W3!Y+K M(R5YR1C/%="II=2'(]FT=-U@K+&T>3C9MVXP ,?2K3*1C/YUX=J?AOQ/9OI M#PMJDL?V17O-US(VV;^('##';O4MOI?BA8;UKI-9;57:79\$^*KSP9XHL-6L9VM[JTF6:*53C:RG(_P^E>#^ -'\ M50^*;)M:>Z>S2QP0TC!5?(P&YY/!Y[UZTR'Z<=?2LVN5Z#6I^R?PI^(%E\3? M!6EZ_:%1]IC EB4_ZJ0??3\#^F*[2OSZ_8"^+4VF>*9?"%VY:SU$%X W\$RC M/ZC@_2OT%KNA+F1F]!"< FO-/VB_$ \/? ?Q]J#L(Q!HUTVX\8_=D?UKTL]# M7YX?\%2?VGK32?!$GPA\+7:7_BC5RO\ :D5J=YM+<$-Y38Z._'R]=N2>HK01 M^1CMND)]3TK[$_9*\)MI'P^N]5N$*2:C.60GC*+P,?7FO'_AA^S;K?B:[M[G M7MFD:9D,R.X,T@_NX'W?QY]J^O[);+2M/M]/L%2&UMT$<:KT 'I7G8FHFN5' M70A9\S)X?";Q1#X+^*WA?7+H[;:"^43-_=1P48_DQ/X5^GL5V)@ MK(0R-R&!R"*_"W5_VFO#[IMMK"^FQT+*J?U-?H5_P3[_ &Q6_:#T_4/"FIZ< M;+5= @B:&X5RPN+?[JECV<8Q[BO0PT915I(Y*SC+5'VA12#I2UWG*%%%% !1 M110 5^-'_!0BW$7[57BGG.^*W?'_ "OV7K\_PJ1=(B=\MR*VM-LHK0 1J%]Z23ON! MM6*W!9U?&*T5FQ&Q/IQ6A)^P_[#<8C_ &8/ M!!'\=JS_ )NU>\UX9^Q$NW]EOX?>^GJ?S)KW.L'N:(****0PHHHH :V IS7S ME^VIX1U77_AM8ZAI&EOK+Z)>?;I[.(XD>'RG5BN.Q!Q]0:XZ1=RG_ M Q7["_\%%O@1=ZSX,TW5=%\,>'+#PYH]Q%+>WD49CNG+OY8C*(H'EYD4[B< M@_G7SA^U;_P30OOAMX-D\:> [F;6=)MK=;B_TYE+26Z@9=U[L@Y)SR "3P,U M$=- 9^?[#ICGW%.0@*!FK3VS0NR,A1U)!#=:A:($]*U)L-7D\5ZU^S#XML/ MOQ9T_4]2]>3JI4D=J]B_9Y\ V?CJXUJVNW4?(A7>:QJV]F[ET_C/>OCM\*/$_AG0=2F\0:9I6NZ5'#)-!KUC,(W@_N;@<'). M!WYKRWX'_'Y-&6/2M;EVV8P ^,^63_$H]/4?C65^T;XKU_3+BP\"MK5Y/H]K M:QG[&\I*LV3M&.^ !Q[BN-\-? GQUXFLUN[30IX+0C*SW/[H,/8$YQ^%'[/Q BM(H@O8B/ M+NE^5NO0\?,N>.>G6OB7PU;^+?"']LRQ:A/I]YI4D:/$6(5@P;(_05Z_\*_V MF)=4N(=/\11J#D+]H08"GL2.A_"O*J8.4?>@[H[(8F,G:2U/NK]A'Q->P_$' M6]!>TFM[#[!&=SR[HWE0\L@/(^\1SUP*^Z4/'YU\1?L1Z2ES\2_$.H*1(BV* MX=>C;R.:^W4S@9KV<&VZ*N<%?XQ]%%%=ISA1110 4PDEB/UI]-*C.:3 _$WQ MOI6M?M'?M=_$F/Q)?78ATW5+BTB16VB"&.5HXE4=@ ??->3_&KX-ZM\+-:M ME^T"]TJZ8K%.Z?,C#G:WOCFOO7XR?!>\^%G[7NL^*X(6'A[QM:-)'Q8*6'KS7D7[2MI#KGPTU5RH-S9;+B+')R",_P#CM?.8C&5,/CHP;]UG MOX?"0KX24U\2/C>PMWF/EW!#I@X & *B1)-)N\$G .58=QZU!;:FT+C(W?3T M]:Z._L;271;>X-[%-M?31:>Q\]ZGZ$?L$?&V_P#$VBR>'-.U M%(?%6FQAX]-O'Q;:M;CJN3_JYE[..HQD'%?H3X>U9=;TV"]2)X1(O,4HP\; MX9&'8@Y!]P:_GV^'7CG5_AYXJT[7=*N6LM3L)EFBD4]P>A]0>A%?LW^R/\>K M3XZ>'M_-#0(^@J*:I))S3JDH*** M* "BBB@ HI&.%)]!VKD_'OQ)T3X9^';K7?$>HQZ9I=LN9)V1I"#Z!5!)/L!2 MN!U;C*FOQ0_X*OZHT_[35_!DMY.GVJ!?8J3_ #KZD^)W_!7KPYHMU/9>"O!6 MJ^(I$X%W?@VL3'GD)@L1[\5^<7QV^)_BG]H3XEZMXVU?0Y;6XORN+>WA=HXD M5=JJI/\ .IYH[W*L^QY*S,Y&X;7 ^8&O2?V<[R.Q^*%K-+A@J29X_P!FN*G\ M+ZYY#7 TB],(',A@;'\JZGX&P/'\0;5)%9&\J0D,"#]WT-8U91=-V9=--25D M?5TVJR:K>,/-W6V=P5F/ Z#]35(@JS@P1YR0I#\CZ\5 UI>62VKVUG-.UPY5 M!%AN@)P?3\:C:R\3Z_";BULH=-:-@%BN7.91WYQ]*^<<5T/6E)VT1;0,7RT8 M5NGRL#4J.6F ,(*Y&.0/KWJOK4\'A&U$FJZ@D<;[?N_.2Q[ 9K0C\2Z/J.E MVUQI=M+J,P[U M #(20Q=@, CGGD<<5HM;K-I]M]MN$CNDE,C>4/+W <[<'VQ6O_PC>D^()(F$ M[0?,%8Q.-K+U*GZU,O=:N=?);5'Z._LM7RW_ ,"?"$L9W)]F= 3U(65U_I7K M8.:^4_V,/&FJ:A-KGAI[J*;1=(A0V4$42CR2S'<-P^]SD_C7U0C-W],U]10F MI4XM'B55:;):*0'./I2UT&0USA2?056DG95!'?DFK+C*D56+E\$_#RWTW4]92V674KJ5&E>Q9C\B!1\N2,'G/45\*/JWBG MQYK6J>(?&VHR:OK&HA5 *]N_;#\.#PU^U#XS9HR(]2AM-2 MA)'W@T>QL>P>)A^->-W$DL7^I52.H#-C\17Z1D>5T%0ABY.[:>GS/S7/Z!>:'O^U6VXYSO4[E/Y&O9[W4;P M0N6L6=!R3"=V/PK#NKVUOXBR #^^KK@K[D=JZL9E>$KOFIZ,SP.:XZA&TES1 M/$IYDEI;YC^%;>C^&K33XU$,8#]V/)-=?I=H8(BV>/0BO?P.0*2YJ[/G^@=BL<4DBA8YR#_ J^T%AT!/I7P?XU\27.K>(KJ9RP2*4JJKTXXKV/PYJX MUA[BWNG11!!%@OR=K+T^E>1C\PP]2E+"TX64=GW.W+\KQ%&O'%U*CDY+5'[X M6UP)U1XF62)N593D,/7/<8Q5T=*\A_9-U.;7/V=_ EY'2ODC[+J+1110 4444 -<94U^7G[8#$_M#>)L$\+"/\ QP5^HC?=.*_+ M7]KQ\_M$>*1GH8A_XX*Y,3\*-(;GCARQP><]<>+/A='XFUN\U![BX1[@(A"A=NU5 "\GU M&?QKCA:^I;>AF7'Q"\+)IJ:?YV;8.P6);>3(*8;^]G^(8J[;^/M'U&UGNXI MZZ5%YA;[*^Y5;Y?EYY/:LJ7X&VLTIE^T77GD9+X3)^]SU]Q_WS5RP^$T>FZ= MJ=HLURZ7\(A,0O>WCP!EHVX_ M&NT,@P.>:RE:^A:/9OV1I?*^//A4@XS=8/XHU?K#Y>>&D'(]J_):_O[W6+^XO;N:>[O)Y&EFN)F+O(Y.2S,>22>YKZ._;B M\'_\(+^U[X^MU7;!J%VNIQ#'!$Z!V/\ WV7KR*$X/ XKH).+CGG@)"2/&<<[ M25-3#4KS_GZGQT_UC?XUN>(K![OR988C)-G:P1LA-1.[2'+L6]R:L_V7>_\^DY_[9G_ IZ:#J4O"Z? M=-GTA;_"EH/WBCCBD QSVK;@\$^(+@CR]&OI,^ENU7X?A7XMGQLT"^VGNT>/ MYT-Q0K2.6^E&,_7TKM$^#GBO&9+".V'K/<(F/S--D^&-S9C-]KFC69')5KL. M?R4&CG@NHQ5@4@HHHH&%%%% !36 (/%.I MKY"''7% 'G?Q[CLS\*M92\B6:WD,"-&P!#$SQ@#GW(K\V/CI^VKXYM+Z+3/" M_B.2PO\ PY>76C7D,.UX;V.-\12NK @DKPWKS7Z,?'.UU'7=(\/Z#:6,EU:7 M^KV\FH3A=R06L#?:'9O3+1(H_P!ZOCG]A[]E3P/\14^(7B[Q3X7CUS3;O79H MM&EU#>-T",-'J>J7>H""*UGN96D:&T4)$I+$_(H MX"CH!V'%*XDNML\C2F19G M /S!3C;D'&,D#L.U<6)J^YH=%&'OW9VFB_#3PWH6MRZY/"=6U^X"O)J&H?O) M$.W@*#PNT<9]JS_'?[37A7X?EXXLZ_JRC"V]NWR)CL\G0?05],^'_#/[,E]X M1AM_&/CS3M0OKJ-7NHCK4EJ(V(!:/$3J< Y'7M7EOCGX<_L%07AL!KUQ:W#* M)3=:/J=U< 9XP6;>N?:IIX=R=YNZ'.JOLZ'PUXG^,\OC77=:OIM/BTW^TP@F MBMMS+F-2$Y/.?FYKA+&UN+.^@*AV+A@" ?F SG%?:MW^RY^S[\3O%GASPY\' MO'.LZMK5_J$<5W;W";_L]GAC)+DHN2"!Q[]J]DN_^"1%Q8WH;2?B'#<0Q_<^ MWZ=M9>>?NL179R\B:BC"]W=GI7_!,!9;SX?7VH7!+2K#%;[B(@W"FPF[_ .P:_.SX M:?#Z'XF>+=%\-:C$[Z?>SLERJ,48P\E^1T.!U[5\EFT>;%4HGT^5SY,-4D?G M&Q^T7MP+3/E"1@'QCY"RQD6YMX]UQ:+G[LR#)XZ;QP>X!KYGO/"&LW,6Z/1KZ:%QG>(& 'OG%? M3E)+34 M+.[D'!2,D$$?0\U\H:/XFD\&Z+?:9+ID2W=R@3SI(_WD1!Y.2,8_SFMWPYJ\ M,QC/9J^F #BO'/VM- /B'X ^,K M=%R\=I]H7 ZE"&K&K?D=C2F_?2/R^\/>(;7PA;%=$TBV60MO+22-D@]1G&>/ M3-;%GXW@B-S#>%9!J*%DLMQVR-GH!Z?X5Q]]=6$%C;7=W-%:6[#:"W!?GT'4 MUZ'X=\*:7!J-EK]HZ3H+?;$7RQ /<9X'Y5\O4:BK2;/95KVLQ/M8,R_*#SG%>MZWW! MM]0THS0*Q"R21[UQZ\]*\KFB@?5-6M=,U&/2K9K^)"R-MEC7#<(N:UI*,XN, M60TH--'JP\ MI$TT\6H^38L,RK(F23]17EWB_P (:5K6I;H[J[7+#[CLJ'GT MQ@5UESX#NSQN5D\N&>X8 G->9:#J=K:^)(DB$=_>HI+!Y3%;1$C'SL1DGV%=#'<>+-:;48S MJ6F:6T@#B2Q+2-( "I !X'3K4N+YKRD4TELCL&T_1&B:22PMF4X9 PY) Y)R M<5AW_BC3+2__ +%@\.W-XTT6<6Z (1Z%^@^M5]"N]7^Q26(TNTN]/"D&>=SY MF_&"1FN=D36["95#7 9>41?3..GI0K]62Y6T/K3_ ()T_P!H+K7C(WDQ2(Q1 M;+ ("EN Q'#XR2:^YT !Q_LU^?\ _P $[OB-;ZK\1?''ARZ3[)JD<2,$"@>< MJ8W'/7(W@8'UK] (NG(Z=Q7TN&BU22/'JM.;LR0=OI3J2EKK,1&^Z:B=01T& M0,U(W2HGSD8!Z4@/S]_X*:>'&T?Q-X%\91P-+%+!<:/=;!GH5FB_]K5\5IXO MTYY-LC20MZ,N,5^H?[?V@Q:M^SKJMX\>Z;2KRUNX6[JQE$1_\=D:OR[$D%RF M9HT9R.=Z\5^B9#[:IA/W4[6>S1^/E)KM]6\)Z%J5RDC0%"1M/ER$$_A7BWCZ 6 M^NO#&3Y<054!.< 5MF=?$4Z#YTEZ$Y5AL+.OS4F_F;WP_GE:WO0S-L&&Y.>2 M,?T%=Y" @!"@,>IQ7#?#R('2;]LT:19CN9%;A ML?A5^UNY"VZ]CQPDJ9 7\3\W MT ]:ZRPTNSTB-X;*VBMHR2Q2-< D]3]:=':PVQE>*)(WE?>[*,%F]3ZFM>9$ MV(Y21>0C '#=!7E$GB?Q5!J=YYMWNMEE=8XUMQE1G@9QSQ7K3J#(K$G*@@8] MZCDX;) R3SQ3C*W03*>E2RSZ5:33?ZYXU+G&,G'-3$ YK\=OV:I0GQM\(D\#^T8?_ $*OV)Q[UUT=C.1^ M27_!7+PY#IGQN\(:U#&$GU'26BE;^]Y4GRY^@ +$_*8-,GD+$8!W2J ,_\!KXBM[B)T7;*A..SBN@DMM?76F1/=64[VUU$ M-Z2)P1C_ .M4(^,OC# _XGMP0/[P!_I4SO%Y3L[*%"G)S7!XP2 >*EQ3W'=H M[=_C-XP/GKNG)_K68$S3MA/8T^GF/SS M2/\ [S$U"6.3Q1M*_P#ZZ0*.IJDK"W$SEAZ5^@O_ 2:OHHOC7=VQ==\F@RG M'?(F0_US7Y][0.2V?:OM;_@D_IL^I_M/&Y&3!I^BW#L>P+/&H'ZF@#]FZ*** M!A1110 4444 %?D'_P %-T$?[4NUY3^RH MGE?LY?#I.XT2VS_WP*]6K(I!1110,**** "D/0TM(W"F@#&\4N8] U%T&7CM MY&"@=?E->&?L#ZS;ZO\ LP^%'@8&6$W$5P,])1,Y;^==[^T1\2U^$_PIU?Q MHC>Y15MK:.;[C32,$4'VY-?G!\(_V@/%7P0L-7TSPQ=VT.F7M])?M;SQ^8J2 M2-E@F>BY[5SSK1@[,M1;V/UBF4,,\#VK\X?^"A?[#VGZQ<7WQ5\.ZC::.&*O MK-G=-LCD)(!FB(!^/)H]\[Z9)$N22UL5X_ \UXE^UQ^U M7XC^-_@FV\(R?9;"WCN5N9FM58>>0#L1@3P,Y./;FH^L1:LBG3:/G#Q7D MZ;%I4=@8+!4$=K+ 0R2)U^8]0V>3]:]3_9QTZXA\$W4C(0[73.@/'88ZXZXQ M7=_LB?L0^+OC5I2Z[XLN9="\&2HZ6[1$&YNCT5X\_=4'G)Z]JZ?XB?\ !-[X MI?"S3M2U?X=>.7UV.WC:9-+E0QW,NT$[5SE6;TZ5G*@YQLS15;,_.?4M2O[B M*ZL;A&,YN'D(Y%7V';ZUIZZU]#XAOY-4CN[74_M# M-V*^E_V6?V%O&W[1^I6NIZE;ZAX?\%-N9M9N%VF?&,"% M"V[?M?K"% .<5Y_\ ![X1Z%\$_ VF>$_#EK]ETRR3'W1NF<\M(Y[L2*]" MH&)@48YI:* "BBB@ HHHH *0TM,9@"/^^FY]J]A_:)\:Z3K?PWU"TTN^AOI_/" MN(FW!=I^;)]L5C_LB?#74?#>EZMXEU:&XL[K56$=O;3!?2OSZ\ M6>/K#3]>=M-O%U+2?,(AG107"=MP!/3I7%G<)S<91>AV9/.$>921R'Q#^$5E MK4[75I:0QN!DQ+T/YBO#O%7PMEM$DN=)5H94Y,1'RL>^?0U]0V&LR:Y;K*LB MLA. RG@>QK,\36MN(MQ0+YG# ="<5X6'Q%2A*ZD>Y6H4ZRUCN2_\$Z_B?J/@ M/Q;';ZY:&VT3Q#1@.BEQT)#@;3U#@CH:_4V [E)]^]?'W[$_P\ MT#Q+\&/$FF7]@+R"XUUKIMZX*2"*/8Z'JK# P:^O[5&1"#GC&":_0Z%3VM-3 M?4^#KT_95'!=">BBBMS **** "L/Q5I::[X=U;3I(Q(EU;21;#SN#*1^')K< MJM*-S=,8']?_ *U1(:=F?CMIWPW@TK4Y6U.V>^GCEDA2U8K*EJH;''K[UZ3! M%:V5G%&L:J@& HP,>P]/I6%\=]9?P1^T%XMT".[5H8;OSF^3 B67Y@I]\B"]MHHY$U!)#\A5P@7CIFOE*L+U7&1[M--Q4CTK6HDO8)HK955F!V;R M #[5X#;?"S7-;^)L6I+9VYCAU%9IP\JC]VFT/GU.6Z5Z),%8B4L=H.3Y9SQ] M!7(Z9\2Y-&\8WME9R0!@'BMEG;8TQ>121SW&VMJ/N-I(BJKV/8?$VCI;:#=? MV?:A-X!.A],UY[:^$+R;16OCJL$8(^16@(4#W)8_E6QXNO[G4]#>WO MKV6TBD \T6SA/FQ]TM_=S7G;^'TFO EUK _LB) 3913D;A[D'CFL81BO(FM5 MC3?O%X:=<3RJBS[WSDM& N?<<5T.DZ ]Q")(M:53R'1V$;J<]>@S65=IX#T' M3X9=0BNY@1MD$3.54^K'//X5T\'A?P7+IC_9X6ELKM ^Y/,.]TMRLK7_A2YN(G\WQ>FFQ'CRMX=QQQR"/?BJ6E>'K[2Y;>>37X-2T MX*VRY2&5Y4';Y@#CGUKM/#G@O2+%+>>SM6>WB!,4,FPJ7Q_K-QYR &_.J/Q" MO;J*WCMXHH;>.4%F7?D@C\!VJ(U9.R3_ +Y'+61ZA^P%I=MI/QY>^N+M-0O MM0M;M/M CVEL;#G\AC\*_3!% YQQ7QS^QQ^SKI>G:5X1^)T%]='59K:\2:$ MD&)XG;8J =MOEY_'Z5]CH"% /I7U5!-05V>34MS:(DHI!TI:W,PHHHH \I_: MBT >)O@)XXL 7;3))$!_OIAU_4"OQU[RPGU[1HW]?9&3J 1L(SGCYL_G7B/C 9UB=B23 MT)/J*]BN)7M9)(ID>*:,X>.52K(?1@>1^->2>.+1XKZ64C"NV>?<#%>OF\HS MHIP=SAR2,X5I*2.A^'+ Z-=?]=A^>!79G&.N:\^^'MV!974(8;MZMCZX']*[ M;RYQC 7I6F737U>*1VXR"]M*[+B$5"^*Y?/\7W9'1IV(_[Z%>F-?*L> /FQWKOO@S^Q9XP_ M:+\5W,NAQK;Z5%<%KC5KA2+: YSM!_Y:/ZHO3N17Z"?#O_@E]X T-HI_%.I: MAXGN5(S"C?9K?/7[J_,>G.M,=N?>DR:XC48QP?K43/Q3R1CYB!CN:A> M:+;GS$ ]=PJA7!V&.N#4+/DCGM1+-&!_K$S_ +PJ-R& P$3TQJ=O_ .ABOV4'2OQ@^ ,I3XO^$SGI MJ5MQ_P!M%K]F_-'JOYUU4M$9RW/!OVH_V//"/[5.C:?!XAEN].U/30_V'4;( MC?%NQN5E/#+P...G6OR__:2_X)R_$;X'S-J&A1R^./#6W<;NPA)N(?\ KI$, MG'N,CZ5^WI&014#0DKC:&^O2N@D_F7ECF@EDBE1HY4)5HW!5E/H1VINYP>O& M*_H2^*7[)OPI^,P=_%?@?3+Z[;_E_@0VUT#Z^;$58_0DU\Q>,/\ @CO\-M4D M=_#GBOQ%X?+CH/YS&@#\LOPI",'KBOUN MTO\ X(W_ ^A(_M+QSXGO<=1 EO!G\T>N_\ #7_!*7X$:#(CW=CKNO$8)74- M595/U6$1T"L?C)X<\.ZEXLURRT71[*;4M4O91#;VMNA>21ST K]N?V$OV/H M_P!F3P,]WJH2?QGK*H^HRK@BW4F4#"BBB@ HHHH **** "OS._P""F?[/7B_6OB58 M^/= T:[UW2[BQ2TNDL8C+);NF<$J.=I!ZCTK],:A>'<3P"#ZTUH!_.GJ-M<: M?,T-W;SVLRG#1W$91A]01FLV6>//WQ^=?T1:W\/_ YXFC$>L:!IFJ(/X;RT MCD'Y,#7FOC']C;X.^.-.N+/4/A[H<"3 S6%JMK.O3[LD6UAT[&GS(5C\(A/ M&3PX_.IXIXQQO&?K7[/^&_\ @FU\!_#MU,\I\P()S MZFI!_P $W?@'_;4FHGP43N8.+0:C<+;ICL$$G3CUI\P6/QFBN8V(56#,>@'6 MO3/AO^SY\1/B[?6]GX?\*:E+;W#B,W\UNT5O&I_B+L " /3-?MGX>^"W@;PJ MRG2/!>@:85Z-:Z?%&1^(6NPBM$@7;%&D8'9 *7,%C ^&/A$> _ .@>'@V_^ MS+&&T+_WMB@$_GFNHID:E<\ #VI]2,**** "BBB@ I&Y4TM% '#?%;X4:-\8 M?# T'Q EP^F^>EP4MY?+9F7.,GTYKX]_;!_89NQX#M-3^#=M<0:W8MB?2!/O M^W1'&<%SPPQTR 1GO7WW377<,5/*AW:/R;\8>(=>G^'-EH]C^S=J>E^-_*\J M]U,VUP]NLHX\R)%)!)ZX/ .>M7/V:/V ?'OQ \0VVN_$V!]'\-1,)&L+D@75 MV>N-HX5>Q)Y[5^J?E'T'^%/B4KG(J/91O ==UU=M=K%:>2@1$VJ!C ]*NT4P&!< 4^BB@ HHHH **** "BBB M@ KE/B*WB"#PKJ+^&K.*]U4H1#!*^U6)X/-=714R7,K#3L[GQA\-OA'XUUWQ MM%9ZQX$C\+>&C-]IO[@7"L;AEY"A03P3QZ8K[%2#R8E1$V*HP #@ 59H/0UC M3H0I7<5JS6I6G4LI/1'G/QB\'^ O%'A2:3XAZ7INH:-9CS-^H*,1$\?*W52< M@<$5\5ZU9_ ?291<^'/".G:5=QL?LTJZM<(0PZ,%\PJ1QT/!K]#+W2X-1M9+ M>ZMX[F"08>&90Z,/0@\'\:YV#X2>#()O.3PEHB2YSO6PB!_/;FL\10E65HRM M\C2A5C2=Y*_S/S%OM>O/#FJ/?Z1:Z>UK,2SV_P!I!7_@->K?#"/2/C),FB6\ M/V/Q#(I91-&6B!Q]XD=0.*^^%\%:%'C;HNGKCIBV0?TJU#HEG;/O@M((7Q@L MD:J?IP*\?^R+RYIRO\CU7FKY>6$6OF>8_LS?!O4/@QX1OM.U.^@OKRZNC.S6 MP(C4;0 !GZ&O8:CB39GWJ2O?I4XTH*$-D>)4J2JR'_C9K,FO+?W6B:^R!6GB DBDPNU=RGH0.X-?*GC+_ M ()N_$&.X6/3IM+UJV#;A*UPT+GV.1FOTYHK"5&$G>QM&M..B/RFL?\ @GU\ M9;75YKL:7H_E2H5\LZE\J\?2I?C#^QPWP-^'UCXQ\0:G#ZMA+#*/**$9^;.SQ M0V4K0#H=@&Y?3_/I7K>C?L1_&6Z@2?\ LFUBF!^7[1=1HY Z,,?\ 5KQEAJG-HCFDY5[QK;GS1=/'?VL]M-$[Q.- MI!X_*ET[05T&2UN4N;@RHN!']H)3'8$=J^I=(_X)X?%.YN]ML,L\PV19Y^;/\77I[5@>(->.HSVHGNFEEB4+( MRX4'V ':OTW\*?L*_"[PNJFXT^^UV48.[4[QF!/NL>Q3],5Z':? 'X=6*@0> M!?#L9'<:;"3^97^>::P4V];'I/$QN+=?LW^$#O!*0SJ?;$TE>X@YK' M\/\ ARP\-Z=#I^EV%OIUA%NV6]M$L:+DDG"C@9))X]:V0*]:$>6-CSY/F;8" MEHHJR0HHHH CD&0*)?M,#=B&ZE<]5/!K\WOB!_P3K^)^D7DEE'X>C\3VD; M'RKW3KM5\Q>S%'P5)ST^M?L"8\]^::8LC';&.*[:.+JT=G=>9R3PM.J[O1^1 M^&GB/]D/XD?"G2+SQ)JOA"\TO1+5 +F>::-A'E@%. Q/).*X]XRW ."*_=WQ MCX&TOQ]X8U7P]KEJM[I&I6[6UQ;L2-Z,"",@\=>".1VKY3U+_@EQ\.;BXWV/ MB/Q1IT);)A6Y@E4#^Z"T6?Q))KW\!G,*<7&LON/(Q>6RFTZ3/S1CBP1\U:%D M-K#=A?[W.*_3#3?^"8_PJM)$:YU'Q/J(7JDVHHBG_OW&I_6O4?!_['?PE\#- M')IG@VQ>XC(99[XM=R!AWS*6P?IBO5?$6'@K0BSR*F0UJSNY6)?V6_#<_ASX M"^$+.YA6WG_L^-W0(!RP)Y'XU[!%&%R>!S4<%F(8U15"HH 48QVJ=5/KGFO M@:DW5J2J/J?;4H*E!4UT0\4M%%0:!1110 4444 ,E!:,@EQRW>E7K@ZD@Y-M)C ?\ W#C\#7Z"U5U/3X-4L9K2Y@BN;>52DD,R MAD=3U!!X(-9S@IH:=C\3RZX'S#'UII92G]GQ_ MX4UOV<_A@XY\!:!^%A'_ (5R?5V:?A_H7X6HJU2E'J)M,_$Z\\ M+:O-=I)'J,D4(*EHAWQC/.>^#^==9;+Y%M&C (>?E!Z<]*_8)OV5_A*W7X?Z M)_X#_P#UZ%_96^$B]/A]H9^ML*KV3%S'X]R2*.XJK+.@(!=0?X];",_S%:-K\"_A[8C_ $?P-X=B8=&73(0?_0:%1?<.8^*/V'OV M7;CQ)J-EX_\ $4+PZ5:N)=-MG!4W+CI*?]@=O6OT/"''2J]I8I9)%'#&D4,: MA51 % XP .E7*WC'E);N%%%%6(**** "BBB@ HHHH **** "BBB@ HHHH * M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@!#TH'2BB@ /%)FB MBE:PD"TZBBF,**** "BBB@ HHHH **** $)Q4,PWX!Z444 1XV' Q4JE%%):B>@@- /-%% (#Q2CI113Z#%HHHH **** " FBBB@ HHHH 0'.:6BBD@"BBBF TG!HW444 &ZC-%% #J***3 _]D! end GRAPHIC 10 cdre-20221231x10k002.jpg GRAPHIC begin 644 cdre-20221231x10k002.jpg M_]C_X 02D9)1@ ! @ 0 ! #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" "? V@# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#]4Z*** "B MBB@ HI"P'4T!@>AH 6BDR*,@T +1110 4444 %%%% !1110 4444 %%%% !1 M110 AZ&L:XO)8M511GR00"/7/6MD]*YN^ED.J2@#"@KSGKZB@#HPV33J8K<" MG;J %HI-U&Z@!:*3=0#F@!:*** "BBB@ HHHH **** "BBB@ HHI,T +129I M: "BDR!1N'K0 M%-#@]Z7<#WH 6BDI: "BBB@ HHHH **** "BBB@ HHHH * M**:6"]: '44@8'H:,CUH 6BHCM $M%4_[8LOM!@^U0B<&!Z'- "T444K@%%%%%P"BBBF 4444 %%%% !11 M10 4444 %%)FC(H 6BDR*,C- "T444 %%%% !1110 4444 %%%% !1110 44 M44 %%%% !1110 4444 %%%% !112$XH 6F2' ^M.# CK7-_$36I] \%:SJ%H M(7N[6TEFBCN)-B.RH2 6[=*3:2NP0W7?'>@Z! \M[J=M&$.&3S07/MM]:^<_ MBA^UG<:9K2VOA^6."V1 'FD1'WOSD D] ,?G7YR_&/QOJ*ZYJ)-_,@F(>4"0 ME=Q'.3U)[X$,C-]HN 6W2 ;>,@J,=L'DYK%R ML:Q2;T/U0^%'[94>KZU_9?BM?*CE($6HP1J8T.<8D /RCW]37U-8:C;7MLDD M$Z31N-RLC;LBOP4T?Q18:)K=C=:G82K9"4BYMTG9)&&T_*"1QR0?PKZ9_8D^ M(/B)OC/H%K97E]?:?=/(DEE-.S1B+:?FPQQ\O'(':KC)/44E9V:/U=+;ER.E M.'05$AS$O7\:E7[HK3H8]1:***"@HHHH **** "BBB@ HHHH **** &NZHA9 MCA0,DFN-UG6(?MBR1L6B# ,0!S]*W_$4[P:/<,.I 7\"0*XB!2VE2RLS%Q+L M.1VYH&CO['4(-0BWPN&'0CN#CI5K-R.3G_@5!=/9@+YY@.K M?CS7XM-XCU"!\Q:Q=H/]FX?'TZUU^E:+\1?$FE?VC:I?W&GRH'5YH!)I$;9A65BI]"%.1^-;&AZT%NXI;NTF MGBVY>)9>OK@&E81^E?@[_@H=\,M?UC[#JAU'PT"P5+N_@_<$^[+DK]2,5]+: M-KFG^(+"*^TZ]@O[.8;H[BWE5T<>Q%?CT-?\!ZM"(+^P;3\]3-$5"_\ TS^ M==O\-/$OB;X6S_VA\,?%RR6;'>^C7 M0?LV_&&]^,?@*36-4T@Z)J=K=O975ONW(TBJK%D/IAA^5>M+<1L.&![]:M- M2T4@.:6F 4444 %%%% !1110 4444 1RR;,#(!-?/?[0'[:?@+X#7[Z5J#7> MM>(!&LATS38P60$'!D=RJ*#Z9)]J^@+K& >X_2OP3^/NNWWB#XW>-IK^XDGE M.J7*M(S9.U7954>P I-V&M3[;U'_@K2R.PL/APJQY^1KK6 21ZD+%_6N;O? M^"L_BF5RMEX*T13Z27,TA'UY6O@\O'YI8;$QT%95Q>0Z9?K.\OEQS (23P&' M3\\TD^YIRI'U?\9O^"@7Q/\ BEHT5A;K:^&K2,LTHT1Y(GN#C #,S$X'/ (K M'T__ (*2_$IOAY%X,EN3874"&*36"I:\DC/ 4MR!]0,^]?.LMXDJI)+<*8\X M&6X->+Q.)X;?:NUW)5F3J/ M4U](_LL?'+QGHWQF\#:6/%&H_P!B7>K6MG/9R7#-$T3.$VD'H!GM2N.2LC]G ME8-T.:=4-MG9R=Q]:FH,@HHHH ****U **** "BBB@ HHI"0* %HIID IOGI MG&>: !B0:877')Q5;4-7L=/A\Z[NX;:$?\M)I B_F:\B^*_Q8V0MIWARXBN) MY1B2ZB<,J#T&.I/M6-2K&FKMG12HSK2Y8HZ+Q5\8]*\,W\MK&DM_+$V)?)88 M3\^I]JZ7PKXNL/%VF17UA*71N"K?>0^C#M7Q_<^=;K(9I"['GDYP?K7KG[+= MQ--<>($+'R%,6%[;OGKS*&+G5J\O0]W%99'#X954]3Z(':G4@-&:]BY\T+12 M9HS1N;U_XB^&_#TC>OK7Y,77_!1GXEW#MM73XUS]T(W^-9\O\ P4&^)Q=7BELXGSG( MC)_F:=F.Q^NK3(IP6P?I3PP89!R*_,[]GG_@H7XBG^(]O9_$C4[=/#5Q'(LE MWY&/(<#*'([$C'XU]M^'OVH_A9K\:+:>,]-#$#"S2["?SQ2V$>KT5CZ5XOT3 M74#:=JMG?J>]O.K_ ,C6J) >QH$/HHHH *:WW3]*4D"H9Y0(7)X&.M #6F1$ MSGKWKYN_;)\66-IX4LM&N9)I%N"QFBMY-K,N,8)_,XKEOBG^U2;C7[[1]',] MG:VJ;%.U0#T& ?<]:X\0VXVB;0CU/#_B98K8636!BEOXEG:4:BJ_-(C?WAU## M'/8UF^'/&VF06MG:2".V%LR_,$ F M0&^N>U9/B7QXOA ^'-&\#SW/_"1P21E9]/)4Q2/ MU8^ M_JMW\&_",^OW3ZAK4E@CW=RQR9)#G<<]_K7H:,&0$="*^%?@]^U7HW@ MF\B\.ZGJ<@M[9%\^TN3O1$)XD@;^ J"-T9)! R,'.?MVRU6"ZM8)89%FCDC$ MB.AR'4C((_"NRG).*9Q2C8OT4U6W 'UIU;$!1110 4444 %%%% !1110 QI- MO8T>8,9KR3XH:Y<3ZA)8+KFI:%" 0IM;3&XC&7\S<,CYAP,=.]>#:=^U7>^% M-1A236CKEG;%D>-\%IP#M&#C(SD'.>/2C<#Z_P#$S;M$N2!G&#@^Q%>%8UN+FWE;A2-R> MYKM0<^](;%HHHH$%*M)2K0 ZBBB@ HHHH **** $)Q5/4KN"VM)9YI%BBB0N M\CG 5>I)/8<9_"K4C;5SV[U\Y?MU_$>3P%\ =5@M7:._UJ5=,C9" XC8%YBH M_P"N:.N>V[- 'QO^UY\6[#QO\:IM2\*ZA)]EMK9-.DO[>8!95SEV'JHS[\U\ MOZA:ZE#97-I#JMQ>VMP_F2HY/+>I/3M4 9],F MN5N+_4)"2]RZ \X7 % T=7I.LZOHUFMK;P6RH.I>!68_B>:EE\0ZE<+MFM;, M\]6MEZ5PGVN[W9-U-^!J>/4KT'_CZE/UYK6X-7-;6=,34GW$1P$C[D:8'Y5Z M=X0^*WB32/#<.DPB&]-LOE6\TV \28^[Z$>@/3->2?VQ?"/:;G<"1PRCI7UK M\#?V;/#_ ,4/A?H_B)M4U/2]1N4?S7M905WJ[*?E8'CCVI:C3L>3S:*=>TJ" M;5]-T_1D@5O.NRWS2EF+$MZ]>,>U=%HWA33X4LUM562PE4QI,I(P^?R&:]-U MW]F+Q;X=MY$TR>Q\6Z?U:UF3[-/CUVDO&WY U?T?PS%>:4+&\@F\/W*_NY8# M:JHC;C^($@50F>*^)=.T2WU6VTN=FBO[D[(U964$^FZN3\1^ =5\,3F=;:ZM M3SB9.OZX,ED 615&2V?8=Z\[\:^))U\-VR)=0: MK9K"OEW$T&UY% X+%3UI\EQ'*_"G]JCXB?!C5SVS8$UEJ*ETE X )X M((Z@CGFOM#X7?\%-_"NNF&V\8:-<^'[AC\UU:MY\'3J?X@*_-W5]=%RT@\N- M.>BY-9$M^D:PLA=-GS.S.-$\;Z':ZSH.HP:II=RNZ.XMW MW ^Q]#[5T"2!P" <&ORC_8H^/S?#7XHZ5H$WGP^&?%$OD&&X/RQS,<12H<]6 M88/ ZBOU7MV+ 8X '3TZ<5GU L4444P"BBB@ HHHH **** ,[7(WFT^XBC.' M>%U7ZXQ_6OYZ/&T5Q9?$'7(7 !BU*YAE .Y=X=AU^HZU^^/QBUR[\.^ -8OK M"58+Y(=D#LF_$C':ORY&3D],]<5_/YJ]]=W6N:E=2W'VF2>[DDE+#.]BQ))_ M$TF5'<:6NE;"Q( 3R6;I5'4;(3SVZS,CP,_*8X;BKKZA? A$\I/]H#)Q6!YE MU<:K+Y^;H1E?+P=NTE<\#_/6I-&:O]A62JNR-4"_=R.%-86LE8+RU*X:82;, MD^M;JWA_"NZN3X\\,K:.RWBZG:^0XZJ_G)M(^AKA-)\D-:B$ !6:, =. M03_05[9^REH0\1_M&> ;%HA(AUFWF8=1MC82']$-%A[K4_=6W&$J6HK=MT8. M,#TJ05+,F+1110(****U **** "BD9@HR:C^T+[T"N2'CFHWD /(IKSKQS@> MIK@OB5\5=/\ !5J8TQ>:FX(CM4;]6/8?Y%9SE&"\1Z=H-H M;O4+N&VMU'+R-@'V^OM7@'C;]I&[U:Z>R\*QF"!20U[/'EV]T4\#ZUP/B/5= M8\<7QN]7N6N"3\D6-J1C^ZJ]!]>M06FCQVL?"-NQRW_UZ\&OCY2]VF?58/*X M*TJFK[!?ZKJ6N2Q7.J7-S?W"'(>=RVPG^Z.@K160K%\PYQSSP:HWFI1642&0 M@+TQFLW5/$<<O@:5WSL^=SC$KD6'@S2S13!)GH M,T[A7U]:=37;8I., MXI >(_%#]EOP9XPO]1\2M)J6BZTZ-++>Z7=M$7(7J5Z9P*_-6V^,%O/J>GQ^ M+M.M_%.DW3%7CU*%'GV!BN5F #AL#(.:_1+X_P#[4&G>!K/7/#EAI,^LZ\+: M2%K6.9(7&Z,[73?C>,GM7Y$^)EU&.>PM;S3+G3YX$5/+G0J2>O'KR::5]BD; M_P :/!6F^!O'MS;:+,]QH%W&MYITDA^;R7&0K>ZG(_"N().*W/&NLS:D-/6X M)8VZ&./<>=G!%ENK2V,>[_ +Z !K\A_P!CW3?'=Q\;M(O_ %I MEIJ6KV,YK])3^T%\1_!D8/C#X37YB7[]WH$HN8_K M@*\(^)_[96B>+_!6I>&?"FBZY<>,-7B M-E;Z=/8.C1EQM+,2,8 S^5>T?LU?#:Y^%/PL4444"(C(/+SW(KYK_:+_:'M_#+2^'-*DE6\89N+R)B M?'3XK6GPM\%7%W/>P6M_=9M[-9'QND/4CU(%?F_XM\23W2WD,MV;LW$GFF7. M6))SDFO.Q59Q7+$UIQOJR_K7Q+U'5YYA+.T=M*I++L4;>QQQP3W->77K6?B5 M+A[>3,MKG?)$V/,(."#_ )S6;XU\;1>'M%GE=MUR4(15.1>8X52#P.P'ZUZ;XOFD;P1,8\,ZP@8SC/(KS5))8)(W0[&C((YX!!K MLPWO:F?PQK.EV8EN]/GM8=P EFC*(2>@R?6M'1KN_L]*O]'AG,5Q>8^S> M5N+*^>2/3ZU7USXG^+]=TD6$D\=W &1A$P"#Y.F#4?P[U,=-\RVN8YR[" M1&7>C@@DCNNHDX.Y"W/5O!OABW\+SO#=XO)F(DNKB;DL2" /P /U)'I7J M4G[5OC;X9_$CP?<37BW?@@6R69M4B4*$!&Y68#J!@@GZ5XG\0/&-KI'BFPTJ M;[T\;3. ,% I(3\.H_"O7OA)XITA]5TR6YAL]6M("DDUI.BR(RAOF4J?P/X5 MY,*LH-/HSH<>96/TZT37;77])L]1LW\RVNHEFC;'\+#(_G6E61HL]KVG=7.1Z,****H04444 %%%% #'DVD^W-8NM>+; M/1HV#.+BX'RK;1$;V;TY.!^-6/$5U+8Z1?SP M,D#E%52QW8XX )ZUXMKLNE M:KX1M+G1[G[3K%K<*B.KD.Y;ARP]N3SWJ6-:GF'[0?B"'Q]J$ZI>WMOJ%JGD MK:("EL 3G:SG^)AWP!^=?,EC)9Z7K.GR;6=E;>JO\VW+88?H>GI7V_??L]OX MK^T:C=7,EG-<6X:*-FP?.Y*LX.>1G'X=*T?@_P#LPZ!X#T*9-N31%E.UCYMT>[L]9UF.SCNT24$KD-D!L9V_[V!G%?1'AB M_MI;#3]/&(I;5!$Q ^\N[[WUY->"7OP]G^"?C>YC\0Z2\/@[5;MH[34B0WV6 M3/R,64G;T'7'3/8UW?V][#6%M]X34(5$BKD?O$/ (QU!_G6A"/H:P1],D"$$ M>60Z^ZD9']:[:&031JZ]" :\RT'Q5;^(?#=C>QM^^3]S<+W4CC_#\Z[SP_<^ M;:&,GYHS^AZ4F4S4HHHI$A2K24JT .HHHH **** "BBB@".893\:_,W_ (*6 M^/KG4?BCI'A6%V^S:=IX.TGCS)SES]=BHOT8^M?IG+T%?CQ^VU?75_\ M1>) M3,=R0W20(?\ =A3C\A0!X3?6Z>=A5VK$-H'OZUA7JY9OZ5T-X_SRCONK N'& M.1^-!2,TTY4/K2R+W[U)$N<50Q&4A0:_1+]B65IO@1IJDY,5U8?\:_/ M4QEUX[=:_0G]B>!X/@E9;NDEQ<2(?8RL ?TJR3WLH,$=QZ]J^/\ ]I6[O_!G MQ8CU+2+R;3Y[FTCDD,#8#X)4A@>&R,=:^PF.03C@=:^)OVIM:&I_%:>$-E;: MVCAQ[X)(_6B]A&U\._C/_P ))*-'U**.SUJ=3&IB/EV]]_L=/W3MU&/E;H0. MM>9_$V^V>+-'@NUB7P=>,$2:S38RKG:5/H0>#Z8/7BN%U&;R8Q(,K(K!E*G& M#ZC_ .O6D]W+KWPOUT7;%VAGANXV/42R AQ[9*YQ^-1*3MH![9'\ /!%K$KK MIS7B,,AY+AVS^M0*_4 MNVY7.,9'3\J_,7X4^'H?"'BSPI::)O27^U+=4>9C*Q)E4')/7 +5^G5HA$8S MZ5Z%*I[2YLM43BEHHKH **** "BBB@ HHIN]2Y3?&'4Y 8>AZ9[$@\XK^?_ %73[GPYK^L:?>!99;>\FA9H^FY6 M*G'3C(-?T6WA5L*<$'CGW!'^?I7Y _&7_@G]\78/BAK?]@>'$\2:1J=]-=V] M]%5E]L*F/UK8T+_@E5\1'UPV^J>(M"@T M_.XWL DD8D]A'@=/^#/#M[-/XSU2;Q8&&V*VBC-M$G?)P26.*\E_;0_84^'_P *_!^FZ[X3 MN+[2;F]U.'3A:R-YT0#ABS\X/RJC''?%*X;NQ^>"O'M,,JDJ1]W'S#\JK70$ M<8\L.3TVKU/YUL6,Z6I_T49!.?.89+"KNI*FR!Y91*LH)&U<$8QG^=9.;3L= M'LURWN8>DW+AH@00WGCIR!P<\]^U?6W_ 3ZLDOOVJ_"[MSY N9U&.I$#@?3 M[U?+:[(9(HP,ELD'&.V<]/\ .17V9_P30\%:EKOQXBUBV4BQT>SD>[D(./WB ME%0GU))/_ :TN<[>A^N=LH5,#'X5-4-LQ922"">>1[5-29D%%%%" ****U * M*** (YVV1D]*XGQI\5M \$KLOKKS;HC(M+?YI#^O'XU>^*VHW>D?#[6KNQE, M%W%#F.1>JG(']:^/=,LYKZ[DFN9'EED.7D=B68^YKRL9C'A_=BM6>O@<#];O M*3T1Z?XE^/FOZ^'ATRW71K=ONN3OE(]ZA6,[UY8=J\"I6JUDFY'UF'PU&B_=B7X8D:W.0-W\JH7=[!# M&560 GU&W^?\?2I3MH>DHVU>Q#XRU. M*/3),G:J@GY>N?\ //X5\B?%WXL:_-J=UX?MY7L8(%S<3(=LKC (5?[N01SU MK[P^'_PZ6\T6\\>>+$\CPSI-M)?)!)TN%C4MO;/\(VY'K7YO&ZN?B;\0KO4K MH RZSJ#W,H48 0N7('L!A:]?#8;[4SYS'9DU^YI,T;.!?"LMG-Y#!\_G]*]F\ ?M:?%SP>$72/&%OXILX_E^RWC"<\=1L<+(N/ M;UKR>T\9:ROB77;[28K26SDD6 I<#ADCX49[#;S^-5;2[T*%6AUKPS<00R2- M*;^!FE8%F4D!EZ+P>*]>.FB/F9IR=V[GV]X._P""F<+G1Y M<,$_O-&W(XYP!TK2YGRG[;V>LV>HPK-:W,-Q$P!62*0,I!Z'_&6I^';L$,;2[:2W[9ZU>\>$?VX/C)X2M/] M-2R\2VP'%Q+"),X_Z:1$CL>M+F,W&Q^H88-TYI:^/_@E_P %#= ^(?B"QT#Q M%I+^'=0O)5@BN%EWV[2,0 &SRF3W/%?7D;,P.1CG\JHBUB5/O5)4:?>J2J0@ MHHHI@%,FXC/&?I3ZBNG\JWD?^Z-WY4@//_B?X-\!>*--8>-+#39X@"%ENRJN MH]5;@@_2OSD_:9C^%?A>,6O@/XA37MS+<>3/H]["\Z0)SN=)64$8/;)..]<5 M^TQ\;O%/BWQ;KER]_(+)KJ:."V+?)$B,5 'UQS7C&B>+IYWFB,WV@[0V)%' M8=JI1OJ4==XY^&'@*T\5^'&LOC OBN"ZN%&H1Z=HTL"6,(*\Y=L-W!^F>:^W MM>_:'_9R^&.EZ>FC>"M+\3VBJ(IWL+6/ST..'*,H# XY(;//0U^9\DVK-.X^ MT&(1D@=C56_O]1LX5)NY"NY1MW'!Y_S^5581^M'@_P#;I^"^D:>DEMHEWX86 M8X:--/2(@#N<$9%?2OP[\?Z)\4/"5CXC\/7)N=*O WENR[&^5BI!'8Y%?AKX MPTZXFM=,N+I9%W$@%P<$<&OT:_X)F^.8[KX=ZUX4^T"0Z;.+J)6?=A7X8>PW M#]:EJP^A]GKHUE]H%S]FB\_KYOEC?^>,U:\@9ZGUIR.*=2)"BBB@#\Q/ M^"IOB)KGQYX5T;SYDCMK![A5@8_>=R,_DM?#*^.]=\/*(I;AY[;G9'=QG'X& MOTZ_;[\.6Z^(_#^L2HC/-:O;EF )^5LC'Y_K7QAXBT"QU^2QL[FT^T6DLJ1R M1KP[ D9"G^$^]<$YKGLT;0C=7'ZMX$L&_9?\/>);RTB'B;Q5K++$A?F&PB4C M(7MN;!S7*:=']DA\IB%CC.T'/''>NU^)WP]T?X;?'3Q5X>T&*Y32K"UMI+:U MO)"[0&2(.8P3SAE;#)$9%.!A7SMSZ_,:ROAW\9!H,4ACTT2W+X3<\F%Q[UZ)^TI)8 M7'PIT[2HM-0WR:M]IBO 0,(\>UH\8SC)W9]37CO@;X>+J,D;W5]):SD@B-%[ M>N2<5S05/V*+3XR^!/A;4'G268VXAD\LY"LI((_"O9:^5_V M"-/MM$^$]YI4%]+>"&],FV0@[0RCI@>N:^J*[J;3BK&4MPHHHK4D**** "BB MB@!I12V['/K6?'H&F0WCW<>GVR73\O.L2AV/J3C)K2IE #=@]/RI5C0=OP[4 MM** ,#QSX,TSQYX3U/0M4@66SO(6C8L,E#CY7'H5/(^E?FCH%]K/AGQ?]DNM M:;=I-QY02<8 0':0">1QCKWQ7ZFO]QOI7SS^T#^SCX?\:V>H>)[=?[.UF"%Y M)_*3,=VH7E77^]Z,.:: \\\+>*FT#5WDDD(M)VQ*/8\AJ^E/">KPW$D,T%PL M]O,H&]""#Z7D5S;R226R(Y_>QA3P/]H;2IJ?PI\9- M8\ SZ79Z7J+W>QFN99",.C!U/1AT->,>$/B]#\1)[(V,@AU![%X7M^"T5%=K"^C:O^V>6_4U\$_ 3P'#XZ\?6'VZ:*#2;.59KAIG"A\$$)SZXYK]&! MXU\-:':HD^N:=;H@Y_TE.._3\:LEG1SRK;P2RLPVQ@L?88K\Y_B'XA_X2?QM MK6J EA/>$Q"1#B.('@L6QV[ MD^@X/>AJZNA&#IOA2?Q)97%P. M+<#;!$I_>7JQJ ,+_ +(R3W->B> ?!&G^!-.- MO;L9[V*QT^*TA5!'$H50@PJC &,? MK^-9MV^T%F8*!SD]*[CPI\)_%?C5E&FZ--Y1(SM>^>%_V0/#UG M82R^(;NXUC4I%SN!V10''\*@<^^>HKR84)U95_LJ_#[_A,/'9UVYA M,FEZ01)%*>%:X)^4#L2HR:^X+?B)1Z#TQFN4^'BZ9'H"V6GVL%HEB[6TL%K$ M(XU=#AL >O7\:ZY!@5Z].FJ2LAI6'4445N,**** "BBB@!&Z5XI^U/\ $;Q1 M\,? ]KJ?A,Q&_>[6%TELGNB5*GHJ'(.<KV]G "?S0U[!+^R? M9_$;XA:;XD\27NNW7@W7;(7HUZ%K6TD"JBYQ;B$C() 7Z]Z]-^%W[%?[.'B M7PG<>*95\9W>DPW/V53J\I@,[9ZHD<:L1[\< U%[FEM#XDU']LKXU:QG[5\3 M/$2_]>MR(/\ T "L:;]HCXB7Q/VOQWXPN@>N_P 1W(!_ -7Z!_%7]F/P3\-_ M$/@]O WPET2_\-W+*^I:UXD:XN41&/ "&3@XY_2NB_:$\6?#C]G*\\!Z5X?^ M#?A#6]2\1-&HG?3(H+?!VCY6V$YYSST'7.13N%CR_P#8L^-FO/XA\*W"^']2 MO[2Y;[!?ZG,\]Q@,0K.7=B"0P4GM["OLK]L/X0)\;O@/KVC)(\.HV*'5+&2( M<_:(48JOT8%D_P"!>U;]RVI>'?AF\W@[P?HS>)5A6:#1(66"V9BPW8< #@$G M/?'O7A'Q:_:3U/X.^(=#\4>()(Y-+DU)=-OM+MI6D6*-U_>D#/S-&5##ID C MN*F_4>WR/R+MXV>&-4B8@D!I<$Y'J36AJ$]M<>5+*&60$QR&) J%0 JX [\' M-??_ ,2?V:?A+\=_#?B3XB?#3Q_;Z+H<,AN]0TPVQ:WMI /G8(N'CSUP5(YX MQ4_P1_X)R^!O$'A?3O&>N>/?^$C\,S9ND738?*AF13@AI&R0,J01M!Z\BIY+ MLUY^IO?\$^O@_P"#/%_PA\07?B?P]INH:%?S6T4#:M"K;Y8T/FRH6Y3YG*9& M/N5]J_"[X7^"?ACI,EIX,T>QTNQF;S)/LGS;SV)8DD@=N>.U?#/[2'[=&F?L M[^-M.\#?#[P)H<^G:9%$MS)?0/'A>T<:K@K\N#O8G.<@'K7N?PH^-?@S]J#1 M])U;P-XAC\*?$6RA$TFG(<@-CYXIX?E$\)(ZCYAG*E>:U44C!MR/JZ(A!C'/ M>G^9[&O(/AK\4O$M]#)&^,GYE!QT;IQS7K4? MW>:&B;$OF>QH\SV-,I1U%(1(.12T458!1110!R'Q<4O\.=<4R< MP. \9 [D5]6_%!0_@/6 >GD_U%?,<<.P_(,'U!KYW,H\U2/H?79,KTI>I8@" M7&"'7/7'>L_4F"3D*X(]!3KD-%EN5QW%( MM;6#S7W ;!G'K7)Z5\2="T77[34/$&FSZKH<+@S06[#.[^'<#U7()Q4>JEI? MM(ED^1%//K6?=Z D7@N6:9 %>+>5([]\_2G&?+):&E:G^[<&]ST_]L#]JSPK MKW[.-[HWA2^8:CKLD-@;8QE'CMR=TO'H579_P*O@[PF3HVDZQK!(W6L'D0L# MQYKX''KUS^%5OB%?MJ'B**T27_1K)=Y'H0=Y_D*NWMF8- \.Z0?];?.U]<*O M!V=ACZ9Q[U])";J*[/SO$48T:C46=E\,='-AH,+2+B20;_0\_P"0/PK=O=#L M[B0R&!%<_P :#:WYCFK>FP_9+%$ ; S]<M8WL]SENCC=6^'6GWV6 M$:%R#@D8.2".HP?3J361!X?USPW.LVF:C=0K&Y9(BWF1C(Q]T^W'3BO1V.X8 MZ8]*C)&X @8'857M)$W/.T\2W5DOV;6= L]5@\UYFR"9"S#D?O,G&>< @56T MI;#7/%6E#P[!=:0+!UXKMM<6!+1V=(PH&2-HZ#FN'\(ZE M_9'AC7M"Q^@4%OPK]LX>"1G..*_+[_@G'X%.K_&235YU\R#0[&2X+D9 EE_ M=J/KM+U^H4.%ZG)^G6MXHQD];$Z?>J2HHV!;@U+5V("BBBF 57U 9L;@?],V M_E4YZ4RX!,$@'7::0'XD_%;3L3ZD&7>T.HW,3+Z?O&XKSOX5W\&G^/-(%[#& M\-PGV=E<#&X=/U%>_?&_1UL=:\>V++MDMM7,RGOMD-?*.N))I^K(\>X[)PR[ M3ZG.!^9JT]+%V/0_BO9+IOC6\C@\L0RXD C;<%)ZBN#UO]Y:GV(/ZUTVLZ?% M]EC9=0BNKM.XJQ731](^*_$&D>(?"WA M9+22*YOK94+Q&($+E!G.1@]*]\_9+^(E]X;^)6F-J$Y^PWW^B.% 5%W<*< M=<#\:^:O">G:5IM_#I-T\OVFUM_-FNF ^S86/=PW7YN%!]37T!I]A:0:'%<6 M+A95PR,#C81T/'H:S;06TU/TSC.8U/M3JX_X5^+T\=_#KP_KL;#-W:JT@4\" M0?*X_!E-=?2)%HHHH ^,/^"@D1>U\+$9ZS#'7^[S7Q?&TEE):W.W:89DD4YY MX8'CCVK]-_V@_@3HOQD\+3_VC%=M?V-M,UDUK.T9#XR.!UR0*_+BWT>UT:ZG ML7BGEN6D:!S,[DK(,DJ0>A (KS*Z<)W/2PU'VRY4SVG]K_X:6OA#Q!I?BC2= M*F@T[Q%IRO<:M/V/TKIPT.5,RDRU M86UO;DF) G5B<$G)KU/X+H1KMY.';]Q;AAD=3DD"O.;5&!!501CDD\"O1?A? M)<2_;9+6YCAA=EC:;9N((ZX[=ZO$?PVA1W/8M5\ /X]^&/C^1+-[A]-TM+^& M[&-MN\4@?:V?[RY''I7S;\*=9FMM+\4WIN&%S'Y"0+(JG.YP#@-GH":_1+X* M>$[6T_9/^*-YJ.J2R37\-S!+<&,91!'^[4 =P4T =)FL?5M>MM+FCCEEC$KD!8C(BL<\#&XCZ5Y-JG[1']B>*)]&U'P M[>6]R+/[7"A/^N0CY2K8(()X]CU%>6_%[]IZVU+PG+-IF@6%]J&G2R?;;'4Y M&2:'R_\ EHA &=IY-1S*]BE%O4]:U#]I[PCH7C>/PUKSS:)A.!E6&3CD'->RV\\=Q"DD"ITU"*W%GH4S-/$1&&C@F( =/8':"!]?05\TRW&CZ;K@>2:);E0NZ, M-\A8@' ]^1WZ\5Z]\9OVDM=^(]N\.KZ1:6GARV'G_9[24RRR.IS\V5&1QV K MY-N_%NEZY)JR:_5O]G_ ,1R^(/AS8-=;4OH%$-Q$6#,C@8YQQSU&.QH;$ST MH4JTE*M!(ZBBB@ HHHH **** "J]V,HHQFK%071(48_/TH ^"_VV_P!DSPWX MGU"/Q;X?O+?2/$^H7"Q3Z>=^;\GC?&J!F\T<\;?FZ<'FOARZC\,^#=2O],<: MIJ>JV:]>\<_\$N/BKX&0 M^S 5GV'B"QTP1M>Z5:SA7^=9KDEROJ ">?QKTKP%^S=^T=X0U$RVWPZU6ZLY MALN;&]EA:&X3NK*TG->C^%_V"9O&/Q1N[0QQ>&EM84NKKPWJ,X>2!F_N,FX2 M1?0CT/2GS*UP.2T+QG8Z]X%EM_!&CS0^*'E&;XH([.WB]')4DM_NFK_@O]G6 M\\8:S"^IM>^,=:=L^2JM]G0YYXX_,G'M7V_X"_8U\/>&H8(]4O'O8X\;;2U3 MR80![OO7O?AGPGI7A2TCM=)T^&QMQQMB3;GZGJ?QKEDJE1]D(^9?A[^ MQH([*WE\1W@LH@N?[,TY0 !C[K2=!^ KWGPK\%O!WA#:=.T*V$J\B:9?,?\ M[Z;)KO2JGJ*;)C:>:<:48] &)''&@55"HHP !BN8^('CO1_A[X=NM:UR[6SL M(%W,S$ZU>3WL<4B\I$7.T'U..]>MI]P9ZUGZ)I=KHVFVMA9P+;VEM&L,42#A%4 M #Z 5HCI4V 6BBBF 4444 %(3B@G ]*K:C=)96,]P[?NX4:1\=< $F@!+Z3 M8HR#CGI7QG\5?"^D_$SXH:X+BQCOY;Z)$VS2!9[:"-0@51_<,@9O7+GTQ7T- MIWB]O%L]CJ+:M!IMB6,D5E$XDFE '63&=HQR1CCO2Z+%IFN^,YMY\&R^'=(LDOM#LK*S2"SU""(R1 ML"!N&T8^;*C^(<9XKL?$1D\.?"%8=0\8Z(=;DC%WIUSK1^S6Y!P2&4MG&W<, M\X)Z5W?AWQ='\3-,UJT %A-;SO;1SQG=G ^\I(Z\C(KYF\4#2OB)\)]>UCQ7 M\/QXGUKPUJW]D6:WLC$7,;72KA&4#^]Q^IK-+L;W."U+]NSQ'!?_ &+7/#&B M:[I6GR!4.EWWEB9@/EP#N+*1R& QS75>+OB]\)?CU?\ @C5?&B:EX/NO#YDD MBTYC'<6S&15!5S'\V5P,$!<'/-=8GP<^'.L>,[#2-4^$:1P_V1&;V^=W L!\ MVU'X"@ +G)(;!''6LC0/!O[..LZ/<:EK'@0>&HKO46L;/[7#*?[07\_ 27PU=>$I)_#GB8^(--LY9(_M)E>0KD[BK%N<@ M$=0.HKY=^*?_ 3@@^,'BS5/$OACXD*;#4;MKLV&HV[S) ['Y@KK(.,D\%?Q MKZ>CU?X5?LQ^&[+3(6M?#NCWS&5!$C2(V5!+N0#Q@* 3[8JEI/F^-%M?%/P[ M/DZ7=9D23<5BN%SC[I'?%%N5)";NSX+^(VC^"?V%?#GBKP3::Y=>,?''B>W2 MWOH%MS;6MA;'+ @%B2YR,?,3CJ!7O?[!7[6/@SQ?X.T/X17]F=,UG3[;[/;* MX#VM\N2Q"$?Q_-RIZX)!YP.E^-/[+?@;]I?Q+'J'B:2Z\%>-T4027$.&2Y7^ M 8<8/4>AK*^&7[&?A?\ 9P\7Q^(-*FO/%?B*UB,<$]VB)%:D]PJC!?&>2>,B MCF2=QV*G[4_Q-\ ? GXK65MXQ^%6CZ]I&M:(OV4OV5/#?AG6+'XC3RP^%-0UJY_M+2]$2196MK4GZL[F2VM9;H;\!:3\2-!M6M[M MK"\TN-;,"V.8U1/N8'88QTK.-7FE8VJ0BJ<91>KW\A_Q,^(GB'X>>.[.]N[ M3^$W5%$Z1@E3_$?8], U[%X:\0V/BC1;74].F6XL[A=Z2*,9[?@1TKQ2P@U6 MRNI-+GU"+Q+X=,AM[G[1$Q6, X8Y(ZCVSTKTOP#?>%-&T^'0M#U*V98V9EMQ M)EP6)8C!P>_ITK>YRG:]:!U%(#NYI1U%(1+1115@%%%% ',?$P!O VK C(\K M^HKYLBM@I!'3Z5](_$]_+\!ZPW3$/]17S'_:8,9);&.H]:\+'_&F?79*KTY) M=Q-0E1 X;GBN/UF0.C'&!CC%;FHWH);'.*YS4I#,0P')Z"O'D[:'UE.#CJGQ1Z1<2R %GP%!/%[=DT[7;B&20G/E(OFO%G^(E>5KZ>"Y M59GYQ4GSS;& 0?PS6S9^+]+U+"PW:;V_A)P1^%9\K),KXA:G]BT.< MH1O9 JCW/%(-(TM#\DTXE8@ MY 0'_P"M7/\ C+7$.L:I=AL1>884QW5!C ]LYKHAHM0M?0^M/V%OC)IWPRN= M>%SIK72:G-&K312 2(J \;#UY)[CI7Z->%/%NF>,=*BU#3;M+BW<X* MGD'V-?DU\$?#B:/X:@NYP1=70\YR1Z\X_E7T[\&?B9=>!=>C;S#)IT[ 746> M"/[W/?WKAAC/9U7&6Q]%4RJ^'52"UL?HM%%%,0AZ4C_=-.I&Z&DT!^8?[6'A9K#XR^(+ M55 75;8L,]W5O\#7PAXN#V]W*C AU<\@X(^E?I?_ ,%!-,;1/$VD:ZBJO[T( MSMP,.I7K]0*_-CXFS";5Y'0@EB22O0G-*.UC7<]6\%>'T\8? K7];BAM?[8L MY,3SJI+M%P>YPI/S<@:DDLTEU:W(C)>0X6,-D+TY&<<55^'_Q+E?2HHI) M,JT>PC/MBN:\"^-KU?@)J/AJ*.%K"],C3,RDN" 2,'MSCM7E?A/77M(HT\S: MN1R35X6C.E[3G^U)M>AEBZ\:SI\OV8I'ZY_\$]_'#>*/A7KFER.&.CZO)'&/ M[LK\._'.JW"M]FN]92*!CT8QPJ6(_[^#\J^YATK MN9YHM%%%("+ 8' P<8KC=;^%'@_Q!J@U'5/"^D7U\'$AN;BRC>0L "6(R>. M.:[8 "DD_P!6WTJ7%/<:;CJC\\/VY$5?B;;6^8HK2RTZ&&WB7"*@)9B0!Q_% MBOE.\U6QTQ2\]];0XZD2\_D#7JW_ 52BFM/C?IDC-^ZN-(B:, ],.P;]0*^ M&I!)*_ 9_P ,UQSPZG*[-N;0ZWXD^+X/$MY%;V*$VMMNRRD_.?7!]JXAH=2\ M/V\-Z+=AI]S(\4IKZW\?? Z*Q_P"" M=O@_Q2]JBW[:_/J+2 '>()\PKS_VQB-=:BHI)$-GQ^WB.\N8M@*Q(>NSK7K' MP+\1P6,LMA<3F)Y7#QECP?45XW;1.#A5W<\<5LV(D1ANC8>C 5%2'/%Q81T9 M^T/[*?A[3O%7P;U?2=3A%Y8W=X_FQ$D;E*J<'![8KJM%_9.\&:3XM_X269=2 MU34?-64#4;GS4W+PHZ9VCLN<5X'_ ,$L;B:;P1XO$DS21_:K M^-].M+O1[A;;7=-?S;1I?FB?^\C*>!NP!NQD?2O1Z:W6@#Y@\6^!_&WQ!U'2 M[S4?"JQ/I5MY+1,\9,S\_,C]>.F.G-?./QB_9F^)6E>'[K6]'TR^G>=I$.E6 MVTBV5TV9PK$D $\5^EG^<5&T19B1C)[U#CK MQTD>6KM9W%R5F48QAE P#P#^-;VM?L:^.;"W>Y62SO)8#N6*"<[I!@YQD_7.<#/MP/_UUJF&Y\M:!^RCXOT#P4]^' MMKR2/$DMM"295)QP!CYB,BJ:?!GQO96E[>ZGHJ:38(A"O>RJ9)#V"H,G-?=7 MAR>/3M"EN9CLC!+D^PX%?*/[0?QLF\1^)!X/T",WNHW+&%T1\8)'*@]N/O'^ M$>YJ6K@CYC^+-S<^$=!B6>VE^VZE 9;&(#YYD)VB0#KM/./7%:/PI_X)_:_X MA\)Z?XJUC7ET:ZU*)I8+)XC*T4)'WY#G"Y!)Q["O9].\ :9H,]CJ>O7$5_=: M;"J1W-Z2ZJX 4'N0B\*H]!G%>JZ)-,W@C[5XO%II'AS1]S%+&ZEE2X )V ,X M#$G/"]L^N,$?,JQ\0^+_ (.M\,-7M&M]9@U3Q%+*8M( 1A';1*=LEZP]0.$S MW.>H%?H7^R7\-[[PGX3DUN\G<'6%$L=H5QL09VD_4<_C7SS\(O@-J7QY\>ZA MXKO99[/13,JB>8 LL"'*01#I]3TR>^*^]M&TJ#1-.@L;6)8+6W18XHT& % P M*"675&!Z4Y:2E6@D=1110 4444 %%%(Q '- !D>M07R,]O(J]2I JEK&LV.A MV$U]?W4=G9PIYDDTS[$1?>O)?%W[57@/P_I\,]M?3:\)1\G]F1F1/Q?[H% ' MS/\ L9^'[VP_:3\:?;KJ99XI+K;$LZN'4R_Q8/'3ZU^@$2A.O)]Z_-']G_XD MZ'\)?CGXM\2:K=.T.N2SR6]L@&Y1))N4'G\*^HC^UEYK2I9^"]3=4^XTSJ@D M^G%5RM@?2&5Z\?6E'(KPGPM^T[I^J:I;V>KZ1<:-)*,L_FK*D7LQ&,?E7MUA M>0W=K'-!(LL+@,KH<@BDTUN!.5&>17C_ ,;M!;1'T[Q[IZ%=2T$D3&/CSK1C M^\1O4#DCTKV(5EZ]I4>M:1?V$X#0W4#PLIZ89<4@%T74H-9TNROK8B2VN(ED MC9>FTC(_F*TQTKQO]F'6Y=2^%\-A=-ON]$O;C2I2>O[MSM_\=85[%O 7)/R^ MM "N0HR?6N3^(GC.W\!^$M0UNY^:.VC+*F?OL?NK^)KJ))EV$@U\;_MO>+]: M\::GHGPA\'1?:]:U5Q/<^6<^4F?D+G!PO4G/I0!\I_&[]H26XUFYFCG_ +9\ M4:B^V*.([Q&Q.%7 ]!@ #O7U7^P?^RG??#6&?XA^-D,WCC68L1PS#+6$+#)! M]';C/H./6NH_9X_8.\#_ 7U:V\37OG>*/&:HI^W:AM,-J^.3!& /3NVWA3X=ZD=3MY-3UV3S'N[A^'+>X\(0">\GCD-F)1:SS[EMLKD''&0O8GTK!L->LK/P)# M%3L"JHZYVYR?6LJ&,H5TO9RO?7SL:2I2A\2L69I;7P]X/TV"9[.'2WFP;JQ M8[YMAW-\QQMS@YR<]>]4] E\$>+;77M.MIY;6"^O8-2F@= %BDC9&XP2,,R# M/UKJ=/\ !=EXC\,#2M1G1X8R#'!;9C1%QW7/SD]>??&,U@:AX;M?!933;"VC MM[>7DM;1! 5/!'((SC/)K:4VM8:HN%--\KT9V7V32)=1UFYDF\TZBD4$Z.O M1,@J>_()K-O?A[X<\7:RVH>)+>PUCR7$>FVEW$K)9@+R5!_C;J3Z #USS\FM M0V,*),][(A^1F!S6GH.BSZ\9Y$NKNQC3YP\Y!R#[#H>.CCXK:SI6N?!:[\3V.BSBQMKZ.:YBC=5.,[5 7&>F.O'H,? M2?[(WQTM/BMX\5>&_$%S#::M/\ 9!%;L/L^ MX+O7KD9.TCISW!K=M6.1:ECQ1XC\6^(O 6C7_C/X1IJ.N2ZV(8["UN-QM(U. M8[@OUX.<=NE?0<_AZVO(@67R'<;BPX/3O7S'K/Q'_P"%U^ =1UG3I[_2/%^A M6$MTEO#)M295SN9<].!GL0<#-8_PF_:;/BGP['X=\533:E872HJZY;2!7"MU MW@'G#=^O8YQ6;E%EV9]-^(OA]IFI>&YX'N$@R1(;I\83!R3Z#OFM#P'H^AZ! MI832)H;E& \R>)PV\XZ\5\9-\7=>^&?Q&\2^#-2GGU;P]%*B'3KUU=Y[.092 M5#V&-PZ<\9KE(_V@KKX;?%;&C7+:=IMT@N[33'G,L<\2G,D3[@2&!4_=.<-W MJ4XK4'S/=GV5X]T\RZI/H^D7EYI5WJ,,DC7%M*JKN/&4#<%OH/K7GGPZT[0/ MA!KSN@ MA_\ 9A7R9+(K#. ME)^8ZXDW.5!VYXK+O+@JP.0 A_,U8NI0JEB>1S61=2B78HY.=Y!]J\9L^O32 MB*]Z+!;FZN&79%&22??_ /57Q[\8O%,GB_QB6S\B_=7TQD"O>/B_XK73--:R MCD.^8[I#GH/3Z5\I6-RVJ^(9YR20&)!KT,'#FES,^=S:LH4++=G6:?=:G:^$ MI8]$5Y;AYW2]:%=\T2 87 P< CN!V[5T7AN_\.VG@#4=)FMEU'7YC)(MO<6H ME:24Y ()!.?Q!KSG6DN--O1>6\LL#,0?,B.TC\:>WQ!\1RQK#'JM<^(.C\->'AX!N/[2U"]$4T(VF")^&['S".ISV&:UKSQ%XDB@M- M;FL;FTT.XF%K'=2DK\Y&5(3/W?KU'?BN3GTX:BEO]IED%Q;H('2*194XZD@? M,"3UP#75>)?'VNZYX'T_PIFVFL+(;6,;,TLW.1N63YLCU&VF07/$6J>$+%M5M)M)O6U&]1UF$P!6*+N M5/\ >;!P3T';-#6A)Z1'X;TCP>+S5(9I[B]MX#M\^0'9Q@8&*\1UN0W6JZ)9 M2-^[:0%_0Y;)S_WT:]B^(NMVUUX8L#9D"'4BCH>"0G4@X[@\&O$]:@O]1URU M-C9R736_SGRU/&2,?RK.6B-\.E*HO(^O]!N$2WM8(SQ@+UZ "O3O#]D#%YFX M^XSVKYL\!^*+B\>&)[:872@9B,;%ACO@5]._#G3]1\5006^G6ES<3$?,BH1C MW)SQ7S)I-;\("QGRT^FO]G+DYW+C*G^8_"O8% M^Z*\P^"_@N3P3X>BM[G!OYV,UP1C&X]%X Z?UKT]> *^JH*4:45+<_*\6X2K M2<-A:***Z#C"FO\ =-.I&&0<=: /DG_@HSX7.I_!*ZU.--TEF59.GS<=O;\:X#3=8&DZG@K'Y+'RY6V!OE)^8@'OUQ7L[^*OA MGIW]CZ9X0O-=EU*>Z"7E_J("Q>65( 5!T.[;SCIFM&S"53DDHV;OV-[P/X9U M#1/"DME=6Q:0.P958-M##H72VT<40)8DM MCMT'OVK[D_9W^&=C>3:L;]M9BBOMMS;Q^4&SCY6R<';DCA3S7U7_ ,+*^#O[ M+MIH'AT:2+2]6U1?MEIIRL[GC+/* -Q))).?6IYE>R*4FY-6/7?@/\*K/X,_ M"W0_"UJJ[K6(O;.QW2,?^!$@>P%>DCH*^8_"/[>_P -/&OQO.#STZ5]-"1>*DT'T444""FR'",?:G4R7_5MQGCI0 M!^/?_!1V;4_$G[2.I+X[U]O M?MV^%_-^('BX.=[;HKNW/=,Q*6!_'=7Q'$P8J_!&-WYBL834K^1HU9%N\TF? M5K)$M83+>>:J1H%R6). ,#ZU^NOQE^"=SK7[$LO@'3$3[=8Z);BWCVGF2%4? M&/4E3^9KY$_X)\_!:Q^)WQ'N=7U1!-I^@Q1SB(_\M)B?DS[#!/X5^IIB6. A MER@!XQP1Z55[W)/YZSH,GAZ0P7L?EW0 )4KCV&/KBKEA').P1%)'N:]T_;$> MPU?Q_=ZI9VT=G$U_+"L<0P-NX\_GD_C7C'AL?Z0H W?-@ ]S_DUG%W5V4T?J MA_P3B^&MSX)^"-WJEV"C:[?/#+:U&R&+2K=1QU.P9/XG)_&N[ P!6R(>XM%%%4(**** "BBB@ IK=:=36 MZT )0#BFE\'&*\M^.G[1/A?X#:)]JUJ7[1?RKFVTV%P)9_4\\ #N3^M 'HFJ M"!;=WD)C;LR\'-A>+/VA?#NH_!=O%GAZ^$]KJ$Z:=')]V2*25MFQ MA_">WX@]*391R'[;?QO\0?#72M)TC0;'4#Y]HKC5+,"2W@??AQ)CE2J_,"3W MSU%?#7PI_:#M/#C:SX@U&^:'Q#+^[M/,A=G>#)WMN!P,G)(_B(KT+XV6T^K> M#]1UC6=>LQH]I-Y*6^BWT%E<&*2ZG^ MSI%7.MW M]SF<1R7+0JFSA7/ED$G)('T-%F*Y^V'AO1+#POH]MIFFP);V5N@CBCC' 'Z M_6M(3J21@Y]*_)3X1?\ !0KXD>"/'^C?\)SLN/ (5X9K:RAWNH*'8P:5K,FA:>TNZWL+-05C0C@%B/F/N:!6/US\U<9YI\; M!UR,X/K7R;^R+^T=XE\?Z@_A;QQ&[:LUJ+NPO&MS";F,<-D'[WJ&'O7UC#]R M@DDHHHH **** "F2\)3Z:_*F@#X]_P""A-[J-GX3\.1K-,="N;F2*]M8I#%Y MC *4RPY(P&XQCFODGQ!\0HCI5O::1"=*MK1!MM P!#<#=N'?!^F!7UU_P4=B MN%^&_ABYMWVM!JW4CY3^Z;Y3]0#7P=K40&H6SR>2'N('RL39 8H<9].]:0 V MK/XS:U:'R&CL+YX_N7%U;J63W#+AOU/TK2N/C]XE:)MU]96JMDD%4!/OR2:^ M5-0BU*?7=1MHIWQ!ND.7("H._'U%1S:!?:;%YUS)%\S>46?<3&@!Q@=/4]#7Z>_LTZ@=7^$&AWG!- MPKOU)P=QXY],5^(O@NXN+3Q+I&CQWT5S93R"1T@"XW*7QR"@E;'Z4I.Z&>YKT%12' P!D\FI1T%-9-P-9 >#_L_:C: MZ5XU^*>@.3;W-OX@>\6&7Y=TH( Y]Z];\0>+M&\.6K7&I:E:6<2Y) M,\JCGT SR?:N<\;?!3PSX\OUU#4;26#4D4(+ZQG>VF*9^ZS(1N'UJGX?_9X\ M$^'[E+E-'^WW2G(GU&9[EA]-Y- ''Z_\3/&'Q,D;2/AEIXM+63*S^*]6B9(+ M<>L4?65QV[?3K76?";X&:1\+H[FXCEGUGQ%?MYNH:]J!WW-TYYSG^!?]E>!^ MM>CVVGI;(J1HL<:C 5 /;%6$BV$\\>E "0Q[ :EI*6D 4444P"BBB@ HHH MH :XRIKB?'6BR7_DR)#%(%;YW= 2!D'N>/K7:R'"'O7A7[4/Q*_X0WPG#I(M MK@_\) 9; W5OD- "GS8(Z/@G;GKCN< \]?"1QL'0D[)DRQ+P<77[$VK^&[>Z MT&VEDN!(IF.U$C\U2" N.&'OSFM#0=3LOA_X>N;FXCS9>8BR"./Y0QP"2,\= MJSOA'X''@_P=81Z7>H((ZU\[#(HX7&*M0E[L5;UV/0IX^I6PR59:O5KL<) MKMN_BI=/U#P;J5O;S+=*]U Q&)H@K90<_*V2IS[5MZ[?:Q:FW@DC&TQ !@JL M"^,$DDY[GI4%U\/- \.S;M$MK;2M0NI,^5"WEJW]XA>@Z=O2NB\.ZW;7$KZ= MO^TW5J#YC#!VGTQG(/U KWE%MM/0)5$HI[G'SR:I=V64$K*5RNU 2#CC@#\> MHK6DT;6=4^&U_IZJEOJ5Q;LD(# !21P"_#L>&6\*IINH\176JWTD/D[/XW1M^[.#QC_ M .M7+?$/3/@U!\*XOA%XI^(>FPZJA^T64]S?*)[.['S1RAATP3T.,J2#7Y[? M$?XR^/\ QO\ $BPC^)_BO47\+W95DN-)F:*V6*0$I-$B##CCH0>002.M<9\: M/A-)X#U%+NV>34M$O8?M%MJ,;EXYTXR02!R/XEY(-3*:6C'"E*6J70_2K]F' MX>^/;/QK8WFI:1H4GA">QFWZOIFJB^@O/, QY0**54G<2"">>O>JWC7]BSQ7 MX/UR<_"NZT>Q\/74S7"VM[$\EU8RMDGRV,BHT>_D!N5!Z-@5X)_P3^_;!M/@ MWHNG>!O&I\KPWJ5V[Z7J\1:589G95\J0#E4)[XP,FOU(.HPI"))9%C0\AF/7 M@<_J/P-7R1V,^9W/E7]ICX$VGBZ/P]K\-[;V_P 2M&TT0F:>*1K.ZB(VNLWE MC"#QD^"?V=I=1^&)/Q6:S@OX-0CNM O-'C5I+)F0 JA.\NK-G[ M^<@Y*KT'T)XBUNS@UFYU"V>'4(YK1;26V)"D@,3D$\?Q']*KZ7HE]JOA338V M\F*;3[U;F" L&+1J254X[X..*AH=S@?@#\-[KP&WBK5-2\36^NZ 5\N&(6H@ M>)5.XF6(+@. <9!.>#QTKT:ST?P1XUU2!WT:"\N[9?M, OK7[JL<%TW#U'ZU M#9>'M3U;4O$*/8G2[35+K*" MLT)&&&.HZ UK%-:$W/1K6WCMH(XXD6.-1@*J[0!["IUZCZTU/N__ %L4X=13 M():***L HHHH XSXQ';\-==([0?^S"OC?S26?.<>U?8_QD_Y)IKW_7#_ -F% M?%EQ<%5?'I7SN9/WT?=%'? M%7M1N7DC(12Y[XZ?C7D7B87<^J.;]"L8/RJ#QBO&6I]1/X3@OB/K8>'MT$9;!#L=A$S@#->>:UX.U7PTS M+JO(^=?NO5&_X& M\*Z1XO\ 'FEOK-V]IIU^&E)1L#S@?GC)_A!(+9_VJJ>,+06'C+5K+0+F'4=$ M@F B>4F6)!W_ 'C8&?/;[3M(T2U>SL;2+RXWF?E?0?P]^$MAX>L_ M+A>2620?O;J;EY#ZX_A'M7F/P)\B.?55X:0%%R?[N#Q^8KZ<\.1Q2VRD\'KC MO7@8NM*3Y>A]SD^"IQI^V:U91@\*IH5U#J6GL+:_MR&2XC&UP?QX/T[]*^Q_ M@3\2[3Q[H4J2VT%KK%IA;F.) GF>C[>V?3M7S3+:QW&CZC,X $"!EYQDUUG[ M*JS2>.[N6,G[.;4B49/.2-M3@Y24TNAGF=*,Z$I-ZH^Q=.?-PH_R?>MQ> *Y M[2"3=+GU_7 S70CI7TT'='P-=1U"<:9)<71MH8E-K;$*?+7!QZG&,X&/I7[ MV_%+P@GQ ^'7B3PT\@A&K:?/9"5AD(7C90Q]@2#^%?D-\0_@]XI^"&Y;V:_O8]6-G*I5A,$@D4$;@ M/7@_G7MLWQV\<)HD4<_A_P 'ZI.L8W+-;LLK#^1_"O +;Q'IVK>(KZU\:6"V MFE:A.TF;=2IT^0GAXO5?5>A%<^%K5ZK:JP2MYG=B\/1H)2IR;2+>Z>XL=7T^^#O$KG<\)=,KP3CW !KYZO?A?JOPZUBSO+::*]TV M4K/8:M82[DF7J&5@>".X/2NVD\4W4%[:QZRC6VF* MX?+^>->,D1D8/'/OVK MNY4G<\V^EAGPP\-VLWC]=>TJ2[:^:!F8SSB1MW #;B,^E?I;\%_VEX=6\.V5 MIXBMI(KRV403749W%F7^)E_(\9KX]\"_#KPCI.OR:GIFIW-A9SVZJDB6SW:3 M9(.X*G*YP#6QX1U#5/#WQ)FTO5;2:+0;ZY<6FMK RHP"Y!=#\R$@'AL42UT1 M"DG*Q^E>D^(=/URW6>PNH[F-NAC;/YCM17YU^#OVGVU']HCP7X6\$M,UA<:M M#:7EW+TGC+?O %Z8QFBHLUN4?I+3)?\ 5M]*?3)?]6WTH _-W]O"/^SOBEK4 MC#B?3HI<-W C(R/Q!KX L,NL61M;;^1Q7V[^W_KUW_PL7Q,;@[5BMX;:!#_< M*J,CZDD_C7Q+:;3.%8X*@>QR*X:47%R9N]D?I#_P2UTB8V/B[5""ML[)",=" MV1_\2?SK[WN$&W! ;=Q7R#_P3Q^R^#O@!%=7,BK<:E=O.2>X &/YFOI&Z^(^ MG1CF5?\ )KJBM#)GY _M3VS6?C2[MB-B)JTX"D]!EJ\8TF5T*E7(;>I'X$5] M._MJZ''>?%6]BL,2B[N#?0[6&W:R\CZ^U?.B^'7M[I(VFS-E&6-AM4D')#-U M[5C%.*:--U<_='X)R _"'P:0*<'TK\??VGOBG)\0/C/XIOK^X$MM:2R6-DL#Y4)&Q5<=1R)],N(Y8_LM_.%\WEBOF$JV>,Y&.E'4:.%\/ M30ZMK.HVCR-]GV%B5?:&;. QQRC:CM>0:+/!H3F[P3*1LE^?DX9B",].#7U+\$O 7B#XS? M#[5?$?AK3)A8:T>\O=:ATZ!)'NVD,20PY9]QXP />LD3ZAI M$\T-U+.FH(S)/(6V2!@W?T.1^E>^_LG^%[+6M6U?4;VU6\EM[;]RCRE,2=0P M;.0.]-:(#S_Q]<>+?@QIA233&AF&V0P:DK9"$D;DQP1G^M><:9?:E\1/ M%D%_JC)+>2A(8HX%PJ+V '/.?YU]D?M[ZO::C\,-'^TZ9<6>K1%E=YU&)"8( M]Y!!Z%PK8_VL]Z^._@-?0VGC'2)KL@1174;,6&0%##K1<+'T]\:/V8+7P_\ M F3Q%;7&I#=_$7X91- \6H68GBDGR M!YJ"V.\8&.#B,XZ9'O7U#;\1@<_C7S;^S2_B3XF:L_Q%\2V*:5;"U-AI=DD; M)E2P,LQWO$#RMS;&&X3KU5Q_/-?F#9:-J?B@Z;#92R3I&ZLB2-A %8?,?0 M!=Q)[&KB!Y!XC\,7-WXFO94N##\VUBH.3BM"'P7I)T]8IHY&O=FUY]Y!W=0? MP%=??:99W6K7TDFJPP(TC*%"-(3CC(P.F:N0V>A+"8Y+N]NFSG]W;HF>.Q:J ML!QOACPW:Z%K]A=P/+-,)=OS]!P:MTAZ&C85K[G+:CX5C27[7IT\FG7>K%K-O=>#_&ELC&TU.RD_T;4+=>BLQ&&Y/W6Y'8U[ZRAB M O0:3=1O;0:E]HD681K/+/BSX5FT&&UBU::7S)HY+[3[B"W @?R2$$.G&R0-QSS^ MI?[4GP=\._M)?#UM'\0V4GAWQ1;J9=,O[B,$0S8^YY@!!1C@'GT-?FE<_"OX MJQ17?PIU3P#JFN:CI\BMI\EH69( 23YB2 7/*#&:YHRYEN7HU9G MAVE7D%S>6EOK<]TVBE_+DV?O'MQG)V*>!SV''6M3POKGB6_G7PEHJ7&OV]S/ MMM+'RFD;<3@;%'*Y!_#GW-?9GP%_X)9>(O%R_;OB=?2>%;'<&33[%EENIL?W MR25CP,]B>>E?7V@?!?P'\'[RQ\&^ M ATL_*=1U;:&NYD')5YB-S9X&W./FZ M4G%;LOVDW:SV/AG]GS]@'Q+KGB>&]^)&?#7AFRG669(")9FDRI$1VY"+SR5 M=>8,L=V61A@X&!@= *Z33?#=M\2-#AU"Z8V]_$[1)>6RE"Z@G&1GT(]QSS3B MS-]SN9/#FESVA@EL+9XL8PT8->6^-A;^%%DL--O+A(9XG2**,[A#(RG&#V Q MFNELOAA?VCA3XDO7A_N]3^9)KI-,\%:9IJ?ZD7$A(+/IPWP M>\^STF)KEYV@D;R()[ELF]- P "C Z4HZBDI1U%!)+1115@%%%% '$_&I)=:QX MBM=/F3:D1,SHQZ[0,#'NHZM+9.ID M;[.C%#D*ISGIZDUK>2=T"4):,YC6O!NEZU)LN+*+C@.JX(_$5QVN?!V"T0SZ M=?-$?[LHR#^->TII$LDK#[/)\O(^0X_E6/XCM9H+5V%N^ ,D!#75&K.)A5PN M'J:61\TZK97_ (:O5\T %L -"W4^N*YM]0@#QNJR=^>HKZHU7X'^&+[2!!_PC$*A0/GMXMC M@^N0,G\Z\7\4?L[:A97#S:&[SJ,G[/=QG<1Z!L5M3Q<9;GE5?$+6K?2(@[6]FUQ+&YQN5& &WU.6Q7U+H6GW-E%)!>P/9W$0PT=P"C M ^G-=M^PM\.K3PCX'1=*L9+AYF&XQY(8]LGT MKZ7^#/PS3X(85@4]1$H4'\A4INO+X^; MGMBNBCAU2/.Q>.EB$X6LF='HYQ>Q#)/7K]*Z>N#\.WYDU>%#NY)[>U=V.17= M'8\:2LQ:***L@**** *>K0?:M/G@WM$949 Z]5R",CW%? 7B_P#9 \7>$?$/ MA35C?-K/A[1Y;B)])1/.5H96);?ZYSZ<8%?H.RAQ@\CTIGV=,YYS28S\O/B3 M^SC!#+)J7@^=5A8ESITYS']%)Y7Z&O,-(^'6A>(KFZTWQ!<6_AZ]@0NT6IQD MHX[[2 /'[B<]3D?PD^HKXO^-'@DK>75I,^X/8T1DUHRGJCP70]1\._#+Q%;QZ%K3+]EN!(D\ MJ0$#Z@"NT^*_B/0O$&H/J7BKQ+#KNJ7$0<1:=&)6V]EZ *.:\9\3Z/,MZ?/: M1P#@%E+?TKN?A]^R;\0O'KQSZ7X>N'LI_N7S'RE7W^<=*VT[F7*N;FZG VGQ M4UKPQ'!9:(MU#9VC[K9;K'R+NR%)';.:L:_\1O&?CV4YGN2X&6ALU(10>OT% M>M_%C]C3Q-\$] 7Q%XDU&VOM-,R1*DU/2M"M1>7MC#<274H\URY4$D%L[>O\ #BAM+4K8^*O^"?O[-GBEOBWI MGCK6M(GT[0=,61X)KR,HUQ,R%5V*>2 &)S17Z?K;1H1M&,>E%9MW FJIJ-[# M96K=9VN:3!K6F7-G/GRIHVC?'<$8-(#\E/VT_B#X6\>_ M%35K[2'>\O L<1GW_N1Y8(^4'WQ7@UCHESK]O.HMXWN,-*LBNJ[N_6OT3\4_ M\$QO#6N:U<7=IXCO;..1MWEL ^T9Z D=JZSX<_\ !/+P/X.N4N-1NKG7F0@B M*Y($1P>Z@N#GFI0,#%"5@;N+1113$%%%% !11 M10 4UNM.IK=: &,@8Y/6OFG]JC]C_3?CHC:KHTT6C^+4C6,74Q8P3(.TB@'G MW%?3%(45NHS0!^5,O_!*CXCW]R/MGB'P]%:C[WD22M(P]@4 %?0F@_L]?$GP M#X'M/#>FW%F-+LH_*BM[?(],AO[*8?,CKD@^JGL?>OG_3_ /@G M%\)[+5VNF&K7$8.?LCWC>7]..<4K@?,GC?P7XG_:XN[JZT;3Y]/\.6BF"R2= M?,,AXWL2,+N)'./NX YKSW1_^"=7QMT_60]CIVG20!N)I[P0C'K@@_H:_6[P MIX/TCP9H]KI6CZ?#I]A;((XHHE _SUK;" =J N?)/[.'[%]QX*F?6?B#>V MNKZRT8BBLK-W>"W4D9.Y@"S=N!@5]&V/PN\)615XO#NFB12,2&W4M]M*!B@1'';QQ(J(H1%& J\ 5*@"C Z4E*M #J*** "BBB@ I",TM% '( M?%#X>:7\3_!E_P"&M8,PT^]4*[02;'4@Y!!]B!7Y^_&/]B7XI^%;*6S\#M;> M(M"DRLCPOY-](N>$<-P5[G:>2 <5^F#*&&",TWRD_NBB[0'Y,>&_^">7QFUD MQM-9Z)H9*CYM2U$$C_@$2N?SKU#PS_P2Y\1W3(_B/XDV=H@^]%I&F-(?H'D= M?SQ^%?HP(U'84>6N<[1FG=@?)G@S_@G)\-/"]S!<:C?ZWXEFC<2,NHW*")R. MQ1$''XU]3Z9I-KIMA#:VL*06T2!(XHU"JBCH !5S8OI2@8&!2 , "EHHH * M*** "BBB@ HHHH **** "BBB@ HHHH *0]#2TAZ&DP(3]Y?K3W^]3#]Y?K4A M'S'C-(",QJ1C%5C$6) .<$[AP>F.,^M=3@_W148>(-%NO&\$7BGPN;FVO$GVW%J'1MZC@E""1NQCZ].*],C\( MVD'B*354+;Y8G1HF)*$DJ2P'8\<^N:UM+T:UTB)H;2%((F;?Y<:A5!/7 %%D M]!WL?-6J:[XAT&<0:O::YK5U<.4L[1X3#'GH-VUB#SUR<>V*]<\&>#-UL M ^KM;H,23VL**45B2Q4?+D]<%B>W"BO0Y+..8J7B1B.A(R13TB .0HZ]*BR* MYF$:C: 1T'>C%/P?[HHP?[M! S%%/P?[HHP?[HH 92CJ*=@_W12?Q>E $E%% M%6 4444 ,EA2>,I(H=#U5AD&JXTJR'_+I#_W[%6Z*32>XTVMBI_9-E_SYP?] M^Q2'2+$];.#_ +]BKE%%EV'S2[E!M!TUNMA;'_MBO^%(OA_3$7:NGVRKUPL* MC^E:%%%D'-+N41H>G#_EPMO^_2_X4C:#IC#!T^U(]#"O^%7Z*+(.:7=RK[3VW#!^GI76T4!L><^%OV?/ / MA&<3V/AZW>X'26Z)G9?H7)Q7H,=K%"@1$"*!@*O %2T4 <9\1OACX?\ BEIM MIIOB.T^W:=;W2W7V4N521U!VAP/O#G./:NHTS2[31["WLK&W2UM($$<4,0VJ 3B@8 ]*L[!G..:=0 4444 ?_V0$! end GRAPHIC 11 cdre-20221231x10k003.jpg GRAPHIC begin 644 cdre-20221231x10k003.jpg M_]C_X 02D9)1@ ! @ 0 ! #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MVP!# 0,$! 4$!0D%!0D4#0L-%!04%!04%!04%!04%!04%!04%!04%!04%!04 M%!04%!04%!04%!04%!04%!04%!04%!3_P 1" !_ W0# 2( A$! Q$!_\0 M'P 04! 0$! 0$ $" P0%!@<("0H+_\0 M1 @$# P($ P4% M! 0 %] 0(# 01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D* M%A<8&1HE)B7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7& MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$ P$! 0$! M 0$! 0 $" P0%!@<("0H+_\0 M1$ @$"! 0#! <%! 0 0)W $" M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$ MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4 MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,! (1 Q$ /P#]4Z*** "B MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *** M* "BBB@ HI"P49/2F^:G'S#GI[T /HIJNK=#GZ4Z@ HHHH **** "BBB@ HH MHH **** "BBB@ HHHH ***0G H 6BF>:N,Y/Y4JNK_=.: '4444 %%%% !11 M10 4444 %%%% !1110 444F:5P%HIC.H.,X-,:900<\'VI@2YI:@60,V-QX[ M$=:GH **** "BBB@ HHHH **** "BBB@ HHHH **** "H;@,=N,_A4U,=@N, M]Z /PT^.?Q&\;VOQ8\8VT?CCQ-%##JURB0QZQ<*B*)#@*H? ':N$M_B5XY5 MP4\=^*(FSU&M7(_]G]ZW_P!H-#_PNCQP!VUBY/\ Y$->>H) R\'J.E '[/?L M&ZYJOB;]E_PI?:QJ5WK%\TEVCWM].TTSA;F0 ,[$DX P.:^CJ^;/^">Q$/[) MO@T'J9+TD8_Z>Y:^DZ "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ M HHHH **** "BBB@ HHHH **3.*0MCM0 ZBFA\]J4&@!:0G S3=_M574+];. MPN)WP%BC9SD] !FDVK-@M=$2RW"B-CG: ,G/:OF+XS?M9?\ "-:W%8>%UBO( M()-MW>D;DD(."D?K_O?EQR?,O%G[3/B3Q-INI:/<3M#8W+LGF6PV2[,G@-[B MO&]42U32Q#"92"&8>:+B,9?W:9ZU#"6UJ'Z9^ _%-KXS\*V&M6CAX; MN)9.#T)&3_.NB4Y%?)?["?CYK[1=9\+SR[Y+.3[1;H3_ ,>0/Q_G7UFAR/Q MKTL/4]K34C@K4_9U'$=111728!1110 4444 %%%% !1110 4444 %%%% !47 MG*0>HX[UB>.O'.E?#KPGJWB36Y3;Z3I=N]U=NS'LO4]>E>WZ!JMMKFFVNH6D@EMKJ%)XG'1D8 M9!_6OPM^(_B&_P#&.AOJNIW#W&O1NTL]P9!(TFX\G<"00?Z5^G7_ 3?^+J_ M$_\ 9RTZTN)_-U3P[*VESAC\VP -$3_P$@?\!H ^JJ*0'-+0 4444 %%%% ! M1110 4444 %%%% "4QW I[=*PO%WB"S\)^']2UF_D6&ST^W>ZE=N %523_*D M]P/D[]N_]L>[^!$5GX7\)O&_BJ^B,LUPPWBRC_A.WNS<]>@&>]?FQK?[2'Q. MU[4)+J\\=:^97.[,5_(BCV"J0!^ K-^-?Q2OOC)\4-<\67NX2:A.QC3)^2,' M" >F%P*XG=MD4^U=<()(RE(_63_@FS\-?I?6$[7T-$+1114 M#"BBB@ HHHH **** "BBB@ HHHH **** "J][)Y,+2'.U 6.!ZC @_0TF!_/]\:/']IX@^+'C"_M[:6.&XU6Y=0Y&<>81V^E<4OBB-77-N21 MSG/:O0OCGX#TO0OB[XRLK19$@@U:X1%9\X&\GK^-<1%X:LSC._G_ &JH#]>? M^":'CN+QC^S#86J6K6S:+J-U8LQ;(E);SMPXX_UV/^ U]' M?V6-$N+*,Q2ZE>WEU<,227<3-$#[?)&H_"OJRD 4444 %%%% !1110 4444 M%%%% !1110 4444 %%%% !1110 4A.!FEKB?BS\3K'X6?#_6?$E[M(LX6\F( MMCSICQ&@^K8_7TH ZT:A;[]GFJ'_ +I89J7ST(R#D>W-?BZ?'/B/Q#XUDUJ] MU>]DU*YE::2<3,K YS@$'@>@'2OJ7]E3XN>-=1^+NB:#<:U=:GI-Z)5G@O)# M+M58F<,I/((('?O0!]^^>ON/K138T*KC(&** )J*** "BBB@ HHHH **** " MBBB@ HHHH **** "BBB@ HHHH **** "BBB@!#7G?QJ^)K_#3PY#W M#F.%9"=JX&2Q Y/T]Z]$(S7S[^UY_P @70!_TTG/_CJ?XUS8B3A3;1M1BIU$ MF<]XB^,WQ/\ !D]@-231Y5O;<74:HA(52< $C'/TS]:KVG[5/B9KA(;J#0[- M6!)N+A)]BGWV;F_(&D_:#VV]QX;R0H&DQ_S-?)OQ0^)"^'(VBM[.[U34) WV M>PL(6DFE/L , >YKQ9UJL:G+&1ZL*5.4.9Q/I/QA^VUJOAFZ^S))X9NVV[O- MA>95^F)-I_3\Z\F\>?M?>)_B%/HGAI9XK%]0NMSOIQ*JT*C)4G))R%/M7Q!X ME^"'C7XA>+KCQCXKTJ7PGH]?\ TF15 ^54ZC.,%C@#.>>E>R_".Q7_ M (3*SFD@VQPVTL=LH'RJ0N H_P" [JUJRDU_$OZ!2C&6JA8]BFL@90-HQWJI MJ>AK= *S^5L&Q67G'4EHV>@I:GTQ^QU\")?"B?\)O=ZI'%;B3_2[*1KB-3T,;XS^O\Z^B(AM0 M#^=?383E]DN4^=Q+E[1\P^BBBNTY@HHHH **** "BBB@ HHHH CFD\I-V,\X MK/U#Q'I^CJK:A>VUBK'"M<2B,'\ZT)UW)BOSHVD@/=)T/\C3WURR3K=VZYZ9 ME7G]:_$_Q'X/M/!>HW]M93W2+#,Z#,[# !..]21%+2.6 49("DY.!G%: MUCHZ37;,HWKWP,U26EP./U>*YT72LH2\2PK'(.H'%?7G_!(BY\6V?Q)\4+;Z M5=R^#[ZR'VN^9"(([A&_=X8\%B"PP/Z<^:_ GP)!\2OBWX:\/7=NEQ97U_'Y M\4O(:($LX*CMM4\U^ROAKPUI7A728-*T?3[?3-.MU"Q6MK&(T0>P'%2!JQ-N M!XQCBGTU5"YQWIU !1110 4444 %%%% !112$OAQ8?#[3+H+JOB-_-O A^:.S0CCZN^T?137U]\1? MB/HGPR\':CXC\1WL=AIEE$9)'-_#EQ->3V$P\[3[D*@NH#PZ!P3@LI/)P.E?KSX&\;:9X\T"SUS2+I M9K*[C#J"/F1L+PGITA%MN!!NWZ&8CT_N M@] ?4US?QW_:^\0_'>=H&D&C^&PV8M,MG)#C/#2-@;S^GH*\6FU*%5+L2J+R M25/'Z52 W/#K!K]FW9"(<&OK;]@_1QJ7QAOKU@"NG:7(P/HSNB#]-U?'?AG4 M[6YDF\F>-GP/E4\XK[Z_X)UZ4'MO&>KE<[G@M%;_ '0S$?\ CPJ0/LOKVS13 ML44 +16-K_B?2?"M@]YK&I6VFVJC)ENI0@_6OGOQS_P4.^#/@F9X/[=N-:N4 M)!CTNV:3)_WCM4_G2 ^G:*^&KG_@J1X9N\C1_!U_<+T5]0O8[?/X(LAKFM3_ M ."GFLRW#0:7X*TLR;2X$FH3R\ 9)XA7WI@?H532P!^\!^-?EQK'_!53XC1, M1:^$?#Z#@AFBN9#@]./,%>@_M%_M&_$/PAI?@B\\.WVC6-UK6D)J5[_:4HC M=T4_NPS_ '06(YS0!^@P<>H_.G5^4_P%_;0^)NO_ !;\+>$_$&J66I6>I:FE ME-+%"&)!W1<^%=&N)0!O6#49HR,^S0MC\ZW-6_X*=6 M>G>'KV__ .$+A>:WA:54_MQ0K$#H280>Q['M18#[MHKX8\'_ /!47P]K]OI\ MU_X(U6PM[H*3+;WD<^P'O@A,X]*]@TK]MWX::C+''-=ZEI^[OBL?P[XETSQ9I,&I:/?0ZA8S+F.>!]RMZCV-:XH 6BBB@ HHHH **** "BB MB@ KYX_:_F5-*T 'INN/Y1U]!7&=@QZ\U\E?ME>.O#?]M^'/"<^O6L.N.DLL MEAYH\Y8FV8?'OL;'TKBQCM1D=.&_BHC_ &G9/.U?P[;1W$<3G1XV7>W4[FKY M[\!%M-^(EO%?_NYB6CSG(+D<8/H?ZUU'B3X?W6O6&DZKI-[]LM;F (@N)V+J M%. Y%.G"VYY5 M\2]4'BGQ!JB2S'[,&,$9!SA0<9'XBLCPY:&'5-,AM'$;PN&5W&1@=2?8C/YU M[9XQU/X;O/:6BQQR"S))D@BR)"3R"P^\>_\ 6N;OWTR?5;FXTJS2PANL/'%M MQ\@&!QV[G'O37NKE-5*\;-&1XW:[N;.#3M*,4DM^[1R21M\Z@ ' &..IY]JU M] \/_P!FZ=;V-E"9VLX5/EA@I;WRQ[G-9]]K]MH-U;32(LUY&VZ%2<,IY^;/ M]*[3XYII3E[L=Q/W8WZ(^ MF?V8OAD_A?P_+XBOFW:AJX+&(K_JH@S; #WR,'\17N: !<#H*JZ5:1V-E#;0 MIY<,2+&B>B@8'Z"KE?6T:?LX*)\U4FZDG)A1116YF%%%% !1110 4444 %%% M% "-TYK\^?@Y$(/V^+\@!=PU0'\B?Z5^@K]!DX%?F3J?Q-TOX.?M@:_XCU1R ML%NNJI'$H),LI1MB#'JV!GWH \ ^-.HM+XOUFSM &?[5(I<_=7DUY%_PAT%Q M-Y]].UX2A/EI\L8QVW=:Z36?$DNL:]>WU_#Y$UU=R39!+QC<2<#N.O>HS%)) M$K1L PC(_>/4 C/O2>&9U MT_3KF1;'^S&EC\M8'F\SS)2S'4Y.#ZCH*-,MS-> MB5CN$):) .>W//8]*:>E@/H#]B"34[3]H[PC_9>FG4(RDJW Q,K2% MNH.2,9X.2.M?K1$27/IBOB3_ ()C:!$FA>-M/OVD/ OP[MI?MNLQWEVF0+2Q(FE/MP<#ZDU\2_'S]H#5_CK(RB$:9X:M' MW067F9>1NSN1P3].EJ?M$^+$GN1)8>#["0 M_P!G:0XPTN>/.F']\CH.P^IKD;-C+8MY:!53G.![?ET[5GO,UO*H;!R,C%=5 MIUCY.B2%N-Z%LXKP)UI5>8^SH86&&M%(Y:,?,P]>O-7+6)#*!C:,?G4=K'NG M<[AAA_6MGX-?'?Q3 M\'KR:72)8KG3+AM\NFW1+Q,<8R",%6]P>>X-<[XA=!>3*3Q';D#ZXKFH)&) M)&WTR>G:NR-25.W*<%:A"O[LT?8UQ_P4$O39 6O@F$7/3=)JC%,\?PB'/?U_ M&NK^!G[7^H_$7QO%X=\0Z-9Z6]ZC&RN+*9B"X&2CAO4=#G\*^?/V4O!.@_$3 MXFSZ1X@M/M=L-/EG@C+E1Y@9!SCK\K-^55M(TX>!OV@=+LT41K8:T(4(/( D MP._IBO5IUYNTV]-CYVK@\.G*G'=*Y^F=LYD3)X/%2CO45O\ ='TJ6O86Q\OL M+1110 4444 %%%% !1110 4444 %-:@L/6N-^(WQ2T+X;V$<^JW#-/*2(+*V M7?/,?15_J>!0!^)O[2\VSX]>/AGIK-Q_Z%7G5@K7ETD40+,WH.@]:Z'X^:__ M ,)%\7O%^II"]NEYJD\HAD(WIENAQQFK/PVM+0VDKPAKJ\X\XJ,B,'HO^>M M'UG^P9\3F^&/Q./@SX2UCQ=I4NCZ[<6B&>"21 M6\S'W9..FX8.#SZT >JT4FX>HHW ]Q0 M%)D>M!('4T +1110 4444 %%%% M!1110 4444 1SMMCR#CW%?(?P6_:P\4?%;]L+QGX!*VD'A'1[*X-JBQ_OI9( MI43S"_\ M$MQV&*^O9>%S7X+K\;_ !)\)/V@]<\3>&=16PUA?W8:0!T9)%^= M64\$'/Y@'J* /NC]N3]L*1I[OX:>![R07T4QCU>_MVYV@#]S&P.1R3N/^SCN M:^$=6UJSU2?[#,\S7EL-KA2W+'DY8?6J UNTL1)?VVH6VHZ_<%FO?.D -R[$ MDG<>0^$VFW=QXMO;R^\M6NY 3%&V[;D],_0 4 =+<:$]CI%L5AEGO;A?W M-L@.]L+TQ]<_A6!X8FDU>:59H+FP8DQJTB;5'-5D2YC5HURN]1@E#T8>M?J/_P3IT\)\!3J@.1J6HSRAL8R%(0?^@U^>/CN MPBN-/M)-N)1(J9QR5/!%?H!_P3K^(/A_4O@O9>#[6[1-:T4RB:U=L2/&SEED M [CG!QZ4F@/K.BDW#U%%2,_.C]ME;C4/'^IQ:A>2W%M$%6"V#D1QKM!Z=R>? M0EV./,PG0CE3CC ]C['Z5+FS/ZU4E\16LLTC6]O>P MLP*D_:^2I !' '4\THC7:O<=*^8)=+L-4W"2*<9]9 P_4?YXKWGXC^+_"GQ M\T?1F\9^(8O"TVC6B6%DFDP332/ JJ/WVY<%_E_A.*3 \A_9UAN= ^/_ ,.( MIH3$]KXA@\R$MD[B& YZ#.>WI78?M/:E)-\9O&ZV:P1W3:@2&D9G"''((![@ M_G6O\,O#/PG^&GB+2_$J?$2[U:ZTRY6\AM+G3WC621<[0Q"G ^@KS[XD>-8/ M'7Q%U_Q##:""'4+IIE0R9;';. *$!R%XUWY6V!D6]P/FCOM(U2[98-5N[42,>9(D. >,$[_ $]ATIH#ZA_X)O?$75M-^)VO>!)+B6YT M6YM3>0"0D^7(A7[N2<95CGUP*_2,=!7QC^P-\(M(\*P:]XC,CWFN7*I$D\F, M+"?F.W'=BHR?0?6OLX=!4L!:***0!1110 4444 %%%% $5QRGXU\0?MD_LZ> M$[;QJGQ7>\U,^*;Z:"TCL_.0VBB.)E+[2N[.TC^+&>W-?<$WW._X5\2?MA^+ MFU_XA6VAQ-_HNC6X)4<[II,%OR4(/SKBQD^2BUW.K#*]5>1X:FI7FG) (;B1 M!#\RH&XSG/\ D5I^/]4EU&\L=1B,RQ75JNW#\(02''Y_G6/?QA2_IG'O4>H: MT&\+PZ?*A\V"-,^0Q(W''L,U MT_P9@U.VT2]EDO&UE5-RA[21Y&+ MKNWLT/&:?117T)Y04444 %%%% !1110 4444 %%%% $<_P!S\:_&W]JR2&X^ M/WC@QN988K^01[L!5)(W88<]?Y5^R%W(L4#.QPJ@DGZ"OP^^)^J_VY\1_$]^ M'\SS[VX<2 Y)'FM@[NG2@#D+R,>7)N'RF08YVCG'0]ZEF8H!V W C&T$9_N] M^M$PR^U>"9X\E>I^I/'Y42 ,'5>$.\$+T_$GD4DP(Y26&&(.%7A@=O\ WR.: M?(K6MU9LDC@S7&UD<@J1CJ /ZU 7+VRR# 4QJ>#@?]]=34\F7U'38N>9'/@I<:G=(T9UK4'N8@P )B55C4X'')5C^(KZJK@O@;X M;'A+X3>$=*VJIMM-A! &,$J"?U-=[0 4444 %%%% !1110 4AI:0T 8WB.]; M2M'OKY8S*;>W>78/XMHSC]*_-?Q1\3_''Q=UB0W&JZA.)W;RM,L2RQHN,A54 M#G'4D^AK],=2MQ>65Q W*2QE&'L017YL^ M2E^&GQ[L1(I"V6L&UD0G;A'9H MSQCT;-<.)PKTK]J'PA_PB7QNUU5&VWOV%_"0!C:XY ^C!A^5<#H'B*/0E99 MK7SBQR"I)&#D]Z^>K7C+E9]GAI0E24XG'WME<>=YQ1E '3&:[&&K@9-016KF(LP('I6QX90K>C)^ZI?.*Y^IU/8KZ[()+N[8]6 M8KR/?_ZU9B0B-"1CH.V*MZJXED)#!MTN< 5%$N-P/3M6KZ'.OB9ZW^R7JQTG MX[^&69]J7#26YQWW1L /SQ71_'VT/AO]HN6555(VU*"Y))YPVUN/UKQ[PCK- MWX4\0V&L:;(B7UC,LT+2A1FN10\SQL13E&LZKV:/U(TZ3SK6*0G)=%;KZBK0[U0T M)632[16&&$* @]0=HS6A7T*V/B'HV%%%%4(**** "BBB@ HHHH *9*-T9'4' MBGTUSA230!^8?QB_X*;^.;#QKK^C>$=,T33]*M+N6TM[F\MY)[E@CE#(?W@0 M$D$@;3@$=:\CL?VK+[Q)K#?VS)?:QXDU8&%+ARBJAVD@#'W1Q@8'&.+62%D1-9NE3(QD>8>E+X-\%VU_&FIW:,\H.M(#G]>, M7C/Q)J-SIEJ;2ZN9FECTWS3/Y ]&DQ\V,=??->B6.E7>AZ7#!I"6=O&WS3KY M9R[XZ[LY]A6MIVF6FEH\=K;10#'2) ,_E3RH5"00 3BF W2_$/_ CVH02I MIQO9EMWB@5@#YV?YUTGA;]MWXC_"@M8>&]3\JSB?#V&J6PN(5.>=BE MMR#/8,*Y*VB,MTK=0%X^I/\ ]:N*U_0'F:Y/F(S)(["8MCC)ZT ?2OC+_@JQ M\2K3P'I=O8:5H]CXD>[;SM5%LTEO+;[>$6%G^5\D$G)&!QC-85O_ ,%"?CIK M<43+XIL;8L@_X]]+@4=^?F5OYCI7S5KGPU\4>*? ]O?Z)X?U'5H;.["S-8VS MS>671=N0H)Q\K<^U7-"\*>*=#LK:2]\-:U"NP$^9I\JXY_W: /J.W_; ^-%] M()9?'URA;'RPV5LJC\/+KT_]B[]LOXH?%/XT3^%/%VK6NJ:;%=O9#%E'%(3Y M;.K[E Y^7W'-?(>F7DD159H+B%^,H\#J1^!%>S?\$^O">L?\-)3:B^E7L5E] MM-U]HEMG2/8(9!NW$8ZL!^- 'ZZ1#$8%/IJ$%1CI[TZ@ HHHH **** "BBB@ M I"<4M(W2@".<_NS@C-?B]^V=^SOI?PE^/\ J&IVVLV>L:5K6^]CTN$@S6"* M?F20#C:#PIZD<=J_3[]J_P"*VH_"+X/ZAJ^E0N;^XD2SBN0N1:E\CS3[@=,\ M9QFORC\8RR7,XGFS/).A$CS$NTA[[B>3GF@#BD\%>'YCN:SB21@'/XTP-SQ62EHQ/)QBN,TN=5N1N(!J[XB\R7<(Y;V8#^%)B1^IK@O"D M&LZ<]T=8-S*S7#-"T;#Y8OX0<=ZT1-ST;Q7<+_8V[.[RSOS] 37/_!KQ3JWA MGQI'J^D7LMA?62AXYHFQ@^A]0>XI^O3Q2>&+MXV=WVC[[$GJ,]?K67\-8MJ: MI<9QP%'Y5+!'Z\?L^?'"X^+WPYM]:O=/>UU"*5K6Y\L$QR2*JL73'0$..#T. M>V**R?V+= _LSX!:.Y&UKN>:X.>^6VC]%%%*P7-;XW?LD> _CLHEUNTFL]20 M'R]0L)3'*F?T/K7Q_P"-/^"3/B"WDFE\(_$>*:/JEOJ]H0?H67/YXK]*Z0C( M(J2C\@]2_P""M 'XH7?[.OQ0T0L9/ NLR@=HH"_\ *N7UGX<>/+8,DG@# MQ,"?[NG2$?H*_=WHVQ> _$ASZZ;)C]17[S>2F/NC\J7RE_NC\J+@?B+IG[.'Q0UI@8O ^L1 M+Q_K[9(J_UK]FO+!__ %4>4.,<#THN!^/> MF_\ !/+X\:S*JC2M'TB+O)>W@)_$"O:/AM_P2LUQ)X;GQKX[A2,$,]KH]OS] M [CCZBOT<\L?3Z4JH /6BX'%_#3X3:)\*/#D&C:&CBWB4+YDSEW;'.23[DUV MM+12 **** "BBB@ HHHH **** (;J58('DI'Q)\0-7U5\. M+FXD-+V/3O">KW,C;$BM9&+>GRFOSH14N9Q&C!99'"D9Y^M M>'F4[VMC9;1+&"LCY/+9!Z]SUK1\"QVFG7.H.7$CQ*IED_'H*\"4[PT/3]I M%:%_PGH:>'[*.QBE:6*/(+N,;CGK[5T-O&OVDA1@)QM4<5C1WBM<2LK'R]Q8 M'ID>M=S\(M'7Q)XPTN!E+(TGG2 ]U7+'^6/QKG4'4G&"ZG*IV3;/H_X4^&!X M8\*6T;(%NKG]_-DT#?(-1N"1PJG+;N@Y[]J / M,KF81S1E^0LJ$Y7?C@_PCI20W=O<3A5E5B78?,VYA]#V_&AGRZ;C\H4,,G Z M8XQR>O>G%5\\;@ WF$*2 N?H!U_&D!172BS#R[JYB)3^%P3U]2-M=G\,O![^ M(/B-X=T[SYKN6[U*VME! 8 /(JG(QZ'J*YVVY8*1R(V_=L/_ &2OH+]B'PN/ M%W[2?A<,F^'3?,U)]W(7RXVV$ =/G9.M,#]9[:!;>..) B+M4#L!P*GIH7! MIU !1110 4444 %%%% !2'I2TAZ&@"NPXZX]Z_.C]K/P\_@_X[ZE>V\;(+^* M*_ADZ#?W/_?2M7Z,E"V.,U\M_MN_"^]\3^'M,\2Z99/I1BVM;._NDRS+ B2.B%CDE4Z*2>N!2:QHV MIZ+$8]0TZZT\-\H-S T>3TP,XS7@8F$JDN:Q]A@W"C#V;D8FG%5OD+-][(_A M]/<'],5KVD;1([?\LW/.:PHV-M-"=VT\^J]OUKH(6+:?$<Z>A' M<5SYL1V#BM'1E\I9I,XQ&:IK&T2; /QJS&IM]-N6SG*XKEC\1TF#<'+1=R27 MQUZUV_PO^%6K_%GQ7#HNCA(N ]Q=2+^[@3^\?4^@[UQTL>UV."HCC4$YZ?YS M7WY^Q=\._P#A%OAPVMW$3)?:V_G M]Y8APN/8\G\:];#T55EJ>%C<4\-2?+N MS-\/?L)^$K*.-M0U35K^4#Y@CK%&?; 7./QKTWP9^SIX$\ ZA'?Z5H2?VE"3 MY=YE/VD'H:]Z-&$-D?&3Q-:HO>D-MXRD8SP3V MJ6@#%+70:U_ MVT;B'6_VM?&L-L=T:7L5OD= RQH''YYK+D?:&5>% VC%*P%>],4B%95RB@N< M,1[#I^-94:C7;.6;?*+3E8H8W*EE'!O.>?;/8"BP!9ZJ-#\17%C)J&VU54:)+F0.R MY)R-QY(^M:$FKIX=N;+49=,M-;MTG5FLK[<8+A0P)1]I!*MC!QV)K7\%^&3X M@N+;3HHTEDN7R[.H?8O4LV?;-+\5+'2-/\46.D7%U_9&BP[(6N%C,@A3(4N5 M'+8!+$#DX]Z8'W;_ ,$U+*(>&O%3QPQP(\L!\J,'8ORN=JY).!G SDU]I-IL M+8!BC8#U0'_/_P!>OS\_8.^.'@7X5_#'Q%JWBOQ)::-ITVJ"QL[JZ#)]J*(2 M"JN7%/$D&I:BH)-ML=&X&2.0.1Z=: /68UV(%ZX]*=38W\Q WK3J "BBB@ HHHH M **** "D(R*6B@#E/B?X$LOB5X!USPSJ(!MM2MG@WD9,;$?*P]PV#^%?C9XM MTF\T(7ND:@NW4-)O'LYQ_M(Q4_RK]NY/N_XU^37[7GAO_A'?CWXXM%7:EXT> MH1Y[[U!/ZYH \!MW,CK&.N\?SKLIV+>(74'_ %<,4 /H6W'_ -EKE-+0#4(2 MQS\P/ZU>UK4K^SO]6FL88;F\BGC*)*< @J1_0U6P'7:CY>P(O ':NA)UNNH5T.[;OLP>/< M5%\/HBF@N0O,TV/PS6#>ZWKBZ6?MUK:16TZLA,;$N"!G^>*[CX$K,KM9=/B8CW89_K178:'IXTS1K"T"C$$ M$<7_ 'RH']**BXC2HHHI%A1110 4444 %%%% !1110 4444 %%%% !1110 4 M444 %%%% !2$X%+37P5I >2_M*^*(]'^'=QIRR@7FI.L,: \E007/TQQ^-?( M^G^'H=0UJU3)22)3,73@\=*^Q_C!\(5^)UO8NE\;"[LBWE.R;T8-C((Z]A7C M;_LZ^,=*U0W$*V%_$J%5:*0HS?@1Q7SN84JTVY*-SUL-.$86O9GS1XIT.YAU M>Z%QNFC25BI!VGD]AVEO)K. MD7%O;*Q#2PC?VX&XH^M>*XR44I*QW M14)QY8=2C=>)[RSE,RN'MF(C\@ =#P3]:^K/V3+>'66U+6HR'CA1;5/9F^9O MQ 51^-?,G@_X;ZCXNT.ZU&64&2V8F"VC3F7@/\@$@#],AAR/<5^MS*'&& (]#7(_$KX7>%OBOX?.B^*M&MM8L" M=Z+.N6B;^^C?>1O<$4 ?AJ)-DC,."(%RR\'EO[W0\"G(Q61]HPID^;:, \=\ M_P!*^ZOBS_P3+G6]EN?AYKT7V9U'_$NULEBA&(U_.OE;_ (4+\3K2ZCAF^'OBE;AF95_XE)0H5%.2>]6*:PR.WXT 4191H:+K%E'=V=W&T3 C)7/&5/4$>HKJC&3U(IIBW#G!J7%/1H MI2E%W3/R'^)OPYU;X;>,IM&U:&5&@F813O'M6=,G#J>AR*D%MLLK=2,G;G(& M.^(OV.?A[K4KS6EM>:)(W\- MA<%8@?\ <;('T%>-6P$I? SZ;#YQ&*2J(_/QCO8Y[=<=J?,?+TB3)P'<#YN, M_3\J^S+[]@[2)D<6_BF^1ST,L$;8]NU1Z-^PI81GRM5\3W,]J,8CLX!"QY[G M)S7%'+JJ:/3>U>FK%@YZU[N'H>Q6I\KC<5]9G=;$@_E2T45UGG!1110 M4444 %%%% !1110 4444 %0W=REG:S3RL$BB0N['H !DG\JE)P*\L_:>\7-X M(_9]\?:N&V21:1/'$V?XY%\M]D/)>XE M,A/YU[)HO[,_COXQZ@XC\,^(;6")W(N6TN79Q(VT98*.5((.<8KLK'_@GI\7 M=2OH[>U\,S06V=OVK4)XH%QZXW,WZ4F@/ECQQ.\>C:0I8JBC=M'0<]?TKIO" MUXES!;[P" B]1FOTH?\ X)6^#?$_PST'2M?UF]LO$]J3)>:IIAW))GD1!'XV MJ?XL GG-9A_X))>'+.WC2P\?ZM&T:XW26<;9/KP1^5" ^-=*E5ECP>GXUZ+_ M ,$Z4,/[2][&HP'U63 [8,#U]&0?\$P[BU8>1\128QVETT;OQP]>E?L[_L&: M3\ ?'/UI@?6B?=%.ID1)C!/'UI] ! M1110 4444 %%%% !1110 R490CK7YX?\%%/#?V#XJ^'-9"_)J>FO;,P'5D)Q M^AK]$2,C!KY/_P""BG@.XU_X4Z7XBLK=IY= OEEG\M M?O9[6*64*OSNN3W/]15,#GK>ZM[@N4D#97I5KR$%BO'#.3CZ?_KHU!42_G$: MJB@X 48IT[D06RX[%C^)IH#!\;/LM+*'&"4)Q]37N/[.N@C6_BMX%TTKE6O( M-P]@X8_HIKPKQ9F?7+.W!R!Y:_UKZZ_8=T3^V/V@M*D*EH]-M9KEO1<1%!^L M@I]"7N?IN-V.**!]2**BY1)1110 4444 %%%% !1110 4444 %%%% !1110 M4444 %%%% !1110 4F :6B@!"H/4"DV+G.!GZ4ZB@".2".9&22-71N"K#(-< MWX@^'/AKQ) +?4-%M)XAC"B/81]"N#744@.:B4(R^)%*4ELSC_#/PO\ "_A& M)(]*TB&!5?S06+2$-Z@L3R*[#:H[#\J#Q11&,8Z)"@HVCT'Y4M% M !1110 4444 %%%% !1110 4444 %%%% !1110 F*,#TI:* $*@]0#1M'H*6 MB@!-H]!^5+110 4444 %%%% !1110 4444 %%%% !1110 A. :^6_P#@HZUX MO[*OB'[(WR"ZM?/]X_,&?UVU]2&N;\=>"M&^(_A+4O#WB&R34-&OXO+N(') M9E 'X8>#HS#HS/T,LI_("MQR9 HQP2!GZ<_TK[\\1_P#!,7PQ M,7'ACQ7JFAP9)2TN8H[E$]L\$_G7GVJ?\$SO&UF[G3_&6BWP&=JW%K)$3]2" M1^E 'R&3D\]Z[?X=:'_PDWC7PWHJH6^VWT$##_9+C=^F:]0U7]@3XQ:3(?)T M_1M34*]+@T?3-)=I=CW<4[S2;2 M%"B-F )R2<4 ?H%;P)!!'&H&$4*.*DP/2D084#VIU #=BD_='Y4NUGK7Z6T4 ?CWKG[+' MQ;TJ>5IO 6L3+DG=:QK./_(9-T47 ;M'I13J*0'__V0$! end EX-101.SCH 12 cdre-20221231.xsd EX-101.SCH 00100 - Statement - Consolidated Balance Sheets link:presentationLink link:calculationLink link:definitionLink 00200 - Statement - Consolidated Statements of Operations and Comprehensive Income link:presentationLink link:calculationLink link:definitionLink 00201 - Statement - Consolidated Statements of Operations and Comprehensive Income link:presentationLink link:calculationLink link:definitionLink 00300 - Statement - Consolidated Statements of Cash Flows link:presentationLink link:calculationLink link:definitionLink 40201 - Disclosure - ACQUISITIONS - Summary - Radar (Details) link:presentationLink link:calculationLink link:definitionLink 40202 - Disclosure - ACQUISITIONS - Purchase Price Consideration and Fair Value - Radar (Details) link:presentationLink link:calculationLink link:definitionLink 40701 - Disclosure - INVENTORIES (Details) link:presentationLink link:calculationLink link:definitionLink 40801 - Disclosure - PROPERTY AND EQUIPMENT (Details) link:presentationLink link:calculationLink link:definitionLink 40903 - Disclosure - GOODWILL AND OTHER INTANGIBLES - Summary of intangible assets (Details) link:presentationLink link:calculationLink link:definitionLink 40905 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Amortization expense for definite lived intangible assets (Details) link:presentationLink link:calculationLink link:definitionLink 41001 - Disclosure - ACCRUED LIABILITIES (Details) link:presentationLink link:calculationLink link:definitionLink 41101 - Disclosure - DEBT - Schedule of company's debt (Details) link:presentationLink link:calculationLink link:definitionLink 41102 - Disclosure - DEBT - Summary of aggregate principal payment of long-term debt (Details) link:presentationLink link:calculationLink link:definitionLink 41604 - Disclosure - INCOME TAXES - Deferred Income taxes (Details) link:presentationLink link:calculationLink link:definitionLink 41701 - Disclosure - LEASES - Schedule of operating assets and liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 41702 - Disclosure - LEASES - Components of lease expense (Details) link:presentationLink link:calculationLink link:definitionLink 41704 - Disclosure - LEASES - Future minimum lease payments under operating leases (Details) link:presentationLink link:calculationLink link:definitionLink 00400 - Statement - Consolidated Statements of Shareholders Equity link:presentationLink link:calculationLink link:definitionLink 30203 - Disclosure - ACQUISITIONS (Tables) link:presentationLink link:calculationLink link:definitionLink 31303 - Disclosure - STOCK-BASED COMPENSATION (Tables) link:presentationLink link:calculationLink link:definitionLink 40101 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 40102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES - Property and Equipment (Details) link:presentationLink link:calculationLink link:definitionLink 40104 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES - Weighted average shares outstanding and net income (loss) per share (Details) link:presentationLink link:calculationLink link:definitionLink 40203 - Disclosure - ACQUISITIONS - Intangible Assets - Radar (Details) link:presentationLink link:calculationLink link:definitionLink 40204 - Disclosure - ACQUISITIONS - Summary - Cyalume (Details) link:presentationLink link:calculationLink link:definitionLink 40205 - Disclosure - ACQUISITIONS - Purchase Price Consideration and Fair Value - Cyalume (Details) link:presentationLink link:calculationLink link:definitionLink 40206 - Disclosure - ACQUISITIONS - Intangible Assets - Cyalume (Details) link:presentationLink link:calculationLink link:definitionLink 40401 - Disclosure - DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE (Details) link:presentationLink link:calculationLink link:definitionLink 40501 - Disclosure - REVENUE RECOGNITION - Net sales by channel and geography (Details) link:presentationLink link:calculationLink link:definitionLink 40502 - Disclosure - REVENUE RECOGNITION - Includes all Distribution sales (Details) link:presentationLink link:calculationLink link:definitionLink 40504 - Disclosure - REVENUE RECOGNITION - Additional information (Details) link:presentationLink link:calculationLink link:definitionLink 40504 - Disclosure - REVENUE RECOGNITION - Additional information Default (Details) link:presentationLink link:calculationLink link:definitionLink 40601 - Disclosure - FAIR VALUE MEASUREMENTS (Details) link:presentationLink link:calculationLink link:definitionLink 40901 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Summary of changes in goodwill (Details) link:presentationLink link:calculationLink link:definitionLink 40903 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Summary of intangible assets (Details) link:presentationLink link:calculationLink link:definitionLink 41103 - Disclosure - DEBT - New Credit Agreement (Details) link:presentationLink link:calculationLink link:definitionLink 41104 - Disclosure - DEBT - Canadian Credit Facility (Details) link:presentationLink link:calculationLink link:definitionLink 41105 - Disclosure - DEBT - Short-Term Debt (Details) link:presentationLink link:calculationLink link:definitionLink 41106 - Disclosure - DEBT - Fair Value of Debt (Details) link:presentationLink link:calculationLink link:definitionLink 41107 - Disclosure - DEBT - Schedule of interest rate swaps (Details) link:presentationLink link:calculationLink link:definitionLink 41108 - Disclosure - DEBT - Schedule of fair value swap agreement (Details) link:presentationLink link:calculationLink link:definitionLink 41201 - Disclosure - SHAREHOLDERS EQUITY (Details) link:presentationLink link:calculationLink link:definitionLink 41301 - Disclosure - STOCK-BASED COMPENSATION - Executive Compensation Plan (Details) link:presentationLink link:calculationLink link:definitionLink 41302 - Disclosure - STOCK-BASED COMPENSATION - Summary of phantom restricted share plan, changes in outstanding options and restricted stock awards (Details) link:presentationLink link:calculationLink link:definitionLink 41303 - Disclosure - STOCK-BASED COMPENSATION - Stock Incentive Plan (Details) link:presentationLink link:calculationLink link:definitionLink 41304 - Disclosure - STOCK-BASED COMPENSATION - Stock option (Details) link:presentationLink link:calculationLink link:definitionLink 41606 - Disclosure - INCOME TAXES - Operating loss Carryforwards (Details) link:presentationLink link:calculationLink link:definitionLink 41801 - Disclosure - RELATED PARTY TRANSACTIONS (Details) link:presentationLink link:calculationLink link:definitionLink 42002 - Disclosure - SEGMENT DATA - asset information or operating expenses by segment (Details) link:presentationLink link:calculationLink link:definitionLink 00090 - Document - Document and Entity Information link:presentationLink link:calculationLink link:definitionLink 00105 - Statement - Consolidated Balance Sheets (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 00205 - Statement - Consolidated Statements of Operations and Comprehensive Income (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 10101 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES link:presentationLink link:calculationLink link:definitionLink 10201 - Disclosure - ACQUISITIONS link:presentationLink link:calculationLink link:definitionLink 10301 - Disclosure - ACCOUNTS RECEIVABLE, NET link:presentationLink link:calculationLink link:definitionLink 10401 - Disclosure - DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE link:presentationLink link:calculationLink link:definitionLink 10501 - Disclosure - REVENUE RECOGNITION link:presentationLink link:calculationLink link:definitionLink 10601 - Disclosure - FAIR VALUE MEASUREMENTS link:presentationLink link:calculationLink link:definitionLink 10701 - Disclosure - INVENTORIES link:presentationLink link:calculationLink link:definitionLink 10801 - Disclosure - PROPERTY AND EQUIPMENT link:presentationLink link:calculationLink link:definitionLink 10901 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS link:presentationLink link:calculationLink link:definitionLink 11001 - Disclosure - ACCRUED LIABILITIES link:presentationLink link:calculationLink link:definitionLink 11101 - Disclosure - DEBT link:presentationLink link:calculationLink link:definitionLink 11201 - Disclosure - SHAREHOLDERS' EQUITY link:presentationLink link:calculationLink link:definitionLink 11301 - Disclosure - STOCK-BASED COMPENSATION link:presentationLink link:calculationLink link:definitionLink 11401 - Disclosure - COMPENSATION AND DEFINED CONTRIBUTION PLANS link:presentationLink link:calculationLink link:definitionLink 11501 - Disclosure - COMMITMENTS AND CONTINGENCIES link:presentationLink link:calculationLink link:definitionLink 11601 - Disclosure - INCOME TAXES link:presentationLink link:calculationLink link:definitionLink 11701 - Disclosure - LEASES link:presentationLink link:calculationLink link:definitionLink 11801 - Disclosure - RELATED PARTY TRANSACTIONS link:presentationLink link:calculationLink link:definitionLink 11901 - Disclosure - RESTRUCTURING link:presentationLink link:calculationLink link:definitionLink 12001 - Disclosure - SEGMENT DATA link:presentationLink link:calculationLink link:definitionLink 20102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Policies) link:presentationLink link:calculationLink link:definitionLink 30103 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Tables) link:presentationLink link:calculationLink link:definitionLink 30303 - Disclosure - ACCOUNTS RECEIVABLE, NET (Tables) link:presentationLink link:calculationLink link:definitionLink 30503 - Disclosure - REVENUE RECOGNITION (Tables) link:presentationLink link:calculationLink link:definitionLink 30603 - Disclosure - FAIR VALUE MEASUREMENTS (Tables) link:presentationLink link:calculationLink link:definitionLink 30703 - Disclosure - INVENTORIES (Tables) link:presentationLink link:calculationLink link:definitionLink 30803 - Disclosure - PROPERTY AND EQUIPMENT (Tables) link:presentationLink link:calculationLink link:definitionLink 30903 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS (Tables) link:presentationLink link:calculationLink link:definitionLink 31003 - Disclosure - ACCRUED LIABILITIES (Tables) link:presentationLink link:calculationLink link:definitionLink 31103 - Disclosure - DEBT (Tables) link:presentationLink link:calculationLink link:definitionLink 31603 - Disclosure - INCOME TAXES (Tables) link:presentationLink link:calculationLink link:definitionLink 31703 - Disclosure - LEASES (Tables) link:presentationLink link:calculationLink link:definitionLink 32003 - Disclosure - SEGMENT DATA (Tables) link:presentationLink link:calculationLink link:definitionLink 40103 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES - Accrued warranties and related costs (Details) link:presentationLink link:calculationLink link:definitionLink 40301 - Disclosure - ACCOUNTS RECEIVABLE, NET (Details) link:presentationLink link:calculationLink link:definitionLink 40503 - Disclosure - REVENUE RECOGNITION - Contract Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 40602 - Disclosure - FAIR VALUE MEASUREMENTS - Transfers of assets or liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 40902 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Impairment of Goodwill (Details) link:presentationLink link:calculationLink link:definitionLink 40904 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Additional information (Details) link:presentationLink link:calculationLink link:definitionLink 41401 - Disclosure - COMPENSATION AND DEFINED CONTRIBUTION PLANS (Details) link:presentationLink link:calculationLink link:definitionLink 41501 - Disclosure - COMMITMENTS AND CONTINGENCIES - Legal Proceedings (Details) link:presentationLink link:calculationLink link:definitionLink 41601 - Disclosure - INCOME TAXES - Consolidated income from continuing operations before provision for income taxes (Details) link:presentationLink link:calculationLink link:definitionLink 41602 - Disclosure - INCOME TAXES - Benefit for income taxes (Details) link:presentationLink link:calculationLink link:definitionLink 41603 - Disclosure - INCOME TAXES - Reconciliation of the statutory federal income tax rate to the effective rate reported in the Company's consolidated financial statements (Details) link:presentationLink link:calculationLink link:definitionLink 41605 - Disclosure - INCOME TAXES - Reconciliation of Unrecognized Tax Benefits (Details) link:presentationLink link:calculationLink link:definitionLink 41703 - Disclosure - LEASES - Weighted average remaining lease term and discount rate (Details) link:presentationLink link:calculationLink link:definitionLink 41705 - Disclosure - LEASES - Future minimum lease payments under non-cancelable operating leases (Details) link:presentationLink link:calculationLink link:definitionLink 41706 - Disclosure - LEASES - Supplemental cash flow information related to leases (Details) link:presentationLink link:calculationLink link:definitionLink 41901 - Disclosure - RESTRUCTURING - Restructuring Expenses (Details) link:presentationLink link:calculationLink link:definitionLink 42001 - Disclosure - SEGMENT DATA (Details) link:presentationLink link:calculationLink link:definitionLink 99900 - Disclosure - Standard And Custom Axis Domain Defaults link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 13 cdre-20221231_cal.xml EX-101.CAL EX-101.DEF 14 cdre-20221231_def.xml EX-101.DEF EX-101.LAB 15 cdre-20221231_lab.xml EX-101.LAB EX-101.PRE 16 cdre-20221231_pre.xml EX-101.PRE XML 17 R1.htm IDEA: XBRL DOCUMENT v3.22.4
Document and Entity Information - USD ($)
12 Months Ended
Dec. 31, 2022
Mar. 10, 2023
Jun. 30, 2022
Document and Entity Information [Abstract]      
Document Type 10-K    
Document Annual Report true    
Document Period End Date Dec. 31, 2022    
Document Transition Report false    
Entity File Number 001-40698    
Entity Registrant Name CADRE HOLDINGS, INC.    
Entity Incorporation, State or Country Code DE    
Entity Tax Identification Number 38-3873146    
Entity Address, Address Line One 13386 International Parkway    
Entity Address, City or Town Jacksonville    
Entity Address State Or Province FL    
Entity Address, Postal Zip Code 32218    
City Area Code 904    
Local Phone Number 741-5400    
Title of 12(b) Security Common Stock, $0.0001 Par Value per Share    
Trading Symbol CDRE    
Security Exchange Name NYSE    
Entity Well-known Seasoned Issuer No    
Entity Voluntary Filers No    
Entity Current Reporting Status Yes    
Entity Interactive Data Current Yes    
Entity Filer Category Non-accelerated Filer    
Entity Small Business true    
Entity Emerging Growth Company true    
Entity Ex Transition Period false    
ICFR Auditor Attestation Flag false    
Entity Shell Company false    
Entity Public Float     $ 366,489,414
Entity Common Stock, Shares Outstanding   37,332,271  
Auditor Firm ID 185    
Auditor Name KPMG LLP    
Auditor Location Jacksonville, Florida    
Entity Central Index Key 0001860543    
Current Fiscal Year End Date --12-31    
Document Fiscal Year Focus 2022    
Document Fiscal Period Focus FY    
Amendment Flag false    
XML 18 R2.htm IDEA: XBRL DOCUMENT v3.22.4
Consolidated Balance Sheets - USD ($)
$ in Thousands
Dec. 31, 2022
Dec. 31, 2021
Current assets    
Cash and cash equivalents $ 45,286 $ 33,857
Accounts receivable, net 64,557 48,344
Inventories 70,273 63,978
Prepaid expenses 10,091 10,353
Other current assets 6,811 3,171
Assets held for sale   278
Total current assets 197,018 159,981
Property and equipment, net 45,285 33,053
Operating lease assets 8,489  
Deferred tax assets, net 2,255 7,059
Intangible assets, net 50,695 42,415
Goodwill 81,576 66,262
Other assets 6,634 3,026
Total assets 391,952 311,796
Current liabilities    
Accounts payable 23,406 19,328
Accrued liabilities 38,720 40,736
Income tax payable 4,584 1,255
Liabilities held for sale   128
Current portion of long-term debt 12,211 13,174
Total current liabilities 78,921 74,621
Long-term debt 137,476 146,516
Long-term operating lease liabilities 4,965  
Deferred tax liabilities 3,508 1,297
Other liabilities 1,192 722
Total liabilities 226,062 223,156
Commitments and contingencies (Note 15)
Mezzanine equity    
Preferred stock ($0.0001 par value, 10,000,000 shares authorized, no shares issued and outstanding as of December 31, 2022 and December 31, 2021)
Shareholders' equity    
Common stock ($0.0001 par value, 190,000,000 shares authorized, 37,332,271 and 34,383,350 shares issued and outstanding as of December 31, 2022 and December 31, 2021, respectively) 4 3
Additional paid-in capital 206,540 127,606
Accumulated other comprehensive income (loss) 2,087 (1,917)
Accumulated deficit (42,741) (37,052)
Total shareholders' equity 165,890 88,640
Total liabilities, mezzanine equity and shareholders' equity $ 391,952 $ 311,796
XML 19 R3.htm IDEA: XBRL DOCUMENT v3.22.4
Consolidated Balance Sheets (Parenthetical) - $ / shares
Dec. 31, 2022
Dec. 31, 2021
Consolidated Balance Sheets    
Preferred stock, par value $ 0.0001 $ 0.0001
Preferred stock, shares authorized 10,000,000 10,000,000
Preferred stock, shares issued 0 0
Preferred stock, shares outstanding 0 0
Common stock, par value $ 0.0001 $ 0.0001
Common stock, shares authorized 190,000,000 190,000,000
Common stock, shares issued 37,332,271 34,383,350
Common stock, shares outstanding 37,332,271 34,383,350
XML 20 R4.htm IDEA: XBRL DOCUMENT v3.22.4
Consolidated Statements of Operations and Comprehensive Income - USD ($)
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Consolidated Statements of Operations and Comprehensive Income    
Net sales $ 457,837,000 $ 427,288,000
Cost of goods sold 282,159,000 256,598,000
Gross profit 175,678,000 170,690,000
Operating expenses    
Selling, general and administrative 153,288,000 114,962,000
Restructuring and transaction costs 4,355,000 3,430,000
Related party expense 1,478,000 579,000
Other general income (159,000)  
Total operating expenses 158,962,000 118,971,000
Operating income 16,716,000 51,719,000
Other expense    
Interest expense (6,206,000) (16,425,000)
Loss on extinguishment of debt   (15,155,000)
Other expense, net (1,137,000) (947,000)
Total other expense, net (7,343,000) (32,527,000)
Income before provision for income taxes 9,373,000 19,192,000
Provision for income taxes (3,553,000) (6,531,000)
Net income $ 5,820,000 $ 12,661,000
Net income per share:    
Basic $ 0.16 $ 0.44
Diluted $ 0.16 $ 0.44
Weighted average shares outstanding:    
Basic 36,109,844 28,598,692
Diluted 36,122,374 28,598,692
Net income $ 5,820,000 $ 12,661,000
Other comprehensive income:    
Unrealized holding gains, net of tax(1) 6,444,000 767,000
Reclassification adjustments for gains included in net loss, net of tax(2) (618,000) 146,000
Total unrealized gains on interest rate swaps, net of tax 5,826,000 913,000
Foreign currency translation adjustments, net of tax(3) (1,822,000) 30,000
Other comprehensive income 4,004,000 943,000
Comprehensive income, net of tax $ 9,824,000 $ 13,604,000
XML 21 R5.htm IDEA: XBRL DOCUMENT v3.22.4
Consolidated Statements of Operations and Comprehensive Income (Parenthetical) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Consolidated Statements of Operations and Comprehensive Income    
Unrealized holding gains, net of tax expense $ 2,148 $ 256
Reclassification adjustments for gains included in net of income tax (benefit) expense (206) 49
Foreign currency translation adjustments, net of tax expense $ 587 $ 24
XML 22 R6.htm IDEA: XBRL DOCUMENT v3.22.4
Consolidated Statements of Cash Flows - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Cash Flows From Operating Activities:    
Net income $ 5,820 $ 12,661
Adjustments to reconcile net income to net cash provided by operating activities:    
Depreciation and amortization 15,651 13,718
Amortization of original issue discount and debt issue costs 740 3,193
Amortization of inventory step-up 4,255  
Loss on extinguishment of debt   15,155
Deferred income taxes (1,087) 4,772
Stock-based compensation 31,858 355
Gain on sale of fixed assets (170)  
Provision for (recoveries from) losses on accounts receivable 417 (188)
Foreign exchange loss 1,517 102
Changes in operating assets and liabilities, net of impact of acquisitions:    
Accounts receivable (11,536) (4,641)
Inventories 1,162 (3,189)
Prepaid expenses and other assets (7,711) (4,564)
Accounts payable and other liabilities 5,493 2,720
Net cash provided by operating activities 46,409 40,094
Cash Flows From Investing Activities:    
Purchase of property and equipment (4,494) (2,832)
Proceeds from disposition of property and equipment 411  
Business acquisitions, net of cash acquired (55,543)  
Net cash used in investing activities (59,626) (2,832)
Cash Flows From Financing Activities:    
Proceeds from revolving credit facilities 43,000 257,980
Principal payments on revolving credit facilities (43,000) (258,612)
Proceeds from term loans   198,716
Principal payments on term loans (10,116) (266,000)
Proceeds from insurance premium financing 3,989 5,010
Principal payments on insurance premium financing (4,952) (3,061)
Payment of capital leases (25) (43)
Payments for debt issuance costs   (2,198)
Payments on extinguishment of debt   (4,217)
Taxes paid in connection with employee stock transactions (6,300)  
Proceeds from initial public offering, net of underwriter discounts   83,421
Proceeds from secondary offering, net of underwriter discounts 56,329  
Deferred offering costs (2,953) (4,841)
Dividends distributed (11,509) (12,751)
Net cash provided by (used in) financing activities 24,463 (6,596)
Effect of foreign exchange rates on cash and cash equivalents 183 318
Change in cash and cash equivalents 11,429 30,984
Cash and cash equivalents, beginning of period 33,857 2,873
Cash and cash equivalents, end of period 45,286 33,857
Supplemental Disclosure of Cash Flows Information:    
Cash paid for income taxes, net 1,395 1,158
Cash paid for interest 6,109 13,336
Supplemental Disclosure of Non-Cash Investing and Financing Activities:    
Accruals and accounts payable for capital expenditures $ 172 $ 197
XML 23 R7.htm IDEA: XBRL DOCUMENT v3.22.4
Consolidated Statements of Shareholders Equity - USD ($)
$ in Thousands
Common Stock
Additional Paid-In Capital
Accumulated Other Comprehensive Income (Loss)
Accumulated Deficit
Total
Balance at the beginning at Dec. 31, 2020 $ 3 $ 48,670 $ (2,860) $ (36,962) $ 8,851
Balance at the beginning (in shares) at Dec. 31, 2020 27,483,350        
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Net income       12,661 12,661
Issuance of common share in secondary offering, net of underwriter discounts and issuance costs   78,581     78,581
Issuance of common stock in offering, net of underwriter discounts and issuance costs (in shares) 6,900,000        
Dividends declared       (12,751) (12,751)
Stock-based compensation   355     355
Foreign currency translation adjustments     30   30
Change in fair value of derivative instruments     913   913
Balance at the end at Dec. 31, 2021 $ 3 127,606 (1,917) (37,052) $ 88,640
Balance at the end (in shares) at Dec. 31, 2021 34,383,350       34,383,350
Increase (Decrease) in Stockholders' Equity [Roll Forward]          
Net income       5,820 $ 5,820
Issuance of common share in secondary offering, net of underwriter discounts and issuance costs $ 1 53,376     53,377
Issuance of common stock in offering, net of underwriter discounts and issuance costs (in shares) 2,550,000        
Dividends declared       (11,509) (11,509)
Stock-based compensation   30,706     30,706
Common stock issued under employee compensation plans   1,152     1,152
Common stock issued under employee compensation plans (in shares) 580,990        
Common stock withheld related to net share settlement of stock-based compensation   (6,300)     (6,300)
Common stock withheld related to net share settlement of stock-based compensation (in shares) (182,069)        
Foreign currency translation adjustments     (1,822)   (1,822)
Change in fair value of derivative instruments     5,826   5,826
Balance at the end at Dec. 31, 2022 $ 4 $ 206,540 $ 2,087 $ (42,741) $ 165,890
Balance at the end (in shares) at Dec. 31, 2022 37,332,271       37,332,271
XML 24 R8.htm IDEA: XBRL DOCUMENT v3.22.4
SIGNIFICANT ACCOUNTING POLICIES
12 Months Ended
Dec. 31, 2022
SIGNIFICANT ACCOUNTING POLICIES  
SIGNIFICANT ACCOUNTING POLICIES
1.SIGNIFICANT ACCOUNTING POLICIES

Nature of Operations and Basis of Presentation

Cadre Holdings, Inc., D/B/A The Safariland Group (the “Company”, “Cadre”, “we”, “us”, and “our”), a Delaware corporation, began operations on April 12, 2012. The Company, headquartered in Jacksonville, Florida, is a global leader in manufacturing and distributing safety and survivability products and other related products for the law enforcement, first responder and military markets. The business operates through 16 manufacturing plants within the U.S., Mexico, Canada, the United Kingdom, Italy, France and Lithuania, and sells its products worldwide through its direct sales force, distribution channel and distribution partners, online stores, and third-party resellers.

Principles of Consolidation

The accompanying consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (“GAAP” or “U.S. GAAP”) and include the accounts of Cadre Holdings, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.

Stock Split

In July 2021, the Company effected a 50-for-1 stock split of its common stock and preferred stock. All share and per share information has been retroactively adjusted to reflect the stock split for all periods presented.

Emerging Growth Company

We are an “emerging growth company,” as defined in the Jumpstart Our Business Startups Act of 2012 (the “JOBS Act”). As such, we are eligible for exemptions from various reporting requirements applicable to other public companies that are not emerging growth companies, including, but not limited to, presenting only two years of audited financial statements, not being required to comply with the auditor attestation requirements of Section 404 of the Sarbanes-Oxley Act of 2002, reduced disclosure obligations regarding executive compensation, and an exemption from the requirements to obtain a non-binding advisory vote on executive compensation or golden parachute arrangements.

In addition, an emerging growth company can take advantage of an extended transition period for complying with new or revised accounting standards. This provision allows an emerging growth company to delay the adoption of certain accounting standards until those standards would otherwise apply to private companies. We have elected to avail ourselves of this provision of the JOBS Act. As a result, we will not be subject to new or revised accounting standards at the same time as other public companies that are not emerging growth companies. Therefore, our consolidated financial statements may not be comparable to those of companies that comply with new or revised accounting pronouncements as of public company effective dates.

Use of Estimates

The preparation of these consolidated financial statements requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenue and expenses during the reporting period. Actual results could differ from these estimates.

Fair Value Measurements

The Company follows the guidance of Accounting Standards Codification (“ASC”) Topic 820, Fair Value Measurements and Disclosures, which defines fair value, establishes a framework for measuring fair value and expands disclosures about fair value

measurements. This guidance also establishes the following three-level hierarchy based upon the transparency of inputs to the valuation of an asset or liability on the measurement date:

Level 1: Observable inputs that reflect unadjusted quoted prices for identical assets or liabilities traded in active markets.

Level 2: Inputs other than quoted prices included within Level 1 that are observable for the asset or liability, either directly or indirectly, for substantially the full term of the asset or liability.

Level 3: Unobservable inputs that reflect assumptions about what market participants would use in pricing assets or liabilities based on the best information available.

The Company’s financial instruments consist principally of cash, accounts receivable, prepaid expenses, other current assets, accounts payable, accrued liabilities, income tax payable and debt. The carrying amounts of certain of these financial instruments, including cash, accounts receivable, prepaid expenses, other current assets, accounts payable, accrued liabilities and income tax payable approximate their current fair value due to the relatively short-term nature of these accounts.

Cash and Cash Equivalents

Included in cash and cash equivalents are deposits with banks, cash on hand in stores, and amounts due from credit card transactions. We have no restrictions on our cash and cash equivalents.

Accounts Receivable

Trade accounts receivable consists of amounts owed to the Company and is stated net of allowances. The Company’s outstanding accounts receivable balances are exposed to credit risk and valuation allowances are established for estimated losses resulting from non-collection of outstanding amounts due from customers.

The Company establishes a reserve for estimated doubtful accounts based on the aging of its receivable balances and collection history. In addition, specific reserves are established for customer accounts as known collection problems occur due to insolvency, disputes, or other collection issues. The amounts of these specific reserves are estimated by management based on the customer’s financial position, the age of the customer’s receivables and the reasons for any disputes. The allowance for doubtful accounts is reduced by any write-off of uncollectible customer accounts.

Inventories

Inventories are stated at the lower of cost, determined using the first-in, first-out (“FIFO”) or average cost methods, or net realizable value. Elements of cost in the Company’s manufactured inventories generally include raw materials, direct labor, indirect labor, manufacturing overhead and freight-in. The Company periodically reviews its inventories considering sales forecasts and historical experience to identify excess, close-out, or slow-moving items and makes provisions as necessary to properly reflect inventory value at the lower of cost or net realizable value.

Assets Held for Sale

An asset is considered to be held for sale when all of the following criteria are met: (i) management commits to a plan to sell the asset; (ii) it is unlikely that the disposal plan will be significantly modified or discontinued; (iii) the asset is available for immediate sale in its present condition; (iv) actions required to complete the sale of the asset have been initiated; (v) sale of the asset is probable and the completed sale is expected to occur within one year; and (vi) the asset is actively being marketed for sale at a price that is reasonable given its current market value.

A long-lived asset classified as held for sale is measured at the lower of its carrying amount or fair value less cost to sell. A long-lived asset is not depreciated or amortized while it is classified as held for sale.

Property and Equipment

Property and equipment, including those acquired under capital lease agreements, is stated at cost less accumulated depreciation and amortization, except for assets acquired using acquisition accounting, which are initially recorded at fair value. Depreciation is computed using the straight-line method over the following estimated useful lives:

Buildings and improvements

   

5 to 39 years

Furniture and fixtures

2 to 10 years

Computer hardware and software

3 to 5 years

Machinery and equipment

3 to 8 years

Leasehold improvements are amortized over the lesser of the estimated useful life of the improvement or the life of the lease. Major replacements, which extend the useful lives of property and equipment, are capitalized and depreciated over the remaining useful life of the asset. Normal repair and maintenance items are expensed as incurred.

The recoverability of the carrying amount of property and equipment is assessed when events or changes in circumstances indicate that the carrying amount of an asset or asset group may not be recoverable. If it is determined that the carrying amount of an asset or asset group is not recoverable based upon expected undiscounted future cash flows of the asset or asset group, an impairment loss equal to the excess of the carrying amount over the estimated fair value of the asset or asset group is recorded.

Leases

Lease assets and lease liabilities are recognized at the commencement of an arrangement where it is determined at inception that a lease exists.  Lease assets represent the right to use an underlying asset for the lease term, and lease liabilities represent the obligation to make lease payments arising from the lease.  These assets and liabilities are initially recognized based on the present value of lease payments over the lease term calculated using our incremental borrowing rate.  Lease terms include options to extend or terminate the lease when it is reasonably certain that those options will be exercised.

Variable lease payments are generally expensed as incurred and include certain non-lease components, such as common area maintenance and other services provided by the lessor, and other charges such as utilities, insurance and property taxes included in the lease.  Leases with an initial term of 12 months or less are not recorded on the balance sheet, and the expense for these short-term leases and for operating leases is recognized on a straight-line basis over the lease term. Non-lease components are excluded from the right-of-use (“ROU”) asset and lease liability present value computations. The Company’s lease agreements do not contain any material residual value guarantees or material restrictive covenants.

Goodwill and Intangible Assets

The Company classifies intangible assets into three categories: i) intangible assets with definite lives subject to amortization, ii) intangible assets with indefinite lives not subject to amortization and iii) goodwill. The Company determines the useful lives of its identifiable intangible assets after considering the specific facts and circumstances related to each intangible asset. Factors the Company considers when determining useful lives include the contractual term of any agreement related to the asset, the historical performance of the asset, the Company’s long-term strategy for using the asset, any laws or other local regulations which could impact the useful life of the asset, and other economic factors, including competition and specific market conditions. Intangible assets that are deemed to have definite lives are amortized on a straight-line basis over their useful lives.

The Company tests goodwill and intangible assets determined to have indefinite useful lives for impairment annually, or more frequently if events or circumstances indicate that assets might be impaired. The Company performs these annual impairment tests as of October 31st each year. Goodwill is evaluated for impairment at the reporting unit level, which is defined as an operating segment or one level below an operating segment. As of October 31, 2022 and 2021, the Company had three reporting units: Safariland, Med-Eng, and Distribution.

In evaluating goodwill for impairment, qualitative factors are considered to determine whether it is more likely than not that the fair value of a reporting unit is less than its carrying amount. Some of these qualitative factors may include macroeconomic conditions, industry and market considerations, a change in financial performance, or entity-specific events. If, through this qualitative assessment, the conclusion is made that it is more likely than not that a reporting unit’s fair value is less than its carrying amount, the Company performs a two-step goodwill impairment test. The first step involves a comparison of the fair value of a reporting unit to its carrying value. If the carrying amount of the reporting unit exceeds its fair value, the second step of the process is performed, which compares the implied value of the reporting unit goodwill with the carrying value of the goodwill of that reporting unit. If the carrying value of the goodwill of a reporting unit exceeds the implied fair value of that goodwill, an impairment loss is recognized in an amount equal to that excess.

The Company determines the fair value of reporting units based on a combination of the income approach and market approach, weighted based on the circumstances. Under the income approach, the discounted cash flow model determines fair value based on the present value of projected cash flows over a specific projection period and a residual value related to future cash flows beyond the projection period. Both values are discounted using a rate that reflects the Company’s best estimate of the weighted average cost of capital of a market participant and is adjusted for appropriate risk factors. The Company performs sensitivity tests with respect to growth rates and discount rates used in the income approach. Under the market approach, valuation multiples are derived based on a selection of comparable companies and acquisition transactions and applied to projected operating data for each reporting unit to arrive at an indication of fair value.

The Company performed the qualitative assessment of goodwill and determined it was more likely than not that the fair value of each of its reporting units would be greater than its carrying amount. Therefore, the Company determined it was not necessary to perform the quantitative goodwill impairment test.

For indefinite-lived intangible assets other than goodwill, the impairment test consists of a comparison of the fair value of the intangible asset with its carrying amount. If the carrying amount exceeds the fair value, an impairment charge is recognized in an amount equal to that excess.

The Company tests definite-lived intangible assets for recoverability when changes in circumstances indicate the carrying value may not be recoverable. Events that trigger a test for recoverability include:

material adverse changes in projected revenues and expenses;
significant underperformance relative to historical and projected future operating results;
significant negative industry or economic trends; and,
a significant adverse change in the manner in which an asset group is used or in its physical condition.

Future adverse changes in these or other unforeseeable factors could result in an impairment charge that could materially impact future results of operations and financial position in the reporting period identified.

When a triggering event occurs, a test for recoverability is performed by comparing projected undiscounted future cash flows to the carrying value of the asset group. If the test for recoverability identifies a possible impairment, the asset group’s fair value is

measured relying primarily on a discounted cash flow method. An impairment charge is recognized for the amount by which the carrying value of the asset group exceeds its estimated fair value. When an impairment loss is recognized for assets to be held and used, the adjusted carrying amount of those assets is depreciated over their remaining useful life. We did not have any events or circumstances indicating impairment of our long-lived assets for the years presented.

Accounts Payable

Accounts payable represents amounts owed by us to third parties at the end of the period. Accounts payable includes $188 and $670 of book cash overdrafts in excess of cash balances in such accounts as of December 31, 2022 and 2021, respectively. We include the change in book cash overdrafts in operating cash flows in the consolidated statements of cash flows.

Revenue Recognition

The Company derives revenue primarily from the sale of physical products. The Company recognizes revenue when a contract exists with a customer that specifies the goods and services to be provided at an agreed upon sales price and when the performance obligation is satisfied by transferring the goods or service to the customer. The performance obligation is considered satisfied when control transfers, which is generally determined when products are shipped or delivered to the customer but could be delayed until the receipt of customer acceptance, depending on the terms of the contract. Sales are made on normal and customary short-term credit terms or upon delivery for point of sale transactions.

The Company enters into contractual arrangements primarily with customers in the form of individual customer orders which specify the goods, quantity, pricing, and associated order terms. The Company has some long-term contracts that may contain research and development performance obligations that are satisfied over time. The Company invoices the customer once the billing milestone is reached and collects under customary short-term credit terms. For long-term contracts, the Company recognizes revenue using the input method based on costs incurred, as this method is an appropriate measure of progress toward the complete satisfaction of the performance obligation. Due to uncertainties inherent in the estimation process, it is possible that estimates of costs to complete a performance obligation will be revised in the near-term. For those performance obligations for which revenue is recognized using a cost-to-cost input method, changes in total estimated costs, and related progress towards complete satisfaction of the performance obligation, are recognized on a cumulative catch-up basis in the period in which the revisions to the estimates are made. When the current estimate of total costs for a performance obligation indicate a loss, a provision for the entire estimated loss on the unsatisfied performance obligation is made in the period in which the loss becomes evident.

At the time of revenue recognition, the Company also provides for estimated sales returns and miscellaneous claims from customers as reductions to revenues. The estimates are based on historical rates of product returns and claims. The Company accrues for such estimated returns and claims with an estimated accrual and associated reduction of revenue. Additionally, the Company records inventory that it expects to be returned as part of inventories, with a corresponding reduction to cost of goods sold.

Charges for shipping and handling fees billed to customers are included in net sales and the corresponding shipping and handling expenses are included in cost of goods sold in the accompanying consolidated statements of operations and comprehensive income. We consider our costs related to shipping and handling after control over a product has transferred to a customer to be a cost of fulfilling the promise to transfer the product to the customer.

Sales commissions paid to employees as compensation are expensed as incurred for contracts with service periods less than a year. For contracts with service periods greater than a year, these costs are capitalized and amortized over the life of the contract. These costs are recorded in selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income.

Product Warranty

Some of the Company’s manufactured products carry limited warranty provisions for defects in quality and workmanship. A warranty reserve is established at the time of sale to cover estimated costs based on the Company’s history of warranty repairs and replacements and is recorded in cost of goods sold in the Company’s consolidated statements of operations and comprehensive income.

The following table sets forth the changes in the Company’s accrued warranties, which is recorded in accrued liabilities in the consolidated balance sheets:

Year ended December 31, 

    

2022

    

2021

Beginning accrued warranty expense

$

1,256

$

1,133

Current period claims

 

(278)

 

(399)

Provision for current period sales

 

256

 

522

Ending accrued warranty expense

$

1,234

$

1,256

Cost of Goods Sold

Cost of goods sold includes raw material purchases, manufacturing-related labor costs, contracted labor, shipping costs, reimbursable research and development costs, allocated manufacturing overhead, facility costs, depreciation and amortization, and product warranty costs.

Selling, General & Administrative Expenses

Selling, general and administrative expense includes personnel-related costs, including stock-based compensation, professional services, marketing and advertising expense, research and development, depreciation and amortization, and impairment charges.

Advertising Expenses

Advertising costs are expensed in the period incurred. Advertising expenses primarily consist of marketing, promotions, catalog and trade show expenses and were $4,711 and $3,120 during the years ended December 31, 2022 and 2021, respectively. Advertising expenses are included in selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income.

Research and Development

Research and development expenses are expensed as incurred and included within selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income. Total research and development costs were $7,086 and $6,460 for the years ended December 31, 2022 and 2021, respectively.

In addition, the Company incurs research and development expenses related to reimbursable development contracts. Contractual research and development expenses are included in cost of goods sold in the Company’s consolidated statements of operations and comprehensive income and were $1,639 and $5,895 for the years ended December 31, 2022 and 2021, respectively.

Debt Issuance Costs

The Company capitalizes costs related to the issuance of debt under the provisions of ASC Subtopic 835-30, Interest — Imputation of Interest. Debt issuance costs related to a recognized debt liability are presented in the consolidated balance sheets as a direct deduction from the carrying amount of that debt liability and subsequently amortized on a straight-line method which approximates the effective interest method over the life of the related loan. Debt issuance costs related to line-of-credit are presented in the consolidated balance sheets as an asset and subsequently amortized ratably over the term of the respective arrangement. Amortization of debt issuance costs is included as a component of interest expense in the Company’s consolidated statements of operations and comprehensive income.

Stock-Based Compensation

The Company records compensation expense for all stock-based awards granted based on the fair value of the award at the time of the grant. The fair value of each option award is estimated on the date of grant using the Black-Scholes option pricing model that uses assumptions and estimates that the Company believes are reasonable. The fair value of restricted stock awards is measured based on the closing market value of the Company’s common stock on the date of the grant. For restricted stock awards subject to market conditions, the fair value of each restricted stock award has been estimated as of the date of grant using a Monte-Carlo pricing model. The Company recognizes the cost of the stock-based awards on a straight-line basis over the requisite service period of the award and recognizes forfeitures in the period they occur. Stock options granted have contractual terms of up to ten years. Upon vesting of restricted stock awards, the Company issues shares from those authorized and reserved for issuance.

Derivatives

The Company mitigates the impact of changes in interest rates with interest rate swaps that are accounted for as designated hedges pursuant to ASC Topic 815, Derivatives and Hedging ("ASC 815"). ASC 815 requires that an entity recognize all derivatives as either assets or liabilities on the balance sheet, measure those instruments at fair value and recognize changes in the fair value of derivatives in earnings in the period of change unless the derivative qualifies as designated cash flow hedge that offsets certain exposures. Certain criteria must be satisfied in order for derivative financial instruments to be classified and accounted for as a cash flow hedge. Changes in the fair value of derivatives that are not elected for hedge accounting treatment are recorded immediately into earnings.

The Company would discontinue hedge accounting prospectively (i) if it is determined that the derivative is no longer effective in offsetting changes in the cash flows of a hedged item, (ii) when the derivative expires or is sold, terminated, or exercised, (iii) if it becomes probable that the forecasted transaction being hedged by the derivative will not occur, (iv) if a hedged firm commitment no longer meets the definition of a firm commitment, or (v) if it is determined that designation of the derivative as a hedge instrument is no longer appropriate. 

Restructuring Costs

Restructuring costs consist primarily of termination benefits and relocation of employees, termination of operating leases and other contracts related to consolidating or closing facilities. The Company applies the provisions of ASC Topic 420, Exit or Disposal Cost Obligations (“ASC 420”) and ASC Topic 712, Nonretirement Postemployment Benefits (“ASC 712”) in the recording of severance costs. Severance costs accounted for under ASC 420 are recognized when management with the proper level of authority commits to a restructuring plan and communicates those actions to employees and other applicable criteria. Severance costs accounted for under ASC 712 are recognized when it is probable that employees are entitled to benefits and the amount could be reasonably estimated. Other exit costs are accounted for under ASC 420 and are either deferred or expensed as incurred based on the nature of the expense.

Income Taxes

The Company accounts for income taxes under the provisions of ASC Topic 740, Income Taxes. Deferred tax assets and liabilities are determined based on differences between the financial statement carrying amounts and tax bases of assets and liabilities and are classified as noncurrent in the consolidated balance sheets.

Deferred tax assets and liabilities are measured using enacted tax rates expected to apply to taxable income in the years in which those temporary differences are expected to be recovered or settled. The effect of changes in tax rates on deferred tax assets and liabilities is recognized in income in the period that includes the enactment date. Changes in tax laws and rates could have a material impact on the deferred tax assets and liabilities recorded.

Deferred tax assets are reduced by a valuation allowance when, in the opinion of management, it is more likely than not that some portion or all of the deferred tax assets will not be realized. Significant estimates are used in the evaluation of the need for a valuation allowance including estimates regarding future taxable income. Changes to those estimates could impact management’s conclusions regarding the need for valuation allowances on some or all of the deferred tax assets. The Company releases the income tax effects of deferred tax balances that have a valuation allowance from accumulated other comprehensive income (loss) once the reason the tax effects were established ceases to exist.

The Company is subject to income taxes in the United States and several foreign jurisdictions. In the United States, the Company files a consolidated income tax return with its domestic subsidiaries. When tax returns are filed, it is highly certain that some positions taken would be sustained upon examination by taxing authorities, while others are subject to uncertainty about the merits of the position taken or the amount of the position that would be ultimately sustained. The benefit of a tax position is recognized in the consolidated financial statements in the period during which, based on all available evidence, it is more likely than not that the position will be sustained upon examination, including the resolution of appeals or litigation processes, if any. Tax positions taken are not offset or aggregated with other positions. Tax positions that meet the more-likely than-not threshold are measured as the largest amount of tax benefit that is more than 50% likely of being realized upon settlement with the applicable taxing authority. The portion of the benefits associated with tax positions taken that exceeds the amount measured as described above is reflected as a liability for unrecognized tax benefits in the accompanying balance sheets along with any associated interest and penalties that would be payable to the taxing authorities upon examination.

Further information regarding the Company’s tax positions is included in Note 16, Income Taxes.

Accumulated Other Comprehensive Income (Loss)

Comprehensive income (loss) represents all changes in equity of the Company that result from recognized transactions and other economic events during the period. Other comprehensive income (loss) refers to revenues, expenses, gains, and losses that under GAAP are included in comprehensive income but excluded from net income.

Foreign Currency

Translation

Assets and liabilities of subsidiaries operating outside the United States with a functional currency other than U.S. Dollars are translated into U.S. Dollars using the exchange rates in effect at the balance sheet date. Results of operations are translated using the average exchange rate prevailing throughout the period. The effects of unrealized exchange rate fluctuations on translating foreign currency assets and liabilities into U.S. dollars are accumulated as the cumulative translation adjustment included in accumulated other comprehensive income (loss) in the consolidated balance sheets.

Transaction

Transactions denominated in foreign currency are recorded at the exchange rate on the date of each transaction. Realized gains and losses on foreign currency transactions are included in other income, net in the consolidated statements of operations and comprehensive income, except on certain intercompany balances which the Company has determined are of a long-term investment nature, which are included in accumulated other comprehensive income (loss) in the consolidated balance sheets. Monetary assets and liabilities are remeasured at the balance sheet date at end-of-period exchange rates. Unrealized gains and losses arising from remeasurement of foreign currency-denominated monetary assets and liabilities are included in other expense, net in the consolidated statements of operations and comprehensive income in the period in which they occur.

Net Income per Share

Basic income or loss per share is computed by dividing net income by the weighted average number of common shares outstanding during the periods presented. Diluted income or loss per share is calculated by adjusting weighted average shares outstanding for the dilutive effect of potential common shares, determined using the treasury-stock method. The calculation of weighted average shares outstanding and net income per share are as follows:

    

Year ended December 31, 

    

2022

    

2021

Net income

$

5,820

$

12,661

 

  

 

  

Weighted average shares outstanding - basic

 

36,109,844

 

28,598,692

Effect of dilutive securities:

Stock-based awards

12,530

Weighted average shares outstanding - diluted

 

36,122,374

 

28,598,692

Net income per share:

 

  

 

  

Basic

$

0.16

$

0.44

Diluted

$

0.16

$

0.44

There were no dilutive instruments outstanding for the year ended December 31, 2021.

Risk and Uncertainties

Concentration of Credit Risk

Financial instruments that potentially subject the Company to concentration of credit risk consist principally of cash and accounts receivable. Risks associated with cash within the United States and foreign countries are mitigated by banking with federally insured, creditworthy institutions. As of December 31, 2022 and 2021, the Company had deposits of $10,142 and $7,593, respectively, at foreign financial institutions.

Accounts receivable are financial instruments that also expose the Company to concentration of credit risk. Such exposure is limited by the large number of customers comprising the Company’s customer base and their dispersion across different geographic areas. In addition, the Company routinely assesses the financial strength of its customers and maintains an allowance for doubtful accounts that management believes will adequately provide for credit losses. Accordingly, the Company performs ongoing credit evaluations of its customers and maintains allowances for possible losses as considered necessary by management.

Recent Accounting Pronouncements

Recently Adopted Accounting Pronouncements

In February 2016, the FASB issued ASU 2016-02, Leases (Topic 842), which is intended to increase transparency and comparability among organizations by requiring the recognition of right-of-use (“ROU”) assets and lease liabilities on the balance sheet. In July 2018, the FASB issued additional guidance which provided an additional transition method for adopting the updated guidance. Under the additional transition method, entities may elect to recognize a cumulative-effect adjustment to the opening balance of retained earnings in the year of adoption. In June 2020, the FASB issued additional guidance which extends the effective date of ASU 2016-02 for emerging growth companies to begin in fiscal years beginning after December 15, 2021. We adopted ASU 2016-02 prospectively on January 1, 2022. As part of the adoption, we elected the package of practical expedients which permits us under the new standard not to reassess historical lease classification, not to recognize short-term leases on our balance sheet, and not to separate lease and non-lease components for all our leases. In addition, we elected the use of hindsight to determine the lease term of its leases and applied its incremental borrowing rate based on the remaining term of its leases as of the adoption date. The impact upon adoption, on January 1, 2022, resulted in the recognition of operating right-of-use assets of $11,769, and operating lease liabilities of $12,029 on our consolidated balance sheet. Refer to Note 17, Leases, for further discussion.

In December 2019, the FASB issued ASU 2019-12, Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes. ASU 2019-12 simplifies the accounting for income taxes by removing certain exceptions to the general principles in Topic 740 and improves consistent application of and simplifies GAAP for other areas of Topic 740 by clarifying existing guidance. For emerging growth companies, this ASU is effective for fiscal years beginning after December 15, 2021, and interim periods within those fiscal years beginning after December 15, 2022. Early adoption is permitted. The Company adopted this standard on January 1, 2022, which did not result in a material impact on our consolidated financial statements and related disclosures.

Accounting Pronouncements Not Yet Adopted

In June 2016, the FASB issued ASU 2016-13, Financial Instruments — Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments. ASU 2016-13 includes an impairment model (known as the current expected credit loss model) that is based on expected losses rather than incurred losses. Under the new guidance, an entity recognizes as an allowance its estimate of expected credit losses, which the FASB believes will result in more timely recognition of such losses. The use of forecasted information is intended to incorporate more timely information in the estimate of expected credit loss. In November 2019, the FASB issued additional guidance which extends the effective date of ASU 2016-13 for emerging growth companies to begin in fiscal years beginning after December 15, 2022. Early adoption is permitted. The Company plans to adopt this standard on January 1, 2023 and is currently in the process of evaluating the impact of the adoption of this standard on its consolidated financial statements.

In March 2020, the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) 2020-04, Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting. This ASU provides temporary optional expedients and exceptions to existing guidance on contract modifications and hedge accounting to facilitate the market transition from existing reference rates, such as the London Inter-Bank Offered Rate (“LIBOR”) which is being phased out in 2021, to alternate reference rates, such as the Secured Overnight Financing Rate (“SOFR”). The standard is currently effective and upon adoption may be applied prospectively to contract modifications made on or before December 31, 2022. The provisions have impact as contract modifications and other changes occur while LIBOR is phased out. The Company is in the process of evaluating the optional relief guidance provided within this ASU. Management will continue its assessment and monitor regulatory developments during the LIBOR transition period. Currently, management does not believe that the impact of transitioning from LIBOR to SOFR will have a material effect on the interest rates of the company.

There were no other new accounting standards that the Company expects to have a potential material impact to the financial position or results of operations upon adoption.

XML 25 R9.htm IDEA: XBRL DOCUMENT v3.22.4
ACQUISITIONS
12 Months Ended
Dec. 31, 2022
ACQUISITIONS  
ACQUISITIONS
2.ACQUISITIONS

Radar Acquisition

On January 11, 2022, Safariland, LLC, a wholly-owned subsidiary of the Company, completed the acquisition of Radar Leather Division S.r.l. (“Radar”), a premiere family-owned duty gear business based in Italy that specializes in the production of high-quality holsters, belts, duty belts, and other accessories.

The acquisition was accounted for as a business combination. Total acquisition-related costs for the acquisition of Radar were $627, of which $204 was incurred and recognized during the year ended December 31, 2022.

Total consideration, net of cash acquired, was $19,365 for 100% of the equity interests in Radar. The total consideration was as follows:

Cash paid

    

$

20,844

Less: cash acquired

 

(1,479)

Total consideration, net

$

19,365

The following table summarizes the total purchase price consideration and the amounts recognized for the assets acquired and liabilities assumed, which have been estimated at their fair values. Since our initial purchase price allocation and during the measurement period, we have increased goodwill by $390 for revisions made to cash paid, inventory acquired and deferred income taxes for certain book and tax basis differences as we completed the tax return filings for the pre-acquisition period. The excess of purchase consideration over the assets acquired and liabilities assumed is recorded as goodwill. Goodwill for the Radar acquisition is included in the Product segment and reflects synergies and additional legacy growth and profitability expected from this acquisition through expansion into new markets and customers.

Total consideration, net

    

$

19,365

Accounts receivable

$

2,347

Inventories

1,874

Prepaid expenses

682

Other current assets

665

Property and equipment

3,053

Intangible assets

10,200

Goodwill

7,101

Total assets acquired

25,922

Accounts payable

1,120

Deferred tax liabilities

2,787

Accrued liabilities

2,106

Long-term debt

544

Total liabilities assumed

6,557

Net assets acquired

$

19,365

In connection with the acquisition, the Company acquired exclusive rights to Radar’s trademarks, customer relationships, and product technologies. The amounts assigned to each class of intangible asset and the related average useful lives are as follows:

    

Gross

    

Average Useful Life

Customer relationships

$

9,300

15

Technology

600

 

10

Trademarks

300

7

Total

$

10,200

The full amount of goodwill of $7,101 is expected to be non-deductible for tax purposes. No pre-existing relationships existed between the Company and Radar prior to the acquisition. Radar revenue and cost of goods sold are included in the Product segment from the date of acquisition. The acquisition was not material to our consolidated financial statements.

Cyalume Acquisition

On May 4, 2022, Safariland, LLC, a wholly-owned subsidiary of the Company, completed the acquisition of Cyalume Technologies, Inc, CT SAS Holdings, Inc. and Cyalume Technologies SAS (collectively “Cyalume”). Cyalume is engaged in the design and manufacture of proprietary chemical illumination solutions for a diverse range of products, including light sticks, infrared products, safety markings and non-pyrophoric training ammunition.

The acquisition was accounted for as a business combination. Acquisition-related costs for the acquisition of Cyalume were $3,546 for the year ended December 31, 2022.

Total consideration, net of cash acquired, was $36,178 for 100% of the equity interests in Cyalume. The total consideration was as follows:

Cash paid

    

$

38,012

Less: cash acquired

 

(1,834)

Total consideration, net

$

36,178

The following table summarizes the total purchase price consideration and the preliminary fair value amounts recognized for the assets acquired and liabilities assumed, which have been estimated at their fair values. The fair value estimates for the purchase price allocation are based on the Company’s best estimates and assumptions as of the reporting date and are considered preliminary. Since our initial purchase price allocation, we have increased goodwill by $2,460 for revisions made to cash paid as a result of a working capital settlement and deferred income taxes for certain book and tax basis differences as we completed the tax return filings for the pre-acquisition period. The fair value measurements of identifiable assets, specifically property and equipment, liabilities, and the resulting goodwill related to the Cyalume acquisition are subject to change as we complete our valuation process and the final purchase price allocation could be different from the amounts presented below. We expect to finalize the valuations as soon as practicable, but no later than one year from the date of the acquisition. The excess of purchase consideration over the assets acquired and liabilities assumed is

recorded as goodwill. Goodwill for the Cyalume acquisition is included in the Product segment and reflects synergies and additional legacy growth and profitability expected from this acquisition through expansion into new markets and customers.

Total consideration, net

    

$

36,178

Accounts receivable

$

3,302

Inventories

10,908

Prepaid expenses

255

Other current assets

10

Property and equipment

11,701

Intangible assets

8,300

Goodwill

9,101

Total assets acquired

43,577

Accounts payable

1,080

Deferred tax liabilities

4,454

Accrued liabilities

1,577

Other long-term liabilities

288

Total liabilities assumed

7,399

Net assets acquired

$

36,178

In connection with the acquisition, the Company acquired exclusive rights to Cyalume’s trademarks, customer relationships, and product technologies. The amounts assigned to each class of intangible asset and the related average useful lives are as follows:

    

Gross

    

Average Useful Life

Customer relationships

$

3,900

15

Technology

3,600

 

10

Trademarks

800

Indefinite

Total

$

8,300

The full amount of goodwill of $9,101 is expected to be non-deductible for tax purposes. No pre-existing relationships existed between the Company and Cyalume prior to the acquisition. Cyalume revenue and cost of goods sold are included in the Product segment from the date of acquisition. The acquisition was not material to our consolidated financial statements.

XML 26 R10.htm IDEA: XBRL DOCUMENT v3.22.4
ACCOUNTS RECEIVABLE, NET
12 Months Ended
Dec. 31, 2022
ACCOUNTS RECEIVABLE, NET  
ACCOUNTS RECEIVABLE, NET
3.ACCOUNTS RECEIVABLE, NET

The following is a reconciliation of the changes in our allowance for doubtful accounts during fiscal 2022 and 2021:

Year ended December 31, 

    

2022

    

2021

Beginning allowance for doubtful accounts

$

645

$

1,113

Provision

 

417

 

(188)

Write-offs

 

(138)

 

(280)

Ending allowance for doubtful accounts

$

924

$

645

XML 27 R11.htm IDEA: XBRL DOCUMENT v3.22.4
DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE
12 Months Ended
Dec. 31, 2022
DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE  
DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE
4.DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE

In October 2021, the Company designated our Daventry, UK facility as held for sale. Accordingly, during 2021, the Company determined that the assets and liabilities associated with the Daventry facility met the criteria for classification as held for sale but did not meet the criteria for classification as discontinued operations as the deconsolidation did not represent a strategic shift in the business.

In November 2022, the Company completed the sale of our Daventry, UK facility for a net sales price of $411, resulting in a gain of $170, which is included in other general income in the consolidated statements of operations and comprehensive income for the year ended December 31, 2022.

XML 28 R12.htm IDEA: XBRL DOCUMENT v3.22.4
REVENUE RECOGNITION
12 Months Ended
Dec. 31, 2022
REVENUE RECOGNITION  
REVENUE RECOGNITION
5.REVENUE RECOGNITION

The following tables disaggregate net sales by channel and geography:

Year ended December 31, 

    

2022

    

2021

U.S. state and local agencies (a)

$

250,680

$

231,095

Commercial

 

45,357

 

34,860

U.S. federal agencies

 

51,165

 

47,575

International

 

106,593

 

107,503

Other

 

4,042

 

6,255

Net sales

$

457,837

$

427,288

(a) Includes all Distribution sales

Year ended December 31, 

    

2022

    

2021

United States

$

351,244

$

319,785

International

 

106,593

 

107,503

Net sales

$

457,837

$

427,288

Revenue by product is not disclosed, as it is impractical to do so.

Contract Liabilities

Contract liabilities are recorded as a component of other liabilities when customers remit cash payments in advance of the Company satisfying performance obligations which are satisfied at a future point of time. Contract liabilities are derecognized when the performance obligation is satisfied. Contract liabilities are included in accrued liabilities in the Company’s consolidated balance sheets and totaled $4,615 and $10,949, as of December 31, 2022 and 2021, with $8,324 of the 2021 contract liabilities being recognized in revenue during the year ended December 31, 2022.

Remaining Performance Obligations

As of December 31, 2022, we had $19,997 of remaining performance obligations, which included amounts that will be invoiced and recognized in future periods. The remaining performance obligations are limited only to arrangements that meet the definition of a contract under Topic 606 as of December 31, 2022. We expect to recognize 52% of this balance over the next twelve months and expect the remainder to be recognized in the following two years.

XML 29 R13.htm IDEA: XBRL DOCUMENT v3.22.4
FAIR VALUE MEASUREMENTS
12 Months Ended
Dec. 31, 2022
FAIR VALUE MEASUREMENTS  
FAIR VALUE MEASUREMENTS
6.FAIR VALUE MEASUREMENTS

Assets and liabilities measured at fair value on a recurring basis as of December 31, 2022 and 2021 consisted of the following:

December 31, 2022

December 31, 2021

Carrying 

Fair Value

Carrying 

Fair Value

    

amount

    

Level 1

    

Level 2

    

Level 3

    

amount

    

Level 1

    

Level 2

    

Level 3

Assets:

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

Interest rate swap (Note 11)

$

8,985

$

$

8,985

$

$

1,607

$

$

1,607

$

Liabilities:

Interest rate swap (Note 11)

389

389

There were no transfers of assets or liabilities between levels during the years ended December 31, 2022 and 2021.

XML 30 R14.htm IDEA: XBRL DOCUMENT v3.22.4
INVENTORIES
12 Months Ended
Dec. 31, 2022
INVENTORIES  
INVENTORIES
7.INVENTORIES

The following table sets forth a summary of inventories stated at lower of cost or net realizable value, as of December 31, 2022 and 2021:

    

December 31, 

    

2022

    

2021

Finished goods

$

25,208

$

28,707

Work-in-process

 

7,466

 

4,053

Raw materials and supplies

 

37,599

 

31,218

Total

$

70,273

$

63,978

8.
XML 31 R15.htm IDEA: XBRL DOCUMENT v3.22.4
PROPERTY AND EQUIPMENT
12 Months Ended
Dec. 31, 2022
PROPERTY AND EQUIPMENT  
PROPERTY AND EQUIPMENT
8.PROPERTY AND EQUIPMENT

Property and equipment consist of the following:

    

December 31, 

2022

    

2021

Land

$

7,545

$

4,620

Building and improvements

 

22,992

 

17,556

Furniture and fixtures

 

1,400

 

1,209

Computer hardware and software

 

24,140

 

23,547

Machinery and equipment

 

28,464

 

21,795

Construction in progress

 

3,438

 

1,497

 

87,979

 

70,224

Less accumulated depreciation

 

(42,694)

 

(37,171)

Total

$

45,285

$

33,053

The Company recorded depreciation expense of $6,851 and $5,143 for the years ended December 31, 2022 and 2021, respectively, of which $3,433 and $2,144 was included in cost of goods sold in the consolidated statements of operations and comprehensive income for the respective years.

XML 32 R16.htm IDEA: XBRL DOCUMENT v3.22.4
GOODWILL AND OTHER INTANGIBLE ASSETS
12 Months Ended
Dec. 31, 2022
GOODWILL AND OTHER INTANGIBLE ASSETS  
GOODWILL AND OTHER INTANGIBLE ASSETS
9.GOODWILL AND OTHER INTANGIBLE ASSETS

Goodwill

The following table summarizes the changes in goodwill during the years ended December 31, 2022 and 2021:

    

Product

    

Distribution

    

Total

Balance, December 31, 2020

 

$

63,698

 

$

2,616

 

$

66,314

Foreign currency translation adjustments

 

(52)

 

 

(52)

Balance, December 31, 2021

$

63,646

$

2,616

$

66,262

Radar acquisition

6,711

6,711

Cyalume acquisition

6,641

6,641

Measurement period adjustments

2,850

2,850

Foreign currency translation adjustments

(888)

(888)

Balance, December 31, 2022

$

78,960

$

2,616

$

81,576

Impairment of Goodwill

No impairment losses were recorded during the years ended December 31, 2022 and 2021. Gross goodwill and accumulated impairment losses was $89,161 and $7,585 as of December 31, 2022 and $73,847 and $7,585, respectively, as of December 31, 2021.

Intangible Assets

Intangible assets such as certain customer relationships and patents on core technologies and product technologies are amortizable over their estimated useful lives. Certain trade names and trademarks which provide exclusive and perpetual rights to manufacture and sell their respective products are deemed indefinite-lived and are therefore not subject to amortization.

Intangible assets, net of amortization, as of December 31, 2022 and 2021 are as follows:

December 31, 2022

    

    

    

    

Weighted 

Accumulated 

Average 

Gross

amortization

Net

 

Useful Life

Definite lived intangibles:

 

  

 

  

 

  

 

  

Customer relationships

$

85,847

 

$

(59,122)

 

$

26,725

 

11

Technology

 

15,629

 

 

(11,309)

 

 

4,320

 

8

Tradenames

 

6,484

 

 

(4,254)

 

 

2,230

 

4

Non-compete agreements

 

973

 

 

(973)

 

 

 

4

$

108,933

 

$

(75,658)

 

$

33,275

Indefinite lived intangibles:

 

  

 

 

  

 

 

  

 

  

Tradenames

 

17,420

 

 

 

 

17,420

 

Indefinite

Total

$

126,353

 

$

(75,658)

 

$

50,695

 

  

December 31, 2021

    

    

    

    

Weighted 

Accumulated 

Average 

Gross

amortization

Net

 

Useful Life

Definite lived intangibles:

 

  

 

  

 

  

 

  

Customer relationships

$

74,078

$

(52,536)

 

$

21,542

 

11

Technology

 

11,978

 

 

(10,988)

 

 

990

 

7

Tradenames

 

6,473

 

 

(3,264)

 

 

3,209

 

4

Non-compete agreements

 

1,037

 

 

(1,037)

 

 

 

4

$

93,566

 

$

(67,825)

 

$

25,741

Indefinite lived intangibles:

 

  

 

 

  

 

 

  

 

  

Tradenames

 

16,674

 

 

 

 

16,674

 

Indefinite

Total

$

110,240

 

$

(67,825)

 

$

42,415

 

  

The Company recorded amortization expense of $8,800 and $8,575 for the years ended December 31, 2022 and 2021, respectively, of which $439 and $666 was included in cost of goods sold in the consolidated statements of operations and comprehensive income for the respective years.

The estimated amortization expense for definite-lived intangible assets for the next five years and thereafter is presented below:

2023

    

$

7,719

2024

 

5,015

2025

 

3,060

2026

 

2,665

2027

 

2,490

Thereafter

 

12,326

Total

$

33,275

10.
XML 33 R17.htm IDEA: XBRL DOCUMENT v3.22.4
ACCRUED LIABILITIES
12 Months Ended
Dec. 31, 2022
ACCRUED LIABILITIES  
ACCRUED LIABILITIES
10.ACCRUED LIABILITIES

Accrued liabilities as of December 31, 2022 and 2021 are as follows:

    

December 31, 

2022

2021

Accrued expenses

$

3,656

$

3,226

Accrued compensation and payroll tax

 

20,420

 

19,227

Accrued interest payable

 

73

 

70

Accrued warranty expense

 

1,234

 

1,256

Deferred revenue and customer credit balances

5,937

12,605

Current lease liabilities

3,773

Other accrued liabilities

3,627

4,352

Total

$

38,720

$

40,736

11.
XML 34 R18.htm IDEA: XBRL DOCUMENT v3.22.4
DEBT
12 Months Ended
Dec. 31, 2022
DEBT  
DEBT
11.DEBT

The Company’s debt is as follows:

    

December 31, 2022

    

December 31, 2021

Short-term debt:

 

  

 

  

Insurance premium financing

$

2,211

$

3,174

Current portion of term loan

 

10,000

 

10,000

$

12,211

$

13,174

Long-term debt:

 

  

 

  

Revolver

 

 

Term loan

 

138,564

 

148,564

Other

 

512

 

$

139,076

$

148,564

Unamortized debt discount and debt issuance costs

 

(1,600)

 

(2,048)

Total long-term debt, net

$

137,476

$

146,516

The following summarizes the aggregate principal payments of our long-term debt, excluding debt discount and debt issuance costs as of December 31, 2022:

2023

    

$

10,000

2024

 

10,128

2025

 

10,128

2026

 

118,692

2027

 

128

Thereafter

 

Total principal payments

$

149,076

New Credit Facility

On August 20, 2021 (the “Closing Date”), the Company refinanced its existing credit facilities and entered into a new credit agreement whereby Safariland, LLC, as borrower (the “Borrower”), the Company and certain domestic subsidiaries of the Borrower, as guarantors (the “Guarantors”), closed on and received funding under a credit agreement (initially entered into on July 23, 2021), pursuant to a First Amendment to Credit Agreement (as amended by the Second Amendment to Credit Agreement, dated as of December 14, 2022, collectively, the “New Credit Agreement”) with PNC Bank, National Association (“PNC”), as administrative agent, and the several lenders from time to time party thereto (together with PNC, the “Lenders”) pursuant to which the Borrower (i) borrowed $200,000 under a term loan (the “Term Loan”), and (ii) may borrow up to $100,000 under a revolving credit facility (including up to $15,000 for letters of credit and up to $10,000 for swing line loans) (the “Revolving Loan”). Each of the Term Loan and the Revolving Loan mature on July 23, 2026. Commencing December 31, 2021, the New Term Loan requires scheduled quarterly payments in amounts equal to 1.25% per quarter of the original aggregate principal amount of the Term Loan, with the balance due at maturity. The New Credit Agreement is guaranteed, jointly and severally, by the Guarantors and, subject to certain exceptions, secured by a first-priority security interest in substantially all of the assets of the Borrower and the Guarantors pursuant to a Security and Pledge Agreement and a Guaranty and Suretyship Agreement, each dated as of the Closing Date.

The Company performed an analysis on a creditor-by-creditor basis for debt modifications and extinguishments to determine the appropriate accounting treatment of associated issuance costs. In connection with the refinancing, the Company recorded a loss on debt extinguishment of $15,155 for the year ended December 31, 2021 related to early extinguishments fees and the write-off of unamortized debt discount and debt issuance costs.

In connection with the New Credit Agreement, the Company paid financing costs totaling $4,114, of which $2,749 related to the Term Loan and $1,365 related to the Revolving Loan. Total financing costs consisted of $1,916 of fees paid to lenders and $2,198 of debt issuance costs. Costs incurred in connection with the Term Loan were deferred and recorded as an offset to long-term debt. Costs incurred in connection with the Revolving Loan were deferred and recorded to other assets. All deferred debt costs are amortized to interest expense over the term of the loan using the effective interest method.

As of December 31, 2022 and 2021, the Company had an unamortized debt discount of $748 and $956 and unamortized debt issuance costs of $851 and $1,092, respectively, included as an offset to debt in the consolidated balance sheets.

There were no amounts outstanding under any revolving loans as of December 31, 2022 and 2021. As of December 31, 2022, there were $2,355 in outstanding letters of credit and $97,645 of availability.

As of December 31, 2022 and 2021, the term loan outstanding principal balance was $148,564 and $158,564 and bore interest at 6.14% and 2.61%, respectively.

The Borrower may elect to have the Revolving Loan and Term Loan under the New Credit Agreement bear interest at a base rate or a LIBOR rate, in each case, plus an applicable margin. The applicable margin for these borrowings will range from 0.50% to 1.50% per annum, in the case of base rate borrowings, and 1.50% to 2.50% per annum, in the case of LIBOR borrowings, in each case based upon the level of the Company’s consolidated total net leverage ratio. The New Credit Agreement also requires the Borrower to pay a commitment fee on the unused portion of the loan commitments. Such commitment fee will range between 0.175% and 0.25% per annum, and is also based upon the level of the Company’s consolidated total net leverage ratio. The New Credit Agreement also contains customary representations and warranties, and affirmative and negative covenants, including limitations on additional indebtedness, dividends, and other distributions, entry into new lines of business, use of loan proceeds, capital expenditures, restricted payments, restrictions on liens on the assets of the Borrowers or any Guarantor, transactions with affiliates, amendments to organizational documents, accounting changes, sale and leaseback transactions, dispositions, and mandatory prepayments in connection with certain liquidity events. The New Credit Agreement contains certain restrictive debt covenants, which require us to: (i) maintain a minimum fixed charge coverage ratio of 1.25 to 1.00, starting with the quarter ended December 31, 2021, which is to be determined for each quarter end on a trailing four quarter basis and (ii) maintain a quarterly maximum consolidated total net leverage ratio of 3.75 to 1.00 from the quarter ended December 31, 2021 until the quarter ended September 30, 2022, and thereafter 3.50 to 1.00, which is in each case to be determined on a trailing four quarter basis; provided that under certain circumstances and subject to certain limitations, in the event of a material acquisition, we may temporarily increase the consolidated total net leverage ratio by up to 0.50 to 1.00 for four fiscal quarters following such acquisition. The New Credit Agreement contains customary events of default that include, among others, non-payment of principal, interest or fees, violation of covenants, inaccuracy of representations and warranties, failure to make payment on, or defaults with respect to, certain other material indebtedness, bankruptcy and insolvency events, material judgments and change of control provisions. Upon the occurrence of an event of default, and after the expiration of any applicable grace period, payment of any outstanding loans under the New Credit Agreement may be accelerated and the Lenders could foreclose on their security interests in the assets of the Borrowers and the Guarantors.

Canadian Credit Facility

On October 14, 2021, Med-Eng Holdings ULC and Pacific Safety Products Inc., the Company’s Canadian subsidiaries, as borrowers (the “Canadian Borrowers”), and Safariland, LLC, as guarantor (the “Canadian Guarantor”), closed on a line of credit pursuant to a Loan Agreement (the “Canadian Loan Agreement”) and a Revolving Line of Credit Note (the “Note”) with PNC Bank Canada Branch (“PNC Canada”), as lender pursuant to which the Canadian Borrowers may borrow up to CDN$10,000 under a revolving line of credit (including up to $3,000 for letters of credit) (the “Revolving Canadian Loan”). The Revolving Canadian Loan matures on July 23, 2026. The Canadian Loan Agreement is guaranteed by the Canadian Guarantor pursuant to a Guaranty and Suretyship Agreement.

The Canadian Borrowers may elect to have borrowings either in United States dollars or Canadian dollars under the Canadian Loan Agreement, which will bear interest at a base rate or a LIBOR rate, in each case, plus an applicable margin, in the case of borrowings in United States dollars, or at a Canadian Prime Rate (as announced from time to time by PNC Canada) or a Canadian deposit offered rate (“CDOR”) as determined from time to time by PNC Canada in accordance with the Canadian Loan Agreement. The applicable margin for these borrowings will range from 0.50% to 1.50% per annum, in the case of base rate borrowings and Canadian Prime Rate borrowings, and 1.50% to 2.50% per annum, in the case of LIBOR borrowings and CDOR borrowings. The Canadian Loan Agreement also requires the Canadian Borrowers to pay (i) an unused line fee on the unused portion of the loan commitments in an amount ranging between 0.175% and 0.25% per annum, based upon the level of the Company’s consolidated total net leverage ratio, and (ii) an upfront fee equal to 0.25% of the principal amount of the Note.

There were no amounts outstanding under the Revolving Canadian Loan as of December 31, 2022 and 2021.

The Canadian Loan Agreement also contains customary representations and warranties, and affirmative and negative covenants, including, among others, limitations on additional indebtedness, entry into new lines of business, entry into guarantee agreements, making of any loans or advances to, or investments in, any other person, restrictions on liens on the assets of the Canadian Borrowers and mergers, transfers of assets and acquisitions. The Canadian Loan Agreement and Note also contain customary events of default that include, among others, non-payment of principal, interest or fees, violation of covenants, inaccuracy of representations and warranties, failure to make payment on, or defaults with respect to, certain other material indebtedness, bankruptcy and insolvency events, material judgments and change of control provisions.

Upon the occurrence of an event of default, and after the expiration of any applicable grace period, payment of any outstanding loans under the Canadian Loan Agreement may be accelerated.

Short-Term Debt

In July 2021, the Company entered into a short-term loan facility for insurance premiums with Aon Premium Finance for $3,436 with a maturity date of June 27, 2022. The loan had fixed annual interest of 3.75% on the outstanding balance and required monthly payments of principal and interest of $318. As of December 31, 2021, $1,889 was outstanding.

In July 2021, the Company entered into a short-term loan facility for insurance premiums with IPFS Corporation for $410 with a maturity date of June 27, 2022. The loan had fixed annual interest of 1.98% on the outstanding balance and required monthly payments of principal and interest of $37. As of December 31, 2021, $221 was outstanding.

In November 2021, the Company entered into a short-term loan facility for insurance premiums with IPFS Corporation for $1,183 with a maturity date of October 4, 2022. The loan had fixed annual interest of 1.98% on the outstanding balance and required monthly payments of principal and interest of $108. As of December 31, 2021, $1,064 was outstanding.

In July 2022, the Company entered into a short-term loan facility for insurance premiums with AFCO Credit Corporation for $3,989 with a maturity date of June 27, 2023. The loan has fixed annual interest of 5.75% on the outstanding balance and requires monthly payments of principal and interest of $373. As of December 31, 2022, $2,211 was outstanding.

Fair Value of Debt

The fair value of our Term Loan is based upon established market prices for the securities using Level 2 inputs. The fair value of our Term Loan as of December 31, 2022 was $151,530 compared to its carrying value of $148,563. The Company classifies its long-term debt within Level 2 of the fair value hierarchy

Interest Rate Swaps

In September 2021, we entered into an interest rate swap agreement to hedge forecasted monthly interest rate payments on our floating rate debt. As of December 31, 2022, we had the following interest rate swap agreement (the “Swap Agreement”):

Effective date

    

Notional amount

    

Fixed rate

 

September 30, 2021 through July 23, 2026

    

$

100,000

    

0.875

%

Under the terms of the Swap Agreement, we receive or make payments based on the 1-month LIBOR (approximately 4.38% as of December 31, 2022).

During the year ended December 31, 2022, there were no interest rate swap agreements that expired.

We entered into the Swap Agreement to convert a portion of the interest rate exposure on our floating rate debt from variable to fixed. We designated this Swap Agreement as a cash flow hedge. A portion of the amount included in accumulated other comprehensive income (loss) is reclassified into interest expense, net as a yield adjustment as interest is either paid or received on the hedged debt. The fair value of our Swap Agreement is based upon Level 2 inputs. We have considered our own credit risk and the credit risk of the counterparties when determining the fair value of our Swap Agreement.

It is our policy to execute such instruments with creditworthy banks and not to enter into derivative financial instruments for speculative purposes. We believe our interest rate swap counterparty will be able to fulfill their obligations under our agreement, and we believe we will have debt outstanding through the expiration date of the swap such that the occurrence of future cash flow hedges remains probable.

The estimated fair value of our Swap Agreement in the consolidated balance sheets was as follows:

    

Balance sheet accounts

    

December 31, 2022

    

December 31, 2021

Other current assets

$

3,619

$

Other assets

$

5,366

$

1,607

Accrued liabilities

$

$

389

A cumulative gain, net of tax, of $6,739 and $913 is recorded in accumulated other comprehensive income (loss) as of December 31, 2022 and 2021, respectively.

The amount of gain, net of tax, recognized in other comprehensive income for the years ended December 31, 2022 and 2021 was $6,444 and $767, respectfully. There was $618, net of tax, reclassified from accumulated other comprehensive income (loss) into earnings for the year ended December 31, 2022.

As of December 31, 2022, approximately $3,646 is expected to be reclassified from accumulated other comprehensive income (loss) into interest expense over the next 12 months.

XML 35 R19.htm IDEA: XBRL DOCUMENT v3.22.4
SHAREHOLDERS' EQUITY
12 Months Ended
Dec. 31, 2022
SHAREHOLDERS' EQUITY  
SHAREHOLDERS' EQUITY
12.SHAREHOLDERS’ EQUITY

Initial Public Offering

On November 3, 2021, the Company completed its initial public offering (“IPO”) in which the Company issued and sold 6,900,000 shares, which included 900,000 shares that were offered and sold pursuant to the full exercise of the underwriters’

over-allotment option, of common stock at a public offering price of $13.00 per share. The Company’s net proceeds from the sale of shares in the IPO was $78,581 after underwriter discounts and commissions, fees and expenses of $11,119, of which $2,250 was paid to Kanders & Company, Inc., a company controlled by Warren B. Kanders, our Chief Executive Officer.

Secondary Offering

On June 9, 2022, the Company completed a secondary offering in which the Company issued and sold 2,250,000 shares of common stock at a price of $23.50 per share. The Company’s net proceeds from the sale of shares were $46,987 after underwriter discounts and commissions, fees and expenses of $2,715, of which $2,000 was paid to Kanders & Company, Inc., a company controlled by Warren B. Kanders, our Chief Executive Officer.

On July 14, 2022, the underwriters exercised a portion of their over-allotment option and purchased an additional 300,000 shares of common stock at a price of $23.50 per share, resulting in net proceeds to the Company of $6,389 after underwriter discounts and commissions, fees and expenses of $661.

Dividends

In August 2021, the Company declared and paid a $10,000, or $0.36 per share, dividend to shareholders on record as of August 11, 2021.

On November 11, 2021, the Company announced that its board of directors approved the initiation of a quarterly cash dividend policy of $0.08 per share of the Company’s common stock (the “Quarterly Cash Dividend”) or $0.32 per share on an annualized basis. The declaration and payment of future Quarterly Cash Dividends is subject to the discretion of and approval of the Company’s board of directors. Our Quarterly Cash Dividends totaled $11,509 and $2,751 for the years ended December 31, 2022 and 2021, respectively.

XML 36 R20.htm IDEA: XBRL DOCUMENT v3.22.4
STOCK-BASED COMPENSATION
12 Months Ended
Dec. 31, 2022
STOCK - BASED COMPENSATION  
STOCK-BASED COMPENSATION
13.STOCK-BASED COMPENSATION

2021 Phantom Restricted Share Plan

The Company maintains a cash-based executive compensation plan for certain employees. The Company’s board of directors awarded 1,433,500  interests in the plan (“units”). Each unit represents an unfunded and unsecured right, subject to certain conditions as set forth by the plan. One-third of the units granted to any holder will vest on each of the first, second, and third anniversaries of March 18, 2021 during the term of such holder’s employment with the Company. Payment of a holder’s vested balance is dependent upon a transaction or series of related transactions constituting a qualifying exit event, as defined by the executive compensation plan. The plan will expire on March 18, 2025, at which time the plan and all awarded units will be terminated for no consideration if a qualifying exit event has not occurred before that date.

On March 9, 2022, the Company’s board of directors modified the performance condition, specifically the definition of a qualifying exit event. In addition, the board of directors approved the settlement of vested and unvested units in common stock rather than cash, which resulted in a change in classification of the outstanding units from liability to equity. As a result, modification of the units occurred on March 9, 2022 with a grant date fair value of $23.45, the closing stock price of the Company on the date of modification. There were 632,500 units that vested March 18, 2022 and 791,667 units that will vest in equal amounts on the second and third anniversaries of the plan. The Company recognized compensation expense of $22,100 on March 9, 2022, the date the performance condition became probable.

A summary of our phantom award activity for the year ended December 31, 2022 is as follows:

Weighted Average 

Grant Date

Shares

Fair Value

Outstanding at December 31, 2021

1,433,500

 

$

Granted

 

Vested

 

(632,500)

 

23.45

Forfeited

 

(9,333)

 

23.45

Outstanding at December 31, 2022

791,667

 

$

23.45

The total fair value of phantom awards vested in 2022 was $22,649.

Compensation cost related to phantom awards was $28,578 for the year ended December 31, 2022 and is recorded in selling, general, and administrative expense. As of December 31, 2022, there was $4,679 of unrecognized compensation cost related to phantom awards, which is expected to be recognized over a weighted-average period of 1.2 years.

2021 Stock Incentive Plan

In November 2021, we adopted the 2021 Stock Incentive Plan (the “2021 Plan”). The 2021 Plan provides for the grant of incentive stock options to our employees and any parent and subsidiary companies’ employees, and for the grant of non-statutory stock options, restricted stock, restricted stock units (“RSUs”), stock appreciation rights (“SARs”), performance units, and performance shares to our employees, directors, and consultants and our parent and subsidiary companies’ employees and consultants. The maximum aggregate number of shares of common stock that may be issued under the 2021 Plan is 9,650,000 shares. As of December 31, 2022, 4,418 shares of common stock were reserved and available for issuance under the 2021 Plan.

Market Condition Restricted Shares

On November 4, 2021, the Company issued and granted to certain employees a total of 2,600,000 RSUs under the 2021 Plan, of which 2,600,000 RSUs will vest if, on or before November 8, 2031, the Fair Market Value (as defined in the Plan) of the Company’s common stock shall have equaled or exceeded $40.00 per share for twenty consecutive trading days. For computing the fair value of the 2,600,000 RSUs with a market condition, the fair value of the RSU grant has been estimated as of the date of grant using the Monte-Carlo pricing model with the assumptions below.

2021

Number issued

2,600,000

Vesting period

$40.00 stock price target

Grant price (per share)

$4.65

Dividend yield

0.0%

Expected volatility

32.08%

Risk-free interest rate

1.59%

Expected term (years)

5.67

Weighted average fair value (per share)

$4.65

A summary of our market condition RSU activity for the year ended December 31, 2022 is as follows:

Weighted Average 

Grant Date

Shares

Fair Value

Outstanding at December 31, 2021

2,600,000

 

$

4.65

Granted

 

Vested

 

 

Forfeited

 

 

Outstanding at December 31, 2022

2,600,000

 

$

4.65

Compensation cost related to market condition RSUs was $2,132 for the year ended December 31, 2022 and is recorded in selling, general, and administrative expense. As of December 31, 2022, there was $9,602 of unrecognized compensation cost related to market condition RSUs, which is expected to be recognized over a weighted-average period of 4.5 years.

Stock Options

During the year ended December 31, 2022, the Company issued stock options for an aggregate of 373,479 shares under the 2021 Plan to directors and employees of the Company. The options issued during the year ended December 31, 2022 generally vest and become exercisable over a period of one to three years and expire ten years from the date of the grant.

For computing the fair value of the stock-based awards, the fair value of each option grant has been estimated as of the date of grant using the Black-Scholes option-pricing model with the following assumptions:

2022

Number issued

373,479

Vesting period

1 - 3 years

Grant price (per share)

$23.45 - $23.70

Dividend yield

1.35% - 1.36%

Expected volatility

33.22%

Risk-free interest rate

1.12%

Expected term (years)

4.61 - 6.00

Weighted average fair value (per share)

$6.69

A summary of our stock option activity for the year ended December 31, 2022 is as follows:

Weighted 

Aggregate

Weighted Average 

Average 

Intrinsic

Remaining Contractual

Options

Exercise Price

Value

Life (in years)

Outstanding at December 31, 2021

 

$

 

$

Granted

 

373,479

23.46

 

10.0

Exercised

 

 

 

 

Forfeited

 

(5,868)

 

23.45

 

 

9.6

Outstanding at December 31, 2022

367,611

 

$

23.46

 

$

9.2

Fully vested options outstanding at December 31, 2022

64,000

 

$

23.51

 

$

9.2

There were no options exercisable as of December 31, 2022 as the exercise price of all outstanding options was greater than the closing stock price.

Compensation cost related to stock options was $974 for the year ended December 31, 2022 and is recorded in selling, general, and administrative expense. As of December 31, 2022, there was $1,486 of unrecognized compensation cost related to stock options, which is expected to be recognized over a weighted-average period of 2.2 years.

Restricted Stock Units

During the year ended December 31, 2022, the Company granted 85,108 RSUs under the 2021 Plan to employees of the Company. The RSUs will vest in three equal installments over a three-year period from the date of grant and have a grant date fair value of the closing stock price of the Company on the date of grant.

A summary of our RSU activity for the year ended December 31, 2022 is as follows:

Weighted Average 

Grant Date

Shares

Fair Value

Outstanding at December 31, 2021

 

$

Granted

 

85,108

23.45

Vested

 

 

Forfeited

 

(1,614)

 

23.45

Outstanding at December 31, 2022

83,494

 

$

23.45

Compensation cost related to RSUs was $531 for the year ended December 31, 2022 and is recorded in selling, general, and administrative expense. As of December 31, 2022, there was $1,427 of unrecognized compensation cost related to RSUs, which is expected to be recognized over a weighted-average period of 2.2 years.

XML 37 R21.htm IDEA: XBRL DOCUMENT v3.22.4
COMPENSATION AND DEFINED CONTRIBUTION PLANS
12 Months Ended
Dec. 31, 2022
COMPENSATION AND DEFINED CONTRIBUTION PLANS  
COMPENSATION AND DEFINED CONTRIBUTION PLANS
14.COMPENSATION AND DEFINED CONTRIBUTION PLANS

The Company and its wholly owned subsidiaries sponsor Internal Revenue Code Section 401(k) defined contribution plans for the benefit of all full-time and part-time employees. Employees are entitled to make tax- deferred contributions up to the maximum allowed by law of their eligible compensation.

The Company sponsors various other non-U.S. Defined Contribution and Defined Profit-Sharing Plans that are offered by the Company’s foreign subsidiaries. Many of these plans were assumed through the Company’s acquisitions or are required by local regulatory requirements. The Company may deposit funds for these plans with insurance companies, or into government-managed accounts consistent with local regulatory requirements, as applicable.

Contribution to the plans are made by both the employee and the Company. The Company’s contributions to the plans was $3,198 and $1,780 for the years ended December 31, 2022 and 2021, respectively.

Long-Term Incentive Plan

In March 2021, the Company initiated a cash-based long-term incentive plan. Each award granted under the plan shall be eligible to vest in three equal annual installments over a period of three consecutive one-year performance periods, with each installment of the award vesting on the last day of the applicable performance period, subject to the achievement of the performance metrics established by the board of directors for the applicable annual performance period.

On March 9, 2022, the Company’s board of directors approved the common stock settlement of vested awards of the long-term incentive plan. The board of directors also approved the option to settle unvested awards in common stock. Modification accounting was not applied as this change did not affect the fair value of the awards, vesting conditions, or the liability classification of the awards.

Total compensation expense related to this plan was $1,369 and $2,162 for the years ended December 31, 2022 and 2021, respectively, and is included in selling, general and administrative in the Company’s consolidated statements of operations and comprehensive income.

XML 38 R22.htm IDEA: XBRL DOCUMENT v3.22.4
COMMITMENTS AND CONTINGENCIES
12 Months Ended
Dec. 31, 2022
COMMITMENTS AND CONTINGENCIES  
COMMITMENTS AND CONTINGENCIES
15.COMMITMENTS AND CONTINGENCIES

Legal Proceedings

In March 2020, the Company settled an administrative enforcement action filed by the U.S. Federal Trade Commission (“FTC”) relating to Company’s sale of VieVu, LLC to Axon Enterprise Inc. (“Axon”) wherein the FTC alleged that the operative agreements contained non-compete and non-solicitation provisions in violation of Section 5 of the Federal Trade Commission Act, as amended, 15 U.S.C. § 45, and Section 7 of the Clayton Act, as amended, 15 U.S.C. § 18. The FTC’s administrative complaint sought only injunctive relief against the Company to enjoin the enforcement of these provisions, now and in the future, and did not seek monetary damages against the Company. In January 2020, the Company and Axon had rescinded these provisions. Pursuant to a consent agreement and proposed consent order entered into by the FTC and the Company, on June 11, 2020, the FTC issued a Decision and Order accepting the Consent Agreement (the “Order”). Under the Order, the Company agreed to not modify and reinstate the rescinded provisions and to not enter into any new similar provisions with Axon, absent prior approval from the FTC. In addition, as part of the Company’s compliance program, the Order imposes an obligation to distribute to, and train the directors and officers on, the requirements of the consent order and to report annually for five years to the FTC ensuring compliance with the consent order. On July 10, 2020, the Company filed its Interim Verified Compliance Report and, thereafter, on June 11, 2021 and June 10, 2022, filed its Annual Compliance Reports, each as required by the Order.

In September 2021, Safariland, LLC, a wholly-owned subsidiary of the Company, received a jury verdict awarding $7,500 to a plaintiff relating to a personal injury case wherein the plaintiff alleged various product liability claims against Safariland, LLC. The plaintiff in the proceeding, Mr. David Hakim, instituted the proceeding on July 24, 2015, through the filing of a complaint with the United States District Court, Northern District of Illinois, Eastern Division. In the proceeding, the plaintiff, a SWAT officer with the DuPage County Sheriff’s Office (“DCSO”), alleged that he suffered injuries during a training exercise conducted by DCSO in which a Defense Technology Shotgun Breaching TKO round was deployed and passed through a door and lower-floor ceiling causing a fragment to strike plaintiff’s back resulting in injury. Prior to the jury rendering its verdict, the court deferred ruling on Safariland, LLC’s Motion for Judgment as a Matter of Law (“JMOL”). On November 8, 2021, Safariland, LLC filed its post-trial motions, including a supplemental JMOL, motion for new trial and remittitur. On April 18, 2022, the court denied Safariland, LLC’s JMOL, motion for new trial and remittitur and, accordingly, entered a judgment in favor of plaintiff, David Hakim, as to the Third Claim. In response, Safariland, LLC timely filed its notice of appeal with the United States Court of Appeals for the Seventh Circuit.  Safariland and Plaintiff have filed their appeal briefs, and oral arguments were held on October 25, 2022. While any litigation contains an element of uncertainty, the Company believes it is reasonably possible, not probable, that the Company could incur losses related to this case, however, any losses would be indemnified by our insurance carrier under applicable policies.

The Company is also involved in various legal disputes and other legal proceedings and claims that arise from time to time in the ordinary course of business. The Company vigorously defends itself against all lawsuits and evaluates the amount of reasonably possible losses that the Company could incur as a result of these matters. While any litigation contains an element of uncertainty, the Company believes that the reasonably possible losses that the Company could incur in excess of insurance coverage would not have a material adverse effect on the Company’s consolidated financial position, results of operations, or liquidity.

Insurance

The Company has various insurance policies, including product liability insurance, covering risks and in amounts it considers adequate. There can be no assurance that the insurance coverage maintained by the Company is sufficient or will be available in adequate amounts or at a reasonable cost.

International

As an international company, we are, from time to time, the subject of investigations relation to the Company’s international operations, including under U.S. export control laws (such as ITAR), the FCPA and other similar U.S. and international laws.

XML 39 R23.htm IDEA: XBRL DOCUMENT v3.22.4
INCOME TAXES
12 Months Ended
Dec. 31, 2022
INCOME TAXES  
INCOME TAXES
16. INCOME TAXES

Consolidated income from continuing operations before provision for income taxes consisted of the following:

Year ended December 31, 

2022

    

2021

U.S. operations

$

6,455

$

18,243

Foreign operations

2,918

949

Income before provision for income taxes

$

9,373

$

19,192

The provision for income taxes is detailed below:

Year ended December 31, 

2022

    

2021

Current tax provision:

Federal

$

2,711

$

State

 

624

 

907

Foreign

 

1,305

 

852

Total current provision

 

4,640

 

1,759

Deferred tax (benefit) provision:

Federal

 

(24)

 

4,704

State

 

(5)

 

897

Foreign

 

(1,058)

 

(829)

Total deferred (benefit) provision

 

(1,087)

 

4,772

Total provision for income taxes

$

3,553

$

6,531

The following is a reconciliation of the statutory federal income tax rate to the effective rate reported in the Company’s consolidated financial statements:

    

Year ended December 31, 

2022

    

2021

 

Federal statutory rate

21.0

%

21.0

%

Increase (decrease) in income taxes resulting from:

State income taxes, net of federal income taxes

 

5.6

 

8.4

Change in valuation allowance

 

 

0.8

Current year tax credits

 

(6.5)

 

(4.7)

Difference between foreign and federal tax rate

 

5.4

 

2.8

Permanent items

 

12.2

 

5.2

Reserve for uncertain tax positions

 

0.5

 

Other

 

(0.3)

 

0.5

Effective tax rate

 

37.9

%

34.0

%

Deferred taxes have not been recognized for the excess financial reporting basis over the tax basis of investments of foreign subsidiaries. It is the Company’s intent to permanently reinvest the earnings of those foreign subsidiaries in those jurisdictions. It is not practical to determine the amount of any unrecognized deferred tax liability on this item.

Deferred income tax assets and liabilities are determined based on the difference between the financial reporting carrying amounts and tax bases of existing assets and liabilities and operating loss and tax credit carryforwards. The tax effects of temporary differences giving rise to significant components of the Company’s deferred income tax assets and liabilities are as follows:

    

December 31, 

2022

    

2021

Deferred tax assets:

Net operating loss and other carry forwards

$

7,335

$

12,477

Accrued liabilities

 

3,351

 

3,831

Reserves and other

 

3,039

 

2,265

263A uniform capitalization costs

 

201

 

657

Other deferred tax assets

 

5,232

 

1,911

Total deferred tax assets

 

19,158

 

21,141

Valuation allowance

 

(1,888)

 

(1,890)

Net deferred tax assets

 

17,270

 

19,251

Deferred tax liabilities:

Intangibles

 

(5,789)

 

(2,624)

Depreciation

 

(4,447)

 

(3,403)

Goodwill

 

(7,560)

 

(6,594)

Other

 

(727)

 

(868)

Total deferred tax liabilities

 

(18,523)

 

(13,489)

Total deferred income taxes

$

(1,253)

$

5,762

In assessing the realizability of deferred income tax assets, the Company performs an evaluation of whether it is more likely than not that some portion, or all, of its deferred income tax assets will not be realized. During the course of this evaluation, the Company considers all available positive and negative evidence and if, based upon the weight of available evidence, it is more likely than not the deferred tax assets will not be realized, a valuation allowance is recorded. Based on its current evaluation, the Company determined it was appropriate to decrease its valuation allowance by $2 for the year ended December 31, 2022.

As of December 31, 2022, the Company had net operating loss carryforwards that expire in varying amounts beginning in 2023 through 2038 and tax credit carryforwards that expire in varying amounts beginning in 2023 through 2037.

The total amount of unrecognized benefits on uncertain tax positions that, if recognized, would affect the Company’s effective tax rate was $1,986. A reconciliation of the change in the unrecognized income tax benefit for the years ended December 31, 2022 and 2021 is as follows:

    

Year ended December 31, 

2022

    

2021

Beginning unrecognized tax benefits

$

2,090

$

2,122

Current period unrecognized tax benefits

 

39

 

(32)

Foreign currency fluctuations

(143)

Ending unrecognized tax benefits

$

1,986

$

2,090

The Company recognizes interest expense and penalties related to unrecognized tax benefits as income tax expense. No amounts representing penalties and interest were recorded as income tax expense during the years ended December 31, 2022 and 2021. The Company had no interest or penalties accrued in the consolidated balance sheets as of December 31, 2022 and 2021.

The Company and its subsidiaries file income tax returns in the U.S. federal, various state and local, and certain foreign jurisdictions. As of December 31, 2022, the Company’s tax years subsequent to 2016 are subject to examination by tax authorities with few exceptions. One of the Company’s Canadian subsidiaries underwent an examination of its tax filings for the period June 1, 2016 through December 31, 2017. In January 2022, the Company received notification that the Canadian tax authority has completed its examination and proposed no changes to the tax filings.

XML 40 R24.htm IDEA: XBRL DOCUMENT v3.22.4
LEASES
12 Months Ended
Dec. 31, 2022
LEASES  
LEASES

17.LEASES

The Company leases certain manufacturing and office space, retail locations, and equipment. Operating lease assets and liabilities are recognized at the commencement date based on the present value of lease payments over the lease term. The Company has elected not to recognize a lease liability or right-of-use (“ROU”) asset for short-term leases (leases with a term of twelve months or less). The Company uses its incremental borrowing rate based on the information available at the commencement date in determining the present value of lease payments. The Company’s incremental borrowing rate is the rate for collateralized borrowings based on the current economic environment, credit history, credit rating, value of leases, currency in which the lease obligation is satisfied, rate sensitivity, lease term and materiality. Our operating leases have remaining contractual terms of up to five years, some of which include options to extend the leases for up to five years.

The amount of assets and liabilities related to our operating leases were as follows:

Balance sheet accounts

    

December 31, 2022

Assets:

Operating lease assets

Operating lease assets

$

8,489

Liabilities:

Current:

Operating lease liabilities

Accrued liabilities

$

3,773

Long-term:

Operating lease liabilities

Long-term operating lease liabilities

4,965

Total lease liabilities

$

8,738

The components of lease expense are recorded to cost of sales and selling, general and administration expenses in the consolidated statements of comprehensive income. The components of lease expense were as follows:

    

December 31, 2022

Fixed operating lease costs(1)

 

$

4,047

Variable operating lease costs

1,329

Total

$

5,376

(1) Includes short-term leases, which are immaterial.

The weighted average remaining lease term and weighted average discount rate is as follows:

    

December 31, 2022

Weighted average remaining lease term (years):

 

Operating leases

2.62

Weighted average discount rate:

Operating leases

2.96%

The approximate future minimum lease payments under operating leases as of December 31, 2022 are as follows:

2023

$

4,012

2024

 

2,958

2025

 

1,560

2026

 

513

2027

 

75

Thereafter

 

Total future lease payments

9,118

Less: Amount representing interest

(380)

Present value of lease liabilities

$

8,738

Future minimum lease payments required under non-cancelable operating leases as of December 31, 2021 are as follows:

2022

$

4,293

2023

 

3,853

2024

 

2,725

2025

 

1,391

2026

 

406

Thereafter

 

35

Total minimum lease payments

$

12,703

Supplemental cash flow information related to leases is as follows:

    

December 31, 2022

Cash paid for amounts included in the measurement of lease liabilities:

 

Operating cash flows - operating leases

$

4,047

Right-of-use assets obtained in exchange for lease liabilities:

Operating leases

$

XML 41 R25.htm IDEA: XBRL DOCUMENT v3.22.4
RELATED PARTY TRANSACTIONS
12 Months Ended
Dec. 31, 2022
RELATED PARTY TRANSACTIONS  
RELATED PARTY TRANSACTIONS

18.RELATED PARTY TRANSACTIONS

The Company leases several distribution warehouses and retail stores from related parties. During the years ended December 31, 2022 and 2021 the Company made payments and recorded rent expense related to these leases of $478 and $579 respectively which are included in related party expense in the Company’s consolidated statements of operations and comprehensive income.

For the year ended December 31, 2022, the Company made the following payments to Kanders & Company, Inc., a company controlled by Warren B. Kanders, our Chairman of the Board:

$1,000 for services related to the acquisition of Cyalume, which is included in related party expense in the Company’s consolidated statements of operations and comprehensive income.
$2,000 for services related to the Company’s secondary offering, which is included in direct offering costs and recorded against offering proceeds in additional paid in capital in the Company’s consolidated balance sheets.

For the year ended December 31, 2021, the Company made the following payments to Kanders & Company, Inc.:

$2,250 for services related to the Company’s initial public offering, which is included in direct offering costs and recorded against offering proceeds in additional paid in capital in the Company’s consolidated balance sheets.
$1,000 for services related to the execution of the New Credit Agreement, which is included in debt issuance costs and recorded as an offset to long-term debt in the Company’s consolidated balance sheets.
XML 42 R26.htm IDEA: XBRL DOCUMENT v3.22.4
RESTRUCTURING
12 Months Ended
Dec. 31, 2022
RESTRUCTURING  
RESTRUCTURING

19.RESTRUCTURING

During the year ended December 31, 2021, the Company initiated and completed a plan to consolidate operations in the U.K. and incurred and paid $395 of restructuring changes.

Restructuring expenses are included within restructuring and transactions costs in the Company’s consolidated statements of operations and comprehensive income.

XML 43 R27.htm IDEA: XBRL DOCUMENT v3.22.4
SEGMENT DATA
12 Months Ended
Dec. 31, 2022
SEGMENT DATA  
SEGMENT DATA

20.SEGMENT DATA

Our operations are comprised of two reportable segments: Product and Distribution. Segment information is consistent with how the chief operating decision maker (“CODM”), our chief executive officer, reviews the business, makes investing and resource

allocation decisions and assesses operating performance. Senior management evaluates segment performance based on segment profit. Each segment’s profit is measured as gross profit. The CODM is not provided asset information or operating expenses by segment.

    

Year ended December 31, 2022

Reconciling

    

    Product    

    

Distribution

    

 Items(1)

    

      Total      

Net sales

    

$

385,423

    

$

97,106

$

(24,692)

    

$

457,837

Cost of goods sold

230,245

76,633

(24,719)

282,159

Gross profit

$

155,178

$

20,473

$

27

$

175,678

    

Year ended December 31, 2021

Reconciling

    

    Product    

    

Distribution

    

 Items(1)

    

      Total      

Net sales

    

$

362,189

    

$

90,043

    

$

(24,944)

    

$

427,288

Cost of goods sold

213,881

67,649

(24,932)

256,598

Gross profit

$

148,308

$

22,394

$

(12)

$

170,690

(1)Reconciling items consist primarily of intercompany eliminations and items not directly attributable to operating segments.
XML 44 R28.htm IDEA: XBRL DOCUMENT v3.22.4
SIGNIFICANT ACCOUNTING POLICIES (Policies)
12 Months Ended
Dec. 31, 2022
SIGNIFICANT ACCOUNTING POLICIES  
Nature of Operations and Basis of Presentation

Nature of Operations and Basis of Presentation

Cadre Holdings, Inc., D/B/A The Safariland Group (the “Company”, “Cadre”, “we”, “us”, and “our”), a Delaware corporation, began operations on April 12, 2012. The Company, headquartered in Jacksonville, Florida, is a global leader in manufacturing and distributing safety and survivability products and other related products for the law enforcement, first responder and military markets. The business operates through 16 manufacturing plants within the U.S., Mexico, Canada, the United Kingdom, Italy, France and Lithuania, and sells its products worldwide through its direct sales force, distribution channel and distribution partners, online stores, and third-party resellers.

Principles of Consolidation

Principles of Consolidation

The accompanying consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (“GAAP” or “U.S. GAAP”) and include the accounts of Cadre Holdings, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.

Stock Split

Stock Split

In July 2021, the Company effected a 50-for-1 stock split of its common stock and preferred stock. All share and per share information has been retroactively adjusted to reflect the stock split for all periods presented.

Emerging Growth Company

Emerging Growth Company

We are an “emerging growth company,” as defined in the Jumpstart Our Business Startups Act of 2012 (the “JOBS Act”). As such, we are eligible for exemptions from various reporting requirements applicable to other public companies that are not emerging growth companies, including, but not limited to, presenting only two years of audited financial statements, not being required to comply with the auditor attestation requirements of Section 404 of the Sarbanes-Oxley Act of 2002, reduced disclosure obligations regarding executive compensation, and an exemption from the requirements to obtain a non-binding advisory vote on executive compensation or golden parachute arrangements.

In addition, an emerging growth company can take advantage of an extended transition period for complying with new or revised accounting standards. This provision allows an emerging growth company to delay the adoption of certain accounting standards until those standards would otherwise apply to private companies. We have elected to avail ourselves of this provision of the JOBS Act. As a result, we will not be subject to new or revised accounting standards at the same time as other public companies that are not emerging growth companies. Therefore, our consolidated financial statements may not be comparable to those of companies that comply with new or revised accounting pronouncements as of public company effective dates.

Use of Estimates

Use of Estimates

The preparation of these consolidated financial statements requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenue and expenses during the reporting period. Actual results could differ from these estimates.

Fair Value Measurements

Fair Value Measurements

The Company follows the guidance of Accounting Standards Codification (“ASC”) Topic 820, Fair Value Measurements and Disclosures, which defines fair value, establishes a framework for measuring fair value and expands disclosures about fair value

measurements. This guidance also establishes the following three-level hierarchy based upon the transparency of inputs to the valuation of an asset or liability on the measurement date:

Level 1: Observable inputs that reflect unadjusted quoted prices for identical assets or liabilities traded in active markets.

Level 2: Inputs other than quoted prices included within Level 1 that are observable for the asset or liability, either directly or indirectly, for substantially the full term of the asset or liability.

Level 3: Unobservable inputs that reflect assumptions about what market participants would use in pricing assets or liabilities based on the best information available.

The Company’s financial instruments consist principally of cash, accounts receivable, prepaid expenses, other current assets, accounts payable, accrued liabilities, income tax payable and debt. The carrying amounts of certain of these financial instruments, including cash, accounts receivable, prepaid expenses, other current assets, accounts payable, accrued liabilities and income tax payable approximate their current fair value due to the relatively short-term nature of these accounts.

Cash and Cash Equivalents

Cash and Cash Equivalents

Included in cash and cash equivalents are deposits with banks, cash on hand in stores, and amounts due from credit card transactions. We have no restrictions on our cash and cash equivalents.

Accounts Receivable

Accounts Receivable

Trade accounts receivable consists of amounts owed to the Company and is stated net of allowances. The Company’s outstanding accounts receivable balances are exposed to credit risk and valuation allowances are established for estimated losses resulting from non-collection of outstanding amounts due from customers.

The Company establishes a reserve for estimated doubtful accounts based on the aging of its receivable balances and collection history. In addition, specific reserves are established for customer accounts as known collection problems occur due to insolvency, disputes, or other collection issues. The amounts of these specific reserves are estimated by management based on the customer’s financial position, the age of the customer’s receivables and the reasons for any disputes. The allowance for doubtful accounts is reduced by any write-off of uncollectible customer accounts.

Inventories

Inventories

Inventories are stated at the lower of cost, determined using the first-in, first-out (“FIFO”) or average cost methods, or net realizable value. Elements of cost in the Company’s manufactured inventories generally include raw materials, direct labor, indirect labor, manufacturing overhead and freight-in. The Company periodically reviews its inventories considering sales forecasts and historical experience to identify excess, close-out, or slow-moving items and makes provisions as necessary to properly reflect inventory value at the lower of cost or net realizable value.

Assets Held for Sale

Assets Held for Sale

An asset is considered to be held for sale when all of the following criteria are met: (i) management commits to a plan to sell the asset; (ii) it is unlikely that the disposal plan will be significantly modified or discontinued; (iii) the asset is available for immediate sale in its present condition; (iv) actions required to complete the sale of the asset have been initiated; (v) sale of the asset is probable and the completed sale is expected to occur within one year; and (vi) the asset is actively being marketed for sale at a price that is reasonable given its current market value.

A long-lived asset classified as held for sale is measured at the lower of its carrying amount or fair value less cost to sell. A long-lived asset is not depreciated or amortized while it is classified as held for sale.

Property and Equipment

Property and Equipment

Property and equipment, including those acquired under capital lease agreements, is stated at cost less accumulated depreciation and amortization, except for assets acquired using acquisition accounting, which are initially recorded at fair value. Depreciation is computed using the straight-line method over the following estimated useful lives:

Buildings and improvements

   

5 to 39 years

Furniture and fixtures

2 to 10 years

Computer hardware and software

3 to 5 years

Machinery and equipment

3 to 8 years

Leasehold improvements are amortized over the lesser of the estimated useful life of the improvement or the life of the lease. Major replacements, which extend the useful lives of property and equipment, are capitalized and depreciated over the remaining useful life of the asset. Normal repair and maintenance items are expensed as incurred.

The recoverability of the carrying amount of property and equipment is assessed when events or changes in circumstances indicate that the carrying amount of an asset or asset group may not be recoverable. If it is determined that the carrying amount of an asset or asset group is not recoverable based upon expected undiscounted future cash flows of the asset or asset group, an impairment loss equal to the excess of the carrying amount over the estimated fair value of the asset or asset group is recorded.

Leases

Leases

Lease assets and lease liabilities are recognized at the commencement of an arrangement where it is determined at inception that a lease exists.  Lease assets represent the right to use an underlying asset for the lease term, and lease liabilities represent the obligation to make lease payments arising from the lease.  These assets and liabilities are initially recognized based on the present value of lease payments over the lease term calculated using our incremental borrowing rate.  Lease terms include options to extend or terminate the lease when it is reasonably certain that those options will be exercised.

Variable lease payments are generally expensed as incurred and include certain non-lease components, such as common area maintenance and other services provided by the lessor, and other charges such as utilities, insurance and property taxes included in the lease.  Leases with an initial term of 12 months or less are not recorded on the balance sheet, and the expense for these short-term leases and for operating leases is recognized on a straight-line basis over the lease term. Non-lease components are excluded from the right-of-use (“ROU”) asset and lease liability present value computations. The Company’s lease agreements do not contain any material residual value guarantees or material restrictive covenants.

Goodwill and Intangible Assets

Goodwill and Intangible Assets

The Company classifies intangible assets into three categories: i) intangible assets with definite lives subject to amortization, ii) intangible assets with indefinite lives not subject to amortization and iii) goodwill. The Company determines the useful lives of its identifiable intangible assets after considering the specific facts and circumstances related to each intangible asset. Factors the Company considers when determining useful lives include the contractual term of any agreement related to the asset, the historical performance of the asset, the Company’s long-term strategy for using the asset, any laws or other local regulations which could impact the useful life of the asset, and other economic factors, including competition and specific market conditions. Intangible assets that are deemed to have definite lives are amortized on a straight-line basis over their useful lives.

The Company tests goodwill and intangible assets determined to have indefinite useful lives for impairment annually, or more frequently if events or circumstances indicate that assets might be impaired. The Company performs these annual impairment tests as of October 31st each year. Goodwill is evaluated for impairment at the reporting unit level, which is defined as an operating segment or one level below an operating segment. As of October 31, 2022 and 2021, the Company had three reporting units: Safariland, Med-Eng, and Distribution.

In evaluating goodwill for impairment, qualitative factors are considered to determine whether it is more likely than not that the fair value of a reporting unit is less than its carrying amount. Some of these qualitative factors may include macroeconomic conditions, industry and market considerations, a change in financial performance, or entity-specific events. If, through this qualitative assessment, the conclusion is made that it is more likely than not that a reporting unit’s fair value is less than its carrying amount, the Company performs a two-step goodwill impairment test. The first step involves a comparison of the fair value of a reporting unit to its carrying value. If the carrying amount of the reporting unit exceeds its fair value, the second step of the process is performed, which compares the implied value of the reporting unit goodwill with the carrying value of the goodwill of that reporting unit. If the carrying value of the goodwill of a reporting unit exceeds the implied fair value of that goodwill, an impairment loss is recognized in an amount equal to that excess.

The Company determines the fair value of reporting units based on a combination of the income approach and market approach, weighted based on the circumstances. Under the income approach, the discounted cash flow model determines fair value based on the present value of projected cash flows over a specific projection period and a residual value related to future cash flows beyond the projection period. Both values are discounted using a rate that reflects the Company’s best estimate of the weighted average cost of capital of a market participant and is adjusted for appropriate risk factors. The Company performs sensitivity tests with respect to growth rates and discount rates used in the income approach. Under the market approach, valuation multiples are derived based on a selection of comparable companies and acquisition transactions and applied to projected operating data for each reporting unit to arrive at an indication of fair value.

The Company performed the qualitative assessment of goodwill and determined it was more likely than not that the fair value of each of its reporting units would be greater than its carrying amount. Therefore, the Company determined it was not necessary to perform the quantitative goodwill impairment test.

For indefinite-lived intangible assets other than goodwill, the impairment test consists of a comparison of the fair value of the intangible asset with its carrying amount. If the carrying amount exceeds the fair value, an impairment charge is recognized in an amount equal to that excess.

The Company tests definite-lived intangible assets for recoverability when changes in circumstances indicate the carrying value may not be recoverable. Events that trigger a test for recoverability include:

material adverse changes in projected revenues and expenses;
significant underperformance relative to historical and projected future operating results;
significant negative industry or economic trends; and,
a significant adverse change in the manner in which an asset group is used or in its physical condition.

Future adverse changes in these or other unforeseeable factors could result in an impairment charge that could materially impact future results of operations and financial position in the reporting period identified.

When a triggering event occurs, a test for recoverability is performed by comparing projected undiscounted future cash flows to the carrying value of the asset group. If the test for recoverability identifies a possible impairment, the asset group’s fair value is

measured relying primarily on a discounted cash flow method. An impairment charge is recognized for the amount by which the carrying value of the asset group exceeds its estimated fair value. When an impairment loss is recognized for assets to be held and used, the adjusted carrying amount of those assets is depreciated over their remaining useful life. We did not have any events or circumstances indicating impairment of our long-lived assets for the years presented.

Accounts Payable

Accounts Payable

Accounts payable represents amounts owed by us to third parties at the end of the period. Accounts payable includes $188 and $670 of book cash overdrafts in excess of cash balances in such accounts as of December 31, 2022 and 2021, respectively. We include the change in book cash overdrafts in operating cash flows in the consolidated statements of cash flows.

Revenue Recognition

Revenue Recognition

The Company derives revenue primarily from the sale of physical products. The Company recognizes revenue when a contract exists with a customer that specifies the goods and services to be provided at an agreed upon sales price and when the performance obligation is satisfied by transferring the goods or service to the customer. The performance obligation is considered satisfied when control transfers, which is generally determined when products are shipped or delivered to the customer but could be delayed until the receipt of customer acceptance, depending on the terms of the contract. Sales are made on normal and customary short-term credit terms or upon delivery for point of sale transactions.

The Company enters into contractual arrangements primarily with customers in the form of individual customer orders which specify the goods, quantity, pricing, and associated order terms. The Company has some long-term contracts that may contain research and development performance obligations that are satisfied over time. The Company invoices the customer once the billing milestone is reached and collects under customary short-term credit terms. For long-term contracts, the Company recognizes revenue using the input method based on costs incurred, as this method is an appropriate measure of progress toward the complete satisfaction of the performance obligation. Due to uncertainties inherent in the estimation process, it is possible that estimates of costs to complete a performance obligation will be revised in the near-term. For those performance obligations for which revenue is recognized using a cost-to-cost input method, changes in total estimated costs, and related progress towards complete satisfaction of the performance obligation, are recognized on a cumulative catch-up basis in the period in which the revisions to the estimates are made. When the current estimate of total costs for a performance obligation indicate a loss, a provision for the entire estimated loss on the unsatisfied performance obligation is made in the period in which the loss becomes evident.

At the time of revenue recognition, the Company also provides for estimated sales returns and miscellaneous claims from customers as reductions to revenues. The estimates are based on historical rates of product returns and claims. The Company accrues for such estimated returns and claims with an estimated accrual and associated reduction of revenue. Additionally, the Company records inventory that it expects to be returned as part of inventories, with a corresponding reduction to cost of goods sold.

Charges for shipping and handling fees billed to customers are included in net sales and the corresponding shipping and handling expenses are included in cost of goods sold in the accompanying consolidated statements of operations and comprehensive income. We consider our costs related to shipping and handling after control over a product has transferred to a customer to be a cost of fulfilling the promise to transfer the product to the customer.

Sales commissions paid to employees as compensation are expensed as incurred for contracts with service periods less than a year. For contracts with service periods greater than a year, these costs are capitalized and amortized over the life of the contract. These costs are recorded in selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income.

Product Warranty

Product Warranty

Some of the Company’s manufactured products carry limited warranty provisions for defects in quality and workmanship. A warranty reserve is established at the time of sale to cover estimated costs based on the Company’s history of warranty repairs and replacements and is recorded in cost of goods sold in the Company’s consolidated statements of operations and comprehensive income.

The following table sets forth the changes in the Company’s accrued warranties, which is recorded in accrued liabilities in the consolidated balance sheets:

Year ended December 31, 

    

2022

    

2021

Beginning accrued warranty expense

$

1,256

$

1,133

Current period claims

 

(278)

 

(399)

Provision for current period sales

 

256

 

522

Ending accrued warranty expense

$

1,234

$

1,256

Cost of Goods Sold

Cost of Goods Sold

Cost of goods sold includes raw material purchases, manufacturing-related labor costs, contracted labor, shipping costs, reimbursable research and development costs, allocated manufacturing overhead, facility costs, depreciation and amortization, and product warranty costs.

Selling, General & Administrative Expenses

Selling, General & Administrative Expenses

Selling, general and administrative expense includes personnel-related costs, including stock-based compensation, professional services, marketing and advertising expense, research and development, depreciation and amortization, and impairment charges.

Advertising Expenses

Advertising Expenses

Advertising costs are expensed in the period incurred. Advertising expenses primarily consist of marketing, promotions, catalog and trade show expenses and were $4,711 and $3,120 during the years ended December 31, 2022 and 2021, respectively. Advertising expenses are included in selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income.

Research and Development

Research and Development

Research and development expenses are expensed as incurred and included within selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income. Total research and development costs were $7,086 and $6,460 for the years ended December 31, 2022 and 2021, respectively.

In addition, the Company incurs research and development expenses related to reimbursable development contracts. Contractual research and development expenses are included in cost of goods sold in the Company’s consolidated statements of operations and comprehensive income and were $1,639 and $5,895 for the years ended December 31, 2022 and 2021, respectively.

Debt Issuance Costs

Debt Issuance Costs

The Company capitalizes costs related to the issuance of debt under the provisions of ASC Subtopic 835-30, Interest — Imputation of Interest. Debt issuance costs related to a recognized debt liability are presented in the consolidated balance sheets as a direct deduction from the carrying amount of that debt liability and subsequently amortized on a straight-line method which approximates the effective interest method over the life of the related loan. Debt issuance costs related to line-of-credit are presented in the consolidated balance sheets as an asset and subsequently amortized ratably over the term of the respective arrangement. Amortization of debt issuance costs is included as a component of interest expense in the Company’s consolidated statements of operations and comprehensive income.

Stock-Based Compensation

Stock-Based Compensation

The Company records compensation expense for all stock-based awards granted based on the fair value of the award at the time of the grant. The fair value of each option award is estimated on the date of grant using the Black-Scholes option pricing model that uses assumptions and estimates that the Company believes are reasonable. The fair value of restricted stock awards is measured based on the closing market value of the Company’s common stock on the date of the grant. For restricted stock awards subject to market conditions, the fair value of each restricted stock award has been estimated as of the date of grant using a Monte-Carlo pricing model. The Company recognizes the cost of the stock-based awards on a straight-line basis over the requisite service period of the award and recognizes forfeitures in the period they occur. Stock options granted have contractual terms of up to ten years. Upon vesting of restricted stock awards, the Company issues shares from those authorized and reserved for issuance.

Derivatives

Derivatives

The Company mitigates the impact of changes in interest rates with interest rate swaps that are accounted for as designated hedges pursuant to ASC Topic 815, Derivatives and Hedging ("ASC 815"). ASC 815 requires that an entity recognize all derivatives as either assets or liabilities on the balance sheet, measure those instruments at fair value and recognize changes in the fair value of derivatives in earnings in the period of change unless the derivative qualifies as designated cash flow hedge that offsets certain exposures. Certain criteria must be satisfied in order for derivative financial instruments to be classified and accounted for as a cash flow hedge. Changes in the fair value of derivatives that are not elected for hedge accounting treatment are recorded immediately into earnings.

The Company would discontinue hedge accounting prospectively (i) if it is determined that the derivative is no longer effective in offsetting changes in the cash flows of a hedged item, (ii) when the derivative expires or is sold, terminated, or exercised, (iii) if it becomes probable that the forecasted transaction being hedged by the derivative will not occur, (iv) if a hedged firm commitment no longer meets the definition of a firm commitment, or (v) if it is determined that designation of the derivative as a hedge instrument is no longer appropriate. 

Restructuring Costs

Restructuring Costs

Restructuring costs consist primarily of termination benefits and relocation of employees, termination of operating leases and other contracts related to consolidating or closing facilities. The Company applies the provisions of ASC Topic 420, Exit or Disposal Cost Obligations (“ASC 420”) and ASC Topic 712, Nonretirement Postemployment Benefits (“ASC 712”) in the recording of severance costs. Severance costs accounted for under ASC 420 are recognized when management with the proper level of authority commits to a restructuring plan and communicates those actions to employees and other applicable criteria. Severance costs accounted for under ASC 712 are recognized when it is probable that employees are entitled to benefits and the amount could be reasonably estimated. Other exit costs are accounted for under ASC 420 and are either deferred or expensed as incurred based on the nature of the expense.

Income Taxes

Income Taxes

The Company accounts for income taxes under the provisions of ASC Topic 740, Income Taxes. Deferred tax assets and liabilities are determined based on differences between the financial statement carrying amounts and tax bases of assets and liabilities and are classified as noncurrent in the consolidated balance sheets.

Deferred tax assets and liabilities are measured using enacted tax rates expected to apply to taxable income in the years in which those temporary differences are expected to be recovered or settled. The effect of changes in tax rates on deferred tax assets and liabilities is recognized in income in the period that includes the enactment date. Changes in tax laws and rates could have a material impact on the deferred tax assets and liabilities recorded.

Deferred tax assets are reduced by a valuation allowance when, in the opinion of management, it is more likely than not that some portion or all of the deferred tax assets will not be realized. Significant estimates are used in the evaluation of the need for a valuation allowance including estimates regarding future taxable income. Changes to those estimates could impact management’s conclusions regarding the need for valuation allowances on some or all of the deferred tax assets. The Company releases the income tax effects of deferred tax balances that have a valuation allowance from accumulated other comprehensive income (loss) once the reason the tax effects were established ceases to exist.

The Company is subject to income taxes in the United States and several foreign jurisdictions. In the United States, the Company files a consolidated income tax return with its domestic subsidiaries. When tax returns are filed, it is highly certain that some positions taken would be sustained upon examination by taxing authorities, while others are subject to uncertainty about the merits of the position taken or the amount of the position that would be ultimately sustained. The benefit of a tax position is recognized in the consolidated financial statements in the period during which, based on all available evidence, it is more likely than not that the position will be sustained upon examination, including the resolution of appeals or litigation processes, if any. Tax positions taken are not offset or aggregated with other positions. Tax positions that meet the more-likely than-not threshold are measured as the largest amount of tax benefit that is more than 50% likely of being realized upon settlement with the applicable taxing authority. The portion of the benefits associated with tax positions taken that exceeds the amount measured as described above is reflected as a liability for unrecognized tax benefits in the accompanying balance sheets along with any associated interest and penalties that would be payable to the taxing authorities upon examination.

Further information regarding the Company’s tax positions is included in Note 16, Income Taxes.

Accumulated Other Comprehensive Income (Loss)

Accumulated Other Comprehensive Income (Loss)

Comprehensive income (loss) represents all changes in equity of the Company that result from recognized transactions and other economic events during the period. Other comprehensive income (loss) refers to revenues, expenses, gains, and losses that under GAAP are included in comprehensive income but excluded from net income.

Foreign Currency

Foreign Currency

Translation

Assets and liabilities of subsidiaries operating outside the United States with a functional currency other than U.S. Dollars are translated into U.S. Dollars using the exchange rates in effect at the balance sheet date. Results of operations are translated using the average exchange rate prevailing throughout the period. The effects of unrealized exchange rate fluctuations on translating foreign currency assets and liabilities into U.S. dollars are accumulated as the cumulative translation adjustment included in accumulated other comprehensive income (loss) in the consolidated balance sheets.

Transaction

Transactions denominated in foreign currency are recorded at the exchange rate on the date of each transaction. Realized gains and losses on foreign currency transactions are included in other income, net in the consolidated statements of operations and comprehensive income, except on certain intercompany balances which the Company has determined are of a long-term investment nature, which are included in accumulated other comprehensive income (loss) in the consolidated balance sheets. Monetary assets and liabilities are remeasured at the balance sheet date at end-of-period exchange rates. Unrealized gains and losses arising from remeasurement of foreign currency-denominated monetary assets and liabilities are included in other expense, net in the consolidated statements of operations and comprehensive income in the period in which they occur.

Net Income per Share

Net Income per Share

Basic income or loss per share is computed by dividing net income by the weighted average number of common shares outstanding during the periods presented. Diluted income or loss per share is calculated by adjusting weighted average shares outstanding for the dilutive effect of potential common shares, determined using the treasury-stock method. The calculation of weighted average shares outstanding and net income per share are as follows:

    

Year ended December 31, 

    

2022

    

2021

Net income

$

5,820

$

12,661

 

  

 

  

Weighted average shares outstanding - basic

 

36,109,844

 

28,598,692

Effect of dilutive securities:

Stock-based awards

12,530

Weighted average shares outstanding - diluted

 

36,122,374

 

28,598,692

Net income per share:

 

  

 

  

Basic

$

0.16

$

0.44

Diluted

$

0.16

$

0.44

There were no dilutive instruments outstanding for the year ended December 31, 2021.

Risk and Uncertainties

Risk and Uncertainties

Concentration of Credit Risk

Financial instruments that potentially subject the Company to concentration of credit risk consist principally of cash and accounts receivable. Risks associated with cash within the United States and foreign countries are mitigated by banking with federally insured, creditworthy institutions. As of December 31, 2022 and 2021, the Company had deposits of $10,142 and $7,593, respectively, at foreign financial institutions.

Accounts receivable are financial instruments that also expose the Company to concentration of credit risk. Such exposure is limited by the large number of customers comprising the Company’s customer base and their dispersion across different geographic areas. In addition, the Company routinely assesses the financial strength of its customers and maintains an allowance for doubtful accounts that management believes will adequately provide for credit losses. Accordingly, the Company performs ongoing credit evaluations of its customers and maintains allowances for possible losses as considered necessary by management.

Recent Accounting Pronouncements

Recent Accounting Pronouncements

Recently Adopted Accounting Pronouncements

In February 2016, the FASB issued ASU 2016-02, Leases (Topic 842), which is intended to increase transparency and comparability among organizations by requiring the recognition of right-of-use (“ROU”) assets and lease liabilities on the balance sheet. In July 2018, the FASB issued additional guidance which provided an additional transition method for adopting the updated guidance. Under the additional transition method, entities may elect to recognize a cumulative-effect adjustment to the opening balance of retained earnings in the year of adoption. In June 2020, the FASB issued additional guidance which extends the effective date of ASU 2016-02 for emerging growth companies to begin in fiscal years beginning after December 15, 2021. We adopted ASU 2016-02 prospectively on January 1, 2022. As part of the adoption, we elected the package of practical expedients which permits us under the new standard not to reassess historical lease classification, not to recognize short-term leases on our balance sheet, and not to separate lease and non-lease components for all our leases. In addition, we elected the use of hindsight to determine the lease term of its leases and applied its incremental borrowing rate based on the remaining term of its leases as of the adoption date. The impact upon adoption, on January 1, 2022, resulted in the recognition of operating right-of-use assets of $11,769, and operating lease liabilities of $12,029 on our consolidated balance sheet. Refer to Note 17, Leases, for further discussion.

In December 2019, the FASB issued ASU 2019-12, Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes. ASU 2019-12 simplifies the accounting for income taxes by removing certain exceptions to the general principles in Topic 740 and improves consistent application of and simplifies GAAP for other areas of Topic 740 by clarifying existing guidance. For emerging growth companies, this ASU is effective for fiscal years beginning after December 15, 2021, and interim periods within those fiscal years beginning after December 15, 2022. Early adoption is permitted. The Company adopted this standard on January 1, 2022, which did not result in a material impact on our consolidated financial statements and related disclosures.

Accounting Pronouncements Not Yet Adopted

In June 2016, the FASB issued ASU 2016-13, Financial Instruments — Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments. ASU 2016-13 includes an impairment model (known as the current expected credit loss model) that is based on expected losses rather than incurred losses. Under the new guidance, an entity recognizes as an allowance its estimate of expected credit losses, which the FASB believes will result in more timely recognition of such losses. The use of forecasted information is intended to incorporate more timely information in the estimate of expected credit loss. In November 2019, the FASB issued additional guidance which extends the effective date of ASU 2016-13 for emerging growth companies to begin in fiscal years beginning after December 15, 2022. Early adoption is permitted. The Company plans to adopt this standard on January 1, 2023 and is currently in the process of evaluating the impact of the adoption of this standard on its consolidated financial statements.

In March 2020, the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) 2020-04, Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting. This ASU provides temporary optional expedients and exceptions to existing guidance on contract modifications and hedge accounting to facilitate the market transition from existing reference rates, such as the London Inter-Bank Offered Rate (“LIBOR”) which is being phased out in 2021, to alternate reference rates, such as the Secured Overnight Financing Rate (“SOFR”). The standard is currently effective and upon adoption may be applied prospectively to contract modifications made on or before December 31, 2022. The provisions have impact as contract modifications and other changes occur while LIBOR is phased out. The Company is in the process of evaluating the optional relief guidance provided within this ASU. Management will continue its assessment and monitor regulatory developments during the LIBOR transition period. Currently, management does not believe that the impact of transitioning from LIBOR to SOFR will have a material effect on the interest rates of the company.

There were no other new accounting standards that the Company expects to have a potential material impact to the financial position or results of operations upon adoption.

XML 45 R29.htm IDEA: XBRL DOCUMENT v3.22.4
SIGNIFICANT ACCOUNTING POLICIES (Tables)
12 Months Ended
Dec. 31, 2022
SIGNIFICANT ACCOUNTING POLICIES  
Summary of property and equipment

Buildings and improvements

   

5 to 39 years

Furniture and fixtures

2 to 10 years

Computer hardware and software

3 to 5 years

Machinery and equipment

3 to 8 years

Summary of changes in the accrued warranties and related costs

Year ended December 31, 

    

2022

    

2021

Beginning accrued warranty expense

$

1,256

$

1,133

Current period claims

 

(278)

 

(399)

Provision for current period sales

 

256

 

522

Ending accrued warranty expense

$

1,234

$

1,256

Summary of calculation of weighted average shares outstanding and net income (loss) per share

    

Year ended December 31, 

    

2022

    

2021

Net income

$

5,820

$

12,661

 

  

 

  

Weighted average shares outstanding - basic

 

36,109,844

 

28,598,692

Effect of dilutive securities:

Stock-based awards

12,530

Weighted average shares outstanding - diluted

 

36,122,374

 

28,598,692

Net income per share:

 

  

 

  

Basic

$

0.16

$

0.44

Diluted

$

0.16

$

0.44

XML 46 R30.htm IDEA: XBRL DOCUMENT v3.22.4
ACQUISITIONS (Tables)
12 Months Ended
Dec. 31, 2022
Radar  
ACQUISITIONS  
Schedule of total consideration

Cash paid

    

$

20,844

Less: cash acquired

 

(1,479)

Total consideration, net

$

19,365

Summary of total purchase price consideration and preliminary fair value amounts recognized for assets acquired and liabilities assumed

Total consideration, net

    

$

19,365

Accounts receivable

$

2,347

Inventories

1,874

Prepaid expenses

682

Other current assets

665

Property and equipment

3,053

Intangible assets

10,200

Goodwill

7,101

Total assets acquired

25,922

Accounts payable

1,120

Deferred tax liabilities

2,787

Accrued liabilities

2,106

Long-term debt

544

Total liabilities assumed

6,557

Net assets acquired

$

19,365

Schedule of acquired intangible assets

    

Gross

    

Average Useful Life

Customer relationships

$

9,300

15

Technology

600

 

10

Trademarks

300

7

Total

$

10,200

Cyalume  
ACQUISITIONS  
Schedule of total consideration

Cash paid

    

$

38,012

Less: cash acquired

 

(1,834)

Total consideration, net

$

36,178

Summary of total purchase price consideration and preliminary fair value amounts recognized for assets acquired and liabilities assumed

Total consideration, net

    

$

36,178

Accounts receivable

$

3,302

Inventories

10,908

Prepaid expenses

255

Other current assets

10

Property and equipment

11,701

Intangible assets

8,300

Goodwill

9,101

Total assets acquired

43,577

Accounts payable

1,080

Deferred tax liabilities

4,454

Accrued liabilities

1,577

Other long-term liabilities

288

Total liabilities assumed

7,399

Net assets acquired

$

36,178

Schedule of acquired intangible assets

    

Gross

    

Average Useful Life

Customer relationships

$

3,900

15

Technology

3,600

 

10

Trademarks

800

Indefinite

Total

$

8,300

XML 47 R31.htm IDEA: XBRL DOCUMENT v3.22.4
ACCOUNTS RECEIVABLE, NET (Tables)
12 Months Ended
Dec. 31, 2022
ACCOUNTS RECEIVABLE, NET  
Schedule of reconciliation of the changes in our allowance for doubtful accounts

Year ended December 31, 

    

2022

    

2021

Beginning allowance for doubtful accounts

$

645

$

1,113

Provision

 

417

 

(188)

Write-offs

 

(138)

 

(280)

Ending allowance for doubtful accounts

$

924

$

645

XML 48 R32.htm IDEA: XBRL DOCUMENT v3.22.4
REVENUE RECOGNITION (Tables)
12 Months Ended
Dec. 31, 2022
REVENUE RECOGNITION  
Summary of disaggregation of net sales by channel and geography

The following tables disaggregate net sales by channel and geography:

Year ended December 31, 

    

2022

    

2021

U.S. state and local agencies (a)

$

250,680

$

231,095

Commercial

 

45,357

 

34,860

U.S. federal agencies

 

51,165

 

47,575

International

 

106,593

 

107,503

Other

 

4,042

 

6,255

Net sales

$

457,837

$

427,288

(a) Includes all Distribution sales

Year ended December 31, 

    

2022

    

2021

United States

$

351,244

$

319,785

International

 

106,593

 

107,503

Net sales

$

457,837

$

427,288

XML 49 R33.htm IDEA: XBRL DOCUMENT v3.22.4
FAIR VALUE MEASUREMENTS (Tables)
12 Months Ended
Dec. 31, 2022
FAIR VALUE MEASUREMENTS  
Summary of assets and liabilities measured at fair value on a recurring basis

Assets and liabilities measured at fair value on a recurring basis as of December 31, 2022 and 2021 consisted of the following:

December 31, 2022

December 31, 2021

Carrying 

Fair Value

Carrying 

Fair Value

    

amount

    

Level 1

    

Level 2

    

Level 3

    

amount

    

Level 1

    

Level 2

    

Level 3

Assets:

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

Interest rate swap (Note 11)

$

8,985

$

$

8,985

$

$

1,607

$

$

1,607

$

Liabilities:

Interest rate swap (Note 11)

389

389

XML 50 R34.htm IDEA: XBRL DOCUMENT v3.22.4
INVENTORIES (Tables)
12 Months Ended
Dec. 31, 2022
INVENTORIES  
Summary of inventories stated at lower of cost or net realizable value

    

December 31, 

    

2022

    

2021

Finished goods

$

25,208

$

28,707

Work-in-process

 

7,466

 

4,053

Raw materials and supplies

 

37,599

 

31,218

Total

$

70,273

$

63,978

XML 51 R35.htm IDEA: XBRL DOCUMENT v3.22.4
PROPERTY AND EQUIPMENT (Tables)
12 Months Ended
Dec. 31, 2022
PROPERTY AND EQUIPMENT  
Summary of property and equipment

Property and equipment consist of the following:

    

December 31, 

2022

    

2021

Land

$

7,545

$

4,620

Building and improvements

 

22,992

 

17,556

Furniture and fixtures

 

1,400

 

1,209

Computer hardware and software

 

24,140

 

23,547

Machinery and equipment

 

28,464

 

21,795

Construction in progress

 

3,438

 

1,497

 

87,979

 

70,224

Less accumulated depreciation

 

(42,694)

 

(37,171)

Total

$

45,285

$

33,053

XML 52 R36.htm IDEA: XBRL DOCUMENT v3.22.4
GOODWILL AND OTHER INTANGIBLE ASSETS (Tables)
12 Months Ended
Dec. 31, 2022
GOODWILL AND OTHER INTANGIBLE ASSETS  
Summary of changes in goodwill

    

Product

    

Distribution

    

Total

Balance, December 31, 2020

 

$

63,698

 

$

2,616

 

$

66,314

Foreign currency translation adjustments

 

(52)

 

 

(52)

Balance, December 31, 2021

$

63,646

$

2,616

$

66,262

Radar acquisition

6,711

6,711

Cyalume acquisition

6,641

6,641

Measurement period adjustments

2,850

2,850

Foreign currency translation adjustments

(888)

(888)

Balance, December 31, 2022

$

78,960

$

2,616

$

81,576

Summary of intangible assets

December 31, 2022

    

    

    

    

Weighted 

Accumulated 

Average 

Gross

amortization

Net

 

Useful Life

Definite lived intangibles:

 

  

 

  

 

  

 

  

Customer relationships

$

85,847

 

$

(59,122)

 

$

26,725

 

11

Technology

 

15,629

 

 

(11,309)

 

 

4,320

 

8

Tradenames

 

6,484

 

 

(4,254)

 

 

2,230

 

4

Non-compete agreements

 

973

 

 

(973)

 

 

 

4

$

108,933

 

$

(75,658)

 

$

33,275

Indefinite lived intangibles:

 

  

 

 

  

 

 

  

 

  

Tradenames

 

17,420

 

 

 

 

17,420

 

Indefinite

Total

$

126,353

 

$

(75,658)

 

$

50,695

 

  

December 31, 2021

    

    

    

    

Weighted 

Accumulated 

Average 

Gross

amortization

Net

 

Useful Life

Definite lived intangibles:

 

  

 

  

 

  

 

  

Customer relationships

$

74,078

$

(52,536)

 

$

21,542

 

11

Technology

 

11,978

 

 

(10,988)

 

 

990

 

7

Tradenames

 

6,473

 

 

(3,264)

 

 

3,209

 

4

Non-compete agreements

 

1,037

 

 

(1,037)

 

 

 

4

$

93,566

 

$

(67,825)

 

$

25,741

Indefinite lived intangibles:

 

  

 

 

  

 

 

  

 

  

Tradenames

 

16,674

 

 

 

 

16,674

 

Indefinite

Total

$

110,240

 

$

(67,825)

 

$

42,415

 

  

Summary of estimated amortization expense for definite lived intangible assets

2023

    

$

7,719

2024

 

5,015

2025

 

3,060

2026

 

2,665

2027

 

2,490

Thereafter

 

12,326

Total

$

33,275

XML 53 R37.htm IDEA: XBRL DOCUMENT v3.22.4
ACCRUED LIABILITIES (Tables)
12 Months Ended
Dec. 31, 2022
ACCRUED LIABILITIES  
Summary of accrued liabilities

    

December 31, 

2022

2021

Accrued expenses

$

3,656

$

3,226

Accrued compensation and payroll tax

 

20,420

 

19,227

Accrued interest payable

 

73

 

70

Accrued warranty expense

 

1,234

 

1,256

Deferred revenue and customer credit balances

5,937

12,605

Current lease liabilities

3,773

Other accrued liabilities

3,627

4,352

Total

$

38,720

$

40,736

XML 54 R38.htm IDEA: XBRL DOCUMENT v3.22.4
DEBT (Tables)
12 Months Ended
Dec. 31, 2022
DEBT  
Schedule of company's debt

    

December 31, 2022

    

December 31, 2021

Short-term debt:

 

  

 

  

Insurance premium financing

$

2,211

$

3,174

Current portion of term loan

 

10,000

 

10,000

$

12,211

$

13,174

Long-term debt:

 

  

 

  

Revolver

 

 

Term loan

 

138,564

 

148,564

Other

 

512

 

$

139,076

$

148,564

Unamortized debt discount and debt issuance costs

 

(1,600)

 

(2,048)

Total long-term debt, net

$

137,476

$

146,516

Summary of aggregate principal payments of long-term debt

2023

    

$

10,000

2024

 

10,128

2025

 

10,128

2026

 

118,692

2027

 

128

Thereafter

 

Total principal payments

$

149,076

Schedule of Interest rate swaps

Effective date

    

Notional amount

    

Fixed rate

 

September 30, 2021 through July 23, 2026

    

$

100,000

    

0.875

%

Schedule of fair value swap agreement

    

Balance sheet accounts

    

December 31, 2022

    

December 31, 2021

Other current assets

$

3,619

$

Other assets

$

5,366

$

1,607

Accrued liabilities

$

$

389

XML 55 R39.htm IDEA: XBRL DOCUMENT v3.22.4
STOCK-BASED COMPENSATION (Tables)
12 Months Ended
Dec. 31, 2022
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Summary of changes in outstanding options and restricted stock awards

Weighted Average 

Grant Date

Shares

Fair Value

Outstanding at December 31, 2021

2,600,000

 

$

4.65

Granted

 

Vested

 

 

Forfeited

 

 

Outstanding at December 31, 2022

2,600,000

 

$

4.65

Schedule of fair value of the stock-based awards

2021

Number issued

2,600,000

Vesting period

$40.00 stock price target

Grant price (per share)

$4.65

Dividend yield

0.0%

Expected volatility

32.08%

Risk-free interest rate

1.59%

Expected term (years)

5.67

Weighted average fair value (per share)

$4.65

Summary of stock option activity

Weighted 

Aggregate

Weighted Average 

Average 

Intrinsic

Remaining Contractual

Options

Exercise Price

Value

Life (in years)

Outstanding at December 31, 2021

 

$

 

$

Granted

 

373,479

23.46

 

10.0

Exercised

 

 

 

 

Forfeited

 

(5,868)

 

23.45

 

 

9.6

Outstanding at December 31, 2022

367,611

 

$

23.46

 

$

9.2

Fully vested options outstanding at December 31, 2022

64,000

 

$

23.51

 

$

9.2

Phantom award activity  
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Summary of phantom award activity

Weighted Average 

Grant Date

Shares

Fair Value

Outstanding at December 31, 2021

1,433,500

 

$

Granted

 

Vested

 

(632,500)

 

23.45

Forfeited

 

(9,333)

 

23.45

Outstanding at December 31, 2022

791,667

 

$

23.45

Stock Options  
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Schedule of fair value of the stock-based awards

2022

Number issued

373,479

Vesting period

1 - 3 years

Grant price (per share)

$23.45 - $23.70

Dividend yield

1.35% - 1.36%

Expected volatility

33.22%

Risk-free interest rate

1.12%

Expected term (years)

4.61 - 6.00

Weighted average fair value (per share)

$6.69

RSUs  
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]  
Summary of changes in outstanding options and restricted stock awards

Weighted Average 

Grant Date

Shares

Fair Value

Outstanding at December 31, 2021

 

$

Granted

 

85,108

23.45

Vested

 

 

Forfeited

 

(1,614)

 

23.45

Outstanding at December 31, 2022

83,494

 

$

23.45

XML 56 R40.htm IDEA: XBRL DOCUMENT v3.22.4
INCOME TAXES (Tables)
12 Months Ended
Dec. 31, 2022
INCOME TAXES  
Schedule of consolidated income from continuing operations before income taxes

Year ended December 31, 

2022

    

2021

U.S. operations

$

6,455

$

18,243

Foreign operations

2,918

949

Income before provision for income taxes

$

9,373

$

19,192

Schedule of benefit for income taxes

Year ended December 31, 

2022

    

2021

Current tax provision:

Federal

$

2,711

$

State

 

624

 

907

Foreign

 

1,305

 

852

Total current provision

 

4,640

 

1,759

Deferred tax (benefit) provision:

Federal

 

(24)

 

4,704

State

 

(5)

 

897

Foreign

 

(1,058)

 

(829)

Total deferred (benefit) provision

 

(1,087)

 

4,772

Total provision for income taxes

$

3,553

$

6,531

Schedule of reconciliation of statutory federal income tax rate to effective rate

    

Year ended December 31, 

2022

    

2021

 

Federal statutory rate

21.0

%

21.0

%

Increase (decrease) in income taxes resulting from:

State income taxes, net of federal income taxes

 

5.6

 

8.4

Change in valuation allowance

 

 

0.8

Current year tax credits

 

(6.5)

 

(4.7)

Difference between foreign and federal tax rate

 

5.4

 

2.8

Permanent items

 

12.2

 

5.2

Reserve for uncertain tax positions

 

0.5

 

Other

 

(0.3)

 

0.5

Effective tax rate

 

37.9

%

34.0

%

Schedule of deferred income tax assets and liabilities

    

December 31, 

2022

    

2021

Deferred tax assets:

Net operating loss and other carry forwards

$

7,335

$

12,477

Accrued liabilities

 

3,351

 

3,831

Reserves and other

 

3,039

 

2,265

263A uniform capitalization costs

 

201

 

657

Other deferred tax assets

 

5,232

 

1,911

Total deferred tax assets

 

19,158

 

21,141

Valuation allowance

 

(1,888)

 

(1,890)

Net deferred tax assets

 

17,270

 

19,251

Deferred tax liabilities:

Intangibles

 

(5,789)

 

(2,624)

Depreciation

 

(4,447)

 

(3,403)

Goodwill

 

(7,560)

 

(6,594)

Other

 

(727)

 

(868)

Total deferred tax liabilities

 

(18,523)

 

(13,489)

Total deferred income taxes

$

(1,253)

$

5,762

Schedule of reconciliation of change in unrecognized income tax benefit

    

Year ended December 31, 

2022

    

2021

Beginning unrecognized tax benefits

$

2,090

$

2,122

Current period unrecognized tax benefits

 

39

 

(32)

Foreign currency fluctuations

(143)

Ending unrecognized tax benefits

$

1,986

$

2,090

XML 57 R41.htm IDEA: XBRL DOCUMENT v3.22.4
LEASES (Tables)
12 Months Ended
Dec. 31, 2022
LEASES  
Schedule of operating lease expense

Balance sheet accounts

    

December 31, 2022

Assets:

Operating lease assets

Operating lease assets

$

8,489

Liabilities:

Current:

Operating lease liabilities

Accrued liabilities

$

3,773

Long-term:

Operating lease liabilities

Long-term operating lease liabilities

4,965

Total lease liabilities

$

8,738

The components of lease expense are recorded to cost of sales and selling, general and administration expenses in the consolidated statements of comprehensive income. The components of lease expense were as follows:

    

December 31, 2022

Fixed operating lease costs(1)

 

$

4,047

Variable operating lease costs

1,329

Total

$

5,376

(1) Includes short-term leases, which are immaterial.

The weighted average remaining lease term and weighted average discount rate is as follows:

    

December 31, 2022

Weighted average remaining lease term (years):

 

Operating leases

2.62

Weighted average discount rate:

Operating leases

2.96%

Summary of future minimum lease payments required under operating leases

2023

$

4,012

2024

 

2,958

2025

 

1,560

2026

 

513

2027

 

75

Thereafter

 

Total future lease payments

9,118

Less: Amount representing interest

(380)

Present value of lease liabilities

$

8,738

Summary of future minimum lease payments required under non-cancelable operating leases

2022

$

4,293

2023

 

3,853

2024

 

2,725

2025

 

1,391

2026

 

406

Thereafter

 

35

Total minimum lease payments

$

12,703

Schedule of supplemental cash flow information related leases

    

December 31, 2022

Cash paid for amounts included in the measurement of lease liabilities:

 

Operating cash flows - operating leases

$

4,047

Right-of-use assets obtained in exchange for lease liabilities:

Operating leases

$

XML 58 R42.htm IDEA: XBRL DOCUMENT v3.22.4
SEGMENT DATA (Tables)
12 Months Ended
Dec. 31, 2022
SEGMENT DATA  
Summary of segment data

    

Year ended December 31, 2022

Reconciling

    

    Product    

    

Distribution

    

 Items(1)

    

      Total      

Net sales

    

$

385,423

    

$

97,106

$

(24,692)

    

$

457,837

Cost of goods sold

230,245

76,633

(24,719)

282,159

Gross profit

$

155,178

$

20,473

$

27

$

175,678

    

Year ended December 31, 2021

Reconciling

    

    Product    

    

Distribution

    

 Items(1)

    

      Total      

Net sales

    

$

362,189

    

$

90,043

    

$

(24,944)

    

$

427,288

Cost of goods sold

213,881

67,649

(24,932)

256,598

Gross profit

$

148,308

$

22,394

$

(12)

$

170,690

(1)Reconciling items consist primarily of intercompany eliminations and items not directly attributable to operating segments.
XML 59 R43.htm IDEA: XBRL DOCUMENT v3.22.4
SIGNIFICANT ACCOUNTING POLICIES - Additional Information (Details)
$ in Thousands
1 Months Ended 12 Months Ended
Jul. 31, 2021
Dec. 31, 2022
USD ($)
item
Dec. 31, 2021
USD ($)
Jan. 01, 2022
USD ($)
Nature of Operations and Basis of Presentation        
Number of manufacturing plants | item   16    
Stock Split        
Stock split ratio 50      
Accounts payable, book cash overdrafts   $ 188 $ 670  
Total research and development costs   7,086 6,460  
Advertising Expense   4,711 3,120  
Cost of goods sold   282,159 256,598  
Deposits   10,142 7,593  
Operating lease assets   8,489    
Operating lease liabilities   $ 8,738    
Accounting Standards Update 2016-02        
Stock Split        
Operating lease assets       $ 11,769
Operating lease liabilities       $ 12,029
Maximum        
Stock Split        
Contractual terms granted   ten years    
Reimbursable development contract        
Stock Split        
Cost of goods sold   $ 1,639 $ 5,895  
XML 60 R44.htm IDEA: XBRL DOCUMENT v3.22.4
SIGNIFICANT ACCOUNTING POLICIES - Property and Equipment (Details) - item
12 Months Ended
Oct. 31, 2022
Oct. 31, 2021
Dec. 31, 2022
Goodwill and Other Intangible Assets      
Number of reporting units 3 3  
Minimum | Building and improvements      
Property and Equipment      
Useful lives of property and equipment     5 years
Minimum | Furniture and fixtures      
Property and Equipment      
Useful lives of property and equipment     2 years
Minimum | Computer hardware and software      
Property and Equipment      
Useful lives of property and equipment     3 years
Minimum | Machinery and equipment      
Property and Equipment      
Useful lives of property and equipment     3 years
Maximum | Building and improvements      
Property and Equipment      
Useful lives of property and equipment     39 years
Maximum | Furniture and fixtures      
Property and Equipment      
Useful lives of property and equipment     10 years
Maximum | Computer hardware and software      
Property and Equipment      
Useful lives of property and equipment     5 years
Maximum | Machinery and equipment      
Property and Equipment      
Useful lives of property and equipment     8 years
XML 61 R45.htm IDEA: XBRL DOCUMENT v3.22.4
SIGNIFICANT ACCOUNTING POLICIES - Accrued warranties and related costs (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Changes in the Company's accrued warranties and related costs    
Beginning accrued warranty expense $ 1,256 $ 1,133
Current period claims (278) (399)
Provision for current period sales 256 522
Ending accrued warranty expense $ 1,234 $ 1,256
XML 62 R46.htm IDEA: XBRL DOCUMENT v3.22.4
SIGNIFICANT ACCOUNTING POLICIES - Weighted average shares outstanding and net income (loss) per share (Details) - USD ($)
$ / shares in Units, $ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Numerator for basic and diluted earnings per share:    
Net income (loss) $ 5,820 $ 12,661
Weighted average shares outstanding:    
Weighted average shares outstanding - basic 36,109,844 28,598,692
Effect of dilutive securities:    
Stock-based awards 12,530  
Weighted average shares outstanding - diluted 36,122,374 28,598,692
Net income per share:    
Basic $ 0.16 $ 0.44
Diluted $ 0.16 $ 0.44
Anti-dilutive instruments excluded   0
XML 63 R47.htm IDEA: XBRL DOCUMENT v3.22.4
ACQUISITIONS - Summary - Radar (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 11, 2022
Dec. 31, 2022
Total consideration, net of cash acquired:    
Total consideration, net   $ 55,543
Radar    
ACQUISITIONS    
Total acquisition-related costs   627
Acquisition-related costs incurred during the period   $ 204
Percentage acquired 100.00%  
Total consideration, net of cash acquired:    
Cash paid $ 20,844  
Less: cash acquired (1,479)  
Total consideration, net $ 19,365  
XML 64 R48.htm IDEA: XBRL DOCUMENT v3.22.4
ACQUISITIONS - Purchase Price Consideration and Fair Value - Radar (Details) - USD ($)
$ in Thousands
12 Months Ended
Jan. 11, 2022
Dec. 31, 2022
Dec. 31, 2021
Dec. 31, 2020
ACQUISITIONS        
Acquisition measurement period adjustment   $ 2,850    
Total purchase price consideration and preliminary fair value amounts recognized        
Total consideration, net   55,543    
Goodwill   81,576 $ 66,262 $ 66,314
Radar        
ACQUISITIONS        
Acquisition measurement period adjustment   $ 390    
Total purchase price consideration and preliminary fair value amounts recognized        
Total consideration, net $ 19,365      
Accounts receivable 2,347      
Inventories 1,874      
Prepaid expenses 682      
Other current assets 665      
Property and equipment 3,053      
Intangible assets 10,200      
Goodwill 7,101      
Total assets acquired 25,922      
Accounts payable 1,120      
Deferred tax liabilities 2,787      
Accrued liabilities 2,106      
Long-term debt 544      
Total liabilities assumed 6,557      
Net assets acquired $ 19,365      
XML 65 R49.htm IDEA: XBRL DOCUMENT v3.22.4
ACQUISITIONS - Intangible Assets - Radar (Details) - Radar
$ in Thousands
Jan. 11, 2022
USD ($)
ACQUISITIONS  
Gross $ 10,200
Goodwill, non-deductible for tax purposes 7,101
Customer relationships  
ACQUISITIONS  
Gross $ 9,300
Average Useful Life 15 years
Technology  
ACQUISITIONS  
Gross $ 600
Average Useful Life 10 years
Trademarks  
ACQUISITIONS  
Gross $ 300
Average Useful Life 7 years
XML 66 R50.htm IDEA: XBRL DOCUMENT v3.22.4
ACQUISITIONS - Summary - Cyalume (Details) - USD ($)
$ in Thousands
12 Months Ended
May 04, 2022
Dec. 31, 2022
Total consideration, net of cash acquired:    
Total consideration, net   $ 55,543
Cyalume    
ACQUISITIONS    
Acquisition-related costs incurred during the period   $ 3,546
Percentage acquired 100.00%  
Total consideration, net of cash acquired:    
Cash paid $ 38,012  
Less: cash acquired (1,834)  
Total consideration, net $ 36,178  
XML 67 R51.htm IDEA: XBRL DOCUMENT v3.22.4
ACQUISITIONS - Purchase Price Consideration and Fair Value - Cyalume (Details) - USD ($)
$ in Thousands
12 Months Ended
May 04, 2022
Dec. 31, 2022
Dec. 31, 2021
Dec. 31, 2020
ACQUISITIONS        
Acquisition measurement period adjustment   $ 2,850    
Total purchase price consideration and preliminary fair value amounts recognized        
Total consideration, net   55,543    
Goodwill   81,576 $ 66,262 $ 66,314
Cyalume        
ACQUISITIONS        
Acquisition measurement period adjustment   $ 2,460    
Total purchase price consideration and preliminary fair value amounts recognized        
Total consideration, net $ 36,178      
Accounts receivable 3,302      
Inventories 10,908      
Prepaid expenses 255      
Other current assets 10      
Property and equipment 11,701      
Intangible assets 8,300      
Goodwill 9,101      
Total assets acquired 43,577      
Accounts payable 1,080      
Deferred tax liabilities 4,454      
Accrued liabilities 1,577      
Other long-term liabilities 288      
Total liabilities assumed 7,399      
Net assets acquired $ 36,178      
XML 68 R52.htm IDEA: XBRL DOCUMENT v3.22.4
ACQUISITIONS - Intangible Assets - Cyalume (Details) - Cyalume
$ in Thousands
May 04, 2022
USD ($)
ACQUISITIONS  
Gross $ 8,300
Goodwill, non-deductible for tax purposes 9,101
Customer relationships  
ACQUISITIONS  
Gross $ 3,900
Average Useful Life 15 years
Technology  
ACQUISITIONS  
Gross $ 3,600
Average Useful Life 10 years
Trademarks  
ACQUISITIONS  
Gross $ 800
XML 69 R53.htm IDEA: XBRL DOCUMENT v3.22.4
ACCOUNTS RECEIVABLE, NET (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Accounts Receivable, Allowance for Credit Loss [Roll Forward]    
Beginning allowance for doubtful accounts $ 645 $ 1,113
Provision 417 (188)
Write-offs (138) (280)
Ending allowance for doubtful accounts $ 924 $ 645
XML 70 R54.htm IDEA: XBRL DOCUMENT v3.22.4
DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Nov. 30, 2022
Dec. 31, 2021
Assets and Liabilities Held for Sale      
Liabilities current, held for sale     $ 128
Daventry, UK Facility | Disposal Group, Not Discontinued Operations      
Assets and Liabilities Held for Sale      
Sales price   $ 411  
Gain on sale of assets $ 170    
Disposal Group, Not Discontinued Operation, Gain (Loss) on Disposal, Statement of Income or Comprehensive Income [Extensible Enumeration] Other Operating Incomes    
XML 71 R55.htm IDEA: XBRL DOCUMENT v3.22.4
REVENUE RECOGNITION - Net sales by channel and geography (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Revenue Recognition    
Net sales $ 457,837 $ 427,288
U.S. state and local agencies    
Revenue Recognition    
Net sales 250,680 231,095
Commercial    
Revenue Recognition    
Net sales 45,357 34,860
U.S. federal agencies    
Revenue Recognition    
Net sales 51,165 47,575
International    
Revenue Recognition    
Net sales 106,593 107,503
Other    
Revenue Recognition    
Net sales $ 4,042 $ 6,255
XML 72 R56.htm IDEA: XBRL DOCUMENT v3.22.4
REVENUE RECOGNITION - Includes all Distribution sales (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Revenue Recognition    
Net sales $ 457,837 $ 427,288
United States    
Revenue Recognition    
Net sales 351,244 319,785
International.    
Revenue Recognition    
Net sales $ 106,593 $ 107,503
XML 73 R57.htm IDEA: XBRL DOCUMENT v3.22.4
REVENUE RECOGNITION - Contract Liabilities (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
REVENUE RECOGNITION    
Contract liabilities, current $ 4,615 $ 10,949
Revenue recognized from amounts included in contract liabilities $ 8,324  
XML 74 R58.htm IDEA: XBRL DOCUMENT v3.22.4
REVENUE RECOGNITION - Additional information (Details)
$ in Thousands
Dec. 31, 2022
USD ($)
Revenue Recognition  
Remaining performance obligations $ 19,997
Percentage of remaining performance obligations expect to recognize 52.00%
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2023-01-01  
Revenue Recognition  
Expected timing of satisfaction 12 months
Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]: 2024-01-01  
Revenue Recognition  
Expected timing of satisfaction 2 years
XML 75 R59.htm IDEA: XBRL DOCUMENT v3.22.4
FAIR VALUE MEASUREMENTS (Details) - Recurring - USD ($)
$ in Thousands
Dec. 31, 2022
Dec. 31, 2021
Assets:    
Interest rate swaps $ 8,985 $ 1,607
Liabilities:    
Interest rate swaps   389
Level 2    
Assets:    
Interest rate swaps $ 8,985 1,607
Liabilities:    
Interest rate swaps   $ 389
XML 76 R60.htm IDEA: XBRL DOCUMENT v3.22.4
FAIR VALUE MEASUREMENTS - Transfers of assets or liabilities (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
FAIR VALUE MEASUREMENTS    
Transfers between fair value measurement levels, amount $ 0 $ 0
XML 77 R61.htm IDEA: XBRL DOCUMENT v3.22.4
INVENTORIES (Details) - USD ($)
$ in Thousands
Dec. 31, 2022
Dec. 31, 2021
INVENTORIES    
Finished goods $ 25,208 $ 28,707
Work-in-process 7,466 4,053
Raw materials and supplies 37,599 31,218
Total $ 70,273 $ 63,978
XML 78 R62.htm IDEA: XBRL DOCUMENT v3.22.4
PROPERTY AND EQUIPMENT (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
PROPERTY AND EQUIPMENT    
Property and equipment, gross $ 87,979 $ 70,224
Less accumulated depreciation (42,694) (37,171)
Total 45,285 33,053
Depreciation expense 6,851 5,143
Depreciation expense included in cost of goods sold 3,433 2,144
Land    
PROPERTY AND EQUIPMENT    
Property and equipment, gross 7,545 4,620
Building and improvements    
PROPERTY AND EQUIPMENT    
Property and equipment, gross 22,992 17,556
Furniture and fixtures    
PROPERTY AND EQUIPMENT    
Property and equipment, gross 1,400 1,209
Computer hardware and software    
PROPERTY AND EQUIPMENT    
Property and equipment, gross 24,140 23,547
Machinery and equipment    
PROPERTY AND EQUIPMENT    
Property and equipment, gross 28,464 21,795
Construction in progress    
PROPERTY AND EQUIPMENT    
Property and equipment, gross $ 3,438 $ 1,497
XML 79 R63.htm IDEA: XBRL DOCUMENT v3.22.4
GOODWILL AND OTHER INTANGIBLE ASSETS - Summary of changes in goodwill (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Summary of changes in goodwill    
Balance at beginning of period $ 66,262 $ 66,314
Acquisition measurement period adjustment 2,850  
Impairment losses 0 0
Foreign currency translation adjustments (888) (52)
Balance at end of period 81,576 66,262
Products    
Summary of changes in goodwill    
Balance at beginning of period 63,646 63,698
Acquisition measurement period adjustment 2,850  
Foreign currency translation adjustments (888) (52)
Balance at end of period 78,960 63,646
Distribution    
Summary of changes in goodwill    
Balance at beginning of period 2,616 2,616
Balance at end of period 2,616 $ 2,616
Radar    
Summary of changes in goodwill    
Acquisition measurement period adjustment 390  
Acquisition 6,711  
Radar | Products    
Summary of changes in goodwill    
Acquisition 6,711  
Cyalume    
Summary of changes in goodwill    
Acquisition measurement period adjustment 2,460  
Acquisition 6,641  
Cyalume | Products    
Summary of changes in goodwill    
Acquisition $ 6,641  
XML 80 R64.htm IDEA: XBRL DOCUMENT v3.22.4
GOODWILL AND OTHER INTANGIBLE ASSETS - Impairment of Goodwill (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
GOODWILL AND OTHER INTANGIBLE ASSETS    
Goodwill impairment charge $ 0 $ 0
Gross goodwill 89,161 73,847
Accumulated impairment losses $ 7,585 $ 7,585
XML 81 R65.htm IDEA: XBRL DOCUMENT v3.22.4
GOODWILL AND OTHER INTANGIBLE ASSETS - Summary of intangible assets (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Summary of intangible assets    
Definite lived intangibles, Gross $ 108,933 $ 93,566
Definite lived intangibles, Accumulated amortization (75,658) (67,825)
Definite lived intangibles, Net 33,275 25,741
Indefinite lived intangibles 126,353 110,240
Indefinite lived intangibles, Net 50,695 42,415
Tradenames    
Summary of intangible assets    
Indefinite lived intangibles 17,420 16,674
Indefinite lived intangibles, Net 17,420 16,674
Customer relationships    
Summary of intangible assets    
Definite lived intangibles, Gross 85,847 74,078
Definite lived intangibles, Accumulated amortization (59,122) (52,536)
Definite lived intangibles, Net $ 26,725 $ 21,542
Weighted Average Useful Life 11 years 11 years
Technology    
Summary of intangible assets    
Definite lived intangibles, Gross $ 15,629 $ 11,978
Definite lived intangibles, Accumulated amortization (11,309) (10,988)
Definite lived intangibles, Net $ 4,320 $ 990
Weighted Average Useful Life 8 years 7 years
Tradenames    
Summary of intangible assets    
Definite lived intangibles, Gross $ 6,484 $ 6,473
Definite lived intangibles, Accumulated amortization (4,254) (3,264)
Definite lived intangibles, Net $ 2,230 $ 3,209
Weighted Average Useful Life 4 years 4 years
Non-compete agreements    
Summary of intangible assets    
Definite lived intangibles, Gross $ 973 $ 1,037
Definite lived intangibles, Accumulated amortization $ (973) $ (1,037)
Weighted Average Useful Life 4 years 4 years
XML 82 R66.htm IDEA: XBRL DOCUMENT v3.22.4
GOODWILL AND OTHER INTANGIBLE ASSETS - Additional information (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
GOODWILL AND OTHER INTANGIBLE ASSETS    
Amortization expense $ 8,800 $ 8,575
Amortization expense included in cost of goods sold $ 439 $ 666
XML 83 R67.htm IDEA: XBRL DOCUMENT v3.22.4
GOODWILL AND OTHER INTANGIBLE ASSETS - Amortization expense for definite lived intangible assets (Details) - USD ($)
$ in Thousands
Dec. 31, 2022
Dec. 31, 2021
Estimated amortization expense for finite-lived intangible assets    
2023 $ 7,719  
2024 5,015  
2025 3,060  
2026 2,665  
2027 2,490  
Thereafter 12,326  
Total $ 33,275 $ 25,741
XML 84 R68.htm IDEA: XBRL DOCUMENT v3.22.4
ACCRUED LIABILITIES (Details) - USD ($)
$ in Thousands
Dec. 31, 2022
Dec. 31, 2021
ACCRUED LIABILITIES    
Accrued expenses $ 3,656 $ 3,226
Accrued compensation and payroll tax 20,420 19,227
Accrued interest payable 73 70
Accrued warranty expense 1,234 1,256
Deferred revenue and customer credit balances 5,937 12,605
Current lease liabilities 3,773  
Other accrued liabilities 3,627 4,352
Total $ 38,720 $ 40,736
XML 85 R69.htm IDEA: XBRL DOCUMENT v3.22.4
DEBT - Schedule of company's debt (Details) - USD ($)
$ in Thousands
Dec. 31, 2022
Dec. 31, 2021
Debt    
Short-term debt $ 12,211 $ 13,174
Long-term debt 139,076 148,564
Unamortized debt discount and debt issuance costs (1,600) (2,048)
Total long-term debt, net 137,476 146,516
Term loan    
Debt    
Long-term debt 138,564 148,564
Other.    
Debt    
Long-term debt 512  
Insurance premium financing    
Debt    
Short-term debt 2,211 3,174
Current portion of term loan    
Debt    
Short-term debt $ 10,000 $ 10,000
XML 86 R70.htm IDEA: XBRL DOCUMENT v3.22.4
DEBT - Summary of aggregate principal payment of long-term debt (Details)
$ in Thousands
Dec. 31, 2022
USD ($)
DEBT  
2023 $ 10,000
2024 10,128
2025 10,128
2026 118,692
2027 128
Total principal payments $ 149,076
XML 87 R71.htm IDEA: XBRL DOCUMENT v3.22.4
DEBT - New Credit Agreement (Details)
$ in Thousands
12 Months Ended
Aug. 20, 2021
USD ($)
Dec. 31, 2022
USD ($)
Dec. 31, 2021
USD ($)
Debt      
Outstanding borrowings   $ 139,076 $ 148,564
Loss on extinguishment of debt     15,155
Debt issuance costs paid     2,198
New Credit Agreement      
Debt      
Minimum fixed charge coverage ratio 1.25    
Loss on extinguishment of debt     15,155
Financing costs paid   4,114  
Fees paid to lenders   1,916  
Debt issuance costs paid     2,198
Unamortized debt discount   748 956
Unamortized debt issuance costs   851 1,092
New Credit Agreement | Minimum      
Debt      
Commitment Fee 0.175%    
New Credit Agreement | Maximum      
Debt      
Commitment Fee 0.25%    
New Credit Agreement | Each quarter starting with the quarter ended December 31, 2021      
Debt      
Total net leverage ratio 3.75    
New Credit Agreement | From the Quarter Ended December 31, 2021 until the quarter ended September 30, 2022 | Maximum      
Debt      
Total net leverage ratio 3.50    
New Credit Agreement | Period after the quarter ended September 30, 2022      
Debt      
Increase in total net leverage ratio 0.50    
New Credit Agreement | Base Rate | Minimum      
Debt      
Applicable margin (as a percent) 0.50%    
New Credit Agreement | Base Rate | Maximum      
Debt      
Applicable margin (as a percent) 1.50%    
New Credit Agreement | LIBOR | Minimum      
Debt      
Applicable margin (as a percent) 1.50%    
New Credit Agreement | LIBOR | Maximum      
Debt      
Applicable margin (as a percent) 2.50%    
New Credit Agreement | Revolving credit facility.      
Debt      
Maximum borrowing capacity $ 100,000    
Outstanding borrowings   0 0
Available borrowing capacity   97,645  
Financing costs paid   1,365  
New Credit Agreement | Term loan      
Debt      
Aggregate principal amount per quarter (in percent) 1.25%    
Outstanding borrowings $ 200,000 $ 148,564 $ 158,564
Increase in total net leverage ratio   6.14 2.61
Financing costs paid   $ 2,749  
New Credit Agreement | Letter of credit      
Debt      
Maximum borrowing capacity 15,000    
Outstanding letters of credit   $ 2,355  
New Credit Agreement | Swing line loans      
Debt      
Maximum borrowing capacity $ 10,000    
XML 88 R72.htm IDEA: XBRL DOCUMENT v3.22.4
DEBT - Canadian Credit Facility (Details) - Canadian Credit Facility
$ in Thousands, $ in Thousands
12 Months Ended
Dec. 31, 2022
USD ($)
Dec. 31, 2021
USD ($)
Oct. 14, 2021
USD ($)
Oct. 14, 2021
CAD ($)
Minimum        
Debt        
Unused line fee (as a percent) 0.175%      
Maximum        
Debt        
Unused line fee (as a percent) 0.25%      
Base Rate | Minimum        
Debt        
Applicable margin (as a percent) 0.50%      
Base Rate | Maximum        
Debt        
Applicable margin (as a percent) 1.50%      
LIBOR | Minimum        
Debt        
Applicable margin (as a percent) 1.50%      
LIBOR | Maximum        
Debt        
Applicable margin (as a percent) 2.50%      
Revolving credit facility.        
Debt        
Maximum borrowing capacity       $ 10,000
Amount outstanding $ 0 $ 0    
Upfront Fee 0.25%      
Letter of credit        
Debt        
Maximum borrowing capacity     $ 3,000  
XML 89 R73.htm IDEA: XBRL DOCUMENT v3.22.4
DEBT - Short-Term Debt (Details) - USD ($)
$ in Thousands
1 Months Ended
Jul. 31, 2022
Nov. 30, 2021
Jul. 31, 2021
Dec. 31, 2022
Dec. 31, 2021
Debt          
Outstanding balance       $ 12,211 $ 13,174
Aon Premium Finance | Short-Term Loan Facility          
Debt          
Amount of short term loan facility     $ 3,436    
Fixed annual interest rate     3.75%    
Required monthly payments     $ 318    
Outstanding balance         1,889
IPFS Corporation | Short-Term Loan Facility          
Debt          
Amount of short term loan facility     410    
IPFS Corporation | Short-Term Loan Facility Entered in July 2021          
Debt          
Amount of short term loan facility     $ 410    
Fixed annual interest rate     1.98%    
Required monthly payments     $ 37    
Outstanding balance         221
IPFS Corporation | Short-Term Loan Facility Entered in November 2021          
Debt          
Amount of short term loan facility   $ 1,183      
Fixed annual interest rate   1.98%      
Required monthly payments   $ 108      
Outstanding balance         $ 1,064
AFCO Credit Corporation | Short-Term Loan Facility          
Debt          
Amount of short term loan facility $ 3,989        
Fixed annual interest rate 5.75%        
Required monthly payments $ 373        
Outstanding balance       $ 2,211  
XML 90 R74.htm IDEA: XBRL DOCUMENT v3.22.4
DEBT - Fair Value of Debt (Details) - USD ($)
$ in Thousands
Dec. 31, 2022
Dec. 31, 2021
Debt Instrument [Line Items]    
Outstanding borrowings $ 139,076 $ 148,564
Term loan    
Debt Instrument [Line Items]    
Fair value of debt 151,530  
Outstanding borrowings 138,564 $ 148,564
Carrying value of debt $ 148,563  
XML 91 R75.htm IDEA: XBRL DOCUMENT v3.22.4
DEBT - Schedule of interest rate swaps (Details) - Interest Rate Swap
$ in Thousands
12 Months Ended
Dec. 31, 2022
USD ($)
Interest Rate Swaps  
Debt instrument, start maturity date Sep. 30, 2021
Debt instrument, end maturity date Jul. 23, 2026
Notional amount $ 100,000
Fixed rate 0.875%
Variable rate 4.38%
XML 92 R76.htm IDEA: XBRL DOCUMENT v3.22.4
DEBT - Schedule of fair value swap agreement (Details) - USD ($)
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Interest Rate Swaps    
Cumulative gain, net of tax reflected in accumulated other comprehensive income (loss) $ 6,739,000 $ 913,000
Gain recognized in other comprehensive income 6,444,000 767,000
Amount reclassified from accumulated other comprehensive loss to earnings (618,000) 146,000
Amount reclassified from AOCI into interest expense within next twelve months 3,646,000  
Interest Rate Swap    
Interest Rate Swaps    
Derivative asset   1,607,000
Derivative liability   $ 389,000
Interest Rate Swap | Other current assets    
Interest Rate Swaps    
Derivative asset $ 3,619,000  
Derivative Asset, Statement of Financial Position [Extensible Enumeration] Other Assets, Current Other Assets, Current
Interest Rate Swap | Other assets    
Interest Rate Swaps    
Derivative asset $ 5,366,000  
Derivative Asset, Statement of Financial Position [Extensible Enumeration] Other Assets, Noncurrent Other Assets, Noncurrent
Interest Rate Swap | Accrued liabilities    
Interest Rate Swaps    
Derivative Liability, Statement of Financial Position [Extensible Enumeration] Accrued Liabilities, Current Accrued Liabilities, Current
XML 93 R77.htm IDEA: XBRL DOCUMENT v3.22.4
SHAREHOLDERS EQUITY (Details) - USD ($)
$ / shares in Units, $ in Thousands
1 Months Ended 12 Months Ended
Jul. 14, 2022
Jun. 09, 2022
Nov. 03, 2021
Aug. 11, 2021
Aug. 31, 2021
Dec. 31, 2022
Dec. 31, 2021
Nov. 22, 2021
Nov. 11, 2021
Shareholders' Equity (Deficit)                  
Dividends per share declared               $ 0.32 $ 0.08
Dividend declared       $ 10,000          
Cash Dividends           $ 11,509 $ 2,751    
Dividend paid       $ 10          
Dividend declared (in dollars per share)         $ 0.36        
Dividend paid (in dollars per share)         $ 0.36        
Kanders & Company, Inc                  
Shareholders' Equity (Deficit)                  
Underwriter discounts and commissions, fees and expenses           $ 2,000      
Initial public offering                  
Shareholders' Equity (Deficit)                  
Number of shares issued     6,900,000            
Issue price     $ 13.00            
Net proceeds from the sale of shares     $ 78,581            
Underwriter discounts and commissions, fees and expenses     11,119            
Initial public offering | Kanders & Company, Inc                  
Shareholders' Equity (Deficit)                  
Underwriter discounts and commissions, fees and expenses     $ 2,250            
Secondary Offering                  
Shareholders' Equity (Deficit)                  
Number of shares issued   2,250,000              
Issue price   $ 23.50              
Net proceeds from the sale of shares   $ 46,987              
Underwriter discounts and commissions, fees and expenses   2,715              
Secondary Offering | Kanders & Company, Inc                  
Shareholders' Equity (Deficit)                  
Underwriter discounts and commissions, fees and expenses   $ 2,000              
Over-Allotment Option                  
Shareholders' Equity (Deficit)                  
Number of shares issued 300,000   900,000            
Issue price $ 23.50                
Net proceeds from the sale of shares $ 6,389                
Underwriter discounts and commissions, fees and expenses $ 661                
XML 94 R78.htm IDEA: XBRL DOCUMENT v3.22.4
STOCK-BASED COMPENSATION - Executive Compensation Plan (Details) - USD ($)
$ / shares in Units, $ in Thousands
12 Months Ended
Mar. 09, 2022
Dec. 31, 2022
Mar. 18, 2022
Compensation Plans      
Grant date fair value expected to be recognized as compensation expense over a weighted average period   2 years 2 months 12 days  
2021 Phantom Restricted Share Plan      
Compensation Plans      
Grant date fair value   $ 22,649  
Executive Compensation Plan | 2021 Phantom Restricted Share Plan      
Compensation Plans      
Number of awards granted under cash-based executive compensation plan   1,433,500  
Grant date fair value per share of common stock of all vested and unvested units under the cash-based executive compensation plan $ 23.45    
Number of units expected to vest under cash-based executive compensation plan     632,500
Number of unvested units under cash-based executive compensation plan     791,667
Share based compensation expense $ 22,100    
Grant date fair value expected to be recognized as compensation expense over a weighted average period   1 year 2 months 12 days  
Executive Compensation Plan | 2021 Phantom Restricted Share Plan | Selling, general and administrative      
Compensation Plans      
Share based compensation expense   $ 28,578  
Unrecognized compensation under cash-based executive compensation plan   $ 4,679  
XML 95 R79.htm IDEA: XBRL DOCUMENT v3.22.4
STOCK-BASED COMPENSATION - Summary of phantom restricted share plan, changes in outstanding options and restricted stock awards (Details) - USD ($)
$ / shares in Units, $ in Thousands
12 Months Ended
Nov. 04, 2021
Dec. 31, 2022
Weighted Average Grant Date Fair Value    
Grant date fair value expected to be recognized as compensation expense over a weighted average period   2 years 2 months 12 days
Restricted Stock    
Shares    
Outstanding at Beginning   2,600,000
Number of awards granted 2,600,000  
Outstanding at Ending   2,600,000
Weighted Average Grant Date Fair Value    
Outstanding at Beginning   $ 4.65
Granted $ 4.65  
Outstanding at Ending   $ 4.65
Share based compensation expense   $ 2,132
Unrecognized compensation expense   9,602
Grant date fair value which is expected to be recognized as compensation expense   $ 9,602
Grant date fair value expected to be recognized as compensation expense over a weighted average period   4 years 6 months
Stock Options    
Weighted Average Grant Date Fair Value    
Share based compensation expense   $ 974
Unrecognized compensation expense   1,486
Grant date fair value which is expected to be recognized as compensation expense   $ 1,486
Grant date fair value expected to be recognized as compensation expense over a weighted average period   2 years 2 months 12 days
RSUs    
Shares    
Number of awards granted   85,108
Forfeited   (1,614)
Outstanding at Ending   83,494
Weighted Average Grant Date Fair Value    
Granted   $ 23.45
Forfeited   23.45
Outstanding at Ending   $ 23.45
Share based compensation expense   $ 531
Unrecognized compensation expense   1,427
Grant date fair value which is expected to be recognized as compensation expense   $ 1,427
2021 Phantom Restricted Share Plan    
Shares    
Outstanding at Beginning   1,433,500
Vested   (632,500)
Forfeited   (9,333)
Outstanding at Ending   791,667
Weighted Average Grant Date Fair Value    
Vested   $ 23.45
Forfeited   23.45
Outstanding at Ending   $ 23.45
XML 96 R80.htm IDEA: XBRL DOCUMENT v3.22.4
STOCK-BASED COMPENSATION - Stock Incentive Plan (Details) - USD ($)
$ / shares in Units, $ in Thousands
12 Months Ended
Nov. 04, 2021
Dec. 31, 2022
STOCK-BASED COMPENSATION    
Number of options issued   373,479
Stock-Based Compensation, Fair Value Assumptions    
Fair market price $ 40.00  
Restricted Stock    
STOCK-BASED COMPENSATION    
Number of shares reserved and available for issuance under the plan 2,600,000  
Number of awards granted 2,600,000  
Grant date fair value (per share) $ 4.65  
Share based compensation expense   $ 2,132
Unrecognized compensation expense   $ 9,602
Number of shares expected to vest 2,600,000  
Common stock, share price $ 40.00  
Number Of Consecutive Trading Days, Fair Market Value To Be Maintained 20 days  
Stock-Based Compensation, Fair Value Assumptions    
Grant price (per share) $ 4.65  
Dividend yield 0.00%  
Expected volatility 32.08%  
Risk-free interest rate 1.59%  
Expected term 5 years 8 months 1 day  
Stock Options    
STOCK-BASED COMPENSATION    
Number of options issued   373,479
Expiration period   10 years
Grant date fair value (per share)   $ 6.69
Share based compensation expense   $ 974
Unrecognized compensation expense   $ 1,486
Stock-Based Compensation, Fair Value Assumptions    
Expected volatility   33.22%
Risk-free interest rate   1.12%
Stock Options | Minimum    
STOCK-BASED COMPENSATION    
Vesting period   1 year
Grant date fair value (per share)   $ 23.45
Stock-Based Compensation, Fair Value Assumptions    
Dividend yield   1.35%
Expected term   4 years 7 months 9 days
Stock Options | Maximum    
STOCK-BASED COMPENSATION    
Vesting period   3 years
Grant date fair value (per share)   $ 23.70
Stock-Based Compensation, Fair Value Assumptions    
Dividend yield   1.36%
Expected term   6 years
RSUs    
STOCK-BASED COMPENSATION    
Number of awards granted   85,108
Grant date fair value (per share)   $ 23.45
Share based compensation expense   $ 531
Unrecognized compensation expense   $ 1,427
Stock Incentive Plan 2021    
STOCK-BASED COMPENSATION    
Maximum number of shares that may be issued under the plan   9,650,000
Number of shares reserved and available for issuance under the plan   4,418
Number of awards granted 2,600,000  
Stock Incentive Plan 2021 | RSUs    
STOCK-BASED COMPENSATION    
Number of awards granted   85,108
Vesting period   3 years
XML 97 R81.htm IDEA: XBRL DOCUMENT v3.22.4
STOCK-BASED COMPENSATION - Stock option (Details)
$ / shares in Units, $ in Thousands
12 Months Ended
Dec. 31, 2022
$ / shares
shares
Dec. 31, 2022
USD ($)
$ / shares
shares
Options    
Number of options issued   373,479
Number of shares exercisable 0 0
Forfeited (in Shares)   (5,868)
Outstanding at end of period (in Shares) 367,611 367,611
Fully vested options outstanding at end of period (in Shares) 64,000  
Weighted Average Exercise Price    
Granted (in dollars per share) | $ / shares   $ 23.46
Forfeited (in dollars per share) | $ / shares   23.45
Outstanding at End of period (in dollars per Share) | $ / shares $ 23.46 23.46
Fully vested options outstanding at end of period (in dollars per share) | $ / shares $ 23.51 $ 23.51
Weighted Average Remaining Contractual Life    
Granted (in Years)   10 years
Forfeited (in Years)   9 years 7 months 6 days
Outstanding (in Years) 9 years 2 months 12 days  
Fully vested options outstanding (in Years)   9 years 2 months 12 days
Stock Options    
Options    
Number of options issued   373,479
Share based compensation expense | $   $ 974
XML 98 R82.htm IDEA: XBRL DOCUMENT v3.22.4
COMPENSATION AND DEFINED CONTRIBUTION PLANS (Details)
$ in Thousands
1 Months Ended 12 Months Ended
Mar. 31, 2021
item
Dec. 31, 2022
USD ($)
Dec. 31, 2021
USD ($)
COMPENSATION AND DEFINED CONTRIBUTION PLANS      
Employer contribution to plans   $ 3,198 $ 1,780
Number of equal installments | item 3    
Vesting period for awards granted under the cash-based long-term incentive plan 3 years    
Compensation expense related to the cash-based long-term incentive plan   $ 1,369 $ 2,162
XML 99 R83.htm IDEA: XBRL DOCUMENT v3.22.4
COMMITMENTS AND CONTINGENCIES - Legal Proceedings (Details)
$ in Thousands
1 Months Ended
Sep. 30, 2021
USD ($)
COMMITMENTS AND CONTINGENCIES  
Damage awarded $ 7,500
XML 100 R84.htm IDEA: XBRL DOCUMENT v3.22.4
INCOME TAXES - Consolidated income from continuing operations before provision for income taxes (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Income Tax Expense (Benefit), Continuing Operations, by Jurisdiction [Abstract]    
U.S. operations $ 6,455 $ 18,243
Foreign operations 2,918 949
Income before provision for income taxes $ 9,373 $ 19,192
XML 101 R85.htm IDEA: XBRL DOCUMENT v3.22.4
INCOME TAXES - Benefit for income taxes (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Current tax provision:    
Federal $ 2,711  
State 624 $ 907
Foreign 1,305 852
Total current provision 4,640 1,759
Deferred tax (benefit) provision:    
Federal (24) 4,704
State (5) 897
Foreign (1,058) (829)
Total deferred (benefit) provision (1,087) 4,772
Total provision for income taxes $ 3,553 $ 6,531
XML 102 R86.htm IDEA: XBRL DOCUMENT v3.22.4
INCOME TAXES - Reconciliation of the statutory federal income tax rate to the effective rate reported in the Company's consolidated financial statements (Details)
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Effective Income Tax Rate Reconciliation, Percent [Abstract]    
Federal statutory rate 21.00% 21.00%
State income taxes, net of federal income taxes 5.60% 8.40%
Change in valuation allowance   0.80%
Current year tax credits (6.50%) (4.70%)
Difference between foreign and federal tax rate 5.40% 2.80%
Permanent items 12.20% 5.20%
Reserve for uncertain tax positions 0.50%  
Other (0.30%) 0.50%
Effective tax rate 37.90% 34.00%
XML 103 R87.htm IDEA: XBRL DOCUMENT v3.22.4
INCOME TAXES - Deferred Income taxes (Details) - USD ($)
$ in Thousands
Dec. 31, 2022
Dec. 31, 2021
Deferred tax assets:    
Net operating loss and other carry forwards $ 7,335 $ 12,477
Accrued liabilities 3,351 3,831
Reserves and other 3,039 2,265
263A uniform capitalization costs 201 657
Other deferred tax assets 5,232 1,911
Total deferred tax assets 19,158 21,141
Valuation allowance (1,888) (1,890)
Net deferred tax assets 17,270 19,251
Deferred tax liabilities:    
Intangibles (5,789) (2,624)
Depreciation (4,447) (3,403)
Goodwill (7,560) (6,594)
Other (727) (868)
Total deferred tax liabilities (18,523) (13,489)
Total deferred income taxes   $ 5,762
Total deferred income taxes $ (1,253)  
XML 104 R88.htm IDEA: XBRL DOCUMENT v3.22.4
INCOME TAXES - Reconciliation of Unrecognized Tax Benefits (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]    
Beginning unrecognized tax benefits $ 2,090 $ 2,122
Current period unrecognized tax benefits 39  
Current period unrecognized tax benefits   (32)
Foreign currency fluctuations (143)  
Ending unrecognized tax benefits 1,986 2,090
Amounts representing penalties and interest were recorded as income tax expense 0 0
Amount of interest or penalties accrued $ 0 $ 0
XML 105 R89.htm IDEA: XBRL DOCUMENT v3.22.4
INCOME TAXES - Operating loss Carryforwards (Details)
$ in Thousands
12 Months Ended
Dec. 31, 2022
USD ($)
INCOME TAXES.  
Increase in valuation allowance $ 2
Amount of unrecognized benefits on uncertain tax positions that, if recognized, would affect the Company's effective tax rate $ 1,986
XML 106 R90.htm IDEA: XBRL DOCUMENT v3.22.4
LEASES - Schedule of operating assets and liabilities (Details)
$ in Thousands
Dec. 31, 2022
USD ($)
LEASES  
Operating lease assets $ 8,489
Current lease liabilities $ 3,773
Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration] Accrued Liabilities, Current
Long-term operating lease liabilities $ 4,965
Total lease liabilities $ 8,738
XML 107 R91.htm IDEA: XBRL DOCUMENT v3.22.4
LEASES - Components of lease expense (Details)
$ in Thousands
12 Months Ended
Dec. 31, 2022
USD ($)
LEASES  
Fixed operating lease costs $ 4,047
Variable operating lease costs 1,329
Total $ 5,376
XML 108 R92.htm IDEA: XBRL DOCUMENT v3.22.4
LEASES - Weighted average remaining lease term and discount rate (Details)
$ in Thousands
12 Months Ended
Dec. 31, 2022
USD ($)
LEASES  
Cash paid for amounts included in the measurement of lease liabilities - Operating cash flows $ 4,047
Operating leases weighted average remaining lease term (years): 2 years 7 months 13 days
Operating leases weighted average discount rate 2.96%
XML 109 R93.htm IDEA: XBRL DOCUMENT v3.22.4
LEASES - Future minimum lease payments under operating leases (Details)
$ in Thousands
Dec. 31, 2022
USD ($)
LEASES  
2023 $ 4,012
2024 2,958
2025 1,560
2026 513
2027 75
Total future lease payments 9,118
Less: Amount representing interest (380)
Present value of lease liabilities $ 8,738
XML 110 R94.htm IDEA: XBRL DOCUMENT v3.22.4
LEASES - Future minimum lease payments under non-cancelable operating leases (Details)
$ in Thousands
Dec. 31, 2022
USD ($)
LEASES  
2022 $ 4,293
2023 3,853
2024 2,725
2025 1,391
2026 406
Thereafter 35
Total minimum lease payments $ 12,703
XML 111 R95.htm IDEA: XBRL DOCUMENT v3.22.4
LEASES - Supplemental cash flow information related to leases (Details)
$ in Thousands
12 Months Ended
Dec. 31, 2022
USD ($)
LEASES  
Operating cash flows - operating leases $ 4,047
XML 112 R96.htm IDEA: XBRL DOCUMENT v3.22.4
RELATED PARTY TRANSACTIONS (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Related Party Transactions    
Rent expense $ 478 $ 579
Warren Kanders    
Related Party Transactions    
Fees paid for services related to the Company's initial public offering   2,250
Fees paid for services related to the execution of the New Credit Agreement   $ 1,000
Kanders & Company, Inc    
Related Party Transactions    
Acquisition-related costs 1,000  
Direct offering costs $ 2,000  
XML 113 R97.htm IDEA: XBRL DOCUMENT v3.22.4
RESTRUCTURING - Restructuring Expenses (Details)
$ in Thousands
12 Months Ended
Dec. 31, 2022
USD ($)
RESTRUCTURING  
Restructuring Charges $ 395
XML 114 R98.htm IDEA: XBRL DOCUMENT v3.22.4
SEGMENT DATA (Details)
12 Months Ended
Dec. 31, 2022
segment
SEGMENT DATA  
Number of reportable segments 2
XML 115 R99.htm IDEA: XBRL DOCUMENT v3.22.4
SEGMENT DATA - asset information or operating expenses by segment (Details) - USD ($)
$ in Thousands
12 Months Ended
Dec. 31, 2022
Dec. 31, 2021
Segment Data    
Net sales $ 457,837 $ 427,288
Cost of goods sold 282,159 256,598
Gross profit 175,678 170,690
Reconciling Items    
Segment Data    
Net sales (24,692) (24,944)
Cost of goods sold (24,719) (24,932)
Gross profit 27 (12)
Products | Operating segments    
Segment Data    
Net sales 385,423 362,189
Cost of goods sold 230,245 213,881
Gross profit 155,178 148,308
Distribution | Operating segments    
Segment Data    
Net sales 97,106 90,043
Cost of goods sold 76,633 67,649
Gross profit $ 20,473 $ 22,394
XML 116 cdre-20221231x10k_htm.xml IDEA: XBRL DOCUMENT 0001860543 us-gaap:CommonStockMember 2022-01-01 2022-12-31 0001860543 us-gaap:OverAllotmentOptionMember 2021-11-03 2021-11-03 0001860543 us-gaap:CommonStockMember 2021-01-01 2021-12-31 0001860543 2021-07-01 2021-07-31 0001860543 us-gaap:RetainedEarningsMember 2022-12-31 0001860543 us-gaap:AdditionalPaidInCapitalMember 2022-12-31 0001860543 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-12-31 0001860543 us-gaap:RetainedEarningsMember 2021-12-31 0001860543 us-gaap:AdditionalPaidInCapitalMember 2021-12-31 0001860543 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-12-31 0001860543 us-gaap:RetainedEarningsMember 2020-12-31 0001860543 us-gaap:AdditionalPaidInCapitalMember 2020-12-31 0001860543 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2020-12-31 0001860543 cdre:AfcoCreditCorporationMember us-gaap:LoansPayableMember 2022-12-31 0001860543 cdre:InsurancePremiumFinancingMember 2022-12-31 0001860543 cdre:CurrentPortionOfTermLoanMember 2022-12-31 0001860543 cdre:IpfsCorporationMember cdre:ShortTermLoanFacilityEnteredInNovember2021Member 2021-12-31 0001860543 cdre:IpfsCorporationMember cdre:ShortTermLoanFacilityEnteredInJuly2021Member 2021-12-31 0001860543 cdre:AonPremiumFinanceMember us-gaap:LoansPayableMember 2021-12-31 0001860543 cdre:InsurancePremiumFinancingMember 2021-12-31 0001860543 cdre:CurrentPortionOfTermLoanMember 2021-12-31 0001860543 us-gaap:OverAllotmentOptionMember 2022-07-14 0001860543 cdre:SecondaryOfferingMember 2022-06-09 0001860543 us-gaap:IPOMember 2021-11-03 0001860543 srt:MaximumMember 2022-01-01 2022-12-31 0001860543 2022-12-31 2022-12-31 0001860543 cdre:StockIncentivePlan2021Member 2022-12-31 0001860543 us-gaap:RestrictedStockMember 2021-11-04 0001860543 cdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember 2022-12-31 0001860543 us-gaap:RestrictedStockMember 2021-12-31 0001860543 cdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember 2021-12-31 0001860543 cdre:StockIncentivePlan2021Member 2021-11-04 2021-11-04 0001860543 cdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember 2022-01-01 2022-12-31 0001860543 us-gaap:RestrictedStockUnitsRSUMember cdre:StockIncentivePlan2021Member 2022-01-01 2022-12-31 0001860543 srt:MinimumMember us-gaap:EmployeeStockOptionMember 2022-01-01 2022-12-31 0001860543 srt:MaximumMember us-gaap:EmployeeStockOptionMember 2022-01-01 2022-12-31 0001860543 us-gaap:PhantomShareUnitsPSUsMember 2022-01-01 2022-12-31 0001860543 2024-01-01 2022-12-31 0001860543 2023-01-01 2022-12-31 0001860543 us-gaap:NonUsMember 2022-01-01 2022-12-31 0001860543 country:US 2022-01-01 2022-12-31 0001860543 cdre:U.s.stateAndLocalAgenciesMember 2022-01-01 2022-12-31 0001860543 cdre:U.s.FederalAgenciesMember 2022-01-01 2022-12-31 0001860543 cdre:OtherMember 2022-01-01 2022-12-31 0001860543 cdre:InternationalMember 2022-01-01 2022-12-31 0001860543 cdre:CommercialMember 2022-01-01 2022-12-31 0001860543 us-gaap:NonUsMember 2021-01-01 2021-12-31 0001860543 country:US 2021-01-01 2021-12-31 0001860543 cdre:U.s.stateAndLocalAgenciesMember 2021-01-01 2021-12-31 0001860543 cdre:U.s.FederalAgenciesMember 2021-01-01 2021-12-31 0001860543 cdre:OtherMember 2021-01-01 2021-12-31 0001860543 cdre:InternationalMember 2021-01-01 2021-12-31 0001860543 cdre:CommercialMember 2021-01-01 2021-12-31 0001860543 srt:MinimumMember us-gaap:MachineryAndEquipmentMember 2022-01-01 2022-12-31 0001860543 srt:MinimumMember us-gaap:FurnitureAndFixturesMember 2022-01-01 2022-12-31 0001860543 srt:MinimumMember us-gaap:ComputerEquipmentMember 2022-01-01 2022-12-31 0001860543 srt:MinimumMember us-gaap:BuildingAndBuildingImprovementsMember 2022-01-01 2022-12-31 0001860543 srt:MaximumMember us-gaap:MachineryAndEquipmentMember 2022-01-01 2022-12-31 0001860543 srt:MaximumMember us-gaap:FurnitureAndFixturesMember 2022-01-01 2022-12-31 0001860543 srt:MaximumMember us-gaap:ComputerEquipmentMember 2022-01-01 2022-12-31 0001860543 srt:MaximumMember us-gaap:BuildingAndBuildingImprovementsMember 2022-01-01 2022-12-31 0001860543 us-gaap:MachineryAndEquipmentMember 2022-12-31 0001860543 us-gaap:LandMember 2022-12-31 0001860543 us-gaap:FurnitureAndFixturesMember 2022-12-31 0001860543 us-gaap:ConstructionInProgressMember 2022-12-31 0001860543 us-gaap:ComputerEquipmentMember 2022-12-31 0001860543 us-gaap:BuildingAndBuildingImprovementsMember 2022-12-31 0001860543 us-gaap:MachineryAndEquipmentMember 2021-12-31 0001860543 us-gaap:LandMember 2021-12-31 0001860543 us-gaap:FurnitureAndFixturesMember 2021-12-31 0001860543 us-gaap:ConstructionInProgressMember 2021-12-31 0001860543 us-gaap:ComputerEquipmentMember 2021-12-31 0001860543 us-gaap:BuildingAndBuildingImprovementsMember 2021-12-31 0001860543 cdre:KandersCompanyIncMember cdre:SecondaryOfferingMember 2022-06-09 2022-06-09 0001860543 cdre:KandersCompanyIncMember us-gaap:IPOMember 2021-11-03 2021-11-03 0001860543 us-gaap:RevolvingCreditFacilityMember cdre:NewCreditAgreementAugust2021Member 2022-01-01 2022-12-31 0001860543 cdre:NewCreditAgreementAugust2021Member 2022-01-01 2022-12-31 0001860543 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-01-01 2022-12-31 0001860543 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2021-01-01 2021-12-31 0001860543 us-gaap:AccountingStandardsUpdate201602Member 2022-01-01 0001860543 2022-10-31 2022-10-31 0001860543 2021-10-31 2021-10-31 0001860543 2021-09-01 2021-09-30 0001860543 srt:MinimumMember cdre:CanadianCreditFacilityMember 2022-01-01 2022-12-31 0001860543 srt:MaximumMember cdre:CanadianCreditFacilityMember 2022-01-01 2022-12-31 0001860543 us-gaap:RevolvingCreditFacilityMember cdre:CanadianCreditFacilityMember 2021-10-14 0001860543 us-gaap:LetterOfCreditMember cdre:CanadianCreditFacilityMember 2021-10-14 0001860543 us-gaap:RevolvingCreditFacilityMember cdre:NewCreditAgreementAugust2021Member 2021-08-20 0001860543 us-gaap:LetterOfCreditMember cdre:NewCreditAgreementAugust2021Member 2021-08-20 0001860543 cdre:SwingLineLoansMember cdre:NewCreditAgreementAugust2021Member 2021-08-20 0001860543 us-gaap:RevolvingCreditFacilityMember cdre:CanadianCreditFacilityMember 2021-12-31 0001860543 us-gaap:LetterOfCreditMember cdre:NewCreditAgreementAugust2021Member 2022-12-31 0001860543 us-gaap:TradeNamesMember 2022-12-31 0001860543 us-gaap:TradeNamesMember 2021-12-31 0001860543 cdre:ProductsMember 2022-01-01 2022-12-31 0001860543 cdre:ProductsMember 2021-01-01 2021-12-31 0001860543 cdre:RadarLeatherDivisionS.r.lMember cdre:ProductsMember 2022-01-01 2022-12-31 0001860543 cdre:CyalumeAcquisitionMember cdre:ProductsMember 2022-01-01 2022-12-31 0001860543 cdre:ProductsMember 2022-12-31 0001860543 cdre:DistributionServicesMember 2022-12-31 0001860543 cdre:ProductsMember 2021-12-31 0001860543 cdre:DistributionServicesMember 2021-12-31 0001860543 cdre:ProductsMember 2020-12-31 0001860543 cdre:DistributionServicesMember 2020-12-31 0001860543 cdre:NewCreditAgreementAugust2021Member 2021-01-01 2021-12-31 0001860543 us-gaap:TradeNamesMember 2022-01-01 2022-12-31 0001860543 us-gaap:TechnologyBasedIntangibleAssetsMember 2022-01-01 2022-12-31 0001860543 us-gaap:NoncompeteAgreementsMember 2022-01-01 2022-12-31 0001860543 us-gaap:CustomerRelationshipsMember 2022-01-01 2022-12-31 0001860543 us-gaap:TradeNamesMember 2021-01-01 2021-12-31 0001860543 us-gaap:TechnologyBasedIntangibleAssetsMember 2021-01-01 2021-12-31 0001860543 us-gaap:NoncompeteAgreementsMember 2021-01-01 2021-12-31 0001860543 us-gaap:CustomerRelationshipsMember 2021-01-01 2021-12-31 0001860543 cdre:CyalumeAcquisitionMember us-gaap:TrademarksMember 2022-05-04 2022-05-04 0001860543 us-gaap:TradeNamesMember 2022-12-31 0001860543 us-gaap:TechnologyBasedIntangibleAssetsMember 2022-12-31 0001860543 us-gaap:NoncompeteAgreementsMember 2022-12-31 0001860543 us-gaap:CustomerRelationshipsMember 2022-12-31 0001860543 us-gaap:TradeNamesMember 2021-12-31 0001860543 us-gaap:TechnologyBasedIntangibleAssetsMember 2021-12-31 0001860543 us-gaap:NoncompeteAgreementsMember 2021-12-31 0001860543 us-gaap:CustomerRelationshipsMember 2021-12-31 0001860543 us-gaap:RestrictedStockUnitsRSUMember 2022-12-31 0001860543 us-gaap:RestrictedStockMember 2022-12-31 0001860543 us-gaap:EmployeeStockOptionMember 2022-12-31 0001860543 2021-11-22 0001860543 2021-11-11 0001860543 2021-08-11 2021-08-11 0001860543 us-gaap:RetainedEarningsMember 2022-01-01 2022-12-31 0001860543 us-gaap:RetainedEarningsMember 2021-01-01 2021-12-31 0001860543 us-gaap:DisposalGroupNotDiscontinuedOperationsMember cdre:DaventryUkFacilityMember 2022-01-01 2022-12-31 0001860543 us-gaap:DisposalGroupNotDiscontinuedOperationsMember cdre:DaventryUkFacilityMember 2022-11-30 0001860543 us-gaap:AccruedLiabilitiesMember us-gaap:InterestRateSwapMember 2022-12-31 0001860543 us-gaap:AccruedLiabilitiesMember us-gaap:InterestRateSwapMember 2021-12-31 0001860543 us-gaap:InterestRateSwapMember 2022-12-31 0001860543 us-gaap:OtherCurrentAssetsMember us-gaap:InterestRateSwapMember 2021-12-31 0001860543 us-gaap:OtherAssetsMember us-gaap:InterestRateSwapMember 2021-12-31 0001860543 us-gaap:OtherCurrentAssetsMember us-gaap:InterestRateSwapMember 2022-12-31 0001860543 us-gaap:OtherAssetsMember us-gaap:InterestRateSwapMember 2022-12-31 0001860543 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2022-12-31 0001860543 us-gaap:FairValueMeasurementsRecurringMember 2022-12-31 0001860543 us-gaap:FairValueInputsLevel2Member us-gaap:FairValueMeasurementsRecurringMember 2021-12-31 0001860543 us-gaap:InterestRateSwapMember 2021-12-31 0001860543 us-gaap:FairValueMeasurementsRecurringMember 2021-12-31 0001860543 cdre:NewCreditAgreementAugust2021Member 2022-12-31 0001860543 cdre:NewCreditAgreementAugust2021Member 2021-12-31 0001860543 cdre:AfcoCreditCorporationMember us-gaap:LoansPayableMember 2022-07-01 2022-07-31 0001860543 cdre:IpfsCorporationMember cdre:ShortTermLoanFacilityEnteredInNovember2021Member 2021-11-01 2021-11-30 0001860543 cdre:IpfsCorporationMember cdre:ShortTermLoanFacilityEnteredInJuly2021Member 2021-07-01 2021-07-31 0001860543 cdre:AonPremiumFinanceMember us-gaap:LoansPayableMember 2021-07-01 2021-07-31 0001860543 us-gaap:InterestRateSwapMember 2022-01-01 2022-12-31 0001860543 cdre:TermLoanMember cdre:NewCreditAgreementAugust2021Member 2021-08-20 2021-08-20 0001860543 cdre:AfcoCreditCorporationMember us-gaap:LoansPayableMember 2022-07-31 0001860543 cdre:IpfsCorporationMember cdre:ShortTermLoanFacilityEnteredInNovember2021Member 2021-11-30 0001860543 cdre:IpfsCorporationMember us-gaap:LoansPayableMember 2021-07-31 0001860543 cdre:IpfsCorporationMember cdre:ShortTermLoanFacilityEnteredInJuly2021Member 2021-07-31 0001860543 cdre:AonPremiumFinanceMember us-gaap:LoansPayableMember 2021-07-31 0001860543 us-gaap:RevolvingCreditFacilityMember cdre:NewCreditAgreementAugust2021Member 2022-12-31 0001860543 cdre:TermLoanMember cdre:NewCreditAgreementAugust2021Member 2022-12-31 0001860543 cdre:TermLoanMember 2022-12-31 0001860543 cdre:OtherLongTermDebtMember 2022-12-31 0001860543 us-gaap:RevolvingCreditFacilityMember cdre:NewCreditAgreementAugust2021Member 2021-12-31 0001860543 cdre:TermLoanMember cdre:NewCreditAgreementAugust2021Member 2021-12-31 0001860543 cdre:TermLoanMember 2021-12-31 0001860543 cdre:TermLoanMember cdre:NewCreditAgreementAugust2021Member 2021-08-20 0001860543 srt:MinimumMember cdre:CanadianCreditFacilityMember us-gaap:LondonInterbankOfferedRateLIBORMember 2022-01-01 2022-12-31 0001860543 srt:MinimumMember cdre:CanadianCreditFacilityMember us-gaap:BaseRateMember 2022-01-01 2022-12-31 0001860543 srt:MaximumMember cdre:CanadianCreditFacilityMember us-gaap:LondonInterbankOfferedRateLIBORMember 2022-01-01 2022-12-31 0001860543 srt:MaximumMember cdre:CanadianCreditFacilityMember us-gaap:BaseRateMember 2022-01-01 2022-12-31 0001860543 srt:MinimumMember cdre:NewCreditAgreementAugust2021Member us-gaap:LondonInterbankOfferedRateLIBORMember 2021-08-20 2021-08-20 0001860543 srt:MinimumMember cdre:NewCreditAgreementAugust2021Member us-gaap:BaseRateMember 2021-08-20 2021-08-20 0001860543 srt:MaximumMember cdre:NewCreditAgreementAugust2021Member us-gaap:LondonInterbankOfferedRateLIBORMember 2021-08-20 2021-08-20 0001860543 srt:MaximumMember cdre:NewCreditAgreementAugust2021Member us-gaap:BaseRateMember 2021-08-20 2021-08-20 0001860543 cdre:KandersCompanyIncMember 2022-01-01 2022-12-31 0001860543 us-gaap:OperatingSegmentsMember cdre:ProductsMember 2022-01-01 2022-12-31 0001860543 us-gaap:OperatingSegmentsMember cdre:DistributionServicesMember 2022-01-01 2022-12-31 0001860543 us-gaap:MaterialReconcilingItemsMember 2022-01-01 2022-12-31 0001860543 cdre:ReimbursableDevelopmentContractMember 2022-01-01 2022-12-31 0001860543 us-gaap:OperatingSegmentsMember cdre:ProductsMember 2021-01-01 2021-12-31 0001860543 us-gaap:OperatingSegmentsMember cdre:DistributionServicesMember 2021-01-01 2021-12-31 0001860543 us-gaap:MaterialReconcilingItemsMember 2021-01-01 2021-12-31 0001860543 cdre:ReimbursableDevelopmentContractMember 2021-01-01 2021-12-31 0001860543 us-gaap:CommonStockMember 2022-12-31 0001860543 us-gaap:CommonStockMember 2021-12-31 0001860543 us-gaap:CommonStockMember 2020-12-31 0001860543 2021-08-01 2021-08-31 0001860543 cdre:CyalumeAcquisitionMember 2022-05-04 2022-05-04 0001860543 cdre:RadarLeatherDivisionS.r.lMember 2022-01-11 2022-01-11 0001860543 cdre:CyalumeAcquisitionMember 2022-01-01 2022-12-31 0001860543 2020-12-31 0001860543 cdre:ExecutiveCompensationPlanMember cdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember 2022-03-09 2022-03-09 0001860543 cdre:ExecutiveCompensationPlanMember us-gaap:SellingGeneralAndAdministrativeExpensesMember cdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember 2022-01-01 2022-12-31 0001860543 us-gaap:RestrictedStockUnitsRSUMember 2022-01-01 2022-12-31 0001860543 us-gaap:RestrictedStockMember 2022-01-01 2022-12-31 0001860543 us-gaap:EmployeeStockOptionMember 2022-01-01 2022-12-31 0001860543 us-gaap:AdditionalPaidInCapitalMember 2022-01-01 2022-12-31 0001860543 us-gaap:AdditionalPaidInCapitalMember 2021-01-01 2021-12-31 0001860543 cdre:CyalumeAcquisitionMember us-gaap:TechnologyBasedIntangibleAssetsMember 2022-05-04 2022-05-04 0001860543 cdre:CyalumeAcquisitionMember us-gaap:CustomerRelationshipsMember 2022-05-04 2022-05-04 0001860543 cdre:RadarLeatherDivisionS.r.lMember us-gaap:TrademarksMember 2022-01-11 2022-01-11 0001860543 cdre:RadarLeatherDivisionS.r.lMember us-gaap:TechnologyBasedIntangibleAssetsMember 2022-01-11 2022-01-11 0001860543 cdre:RadarLeatherDivisionS.r.lMember us-gaap:CustomerRelationshipsMember 2022-01-11 2022-01-11 0001860543 2022-06-30 0001860543 2023-03-10 0001860543 2021-11-04 0001860543 srt:BoardOfDirectorsChairmanMember 2021-01-01 2021-12-31 0001860543 us-gaap:OverAllotmentOptionMember 2022-07-14 2022-07-14 0001860543 cdre:SecondaryOfferingMember 2022-06-09 2022-06-09 0001860543 us-gaap:IPOMember 2021-11-03 2021-11-03 0001860543 srt:MinimumMember cdre:NewCreditAgreementAugust2021Member 2021-08-20 0001860543 srt:MaximumMember cdre:NewCreditAgreementAugust2021Member 2021-08-20 0001860543 us-gaap:RestrictedStockMember 2021-11-04 2021-11-04 0001860543 srt:MaximumMember cdre:ScenarioPeriodTwoMember cdre:NewCreditAgreementAugust2021Member 2021-08-20 2021-08-20 0001860543 cdre:ScenarioPeriodOneMember cdre:NewCreditAgreementAugust2021Member 2021-08-20 2021-08-20 0001860543 us-gaap:RevolvingCreditFacilityMember cdre:CanadianCreditFacilityMember 2022-12-31 0001860543 cdre:TermLoanMember cdre:NewCreditAgreementAugust2021Member 2022-01-01 2022-12-31 0001860543 cdre:ScenarioPeriodThreeMember cdre:NewCreditAgreementAugust2021Member 2021-08-20 2021-08-20 0001860543 cdre:TermLoanMember cdre:NewCreditAgreementAugust2021Member 2021-01-01 2021-12-31 0001860543 cdre:NewCreditAgreementAugust2021Member 2021-08-20 2021-08-20 0001860543 2021-03-01 2021-03-31 0001860543 cdre:ExecutiveCompensationPlanMember us-gaap:SellingGeneralAndAdministrativeExpensesMember cdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember 2022-12-31 0001860543 cdre:ExecutiveCompensationPlanMember cdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember 2022-01-01 2022-12-31 0001860543 cdre:ExecutiveCompensationPlanMember cdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember 2022-03-18 0001860543 cdre:ExecutiveCompensationPlanMember cdre:TwoThousandTwentyOnePhantomRestrictedSharePlanMember 2022-03-09 0001860543 cdre:CyalumeAcquisitionMember 2022-05-04 0001860543 cdre:RadarLeatherDivisionS.r.lMember 2022-01-11 0001860543 cdre:RadarLeatherDivisionS.r.lMember 2022-01-01 2022-12-31 0001860543 2022-12-31 0001860543 2021-12-31 0001860543 2022-01-01 2022-12-31 0001860543 2021-01-01 2021-12-31 iso4217:USD iso4217:USD shares shares pure cdre:item iso4217:CAD cdre:segment http://fasb.org/us-gaap/2022#AccruedLiabilitiesCurrent 50 false FY 2022 0001860543 --12-31 2022 FY false 0 0 34383350 http://fasb.org/us-gaap/2022#OtherAssetsCurrent http://fasb.org/us-gaap/2022#OtherAssetsCurrent http://fasb.org/us-gaap/2022#OtherAssetsNoncurrent http://fasb.org/us-gaap/2022#OtherAssetsNoncurrent http://fasb.org/us-gaap/2022#AccruedLiabilitiesCurrent http://fasb.org/us-gaap/2022#AccruedLiabilitiesCurrent 37332271 10000 0.36 P20D http://www.cadre-holdings.com/20221231#OtherOperatingIncomes P3Y P1Y P10Y P3Y P3Y 10-K true 2022-12-31 false 001-40698 CADRE HOLDINGS, INC. DE 38-3873146 13386 International Parkway Jacksonville FL 32218 904 741-5400 Common Stock, $0.0001 Par Value per Share CDRE NYSE No No Yes Yes Non-accelerated Filer true true false false false 366489414 37332271 185 KPMG LLP Jacksonville, Florida 45286000 33857000 64557000 48344000 70273000 63978000 10091000 10353000 6811000 3171000 278000 197018000 159981000 45285000 33053000 8489000 2255000 7059000 50695000 42415000 81576000 66262000 6634000 3026000 391952000 311796000 23406000 19328000 38720000 40736000 4584000 1255000 128000 12211000 13174000 78921000 74621000 137476000 146516000 4965000 3508000 1297000 1192000 722000 226062000 223156000 0.0001 0.0001 10000000 10000000 0 0 0.0001 0.0001 190000000 190000000 37332271 34383350 4000 3000 206540000 127606000 2087000 -1917000 -42741000 -37052000 165890000 88640000 391952000 311796000 457837000 427288000 282159000 256598000 175678000 170690000 153288000 114962000 4355000 3430000 1478000 579000 159000 158962000 118971000 16716000 51719000 6206000 16425000 -15155000 -1137000 -947000 -7343000 -32527000 9373000 19192000 3553000 6531000 5820000 12661000 0.16 0.44 0.16 0.44 36109844 28598692 36122374 28598692 5820000 12661000 6444000 767000 618000 -146000 5826000 913000 -1822000 30000 4004000 943000 9824000 13604000 2148000 256000 -206000 49000 587000 24000 5820000 12661000 15651000 13718000 740000 3193000 4255000 -15155000 -1087000 4772000 31858000 355000 170000 417000 -188000 -1517000 -102000 11536000 4641000 -1162000 3189000 7711000 4564000 5493000 2720000 46409000 40094000 4494000 2832000 411000 55543000 -59626000 -2832000 43000000 257980000 43000000 258612000 198716000 10116000 266000000 3989000 5010000 4952000 3061000 25000 43000 2198000 4217000 6300000 83421000 56329000 2953000 4841000 11509000 12751000 24463000 -6596000 183000 318000 11429000 30984000 33857000 2873000 45286000 33857000 1395000 1158000 6109000 13336000 172000 197000 27483350 3000 48670000 -2860000 -36962000 8851000 12661000 12661000 6900000 78581000 78581000 12751000 12751000 355000 355000 30000 30000 913000 913000 34383350 3000 127606000 -1917000 -37052000 88640000 5820000 5820000 2550000 1000 53376000 53377000 11509000 11509000 30706000 30706000 580990 1152000 1152000 -182069 -6300000 -6300000 -1822000 -1822000 5826000 5826000 37332271 4000 206540000 2087000 -42741000 165890000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">1.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">SIGNIFICANT ACCOUNTING POLICIES</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Nature of Operations and Basis of Presentation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Cadre Holdings, Inc., D/B/A The Safariland Group (the “Company”, “Cadre”, “we”, “us”, and “our”), a Delaware corporation, began operations on April 12, 2012. The Company, headquartered in Jacksonville, Florida, is a global leader in manufacturing and distributing safety and survivability products and other related products for the law enforcement, first responder and military markets. The business operates through 16 manufacturing plants within the U.S., Mexico, Canada, the United Kingdom, Italy, France and Lithuania, and sells its products worldwide through its direct sales force, distribution channel and distribution partners, online stores, and third-party resellers.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Principles of Consolidation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The accompanying consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (“GAAP” or “U.S. GAAP”) and include the accounts of Cadre Holdings, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock Split</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In July 2021, the Company effected a <span style="-sec-ix-hidden:Hidden_-a-YNSxgTkiqGb5Mr6-Qvg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">50-for-1</span></span> stock split of its common stock and preferred stock. All share and per share information has been retroactively adjusted to reflect the stock split for all periods presented.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Emerging Growth Company</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">We are an “emerging growth company,” as defined in the Jumpstart Our Business Startups Act of 2012 (the “JOBS Act”). As such, we are eligible for exemptions from various reporting requirements applicable to other public companies that are not emerging growth companies, including, but not limited to, presenting only two years of audited financial statements, not being required to comply with the auditor attestation requirements of Section 404 of the Sarbanes-Oxley Act of 2002, reduced disclosure obligations regarding executive compensation, and an exemption from the requirements to obtain a non-binding advisory vote on executive compensation or golden parachute arrangements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In addition, an emerging growth company can take advantage of an extended transition period for complying with new or revised accounting standards. This provision allows an emerging growth company to delay the adoption of certain accounting standards until those standards would otherwise apply to private companies. We have elected to avail ourselves of this provision of the JOBS Act. As a result, we will not be subject to new or revised accounting standards at the same time as other public companies that are not emerging growth companies. Therefore, our consolidated financial statements may not be comparable to those of companies that comply with new or revised accounting pronouncements as of public company effective dates.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Use of Estimates</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The preparation of these consolidated financial statements requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenue and expenses during the reporting period. Actual results could differ from these estimates.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Fair Value Measurements</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;">The Company follows the guidance of Accounting Standards Codification (“ASC”) Topic 820, <i style="font-style:italic;">Fair Value Measurements and Disclosures, </i>which defines fair value, establishes a framework for measuring fair value and expands disclosures about fair value </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">measurements. This guidance also establishes the following three-level hierarchy based upon the transparency of inputs to the valuation of an asset or liability on the measurement date:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 18pt;">Level 1: Observable inputs that reflect unadjusted quoted prices for identical assets or liabilities traded in active markets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 17.45pt;">Level 2: Inputs other than quoted prices included within Level 1 that are observable for the asset or liability, either directly or indirectly, for substantially the full term of the asset or liability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 17.45pt;">Level 3: Unobservable inputs that reflect assumptions about what market participants would use in pricing assets or liabilities based on the best information available.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">The Company’s financial instruments consist principally of cash, accounts receivable, prepaid expenses, other current assets, accounts payable, accrued liabilities, income tax payable and debt. The carrying amounts of certain of these financial instruments, including cash, accounts receivable, prepaid expenses, other current assets, accounts payable, accrued liabilities and income tax payable approximate their current fair value due to the relatively short-term nature of these accounts.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Cash and Cash Equivalents</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Included in cash and cash equivalents are deposits with banks, cash on hand in stores, and amounts due from credit card transactions. We have no restrictions on our cash and cash equivalents.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounts Receivable</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Trade accounts receivable consists of amounts owed to the Company and is stated net of allowances. The Company’s outstanding accounts receivable balances are exposed to credit risk and valuation allowances are established for estimated losses resulting from non-collection of outstanding amounts due from customers.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company establishes a reserve for estimated doubtful accounts based on the aging of its receivable balances and collection history. In addition, specific reserves are established for customer accounts as known collection problems occur due to insolvency, disputes, or other collection issues. The amounts of these specific reserves are estimated by management based on the customer’s financial position, the age of the customer’s receivables and the reasons for any disputes. The allowance for doubtful accounts is reduced by any write-off of uncollectible customer accounts.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Inventories</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Inventories are stated at the lower of cost, determined using the first-in, first-out (“FIFO”) or average cost methods, or net realizable value. Elements of cost in the Company’s manufactured inventories generally include raw materials, direct labor, indirect labor, manufacturing overhead and freight-in. The Company periodically reviews its inventories considering sales forecasts and historical experience to identify excess, close-out, or slow-moving items and makes provisions as necessary to properly reflect inventory value at the lower of cost or net realizable value.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Assets Held for Sale</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">An asset is considered to be held for sale when all of the following criteria are met: (i) management commits to a plan to sell the asset; (ii) it is unlikely that the disposal plan will be significantly modified or discontinued; (iii) the asset is available for immediate sale in its present condition; (iv) actions required to complete the sale of the asset have been initiated; (v) sale of the asset is probable and the completed sale is expected to occur within one year; and (vi) the asset is actively being marketed for sale at a price that is reasonable given its current market value.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">A long-lived asset classified as held for sale is measured at the lower of its carrying amount or fair value less cost to sell. A long-lived asset is not depreciated or amortized while it is classified as held for sale.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Property and Equipment</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Property and equipment, including those acquired under capital lease agreements, is stated at cost less accumulated depreciation and amortization, except for assets acquired using acquisition accounting, which are initially recorded at fair value. Depreciation is computed using the straight-line method over the following estimated useful lives:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 28.8pt;"><b style="font-weight:bold;">Buildings and improvements</b></p></td><td style="vertical-align:top;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">   </p></td><td style="vertical-align:bottom;width:49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">5 to 39 years</p></td></tr><tr><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 28.8pt;"><b style="font-weight:bold;">Furniture and fixtures</b></p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">2 to 10 years</p></td></tr><tr><td style="vertical-align:bottom;width:49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 28.8pt;"><b style="font-weight:bold;">Computer hardware and software</b></p></td><td style="vertical-align:top;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3 to 5 years</p></td></tr><tr><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 28.8pt;"><b style="font-weight:bold;">Machinery and equipment</b></p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3 to 8 years</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Leasehold improvements are amortized over the lesser of the estimated useful life of the improvement or the life of the lease. Major replacements, which extend the useful lives of property and equipment, are capitalized and depreciated over the remaining useful life of the asset. Normal repair and maintenance items are expensed as incurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The recoverability of the carrying amount of property and equipment is assessed when events or changes in circumstances indicate that the carrying amount of an asset or asset group may not be recoverable. If it is determined that the carrying amount of an asset or asset group is not recoverable based upon expected undiscounted future cash flows of the asset or asset group, an impairment loss equal to the excess of the carrying amount over the estimated fair value of the asset or asset group is recorded.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Leases</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Lease assets and lease liabilities are recognized at the commencement of an arrangement where it is determined at inception that a lease exists.  Lease assets represent the right to use an underlying asset for the lease term, and lease liabilities represent the obligation to make lease payments arising from the lease.  These assets and liabilities are initially recognized based on the present value of lease payments over the lease term calculated using our incremental borrowing rate.  Lease terms include options to extend or terminate the lease when it is reasonably certain that those options will be exercised.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Variable lease payments are generally expensed as incurred and include certain non-lease components, such as common area maintenance and other services provided by the lessor, and other charges such as utilities, insurance and property taxes included in the lease.  Leases with an initial term of 12 months or less are not recorded on the balance sheet, and the expense for these short-term leases and for operating leases is recognized on a straight-line basis over the lease term. Non-lease components are excluded from the right-of-use (“ROU”) asset and lease liability present value computations. The Company’s lease agreements do not contain any material residual value guarantees or material restrictive covenants.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Goodwill and Intangible Assets</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company classifies intangible assets into three categories: i) intangible assets with definite lives subject to amortization, ii) intangible assets with indefinite lives not subject to amortization and iii) goodwill. The Company determines the useful lives of its identifiable intangible assets after considering the specific facts and circumstances related to each intangible asset. Factors the Company considers when determining useful lives include the contractual term of any agreement related to the asset, the historical performance of the asset, the Company’s long-term strategy for using the asset, any laws or other local regulations which could impact the useful life of the asset, and other economic factors, including competition and specific market conditions. Intangible assets that are deemed to have definite lives are amortized on a straight-line basis over their useful lives.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company tests goodwill and intangible assets determined to have indefinite useful lives for impairment annually, or more frequently if events or circumstances indicate that assets might be impaired. The Company performs these annual impairment tests as of October 31<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> each year. Goodwill is evaluated for impairment at the reporting unit level, which is defined as an operating segment or one level below an operating segment. As of October 31, 2022 and 2021, the Company had three reporting units: Safariland, Med-Eng, and Distribution.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In evaluating goodwill for impairment, qualitative factors are considered to determine whether it is more likely than not that the fair value of a reporting unit is less than its carrying amount. Some of these qualitative factors may include macroeconomic conditions, industry and market considerations, a change in financial performance, or entity-specific events. If, through this qualitative assessment, the conclusion is made that it is more likely than not that a reporting unit’s fair value is less than its carrying amount, the Company performs a two-step goodwill impairment test. The first step involves a comparison of the fair value of a reporting unit to its carrying value. If the carrying amount of the reporting unit exceeds its fair value, the second step of the process is performed, which compares the implied value of the reporting unit goodwill with the carrying value of the goodwill of that reporting unit. If the carrying value of the goodwill of a reporting unit exceeds the implied fair value of that goodwill, an impairment loss is recognized in an amount equal to that excess.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company determines the fair value of reporting units based on a combination of the income approach and market approach, weighted based on the circumstances. Under the income approach, the discounted cash flow model determines fair value based on the present value of projected cash flows over a specific projection period and a residual value related to future cash flows beyond the projection period. Both values are discounted using a rate that reflects the Company’s best estimate of the weighted average cost of capital of a market participant and is adjusted for appropriate risk factors. The Company performs sensitivity tests with respect to growth rates and discount rates used in the income approach. Under the market approach, valuation multiples are derived based on a selection of comparable companies and acquisition transactions and applied to projected operating data for each reporting unit to arrive at an indication of fair value.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performed the qualitative assessment of goodwill and determined it was more likely than not that the fair value of each of its reporting units would be greater than its carrying amount. Therefore, the Company determined it was not necessary to perform the quantitative goodwill impairment test.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">For indefinite-lived intangible assets other than goodwill, the impairment test consists of a comparison of the fair value of the intangible asset with its carrying amount. If the carrying amount exceeds the fair value, an impairment charge is recognized in an amount equal to that excess.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company tests definite-lived intangible assets for recoverability when changes in circumstances indicate the carrying value may not be recoverable. Events that trigger a test for recoverability include:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">material adverse changes in projected revenues and expenses;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">significant underperformance relative to historical and projected future operating results;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">significant negative industry or economic trends; and,</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">a significant adverse change in the manner in which an asset group is used or in its physical condition.</span></td></tr></table><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Future adverse changes in these or other unforeseeable factors could result in an impairment charge that could materially impact future results of operations and financial position in the reporting period identified.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;">When a triggering event occurs, a test for recoverability is performed by comparing projected undiscounted future cash flows to the carrying value of the asset group. If the test for recoverability identifies a possible impairment, the asset group’s fair value is </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">measured relying primarily on a discounted cash flow method. An impairment charge is recognized for the amount by which the carrying value of the asset group exceeds its estimated fair value. When an impairment loss is recognized for assets to be held and used, the adjusted carrying amount of those assets is depreciated over their remaining useful life. We did not have any events or circumstances indicating impairment of our long-lived assets for the years presented.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounts Payable</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accounts payable represents amounts owed by us to third parties at the end of the period. Accounts payable includes $188 and $670 of book cash overdrafts in excess of cash balances in such accounts as of December 31, 2022 and 2021, respectively. We include the change in book cash overdrafts in operating cash flows in the consolidated statements of cash flows.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Revenue Recognition</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company derives revenue primarily from the sale of physical products. The Company recognizes revenue when a contract exists with a customer that specifies the goods and services to be provided at an agreed upon sales price and when the performance obligation is satisfied by transferring the goods or service to the customer. The performance obligation is considered satisfied when control transfers, which is generally determined when products are shipped or delivered to the customer but could be delayed until the receipt of customer acceptance, depending on the terms of the contract. Sales are made on normal and customary short-term credit terms or upon delivery for point of sale transactions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company enters into contractual arrangements primarily with customers in the form of individual customer orders which specify the goods, quantity, pricing, and associated order terms. The Company has some long-term contracts that may contain research and development performance obligations that are satisfied over time. The Company invoices the customer once the billing milestone is reached and collects under customary short-term credit terms. For long-term contracts, the Company recognizes revenue using the input method based on costs incurred, as this method is an appropriate measure of progress toward the complete satisfaction of the performance obligation. Due to uncertainties inherent in the estimation process, it is possible that estimates of costs to complete a performance obligation will be revised in the near-term. For those performance obligations for which revenue is recognized using a cost-to-cost input method, changes in total estimated costs, and related progress towards complete satisfaction of the performance obligation, are recognized on a cumulative catch-up basis in the period in which the revisions to the estimates are made. When the current estimate of total costs for a performance obligation indicate a loss, a provision for the entire estimated loss on the unsatisfied performance obligation is made in the period in which the loss becomes evident.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">At the time of revenue recognition, the Company also provides for estimated sales returns and miscellaneous claims from customers as reductions to revenues. The estimates are based on historical rates of product returns and claims. The Company accrues for such estimated returns and claims with an estimated accrual and associated reduction of revenue. Additionally, the Company records inventory that it expects to be returned as part of inventories, with a corresponding reduction to cost of goods sold.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Charges for shipping and handling fees billed to customers are included in net sales and the corresponding shipping and handling expenses are included in cost of goods sold in the accompanying consolidated statements of operations and comprehensive income. We consider our costs related to shipping and handling after control over a product has transferred to a customer to be a cost of fulfilling the promise to transfer the product to the customer.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Sales commissions paid to employees as compensation are expensed as incurred for contracts with service periods less than a year. For contracts with service periods greater than a year, these costs are capitalized and amortized over the life of the contract. These costs are recorded in selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Product Warranty</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Some of the Company’s manufactured products carry limited warranty provisions for defects in quality and workmanship. A warranty reserve is established at the time of sale to cover estimated costs based on the Company’s history of warranty repairs and replacements and is recorded in cost of goods sold in the Company’s consolidated statements of operations and comprehensive income.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The following table sets forth the changes in the Company’s accrued warranties, which is recorded in accrued liabilities in the consolidated balance sheets:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Beginning accrued warranty expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,256</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,133</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current period claims</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (278)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (399)</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Provision for current period sales</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 256</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 522</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Ending accrued warranty expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,234</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,256</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Cost of Goods Sold</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Cost of goods sold includes raw material purchases, manufacturing-related labor costs, contracted labor, shipping costs, reimbursable research and development costs, allocated manufacturing overhead, facility costs, depreciation and amortization, and product warranty costs.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Selling, General &amp; Administrative Expenses</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Selling, general and administrative expense includes personnel-related costs, including stock-based compensation, professional services, marketing and advertising expense, research and development, depreciation and amortization, and impairment charges.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Advertising Expenses</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Advertising costs are expensed in the period incurred. Advertising expenses primarily consist of marketing, promotions, catalog and trade show expenses and were $4,711 and $3,120 during the years ended December 31, 2022 and 2021, respectively. Advertising expenses are included in selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Research and Development</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Research and development expenses are expensed as incurred and included within selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income. Total research and development costs were $7,086 and $6,460 for the years ended December 31, 2022 and 2021, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In addition, the Company incurs research and development expenses related to reimbursable development contracts. Contractual research and development expenses are included in cost of goods sold in the Company’s consolidated statements of operations and comprehensive income and were $1,639 and $5,895 for the years ended December 31, 2022 and 2021, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;font-style:italic;font-weight:bold;">Debt Issuance Costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The<span style="letter-spacing:-0.85pt;"> </span>Company<span style="letter-spacing:-0.85pt;"> </span>capitalizes<span style="letter-spacing:-0.85pt;"> </span>costs<span style="letter-spacing:-0.85pt;"> </span><span style="letter-spacing:-0.15pt;">related</span><span style="letter-spacing:-0.85pt;"> </span>to<span style="letter-spacing:-0.8pt;"> </span>the<span style="letter-spacing:-0.85pt;"> </span>issuance<span style="letter-spacing:-0.85pt;"> </span>of<span style="letter-spacing:0.05pt;"> </span>debt<span style="letter-spacing:-0.85pt;"> </span>under<span style="letter-spacing:-0.85pt;"> </span>the<span style="letter-spacing:-0.85pt;"> </span><span style="letter-spacing:-0.15pt;">provisions</span><span style="letter-spacing:-0.8pt;"> </span>of<span style="letter-spacing:0.05pt;"> </span>ASC<span style="letter-spacing:-0.85pt;"> </span>Subtopic<span style="letter-spacing:-0.85pt;"> </span>835-30, <i style="font-style:italic;">Interest — Imputation of Interest. </i>Debt issuance costs related to a recognized debt liability are presented in the consolidated balance sheets as a direct deduction from the carrying amount of that debt liability and subsequently amortized on a straight-line method which approximates the effective interest method<span style="letter-spacing:-1pt;"> </span><span style="letter-spacing:-0.15pt;">over </span>the life of the related loan. Debt issuance costs related to line-of-credit are presented in the consolidated balance sheets as an asset and subsequently amortized ratably over the term of the respective arrangement. Amortization of debt issuance costs is included as a component of interest expense in the Company’s consolidated statements of operations and comprehensive income.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;font-style:italic;font-weight:bold;">Stock-Based Compensation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The Company records compensation expense for all stock-based awards granted based on the fair value of the award at the time of the grant. </span>The fair value of each option award is estimated on the date of grant using the Black-Scholes option pricing model that uses assumptions and estimates that the Company believes are reasonable. The fair value of restricted stock awards is measured based on the closing market value of the Company’s common stock on the date of the grant. <span style="background:#ffffff;">For restricted stock awards subject to market conditions, the fair value of each restricted stock award has been estimated as of the date of grant using a Monte-Carlo pricing model. The Company recognizes the cost of the stock-based awards on a straight-line basis over the requisite service period of the award and recognizes forfeitures in the period they occur. </span>Stock options granted have contractual terms of up to ten years. <span style="background:#ffffff;">Upon vesting of restricted stock awards, the Company issues shares from those authorized and reserved for issuance.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;font-style:italic;font-weight:bold;">Derivatives</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The Company mitigates the impact of changes in interest rates with interest rate swaps that are accounted for as designated hedges pursuant to ASC Topic 815,</span><i style="font-style:italic;background:#ffffff;"> Derivatives and Hedging</i><span style="background:#ffffff;"> ("ASC 815"). ASC 815 requires that an entity recognize all derivatives as either assets or liabilities on the balance sheet, measure those instruments at fair value and recognize changes in the fair value of derivatives in earnings in the period of change unless the derivative qualifies as designated cash flow hedge that offsets certain exposures. Certain criteria must be satisfied in order for derivative financial instruments to be classified and accounted for as a cash flow hedge. Changes in the fair value of derivatives that are not elected for hedge accounting treatment are recorded immediately into earnings.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The Company would discontinue hedge accounting prospectively (i) if it is determined that the derivative is no longer effective in offsetting changes in the cash flows of a hedged item, (ii) when the derivative expires or is sold, terminated, or exercised, (iii) if it becomes probable that the forecasted transaction being hedged by the derivative will not occur, (iv) if a hedged firm commitment no longer meets the definition of a firm commitment, or (v) if it is determined that designation of the derivative as a hedge instrument is no longer appropriate. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;font-style:italic;font-weight:bold;">Restructuring Costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Restructuring costs consist primarily of termination benefits and relocation of employees, termination of operating leases and other contracts related to consolidating or closing facilities. The Company applies the provisions of ASC Topic 420, <i style="font-style:italic;">Exit or Disposal Cost Obligations </i>(“ASC 420”) and ASC Topic 712, <i style="font-style:italic;">Nonretirement Postemployment Benefits </i>(“ASC 712”) in the recording of severance costs. Severance costs accounted for under ASC 420 are recognized when management with the proper level of authority commits to a restructuring plan and communicates those actions to employees and other applicable criteria. Severance<span style="letter-spacing:-0.2pt;"> </span>costs<span style="letter-spacing:-0.15pt;"> </span>accounted<span style="letter-spacing:-0.15pt;"> for </span>under<span style="letter-spacing:-0.15pt;"> </span>ASC<span style="letter-spacing:-0.15pt;"> </span>712<span style="letter-spacing:-0.15pt;"> </span>are<span style="letter-spacing:-0.15pt;"> </span>recognized<span style="letter-spacing:-0.15pt;"> </span>when<span style="letter-spacing:-0.2pt;"> </span>it<span style="letter-spacing:-0.15pt;"> </span>is<span style="letter-spacing:-0.15pt;"> probable </span>that<span style="letter-spacing:-0.15pt;"> </span>employees<span style="letter-spacing:-0.15pt;"> </span>are<span style="letter-spacing:-0.15pt;"> </span>entitled to benefits and the amount could be reasonably estimated. Other exit costs are accounted for under ASC 420 and are either deferred or expensed as incurred based on the nature of the<span style="letter-spacing:-0.85pt;"> </span>expense.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;font-style:italic;font-weight:bold;">Income Taxes</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;">The Company accounts for income taxes under the provisions of ASC Topic 740, </span><i style="color:#231f20;font-style:italic;">Income Taxes</i><span style="color:#231f20;">. Deferred tax assets and liabilities are determined based on differences between the financial statement carrying amounts and tax bases of assets and liabilities and are classified as noncurrent in the consolidated balance sheets.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred tax assets and liabilities are measured using enacted tax rates expected to apply to taxable income in the years in which those temporary differences are expected to be recovered or settled. The effect of<span style="letter-spacing:0.5pt;"> </span>changes<span style="letter-spacing:-0.45pt;"> </span>in<span style="letter-spacing:-0.4pt;"> </span>tax<span style="letter-spacing:-0.4pt;"> </span>rates<span style="letter-spacing:-0.4pt;"> </span>on<span style="letter-spacing:-0.4pt;"> </span>deferred<span style="letter-spacing:-0.4pt;"> </span>tax<span style="letter-spacing:-0.4pt;"> </span>assets<span style="letter-spacing:-0.4pt;"> </span>and<span style="letter-spacing:-0.4pt;"> </span>liabilities<span style="letter-spacing:-0.4pt;"> </span>is<span style="letter-spacing:-0.4pt;"> </span>recognized<span style="letter-spacing:-0.45pt;"> </span>in<span style="letter-spacing:-0.4pt;"> </span>income<span style="letter-spacing:-0.4pt;"> </span>in<span style="letter-spacing:-0.4pt;"> </span>the<span style="letter-spacing:-0.4pt;"> </span>period<span style="letter-spacing:-0.4pt;"> </span>that<span style="letter-spacing:-0.4pt;"> </span>includes the enactment <span style="letter-spacing:-0.2pt;">date. </span>Changes in tax <span style="letter-spacing:-0.2pt;">laws </span>and rates could <span style="letter-spacing:-0.25pt;">have </span>a material impact on the deferred tax assets and liabilities<span style="letter-spacing:-0.4pt;"> </span>recorded.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred tax assets are reduced by a <span style="letter-spacing:-0.15pt;">valuation allowance </span>when, in the opinion of management, it is more <span style="letter-spacing:-0.15pt;">likely</span><span style="letter-spacing:-0.3pt;"> </span>than<span style="letter-spacing:-0.3pt;"> </span>not<span style="letter-spacing:-0.3pt;"> </span>that<span style="letter-spacing:-0.3pt;"> </span>some<span style="letter-spacing:-0.3pt;"> </span>portion<span style="letter-spacing:-0.3pt;"> </span>or<span style="letter-spacing:-0.3pt;"> </span><span style="letter-spacing:-0.15pt;">all</span><span style="letter-spacing:-0.3pt;"> </span>of<span style="letter-spacing:0.75pt;"> </span>the<span style="letter-spacing:-0.3pt;"> </span>deferred<span style="letter-spacing:-0.3pt;"> </span>tax<span style="letter-spacing:-0.3pt;"> </span>assets<span style="letter-spacing:-0.3pt;"> </span>will<span style="letter-spacing:-0.3pt;"> </span>not<span style="letter-spacing:-0.3pt;"> </span>be<span style="letter-spacing:-0.25pt;"> </span>realized.<span style="letter-spacing:-0.3pt;"> </span>Significant<span style="letter-spacing:-0.3pt;"> </span>estimates<span style="letter-spacing:-0.3pt;"> </span>are used in the <span style="letter-spacing:-0.15pt;">evaluation </span>of the need <span style="letter-spacing:-0.15pt;">for </span>a <span style="letter-spacing:-0.15pt;">valuation allowance </span>including estimates regarding future taxable income.<span style="letter-spacing:-0.3pt;"> </span>Changes<span style="letter-spacing:-0.25pt;"> </span>to<span style="letter-spacing:-0.25pt;"> </span>those<span style="letter-spacing:-0.25pt;"> </span>estimates<span style="letter-spacing:-0.25pt;"> </span>could<span style="letter-spacing:-0.25pt;"> </span>impact<span style="letter-spacing:-0.25pt;"> </span>management’s<span style="letter-spacing:-0.25pt;"> </span>conclusions<span style="letter-spacing:-0.25pt;"> </span>regarding<span style="letter-spacing:-0.25pt;"> </span>the<span style="letter-spacing:-0.25pt;"> </span>need<span style="letter-spacing:-0.25pt;"> </span><span style="letter-spacing:-0.15pt;">for</span><span style="letter-spacing:-0.25pt;"> valuation </span>allowances on some or <span style="letter-spacing:-0.15pt;">all </span>of the deferred tax assets. The Company releases the income tax effects of deferred tax balances that <span style="letter-spacing:-0.25pt;">have </span>a <span style="letter-spacing:-0.15pt;">valuation allowance </span>from accumulated other comprehensive income (loss) once the reason the tax effects were established ceases to<span style="letter-spacing:-1.6pt;"> </span>exist.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company is subject to income taxes in the United States and <span style="letter-spacing:-0.15pt;">several </span>foreign jurisdictions. In the United <span style="letter-spacing:-0.15pt;">States, </span>the Company files a consolidated income tax return with its domestic subsidiaries. When tax returns are filed, it is highly certain that some positions <span style="letter-spacing:-0.2pt;">taken </span>would be sustained upon examination by taxing<span style="letter-spacing:-0.3pt;"> </span>authorities,<span style="letter-spacing:-0.25pt;"> </span>while<span style="letter-spacing:-0.3pt;"> </span>others<span style="letter-spacing:-0.25pt;"> </span>are<span style="letter-spacing:-0.25pt;"> </span>subject<span style="letter-spacing:-0.3pt;"> </span>to<span style="letter-spacing:-0.25pt;"> </span>uncertainty<span style="letter-spacing:-0.25pt;"> </span>about<span style="letter-spacing:-0.3pt;"> </span>the<span style="letter-spacing:-0.25pt;"> </span>merits<span style="letter-spacing:-0.3pt;"> </span>of<span style="letter-spacing:0.95pt;"> </span>the<span style="letter-spacing:-0.25pt;"> </span>position<span style="letter-spacing:-0.3pt;"> </span><span style="letter-spacing:-0.2pt;">taken</span><span style="letter-spacing:-0.25pt;"> </span>or<span style="letter-spacing:-0.25pt;"> </span>the<span style="letter-spacing:-0.3pt;"> </span>amount of the position that would be ultimately sustained. The benefit of a tax position is recognized in<span style="letter-spacing:0.7pt;"> </span>the consolidated financial statements in the period during which, based on <span style="letter-spacing:-0.15pt;">all </span><span style="letter-spacing:-0.2pt;">available </span>evidence, it is more <span style="letter-spacing:-0.15pt;">likely </span>than not that the position will be sustained upon examination, including the resolution of appeals or litigation<span style="letter-spacing:-0.45pt;"> </span>processes,<span style="letter-spacing:-0.4pt;"> </span>if<span style="letter-spacing:0.6pt;"> </span><span style="letter-spacing:-0.4pt;">any. </span><span style="letter-spacing:-0.25pt;">Tax</span><span style="letter-spacing:-0.45pt;"> </span>positions<span style="letter-spacing:-0.4pt;"> </span><span style="letter-spacing:-0.2pt;">taken</span><span style="letter-spacing:-0.45pt;"> </span>are<span style="letter-spacing:-0.4pt;"> </span>not<span style="letter-spacing:-0.45pt;"> </span>offset<span style="letter-spacing:-0.4pt;"> </span>or<span style="letter-spacing:-0.45pt;"> </span>aggregated<span style="letter-spacing:-0.4pt;"> </span>with<span style="letter-spacing:-0.45pt;"> </span>other<span style="letter-spacing:-0.4pt;"> </span>positions.<span style="letter-spacing:-0.45pt;"> </span><span style="letter-spacing:-0.25pt;">Tax</span><span style="letter-spacing:-0.4pt;"> </span>positions that meet the more-likely than-not threshold are measured as the largest amount of tax benefit that<span style="letter-spacing:-0.95pt;"> </span>is <span style="color:#231f20;">more than 50% likely of being realized upon settlement with the applicable taxing authority. The portion of the benefits associated with tax positions taken that exceeds the amount measured as described above is reflected as a liability for unrecognized tax benefits in the accompanying balance sheets along with any associated interest and penalties that would be payable to the taxing authorities upon examination.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Further information regarding the Company’s tax positions is included in Note 16<i style="font-style:italic;">, Income Taxes</i>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accumulated Other Comprehensive Income (Loss)</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Comprehensive income (loss) represents all changes in equity of the Company that result from recognized transactions and other economic events during the period. Other comprehensive income (loss) refers to revenues, expenses, gains, and losses that under GAAP are included in comprehensive income but excluded from net income.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Foreign Currency</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;">Translation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Assets and liabilities of subsidiaries operating outside the United States with a functional currency other than U.S. Dollars are translated into U.S. Dollars using the exchange rates in effect at the balance sheet date. Results of operations are translated using the average exchange rate prevailing throughout the period. The effects of unrealized exchange rate fluctuations on translating foreign currency assets and liabilities into U.S. dollars are accumulated as the cumulative translation adjustment included in accumulated other comprehensive income (loss) in the consolidated balance sheets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;">Transaction</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Transactions denominated in foreign currency are recorded at the exchange rate on the date of each transaction. Realized gains and losses on foreign currency transactions are included in other income, net in the consolidated statements of operations and comprehensive income, except on certain intercompany balances which the Company has determined are of a long-term investment nature, which are included in accumulated other comprehensive income (loss) in the consolidated balance sheets. Monetary assets and liabilities are remeasured at the balance sheet date at end-of-period exchange rates. Unrealized gains and losses arising from remeasurement of foreign currency-denominated monetary assets and liabilities are included in other expense, net in the consolidated statements of operations and comprehensive income in the period in which they occur.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Net Income per Share</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Basic income or loss per share is computed by dividing net income by the weighted average number of common shares outstanding during the periods presented. <span style="background:#ffffff;">Diluted income or loss per share is calculated by adjusting weighted average shares outstanding for the dilutive effect of potential common shares, determined using the treasury-stock method.</span> The calculation of weighted average shares outstanding and net income per share are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;">    </p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,820</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,661</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average shares outstanding - basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,109,844</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28,598,692</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of dilutive securities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Stock-based awards</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,530</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average shares outstanding - diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,122,374</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28,598,692</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net income per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.44</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.44</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:normal;font-weight:normal;">There were </span><span style="font-style:normal;font-weight:normal;">no</span><span style="font-style:normal;font-weight:normal;"> dilutive instruments outstanding for the year ended December 31, 2021.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Risk and Uncertainties</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;">Concentration of Credit Risk</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Financial instruments that potentially subject the Company to concentration of credit risk consist principally of cash and accounts receivable. Risks associated with cash within the United States and foreign countries are mitigated by banking with federally insured, creditworthy institutions. As of December 31, 2022 and 2021, the Company had deposits of $10,142 and $7,593, respectively, at foreign financial institutions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accounts receivable are financial instruments that also expose the Company to concentration of credit risk. Such exposure is limited by the large number of customers comprising the Company’s customer base and their dispersion across different geographic areas. In addition, the Company routinely assesses the financial strength of its customers and maintains an allowance for doubtful accounts that management believes will adequately provide for credit losses. Accordingly, the Company performs ongoing credit evaluations of its customers and maintains allowances for possible losses as considered necessary by management.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Recent Accounting Pronouncements</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;">Recently Adopted Accounting Pronouncements</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In February 2016, the FASB issued ASU 2016-02, <i style="font-style:italic;">Leases (Topic 842)</i>, which is intended to increase transparency and comparability among organizations by requiring the recognition of right-of-use (“ROU”) assets and lease liabilities on the balance sheet. In July 2018, the FASB issued additional guidance which provided an additional transition method for adopting the updated guidance. Under the additional transition method, entities may elect to recognize a cumulative-effect adjustment to the opening balance of retained earnings in the year of adoption. In June 2020, the FASB issued additional guidance which extends the effective date of ASU 2016-02 for emerging growth companies to begin in fiscal years beginning after December 15, 2021. We adopted ASU 2016-02 prospectively on January 1, 2022. As part of the adoption, we elected the package of practical expedients which permits us under the new standard not to reassess historical lease classification, not to recognize short-term leases on our balance sheet, and not to separate lease and non-lease components for all our leases. In addition, we elected the use of hindsight to determine the lease term of its leases and applied its incremental borrowing rate based on the remaining term of its leases as of the adoption date. The impact upon adoption, on January 1, 2022, resulted in the recognition of operating right-of-use assets of $11,769, and operating lease liabilities of $12,029 on our consolidated balance sheet. Refer to Note 17, <i style="font-style:italic;">Leases</i>, for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In December 2019, the FASB issued ASU 2019-12, <i style="font-style:italic;">Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes</i>. ASU 2019-12 simplifies the accounting for income taxes by removing certain exceptions to the general principles in Topic 740 and improves consistent application of and simplifies GAAP for other areas of Topic 740 by clarifying existing guidance. For emerging growth companies, this ASU is effective for fiscal years beginning after December 15, 2021, and interim periods within those fiscal years beginning after December 15, 2022. Early adoption is permitted. The Company adopted this standard on January 1, 2022, which did not result in a material impact on our consolidated financial statements and related disclosures.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;">Accounting Pronouncements Not Yet Adopted</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In June 2016, the FASB issued ASU 2016-13, <i style="font-style:italic;">Financial Instruments — Credit Losses (Topic 326)</i>: <i style="font-style:italic;">Measurement of Credit Losses on Financial Instruments. </i>ASU 2016-13 includes an impairment model (known as the current expected credit loss model) that is based on expected losses rather than incurred losses. Under the new guidance, an entity recognizes as an allowance its estimate of expected credit losses, which the FASB believes will result in more timely recognition of such losses. The use of forecasted information is intended to incorporate more timely information in the estimate of expected credit loss. In November 2019, the FASB issued additional guidance which extends the effective date of ASU 2016-13 for emerging growth companies to begin in fiscal years beginning after December 15, 2022. Early adoption is permitted. The Company plans to adopt this standard on January 1, 2023 and is currently in the process of evaluating the impact of the adoption of this standard on its consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In March 2020, the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) 2020-04, Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting. This ASU provides temporary optional expedients and exceptions to existing guidance on contract modifications and hedge accounting to facilitate the market transition from existing reference rates, such as the London Inter-Bank Offered Rate (“LIBOR”) which is being phased out in 2021, to alternate reference rates, such as the Secured Overnight Financing Rate (“SOFR”). The standard is currently effective and upon adoption may be applied prospectively to contract modifications made on or before December 31, 2022. The provisions have impact as contract modifications and other changes occur while LIBOR is phased out. The Company is in the process of evaluating the optional relief guidance provided within this ASU. Management will continue its assessment and monitor regulatory developments during the LIBOR transition period. Currently, management does not believe that the impact of transitioning from LIBOR to SOFR will have a material effect on the interest rates of the company.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">There were no other new accounting standards that the Company expects to have a potential material impact to the financial position or results of operations upon adoption.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Nature of Operations and Basis of Presentation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Cadre Holdings, Inc., D/B/A The Safariland Group (the “Company”, “Cadre”, “we”, “us”, and “our”), a Delaware corporation, began operations on April 12, 2012. The Company, headquartered in Jacksonville, Florida, is a global leader in manufacturing and distributing safety and survivability products and other related products for the law enforcement, first responder and military markets. The business operates through 16 manufacturing plants within the U.S., Mexico, Canada, the United Kingdom, Italy, France and Lithuania, and sells its products worldwide through its direct sales force, distribution channel and distribution partners, online stores, and third-party resellers.</p> 16 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Principles of Consolidation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The accompanying consolidated financial statements have been prepared in accordance with U.S. generally accepted accounting principles (“GAAP” or “U.S. GAAP”) and include the accounts of Cadre Holdings, Inc. and its wholly-owned subsidiaries. All intercompany balances and transactions have been eliminated in consolidation.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Stock Split</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In July 2021, the Company effected a <span style="-sec-ix-hidden:Hidden_-a-YNSxgTkiqGb5Mr6-Qvg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">50-for-1</span></span> stock split of its common stock and preferred stock. All share and per share information has been retroactively adjusted to reflect the stock split for all periods presented.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Emerging Growth Company</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">We are an “emerging growth company,” as defined in the Jumpstart Our Business Startups Act of 2012 (the “JOBS Act”). As such, we are eligible for exemptions from various reporting requirements applicable to other public companies that are not emerging growth companies, including, but not limited to, presenting only two years of audited financial statements, not being required to comply with the auditor attestation requirements of Section 404 of the Sarbanes-Oxley Act of 2002, reduced disclosure obligations regarding executive compensation, and an exemption from the requirements to obtain a non-binding advisory vote on executive compensation or golden parachute arrangements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In addition, an emerging growth company can take advantage of an extended transition period for complying with new or revised accounting standards. This provision allows an emerging growth company to delay the adoption of certain accounting standards until those standards would otherwise apply to private companies. We have elected to avail ourselves of this provision of the JOBS Act. As a result, we will not be subject to new or revised accounting standards at the same time as other public companies that are not emerging growth companies. Therefore, our consolidated financial statements may not be comparable to those of companies that comply with new or revised accounting pronouncements as of public company effective dates.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Use of Estimates</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The preparation of these consolidated financial statements requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent assets and liabilities at the date of the financial statements and the reported amounts of revenue and expenses during the reporting period. Actual results could differ from these estimates.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Fair Value Measurements</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;">The Company follows the guidance of Accounting Standards Codification (“ASC”) Topic 820, <i style="font-style:italic;">Fair Value Measurements and Disclosures, </i>which defines fair value, establishes a framework for measuring fair value and expands disclosures about fair value </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">measurements. This guidance also establishes the following three-level hierarchy based upon the transparency of inputs to the valuation of an asset or liability on the measurement date:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 18pt;">Level 1: Observable inputs that reflect unadjusted quoted prices for identical assets or liabilities traded in active markets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 17.45pt;">Level 2: Inputs other than quoted prices included within Level 1 that are observable for the asset or liability, either directly or indirectly, for substantially the full term of the asset or liability.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 17.45pt;">Level 3: Unobservable inputs that reflect assumptions about what market participants would use in pricing assets or liabilities based on the best information available.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="white-space:pre-wrap;">The Company’s financial instruments consist principally of cash, accounts receivable, prepaid expenses, other current assets, accounts payable, accrued liabilities, income tax payable and debt. The carrying amounts of certain of these financial instruments, including cash, accounts receivable, prepaid expenses, other current assets, accounts payable, accrued liabilities and income tax payable approximate their current fair value due to the relatively short-term nature of these accounts.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Cash and Cash Equivalents</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Included in cash and cash equivalents are deposits with banks, cash on hand in stores, and amounts due from credit card transactions. We have no restrictions on our cash and cash equivalents.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounts Receivable</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Trade accounts receivable consists of amounts owed to the Company and is stated net of allowances. The Company’s outstanding accounts receivable balances are exposed to credit risk and valuation allowances are established for estimated losses resulting from non-collection of outstanding amounts due from customers.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company establishes a reserve for estimated doubtful accounts based on the aging of its receivable balances and collection history. In addition, specific reserves are established for customer accounts as known collection problems occur due to insolvency, disputes, or other collection issues. The amounts of these specific reserves are estimated by management based on the customer’s financial position, the age of the customer’s receivables and the reasons for any disputes. The allowance for doubtful accounts is reduced by any write-off of uncollectible customer accounts.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Inventories</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Inventories are stated at the lower of cost, determined using the first-in, first-out (“FIFO”) or average cost methods, or net realizable value. Elements of cost in the Company’s manufactured inventories generally include raw materials, direct labor, indirect labor, manufacturing overhead and freight-in. The Company periodically reviews its inventories considering sales forecasts and historical experience to identify excess, close-out, or slow-moving items and makes provisions as necessary to properly reflect inventory value at the lower of cost or net realizable value.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Assets Held for Sale</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">An asset is considered to be held for sale when all of the following criteria are met: (i) management commits to a plan to sell the asset; (ii) it is unlikely that the disposal plan will be significantly modified or discontinued; (iii) the asset is available for immediate sale in its present condition; (iv) actions required to complete the sale of the asset have been initiated; (v) sale of the asset is probable and the completed sale is expected to occur within one year; and (vi) the asset is actively being marketed for sale at a price that is reasonable given its current market value.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">A long-lived asset classified as held for sale is measured at the lower of its carrying amount or fair value less cost to sell. A long-lived asset is not depreciated or amortized while it is classified as held for sale.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Property and Equipment</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Property and equipment, including those acquired under capital lease agreements, is stated at cost less accumulated depreciation and amortization, except for assets acquired using acquisition accounting, which are initially recorded at fair value. Depreciation is computed using the straight-line method over the following estimated useful lives:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 28.8pt;"><b style="font-weight:bold;">Buildings and improvements</b></p></td><td style="vertical-align:top;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">   </p></td><td style="vertical-align:bottom;width:49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">5 to 39 years</p></td></tr><tr><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 28.8pt;"><b style="font-weight:bold;">Furniture and fixtures</b></p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">2 to 10 years</p></td></tr><tr><td style="vertical-align:bottom;width:49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 28.8pt;"><b style="font-weight:bold;">Computer hardware and software</b></p></td><td style="vertical-align:top;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3 to 5 years</p></td></tr><tr><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 28.8pt;"><b style="font-weight:bold;">Machinery and equipment</b></p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3 to 8 years</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Leasehold improvements are amortized over the lesser of the estimated useful life of the improvement or the life of the lease. Major replacements, which extend the useful lives of property and equipment, are capitalized and depreciated over the remaining useful life of the asset. Normal repair and maintenance items are expensed as incurred.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The recoverability of the carrying amount of property and equipment is assessed when events or changes in circumstances indicate that the carrying amount of an asset or asset group may not be recoverable. If it is determined that the carrying amount of an asset or asset group is not recoverable based upon expected undiscounted future cash flows of the asset or asset group, an impairment loss equal to the excess of the carrying amount over the estimated fair value of the asset or asset group is recorded.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:0pt;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 28.8pt;"><b style="font-weight:bold;">Buildings and improvements</b></p></td><td style="vertical-align:top;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">   </p></td><td style="vertical-align:bottom;width:49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">5 to 39 years</p></td></tr><tr><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 28.8pt;"><b style="font-weight:bold;">Furniture and fixtures</b></p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">2 to 10 years</p></td></tr><tr><td style="vertical-align:bottom;width:49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 28.8pt;"><b style="font-weight:bold;">Computer hardware and software</b></p></td><td style="vertical-align:top;width:2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3 to 5 years</p></td></tr><tr><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-left:7.2pt;text-indent:-7.2pt;margin:0pt 0pt 0pt 28.8pt;"><b style="font-weight:bold;">Machinery and equipment</b></p></td><td style="vertical-align:top;width:2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:49%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">3 to 8 years</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> P5Y P39Y P2Y P10Y P3Y P5Y P3Y P8Y <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Leases</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Lease assets and lease liabilities are recognized at the commencement of an arrangement where it is determined at inception that a lease exists.  Lease assets represent the right to use an underlying asset for the lease term, and lease liabilities represent the obligation to make lease payments arising from the lease.  These assets and liabilities are initially recognized based on the present value of lease payments over the lease term calculated using our incremental borrowing rate.  Lease terms include options to extend or terminate the lease when it is reasonably certain that those options will be exercised.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Variable lease payments are generally expensed as incurred and include certain non-lease components, such as common area maintenance and other services provided by the lessor, and other charges such as utilities, insurance and property taxes included in the lease.  Leases with an initial term of 12 months or less are not recorded on the balance sheet, and the expense for these short-term leases and for operating leases is recognized on a straight-line basis over the lease term. Non-lease components are excluded from the right-of-use (“ROU”) asset and lease liability present value computations. The Company’s lease agreements do not contain any material residual value guarantees or material restrictive covenants.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Goodwill and Intangible Assets</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company classifies intangible assets into three categories: i) intangible assets with definite lives subject to amortization, ii) intangible assets with indefinite lives not subject to amortization and iii) goodwill. The Company determines the useful lives of its identifiable intangible assets after considering the specific facts and circumstances related to each intangible asset. Factors the Company considers when determining useful lives include the contractual term of any agreement related to the asset, the historical performance of the asset, the Company’s long-term strategy for using the asset, any laws or other local regulations which could impact the useful life of the asset, and other economic factors, including competition and specific market conditions. Intangible assets that are deemed to have definite lives are amortized on a straight-line basis over their useful lives.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company tests goodwill and intangible assets determined to have indefinite useful lives for impairment annually, or more frequently if events or circumstances indicate that assets might be impaired. The Company performs these annual impairment tests as of October 31<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">st</sup> each year. Goodwill is evaluated for impairment at the reporting unit level, which is defined as an operating segment or one level below an operating segment. As of October 31, 2022 and 2021, the Company had three reporting units: Safariland, Med-Eng, and Distribution.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In evaluating goodwill for impairment, qualitative factors are considered to determine whether it is more likely than not that the fair value of a reporting unit is less than its carrying amount. Some of these qualitative factors may include macroeconomic conditions, industry and market considerations, a change in financial performance, or entity-specific events. If, through this qualitative assessment, the conclusion is made that it is more likely than not that a reporting unit’s fair value is less than its carrying amount, the Company performs a two-step goodwill impairment test. The first step involves a comparison of the fair value of a reporting unit to its carrying value. If the carrying amount of the reporting unit exceeds its fair value, the second step of the process is performed, which compares the implied value of the reporting unit goodwill with the carrying value of the goodwill of that reporting unit. If the carrying value of the goodwill of a reporting unit exceeds the implied fair value of that goodwill, an impairment loss is recognized in an amount equal to that excess.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company determines the fair value of reporting units based on a combination of the income approach and market approach, weighted based on the circumstances. Under the income approach, the discounted cash flow model determines fair value based on the present value of projected cash flows over a specific projection period and a residual value related to future cash flows beyond the projection period. Both values are discounted using a rate that reflects the Company’s best estimate of the weighted average cost of capital of a market participant and is adjusted for appropriate risk factors. The Company performs sensitivity tests with respect to growth rates and discount rates used in the income approach. Under the market approach, valuation multiples are derived based on a selection of comparable companies and acquisition transactions and applied to projected operating data for each reporting unit to arrive at an indication of fair value.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performed the qualitative assessment of goodwill and determined it was more likely than not that the fair value of each of its reporting units would be greater than its carrying amount. Therefore, the Company determined it was not necessary to perform the quantitative goodwill impairment test.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">For indefinite-lived intangible assets other than goodwill, the impairment test consists of a comparison of the fair value of the intangible asset with its carrying amount. If the carrying amount exceeds the fair value, an impairment charge is recognized in an amount equal to that excess.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company tests definite-lived intangible assets for recoverability when changes in circumstances indicate the carrying value may not be recoverable. Events that trigger a test for recoverability include:</p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">material adverse changes in projected revenues and expenses;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">significant underperformance relative to historical and projected future operating results;</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">significant negative industry or economic trends; and,</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:18pt;"/><td style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">a significant adverse change in the manner in which an asset group is used or in its physical condition.</span></td></tr></table><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Future adverse changes in these or other unforeseeable factors could result in an impairment charge that could materially impact future results of operations and financial position in the reporting period identified.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;">When a triggering event occurs, a test for recoverability is performed by comparing projected undiscounted future cash flows to the carrying value of the asset group. If the test for recoverability identifies a possible impairment, the asset group’s fair value is </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">measured relying primarily on a discounted cash flow method. An impairment charge is recognized for the amount by which the carrying value of the asset group exceeds its estimated fair value. When an impairment loss is recognized for assets to be held and used, the adjusted carrying amount of those assets is depreciated over their remaining useful life. We did not have any events or circumstances indicating impairment of our long-lived assets for the years presented.</p> 3 3 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accounts Payable</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accounts payable represents amounts owed by us to third parties at the end of the period. Accounts payable includes $188 and $670 of book cash overdrafts in excess of cash balances in such accounts as of December 31, 2022 and 2021, respectively. We include the change in book cash overdrafts in operating cash flows in the consolidated statements of cash flows.</p> 188000 670000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Revenue Recognition</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company derives revenue primarily from the sale of physical products. The Company recognizes revenue when a contract exists with a customer that specifies the goods and services to be provided at an agreed upon sales price and when the performance obligation is satisfied by transferring the goods or service to the customer. The performance obligation is considered satisfied when control transfers, which is generally determined when products are shipped or delivered to the customer but could be delayed until the receipt of customer acceptance, depending on the terms of the contract. Sales are made on normal and customary short-term credit terms or upon delivery for point of sale transactions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company enters into contractual arrangements primarily with customers in the form of individual customer orders which specify the goods, quantity, pricing, and associated order terms. The Company has some long-term contracts that may contain research and development performance obligations that are satisfied over time. The Company invoices the customer once the billing milestone is reached and collects under customary short-term credit terms. For long-term contracts, the Company recognizes revenue using the input method based on costs incurred, as this method is an appropriate measure of progress toward the complete satisfaction of the performance obligation. Due to uncertainties inherent in the estimation process, it is possible that estimates of costs to complete a performance obligation will be revised in the near-term. For those performance obligations for which revenue is recognized using a cost-to-cost input method, changes in total estimated costs, and related progress towards complete satisfaction of the performance obligation, are recognized on a cumulative catch-up basis in the period in which the revisions to the estimates are made. When the current estimate of total costs for a performance obligation indicate a loss, a provision for the entire estimated loss on the unsatisfied performance obligation is made in the period in which the loss becomes evident.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">At the time of revenue recognition, the Company also provides for estimated sales returns and miscellaneous claims from customers as reductions to revenues. The estimates are based on historical rates of product returns and claims. The Company accrues for such estimated returns and claims with an estimated accrual and associated reduction of revenue. Additionally, the Company records inventory that it expects to be returned as part of inventories, with a corresponding reduction to cost of goods sold.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Charges for shipping and handling fees billed to customers are included in net sales and the corresponding shipping and handling expenses are included in cost of goods sold in the accompanying consolidated statements of operations and comprehensive income. We consider our costs related to shipping and handling after control over a product has transferred to a customer to be a cost of fulfilling the promise to transfer the product to the customer.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Sales commissions paid to employees as compensation are expensed as incurred for contracts with service periods less than a year. For contracts with service periods greater than a year, these costs are capitalized and amortized over the life of the contract. These costs are recorded in selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Product Warranty</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Some of the Company’s manufactured products carry limited warranty provisions for defects in quality and workmanship. A warranty reserve is established at the time of sale to cover estimated costs based on the Company’s history of warranty repairs and replacements and is recorded in cost of goods sold in the Company’s consolidated statements of operations and comprehensive income.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The following table sets forth the changes in the Company’s accrued warranties, which is recorded in accrued liabilities in the consolidated balance sheets:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Beginning accrued warranty expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,256</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,133</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current period claims</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (278)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (399)</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Provision for current period sales</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 256</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 522</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Ending accrued warranty expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,234</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,256</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Beginning accrued warranty expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,256</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,133</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Current period claims</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (278)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (399)</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Provision for current period sales</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 256</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 522</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Ending accrued warranty expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,234</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,256</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 1256000 1133000 -278000 -399000 256000 522000 1234000 1256000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Cost of Goods Sold</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Cost of goods sold includes raw material purchases, manufacturing-related labor costs, contracted labor, shipping costs, reimbursable research and development costs, allocated manufacturing overhead, facility costs, depreciation and amortization, and product warranty costs.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Selling, General &amp; Administrative Expenses</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Selling, general and administrative expense includes personnel-related costs, including stock-based compensation, professional services, marketing and advertising expense, research and development, depreciation and amortization, and impairment charges.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Advertising Expenses</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Advertising costs are expensed in the period incurred. Advertising expenses primarily consist of marketing, promotions, catalog and trade show expenses and were $4,711 and $3,120 during the years ended December 31, 2022 and 2021, respectively. Advertising expenses are included in selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income.</p> 4711000 3120000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Research and Development</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Research and development expenses are expensed as incurred and included within selling, general and administrative expenses in the Company’s consolidated statements of operations and comprehensive income. Total research and development costs were $7,086 and $6,460 for the years ended December 31, 2022 and 2021, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In addition, the Company incurs research and development expenses related to reimbursable development contracts. Contractual research and development expenses are included in cost of goods sold in the Company’s consolidated statements of operations and comprehensive income and were $1,639 and $5,895 for the years ended December 31, 2022 and 2021, respectively.</p> 7086000 6460000 1639000 5895000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;font-style:italic;font-weight:bold;">Debt Issuance Costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The<span style="letter-spacing:-0.85pt;"> </span>Company<span style="letter-spacing:-0.85pt;"> </span>capitalizes<span style="letter-spacing:-0.85pt;"> </span>costs<span style="letter-spacing:-0.85pt;"> </span><span style="letter-spacing:-0.15pt;">related</span><span style="letter-spacing:-0.85pt;"> </span>to<span style="letter-spacing:-0.8pt;"> </span>the<span style="letter-spacing:-0.85pt;"> </span>issuance<span style="letter-spacing:-0.85pt;"> </span>of<span style="letter-spacing:0.05pt;"> </span>debt<span style="letter-spacing:-0.85pt;"> </span>under<span style="letter-spacing:-0.85pt;"> </span>the<span style="letter-spacing:-0.85pt;"> </span><span style="letter-spacing:-0.15pt;">provisions</span><span style="letter-spacing:-0.8pt;"> </span>of<span style="letter-spacing:0.05pt;"> </span>ASC<span style="letter-spacing:-0.85pt;"> </span>Subtopic<span style="letter-spacing:-0.85pt;"> </span>835-30, <i style="font-style:italic;">Interest — Imputation of Interest. </i>Debt issuance costs related to a recognized debt liability are presented in the consolidated balance sheets as a direct deduction from the carrying amount of that debt liability and subsequently amortized on a straight-line method which approximates the effective interest method<span style="letter-spacing:-1pt;"> </span><span style="letter-spacing:-0.15pt;">over </span>the life of the related loan. Debt issuance costs related to line-of-credit are presented in the consolidated balance sheets as an asset and subsequently amortized ratably over the term of the respective arrangement. Amortization of debt issuance costs is included as a component of interest expense in the Company’s consolidated statements of operations and comprehensive income.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;font-style:italic;font-weight:bold;">Stock-Based Compensation</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The Company records compensation expense for all stock-based awards granted based on the fair value of the award at the time of the grant. </span>The fair value of each option award is estimated on the date of grant using the Black-Scholes option pricing model that uses assumptions and estimates that the Company believes are reasonable. The fair value of restricted stock awards is measured based on the closing market value of the Company’s common stock on the date of the grant. <span style="background:#ffffff;">For restricted stock awards subject to market conditions, the fair value of each restricted stock award has been estimated as of the date of grant using a Monte-Carlo pricing model. The Company recognizes the cost of the stock-based awards on a straight-line basis over the requisite service period of the award and recognizes forfeitures in the period they occur. </span>Stock options granted have contractual terms of up to ten years. <span style="background:#ffffff;">Upon vesting of restricted stock awards, the Company issues shares from those authorized and reserved for issuance.</span></p> ten years <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;font-style:italic;font-weight:bold;">Derivatives</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The Company mitigates the impact of changes in interest rates with interest rate swaps that are accounted for as designated hedges pursuant to ASC Topic 815,</span><i style="font-style:italic;background:#ffffff;"> Derivatives and Hedging</i><span style="background:#ffffff;"> ("ASC 815"). ASC 815 requires that an entity recognize all derivatives as either assets or liabilities on the balance sheet, measure those instruments at fair value and recognize changes in the fair value of derivatives in earnings in the period of change unless the derivative qualifies as designated cash flow hedge that offsets certain exposures. Certain criteria must be satisfied in order for derivative financial instruments to be classified and accounted for as a cash flow hedge. Changes in the fair value of derivatives that are not elected for hedge accounting treatment are recorded immediately into earnings.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The Company would discontinue hedge accounting prospectively (i) if it is determined that the derivative is no longer effective in offsetting changes in the cash flows of a hedged item, (ii) when the derivative expires or is sold, terminated, or exercised, (iii) if it becomes probable that the forecasted transaction being hedged by the derivative will not occur, (iv) if a hedged firm commitment no longer meets the definition of a firm commitment, or (v) if it is determined that designation of the derivative as a hedge instrument is no longer appropriate. </span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;font-style:italic;font-weight:bold;">Restructuring Costs</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Restructuring costs consist primarily of termination benefits and relocation of employees, termination of operating leases and other contracts related to consolidating or closing facilities. The Company applies the provisions of ASC Topic 420, <i style="font-style:italic;">Exit or Disposal Cost Obligations </i>(“ASC 420”) and ASC Topic 712, <i style="font-style:italic;">Nonretirement Postemployment Benefits </i>(“ASC 712”) in the recording of severance costs. Severance costs accounted for under ASC 420 are recognized when management with the proper level of authority commits to a restructuring plan and communicates those actions to employees and other applicable criteria. Severance<span style="letter-spacing:-0.2pt;"> </span>costs<span style="letter-spacing:-0.15pt;"> </span>accounted<span style="letter-spacing:-0.15pt;"> for </span>under<span style="letter-spacing:-0.15pt;"> </span>ASC<span style="letter-spacing:-0.15pt;"> </span>712<span style="letter-spacing:-0.15pt;"> </span>are<span style="letter-spacing:-0.15pt;"> </span>recognized<span style="letter-spacing:-0.15pt;"> </span>when<span style="letter-spacing:-0.2pt;"> </span>it<span style="letter-spacing:-0.15pt;"> </span>is<span style="letter-spacing:-0.15pt;"> probable </span>that<span style="letter-spacing:-0.15pt;"> </span>employees<span style="letter-spacing:-0.15pt;"> </span>are<span style="letter-spacing:-0.15pt;"> </span>entitled to benefits and the amount could be reasonably estimated. Other exit costs are accounted for under ASC 420 and are either deferred or expensed as incurred based on the nature of the<span style="letter-spacing:-0.85pt;"> </span>expense.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;font-style:italic;font-weight:bold;">Income Taxes</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;">The Company accounts for income taxes under the provisions of ASC Topic 740, </span><i style="color:#231f20;font-style:italic;">Income Taxes</i><span style="color:#231f20;">. Deferred tax assets and liabilities are determined based on differences between the financial statement carrying amounts and tax bases of assets and liabilities and are classified as noncurrent in the consolidated balance sheets.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred tax assets and liabilities are measured using enacted tax rates expected to apply to taxable income in the years in which those temporary differences are expected to be recovered or settled. The effect of<span style="letter-spacing:0.5pt;"> </span>changes<span style="letter-spacing:-0.45pt;"> </span>in<span style="letter-spacing:-0.4pt;"> </span>tax<span style="letter-spacing:-0.4pt;"> </span>rates<span style="letter-spacing:-0.4pt;"> </span>on<span style="letter-spacing:-0.4pt;"> </span>deferred<span style="letter-spacing:-0.4pt;"> </span>tax<span style="letter-spacing:-0.4pt;"> </span>assets<span style="letter-spacing:-0.4pt;"> </span>and<span style="letter-spacing:-0.4pt;"> </span>liabilities<span style="letter-spacing:-0.4pt;"> </span>is<span style="letter-spacing:-0.4pt;"> </span>recognized<span style="letter-spacing:-0.45pt;"> </span>in<span style="letter-spacing:-0.4pt;"> </span>income<span style="letter-spacing:-0.4pt;"> </span>in<span style="letter-spacing:-0.4pt;"> </span>the<span style="letter-spacing:-0.4pt;"> </span>period<span style="letter-spacing:-0.4pt;"> </span>that<span style="letter-spacing:-0.4pt;"> </span>includes the enactment <span style="letter-spacing:-0.2pt;">date. </span>Changes in tax <span style="letter-spacing:-0.2pt;">laws </span>and rates could <span style="letter-spacing:-0.25pt;">have </span>a material impact on the deferred tax assets and liabilities<span style="letter-spacing:-0.4pt;"> </span>recorded.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred tax assets are reduced by a <span style="letter-spacing:-0.15pt;">valuation allowance </span>when, in the opinion of management, it is more <span style="letter-spacing:-0.15pt;">likely</span><span style="letter-spacing:-0.3pt;"> </span>than<span style="letter-spacing:-0.3pt;"> </span>not<span style="letter-spacing:-0.3pt;"> </span>that<span style="letter-spacing:-0.3pt;"> </span>some<span style="letter-spacing:-0.3pt;"> </span>portion<span style="letter-spacing:-0.3pt;"> </span>or<span style="letter-spacing:-0.3pt;"> </span><span style="letter-spacing:-0.15pt;">all</span><span style="letter-spacing:-0.3pt;"> </span>of<span style="letter-spacing:0.75pt;"> </span>the<span style="letter-spacing:-0.3pt;"> </span>deferred<span style="letter-spacing:-0.3pt;"> </span>tax<span style="letter-spacing:-0.3pt;"> </span>assets<span style="letter-spacing:-0.3pt;"> </span>will<span style="letter-spacing:-0.3pt;"> </span>not<span style="letter-spacing:-0.3pt;"> </span>be<span style="letter-spacing:-0.25pt;"> </span>realized.<span style="letter-spacing:-0.3pt;"> </span>Significant<span style="letter-spacing:-0.3pt;"> </span>estimates<span style="letter-spacing:-0.3pt;"> </span>are used in the <span style="letter-spacing:-0.15pt;">evaluation </span>of the need <span style="letter-spacing:-0.15pt;">for </span>a <span style="letter-spacing:-0.15pt;">valuation allowance </span>including estimates regarding future taxable income.<span style="letter-spacing:-0.3pt;"> </span>Changes<span style="letter-spacing:-0.25pt;"> </span>to<span style="letter-spacing:-0.25pt;"> </span>those<span style="letter-spacing:-0.25pt;"> </span>estimates<span style="letter-spacing:-0.25pt;"> </span>could<span style="letter-spacing:-0.25pt;"> </span>impact<span style="letter-spacing:-0.25pt;"> </span>management’s<span style="letter-spacing:-0.25pt;"> </span>conclusions<span style="letter-spacing:-0.25pt;"> </span>regarding<span style="letter-spacing:-0.25pt;"> </span>the<span style="letter-spacing:-0.25pt;"> </span>need<span style="letter-spacing:-0.25pt;"> </span><span style="letter-spacing:-0.15pt;">for</span><span style="letter-spacing:-0.25pt;"> valuation </span>allowances on some or <span style="letter-spacing:-0.15pt;">all </span>of the deferred tax assets. The Company releases the income tax effects of deferred tax balances that <span style="letter-spacing:-0.25pt;">have </span>a <span style="letter-spacing:-0.15pt;">valuation allowance </span>from accumulated other comprehensive income (loss) once the reason the tax effects were established ceases to<span style="letter-spacing:-1.6pt;"> </span>exist.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company is subject to income taxes in the United States and <span style="letter-spacing:-0.15pt;">several </span>foreign jurisdictions. In the United <span style="letter-spacing:-0.15pt;">States, </span>the Company files a consolidated income tax return with its domestic subsidiaries. When tax returns are filed, it is highly certain that some positions <span style="letter-spacing:-0.2pt;">taken </span>would be sustained upon examination by taxing<span style="letter-spacing:-0.3pt;"> </span>authorities,<span style="letter-spacing:-0.25pt;"> </span>while<span style="letter-spacing:-0.3pt;"> </span>others<span style="letter-spacing:-0.25pt;"> </span>are<span style="letter-spacing:-0.25pt;"> </span>subject<span style="letter-spacing:-0.3pt;"> </span>to<span style="letter-spacing:-0.25pt;"> </span>uncertainty<span style="letter-spacing:-0.25pt;"> </span>about<span style="letter-spacing:-0.3pt;"> </span>the<span style="letter-spacing:-0.25pt;"> </span>merits<span style="letter-spacing:-0.3pt;"> </span>of<span style="letter-spacing:0.95pt;"> </span>the<span style="letter-spacing:-0.25pt;"> </span>position<span style="letter-spacing:-0.3pt;"> </span><span style="letter-spacing:-0.2pt;">taken</span><span style="letter-spacing:-0.25pt;"> </span>or<span style="letter-spacing:-0.25pt;"> </span>the<span style="letter-spacing:-0.3pt;"> </span>amount of the position that would be ultimately sustained. The benefit of a tax position is recognized in<span style="letter-spacing:0.7pt;"> </span>the consolidated financial statements in the period during which, based on <span style="letter-spacing:-0.15pt;">all </span><span style="letter-spacing:-0.2pt;">available </span>evidence, it is more <span style="letter-spacing:-0.15pt;">likely </span>than not that the position will be sustained upon examination, including the resolution of appeals or litigation<span style="letter-spacing:-0.45pt;"> </span>processes,<span style="letter-spacing:-0.4pt;"> </span>if<span style="letter-spacing:0.6pt;"> </span><span style="letter-spacing:-0.4pt;">any. </span><span style="letter-spacing:-0.25pt;">Tax</span><span style="letter-spacing:-0.45pt;"> </span>positions<span style="letter-spacing:-0.4pt;"> </span><span style="letter-spacing:-0.2pt;">taken</span><span style="letter-spacing:-0.45pt;"> </span>are<span style="letter-spacing:-0.4pt;"> </span>not<span style="letter-spacing:-0.45pt;"> </span>offset<span style="letter-spacing:-0.4pt;"> </span>or<span style="letter-spacing:-0.45pt;"> </span>aggregated<span style="letter-spacing:-0.4pt;"> </span>with<span style="letter-spacing:-0.45pt;"> </span>other<span style="letter-spacing:-0.4pt;"> </span>positions.<span style="letter-spacing:-0.45pt;"> </span><span style="letter-spacing:-0.25pt;">Tax</span><span style="letter-spacing:-0.4pt;"> </span>positions that meet the more-likely than-not threshold are measured as the largest amount of tax benefit that<span style="letter-spacing:-0.95pt;"> </span>is <span style="color:#231f20;">more than 50% likely of being realized upon settlement with the applicable taxing authority. The portion of the benefits associated with tax positions taken that exceeds the amount measured as described above is reflected as a liability for unrecognized tax benefits in the accompanying balance sheets along with any associated interest and penalties that would be payable to the taxing authorities upon examination.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Further information regarding the Company’s tax positions is included in Note 16<i style="font-style:italic;">, Income Taxes</i>.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Accumulated Other Comprehensive Income (Loss)</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Comprehensive income (loss) represents all changes in equity of the Company that result from recognized transactions and other economic events during the period. Other comprehensive income (loss) refers to revenues, expenses, gains, and losses that under GAAP are included in comprehensive income but excluded from net income.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Foreign Currency</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;">Translation</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Assets and liabilities of subsidiaries operating outside the United States with a functional currency other than U.S. Dollars are translated into U.S. Dollars using the exchange rates in effect at the balance sheet date. Results of operations are translated using the average exchange rate prevailing throughout the period. The effects of unrealized exchange rate fluctuations on translating foreign currency assets and liabilities into U.S. dollars are accumulated as the cumulative translation adjustment included in accumulated other comprehensive income (loss) in the consolidated balance sheets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;">Transaction</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Transactions denominated in foreign currency are recorded at the exchange rate on the date of each transaction. Realized gains and losses on foreign currency transactions are included in other income, net in the consolidated statements of operations and comprehensive income, except on certain intercompany balances which the Company has determined are of a long-term investment nature, which are included in accumulated other comprehensive income (loss) in the consolidated balance sheets. Monetary assets and liabilities are remeasured at the balance sheet date at end-of-period exchange rates. Unrealized gains and losses arising from remeasurement of foreign currency-denominated monetary assets and liabilities are included in other expense, net in the consolidated statements of operations and comprehensive income in the period in which they occur.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Net Income per Share</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Basic income or loss per share is computed by dividing net income by the weighted average number of common shares outstanding during the periods presented. <span style="background:#ffffff;">Diluted income or loss per share is calculated by adjusting weighted average shares outstanding for the dilutive effect of potential common shares, determined using the treasury-stock method.</span> The calculation of weighted average shares outstanding and net income per share are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;">    </p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,820</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,661</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average shares outstanding - basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,109,844</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28,598,692</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of dilutive securities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Stock-based awards</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,530</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average shares outstanding - diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,122,374</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28,598,692</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net income per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.44</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.44</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:normal;font-weight:normal;">There were </span><span style="font-style:normal;font-weight:normal;">no</span><span style="font-style:normal;font-weight:normal;"> dilutive instruments outstanding for the year ended December 31, 2021.</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;">    </p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:27.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.84%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net income</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,820</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,661</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average shares outstanding - basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,109,844</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28,598,692</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Effect of dilutive securities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Stock-based awards</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,530</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Weighted average shares outstanding - diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,122,374</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 28,598,692</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net income per share:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Basic</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.44</p></td></tr><tr><td style="vertical-align:bottom;width:70.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Diluted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.16</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:11.68%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 0.44</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 5820000 12661000 36109844 28598692 12530 36122374 28598692 0.16 0.44 0.16 0.44 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Risk and Uncertainties</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;">Concentration of Credit Risk</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Financial instruments that potentially subject the Company to concentration of credit risk consist principally of cash and accounts receivable. Risks associated with cash within the United States and foreign countries are mitigated by banking with federally insured, creditworthy institutions. As of December 31, 2022 and 2021, the Company had deposits of $10,142 and $7,593, respectively, at foreign financial institutions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accounts receivable are financial instruments that also expose the Company to concentration of credit risk. Such exposure is limited by the large number of customers comprising the Company’s customer base and their dispersion across different geographic areas. In addition, the Company routinely assesses the financial strength of its customers and maintains an allowance for doubtful accounts that management believes will adequately provide for credit losses. Accordingly, the Company performs ongoing credit evaluations of its customers and maintains allowances for possible losses as considered necessary by management.</p> 10142000 7593000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;font-weight:bold;margin:0pt 0pt 12pt 0pt;">Recent Accounting Pronouncements</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;">Recently Adopted Accounting Pronouncements</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In February 2016, the FASB issued ASU 2016-02, <i style="font-style:italic;">Leases (Topic 842)</i>, which is intended to increase transparency and comparability among organizations by requiring the recognition of right-of-use (“ROU”) assets and lease liabilities on the balance sheet. In July 2018, the FASB issued additional guidance which provided an additional transition method for adopting the updated guidance. Under the additional transition method, entities may elect to recognize a cumulative-effect adjustment to the opening balance of retained earnings in the year of adoption. In June 2020, the FASB issued additional guidance which extends the effective date of ASU 2016-02 for emerging growth companies to begin in fiscal years beginning after December 15, 2021. We adopted ASU 2016-02 prospectively on January 1, 2022. As part of the adoption, we elected the package of practical expedients which permits us under the new standard not to reassess historical lease classification, not to recognize short-term leases on our balance sheet, and not to separate lease and non-lease components for all our leases. In addition, we elected the use of hindsight to determine the lease term of its leases and applied its incremental borrowing rate based on the remaining term of its leases as of the adoption date. The impact upon adoption, on January 1, 2022, resulted in the recognition of operating right-of-use assets of $11,769, and operating lease liabilities of $12,029 on our consolidated balance sheet. Refer to Note 17, <i style="font-style:italic;">Leases</i>, for further discussion.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In December 2019, the FASB issued ASU 2019-12, <i style="font-style:italic;">Income Taxes (Topic 740): Simplifying the Accounting for Income Taxes</i>. ASU 2019-12 simplifies the accounting for income taxes by removing certain exceptions to the general principles in Topic 740 and improves consistent application of and simplifies GAAP for other areas of Topic 740 by clarifying existing guidance. For emerging growth companies, this ASU is effective for fiscal years beginning after December 15, 2021, and interim periods within those fiscal years beginning after December 15, 2022. Early adoption is permitted. The Company adopted this standard on January 1, 2022, which did not result in a material impact on our consolidated financial statements and related disclosures.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;">Accounting Pronouncements Not Yet Adopted</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In June 2016, the FASB issued ASU 2016-13, <i style="font-style:italic;">Financial Instruments — Credit Losses (Topic 326)</i>: <i style="font-style:italic;">Measurement of Credit Losses on Financial Instruments. </i>ASU 2016-13 includes an impairment model (known as the current expected credit loss model) that is based on expected losses rather than incurred losses. Under the new guidance, an entity recognizes as an allowance its estimate of expected credit losses, which the FASB believes will result in more timely recognition of such losses. The use of forecasted information is intended to incorporate more timely information in the estimate of expected credit loss. In November 2019, the FASB issued additional guidance which extends the effective date of ASU 2016-13 for emerging growth companies to begin in fiscal years beginning after December 15, 2022. Early adoption is permitted. The Company plans to adopt this standard on January 1, 2023 and is currently in the process of evaluating the impact of the adoption of this standard on its consolidated financial statements.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In March 2020, the Financial Accounting Standards Board (“FASB”) issued Accounting Standards Update (“ASU”) 2020-04, Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting. This ASU provides temporary optional expedients and exceptions to existing guidance on contract modifications and hedge accounting to facilitate the market transition from existing reference rates, such as the London Inter-Bank Offered Rate (“LIBOR”) which is being phased out in 2021, to alternate reference rates, such as the Secured Overnight Financing Rate (“SOFR”). The standard is currently effective and upon adoption may be applied prospectively to contract modifications made on or before December 31, 2022. The provisions have impact as contract modifications and other changes occur while LIBOR is phased out. The Company is in the process of evaluating the optional relief guidance provided within this ASU. Management will continue its assessment and monitor regulatory developments during the LIBOR transition period. Currently, management does not believe that the impact of transitioning from LIBOR to SOFR will have a material effect on the interest rates of the company.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">There were no other new accounting standards that the Company expects to have a potential material impact to the financial position or results of operations upon adoption.</p> 11769000 12029000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">2.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">ACQUISITIONS</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Radar Acquisition</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On January 11, 2022, Safariland, LLC, a wholly-owned subsidiary of the Company, completed the acquisition of Radar Leather Division S.r.l. (“Radar”), a premiere family-owned duty gear business based in Italy that specializes in the production of high-quality holsters, belts, duty belts, and other accessories.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The acquisition was accounted for as a business combination. Total acquisition-related costs for the acquisition of Radar were </span><span style="background:#ffffff;">$627</span><span style="background:#ffffff;">, of which </span><span style="background:#ffffff;">$204</span><span style="background:#ffffff;"> was incurred and recognized during the year ended December 31, 2022.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Total consideration, net of cash acquired, was $19,365 for 100% of the equity interests in Radar. The total consideration was as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash paid</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 20,844</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,479)</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total consideration, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 19,365</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The following table summarizes the total purchase price consideration and the amounts recognized for the assets acquired and liabilities assumed, which have been estimated at their fair values. Since our initial purchase price allocation and during the measurement period, we have increased goodwill by </span><span style="background:#ffffff;">$390</span><span style="background:#ffffff;"> for revisions made to cash paid, inventory acquired and deferred income taxes for certain book and tax basis differences as we completed the tax return filings for the pre-acquisition period. The excess of purchase consideration over the assets acquired and liabilities assumed is recorded as goodwill. Goodwill for the Radar acquisition is included in the Product segment and reflects synergies and additional legacy growth and profitability expected from this acquisition through expansion into new markets and customers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total consideration, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 19,365</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,347</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Inventories</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,874</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Prepaid expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 682</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 665</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,053</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,200</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 7,101</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Total assets acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,922</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,120</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,787</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,106</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Long-term debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 544</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Total liabilities assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,557</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net assets acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 19,365</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">In connection with the acquisition, the Company acquired exclusive rights to Radar’s trademarks, customer relationships, and product technologies. The amounts assigned to each class of intangible asset and the related average useful lives are as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average Useful Life</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,300</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">15</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">10</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 300</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">7</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,200</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The full amount of goodwill of </span><span style="background:#ffffff;">$7,101</span><span style="background:#ffffff;"> is expected to be non-deductible for tax purposes. No pre-existing relationships existed between the Company and Radar prior to the acquisition. Radar revenue and cost of goods sold are included in the Product segment from the date of acquisition. The acquisition was not material to our consolidated financial statements.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 6pt 0pt;"><i style="font-style:italic;background:#ffffff;">Cyalume Acquisition</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:10.8pt;margin:0pt 0pt 6pt 0pt;">On May 4, 2022, Safariland, LLC, a wholly-owned subsidiary of the Company, completed the acquisition of <span style="background:#ffffff;">Cyalume Technologies, Inc, CT SAS Holdings, Inc. and Cyalume Technologies SAS (collectively “Cyalume”)</span>. Cyalume is <span style="background:#ffffff;">engaged in the design and manufacture of proprietary chemical illumination solutions for a diverse range of products, including light sticks, infrared products, safety markings and non-pyrophoric training ammunition</span>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:10.8pt;margin:0pt 0pt 6pt 0pt;"><span style="background:#ffffff;">The acquisition was accounted for as a business combination. Acquisition-related costs for the acquisition of Cyalume were </span>$3,546 for the year ended December 31, 2022<span style="background:#ffffff;">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:10.8pt;margin:0pt 0pt 10pt 0pt;">Total consideration, net of cash acquired, was $36,178 for 100% of the equity interests in Cyalume. The total consideration was as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash paid</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 38,012</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less: cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,834)</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total consideration, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,178</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:10.8pt;margin:0pt;"><span style="visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:10.8pt;margin:0pt;"><span style="background:#ffffff;">The following table summarizes the total purchase price consideration and the preliminary fair value amounts recognized for the assets acquired and liabilities assumed, which have been estimated at their fair values. The fair value estimates for the purchase price allocation are based on the Company’s best estimates and assumptions as of the reporting date and are considered preli</span>minary. Since our initial purchase price allocation, we have<span style="background:#ffffff;"> increased goodwill by </span><span style="background:#ffffff;">$2,460</span><span style="background:#ffffff;"> for revisions made to cash paid as a result of a working capital settlement and deferred income taxes for certain book and tax basis differences as we completed the tax return filings for the pre-acquisition period. The fair value measurements of identifiable assets, specifically property and equipment, liabilities, and the resulting goodwill related to the Cyalume acquisition are subject to change as we complete our valuation process and the final purchase price allocation could be different from the amounts presented below. We expect to finalize the valuations as soon as practicable, but no later than one year from the date of the acquisition. The excess of purchase consideration over the assets acquired and liabilities assumed is </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;margin:0pt 0pt 10pt 0pt;"><span style="background:#ffffff;">recorded as goodwill. Goodwill for the Cyalume acquisition is included in the Product segment and reflects synergies and additional legacy growth and profitability expected from this acquisition through expansion into new markets and customers.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total consideration, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,178</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,302</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Inventories</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,908</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Prepaid expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 255</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,701</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,300</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,101</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Total assets acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 43,577</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accounts payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,080</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,454</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,577</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other long-term liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 288</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Total liabilities assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7,399</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net assets acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,178</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:10.8pt;margin:0pt;"><span style="visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:10.8pt;margin:0pt 0pt 10pt 0pt;"><span style="background:#ffffff;">In connection with the acquisition, the Company acquired exclusive rights to Cyalume’s trademarks, customer relationships, and product technologies. The amounts assigned to each class of intangible asset and the related average useful lives are as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Average Useful Life</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">15</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">10</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Indefinite</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,300</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:10.8pt;margin:0pt 0pt 10pt 0pt;"><span style="visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:10.8pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The full amount of goodwill of </span><span style="background:#ffffff;">$9,101</span> <span style="background:#ffffff;">is expected to be non-deductible for tax purposes. No pre-existing relationships existed between the Company and Cyalume prior to the acquisition. Cyalume revenue and cost of goods sold are included in the Product segment from the date of acquisition. The acquisition was not material to our consolidated financial statements.</span></p> 627000 204000 19365000 1 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash paid</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 20,844</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,479)</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total consideration, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 19,365</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;background:#ffffff;">​</span></p> 20844000 1479000 19365000 390000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total consideration, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 19,365</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,347</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Inventories</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,874</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Prepaid expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 682</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 665</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,053</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,200</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 7,101</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Total assets acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,922</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accounts payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,120</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,787</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,106</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Long-term debt</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 544</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Total liabilities assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,557</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net assets acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 19,365</p></td></tr></table> 19365000 2347000 1874000 682000 665000 3053000 10200000 7101000 25922000 1120000 2787000 2106000 544000 6557000 19365000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average Useful Life</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,300</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">15</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">10</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 300</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">7</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,200</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;background:#ffffff;">​</span></p> 9300000 P15Y 600000 P10Y 300000 P7Y 10200000 7101000 3546000 36178000 1 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Cash paid</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 38,012</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Less: cash acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,834)</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total consideration, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,178</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:10.8pt;margin:0pt;"><span style="visibility:hidden;background:#ffffff;">​</span></p> 38012000 1834000 36178000 2460000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Total consideration, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,178</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accounts receivable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,302</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Inventories</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10,908</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Prepaid expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 255</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other current assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 10</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Property and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 11,701</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Intangible assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,300</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 9,101</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Total assets acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 43,577</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accounts payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,080</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,454</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,577</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other long-term liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 288</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Total liabilities assumed</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7,399</p></td></tr><tr><td style="vertical-align:bottom;width:85.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Net assets acquired</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.53%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 36,178</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:10.8pt;margin:0pt;"><span style="visibility:hidden;background:#ffffff;">​</span></p> 36178000 3302000 10908000 255000 10000 11701000 8300000 9101000 43577000 1080000 4454000 1577000 288000 7399000 36178000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Average Useful Life</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,900</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">15</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,600</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">10</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Trademarks</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 800</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Indefinite</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,300</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:10.8pt;margin:0pt 0pt 10pt 0pt;"><span style="visibility:hidden;background:#ffffff;">​</span></p> 3900000 P15Y 3600000 P10Y 800000 8300000 9101000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">3.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">ACCOUNTS RECEIVABLE, NET</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The following is a reconciliation of the changes in our allowance for doubtful accounts during fiscal 2022 and 2021:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:21.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Beginning allowance for doubtful accounts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 645</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,113</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 417</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (188)</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Write-offs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (138)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (280)</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Ending allowance for doubtful accounts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 924</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 645</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:21.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Beginning allowance for doubtful accounts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 645</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,113</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 417</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (188)</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Write-offs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (138)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (280)</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Ending allowance for doubtful accounts</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 924</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 645</p></td></tr></table> 645000 1113000 417000 -188000 138000 280000 924000 645000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">4.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">DISPOSITIONS AND </b><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">ASSETS AND LIABILITIES HELD FOR SALE</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In October 2021, the Company designated our Daventry, UK facility as held for sale. Accordingly, during 2021, the Company determined that the assets and liabilities associated with the Daventry facility met the criteria for classification as held for sale but did not meet the criteria for classification as discontinued operations as the deconsolidation did not represent a strategic shift in the business.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In November 2022, t<span style="letter-spacing:0.2pt;">he Company completed the sale of our </span>Daventry, UK<span style="letter-spacing:0.2pt;"> facility for a net sales price of </span><span style="letter-spacing:0.2pt;">$411</span><span style="letter-spacing:0.2pt;">, resulting in a gain of </span><span style="letter-spacing:0.2pt;">$170</span><span style="letter-spacing:0.2pt;">, which is included in </span><span style="-sec-ix-hidden:Hidden_F2TsVwOtmkWnhVrz2M2ofg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;letter-spacing:0.2pt;">other general income</span></span><span style="letter-spacing:0.2pt;"> in the consolidated statements of operations and comprehensive income for the year ended December 31, 2022</span>.</p> 411000 170000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">5.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">REVENUE RECOGNITION</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The following tables disaggregate net sales by channel and geography:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">U.S. state and local agencies (a)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 250,680</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 231,095</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Commercial</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 45,357</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34,860</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">U.S. federal agencies</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 51,165</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 47,575</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">International</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 106,593</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 107,503</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,042</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,255</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net sales</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 457,837</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 427,288</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;">(a) Includes all Distribution sales</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 351,244</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 319,785</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">International</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 106,593</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 107,503</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net sales</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 457,837</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 427,288</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Revenue by product is not disclosed, as it is impractical to do so.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Contract Liabilities</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Contract liabilities are recorded as a component of other liabilities when customers remit cash payments in advance of the Company satisfying performance obligations which are satisfied at a future point of time. Contract liabilities are derecognized when the performance obligation is satisfied. Contract liabilities are included in accrued liabilities in the Company’s consolidated balance sheets and totaled $4,615 and $10,949, as of December 31, 2022 and 2021, with $8,324 of the 2021 contract liabilities being recognized in revenue during the year ended December 31, 2022.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Remaining Performance Obligations</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2022, we had $19,997 of remaining performance obligations, which included amounts that will be invoiced and recognized in future periods. The remaining performance obligations are limited only to arrangements that meet the definition of a contract under Topic 606 as of December 31, 2022. We expect to recognize 52% of this balance over the next twelve months and expect the remainder to be recognized in the following two years.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The following tables disaggregate net sales by channel and geography:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">U.S. state and local agencies (a)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 250,680</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 231,095</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Commercial</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 45,357</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 34,860</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">U.S. federal agencies</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 51,165</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 47,575</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">International</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 106,593</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 107,503</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,042</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,255</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net sales</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 457,837</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 427,288</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="color:#231f20;">(a) Includes all Distribution sales</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:23.37%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:10.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">United States</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 351,244</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 319,785</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">International</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 106,593</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 107,503</p></td></tr><tr><td style="vertical-align:bottom;width:74.38%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Net sales</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.23%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 457,837</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.36%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.2%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 427,288</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 250680000 231095000 45357000 34860000 51165000 47575000 106593000 107503000 4042000 6255000 457837000 427288000 351244000 319785000 106593000 107503000 457837000 427288000 4615000 10949000 8324000 19997000 0.52 P12M P2Y <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">6.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">FAIR VALUE MEASUREMENTS</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Assets and liabilities measured at fair value on a recurring basis as of December 31, 2022 and 2021 consisted of the following: </p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:41.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:41.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:27.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:27.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:6.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying </b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:20.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:6.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying </b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:20.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:6.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">amount</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 1</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 2</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 3</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:6.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">amount</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 1</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 2</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 3</b></p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Assets:</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Interest rate swap (Note 11)</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,985</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,985</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,607</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,607</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Liabilities:</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Interest rate swap (Note 11)</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 389</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 389</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">There were no transfers of assets or liabilities between levels during the years ended December 31, 2022 and 2021.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Assets and liabilities measured at fair value on a recurring basis as of December 31, 2022 and 2021 consisted of the following: </p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:41.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:41.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:27.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:27.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:6.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying </b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:20.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:6.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Carrying </b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="8" style="vertical-align:bottom;white-space:nowrap;width:20.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:6.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">amount</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 1</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 2</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 3</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:6.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">amount</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 1</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 2</b></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Level 3</b></p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Assets:</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Interest rate swap (Note 11)</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,985</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,985</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,607</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,607</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Liabilities:</p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:41.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Interest rate swap (Note 11)</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 389</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:5.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 389</p></td><td style="vertical-align:bottom;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.92%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:4.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> 8985000 8985000 1607000 1607000 389000 389000 0 0 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">7.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">INVENTORIES</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The following table sets forth a summary of inventories stated at lower of cost or net realizable value, as of December 31, 2022 and 2021:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Finished goods</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,208</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,707</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Work-in-process</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 7,466</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,053</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Raw materials and supplies</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 37,599</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 31,218</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 70,273</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 63,978</p></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:9pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:1pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">8.</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:1pt;font-weight:bold;margin-bottom:12pt;margin-left:0pt;margin-right:0pt;visibility:hidden;">​</span></td></tr></table> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Finished goods</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,208</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,707</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Work-in-process</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 7,466</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,053</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Raw materials and supplies</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 37,599</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 31,218</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 70,273</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 63,978</p></td></tr></table> 25208000 28707000 7466000 4053000 37599000 31218000 70273000 63978000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">8.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">PROPERTY AND EQUIPMENT</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Property and equipment consist of the following:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Land</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 7,545</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,620</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Building and improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 22,992</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17,556</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,400</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,209</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Computer hardware and software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,140</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23,547</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Machinery and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,464</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,795</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Construction in progress</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,438</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,497</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 87,979</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 70,224</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less accumulated depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (42,694)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (37,171)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 45,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 33,053</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company recorded depreciation expense of $6,851 and $5,143 for the years ended December 31, 2022 and 2021, respectively, of which $3,433 and $2,144 was included in cost of goods sold in the consolidated statements of operations and comprehensive income for the respective years.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Property and equipment consist of the following:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-family:'Calibri','Helvetica','sans-serif';font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Land</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 7,545</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,620</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Building and improvements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 22,992</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17,556</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Furniture and fixtures</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,400</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,209</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Computer hardware and software</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 24,140</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23,547</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Machinery and equipment</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 28,464</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,795</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Construction in progress</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,438</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,497</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 87,979</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 70,224</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less accumulated depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (42,694)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (37,171)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 45,285</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 33,053</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> 7545000 4620000 22992000 17556000 1400000 1209000 24140000 23547000 28464000 21795000 3438000 1497000 87979000 70224000 42694000 37171000 45285000 33053000 6851000 5143000 3433000 2144000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">9.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">GOODWILL AND OTHER INTANGIBLE ASSETS</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Goodwill</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The following table summarizes the changes in goodwill during the years ended December 31, 2022 and 2021:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Product</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Distribution</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance, December 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 63,698</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,616</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 66,314</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Foreign currency translation adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (52)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (52)</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 63,646</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,616</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 66,262</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Radar acquisition</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,711</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,711</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cyalume acquisition</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,641</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,641</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Measurement period adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,850</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,850</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Foreign currency translation adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (888)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (888)</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance, December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 78,960</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,616</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 81,576</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Impairment of Goodwill</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:16.2pt;margin:0pt 0pt 12pt 0pt;">No impairment losses were recorded during the years ended December 31, 2022 and 2021. Gross goodwill and accumulated impairment losses was $89,161 and $7,585 as of December 31, 2022 and $73,847 and $7,585, respectively, as of December 31, 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Intangible Assets</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:16.2pt;margin:0pt 0pt 12pt 0pt;">Intangible assets such as certain customer relationships and patents on core technologies and product technologies are amortizable over their estimated useful lives. Certain trade names and trademarks which provide exclusive and perpetual rights to manufacture and sell their respective products are deemed indefinite-lived and are therefore not subject to amortization.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:16.2pt;margin:0pt 0pt 12pt 0pt;">Intangible assets, net of amortization, as of December 31, 2022 and 2021 are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:45.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Useful Life</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Definite lived intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 85,847</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (59,122)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26,725</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">11</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15,629</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (11,309)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,320</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">8</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Tradenames</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,484</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (4,254)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,230</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">4</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Non-compete agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 973</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (973)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">4</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 108,933</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (75,658)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 33,275</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Indefinite lived intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Tradenames</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17,420</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17,420</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">Indefinite</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 24pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 126,353</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (75,658)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 50,695</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:45.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Useful Life</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Definite lived intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 74,078</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (52,536)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">11</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,978</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (10,988)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 990</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">7</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Tradenames</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,473</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,264)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,209</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">4</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Non-compete agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,037</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,037)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">4</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 93,566</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (67,825)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,741</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Indefinite lived intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Tradenames</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 16,674</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 16,674</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">Indefinite</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 24pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 110,240</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (67,825)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 42,415</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company recorded amortization expense of $8,800 and $8,575 for the years ended December 31, 2022 and 2021, respectively, of which $439 and $666 was included in cost of goods sold in the consolidated statements of operations and comprehensive income for the respective years.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The estimated amortization expense for definite-lived intangible assets for the next five years and thereafter is presented below:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 7,719</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,015</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,060</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,665</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,490</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,326</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 33,275</p></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:1pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">10.</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:1pt;font-weight:bold;margin-bottom:12pt;margin-left:0pt;margin-right:0pt;visibility:hidden;">​</span></td></tr></table> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:65.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:65.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Product</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Distribution</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.28%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Total</b></p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance, December 31, 2020</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 63,698</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,616</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 66,314</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Foreign currency translation adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (52)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (52)</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance, December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 63,646</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,616</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 66,262</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Radar acquisition</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,711</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,711</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Cyalume acquisition</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,641</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,641</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Measurement period adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,850</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,850</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Foreign currency translation adjustments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (888)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (888)</p></td></tr><tr><td style="vertical-align:bottom;width:65.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Balance, December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 78,960</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.26%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.41%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,616</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.18%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.1%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 81,576</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> 63698000 2616000 66314000 -52000 -52000 63646000 2616000 66262000 6711000 6711000 6641000 6641000 2850000 2850000 -888000 -888000 78960000 2616000 81576000 0 0 89161000 7585000 73847000 7585000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:45.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Useful Life</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Definite lived intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 85,847</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (59,122)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 26,725</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">11</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 15,629</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (11,309)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,320</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">8</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Tradenames</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,484</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (4,254)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,230</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">4</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Non-compete agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 973</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (973)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">4</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 108,933</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (75,658)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 33,275</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Indefinite lived intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Tradenames</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17,420</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 17,420</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">Indefinite</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 24pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 126,353</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (75,658)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 50,695</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="10" style="vertical-align:bottom;white-space:nowrap;width:45.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Accumulated </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average </b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Gross</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">amortization</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Net</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Useful Life</b></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Definite lived intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Customer relationships</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 74,078</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (52,536)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21,542</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">11</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Technology</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 11,978</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (10,988)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 990</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">7</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Tradenames</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 6,473</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (3,264)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,209</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">4</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Non-compete agreements</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,037</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,037)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">4</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 93,566</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (67,825)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 25,741</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Indefinite lived intangibles:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Tradenames</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 16,674</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 16,674</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">Indefinite</p></td></tr><tr><td style="vertical-align:bottom;width:52.71%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 24pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 110,240</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.96%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (67,825)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.63%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 42,415</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> 85847000 59122000 26725000 P11Y 15629000 11309000 4320000 P8Y 6484000 4254000 2230000 P4Y 973000 973000 P4Y 108933000 75658000 33275000 17420000 17420000 126353000 75658000 50695000 74078000 52536000 21542000 P11Y 11978000 10988000 990000 P7Y 6473000 3264000 3209000 P4Y 1037000 1037000 P4Y 93566000 67825000 25741000 16674000 16674000 110240000 67825000 42415000 8800000 8575000 439000 666000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 7,719</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,015</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,060</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,665</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,490</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,326</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 33,275</p></td></tr></table> 7719000 5015000 3060000 2665000 2490000 12326000 33275000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">10.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">ACCRUED LIABILITIES</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Accrued liabilities as of December 31, 2022 and 2021 are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:21.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,656</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,226</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued compensation and payroll tax</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 20,420</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 19,227</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued interest payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 70</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued warranty expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,234</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,256</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred revenue and customer credit balances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,937</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,605</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Current lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,773</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,627</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,352</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 38,720</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 40,736</p></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:1pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">11.</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:1pt;font-weight:normal;margin-bottom:12pt;margin-left:0pt;margin-right:0pt;visibility:hidden;">​</span></td></tr></table> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:21.4%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued expenses</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,656</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,226</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued compensation and payroll tax</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 20,420</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 19,227</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued interest payable</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 73</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 70</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Accrued warranty expense</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,234</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,256</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Deferred revenue and customer credit balances</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5,937</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,605</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Current lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,773</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Other accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,627</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,352</p></td></tr><tr><td style="vertical-align:bottom;width:76.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.15%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 38,720</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.4%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.13%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 40,736</p></td></tr></table> 3656000 3226000 20420000 19227000 73000 70000 1234000 1256000 5937000 12605000 3773000 3627000 4352000 38720000 40736000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">11.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">DEBT</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company’s debt is as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term debt:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Insurance premium financing</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,211</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,174</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Current portion of term loan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,000</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,211</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13,174</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Long-term debt:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Revolver</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Term loan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 138,564</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 148,564</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 512</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 139,076</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 148,564</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Unamortized debt discount and debt issuance costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,600)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,048)</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total long-term debt, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 137,476</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 146,516</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The following summarizes the aggregate principal payments of our long-term debt, excluding debt discount and debt issuance costs as of December 31, 2022:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,000</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,128</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,128</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 118,692</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 128</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total principal payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 149,076</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">New Credit Facility</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">On August 20, 2021 (the “Closing Date”), the Company refinanced its existing credit facilities and entered into a new credit agreement whereby Safariland, LLC, as borrower (the “Borrower”), the Company and certain domestic subsidiaries of the Borrower, as guarantors (the “Guarantors”), closed on and received funding under a credit agreement (initially entered into on July 23, 2021), pursuant to a First Amendment to Credit Agreement (as amended by the Second Amendment to Credit Agreement, dated as of December 14, 2022, collectively, the “New Credit Agreement”) with PNC Bank, National Association (“PNC”), as administrative agent, and the several lenders from time to time party thereto (together with PNC, the “Lenders”) pursuant to which the Borrower (i) borrowed </span><span style="background:#ffffff;">$200,000</span><span style="background:#ffffff;"> under a term loan (the “Term Loan”), and (ii) may borrow up to </span><span style="background:#ffffff;">$100,000</span><span style="background:#ffffff;"> under a revolving credit facility (including up to </span><span style="background:#ffffff;">$15,000</span><span style="background:#ffffff;"> for letters of credit and up to </span><span style="background:#ffffff;">$10,000</span><span style="background:#ffffff;"> for swing line loans) (the “Revolving Loan”). Each of the Term Loan and the Revolving Loan mature on July 23, 2026. Commencing December 31, 2021, the New Term Loan requires scheduled quarterly payments in amounts equal to </span><span style="background:#ffffff;">1.25%</span><span style="background:#ffffff;"> per quarter of the original aggregate principal amount of the Term Loan, with the balance due at maturity. The New Credit Agreement is guaranteed, jointly and severally, by the Guarantors and, subject to certain exceptions, secured by a first-priority security interest in substantially all of the assets of the Borrower and the Guarantors pursuant to a Security and Pledge Agreement and a Guaranty and Suretyship Agreement, each dated as of the Closing Date</span>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company performed an analysis on a creditor-by-creditor basis for debt modifications and extinguishments to determine the appropriate accounting treatment of associated issuance costs. In connection with the refinancing, the Company recorded a loss on debt extinguishment of $15,155 for the year ended December 31, 2021 related to early extinguishments fees and the <span style="color:#231f20;">write-off of unamortized debt discount and debt issuance costs</span>. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In connection with the New Credit Agreement, the Company paid financing costs totaling $4,114, of which $2,749 related to the Term Loan and $1,365 related to the Revolving Loan. Total financing costs consisted of $1,916 of fees paid to lenders and $2,198 of debt issuance costs. Costs incurred in connection with the Term Loan were deferred and recorded as an offset to long-term debt. Costs incurred in connection with the Revolving Loan were deferred and recorded to other assets. All deferred debt costs are amortized to interest expense over the term of the loan using the effective interest method.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2022 and 2021, the Company had an unamortized debt discount of $748 and $956 and unamortized debt issuance costs of $851 and $1,092, respectively, included as an offset to debt in the consolidated balance sheets.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">There were no amounts outstanding under any revolving loans as of December 31, 2022 and 2021. As of December 31, 2022, there were $2,355 in outstanding letters of credit and $97,645 of availability<span style="color:#231f20;">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2022 and 2021, the term loan outstanding principal balance was $148,564 and $158,564 and bore interest at 6.14% and 2.61%, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The Borrower may elect to have the Revolving Loan and Term Loan under the New Credit Agreement bear interest at a base rate or a LIBOR rate, in each case, plus an applicable margin. The applicable margin for these borrowings will range from </span><span style="background:#ffffff;">0.50%</span><span style="background:#ffffff;"> to </span><span style="background:#ffffff;">1.50%</span><span style="background:#ffffff;"> per annum, in the case of base rate borrowings, and </span><span style="background:#ffffff;">1.50%</span><span style="background:#ffffff;"> to </span><span style="background:#ffffff;">2.50%</span><span style="background:#ffffff;"> per annum, in the case of LIBOR borrowings, in each case based upon the level of the Company’s consolidated total net leverage ratio. The New Credit Agreement also requires the Borrower to pay a commitment fee on the unused portion of the loan commitments. Such commitment fee will range between </span><span style="background:#ffffff;">0.175%</span><span style="background:#ffffff;"> and </span><span style="background:#ffffff;">0.25%</span><span style="background:#ffffff;"> per annum, and is also based upon the level of the Company’s consolidated total net leverage ratio. The New Credit Agreement also contains customary representations and warranties, and affirmative and negative covenants, including limitations on additional indebtedness, dividends, and other distributions, entry into new lines of business, use of loan proceeds, capital expenditures, restricted payments, restrictions on liens on the assets of the Borrowers or any Guarantor, transactions with affiliates, amendments to organizational documents, accounting changes, sale and leaseback transactions, dispositions, and mandatory prepayments in connection with certain liquidity events. The New Credit Agreement contains certain restrictive debt covenants, which require us to: (i) maintain a minimum fixed charge coverage ratio of </span><span style="background:#ffffff;">1.25</span><span style="background:#ffffff;"> to 1.00, starting with the quarter ended December 31, 2021, which is to be determined for each quarter end on a trailing four quarter basis and (ii) maintain a quarterly maximum consolidated total net leverage ratio of </span><span style="background:#ffffff;">3.75</span><span style="background:#ffffff;"> to 1.00 from the quarter ended December 31, 2021 until the quarter ended September 30, 2022, and thereafter </span><span style="background:#ffffff;">3.50</span><span style="background:#ffffff;"> to 1.00, which is in each case to be determined on a trailing four quarter basis; provided that under certain circumstances and subject to certain limitations, in the event of a material acquisition, we may temporarily increase the consolidated total net leverage ratio by up to </span><span style="background:#ffffff;">0.50</span><span style="background:#ffffff;"> to 1.00 for four fiscal quarters following such acquisition. The New Credit Agreement contains customary events of default that include, among others, non-payment of principal, interest or fees, violation of covenants, inaccuracy of representations and warranties, failure to make payment on, or defaults with respect to, certain other material indebtedness, bankruptcy and insolvency events, material judgments and change of control provisions. Upon the occurrence of an event of default, and after the expiration of any applicable grace period, payment of any outstanding loans under the New Credit Agreement may be accelerated and the Lenders could foreclose on their security interests in the assets of the Borrowers and the Guarantors.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Canadian Credit Facility</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On October 14, 2021, Med-Eng Holdings ULC and Pacific Safety Products Inc., the Company’s Canadian subsidiaries, as borrowers (the “Canadian Borrowers”), and Safariland, LLC, as guarantor (the “Canadian Guarantor”), closed on a line of credit pursuant to a Loan Agreement (the “Canadian Loan Agreement”) and a Revolving Line of Credit Note (the “Note”) with PNC Bank Canada Branch (“PNC Canada”), as lender pursuant to which the Canadian Borrowers may borrow up to CDN$10,000 under a revolving line of credit (including up to $3,000 for letters of credit) (the “Revolving Canadian Loan”). <span style="background:#ffffff;">The Revolving Canadian Loan matures on July 23, 2026. The Canadian Loan Agreement is guaranteed by the Canadian Guarantor pursuant to a Guaranty and Suretyship Agreement</span>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Canadian Borrowers may elect to have borrowings either in United States dollars or Canadian dollars under the Canadian Loan Agreement, which will bear interest at a base rate or a LIBOR rate, in each case, plus an applicable margin, in the case of borrowings in United States dollars, or at a Canadian Prime Rate (as announced from time to time by PNC Canada) or a Canadian deposit offered rate (“CDOR”) as determined from time to time by PNC Canada in accordance with the Canadian Loan Agreement. The applicable margin for these borrowings will range from 0.50% to 1.50% per annum, in the case of base rate borrowings and Canadian Prime Rate borrowings, and 1.50% to 2.50% per annum, in the case of LIBOR borrowings and CDOR borrowings. The Canadian Loan Agreement also requires the Canadian Borrowers to pay (i) an unused line fee on the unused portion of the loan commitments in an amount ranging between 0.175% and 0.25% per annum, based upon the level of the Company’s consolidated total net leverage ratio, and (ii) an upfront fee equal to 0.25% of the principal amount of the Note.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">There were no amounts outstanding under the Revolving Canadian Loan as of December 31, 2022 and 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Canadian Loan Agreement also contains customary representations and warranties, and affirmative and negative covenants, including, among others, limitations on additional indebtedness, entry into new lines of business, entry into guarantee agreements, making of any loans or advances to, or investments in, any other person, restrictions on liens on the assets of the Canadian Borrowers and mergers, transfers of assets and acquisitions. The Canadian Loan Agreement and Note also contain customary events of default that include, among others, non-payment of principal, interest or fees, violation of covenants, inaccuracy of representations and warranties, failure to make payment on, or defaults with respect to, certain other material indebtedness, bankruptcy and insolvency events, material judgments and change of control provisions.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Upon the occurrence of an event of default, and after the expiration of any applicable grace period, payment of any outstanding loans under the Canadian Loan Agreement may be accelerated.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Short-Term Debt</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In July 2021, the Company entered into a short-term loan facility for insurance premiums with Aon Premium Finance for $3,436 with a maturity date of June 27, 2022. The loan had fixed annual interest of 3.75% on the outstanding balance and required monthly payments of principal and interest of $318. As of December 31, 2021, $1,889 was outstanding.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In July 2021, the Company entered into a short-term loan facility for insurance premiums with IPFS Corporation for $410 with a maturity date of June 27, 2022. The loan had fixed annual interest of 1.98% on the outstanding balance and required monthly payments of principal and interest of $37. As of December 31, 2021, $221 was outstanding.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In November 2021, the Company entered into a short-term loan facility for insurance premiums with IPFS Corporation for $1,183 with a maturity date of October 4, 2022. The loan had fixed annual interest of 1.98% on the outstanding balance and required monthly payments of principal and interest of $108. As of December 31, 2021, $1,064 was outstanding.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In July 2022, the Company entered into a short-term loan facility for insurance premiums with AFCO Credit Corporation for $3,989 with a maturity date of June 27, 2023. The loan has fixed annual interest of 5.75% on the outstanding balance and requires monthly payments of principal and interest of $373. As of December 31, 2022, $2,211 was outstanding.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Fair Value of Debt</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The fair value of our Term Loan is based upon established market prices for the securities using Level 2 inputs. The fair value of our Term Loan as of December 31, 2022 was </span><span style="background:#ffffff;">$151,530</span><span style="background:#ffffff;"> compared to its carrying value of </span><span style="background:#ffffff;">$148,563</span><span style="background:#ffffff;">. </span>The Company classifies its long-term debt within Level 2 of the fair value hierarchy</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Interest Rate Swaps</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In September 2021, we entered into an interest rate swap agreement to hedge forecasted monthly interest rate payments on our floating rate debt. As of December 31, 2022, we had the following interest rate swap agreement (the “Swap Agreement”):</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Effective date</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Notional amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fixed rate</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:73.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">September 30, 2021 through July 23, 2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">100,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.875</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">Under the terms of the Swap Agreement, we receive or make payments based on the 1-month LIBOR (approximately </span><span style="background:#ffffff;">4.38%</span><span style="background:#ffffff;"> as of December 31, 2022).</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:12pt;text-indent:18pt;margin:0pt;"><span style="background:#ffffff;">During the year ended December 31, 2022, there were no interest rate swap agreements that expired.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:12pt;text-align:justify;text-indent:18pt;background:#ffffff;margin:0pt;">We entered into the Swap Agreement to convert a portion of the interest rate exposure on our floating rate debt from variable to fixed. We designated this Swap Agreement as a cash flow hedge. A portion of the amount included in accumulated other comprehensive income (loss) is reclassified into interest expense, net as a yield adjustment as interest is either paid or received on the hedged debt. The fair value of our Swap Agreement is based upon Level 2 inputs. We have considered our own credit risk and the credit risk of the counterparties when determining the fair value of our Swap Agreement.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:12pt;text-align:justify;text-indent:18pt;background:#ffffff;margin:0pt;">It is our policy to execute such instruments with creditworthy banks and not to enter into derivative financial instruments for speculative purposes. We believe our interest rate swap counterparty will be able to fulfill their obligations under our agreement, and we believe we will have debt outstanding through the expiration date of the swap such that the occurrence of future cash flow hedges remains probable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;background:#ffffff;margin:0pt 0pt 12pt 0pt;">The estimated fair value of our Swap Agreement in the consolidated balance sheets was as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance sheet accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_Wo5x0Fd1F0SXrJGdxGN8kQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Other current assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,619</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_GGfkzzzwYU-XUrQFjftsew;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Other assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,366</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,607</p></td></tr><tr><td style="vertical-align:bottom;width:71.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_Gtq-Du0vqUiElbfpkE3MDQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Accrued liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 389</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;background:#ffffff;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:12pt;text-align:justify;text-indent:18pt;background:#ffffff;margin:0pt;">A cumulative gain, net of tax, of $6,739 and $913 is recorded in accumulated other comprehensive income (loss) as of December 31, 2022 and 2021, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;padding-bottom:12pt;text-align:justify;text-indent:18pt;background:#ffffff;margin:0pt;">The amount of gain, net of tax, recognized in other comprehensive income for the years ended December 31, 2022 and 2021 was $6,444 and $767, respectfully. There was $618, net of tax, reclassified from accumulated other comprehensive income (loss) into earnings for the year ended December 31, 2022.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;background:#ffffff;margin:0pt 0pt 12pt 0pt;">As of December 31, 2022, approximately $3,646 is expected to be reclassified from accumulated other comprehensive income (loss) into interest expense over the next 12 months.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.96%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Short-term debt:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Insurance premium financing</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,211</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,174</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Current portion of term loan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,000</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,211</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 13,174</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Long-term debt:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;">  </p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Revolver</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Term loan</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 138,564</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 148,564</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 18pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 512</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 139,076</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 148,564</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Unamortized debt discount and debt issuance costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,600)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (2,048)</p></td></tr><tr><td style="vertical-align:bottom;width:66.36%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total long-term debt, net</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 137,476</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.66%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.29%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 146,516</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> 2211000 3174000 10000000 10000000 12211000 13174000 138564000 148564000 512000 139076000 148564000 1600000 2048000 137476000 146516000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,000</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,128</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10,128</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 118,692</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 128</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:85.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total principal payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.56%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.54%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 149,076</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> 10000000 10128000 10128000 118692000 128000 149076000 200000000 100000000 15000000 10000000 0.0125 -15155000 4114000 2749000 1365000 1916000 2198000 748000 956000 851000 1092000 0 0 2355000 97645000 148564000 158564000 6.14 2.61 0.0050 0.0150 0.0150 0.0250 0.00175 0.0025 1.25 3.75 3.50 0.50 10000000 3000000 0.0050 0.0150 0.0150 0.0250 0.00175 0.0025 0.0025 0 0 3436000 0.0375 318000 1889000 410000 410000 0.0198 37000 221000 1183000 0.0198 108000 1064000 3989000 0.0575 373000 2211000 151530000 148563000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:73.09%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:9.86%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:73.09%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Effective date</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.16%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Notional amount</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fixed rate</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"> </p></td></tr><tr><td style="vertical-align:bottom;width:73.09%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">September 30, 2021 through July 23, 2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">100,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:9.86%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.875</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.54%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;background:#ffffff;">​</span></p> 2021-09-30 2026-07-23 100000000 0.00875 0.0438 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.97%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:11pt;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.85%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance sheet accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_Wo5x0Fd1F0SXrJGdxGN8kQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Other current assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,619</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_GGfkzzzwYU-XUrQFjftsew;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Other assets</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,366</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,607</p></td></tr><tr><td style="vertical-align:bottom;width:71.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="-sec-ix-hidden:Hidden_Gtq-Du0vqUiElbfpkE3MDQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Accrued liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.33%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 389</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:justify;text-indent:18pt;background:#ffffff;margin:0pt;"><span style="visibility:hidden;">​</span></p> 3619000 5366000 1607000 389000 6739000 913000 6444000 767000 618000 3646000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">12.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">SHAREHOLDERS’ EQUITY</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Initial Public Offering</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="background:#ffffff;">On November 3, 2021, the Company completed its initial public offering (“IPO”) in which the Company issued and sold </span><span style="background:#ffffff;">6,900,000</span><span style="background:#ffffff;"> shares, which included </span><span style="background:#ffffff;">900,000</span><span style="background:#ffffff;"> shares that were offered and sold pursuant to the full exercise of the underwriters’ </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">over-allotment option, of common stock at a public offering price of </span><span style="background:#ffffff;">$13.00</span><span style="background:#ffffff;"> per share. The Company’s net proceeds from the sale of shares in the IPO was </span><span style="background:#ffffff;">$78,581</span><span style="background:#ffffff;"> after underwriter discounts and commissions, fees and expenses of </span><span style="background:#ffffff;">$11,119</span><span style="background:#ffffff;">, of which </span><span style="background:#ffffff;">$2,250</span><span style="background:#ffffff;"> was paid to Kanders &amp; Company, Inc., a company controlled by Warren B. Kanders, our Chief Executive Officer.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Secondary Offering</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">On June 9, 2022, the Company completed a secondary offering in which the Company issued and sold </span><span style="background:#ffffff;">2,250,000</span><span style="background:#ffffff;"> shares of common stock at a price of </span><span style="background:#ffffff;">$23.50</span><span style="background:#ffffff;"> per share. The Company’s net proceeds from the sale of shares were </span><span style="background:#ffffff;">$46,987</span><span style="background:#ffffff;"> after underwriter discounts and commissions, fees and expenses of </span><span style="background:#ffffff;">$2,715</span><span style="background:#ffffff;">, of which </span><span style="background:#ffffff;">$2,000</span><span style="background:#ffffff;"> was paid to Kanders &amp; Company, Inc., a company controlled by Warren B. Kanders, our Chief Executive Officer</span>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On July 14, 2022, the underwriters exercised a portion of their over-allotment option and purchased an additional 300,000 shares of common stock <span style="background:#ffffff;">at a price of </span><span style="background:#ffffff;">$23.50</span><span style="background:#ffffff;"> per share, resulting in net proceeds to the Company of </span><span style="background:#ffffff;">$6,389</span><span style="background:#ffffff;"> after underwriter discounts and commissions, fees and expenses of </span><span style="background:#ffffff;">$661</span><span style="background:#ffffff;">.</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Dividends</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">In August 2021, the Company declared and </span><span style="-sec-ix-hidden:Hidden_tBP1d7QeH0-CVMOh1RXIbg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;background:#ffffff;">paid</span></span><span style="background:#ffffff;"> a </span><span style="background:#ffffff;">$10,000</span><span style="background:#ffffff;">, or </span><span style="background:#ffffff;">$0.36</span><span style="background:#ffffff;"> </span><span style="-sec-ix-hidden:Hidden_VFfuRnCHlkSaaLgMAwCZQQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;background:#ffffff;">per</span></span><span style="background:#ffffff;"> share, dividend to shareholders on record as of August 11, 2021.</span> </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On November 11, 2021, the Company announced that its board of directors approved the initiation of a quarterly cash dividend policy of $0.08 per share of the Company’s common stock (the “Quarterly Cash Dividend”) or $0.32 per share on an annualized basis. <span style="background:#ffffff;">The declaration and payment of future Quarterly Cash Dividends is subject to the discretion of and approval of the Company’s board of directors. Our Quarterly Cash Dividends totaled </span><span style="background:#ffffff;">$11,509</span><span style="background:#ffffff;"> and </span><span style="background:#ffffff;">$2,751</span><span style="background:#ffffff;"> for the years ended December 31, 2022 and 2021, respectively.</span> </p> 6900000 900000 13.00 78581000 11119000 2250000 2250000 23.50 46987000 2715000 2000000 300000 23.50 6389000 661000 10000000 0.36 0.08 0.32 11509000 2751000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">13.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">STOCK-BASED COMPENSATION</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">2021 Phantom Restricted Share Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">The Company maintains a cash-based executive compensation plan for certain employees. The Company’s board of directors awarded </span><span style="background:#ffffff;">1,433,500</span><span style="background:#ffffff;">  interests in the plan (“units”). Each unit represents an unfunded and unsecured right, subject to certain conditions as set forth by the plan. One-third of the units granted to any holder will vest on each of the first, second, and third anniversaries of March 18, 2021 during the term of such holder’s employment with the Company. Payment of a holder’s vested balance is dependent upon a transaction or series of related transactions constituting a qualifying exit event, as defined by the executive compensation plan. The plan will expire on March 18, 2025, at which time the plan and all awarded units will be terminated for no consideration if a qualifying exit event has not occurred before that date. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">On March 9, 2022, the Company’s board of directors modified the performance condition, specifically the definition of a qualifying exit event. In addition, the board of directors approved the settlement of vested and unvested units in common stock rather than cash, which resulted in a change in classification of the outstanding units from liability to equity. As a result, modification of the units occurred on March 9, 2022 with a grant date fair value of </span><span style="background:#ffffff;">$23.45</span><span style="background:#ffffff;">, the closing stock price of the Company on the date of modification. There were </span><span style="background:#ffffff;">632,500</span><span style="background:#ffffff;"> units that vested March 18, 2022 and </span><span style="background:#ffffff;">791,667</span><span style="background:#ffffff;"> units that will vest in equal amounts on the second and third anniversaries of the plan. The Company recognized compensation expense of </span><span style="background:#ffffff;">$22,100</span><span style="background:#ffffff;"> on March 9, 2022, the date the performance condition became probable. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">A summary of our phantom award activity for the year ended December 31, 2022 is as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted Average </b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Grant Date</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,433,500</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (632,500)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (9,333)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 791,667</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The total fair value of phantom awards vested in 2022 was $22,649.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Compensation cost related to phantom awards was $28,578 for the year ended December 31, 2022 and is recorded in selling, general, and administrative expense. As of December 31, 2022, there was $4,679 of unrecognized compensation cost related to phantom awards, which is expected to be recognized over a weighted-average period of 1.2 years.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;"><span style="font-style:italic;font-weight:bold;">2021 Stock Incentive Plan</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In November 2021, we adopted the 2021 Stock Incentive Plan (the “2021 Plan”). The 2021 Plan provides for the grant of incentive stock options to our employees and any parent and subsidiary companies’ employees, and for the grant of non-statutory stock options, restricted stock, restricted stock units (“RSUs”), stock appreciation rights (“SARs”), performance units, and performance shares to our employees, directors, and consultants and our parent and subsidiary companies’ employees and consultants. The maximum aggregate number of shares of common stock that may be issued under the 2021 Plan is 9,650,000 shares. As of December 31, 2022, 4,418 shares of common stock were reserved and available for issuance under the 2021 Plan.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Market Condition Restricted Shares</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">On November 4, 2021, the Company issued and granted to certain employees a total of </span><span style="background:#ffffff;">2,600,000</span><span style="background:#ffffff;"> RSUs under the 2021 Plan, of which </span><span style="background:#ffffff;">2,600,000 </span><span style="background:#ffffff;">RSUs will vest if, on or before November 8, 2031, the Fair Market Value (as defined in the Plan) of the Company’s common stock shall have equaled or exceeded </span><span style="background:#ffffff;">$40.00</span><span style="background:#ffffff;"> per share for </span><span style="-sec-ix-hidden:Hidden_gV3NgmkFeEmtA0jWQgr__A;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;background:#ffffff;">twenty</span></span><span style="background:#ffffff;"> consecutive trading days. For computing the fair value of the </span><span style="background:#ffffff;">2,600,000</span><span style="background:#ffffff;"> </span><span style="background:#ffffff;">RSUs with a market condition, the fair value of the RSU grant has been estimated as of the date of grant using the Monte-Carlo pricing model with the assumptions below. </span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:20.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Number issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">2,600,000</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vesting period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$40.00 stock price target</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Grant price (per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$4.65 </p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Dividend yield</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">0.0%</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected volatility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">32.08%</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Risk-free interest rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">1.59%</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected term (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">5.67</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average fair value (per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$4.65</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">A summary of our market condition RSU activity for the year ended December 31, 2022 is as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted Average </b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Grant Date</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,600,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4.65</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,600,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4.65</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Compensation cost related to market condition RSUs was $2,132 for the year ended December 31, 2022 and is recorded in selling, general, and administrative expense. As of December 31, 2022, there was $9,602 of unrecognized compensation cost related to market condition RSUs, which is expected to be recognized over a weighted-average period of 4.5 years.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Stock Options</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">During the year ended December 31, 2022, the Company issued stock options for an aggregate of 373,479 shares under the 2021 Plan to directors and employees of the Company. The options issued during the year ended December 31, 2022 generally vest and become exercisable over a period of <span style="-sec-ix-hidden:Hidden_hqAAQPII1kqIv4WbK-kmiw;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">one</span></span> to <span style="-sec-ix-hidden:Hidden_XQexgyFHvEeYlUh2BAjqcg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> years and expire <span style="-sec-ix-hidden:Hidden_xMt6Yx_w1UGXmDcmx6LrHg;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">ten</span></span> years from the date of the grant.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">For computing the fair value of the stock-based awards, the fair value of each option grant has been estimated as of the date of grant using the Black-Scholes option-pricing model with the following assumptions:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:20.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Number issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">373,479</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vesting period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">1 - 3 years</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Grant price (per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$23.45 - $23.70</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Dividend yield</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">1.35% - 1.36%</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected volatility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">33.22%</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Risk-free interest rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">1.12%</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected term (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">4.61 - 6.00</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average fair value (per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$6.69</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">A summary of our stock option activity for the year ended December 31, 2022 is as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Aggregate</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted Average </b></p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Remaining Contractual</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Exercise Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Life (in years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 373,479</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.46</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10.0</p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,868)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9.6</p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 367,611</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.46</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9.2</p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fully vested options outstanding at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 64,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.51</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9.2</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">There were no options exercisable as of December 31, 2022 as the exercise price of all outstanding options was greater than the closing stock price.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Compensation cost related to stock options was $974 for the year ended December 31, 2022 and is recorded in selling, general, and administrative expense. As of December 31, 2022, there was $1,486 of unrecognized compensation cost related to stock options, which is expected to be recognized over a weighted-average period of 2.2 years.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;">Restricted Stock Units</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">During the year ended December 31, 2022, the Company granted 85,108 RSUs under the 2021 Plan to employees of the Company. <span style="background:#ffffff;">The RSUs will vest in three equal installments over a </span><span style="-sec-ix-hidden:Hidden_sqO8Mr8YN0OzXv1QD5RDPQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;background:#ffffff;">three-year</span></span><span style="background:#ffffff;"> period from the date of grant and have a grant date fair value of the closing stock price of the Company on the date of grant</span>. </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">A summary of our RSU activity for the year ended December 31, 2022 is as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted Average </b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Grant Date</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 85,108</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,614)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 83,494</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;background:#ffffff;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Compensation cost related to RSUs was $531 for the year ended December 31, 2022 and is recorded in selling, general, and administrative expense. As of December 31, 2022, there was $1,427 of unrecognized compensation cost related to RSUs, which is expected to be recognized over a weighted-average period of 2.2 years.</p> 1433500 23.45 632500 791667 22100000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted Average </b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Grant Date</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,433,500</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (632,500)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (9,333)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 791,667</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;background:#ffffff;">​</span></p> 1433500 632500 23.45 9333 23.45 791667 23.45 22649000 28578000 4679000 P1Y2M12D 9650000 4418 2600000 2600000 40.00 2600000 2600000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:20.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Number issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">2,600,000</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vesting period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$40.00 stock price target</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Grant price (per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$4.65 </p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Dividend yield</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">0.0%</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected volatility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">32.08%</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Risk-free interest rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">1.59%</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected term (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">5.67</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average fair value (per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$4.65</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> 2600000 40.00 4.65 0.000 0.3208 0.0159 P5Y8M1D 4.65 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted Average </b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Grant Date</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,600,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4.65</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,600,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4.65</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;background:#ffffff;">​</span></p> 2600000 4.65 2600000 4.65 2132000 9602000 P4Y6M 373479 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:20.05%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Number issued</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">373,479</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vesting period</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">1 - 3 years</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Grant price (per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$23.45 - $23.70</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Dividend yield</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">1.35% - 1.36%</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected volatility</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">33.22%</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Risk-free interest rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">1.12%</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Expected term (years)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">4.61 - 6.00</p></td></tr><tr><td style="vertical-align:bottom;width:77.6%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average fair value (per share)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.41%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:18.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">$6.69</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> 373479 P1Y P3Y 23.45 23.70 0.0135 0.0136 0.3322 0.0112 P4Y7M9D P6Y 6.69 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Aggregate</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted Average </b></p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Average </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.21%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Intrinsic</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.94%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Remaining Contractual</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Options</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:9%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Exercise Price</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:8.21%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Value</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:14.94%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Life (in years)</b></p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 373,479</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.46</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 10.0</p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Exercised</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (5,868)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9.6</p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 367,611</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.46</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9.2</p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:55.63%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Fully vested options outstanding at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.72%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 64,000</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.99%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.51</p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:0.93%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:7.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.67%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:13.26%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9.2</p></td></tr></table> 373479 23.46 P10Y 5868 23.45 P9Y7M6D 367611 23.46 P9Y2M12D 64000 23.51 P9Y2M12D 0 974000 1486000 P2Y2M12D 85108 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Weighted Average </b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Grant Date</b></p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Shares</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:12.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Fair Value</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2021</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Granted</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 85,108</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Vested</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Forfeited</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (1,614)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-family:'Calibri','Helvetica','sans-serif';font-size:11pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td></tr><tr><td style="vertical-align:bottom;width:71.87%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Outstanding at December 31, 2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.11%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.51%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 83,494</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.12%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.35%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.75%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 23.45</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;background:#ffffff;">​</span></p> 85108 23.45 1614 23.45 83494 23.45 531000 1427000 P2Y2M12D <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">14.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">COMPENSATION AND DEFINED CONTRIBUTION PLANS</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company and its wholly owned subsidiaries sponsor Internal Revenue Code Section 401(k) defined contribution plans for the benefit of all full-time and part-time employees. Employees are entitled to make tax- deferred contributions up to the maximum allowed by law of their eligible compensation.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company sponsors various other non-U.S. Defined Contribution and Defined Profit-Sharing Plans that are offered by the Company’s foreign subsidiaries. Many of these plans were assumed through the Company’s acquisitions or are required by local regulatory requirements. The Company may deposit funds for these plans with insurance companies, or into government-managed accounts consistent with local regulatory requirements, as applicable.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Contribution to the plans are made by both the employee and the Company. The Company’s contributions to the plans was $3,198 and $1,780 for the years ended December 31, 2022 and 2021, respectively.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt 0pt 12pt 0pt;"><i style="font-style:italic;background:#ffffff;">Long-Term Incentive Plan</i></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In March 2021, the Company initiated a cash-based long-term incentive plan. Each award granted under the plan shall be eligible to vest in three equal annual installments over a period of <span style="-sec-ix-hidden:Hidden_l-lLHvEdMECgw1pARwCS6w;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">three</span></span> consecutive one-year performance periods, with each installment of the award vesting on the last day of the applicable performance period, subject to the achievement of the performance metrics established by the board of directors for the applicable annual performance period.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">On March 9, 2022, the Company’s board of directors approved the common stock settlement of vested awards of the long-term incentive plan. The board of directors also approved the option to settle unvested awards in common stock. Modification accounting was not applied as this change did not affect the fair value of the awards, vesting conditions, or the liability classification of the awards.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">Total compensation expense related to this plan was </span><span style="background:#ffffff;">$1,369</span><span style="background:#ffffff;"> and </span><span style="background:#ffffff;">$2,162</span><span style="background:#ffffff;"> for the years ended December 31, 2022 and 2021, respectively, and is included in selling, general and administrative in the Company’s consolidated statements of operations and comprehensive income.</span></p> 3198000 1780000 3 1369000 2162000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">15.</td><td style="padding:0pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">COMMITMENTS AND CONTINGENCIES</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Legal Proceedings</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">In March 2020, the Company settled an administrative enforcement action filed by the U.S. Federal Trade Commission (“FTC”) relating to Company’s sale of VieVu, LLC to Axon Enterprise Inc. (“Axon”) wherein the FTC alleged that the operative agreements contained non-compete and non-solicitation provisions in violation of Section 5 of the Federal Trade Commission Act, as amended, 15 U.S.C. § 45, and Section 7 of the Clayton Act, as amended, 15 U.S.C. § 18. The FTC’s administrative complaint sought only injunctive relief against the Company to enjoin the enforcement of these provisions, now and in the future, and did not seek monetary damages against the Company. In January 2020, the Company and Axon had rescinded these provisions. Pursuant to a consent agreement and proposed consent order entered into by the FTC and the Company, on June 11, 2020, the FTC issued a Decision and Order accepting the Consent Agreement (the “Order”). Under the Order, the Company agreed to not modify and reinstate the rescinded provisions and to not enter into any new similar provisions with Axon, absent prior approval from the FTC. In addition, as part of the Company’s compliance program, the Order imposes an obligation to distribute to, and train the directors and officers on, the requirements of the consent order and to report annually for five years to the FTC ensuring compliance with the consent order. On July 10, 2020, the Company filed its Interim Verified Compliance Report and, thereafter, on June 11, 2021 and June 10, 2022, filed its Annual Compliance Reports, each as required by the Order</span>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="letter-spacing:0.2pt;">In September 2021, Safariland, LLC, a wholly-owned subsidiary of the Company, received a jury verdict awarding </span><span style="letter-spacing:0.2pt;">$7,500</span><span style="letter-spacing:0.2pt;"> </span><span style="background:#ffffff;">to a plaintiff relating to a personal injury case wherein the plaintiff alleged various product liability claims against Safariland, LLC. The plaintiff in the proceeding, Mr. David Hakim, instituted the proceeding on July 24, 2015, through the filing of a complaint with the United States District Court, Northern District of Illinois, Eastern Division. In the proceeding, the plaintiff, a SWAT officer with the DuPage County Sheriff’s Office (“DCSO”), alleged that he suffered injuries during a training exercise conducted by DCSO in which a Defense Technology Shotgun Breaching TKO round was deployed and passed through a door and lower-floor ceiling causing a fragment to strike plaintiff’s back resulting in injury. Prior to the jury rendering its verdict, the court deferred ruling on Safariland, LLC’s Motion for Judgment as a Matter of Law (“JMOL”). On November 8, 2021, Safariland, LLC filed its post-trial motions, including a supplemental JMOL, motion for new trial and remittitur. On April 18, 2022, the court denied Safariland, LLC’s JMOL, motion for new trial and remittitur and, accordingly, entered a judgment in favor of plaintiff, David Hakim, as to the Third Claim. In response, Safariland, LLC timely filed its notice of appeal with the United States Court of Appeals for the Seventh Circuit.  Safariland and Plaintiff have filed their appeal briefs, and oral arguments were held on October 25, 2022. While any litigation contains an eleme</span><span style="background:#f9f9f9;">nt of uncertainty, the Company believes it is reasonably possible, not probable, that the Company could incur losses related to this case, however, any losses would be indemnified by our insurance carrier under applicable policies</span>.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company is also involved in various legal disputes and other legal proceedings and claims that arise from time to time in the ordinary course of business. The Company vigorously defends itself against all lawsuits and evaluates the amount of reasonably possible losses that the Company could incur as a result of these matters. While any litigation contains an element of uncertainty, the Company believes that the reasonably possible losses that the Company could incur in excess of insurance coverage would not have a material adverse effect on the Company’s consolidated financial position, results of operations, or liquidity.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">Insurance</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company has various insurance policies, including product liability insurance, covering risks and in amounts it considers adequate. There can be no assurance that the insurance coverage maintained by the Company is sufficient or will be available in adequate amounts or at a reasonable cost.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:italic;margin:0pt 0pt 12pt 0pt;">International</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As an international company, we are, from time to time, the subject of investigations relation to the Company’s international operations, including under U.S. export control laws (such as ITAR), the FCPA and other similar U.S. and international laws.</p> 7500000 <table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">16.</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;"> </span><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">INCOME TAXES</b></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Consolidated income from continuing operations before provision for income taxes consisted of the following:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:25.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="color:#231f20;font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="color:#231f20;font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="color:#231f20;font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">U.S. operations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="color:#231f20;"> 6,455</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="color:#231f20;"> 18,243</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">Foreign operations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="color:#231f20;"> 2,918</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="color:#231f20;"> 949</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">Income before provision for income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="color:#231f20;"> 9,373</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="color:#231f20;"> 19,192</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The provision for income taxes is detailed below:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:25.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="color:#231f20;font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="color:#231f20;font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="color:#231f20;font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Current tax provision:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Federal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,711</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">State</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 624</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 907</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Foreign</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,305</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 852</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total current provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,640</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,759</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax (benefit) provision:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Federal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (24)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,704</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">State</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 897</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Foreign</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,058)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (829)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total deferred (benefit) provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,087)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,772</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total provision for income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,553</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,531</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The following is a reconciliation of the statutory federal income tax rate to the effective rate reported in the Company’s consolidated financial statements:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:23.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Federal statutory rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Increase (decrease) in income taxes resulting from:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">State income taxes, net of federal income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Change in valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current year tax credits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (6.5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (4.7)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Difference between foreign and federal tax rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Permanent items</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Reserve for uncertain tax positions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Effective tax rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 37.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 34.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred taxes have not been recognized for the excess financial reporting basis over the tax basis of investments of foreign subsidiaries. It is the Company’s intent to permanently reinvest the earnings of those foreign subsidiaries in those jurisdictions. It is not practical to determine the amount of any unrecognized deferred tax liability on this item.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Deferred income tax assets and liabilities are determined based on the difference between the financial reporting carrying amounts and tax bases of existing assets and liabilities and operating loss and tax credit carryforwards. The tax effects of temporary differences giving rise to significant components of the Company’s deferred income tax assets and liabilities are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Net operating loss and other carry forwards</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7,335</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,477</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,351</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,831</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Reserves and other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,039</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,265</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">263A uniform capitalization costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 201</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 657</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,232</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,911</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,158</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21,141</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,888)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,890)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Net deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 17,270</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,251</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Intangibles</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (5,789)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (2,624)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,447)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (3,403)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (7,560)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (6,594)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (727)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (868)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (18,523)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (13,489)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total deferred income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,253)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,762</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">In assessing the realizability of deferred income tax assets, the Company performs an evaluation of whether it is more likely than not that some portion, or all, of its deferred income tax assets will not be realized. During the course of this evaluation, the Company considers all available positive and negative evidence and if, based upon the weight of available evidence, it is more likely than not the deferred tax assets will not be realized, a valuation allowance is recorded. Based on its current evaluation, the Company determined it was appropriate to decrease its valuation allowance by $2 for the year ended December 31, 2022.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">As of December 31, 2022, the Company had net operating loss carryforwards that expire in varying amounts beginning in 2023 through 2038 and tax credit carryforwards that expire in varying amounts beginning in 2023 through 2037.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The total amount of unrecognized benefits on uncertain tax positions that, if recognized, would affect the Company’s effective tax rate was $1,986. A reconciliation of the change in the unrecognized income tax benefit for the years ended December 31, 2022 and 2021 is as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Beginning unrecognized tax benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,090</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,122</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current period unrecognized tax benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (32)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="white-space:pre-wrap;"> Foreign currency fluctuations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (143)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Ending unrecognized tax benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,986</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,090</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company recognizes interest expense and penalties related to unrecognized tax benefits as income tax expense. No amounts representing penalties and interest were recorded as income tax expense during the years ended December 31, 2022 and 2021. The Company had no interest or penalties accrued in the consolidated balance sheets as of December 31, 2022 and 2021.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company and its subsidiaries file income tax returns in the U.S. federal, various state and local, and certain foreign jurisdictions. As of December 31, 2022, the Company’s tax years subsequent to 2016 are subject to examination by tax authorities with few exceptions. One of the Company’s Canadian subsidiaries underwent an examination of its tax filings for the period June 1, 2016 through December 31, 2017. In January 2022, the Company received notification that the Canadian tax authority has completed its examination and proposed no changes to the tax filings.</p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:25.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="color:#231f20;font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="color:#231f20;font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="color:#231f20;font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">U.S. operations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="color:#231f20;"> 6,455</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="color:#231f20;"> 18,243</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">Foreign operations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="color:#231f20;"> 2,918</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="color:#231f20;"> 949</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">Income before provision for income taxes</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="color:#231f20;"> 9,373</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="color:#231f20;">$</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"><span style="color:#231f20;"> 19,192</span></p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> 6455000 18243000 2918000 949000 9373000 19192000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="5" style="vertical-align:middle;white-space:nowrap;width:25.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="color:#231f20;font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="color:#231f20;font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;">    </p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="color:#231f20;font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Current tax provision:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Federal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,711</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">State</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 624</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 907</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Foreign</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,305</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 852</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total current provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,640</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,759</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax (benefit) provision:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Federal</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (24)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,704</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">State</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 897</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Foreign</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,058)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (829)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total deferred (benefit) provision</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,087)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,772</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total provision for income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,553</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 6,531</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 2711000 624000 907000 1305000 852000 4640000 1759000 -24000 4704000 -5000 897000 -1058000 -829000 -1087000 4772000 3553000 6531000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="3" style="vertical-align:bottom;white-space:nowrap;width:23.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> </b></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Federal statutory rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 21.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Increase (decrease) in income taxes resulting from:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">State income taxes, net of federal income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.6</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Change in valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current year tax credits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (6.5)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (4.7)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Difference between foreign and federal tax rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.4</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2.8</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Permanent items</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 5.2</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Reserve for uncertain tax positions</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (0.3)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 0.5</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:72.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 12pt;">Effective tax rate</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 37.9</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.17%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 34.0</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.14%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> 0.210 0.210 0.056 0.084 0.008 0.065 0.047 0.054 0.028 0.122 0.052 0.005 -0.003 0.005 0.379 0.340 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax assets:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Net operating loss and other carry forwards</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 7,335</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 12,477</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Accrued liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,351</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,831</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Reserves and other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,039</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 2,265</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">263A uniform capitalization costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 201</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 657</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,232</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,911</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,158</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 21,141</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Valuation allowance</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,888)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,890)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Net deferred tax assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 17,270</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 19,251</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Deferred tax liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Intangibles</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (5,789)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (2,624)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Depreciation</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (4,447)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (3,403)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Goodwill</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (7,560)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (6,594)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Other</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (727)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (868)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total deferred tax liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (18,523)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (13,489)</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total deferred income taxes</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"> (1,253)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,762</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p> 7335000 12477000 3351000 3831000 3039000 2265000 201000 657000 5232000 1911000 19158000 21141000 1888000 1890000 17270000 19251000 5789000 2624000 4447000 3403000 7560000 6594000 727000 868000 18523000 13489000 1253000 5762000 2000 1986000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="5" style="vertical-align:bottom;white-space:nowrap;width:25.93%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year ended December 31, </b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.87%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2022</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.89%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Beginning unrecognized tax benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,090</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,122</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Current period unrecognized tax benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 39</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (32)</p></td></tr><tr><td style="vertical-align:bottom;white-space:nowrap;width:71.89%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="white-space:pre-wrap;"> Foreign currency fluctuations</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (143)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;background:#cceeff;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:71.89%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Ending unrecognized tax benefits</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.55%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,986</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.16%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.31%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.57%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,090</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:0pt;margin:0pt;"><span style="margin-bottom:12pt;visibility:hidden;">​</span></p> 2090000 2122000 39000 32000 143000 1986000 2090000 0 0 0 0 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:18pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">17.</b></span>LEASES</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company leases certain manufacturing and office space, retail locations, and equipment. Operating lease assets and liabilities are recognized at the commencement date based on the present value of lease payments over the lease term. <span style="background:#ffffff;">The Company has elected not to recognize a lease liability or right-of-use (“ROU”) asset for short-term leases (leases with a term of twelve months or less).</span> The Company uses its incremental borrowing rate based on the information available at the commencement date in determining the present value of lease payments. <span style="background:#ffffff;">The Company’s incremental borrowing rate is the rate for collateralized borrowings based on the current economic environment, credit history, credit rating, value of leases, currency in which the lease obligation is satisfied, rate sensitivity, lease term and materiality. </span>Our operating leases have remaining contractual terms of up to five years, some of which include options to extend the leases for up to five years.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The amount of assets and liabilities related to our operating leases were as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:31.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:55.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:31.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:55.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance sheet accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Assets:</b></p></td><td style="vertical-align:bottom;width:55.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Operating lease assets</p></td><td style="vertical-align:bottom;width:55.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Operating lease assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,489</p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:55.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Liabilities:</b></p></td><td style="vertical-align:bottom;width:55.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Current:</p></td><td style="vertical-align:bottom;width:55.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Operating lease liabilities</p></td><td style="vertical-align:bottom;width:55.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="-sec-ix-hidden:Hidden_jOirw84oSkq1MnUyzUDxFQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Accrued liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,773</p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Long-term:</p></td><td style="vertical-align:bottom;width:55.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Operating lease liabilities</p></td><td style="vertical-align:bottom;width:55.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Long-term operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,965</p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total lease liabilities</p></td><td style="vertical-align:bottom;width:55.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,738</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;text-indent:22.3pt;margin:0pt 0pt 12pt 0pt;">The components of lease expense are recorded to cost of sales and selling, general and administration expenses in the consolidated statements of comprehensive income. The components of lease expense were as follows:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Fixed operating lease costs<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,047</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Variable operating lease costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,329</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,376</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt 0pt 12pt 0pt;"> (1) Includes short-term leases, which are immaterial.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The weighted average remaining lease term and weighted average discount rate is as follows:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average remaining lease term (years):</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2.62</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average discount rate:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2.96%</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:12pt 0pt 12pt 0pt;">The approximate future minimum lease payments under operating leases as of December 31, 2022 are as follows:</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,012</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,958</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,560</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 513</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 75</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,118</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Amount representing interest </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (380)</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Present value of lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,738</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:12pt 0pt 12pt 0pt;"><span style="background:#ffffff;">Future minimum lease payments required under non-cancelable operating leases as of December 31, 2021 are as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,293</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,853</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,725</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,391</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 406</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 35</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total minimum lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,703</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="background:#ffffff;">Supplemental cash flow information related to leases is as follows:</span></p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash paid for amounts included in the measurement of lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Operating cash flows - operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,047</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Right-of-use assets obtained in exchange for lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;"><span style="font-size:1pt;margin-bottom:12pt;visibility:hidden;">​</span></p> <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:31.52%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;width:55.01%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:31.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:55.01%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">Balance sheet accounts</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:11.97%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Assets:</b></p></td><td style="vertical-align:bottom;width:55.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Operating lease assets</p></td><td style="vertical-align:bottom;width:55.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Operating lease assets</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,489</p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;"><span style="margin-left:0pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;width:55.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><b style="font-weight:bold;">Liabilities:</b></p></td><td style="vertical-align:bottom;width:55.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Current:</p></td><td style="vertical-align:bottom;width:55.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Operating lease liabilities</p></td><td style="vertical-align:bottom;width:55.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="-sec-ix-hidden:Hidden_jOirw84oSkq1MnUyzUDxFQ;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Accrued liabilities</span></span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 3,773</p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Long-term:</p></td><td style="vertical-align:bottom;width:55.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 6pt;">Operating lease liabilities</p></td><td style="vertical-align:bottom;width:55.01%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt;">Long-term operating lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,965</p></td></tr><tr><td style="vertical-align:bottom;width:31.52%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total lease liabilities</p></td><td style="vertical-align:bottom;width:55.01%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.48%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.34%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:10.62%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 8,738</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:12.0pt;text-indent:22.3pt;margin:0pt 0pt 12pt 0pt;">The components of lease expense are recorded to cost of sales and selling, general and administration expenses in the consolidated statements of comprehensive income. The components of lease expense were as follows:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Fixed operating lease costs<sup style="font-size:7.5pt;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 4,047</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">Variable operating lease costs</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 1,329</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0pt 12pt;">Total</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0pt 0pt;"> 5,376</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:12pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt 0pt 12pt 0pt;"> (1) Includes short-term leases, which are immaterial.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The weighted average remaining lease term and weighted average discount rate is as follows:</p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average remaining lease term (years):</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2.62</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Weighted average discount rate:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;">2.96%</p></td></tr></table> 8489000 3773000 4965000 8738000 4047000 1329000 5376000 P2Y7M13D 0.0296 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,012</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,958</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,560</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 513</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2027</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 75</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total future lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 9,118</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Less: Amount representing interest </p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (380)</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Present value of lease liabilities</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 8,738</p></td></tr></table> 4012000 2958000 1560000 513000 75000 9118000 380000 8738000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2022</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,293</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2023</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 3,853</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2024</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 2,725</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2025</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 1,391</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">2026</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 406</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Thereafter</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 35</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Total minimum lease payments</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 12,703</p></td></tr></table> 4293000 3853000 2725000 1391000 406000 35000 12703000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;padding-left:0pt;padding-right:0pt;width:100%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-style:italic;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    </b></p></td><td colspan="2" style="vertical-align:bottom;white-space:nowrap;width:13.81%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cash paid for amounts included in the measurement of lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"> </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Operating cash flows - operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 4,047</p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Right-of-use assets obtained in exchange for lease liabilities:</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:83.66%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Operating leases</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.53%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:12.27%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> —</p></td></tr></table> 4047000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:12pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:18pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">18.</b></span>RELATED PARTY TRANSACTIONS</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">The Company leases several distribution warehouses and retail stores from related parties. During the years ended December 31, 2022 and 2021 the Company made payments and recorded rent expense related to these leases of $478 and $579 respectively which are included in related party expense in the Company’s consolidated statements of operations and comprehensive income.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="letter-spacing:0.2pt;">For the year ended December 31, 2022, the Company made the following payments to Kanders &amp; Company, Inc., a company controlled by Warren B. Kanders, our Chairman of the Board:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:39pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;letter-spacing:0.2pt;background:#ffffff;">$1,000</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;letter-spacing:0.2pt;background:#ffffff;"> for services related to the acquisition of Cyalume,</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;background:#ffffff;"> which is included in related party expense in the Company’s consolidated statements of operations and comprehensive income.</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;letter-spacing:0.2pt;background:#ffffff;"> </span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:39pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;letter-spacing:0.2pt;background:#ffffff;">$2,000</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;letter-spacing:0.2pt;background:#ffffff;"> for services related to the Company’s secondary offering, which is included in direct offering costs and recorded against offering proceeds in additional paid in capital in the Company’s consolidated balance sheets.</span></td></tr></table><div style="margin-top:12pt;"/><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;"><span style="letter-spacing:0.2pt;">For the year ended December 31, 2021, the Company made the following payments to Kanders &amp; Company, Inc.:</span></p><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:12pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:39pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;letter-spacing:0.2pt;">$2,250</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;letter-spacing:0.2pt;"> for services related to the Company’s initial public offering, which is included in direct offering costs and recorded against offering proceeds in additional paid in capital in the Company’s consolidated balance sheets.</span></td></tr></table><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="width:39pt;"/><td style="font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">●</td><td style="padding:0pt;"><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;letter-spacing:0.2pt;">$1,000</span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;letter-spacing:0.2pt;"> for services related to the execution of the New Credit Agreement, which is included in debt issuance costs and </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">recorded as an offset to long-term debt </span><span style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;letter-spacing:0.2pt;">in the Company’s consolidated balance sheets.</span></td></tr></table><div style="margin-top:12pt;"/> 478000 579000 1000000 2000000 2250000 1000000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:18pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">19.</b></span>RESTRUCTURING</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">During the year ended December 31, 2021, the Company initiated and completed a plan to consolidate operations in the U.K. and incurred and paid $395 of restructuring changes.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt 0pt 12pt 0pt;">Restructuring expenses are included within restructuring and transactions costs in the Company’s consolidated statements of operations and comprehensive income.</p> 395000 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-weight:bold;margin:0pt 0pt 12pt 0pt;"><span style="display:inline-block;text-indent:0pt;width:18pt;"><b style="font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:bold;">20.</b></span>SEGMENT DATA</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:18pt;margin:0pt;">Our operations are comprised of two reportable segments: Product and Distribution. Segment information is consistent with how the chief operating decision maker (“CODM”), our chief executive officer, reviews the business, makes investing and resource </p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 12pt 0pt;">allocation decisions and assesses operating performance. Senior management evaluates segment performance based on segment profit. Each segment’s profit is measured as gross profit. The CODM is not provided asset information or operating expenses by segment.</p><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:51.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:51.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:45.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year ended December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Reconciling</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    Product    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Distribution</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> Items</b><sup style="font-size:6pt;font-weight:bold;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">      Total      </b></p></td></tr><tr><td style="vertical-align:bottom;width:51.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net sales</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 385,423</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 97,106</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (24,692)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 457,837</p></td></tr><tr><td style="vertical-align:bottom;width:51.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cost of goods sold</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 230,245</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 76,633</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (24,719)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 282,159</p></td></tr><tr><td style="vertical-align:bottom;width:51.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Gross profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 155,178</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 20,473</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 27</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 175,678</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:12.25pt;margin:0pt 0pt 0pt 7.2pt;"><span style="margin-bottom:12pt;margin-left:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80.25%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:51.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:51.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:46.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year ended December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Reconciling</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    Product    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Distribution</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> Items</b><sup style="font-size:6pt;font-weight:bold;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">      Total      </b></p></td></tr><tr><td style="vertical-align:bottom;width:51.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net sales</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 362,189</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 90,043</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:middle;white-space:nowrap;width:8.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (24,944)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 427,288</p></td></tr><tr><td style="vertical-align:bottom;width:51.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cost of goods sold</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 213,881</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 67,649</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (24,932)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 256,598</p></td></tr><tr><td style="vertical-align:bottom;width:51.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Gross profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 148,308</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 22,394</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (12)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 170,690</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Reconciling items consist primarily of intercompany eliminations and items not directly attributable to operating segments.</span></td></tr></table><div style="margin-top:12pt;"/> 2 <p style="font-family:'Times New Roman','Times','serif';font-size:10pt;min-height:0.0pt;margin:0pt;"><span style="font-size:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:51.81%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.49%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:51.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:45.86%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year ended December 31, 2022</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.42%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.65%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Reconciling</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.79%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:10.1%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    Product    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.67%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Distribution</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.65%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> Items</b><sup style="font-size:6pt;font-weight:bold;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.95%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">      Total      </b></p></td></tr><tr><td style="vertical-align:bottom;width:51.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net sales</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 385,423</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 97,106</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.49%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (24,692)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 457,837</p></td></tr><tr><td style="vertical-align:bottom;width:51.81%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cost of goods sold</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 230,245</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 76,633</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.49%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (24,719)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 282,159</p></td></tr><tr><td style="vertical-align:bottom;width:51.81%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Gross profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 155,178</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.25%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.42%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 20,473</p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.85%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.49%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 27</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.31%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.79%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 175,678</p></td></tr></table><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-indent:12.25pt;margin:0pt 0pt 0pt 7.2pt;"><span style="margin-bottom:12pt;margin-left:0pt;visibility:hidden;">​</span></p><table style="border-collapse:collapse;font-size:16pt;height:max-content;margin-left:auto;margin-right:auto;padding-left:0pt;padding-right:0pt;width:80.25%;"><tr style="height:1pt;"><td style="vertical-align:bottom;width:51.51%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:middle;white-space:nowrap;width:8.46%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="position:absolute;top:50%;transform:translate(0,-50%);width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;margin:0pt;padding:0pt;"><div style="height:1pt;overflow:hidden;overflow-wrap:break-word;position:relative;"><div style="bottom:0pt;position:absolute;width:100%;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:1pt;visibility:hidden;">​</span></p></div></div></td></tr><tr><td style="vertical-align:bottom;width:51.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="11" style="vertical-align:bottom;white-space:nowrap;width:46.18%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Year ended December 31, 2021</b></p></td></tr><tr><td style="vertical-align:bottom;width:51.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.39%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.62%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Reconciling</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:middle;white-space:nowrap;width:8.76%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;font-weight:bold;visibility:hidden;">​</span></p></td></tr><tr><td style="vertical-align:bottom;width:51.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="font-size:8pt;visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:10.07%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">    Product    </b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.64%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">Distribution</b></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.62%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;"> Items</b><sup style="font-size:6pt;font-weight:bold;line-height:100%;top:0pt;vertical-align:top;">(1)</sup></p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td colspan="2" style="vertical-align:middle;white-space:nowrap;width:9.92%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:8pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;"><b style="font-weight:bold;">      Total      </b></p></td></tr><tr><td style="vertical-align:bottom;width:51.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Net sales</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 362,189</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 90,043</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:middle;white-space:nowrap;width:8.46%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (24,944)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:center;margin:0pt 0pt 0.05pt 0pt;">    </p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 427,288</p></td></tr><tr><td style="vertical-align:bottom;width:51.51%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">Cost of goods sold</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 213,881</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 67,649</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (24,932)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;border-bottom:1px solid #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 256,598</p></td></tr><tr><td style="vertical-align:bottom;width:51.51%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 6pt;">Gross profit</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.3%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 148,308</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.24%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.39%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 22,394</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.46%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 0pt 0.05pt 0pt;"> (12)</p></td><td style="vertical-align:bottom;white-space:nowrap;width:2.3%;background:#cceeff;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;"><span style="visibility:hidden;">​</span></p></td><td style="vertical-align:bottom;white-space:nowrap;width:1.15%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;margin:0pt 0pt 0.05pt 0pt;">$</p></td><td style="vertical-align:bottom;white-space:nowrap;width:8.76%;background:#cceeff;border-bottom:3px double #000000;margin:0pt;padding:0pt;"><p style="font-family:'Times New Roman','Times','serif';font-size:10pt;text-align:right;margin:0pt 3pt 0.05pt 0pt;"> 170,690</p></td></tr></table><div style="font-family:'Times New Roman','Times','serif';font-size:10.0pt;margin-bottom:0pt;min-height:1.19em;position:relative;width:100%;"><div style="background-color:#000000;height:1pt;position:relative;top:0.6em;width:25.0%;border:none;margin:0 auto 0 0;"/></div><table style="border-collapse:collapse;font-family:'Times New Roman','Times','serif';font-size:10pt;margin-bottom:0pt;margin-top:0pt;table-layout:fixed;width:100%;border:0pt;"><tr><td style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;vertical-align:text-top;white-space:nowrap;width:18pt;padding:0pt;">(1)</td><td style="padding:0pt;"><span style="color:#231f20;font-family:'Times New Roman','Times','serif';font-size:10pt;font-style:normal;font-weight:normal;">Reconciling items consist primarily of intercompany eliminations and items not directly attributable to operating segments.</span></td></tr></table><div style="margin-top:12pt;"/> 385423000 97106000 -24692000 457837000 230245000 76633000 -24719000 282159000 155178000 20473000 27000 175678000 362189000 90043000 -24944000 427288000 213881000 67649000 -24932000 256598000 148308000 22394000 -12000 170690000 EXCEL 117 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( .*(;U8'04UB@0 +$ 0 9&]C4')O<',O87!P+GAM M;$V./0L",1!$_\IQO;=!P4)B0-!2L+(/>QLOD&1#LD)^OCG!CVX>;QA&WPIG M*N*I#BV&5(_C(I(/ !47BK9.7:=N')=HI6-Y #OGDK7A.YNJQ<&4GPZ4A!0W_J=0U[R;UEA_6\#MI7E!+ P04 M " #BB&]6!54-3N\ K @ $0 &1O8U!R;W!S+V-O&ULS9+! M3L,P#(9?!>7>.FW9#E&7"]-.("$Q"<0MG_$(P>"' M.1*44J[!$QMKV, $S,)"%+JVJ#"2X2Y>\!87?/B,S0RS"-20IY83%'D!0D\3 MPWEH:K@!)AA3].F[0'8ASM4_L7,'Q"4Y)+>D^K[/^VK.C3L4\/;T^#*OF[DV ML6F1QE_)*3X'VHCKY-?J8;O?"5W*LLIDE16K?5DHN5;WJ_?)]8??3=AWUAW< M/S:^"NH:?MV%_@)02P,$% @ XHAO5IE&UL[5I;<]HX%'[OK]!X9_9M"\8V@;:T$W-I=MNTF83M M3A^%$5B-;'EDD81_OTV23;J;/ 0LZ?O.14?GZ#AY\^XN8NB&B)3R M> +]O6N[!3+ MUES@6QHO(];JM-O=5H1I;*$81V1@?5XL:$#05%%:;U\@M.4?,_@5RU2-9:,! M$U=!)KF(M/+Y;,7\VMX^9<_I.ATR@6XP&U@@?\YOI^1.6HCA5,+$P&IG/U9K MQ]'22(""R7V4!;I)]J/3%0@R#3LZG5C.=GSVQ.V?C,K:=#1M&N#C\7@XMLO2 MBW A(5M>5 TR M6'!VULS2 Y9>*?IUE!K9';O=05SP6.XYB1'^QL4$UFG2&98T1G*=D 4. #?$ MT4Q0?*]!MHK@PI+27)#6SRFU4!H(FLB!]4>"(<7K;YH] M5Z%82=J$^!!&&N*<<^9ST6S[!Z5&T?95O-RCEU@5 9<8WS2J-2S%UGB5P/&M MG#P=$Q+-E L&08:7)"82J3E^34@3_BNEVOZKR2.FJW"$2M"/F(9 M-AIRM1:!MG&IA&!:$L;1>$[2M!'\6:PUDSY@R.S-D77.UI$.$9)>-T(^8LZ+ MD!&_'H8X2IKMHG%8!/V>7L-)P>B"RV;]N'Z&U3-L+([W1]072N0/)J<_Z3(T M!Z.:60F]A%9JGZJ'-#ZH'C(*!?&Y'C[E>G@*-Y;&O%"N@GL!_]':-\*K^(+ M.7\N?<^E[[GT/:'2MSAD6R4)RU3393>* M$IY"&V[I4_5*E=?EK[DHN#Q;Y.FOH70^+,_Y/%_GM,T+,T.WF)&Y M"M-2D&_#^>G%>!KB.=D$N7V85VWGV-'1^^?!4;"C[SR6'<>(\J(A[J&&F,_# M0X=Y>U^89Y7&4#04;6RL)"Q&MV"XU_$L%.!D8"V@!X.O40+R4E5@,5O& RN0 MHGQ,C$7H<.>77%_CT9+CVZ9EM6ZO*7<9;2)2.<)IF!-GJ\K>9;'!51W/55OR ML+YJ/;053L_^6:W(GPP13A8+$DACE!>F2J+S&5.^YRM)Q%4XOT4SMA*7&+SC MYL=Q3E.X$G:V#P(RN;LYJ7IE,6>F\M\M# DL6XA9$N)-7>W5YYNTB42%(JP# 4A M%W+C[^^3:G>,U_HL@6V$5#)DU1?*0XG!/3-R0]A4)?.NVB8+A=OB5,V[&KXF M8$O#>FZ=+2?_VU[4/;07/4;SHYG@'K.' MYA,L0Z1^P7V*BH 1JV*^NJ]/^26<.[1[\8$@F_S6VZ3VW> ,?-2K6J5D*Q$_ M2P=\'Y(&8XQ;]#1?CQ1BK::QK<;:,0QY@%CS#*%F.-^'19H:,]6+K#F-"F]! MU4#E/]O4#6CV#30,9FV-J/D3@H\W/[O#;#"Q([A[8N_ 5!+ P04 M" #BB&]6>9%!4HD' ",@ & 'AL+W=ORT,R'X+81T$V8HA)8V+TQ(V\GN[ =A"_#$MEA9#LF_ M7\DV&'?EB[TCOB08?(_M!TD^1Q:7&\J>XQ4A'+V&011?M5:U/6OZ0)#_R(3!F* MDS#$[.T3">CFJF6VMF\\^,L5EV]T^I=KO"0SPK^OITQL=78JGA^2*/9IA!A9 M7+4&YL>18\B"=(\?/MG$>Z^1O)0YI<]R8^)=M0QY1B0@+I<26/Q[(4,2!%)) MG,<_N6AK=TQ9N/]ZJSY.+UYM7@MY9(&3@#_0S1>27]"9 MU'-I$*=_T2;;UW%:R$UB3L.\6)Q!Z$?9?_R:@]@OL"H*K+S ^J7 K#J"G1?8 M=0NH;=3/?M_HO]K,(\Y$QWC;Q7[3-M1:\O1XF.\QBZY M:HGA(";LA;3ZO_]F=HT_5-QTBHTTB968.CNF#J1>,'U\6Q,5-KC<--K?5'S MJJ9\-(F5^)SM^)S5XS.(H@0'Z(&L*>,J4+ .9XD*[Q"L:@I*DU@)5'<'JEL/ MU)0PG\K^Z2$QP"K;U &E[:!5.6J!]4VA:1(K03O?03NOV?L8%LX@'<6J6QBL MM&<,!4E6,,PS+9C="]Z*E)@ M:5-2FL1*I"YVI"[JD'H@2U_>$44#N\.ALBO".L/!Z.$:?;F_&4WN/L].T.1N M>*H"!ZHT!:=)K 3.- I[9]1!-XEX#NNBG"DN,;)36M:4&76IE: MD1=,V.C_VN*F-.:BP_WIKZOO&;"B;5FFTJ[ =8VY'2,]F$5\,&'7G_;, 2.X M&A,L<&$X2DA:PX(NM3*D(BZ8L,>_H:X_U'GXND0!?(M-[//Z 9<1,F6ID2&:PTI&$H#,R,4_?Y!+TS3@V1 M(^1-%/W 04+0FC T6V&FOBEHC16ZU,I,BV!APHE !%7/CY9H]A;.::!$>2!2 MB$2AI*0U0^A2*\^Z%B'"@FW^MJFAZU=WA:,EJ(X40]R!S3OJ!*;UJB@2ZV,K8@*5JVH M\(,&(I)BEDV,L%@)"U:J@*4U".A2*\,J@H!5*P@,$\;D?%LVR98.9,+6)FIH ML.(3454-X:K&U(X1 :PB EBU(D":';,'CG).%V\Q*JG!BE74M$8 76IE:D4$ ML&I%@+0[HJ%(34O*E*[C@,X=C=K8=8F0$2)>)JBDIS4(Z%(KTRN"@ 7[^)S> M+,1!@#XEL?@X5O=/6*?JB0M9@P4IJ6H.!+K4RM2(86+4>)%R_[C]WR9Y;*9'!:I4/7N"ZQLR.8?RM MPOA;L&^?#,.%",?( 7:1 ^Q:.6":S /?%>V*8J7#@%4:K^30&@ER MM;-432XA>^G;W:[3NW!,Y[+SHL)3^'V[EM\OST6DLPXQND^XZ(^1C.9*9#JM M_#!7Z^Y?Y+EM6]:YN;O&',?T M^92L8(G]YT5X+0Z>EUJ97"%H[=K.?JA2(P,!R)->N05?2/J&R$L M)>==>UWCS%$M1QS"Q8VI'EUH96^'M;=B-[Y94[7,;BS>5&?* 6-4"-+BL,;%C.'N[?ANL8+9[7Z M^<[>HGDYWY#^^"!&KEP1E:V?W[V[^X'#(%W6WREVSWX=<8OE=$6, K(0I<;I MN;A!L>P'!]D&I^MT"?Z<CV;1Y=EO/IF*M"EZQVQK( M=5G2^O$#*\3V-H.15^TD?=H4X<$#!@ />.>#G.I"= VD2;9$U M:5U316?36FQ!;:QU-'/1U*;QUMGPROR,=ZK6WW+MIV97HI*BX#E5+ @2]+L9:TRN5THO2;C?\DV[WE0_L6//"6:Y9= M (+& $.,'>Y7SW='Q^X3G>\^:;Q/&C?QR%#2Z[IFE0)42IVG*YW6/W#[FZ'U M3JYHQBY'>NQ(5F_8:/;S3RB"O[J2>Z5@1ZF2?:K$%WUV1>42Z!\-9.:"_;OF M&UKHW)U9MZ'")I09_YM9$.(DFDXVA^G85H0D8;RW.L(9['$&7ISOLTRL-2P] M-61,8YP7; PJIEPPVTC1 8 H" \ M#!MJR A0>"&&>YAAEZ8-]5&%T_4G#D+ M&%KOC"&.20^9;161-$[(9A4[M7SF-(4IZI7:8A6F:#!0; MP8YVX(EVU4JD5H_-W&2FI976!FIPR.^B1;VI*>RA=9@1 H=Z%QV0)/)WK\9* M%:_N0<&T9O"4=1?H$$$2)&D?I_=U/T@)J*,_Y*4Q2'5N%MJQB&Z4#=._)"?O:ZJ12M[KDF@Y,PB04@A%%JX;3- AR@< !HQU[( M3U^_"Y%O>5$XH=E,E* P[M.JPRR*<(0'H'6,A?R4U)G2<6"TSDON!H@?N1E MOY?2PFM%.\ZY8T)T@@J?M-B*/AHAYDS805TD@%93VV8H)7B XU!'ZS+3R'%A3X([FL)_FCC7;B9[&-H7%28HMK ZS M(,(#P@UW3(?]3/?Q=#%M(D,D#BS"<]D%48B&AEW'>-C/>!U$T=-MITIKDUR0 M1GT-X7_[#\[.N*-,[*?,(_%V*B$'+8:PK_$=5@BG PMZW%$G?LZ2[Q1">RV' M4-JG=X=5C >4$>YX#OMYKAUVIP ZB Y',+(@NNP("H>ZN:,Z[*>Z*U&67)G5 MD6PWP L((=(*H@8; M6JS9&" XUH_,'Y!+JE$ NE9+4?/O+- [TR)EJ+(62U_\377 MJVX%OU:TXZ0/-H-/[ ;KN41K(D]GI=[6(O&8$#S&,6J:A01CDI"QII37[+@Q MT)%6K#G?*1[=_>=8QO=WJ6V3@6T@TFD?ZSFO0$977+.( M$Z2M;S",PJ"_^G#8(1Q'<( Y2*>#B%\'Z472NEP7S=&.:/=?1:G[:FE.X38, M\'9YS@,< M!WU![+(C,0P'9 3I= [QZYQ61LCGSB<.P1.%26IUA6V7)-%!\QRC[40/>:'H M&8.RQ['-L'QV/HE]'.3:H7'9N79H)@=GF>8@^1.M[WDEM8!?:$=X$>L(=7LV MV]XHL6J.-^="*5$VETM&-6QCH+]?"*V0=C?FQ'1_0C[[#U!+ P04 " #B MB&]6\K!Q*[\" #6"0 & 'AL+W=ON%AVU"&?&3PE;MM)&U M\B#$H^U\2^8.MD3 (-96@IC+!A; F%4R'+]K4:>9TR;NME_4OY3FC9D'HF A MV"^:Z'3N3!R4P(H43-^)[5>H#8VL7BR8*O_1MHH=A0Z*"Z5%5B<;@HSRZDJ> MZ@>QD^ -CR3X=8+?-R&H$X+2:$56VKHEFD0S*;9(VFBC9AOELRFSC1O*[6N\ MU]+RNGT/LED[QG-CW&^,^Z5><+GQ M+F^5V+!;S*ZU:Y63&.:.64P*Y :PV35T-JR%.FQ0AY>A5J6' M2*%3(>D?2+J0*\WQ#HN'J]\>=(_ %O:HP1Z]"ILJ570CCPY(]EE/1;0@QPWD M^%60YDNO-.$)Y>LNTO%9TE,1+=*P(0U/DBY$EIGO?9]J#?M5Z]FP%N>DX9Q< MP-FK5">'%3CMKM4^D2WJ:4,]O9SZ>*5.#SB", A\/]Q_QAV!PV 2!*,CO![^ MMV'ARXG/E&TMV8.[*[(;W-W9=.V)YSN1:\H58K RJ7@0FC4KJT-$U=$B+_?A M!Z'-KEXV4W/P FD#S/V5$/JE8[?VYB@7_0502P,$% @ XHAO5JAEJ%5* M!@ XQP !@ !X;"]W;W)KQ$]54N.5?H:564\GJT5&I]-1[+=,E73%Z*-2_AG[FH5DS!8[48 MRW7%658W6A5CXGGA>,7RR]9ON*ES$6)*CZ_'KW#5S,:Z :UQ9\Y MW\F#WTA3>13BJW[XD%V//(V(%SQ5V@6#KRV?\:+0G@#'WZW3T;Y/W?#P][/W M]S5Y(//())^)XDN>J>7U*!ZAC,_9IE#W8OL-C;\?&M_E M??H[U"?)"BYM+)NF0=U45Z'MU ^BF$:>YTW&VT,*%DL2D3@^M.SA"_;X B>^ MF9!*QVDA1"811#&S 6U\A ?=DYC@(#&!6BR#,$B&@89[H*$3Z"^5D!*M*S'/ ME0UB:'2,HR",8A.BS=(+-98N2G3C M/=W8&9$'4"0@^Q8M> G$BWJ"LPQ*=RZ5'HBM=6K'YO ']"B5&W(62^PG(1D, M5+)'GCB1WW, N$G5IM+!TK !;RE9H[TYR:QZY)E#Y]OF@L4PB))AJ =BBYU0/ZDEK_:9D0\6^M;- M(8 +:V%Q]_N=!*)?7?=K'/%EXV"VYOVG%A8+(GW06;7*YU,LZ MO5K(^*-5A-T.7QTH4ZFA-N# P:V3:NR4QG[.O44EM_.)+ BP;8%FLTS\:!AI MI[+8+;-MY3D-KRF9%U$C/L=X+9:4!,2!N%-7[);7=L?TR&'OS?62;9O7>V%X M;$L14NQIH'::XIG0R$; -,0)3H87!Z236>*6V;M7(2:FA%[ LL "V689!G2X MUI-.;HE;;O4V8[C*MXT/MP]!3#P+0M,0DS!T(.P$E!!GD>\0(M E))>LXE=6 ML$XA?FT-.9>W/NM.@XE;@V^8S%,KRZ9=?##2WB4.C^-AL_+]@5AT@DO9 EHT$9)!X57)F0@1)UN$K=N MNE+'E$# 1PB-#'RFY0OX.K4D;K5\H1#&IQ9"T_"%0MBI(TE.6.VFO8.P!K$] MMYU:^^K ML5)3/$/?]\W060RC<'A90SN-I6Z-O>=IP:3,YWG*FH/Y[*^-5,U1IUXIU%1T M+(M-!@SSLF95P"JZQX_8^5DVPB&V;-DMAM@/A_EU"DU/V>)NNA U?(!H_KQE M@?TD%.4=6_<86>F8&UN8:98-C,4PP728SL&9M%MZW\/B,U^4*-U4%2_3;\T9 M3V&$KA<;:H^-N?>]P#&Q[.E8V43Z8LH$1LU-8F)#;1IB&O;Y-;C'!]=%*UXMZELT">.X*55SV[)_ MN[^I>U??3QV]O\%7L^:^K7/37/]]9-5"3Y."S\&E=ZGORZKF1JUY4&)=7TH] M"J7$JOZYY"SCE3: _^="J.<'W<'^7G/Z+U!+ P04 " #BB&]6JZ07GN<" M "S!P & 'AL+W=ON2"SWP"F.J&]_7:0$EU9>R H%?G';7,J(:1Y#]89HJ!=^V1#'*Z MX&8B5U^@T=.S>*GDVCW)JHD-/)(NM)%EDXP,2B;J-UTW==A*".-7$J(F(=I- MZ+Z2T&D2.DYHS*@8_PCL16FZ;6FZQ]"31X&&Q-EO M+$PA><;$G,S1D/0Y$>AK6"!#UP36Z&3Z8"%J])Y#MS:V3**P>]WWE]L"#P3U MXC;F!>]>R[MWE/<$4DZU9CE>AMJDLI]XA>MS1<>M5>#%2/D"_VE[0QI!K+Y. M5M?I# 3DS)P=4UCSB+?(7T1!O*-P/ZC[X;# N!48'Q6(SHF^*-"8%%[[])D8 M187F>V+?>E#QWAGTKJ]V5.S'1-T=%?Z6_Y6@YJXM:)+*A3"U/[2K;>>Y=8:[ MLS[$CE0WD+\P=3M[H&INSXY#CI#!Y1424G6+J"=&5LYE9]*@9[MA@5T5E W M[[F49C.Q&[1].OD#4$L#!!0 ( ..(;U:J#%JE @D + J 8 >&PO M=V]R:W-H965T&ULM5IM;^.X$?XKA'LH=H'U6J0H64X3 TGV MMEV@MPTN=^UG6J)C=B71)]).TE]?DE)$O5!,G+I?$EL>CF8XPWF>&>GRD5<_ MQ(Y2"9Z*O!17LYV4^XO%0J0[6A#QF>]IJ7[9\JH@4GVM'A9B7U&2F45%OD!! M$"\*PLK9^M)I;XM62\8*6@K&2U#1[=7L&E[<1H%>8"3^R>BCZ'P&VI4-YS_T MEV_9U2S0%M&:E!U_-$IG[3WUPN[G%^U?C?/*F0T1]);G M_V*9W%W-DAG(Z)8<F-7* M&U;J,-[+2OW*U#JYON6EX#G+B*09N)?JGXJ1%(!OP2T1._!5Q5F .?C]_@OX M\--'\!-@)?AMQP^"E)FX7$AE@]:T2)O[W=3W0Q/W@PC\PDNY$^#G,J-97\%" M&=]Z@%X\N$%>C5]H^AF$\!- 4(.@V[?OAQZS G;#0V-OG!J0^VN?:UX ?ZQ MIQ61K'P USICF6147+CVK5:+W6KU:;X0>Y+2JYDZKH)61SI;__E/, [^XO+Y M3,IZ.X#;'< ^[>OOJOBP,N4%=;E9KXW,6EUCCNLH0<'EXM@U?RP$41S#5JIG M5]3:%7DC25EOM^)VMV)O%+]0I31EI"ZV909(P2O)_F,NN#ROU<7=F$5Q! >1 M=4B%2YBX([ML;5UZ;;WNF*8K%Z_8 RM)#I@0!PHR)E)^**5Q(Z,;V5Q/N9#. M$K8<&;G$PQ0=RX1P%;K]2%H_DI/\8.5192NOGH&0=#\_[%W&)B-#,(JB@;7> M^[XSDU:M5RNO5W_G0N%)">B3/D ')G;Z#&K_="Q<+GGUG7J(5HZ\A)T-ZOD$ M XN;P2OG8TNK2E6'E\I!GJ@;#X.1 7,8),M!A!QB>+E$$V9VX!UZS;R7//TQ MUT0G4_E>*/8G)D]PHZJ?TTF4#"UUB$WN)[*&(J^A?U644V>)(*HBJ]S8LB=E M,A&"NL]HHZZ_K1&5CJD@JE\MQ@/_2!_:TP3FJ5V,-MDD2G_.2,;EAO\ M_F2@7I?90J6 ^432/U1]8OJ N.$=GA7?SZ6MOU<6X:$?XJ_?F'-CS)Y#&(7Q M,* ..1SC"=8&+;A#/[I_:U"03=37,1)#&*.A<6.IN2INJPGC+&)#/V3?571/ M6*8.A2ZMM$XR+G>T\M6N,6;/ETLXY$HN,1S%>,)FB\?0#\AMW/?D60>]8W/G M>#@-'X-IA#NLI[%[+(66'8[?;_,LXB(_XGY_*S%W68X<\!KC8#4PW246!*N) M+4<6AA$\J2O4.2W>TA4B+[R?6G#.I:V_"Q;CD1_C[PZ5@@YA\%T%485./IOD MHZKL[C4K=&Z! ^DQ[L2D\8L]KA#C1"Q=R M#T^\WY3WQL11%>%@?_%:\ MUTM+$9 75FT=.0A#WTV;)=Y20R*'?ZL8#8'0)>?)1(O7*#ZIB'Q5/6Z9OJ6( M>'G R47D3-KZNV#I /+3@?YYK.B1YT>]!ZG*2B;!EJ0> $-C&H##(!BV#0XQ M%"U7R12&6;J 7J,+JEUD>Y)K[&TFK>7)3KAX@U9^WFD:.=7R5+&+M="BV["/WLPAT9OVNAL[6'<%@07'(HCKL1 MZUMM>47H;^_[@6"E.%2J)%"%2[1@AT)UT4V)<)KO:.17R9 2.:2B $Y9;KE M^ H7<.[WJ1ZXJ,$J&I)_EU@83,V3P\ZH_Q5J4%M>@^.>2>5,3A6_<2>+HRM' MPSF=2PA/3!5#B^NA']?O7G983R': :C9YLD9J%_ER<\C'-0 J8,[X9G%\M"/ MY7>=W'G[?-&O]&3?''"/46?>T??-PGWH;\]_TQ-%8+I+15)27I;-H\]')G> M%ONGH+MK%00J O$89.S M5 5T2U71>&@)Z:',:/58,56DVQF_VWGO74^.]Y@<)"%&4]7$6(Z _1SA9Y40]6!V.YP]5T36 M@_.Z*U7=M_F@6_ CR>G$@0GH.H@\O=1V&,_&&81,.G M 0XQE"PGF ^V_ #[^8''?JJ'GE[+Q[B.(Y0,R;U#K.]@WW0+_]C?[=\?]OO< MO(VC(/"+*O,Y5]R8#M[,^5;6KW(IW'>V_OBLK?^YM/6WQ-(#[*<'QF]#B#21 M[3YX-=CH]-_Q="!<#6FW2PI&4V?>(CKV(_K07@785+C-'"-U#,=P,9:"81A. MU5F+P'CUWE3[SLNY<<-.K/5Q>O/H"9^U^S^7MO[[0Q;_(S_^7Z=I=2!Y_9"' M#)^BZ!B_M('F<5#&I-I%9UEO;M1[PVDY;%M=0JMA75ETWOTK:/5@7HD4P-A6 MOT377FU?N[PV+QL.KM_ B]OZY4FKIGZ7\Q=2J5(O5&^[52J#STME456_'EE_ MD7QOWC#<<"EY83[N*%$D50NHW[>BOMTE!EI+P@+L(VC:[6'8 R/1ME9)=$7:;O[]2%FQ+(FF MHI88FH=8LNX]E[R'O"1/E.L#*3_1#<8,?,FS@MY,-HQMW\QF--[@'-'79(L+ M_F1%RAPQ?ENN9W1;8I143GDV,PW#G>4H+2:+Z^J[NW)Q378L2PM\5P*ZRW-4 M/K[#&3G<3.#DZ8OWZ7K#Q!>SQ?46K?$]9A^W=R6_FYU0DC3'!4U) 4J\NIF\ MA6\BTQ,.E<6?*3[0LVL@NO) R"=Q(FS3"#Q=GRN M02>GF,+Q_/H)/:HZSSOS@"A>DNRO-&&;FXD_ 0E>H5W&WI/#+[CND"/P8I+1 MZC._,6Y&EQ_$1?ZD2<.4#K@H-9.Y@=!YX9N8-5.U@=!]N] MX#G8WPJ4^.+6#\]P^N+6#6^7^F*PJTP%B:'%=D@,HA35'$Q<5794W3W!: MB)%USTK^-.5^;+$D!259FB"&$W#/^ @+0 'S9D1U&1T.L9XXT1D+.X#OSN&-B\&#C/^ MJKW?)DDJ1B;*P!U*D^EM 99HFS*42;"" :PXWN6[K,K 'VR#2\#;QJ?I1LR? M/0:W14QR#%[^2BB]DL"'SX'8%W#> MH0P5,0:( =Y3\(#7:5&DQ5I\$>#X-;#@*V :IB$C] CM5-"B8NT7UO5L?TY: MW\+V7<]H6P5]JZGINQVK4&)EN7/7;)M%?3/?=^#)J)4EZY0EZ^NR])*/>2JF M!;UZ5L:.8=RSQIF>[5N6T^GL4MD>L;J\H5L4XYL)'Y<4EWL\6?SX W2-GV7# M72=8J!,LT@36(M4^D6I7Z-8%4ODTYDLOY1.9TU9=78D25A6@NLK]]%3F_GY/ ML@SPI>N RN0?&;.VQK0L=8(%.L%"G6"1)K 6^\Z)?4ZX[E.)VJJ#-@J!,L4K>^Q00TFA.UH>2";QMQNB[XZ;TL<1$_ E:B M@F;HJ*0D__)#?77&EIZ9E=!CR=&*%M1HK6QU#VU:(T;JB&UZS@0/J*1GN4'% MNMIWK%!:@CW*=M4"QE>G=(^$SL6?45;N+I.D##":))UH08UVGK(YM+HLZ0P9 M#81LT]0(%7"44L%7F>Z)&TJY&18I:I/V!M=S#;=3MB1V4SB'7C>9$C/+,YRN M4"%IF>^[]J7QW&@5<)18(1*ED"GD2>OK%)9MR70*=5M&#U:M2H56M.@Y.6DS MU@@1\/]4(J!6*4(K6J 5+=2*%NE":P^"1H^ WR)(J)U'DZI5DM"*%L*^W.#X MIM$MGDZO>+:LVB0TH@3\[E2)ND7G/8'=(ML_K#N6Y?76)ZUJ@U:TZ$(7O N$ M-8(#_ X5!]B7'$S'D4@.ZL:/GF=:10>M:)$NM/8P:'0'J$-X4(.,+J):I0>M M:"&4J0K0,>;=,CIHUR:DD1^@/OU!#36:%LD9WO#ZFWFM(H16M&BP"^T_]39" MA*D6(I:M LE+'B>GJHD Y]N,/&+M:*%6M$@76IOE MLS80GX482J7@F_1^-?3H>:I5O*G1NB.MLU"'6H-&@T';)#5RBZF66[Y= M]5<'&$V55DG&E(HH;I\N8S,[OROX2JZEM>G;W[[T2.^@Z_OS2RM-((:9:"AFG^\N3UAKEJ5#:UHT7-R<5?CM<+?[].\%B_\ 4$L#!!0 ( ..( M;U:R$-]H+2@ "^ 8 >&PO=V]R:W-H965T&ULS5WK M<]O(D?]74+Z]E%T%T7K8\FMWJR39WBCGM5V6G:W[" )#$FL08/"0Q/SUU_WK MGA<(2MHDE\H76R0Q,ST]_>Z>QH\W3?N]6QG3)[?KJNY^>K3J^\WKIT^[?&76 M63=K-J:F7Q9-N\YZ^M@NGW:;UF0%!JVKI\>'AZ=/UUE9/_KY1WSWN?WYQV;H MJ[(VG]ND&];KK-V>FZJY^>G1T2/[Q9=RN>KYBZ<__[C)EN;*]-\VGUOZ]-3- M4I1K4W=E4R>M6?STZ.SH]?DS?AX/_+4T-UWP=\([F3?-=_YP6?STZ) !,I7) M>YXAH_^NS86I*IZ(P/B;SOG(+4O'R_?7UZOEQU^2SY\^7%Y5<7IH@G>$K0.1"/+8CGQW?.^-;DL^3D*$V.#X^/[YCO MQ&WY!/.=_.NV+!,^FYZ0^>9UM\ER\],C8HS.M-?FT<]_^J^CT\,W=X#[S('[ M[*[9_Q%P[Y[P:);<,V?R,>N'UB3-(OFT,6W&_-,E65TDYUE7=OS]9]YHW>.G MY"(KZ.D_-U51ULLN32[K?)8F;Y^>/SU+OJY,()?VF;8)(][^O9/ M__7R^/CPS46SWF3U%I^.WJ3N:YYS_.7-SC=#Y[[AZ?7;9FCUZR?T??+65-E- M1B#F3;MI9#]I,C?+K$X:OT':R=F&X$R.CIG8CHYG@%X!3),5";V_#5G;F]84 M25DG?\GR[UU37Y=59=+D?=6T99&E"6$H2Y95,\^JI*(QIN6'UUD]+$@(#2TA M"< 69=>WY7SH^8LN6YA^B^^[H;TNK[-Y697TS:9MBB'O!?\-(:XE85AE/8'@ M?B+AG#!*:9N)J>E3;DAP]FFR*-NNI^>[35,S'#S'FNG(]@W=)*TZ$W9KVA?O.ZWV14=^*_FMLR;E,BASA@/ M^*4N&=+_H7%%LR;2Z+.*4/F^S>K< )P/-,V0U64F)T@"N^J2DN9WNR.Y7A4D M%HT#B7\NRI8D.^&M,D! 3D?@,4IGF:^RNC;5"-7TPX:.L#8M$6H#YDA(RA** M9'W:4UL<\"-;QAM!0T_.B-[+.B\WO!91_P612U/186,^1E^6YT(FC*#<_4Q; M7Y0U[;4D6NB(77 N7;+*K@GEQA PK:'%A)YXDK8 9ABY0&NR- 1K5E5;_MEL M>$I^;JA!-AL/UV,E_E_.SCXK]2=$%_HMY@I^>H+=TN!J &*-G54V.,'1,H#/ M8]40. ?-36V86.==693$WX;0=%95-"G4NRP7;O,H,%5) MF@W((B3D(6Y)5/5-_CVYVA#-$A3)7P9"!"F"(R$OY.(9,X-8=,^^QMMM67:LZ@Q]L&E/*BPIQ:)6<=ZOJP%/E[V+\-Z M0Z?9]LFGH4W.+>M<\5?#IDO.B# )BRQ#(EGWET_G5_RC/0-"6$<8S%=I*=I2PP8T;("L*/0K7G'+=)3K_UV7?#2Y/, M)BL;Q\,K]X;-,V')4L2B(>HJ0'AR&#PASJ,FX[IAM4/PQ^*'3J8N"&M0(B5D M-CT#<[LB>[^["SA"4T&*;"O'732"4H(O-ZU@;V*=A+^H:$C3F>#;FV:H5#O> M$(Q@!:Q \O&:2,]3]HSY'[('GH$07W:=T:1D-9"\OQ81W\?;4?*R# S&S5A! MD/4/YKTA(T!)FV7B[ZR;:.8'H(Y(''-WV9H8ESP>%CC_%/="HY-W0UHMY5T] M0"&MZ1P4>DS36C$BF.93B8$(^77_)@F!-?V=6PD%U$:[LK*;N8#A(^"_R8+O M.D(&+!%6L*(GL]X?1F<>L"]E3-Y@G0G_\*[6S!3&+0#&[L@Q56DK: 9\\KXQL@IOPQ+:Y&;$/ID&AY!OZD%, M*G/+PH0F+L1@\V-P)N#S&9/Q0/,+#7<$)K-04=*N6R?8N@!+L^1]5K;)7[.* MEOG59+P_@2NPDDE\"./SFLNA%&N&X#OS1''E*/^BH?5(9>%4K?UR=G7A;)2O MS88HY>7Q8;IW<=[P6X=PTB_KX%<52PZ0K.H:WA%1=TE.LX I( NB6F,.*D)E ME:Q*,KO:?+6%UU\D YG0>!PBDVVV.M_RSLIZ,XC4YU^O"4)'I23]<.3,'?; MMXG.$\")HW^=?,#"1Z^33W/V(L&"=G:F2&)IEEDD [/B]Z%C"OC;T(@G4.9B M!B=D)Q.:H%:XH,HI7KT3)J-1;6!5"X MO71J//S6-=G%0YJ8$BN()4_"A*&O[:<40]F\)'+I2UC .*V!!"U9F&O+*KLS MVZVA)/M:'!YPR-#Q1$ %E/HDDH5D]*#G M1' T1")HT(VL;ABBR,%DHC]Z\:8+>+^LR6T9A,Y9UI$78RU^X(.E2]:1]>AL M=\*=*;';5$1FZ<5!JB>:#VWKI5$P>)-M921]TPXF$E*P"!O64-FM?5"$G9GW MLH^S)S07FYK]M0];_V=G3AI36+40>@USZZ16K=@+LD_A M#Q,\Q?Q5D##O2O7!B=CJ[[1K/$G4M9*-15ZM/1&&&[(])V.8/"HZLM@M\^91 MW;!J(*\Y=]$1F!+[ )M9$=\E7]R9)5]9VDR=IJ5GT:668&[$'@M=.^RF$S58 MD*D!@Q[6)1S+:18B/H9]!6J<6-R[I>QSW1(VU0L1M+1E]QT+>VGN5Y0Q3H>( MQ6RU))%8T['J%;7*ZP/?[ ?DI&?48Z$M1"#N' \BOX@\A,HUU%RP/CG6.%J_ M:(9Y3T+2[SL21ADL1E9;^S#"9^LA)?5)=+0=^1S=QN2LN2T,TTBQN_"@D 'X MO6YNZG %8C<"8$V'EA.G6=8JV;*[9AV+L X);O![:UG>CR])@ELZ""2/\-U> M0!5;\VUH&4:8LM!/R&5P'Q A*'5FV\X8C^'0?,LZ^/3LWM*IVNWI%BRAX??= MTRP[Y\C.MQA_TY*W?= L%@P%&=N*&C#9^ 3X' FK=*0L L._&2_*9&J/$APT M$A9L1TY.85BR(0S" 8^EVJEMUQ^4M88:#UB!6D/N_>7[3\Z2X[U>DT6U-)B. MK!_R+ HY4F9J0DI5_AVD"!$[2]Y5WM/'$ V^C'G=!RC8$/ > <8J+%MD>VG?,GV):L_%5;>$.F1N) M989@0? 5II6HKT8O#8E3-6:%XV#!L:*C,4P,S!*P[!8D!FZ)45GBDZPQC')@ ML:/S.EB3PTKS$D&L93;V= )'%BQ8&Q[/(6!XR!SQ!;QB$5E8MZKKIJAA_ZF= MB3WT9U.)#+BB'29GU@XN_?9%X)*_N;*/,C+(^C(0MLX1;B6]H# TJ F#$B4W'#,ZC MX=*S.U\N:[@I-1NI:_@L+"9:.'KP[LBVP-0TMS=).0]@+3TQS==K4B]L6&"K M1,\2YT8HC1$CXI5GNGZ2V$#I3I3,B&4BDT1&L(^IEC5-Q5#18X4NFE?TOYP,D7A,5#2Y>EN[P@V+ MQ)8K'VU@[%4,F_-7O??V5=:E0R)\,!^6#G5 MP RIN2"V#S>@[NAK8[\.+6<)U62YDLN C$^>;$E'\XY(<7&MR=X&\Q_:P M4=(4PWJ0!)/;#"P@L2-Y.QH/93FTZ46/:63#+=Z)Z44?-;SHHT(IXR)?@8^% M3D5<[/W_?"@E$2+&Z)JEJ>JFYTP3)Z\T]OU^:&D_0RLLM2AO^>_.S7/, M#Q\=ZL,7LI&6N+8M;C(=U#6+'A_LH!,>]%S'_)KEQ'VF'5%!_/!+?=A^^8&/ M?M54(]"QHB-/ARXF N$,_C2!LH63),%TB"&.$>:D<65T@:8(L'&K")*]!8F^L(71&Z^V)M8+(T_RQQ*9]R#.ZV!GH7.Y4-$4 M6'G_R/PJ!8.YP_"94RQ:60#QE!Z+^CH5%0XF,F@E/=?)?%-;%%U&8H154DPWQ=Z]^ MV%8Q&A>W^/0I'J:%UNR>".O)FF5N"1\%.E16-+?L2\]B@%IC;0MP!(M(1A)' ML&@]Z ?)\L@V714!YN!%TSU[BB?V23076IG%*-\A[A79LU< M'P\^.B;['-5G')"%.:/),F=>V*"LQ#L2E,ZES@16%%I>X B"#^I5LCAT.T!O*HXVMAJ3H@$VV>M!BK;>.H>:0RQEP8)89E\.&9UN M;PP.(WQ*@HI(>U\S;;'@^J5I"A ^@WU)L]=2!Z'^9.AE.^N9J<0]J%*$OFDD MCY.PDES"YWZ=L-.W\RRH"*4=I.O5]@ARM[&Q6^Z?@C1R/ FC:,]$PH\\V5)W M'(<0G+3O)NTB!!,D#E!J3F,,4K;H31M%&6 CVT 8AS0TRA>9%;:HC.4969D[ M$W/Z+^^;MHNBLW:93L217DMF(2Q.'4NL+0B. M$/0]/&F0\N NE+1R7NR-3W=0$"1/'&Q^Z2;P4C M$;A#.&!$FB.K_SX95;;1.<:TRI4YG:-CU31CN$*#4D$*^"4B$HF1.-,NJ^N! M]1JB6P0RQ\;)TC,(PY2+T%:^PT!6,-:P?N9&%[ &?!"Y8V+J;+H&2X? R%ZE M@.$3'=V<\'-R1+CCP+C1/ '78EALQ)M)$S91RQZI(GOXXLU$\3"'+>8G4(Q8 M#MB^#U?5$#'.0(\MV"Q(]@^UC(,(LF N:3X'*CH-EXG66MXVC M9$^6B*$.1$Y;=:8LV6*#F3Z3J6O#FCT(J7MNQGFSB.NW!XX'Y+#944E=&2AJ M=$)@Q9<2?*ND(8@[C1RLL\(&F^[!Z1B#/@7@$7T?4N,"14=?&9?*'72]V7A2 M&9&94*:4[N+!LKYN4)>4:7%.V?F2I'O.GN/&(7 :5;G3)0W1WO';V#0KO]$.2QSYAY2"<]U-@TA.5D<1XXKUFOWNN=-D&\ M=@QLD.T#LXZ=FRK<3K"5N[TZFOIW"1V$80)64IG7D_I04,R(F.78, VLB]W0P]QL M&_4%=J:;)>>DQ6463<3[76K$$QYC5&(2&4Q.DJ HQ,8@[.DXQ$>I,E1Y2!07 MY+E;FV*3Y*XL""%9/H]-BWP#$MHJROM2&RUF, 6)^+$ M@[!S5'..'S?"P9+Z4J+RKER1]9EDU)D]=H4IB0]HFE[ M11/$F[5R<\UWEG!?3'-D]3@D+5I'L\6K;83/.#"=.DIU,H%/L>^?:#ER4 M2-\825&KJ2^.K>Q>R7*7>+4(G)^TY\=>F7C#BDI;6LS53O$]PMU2&HN <9VR MBW:PQ_8;B@,LC2&E=PWAR:EIN!9[B2ZP13E8J>) 2M1_?U!20H,1TP9D<$A. M..R%Q>Z(#7K:?P>W%T8Q[W ^7TB;RWNIEL#5?M-R*LIPVP9 =G7%)QGT2 MR97NBDR:;Y4F'X2%R&F8RK78T[S/5@ZRRT&]"!,1W7$'U-_X+:'4K]VI%_"7-B59JQ:O*8(ZRL]: MDGHVJF?U^9'HY4M@^8?3 M%X<\C&_6:XTI8:UHLP6BK4&Z#3^Z.D*N0$7,/ZC]HX?>DI6PEN")W.C&(G*C M3VU-%(X ]5'4T,G)?9!XR1UPK8J5Z*9(<*7"@HV'9\D7O47Q1>C/7>_TED^+ M2)6];>$YSD7G;:F-$\SV'FNLOQV%^\FD],F%1S6GI[D.7\H'R:L^CWJ$; AU M>GU6,S/"*RX_(_8J(JR:BY72,ZG X9%876G#QU5]:H_+1>BO#E4KG.YAPWIA M6A=A%B :EQUR E,!E_WOGST(A/F%Q%AAC#256](5$)1AD5]@E6*4OSC-E8VK M=&_+&@KM)L>HE:D60Q4L]K M;XH@86@3T7JL,Y3$"52(2#5LR:,0 4%YS,Q6=)!XTK)DG:^5 ]1]2!Q[TY0B M:T!^<45W2'8L8EK-DH1Q^/!^84#5H#U7C&R9"98];KX4Y"_"LW8(X21;:T/D M0J5;3QZI=0:VJ;U!D=K;5XVKFH*GR'N-85^1!.G8J_2Q?+L%-3[90+6I*1:0 M?']'O2F2*8W47$Q38!! ]]0G^J%TE1EVV)AHZ MD SM>^AK-B;V41 SHA"^Q7]LRM@0$8-UT#<'6M7L#R:-;/6&(S[>=,)FA%N" M!A#A$73_"/[3<86*A ZE!A!)VJS/5P=DT4EFJ*P#"\([*B(@;9&Q+<7Q-RQ5 MVJG5)XPCE9U1$ Q[EF.#X;=77U@W-8/-F**8U%[6M985F]E1M3_,2Q7.0^WY M?+]2@H2^8\N8<6XXV$5F[C5,>S*KQ.#"9=[@;F;KK8J82.J/.T)KO>5&1F&6X&D%=9N>Y&UT:8D7%+P-6H6/=9)%E\,$XV/K'4&+XB,Z^OE\'U]=@C+]/3N[N]X MNEUH+5WO[UT2&\HC'YX'M6;%8>-K&_"%U6X-.;UZWO51<<$TV*YH 8:>!O8M MZ;'B=^:FS!+:PSC/S&V0G+>%:F"-XJ^Y)0"+))W#?H_)=ZQ4,<]PF: 3:89+ MAUP70<*UV?+Y2964;]FPKTI4NRE8(P4T9Q6QJ4: MW1&,3Q7*3E7[!L4*WD+].IK(%4^Q4V> V]1:WC)SP44?J*Q@8G!$N.?*SC]+ M9)_U['Z#V=IOP_SUW?>#G%. 2(%K:7)C)PHNRN#ZE5E 9I2UQNTEL\V=YFA: M)F6^"^!&VQMY91?=AH/JIW:LX.,\V'@O>AN/9PD6Y5A#IX:!K[*V M2:'P\/8+@7_U$2&%[2_6([A@PQXVD1O%)7<@L'=V=:,BE*W;%VYJZG+OE-L? ME?P]H.S_C_[_O\2$B;15B:(\7D-\5D]_%%$5J#"J\KI=L!G+F,MSZCF[F'5C=@FM[ MUDJVLLQ^GWJ]HT^TIES/A[;3@-H>9]$:W157@?%LT[<"4PZ>2W171]QS=493 M#Y!B#IT82@K(2MA?5,+^*5MOWI#-$\G8=U;&7CU<('O4TK%W#;='<^A3N'TY M6L>=MPY$',5]D CPA8%NY/XD&G%*-;%K53NR#[W4?>ORZ5X\/PA?._%JOG,> MK.(P$G[IE9C3SV-SWE[H.-N%.(R%V 8,1*QNI\#%NM'*)J*0K&J6MM=9@>+A MF\ D8]7!A?T_/$M?'!U)>/4D/3H^##NU2#QX0H[<&2V=!'YL _XGZ.XO(0F\ M#5CMRSX>C+9S7XV[:TKRG[#7KW!G[Q8N2A$OTL.7IQIP3Y^='H[2 W^4'*+; M^J%_!)QU^V%R* E,]DA4QAM0(W7&+1%=,/'^R1_NG/QKCR1@P:/T].25(/QY M^O+5\W\2X5;%O37S/KGLN@&FQ@5.^.O*%QT%!N8EQV(Y1XC-';])+ETY/F_' M_CP3:QV-$ _.(8XO0M]CG%6P<2#W0'BG@6]6AX(]D[C1$I7ZHX*OB7M1"/2- MS%D$=WF\."ZVOA_'P[T;=8F@'GZGGCG=5\(R/1D<0FD=Z<,'+M!NVV@!)A=S MXZ;$YN B:ZO&]>Y!.=K>M(S8CYTKBIQ V_U7/'!YN^-*Y]B#&V$4IKM;F0YJ M84JY.QHK*_IS*]GN6?*-DP#7C %IZ+$'\2/V1[,,TDLHPM2D%1*D _W?.E=1 M/1EQ8$LE9[Z,BWYZR(&%:",OBH-FOJXSD\:+@8E?6FJ7R))>G B^2[J;;!.$ MX35QZ%+ )$FX?@*G35X53TLV(4,&HCJ[NK#MPHZ>IQ&DO*$_TPA&U.-'_" ] M\HB[;\J?B>L2)XO76GWLSP1\4X13=K9[U70#J.E;1C9Z+B@/NSM%EYYC>AC[ M23&;A$!Q-C9K:]Q4CNG&'04W/9!X@PF&BG,K%0D1GGW= # N^&D6"VS9WB9# M_QPF5M("^I7KU; >.FF)Z&*MG*A%AD?\:P?"=-Z$]^7K8I@/(7&H-KG"X<&=B%0:MF5D$M&M(@QBW.<#F^,"2UMYV-OUI# MB);VTOL9-WM\=UOB_O5;VY %88)/0:[M8U.WIM>>N\EG^EGVA8_G=O=(C5MZ MNQ03\"ONEXY2%U*B F7G6L(9FZ"]"]P7SP[3>&;6DC90G=W>=;LYH"5G>$D# M3H,2FKGI;XRRX$1#T-V&>W \:)28 F&3&=>XEWZV!4F,6@5(;/,@ ]?@ NV:N_JWVPAYUEFT,_NB M52D#8:E8V6M@(C*A&L"'N &(@J_)74+\^QY<4VWB;*4V&P[&_\X4-O7TSO>R M^M2C425"9%='I&M;\TL#_JO>5>UWYAK^L'R5HD%TK?_RPKYGD=U"3?X-T;8^ MPW^A%AVYA^>'_VV?XR(Q[>NM207&NB?J':'U+; M7YK&/=$ZR)"#Q2Q$4TFTF%4(JXUMI0UQX_?@#&#$ XDUJMYU6'9U^K8V3S-5 M(X3Q\]I<([/"G$N 6\CML.VH;W ^Y5C'F"SC&_@?N6/YT6DR$G5G0:^@3UCO M(G*Z]>'''YJN>S+Z38GU<87?PHI&HL' 5&'3W+=6<>7OU!!H>FY#66J) M92PK- &^&.I<4NV:,^"NQ[V[@X'W2KQMJBK3%':OT AU-_$#OAZ)]B<.B>@ M/FB1P6H31BRD4OG+=#UYO&APHULO445+<:$M"SAY"/=(N6=A2 5>(7324=') MLWBF1<56F7]YC 4"%I >DD/9'@7I450$. Q[<&6VS,P5Y/3!>4OELUB5 5F% M$S3W$O5#M/W7P##_&C)889BKW.L[=C<>^DJV$CG"H_K*-FZ#P$_ PWSNBG_P M5\A>S<2",?N/^*U1JV^!Q<[U=YN5?3%UPUQ(-2<0" M@"\(MGN/.>H?Y):SY?5C"C@(27+]@ WL$HA+6/W+*.2.(C(7T?MH>JLR-QSQ MY2 =7KF5VTE0!MHA?2$MN4F)7?\T:A@ MV)EX1TE&-Q7>EM4@?'\'=+[9$MO*D%<\Y0XX$ZO;D'S!ZR#ZX.ST#5DD: L? M [^G32V';HADM@<2&;678/[]F?^/_EA\DOQY2G^%2?/C]/3T:.]JOST ^,>!I>G3X*GWYS"?GCU^FSU^]3$]?'2?OO/MC,=T9(DFPR!\OE+C:C92/ M'Z$M/C\YG)R!,R$/VV*AY!=N\O@X/7DQNMW[]Z1< M2!DY'G\_'6%E"]5Q$W>QMPYE:&XCV!-/'?9*O^/E!&'$-NR'+7O8]>@P)GRW MW(X#Z^0]3^EZ5]L4!,0,M\0OK<^U,(7K PTUE2KL-UR*A&_[LA_TML39O=>4 M8N5=^&[\-.Z'H\/TZ)D\_<,+HKV3.%&8(M*O&XA#W@$($QWK>8M[0N0(8./% M)FAD_T<.;I9&6 BO!LE@PHKM5_II^U/M^AK) _0-L_X95TTU?Y'Z=C>FWD[\#+'AT>GLN7W9U?GDH&DL5??\,L! MOYE-N_H]UOS=L^,G]BN:R+$B/?YJ[T2O#OBMG5%TXK&+T#YYG5RA<\MB:\DU M@)UQ-@YK[-G7QZ8G9=\[#."-A+6Y;X]') 6\]+T,F-2E#PZ?I40Y&I9-OO"S7PQND+GC?DGG\UY2!E$BY9UWPJ=GB+;_ MQ=XUO9JZ#]U9IT_Z= M9&%CLR"VF8)6/01OW(,[XU9JW19;"-"=ZEMX)P14;A!SG(XNL1C,U M13W-',%P]>F] T&"*?95=W '),-0A>]]PV7N#:(9^A9 OL@W-ZY72YP8#:XN MCD["WJ1!:584#I7M[+P:JP:$RG?4&@%WUBUQ>"^,F< M'Z^K- D3C, O5^Q]S:]U]VQ/H:B"Q-U: (IG(SM;#HO?3#CYSD4'HKL8ZV\' M*13>PW3PV&:/S5:8\\[#)5.F<6WS5LYY9 M:,%3MRG/>G$8'O=R+HO.Q9F[]U%?G*G29K(0'S4S99YSO7HM,K4\[T2=^L8G M.9M;NM&[.%OPF;@1]O/BH\:W7B,EE;DHC%0%TV)ZWKF,7KT>T'JWX&]2+$WK MFI$E$Z6^T)?K]+P3DD(B$XDE"1P?=^)*9!D)@AI?*YF=YDC:V+ZNI?_9V0Y; M)MR(*Y7](5,[/^^,.RP54UYF]I-:_BXJ>X8D+U&9<7_9TJ^-^AV6E,:JO-H, M#7)9^$]^7^'0VC .#VR(JPVQT]L?Y+1\PRV_.--JR32MAC2Z<*:ZW5!.%N24 M&ZOQ5&*?O;B\^NOGZYOKV^L/[V_.>A82Z7XOJ7:_]KOC [NCF+U3A9T;]FN1 MBG130 ^J-/K$M3ZOXP>"_847)7*-116B ;OA4ZYEQHLT8&_?7@6,L^5<9=GJI5H6(D5V3HQ, M)6U24V;G@EVI?,&+5< 27&3"8A'=YJV3L-(?_U9P/-/LC;R3+F]ONKJ;==F+ MGW\:QW%XZE:YZ^CT%SH;L.92:,&F/)>-$FEI5VPF('!2&MAMC$N]E,F"75N> MK: !M\PL1")Y)O\A##TAK19:I652*S5'3K[\6F()Y,%*8X4V 9N(S.+#G5)= M P^FG.H\27">TE*8+KO=,G3)#2U094$PH"8RNK'6$A!-9,%I+38KJ-K>_E*+ MC-/&1!EKW/:#2"X)E*/C>,0"NKFPK4ZL6K=$H;JF0CN% U:@">"LA)NY5PHG!.Z\H^@D MZ!\/G6PH?7"(U;95M\@Q;UV#DH^R435 MLUR@V<:N1:F3.<(202<3L64F.<8Y-Z=@,6TG-7XW1EBS5IVV9))/),(5T4?/ MR]QYP#E_SN\$PE44#$C+W 42D@"2I$;ZX,\=STJ*VAN$AV"JU' '1.VJRF%= MLM:S%36YX*9$3HK"LH704M'QPI\-J>C[E(8SI=*ES#(V6;&C_DGH3-+"Y[Q! M?TH)(^\99HZ,7!])F8\035%<[)S]Q U=:E;,Y+>-^%$.R*V30$F[67QP.D.E'%537[I,3^F!F[F3DH<]+7XD= MRD+>N4Q=IW4<] G4CNX=L<%H/"*INA3I(RNC M\)B]5<7L)?I%CNR?["(S1&'W]NQ+J1W(@^%PQ-X+>]#ZG6BZ+BCHBHH6+"6R M8JL+!^VY9RT1!2)#HT2S$)6S*:9P MVT2P C,?"C@-I.0O5^V13>@O"V7(Y>^5:TGB7J*EHP5O8N5N0]A$V"7U_8VH MA-=]UT!+)[EJ.XJ[U7/T95&4PI=I#)ZU]N@9*DM=9#S6::K6(%B*"*/]&\?L M&Y(+91F-*)JF#^A&PPB5>I7)U$7I%&-R0=,[,Q8WZ!C@<;7""(,Y8(O&O.,K M-OC>#*8^^[:5E &J11*PJUMV-$ZXNUT'Z+Y-;NT+,'/WZN%.9#Z. M07^JU34!PG@^0]HTL*>"DM[)S4'1X5H(A"3F)$4:C6-0BR*1&XJZ[X/N4'MRB2%(,)RS4!^".=QAJU5 MJ)>W1O_#% AAXU\OJ(T:V[3U":2U)+H!F_1<^(3CIHX93))*NT+N"J5;J-?@ MN=0"8H>85!P,CA_E4CYU$))EYD*:N_>>=&;"%Y):C%- M/]>DN))3R=?3<.#?\$RIVJ&(+O:.UD$[?H+6-$0 $2P-Q'4QJ5IE73;:NI*W MT#_^+F@X ^AS5STW 7"]C&SPT0.M'&^L#Z;&]A#A1A7,J*4W$+?::YTX[F5C MX5L_4K7+_A#5:$%:N1.056Y+HXCSDU%D! F@U]T)81F@S%H4;4;&DXP[,\2/9L;[O/0_S8VW"OJW<>,^9N_X86X? MR(VC*!AAG'Z<'(\=@SC(C4^>P8T'_6 X&CV%&X?C9W#C03 8#I[$C2-WOD?2Y7[P=/)\GB/ M].L"@P.]/Q8[K'F\E[D_ES2?_!C27#>4P[2Y7O%?1)SW_1K9:_TJC.":N=^^ MB6O!&?X'XN9N\_/ZI?]5>;W<_S;_CJ-]8L+(Q!1;P^YHV/&I77^Q:N%^8YXH MBTAVEW.!<-.T ,^G2MGZ"QW0_-/!Q3\!4$L#!!0 ( ..(;U9Z8G*SH ( M '\& 9 >&PO=V]R:W-H965TR?S_;:;).@DY(?(GO?/<\?B[Q M7<8;(1]5A:CAN69<3;Q*Z_7(]U5684W40*R1FT@A9$VT<67IJ[5$DCM0S?PH M"$[\FE#NI6.WMY3I6#2:48Y+":JI:R)_SY")S<0+O6[CFI:5MAM^.EZ3$F]0 MWZV7TGA^SY+3&KFB@H/$8N)-P]$LL?DNX9[B1NW88"M9"?%HG8M\X@56$#+, MM&4@9GG".3)FB8R,7UM.KS_2 G?MCOVKJ]W4LB(*YX(]T%Q7$V_H08X%:9B^ M%IMON*WGV/)E@BGWA$V;&QU[D#5*BWH+-@IJRMN5/&_?PPY@&+P"B+: R.EN M#W(JSXDFZ5B*#4B;;=BLX4IU:"..6]1IFT5[ M&<\Q&T <'D$41-$>OKBO-79\\3O4VC(E+S/93AFI-G4FO,]G'_B:=^YGB ;Q&!K<50B&8Z4K*2Z *B&FR3/",,DIH70WIHN[X^W1,,.22ND@2GO;VIW X/(0'235^%D6A=@*Q"?1>- P.;9^\3<^7*'E9 MW4N7SM\9"C7*THT^!8ZTG0_];C]=I^U0^9O>CN9+(LW+4\"P,-!@<&J&F6S' M7>MHL78C9B6T&5C.K,P? J5-,/%""-TY]H#^GY/^ 5!+ P04 " #CB&]6 MM;-KCE0# #3!P &0 'AL+W=OCY,3-';;@ M<+A]L5Y(/GQ(6N1D;]T77R$2?*NU\=.D(FINT]3+"FOA![9!PY+"NEH0'UV9 M^L:AR*-1K=-L.'R=UD*99#:)=T]N-K$M:67PR8%OZUJXPP*UW4^347*Z>%9E M1>$BG4T:4>(&Z5/SY/B4]BBYJM%X90TX+*;)?'2[& ?]J/"7PKT_VT.(9&OM MEW!8Y]-D& BA1DD!0?"RPSO4.@ QC:]'S*1W&0S/]R?T=S%VCF4K/-Y9_5GE M5$V3MPGD6(A6T[/=O\=C/#[-. '9>K+UT9@9U,ITJ_AVS,.9 MP=OA3PRRHT$6>7>.(LNE(#&;.+L'%[09+6QBJ-&:R2D3BK(AQU+%=C1;KC=/ MCYOUQ_7CPP;F#TN8;S:KC]WV?CU?K.]9MMK ^]7]$MX]/L-F?K^:I,2N T J MCVX6G9OL)VY&&7RPABH/*Y-C_G> E#GWQ+,3\45V$7&)<@#7HRO(AEEV >^Z M3\1UQ+O^U8GHW(Q_[":\L5O?"(G3A!^11[?#9/;JM]'KX1\7@ACW08POH?]_ M05QV,Q[ ?_($:P./DNP672@;%X\JA#M;-\(<^"UY51I!F(-M'2S%#@VYPQ5\ M^A,*(956= #AH4*= [1 F!ZW$-CA0Z,.UE2KRV"NJHNJ)S N1&CL0Z10C*Q$92[@+'F25XT4K3$;@+ M,!Q2$'MHG))1Z_?Q: 173,=SGPRU8><"2AX743IZ,V3IOE*R N59*'7+#2)H M67;FH$3#(>L@L36>J+_$S+J>>.%!P;4,M,Y2Q)4-W!U688SL\(02V :8 PH' M&#H2<#_IXK_44]*S1ENC*^,X\>RC-=3UW/ZVGUCSKE&_J'?C[H-PI6*.&@LV M'0[>W"3@NA'2'<@VL6UO+?$0B-N*IRZZH,#RPEHZ'8*#?H[/O@-02P,$% M @ XXAO5J*WAD;>! , P !D !X;"]W;W)K&ULO5?;;N,V$/V5@9LN6D"P9=GR)9L$V&33-D W"9*]H(^T-):(I4B5I.RX M7]\9RE:4(DDO"_0E%HU*/ >_:?ZUM)JU*'DLD+MI-%@<7TZ>#<^/I^R M?E#X+''K>M_ D:R,^\Q!YY(-^]\' M])]"[!3+2CB\,.J+S'UY.E@,(,>U:)2_,]M?-CGH6>P>,D@V1LD@7?K*+!\+[PX.[%F"Y:U"8T_0JC!FLA) MS46Y]Y9V)=GYL[O+SY?7GR[A[O+BYN?KJX]7-]1 ZSQY%?$]9D.8C"-(XB1Y!6_2A3D)>)-O"[,% MF3X/PN?CV-4BP],!'0"'=H.#LS??C6?QVU-H/$L?(>91.D_A2GNT6O 5T\,?Q[,H74YZ:]*.)W#C2PJV@XCB:=*M M9E&2IG#=%>(QD&DZCQ:3>5^2S*-DL>@DG(HKG:DF)T.A%+R7SENY:L+5]Q3O M?RR?EIZT[KF _7@FE,ID.NU+QLMHOOBWV?QON;K##>H&N=%K:_(F\R =:./Y M1&3*.,PC$ YDD,NJMOQT<.=Y [D!9X;44MJS&'Z58B65]-PHG5#UA,(B/5Z9 ML9PO0A60F:HV&K4'LP83&J)OL"U1[V]^M(YL*R*2"5="+7;T''KB1*]9OA$Z M0X8@!&[Q6N@=9<-+M][Q*:_1AC<[:*V4+$)6&5]F9:#5*DOFY8G7NO$-26LC M6VJ>'M_ART'1*:&P"BW_((! FHD\[Y43V7E[!5.V+9R'"+/,-O39UY&Z'RT7 M=#Q_ZRBCVADE<\'=MA(J> ]OH@OWAC>>NB2'HVDT&Z=!=#2.H^5T&0I-L3YI MY-# K,1-'-&#[$LX6D239'I(=^CN[+DH5LBY[V5&\NS2-ES>V'#]$L#NA3/$ MKND*1QZG6/>VE\Z;7A'?/<^:R"*4@L-;1LOEG)5L!_9"1T3[ENB2+RK3<)OY MDOIB*^DV67%I-D9FO$N)>1K?H7'02I.[87AM_M9KJ+>25;@AC%8[/EW"6J$+ M;+L\N*]X,.6,T:1%>*&9*"CQF/V&LFCAHZEE!K-X]E)!A_ % 1]JF@;94Q[IGP6=)(CY85:']MC#\LV$'W3\+9GU!+ P04 " #C MB&]6]+=7Z_D" #*"@ &0 'AL+W=OYDQ\WW?UW&&!=,M.4=!)ZE4!3.D MJIFOYPI9XD!%[D=!L.,7C MOT'-[EVK0DZ7)N#C&75=\+O<>- M,9]EQF[X@]Z ]+@&ZP A M )'SN[[(>7G,#!OTE*Q 66MBLX(+U:').2YL4B9&T2DGG!F< M#$_'<#,\NQ[!^6@XN1Z/SD<75Y.>;XC:DW4>9O(ULF^GK,8 M^QX5@D9UA]Y@O8]5)^ I[Q)1ZL._W<>/$9N#& M9> ]-JR0I3"->H9WF$/X0H]>Z.U_A=5?TLBH,4BT94,P@Z(K-X?N%)#$, M?S1&WZ"[M=?=7M*M%$8'[[((MW:"W0]9?/7U[*GFOWXM_M67L[RNRN1G[+>[ M>Y]J>Y51;%#9AY!@%!,Z1>5:+ZM[N%3/6O@4384H(+?UJ2$I7>=,S;C0Y%]* MT*"UN^V!JB>G6C%R[J:5J30T^S@QHV$3E36@\U12;A>*O: 97P=_ %!+ P04 M " #CB&]6E7W .;(" Y!@ &0 'AL+W=O%7L3:Y E5U(([==7 MDF-C9B"=:5\B[6K/V;.6=C/="?FL2D0-KQ7C:N:56M>3(%!YB151 U$C-R=K M(2NBC2DW@:HEDL*!*A;$83@.*D*Y-Y\ZWYV<3\56,\KQ3H+:5A61OQ;(Q&[F M15[K6-)-J:TCF$]KLL%[U#_J.VFLH&,I:(5<4<%!XGKFG463Q=#&NX!'BCO5 MVX.M9"7$LS6NBYD76D'(,->6@9CE!<^1,4MD9/S<[J65% M%)X+]D0+7)!OE1;5'FP45)0W M*WG=?X<>( L_ <1[0.QT-XF?OP?7E]>3\-M"&T[B#?@Q<-./X$',5P([@N%5SR HOW!(%1TLF) M6SF+^"#C!>8#2"(?XC".#_ E77F)XTO^K;P&//P8;/MAHFJ2X\PS#UZA?$%O M?GP4C M [$&RE^0:R$I*E"::"R :#!0E/8X%TJ#D,#-0#!=SNAOQ_9"V!9](,K&F%O" M:F7BVYL"P@N[B29P?)3%87+ZW^N['*W3Y;)YX(IR:EY] 1LA"M4%?(%XY,=A MUG=D?AJF\&2&PU?*O]92Y*C>$*D_'(\[:^B'HP269&=Z3*.DA"E7F]K6-;-? MK U,4G]T4M!KYPKEQ@TM M96YFRW73V9VWFXMGS3AX"V^&Z@V1&\H5,%P;:#A(1Q[(9E UAA:U&PXKH&ULI591;]LV$/XKA!H4*R!8 M$B59=FH;B),4*]!T7IINV",CG2VBE*B25!3_^QTI6U:SU,"V%Y-'W7WWW?&. MYT4GU3== ACR7(E:+[W2F.8R"'1>0L7T1#90XY>M5!4S**I=H!L%K'!&E0AH M&$Z#BO':6RWP442W5<74?@U"=DLO\HX']WQ7&GL0K!8-V\$7 M,%^;C4(I&% *7D&MN:R)@NW2NXHNUXG5=PI_<.CT:$]L)(]2?K/"QV+IA980 M",B-16"X/,$U"&&!D,;W Z8WN+2&X_T1_8.+'6-Y9!JNI?B3%Z9<>C./%+!E MK3#WLOL5#O&D%B^70KM?TO6Z-/9(WFHCJX,Q,JAXW:_L^9"'D<$L_(D!/1A0 MQ[MWY%C>,,-6"R4[HJPVHMF-"]59(SE>VTOY8A1^Y6AG5IO[WS:W]P]_D:O/ M-^3V]Z\?-W>WGQ\6@4%LJQ'D!YQUCT-_@A-103T@<^82&E)[!BX=(8X<7_^](>YSD=1S;)9>Z83DL/6P##>H)O-7; M-]$T?'^&93*P3,ZA_PN6YW%F$_(Z%-DH[&AE]H35!8'O+6^PQPS))3::-D1N MB2F!;*7 ?N7U[I*\?3.C8?S^/Z]XD5 ]@G*7^?*CO5S[$Y%/EL_Q^()D?IJD M(SGQIS0DZY:+ EDY\KQJE'P"2U^? *D_G]-!C! GG9(/K:JY:14XPRU_MON3 M4>0G83B2:#@GU[)J6H.T2Z:*CAU,M=P:)PS^$C]*3K8T1MX9N6-YB3>B7F9Y M4)OYR30YB9&?S5-T66NCVOZ]XC7!\'9(\\0S]I-X-F8]S_Z1T5GFS[/Y(&:A M3VE"/ED8EN=MU0IFH,"7"ZLWY\SY.BK_DE!_.D_>G0[BS(^RZ!UYD(:)\76D M/IV-[R>._3"-AX,'K"&;05;O\>W.I2I>^H1G'"P:;,%=3/U9&KE47:28SAC+ M3[DRW -3FH!]4GZL(UB6#T@%>@=FY,:01N:]._Y&PO=V]R:W-H965T)6MM* M)9E ?_U928ECR*70.9WSK+7 M[ZM\#!53NV("-?8,A:R8QD\YZJN)!%;80579#SPOZ5>,U[W#?=MV)0_W1:-+ M7L.5)*JI*B8?CZ$4TX.>WYLW7//16)N&_N'^A(W@!O27R97$KW[KI> 5U(J+ MFD@8'O2._+WCR-A;@[\Y3%7GG9B5W GQW7R<%P<]SP""$G)M/#!\W,,)E*5Q MA#!^S'SVVBG-P.[[W/M?=NVXECNFX$247WFAQP>]K$<*&+*FU-=B^A%FZXF- MOUR4ROZ2J;,-TQ[)&Z5%-1N,""I>NR=[F,6A,R#SU@P(9@,"B]M-9%&>,LT. M]Z68$FFLT9MYL4NUHQ$0W6>/4#\DG4>JS(65U \=1! M'R&V.(,YSN-@H\=3R'=)Z%,2>$&PP5_8KCNT_L)_>=W.:[3:JV'0GIJP' YZ M2!$%\AYZAV_?^(GW?@/FJ,4<;?+^VY@W>QWLDI>5U(43:[)*5=:\KO&UHE;H5E)CEG)ZASH$CZ/;)$D MI,D@PY> )GYB&A(:^A'!.H%5H$;>2@EU_DBT9+4JF:L_Q3>D,]8SK5H VW&P M\P25'[Q_VKD6A]_:.3Q1TFEPN#H&"0V2@%RS@DDLA#\:KK@%]3PB"4U]?V6\ MNLB>6I\\LK*IX!=^D^@U?HWU)V"JD6 B1B8@N2A6QG#^#&@6>R^>PEF_.F%M M;K(LVWGQ9,YZ;2J#3J;2C X2;T,J,Y_&Z:+AO)HP+FV,Q'#!T4M!^**G%$HA M&Z<@ 0_27$A#O%?S$>N$1$<+1IL.EN=-U6#$<.B*&9DB6]F ^HEOK;=2&F,1GCGM<:RPTT].L+I,6V=%N9:5)./ MC8<U*,6(P\Q@5CZ>=J E MJX34_*>MC.(>G6.0N22@-*]LI!H%PZ8D):Y([9*3&1;\,O,)EV2Q_C-MG: )1"XUQO/L&9NVB7:V)WNYR MR"FIP6[.KMVZ+"YVFPNDFITTZL\?!NN>Z]GZVN=7*Q$QI*\=>-0AV2]M<;^A MFEYJ=]Q]WMK-R5+G)>;MB]NI%WP(& FW,8C;&+S-](;LG*SF5Z>>Q9;N6WC< M89T(\,C#FH<'2Q 3/%MNY]1Z;(?X,4V" =GV?1IZ@QT2T1 /Y8S<&K8X\BS. MD2B+R'9$@SC:P4H:A!Z)L#;6[W)1(6=P@XTDP-,2/TA#LHT_.VTYCY96M45\ M#PMU&!K<*0**,X,[#&F0QDO6YRVE-D5N!7X_I5'@M3AFGQUW3JMT4&'DPO@9 MJMA#M;*,ZK_BSVH9\#]_?I,_:42]-.LTH&RD<9A8'J%6B()U//+I =N^QX= M&'DR&'@D7<,B0PGX-CM):1;$%GA, MTQ5Z\?>)A(HRC19$4S49*K@8#S;Y"O'U7 2A2Z<)MJ)PX-PF&$4CN'B-ZJ"PT4'A MHNS9:S0;BA]1VE;[%PVWDBAY84FA-#Y< M%8H*)P>\TZ-EF6,#87,:@9T#ON MQQ9]1TW8A>S:L"R4SLIXF,'/5 9?4FKS&6IXT&383N"4D=$B;*@Q4EP1^U>[ M-K/=F4NFETL%#*RIE2G^C1F8C\7VC*F'F<:F1;I#ZJ$PQZ:%^$9MGEBKM-,4 M(8]N%_C:+1C@.94L;;39D>%[N_/&51<%__@-02P,$% @ XXAO5E?11A'K @ 4 < !D !X;"]W M;W)K&ULI57;;N,@$/T5Y%9]LF(;Y]8TB91+5QNI MU5:][#X3>YR@8L@":=*_W\&.7:>7:*6^&(:9="FI&W MMG8S" *3K"%GIJ4V(-&3*9TSBZ9>!6:C@:4%*!;M@*'L ^;>XT6D'-DO(DL';,XK]A]%[IC+DAF8*?&'IW8]\OH>22%C6V'OU>XG'/+I.+Y$"5-\ MR:Z,I:%'DJVQ*C^ 44'.93FR_:$.#4#_*P ] &BAN]RH4#EGEHV'6NV(=M'( MYB9%J@4:Q7'I#N7!:O1RQ-GQ9#:[?[J>DYO%9+JX63PNKA^&@45BYPZ2 \FT M)*%?D$24W"IIUX90$L'9D@MN.1C"#%$9P4I#O@1=5YLPF;I)1)@&%Y0I@5?7#,C%69^& M\=6WQZ,MWSL+"0TCJK7#'CN10>&5]YS$?K?3/;(I[=: 1.4.P*W:5B'[YC63-K72NL;K4_C M=M-"V7/(0&M$:7@!N85"8GGEL38)>KC%CB.83!I)5V/'OXQ['U8CZG?##IEM MD5A:(@ ;UM&AOP?$?J^12G.,Z!7Y9=2ELVO'JU?BXF99=\"R_? MFENF5UP:K$^&T+#5ZWA$E_V[-*S:%#USJ2P>1S%=XY,'V@6@/U/*5H;;H'Y$ MQ_\ 4$L#!!0 ( ..(;U9<+=?M>1( # ^ 9 >&PO=V]R:W-H965T MR_+[^4N#IK*:2I"N9ZU3E02'GKT\NHQ=7(QK/ _Z5RHWV/@ELZ;*+A9JJ)\7LIBQ:QT%_^0 MZZH0>2P#*'255JM@GN9X3O-%/>8T&(2#*/*>AV%T/@JNJZ*0>1FLL09YL)H' MO%*F1%X/COIAO]\_]-B0C';7B,PB'U6^."; 5WFGLCO(['\1#5YVGK]U61M. MP_%DU#R/S//G4/F:FR2]MH$?3"I T@?B,6BD M1DEFDL(8U%ER++:(]^,,^JZKH,"#O MXZQ*B-CCQ!1,J6/%CW<0C!Z28,:D\#3RS2P:3.G=>,^[1@E1- TG%P-Z>=Z\ MQ"AH!SET7NXQ+*/^/7KQ==VVAD_(?M>%3-(R>"_B-$O+;? Y#RZK!3((%K?> M^I143W,&_9?7F=*D2V0-R:^BE\]"WAL;8RCELJO"KE*L+N]37=*,V"PT-PNE MV%': 7 (B3 T+U4@8"T;-U!@JR5)$&Q(Z-DVN!%SV$*&:6'P\>-U2%LU4P7" M*=3A,WEE7^YGD):-95$">@2)6DFP%\/09CI-4M"7O/\TP9'AA1:50$ J5:%; M2_VC?MTL%D-'$(G Y8J8$E $$DPKW(V0_P#OZ(KY],TAV)$EFW;:@&A?U9X M.1B:#<$2ZZH@HRT#UMK[M,!^78)(PH3PTF[K94,<,@@: :K0)8EP(V,%!H_. M"X,$.YWL>D4T,EX!8>&KDC%2MC5ZMIKQC*NFYG0$M%(N@R^?KH,KD=^&P2=! MD1I&>ZFUBE-^"IY:0AC6Z):D2 !H8%2%H%6A/V:35$VK:XFH2W&(1,5FS0NU M"DH 0I*._Z]%4;(""HE73TNUD!Q9'4\M*3X:,C7CON(WRS1>MBP%6_C,F602 MG +B<@QP.]ZD(=^$. -\Q%M/2@CS- 6ME=A:>D&UIC5/HQV:!2>:KH-MR9Q< MY'-SQSP5F!SJ*4M2#S;5V2'6K->HQVD.PP0NF'']K,7ZUWIQG_]>\$Y ,=:+ M:O'J+6K/@HQE5:^S&/(=.0,C271 MNYG(.+,D%>RT-))B:WJ4(P_""2934"RQ M@(E)^.-D%5K+LA,GZPWV^&H'JANW"HW\@@U:2$]V>BG<9#/F!@R76[U,UWY( MDF1>?ESB\.YE)A_TTK92%4J#R09%MM70,D5G:_JJ>#[;/G>?J5I+-1L_PX.5 M2M)Y&G-,LCGKGA):E>JEL2B(EDCR;?(25L]Z72BHEC@1,<,-XJQ$ZBY94K L M;*2C(-\"(#V 7WS*C,*)C"U^V;HPZC<+A9+P[IAVU>A9O M[:X,(6 ]-(W5'5X VN(3JXI9!367FGBM01A=3&G('JU0"-0R MM!9P@T1C+IA6AR!YOY:Y1A2F0HI69W:MOW,>K=CEZ5'.YP:&---7R.LJP<+[ M$3VSV^029U!+P8'BL G3QIZ/IF;[+L83DSEWA^_8-TV:CB-G7_T+0"S;*D,N923(OE:4F]KGLPFTG+,-GIBE>I/H27N73.*N\QVA,VX4TC8M MQ9W1@4E$H4X;V/'ZX^?^5G,AF3"F,,04V0 M56PYR#X9\M4LDV"P 'PQ7'=>NRP \@9B@F4-3X>;(@$C,S-T[O?&_2<&(]&' M-=M/7JW"VB2)/^Q7PV=#S2#9R)$8/$#"R.9/]R7D%0BC*C,K QZJ$" $P2>@ ^34U"1WP/+%M57A&;?O?) M1:MF KSUIB*YVB0\Y<]DN9$RA_ZC\[$QR'Z-4JWZZ"5U\8C7OUPY($((4]MV MLR@HJ'#[$^\;L+01!<$YE-6&7S$'\ES9T@W/.:%J>H@1Y9%+2^U"H2D\H!Y+ MC1!; D9,I9CF%!=EDDN-&4EZER9(JW81DW@2*A+3667A+_@JMJ:BIC8#U30< M:&:41)A*95BJ@(PE MVS/R!A6D'=IW2=_"?M>,'"*R-PJMM=,*WQU5/:25E^2$Y->T%'*AR9W.5.*T M@*E3XH]M&;*G_/7B1YUMV"H9=E!!+E&FH92/857&[,&^Y,P.F1'$J>-(40/( MA878!6$'MP%5MFFG]#W=L'FPI'/ 24RT NM6SQL:\QAZE/_4,=CXG"DH^)#1 MZ,ZB2XH>P/TF0$(EN'8KGDIN9MF'/8B\,#NLM-;&]WKEV'IB)_+:HUF5L MV@PF;B[U6R,+&,&\(<(8UDR!,J,[9'A\@(8-]=6E4QET>$*\F M\L:8+.,NR946Y2%II$6M-6X_-SAL :5)2NBI2L+ VP<:UT+0C-$?P([<*^2& M S!I8;HCMCBW74S(5F4G[_>&T:0Y@V3V/J]TM,_E*HI(JY1Q#WPKV MIE[8;^.WS@?:7?MZ?"U/N_>Z[Z2A/@#83ZG6P]YS --!;0J@=EN,*P.O5;^/ M?GM,W8\V/3.OY+#KV!WXI(#'?7KT8G\7WBA1!%=T[KKTN^_VFU83WO0P#K3# MN^KM-K*OWWYR?>9N*WM'6]U.]O!P(_M0A[JER:95_:U5L;75;3K3>D]K^ILO MY<[VM5JXKE7;M9,=&WBP[=E>LZW9=A'J57,RY6@)7_Z>IQ01;DH"D8")628, M]JQ)NG=-F#D@H4OP7*W\E(JU6UPV(AV2A=,'KU^S_:6@\YZOQ D??^4Y #$= M3'8/A;!-C:4_,XPWFI&,B:DGPZ=R+)MSD.NWG[\V[JA;6/#X,GP4$5.[S#0J M'/H\H/;_N3*>;7*?5O^T2M^L\+;U[KB7=0OT/;YA2W4J$KCWPI4Y!Y6"QW<-RR.!\N'N MX8-;^5>T$W;1[V.["P]W#KP1=>QO3O89=MZ2VBRV,WB.@DQR9^H70KB* ND= MPJ@SN- 00[A,"A-&/D'6@Q['((+>HFBF,3GRG]NDZ>=RCIM:H^'G!"C&6+X M6_C_QO?C'[?"WU-[YX)!5YQAFYV*0;FX,DTZ& M3&.)(CMOMS-+TW)YXOS05Y<[AS"'8YROX(-T#=:_E>#;N[66AO;I,)H>.A;! MW],HG$XO^*##6[CWDY7[XO4>]B^O/T>GY,K8!T M>Y7Z">&&Q_Z5BHW":#H\J%I778_^%RDWZC]@M/W)Z*C1#GY"1'A__=G5QAT5 M#\,+M=WCD6/;4W%SN*/B]2(O@7R*KI)DX,Y7E MG%[?N=?4H6P.+5'1>B 6RR-AI'I))B&*6^!3,$D@QETKL=TDNDII#N@_,N8= M@/UUY0X$CBUX"$^:L]QQ%(Z'?0+G:U'8*P-T]0*)?4NKU43ML>\P(+.RBN.Z MY68CUGSGI&EMV[Z^W#&SO%$Y%T4:,[TKFU1R\RTF[JD)OOCA=K$]L=G3G(6= MPWCXT(&_-5]'P=M[)T>N4+7O M1N3JZ(YI XT9HA%2^FW'$KO"\CF'0L%04--CIWQM+P6J2MM+EON-SW0)[@30 M*(%!D.:8QGPD4J>+W)2D2\2"'3:HLT*%_9+(;HP_P)9W.;)645]S,F8J*WC:W&^O>&-_*@JW4][2M@; 81"1D1NF;M0+V MW_+]OGM$;#)).GI"[BP+W&<#AMR?*,8113M.8U:5TC!6AKMS"1J6?+;JMCG*9[T6]=Z#&ICK;(YO3*G M&0KI:6%+/E.G$$W11 FN YL5-_;F!>\/>X.?JEVDVJF@'"[@A$<,LO+8B;O% MV;SB.\X[7D(&O>*F!X+/C&0QED8_25BQ5SQL"^.D^3-^Z/70_RN?#7<; M03_J]V'FITZQ_2&7;4WXO_.:1!?>L_L)S&?OOJ'W]3@<3EH_.0HG_?/@,HZ+ MBMN!YN89N527I+?HM%GR,K"!BXQX(:A30V&'K$'<\VW3TTEX/KRP%]VBH0U> MYF;D#T>^A]IK^RZI-:V^+G_$R2+GNXIU#V/O^OX]87THR]5L&'@V"4]'N M?')>LP8/M:P5]D[>))IVV&JB.^>C'TP0N;FJG'-'^1%WG ='(%<;$* VF(PF MG#7N21J#.F?RS^'Y\(777-Z7030PF%+W]OV:],S[%2^W]NBWRMJ$2_.#WOIM M_7/H2_,KX&:X^2WUKWR@0(=[;AU*M^3?!,U66:L4?EU(@ MP-( ?#]7JG0/M$#](_$W_P%02P,$% @ XXAO5@ #;/K[! W0P !D M !X;"]W;W)K&ULO5=M;]LV$/XK!S?(.D"3)3EV MG#<#>1N2;5W2I%VQC[1TLKA2I$I2<;Q?OR/U$KN-@P(-]L42*=YS=\^]\'R\ M5/JS*1 M/)9"FI-!86UU.!R:M,"2F5!5*.E+KG3)+"WU8F@JC2SS0J48)E$T M&9:,R\'LV._=ZMFQJJW@$F\UF+HLF5Z=H5#+DT$\Z#;N^**P;F,X.Z[8 N_1 M?JQN-:V&/4K&2Y2&*PD:\Y/!:7QXMN?.^P-_<5R:M7=PGLR5^NP6U]G)('(& MH<#4.@1&CP<\1R$<$)GQI<4<]"J=X/I[A_ZK]YU\F3.#YTI\XIDM3@;3 628 MLUK8.[6\PM:?L<-+E3#^%Y;-V80TIK6QJFR%:5URV3S98\O#FL TVB*0M *) MM[M1Y*V\8);-CK5:@G:G"%>]-!G'I0O*O=7TE9./WA[^.A)63W?9BV*&<-2K(%)4[@G9*V,' I,\PV 89D4F]7TMEU MEKR(>(%I"*,X@"1*DA?P1KV?(X\W^D$_&Y2]YU%<";BMYX*G<)/G MJ+E M3-3"J@WGKU"71 MT?7MC7^+CWZFL[ L>%ILP'%C:L)B,@.C1 :3X""*@BB*P!2,N U:&2Y345-. MP>9GPF(6EJBQT;T.5=7:U$Q:L,JKS&LA !]1I]RXXWZSID352\TM:M-11/[K M7Y@0RE+;L: JUS@")T'.E]1#J!S3ST"*V3>.5YJG'GPG'H5D9D4\>E-#^/#D M=JO)@*1^6VF5(F8&XA"4SL+,_#<;3&%A.1J\[ !DW MJ:HEQ<61X(PE>LEV8C%';';QD1JYH86W,0[B^ "\;PW/.TF0C".OIV(\<]S] MSIP* [NLK(XZ#P+*H#0,B(&T3PQIM1*"0C!?P2>F-4HX"SMQTE%K."\XYG#Y MB&GMVK#+.^)+4ZHBR6=T'VRDXF^U1#AHJG];&C(PO6P?AN_*->_J>C(]'^$^ MHLDH'+].1'W"[NQ1LD_W7R..2; ?C[\*H_/K?PYC$S*Q@GAO/6;K-=87H M< MI;2_DYM:Y/KYRO/N4C&G!?-BM)%EW'VAQC.*?B"" XW"C^7>[F]8P*.XOHI:T9%V%]'DE91( ]I2);-=F9TY5B:Y+>HI ZMZ$Q=_X/T=+ED\L5C3T;!->01:F\QB>L0XQAH>O&PO=V]R:W-H965TI$"BF+)S[1)@+RZ6^RV"9*V]S,MT;:VDNCJ MD<3[Z_?,D)+E9Q[M!>X"]T-BB2*',\,S,X>4CA]T]CV?*E6(QR1.\Y/6M"AF M[PX/\V"J$IF[>J92/!GK+)$%;K/)83[+E QY4!(?^NUV_S"14=HZ/>:VF^ST M6)=%'*7J)A-YF20RFY^K6#^'L_D1-VIXNOL)L/=82TE MC!*5YI%.1:;&)ZTS[]UYE_ISAV^1>L@;UX(L&6G]G6X^AB>M-BFD8A44)$'B MYUY=J#@F05#CAY79JJ>D@#!]_4%+!&5>Z,0.A@9)E)I?^6C]T!@P;&\9X-L!/NMM M)F(M+V4A3X\S_2 RZ@UI=,&F\F@H%Z6T*'=%AJ<1QA6G=U^N+_YU<'YV=W4I M+JX_W5Q]OCO[\O'Z\_%A >G4YS"PDLZ-)'^+),\7GW1:3'-QE88J7!9P"+5J MW?Q*MW-_I\1+%;BBXSG";_O^#GF=VM8.R^OLLE4FW5K3[B[I+UJ5W9*\CBNV22._>N)F*E.@3-RJ MO,BBH%"AN)O*3(F;6*;BRU2)"YW,9#H7%.,%_G(A12#SZ0&%0RC4HPI*BBT1 MH"/B57*\S6@XLH8(5$:CA$IFL9XKE;M-J;__-O2]P?M5*""%9]DG(7[[?9E&1<[7WONWKKB2P510 M&[('+U**<>A>IN.2((KK$#I'B2M7G%$:,^(=Z\-E849 O6)Z97U,_$@3X+R&8BRC3-S+N%0D8\_ON-V> M,'X+8IV35L;:&1*MJN:ITJLV&8TEX5%3)08VX/) __H=GW.AT8\19%V[A'*? MW3XX\IQ^?]#LO,@]E)1IX85,=$G)T:I@LL^NY+-(>\T" 43H21K]%ZHLQ2;B M$-?6*;[C0?E5;SH+V[?"&$$32(0KX#:2HQ@Q^ \&WB6Y;/41%_"\OOU N/S&N+QN1 BPL.H%;TW4HO;N<9OGVYFA<;,O MM6_2E-J_&7A6S?L6P6_K%A,IH-EC%2WU/'(ZGE6,&#IW>8/@\1%( M I445ER.H 'V,Z!X$T=,5 JXQ(8BR!"%*0)_DUP8;;QQCH,Y:X(YV"B=D$)= MIS\XHFYENBU^=]M5I6IH2A,'MA,*9D,>"D2&9/E@P7X@+=@1Z)'F@N*Y/GL# M])"!>,>9\B,R0,I&,1U%/?H,46P-]<+<"M;K66'KS_:A^_38$D5#?-&Z((M? MJL'KY/)\E SJJ6:5(ZIF<[ 8DI -D!4 ^^I#%\:6Z'REC%W?G)>HLM !53OKW[6A-E MQ_:@.@Z68):VDJ1M;E;4]&]%[SI2P *FO;8PG M&&U2S:%N)BNL=&Z0C[$CS$;!M^U"52#9K)B)PP? <R+1< M?D(YQ]I_H%TN9C5[&=[&+=43]LVJ'Y@\)L:P!E/?/!IC;"J@G<1(*2P-=D\) M9V194[**.YJN95ZI0P(&Y ZMA"L-K1+DB3-A^(RHGP. MD,\C%:]/@TG>B*NJ>MUKE#JS85CMV/'=]O"-N(WR[P?C3*GZ1()V,.M$S'-[ M1PW!O#/?YRJWKFC/!46IV6!5(!M8>-K*ZFZ-%Z_BC 'U-SW^>7J\ /*>X"7X M26Z\J3O=KW/C;3U?S([73*@>[.2VFQ!545S'Z_A_(8:+8MWV7\9P-UKWBXAN MU^U51-<0U6N;=B\71WB[G+:Q?B^34?(]'6?5U ?3=@8=IPNF;YG()F(#8QK' M.O#ZHOPOUU;#L*K9K KA\]2OUC6>&QY \V!CKQ,^VLN"*&?V8_VX<)M.Z6B M4FZ!ZO>P99::Y(H!^BB MZKX^I;)7=]?;:O&?J+:>.! = \[GUU>SIS[@BT'[J4KKN9W>&_3&;_^9);?C M^OY+2J[G/[?D(MV1R7VB&*^NO'VW?[2]\C8#\_^CXKZZ0M<^J-/.3Q?QU?X? M4^QOTCP*ZI9;1:^E"-/8!J$\! 4=:*[*J5)L=7]E,@UV#HSOJMF0@.KNW]$8 M2X^29-'S8G)0E>2]#5?;^J[RARIRUX(>4=??*J4.!A#;VMBGN*_BB-7! MSK#G>.WAUE,;?CNVD_&M'N&DEI&9MTA(S 6 E/![=FLL/S]@5:V9_$9NG4G1 M"O*QS(XW:J][D6;$K17FOW? OV8'O%[:5DN8A=VF"M9[_?YWWT-5Z/[TNZ$A MRNM1=^W5T,YTMMCJ]CK>7RN+^8.79;%?N*]=)*]-7T =-KY12U0VX2_QZ'"V M3 OSN5K=6G_L=V:^<5MT-U\*?I+9A+Y"BM480]ONH-X:=HF!G(K&J!-C"3=?::EL42$(E62LN._WS.D[-B+U,"BV)=8%#EGSLR< M&3&G*^N>?$D4Q'.EC3_KE"'4GP8#GY542=^W-1GL+*RK9,#2%0-?.Y)Y-*KT M8#P<'@\JJ4QG>AK?S=STU#9!*T,S)WQ35=*M+TC;U5EGU-F\N%=%&?C%8'I: MRX(>*/RH9PZKP18E5Q49KZP1CA9GG?/1IXL)GX\'_E*T\CO/@B.96_O$BYO\ MK#-D0J0I"XP@\;.D2]*:@4#C9XO9V;IDP]WG#?J7&#MBF4M/EU;_K?)0GG5. M.B*GA6QTN+>KK]3&\Y[Q,JM]_"M6Z>QDTA%9XX.M6F,PJ)1)O_*YS<..P2='D>65#')ZZNQ*.#X--'Z(H49KD%.&B_(0''85[,+T\N[[[/KV MX?SQYNY6G-]>B:OK+S>WUU?B\N[V\?[FXD?T+T8'T2\HJPOCD9=,1Z.QP?PCK;A'T6\ MH_\G_ 0^>1V<^^F3KV5&9QTTC">WI,[TW9O1\?#S >J3+?7)(?3?I7X8?#3I MB__@0#R6)"YM54NS%M+D0@4O5J75>BWLRE".II][E2OI%'GA:VN\=>+&!')& M:G%/2S(-0^0D'MJ&G0Q'?SS]R2VF&"&#DIR:-W&OUM)X@9DD CS/R>!0$'8A MI-9BT6C="Q@=D4HM74@KJFIMUT2^+ZXWCT(Z;)B@@H:/8-%;3R2"?.ZQ8W+N M7YZ]:&H^QF[1AJIJ*O9I5S@W7PLM5\P"N\H)TJI0C_Y#7URUP5_N!L]1;39FSB+RWD,)>U.(6;2JY1@]H"#24U^;;> M+ZQ4*(4ROG'29"G-TB"&+GM6!F4J[!(*8_!>)0V^,CD89K:!,RZK5SY@+P$= MI-9%]$+6M5:91$G[^Q5I!9%8<^ M H^W1]W1QY,(]7;4_7 RW';"FB3$1#QM(9&,JCG4M)F7T0 /6&(C(C)MA25%)6$(-+BM;JQW>2"^*+ ,G5&32ESW^-N9((J "0ZDM M%!-'RTG@R)5TN2A0+[9$4)X&/*0?=5U*"OY0[+V72$GN[30 MMS97"\BSO>U$E?-,8,48&Y)ZV9X'A(+(2FD* HD\;6-69"'Z7DA,KZ74#6T" M2CZ[,5K&A$#SU.2QUV+,2LZ55F$M,HU)\4)E#P(9L"C:WD@4],S//"AT5%04 M/!A&543!C[I'QQ^3X,?=T?'XMP3?39\H3F&F&[9$+G%1Q$>PZ(H"'Q,71894 MY;AR848X&4L89?AJMWJK51ZY0Y*!6DDN4$5R,G4QXW'4CDJ^TT8XK*G_VEU@ ML'.CJ\@5\=[*GE#3=+G;OMU>C<_3C?#E>+I70_X%.D5H6L!TV/_POB-&PO=V]R:W-H965T@ KF.[R;1HDP"NDYE)MWF@=MO/M$19;"A1)2D[^?=[[J4DRWFA MN]@OB262]WGNN9GQ_SNQIT>VSH87:H;)WQ=%-+=?U3&;D\& MDT'[XHM>YX%>')P>5W*M%BI\K6X-T M24E9!(=5C7/A='Y]>7FQO#R_6B[$[.I,S*^OEA=7?Y]?S2_.%\<' 2IHXT'2 MB/L8Q4V?$3>9BDM;AMR+\S)5Z;Z ]C6&3AM#?PX?5'BF4I&XLUD**;CZ?0% M>6\ZA]^PO#?_+X>CN,.GQ5'-O/>53-3) $7AE=NHP>GOOTW^'']XP=C#SMC# MEZ3_]\:^+&YR-!(OBA2?U5H:<>-LHE2JR[47%Z6XE"[)*?[CH0BY$G-;5+*\ M%UZ%8%0J)(HK!3:U#TY2D0E5@BX2A>(-7':_W5[[^]FT[''_Y:SOG7Y,,?J'\#T>5:!-OJI[7)VP]>>&F4L)E MR7ZKA^+SYSGMFMU!U'D9E*N<]@J. $BM:%KL9&]SY90NV3+H%-(8M8:Q(9>! M7X("&\?DVBEVRXL$. ?I85]IR]<);%(!&\KX[*W1B0Z2?:^V(#GHC)+PE!(+R34H[2&8G+$<9R/!.'M[0=Q>#1D_:W,MZW, MN9'WX9=$3-Z-Q#*&H0OO@]R2IP:.!^%M#F332-S4SM<2%L,722#P#/(6 M%RP(^ROK<;Q=M@Y)A;\ HR)W<+:I!,9;F?9M&2*BXE-=*C&)M->82EN!A9HJ M3H 6V2(^?,WB99*H*M8("XNJ9YUEK^AU@W\^T1; 2'PM20"M\\*#T)"$E/RE M@!9.^C[R2U1,/VNM!&NOZ!K0XY)P)I7K$# MJ%X+YRK:A+K(G"W:<'!.99IJ@CLCNY(N=*A_0!,,7"W+A!.Z=K(8[EP6NJ"4 MD<7"KHQ>QPJ%L2E!7Z]JVBS3B<(#61-C\K/&CD@8 MC5G[F&@"Y%1E'8$'^#0H)Q0&&!/%=*\DY&%'BP#,0[6C)/?SG>RO[26I7P:@U\6""$/,#IA3^*;J&TZ M[&F8L6./Y:+(E41S0>J:6'4](J8%"5X U:I8X8'T#,5"9M(!-V01N!XI 8-; M1.VUW1(=^WKE=:JISO>1,(2.1"&J5$ _:JQOE$MU N^VTE&[$_]Z.SP:CV-M M1Y;36;;7?/ >&;8EO"'.@Y $0^%>#]D=;#O)!@;;VA/NTAKZ$(.5-CK@,/86 M.\)ZX%LDXYV\5D'7GX?B$GD^DQO0X3_R5@/2)$<'P#5]L#>F#'"8'E*")D>4 M4$<<'MD5!M&FC&FMY?@.6E]+32(75.]>G'%1P).YK1V:RA5RB0B4NP7(N3"0 M:#5R?"Y]B*NQSKEP'WJR%SK*ZN+[;-G6U,Z0L_H&'$^*2\1OD1-FLZ[(KWE[ MU^?/YHOKEN:&^XT=HGR=90TC(Y,:?J6QMF0LNZ%!\=(9Q$+?]]+1!OU,D6>$]59>P]CT^@ M3.D]&Q;S(45J;20'W)J4>YT9>@9X.4>)K'TT,W-RS>0.9%+@;WLA[&*RDLDM MT3,N*G0*9D?DHIDQMS;LPF!V-!EP#*ALF_H8-N2"5-.-1SF*F:M- ZH'H.WT M7MHX^4'%ISJ-=M+T@8$R4"\ 1#[+;9>K3Y?7GWQ[M\-GR[]'L& MO,-K! !E6;!:3Y60F#J-@?)U51DF8NP@3<-F'YM'S2@>CGVMT(%J*%+H#!W( M8#)J6:T?BY+8\CG_?UE-9%?T;\LL9,!4[:Q 1-6$#GG+Y,9RW'IULE?\LNL5 MRUR[E"8_77"U(?\5=8?'00RX9)M^.T"WIAHB)J@J)JT8R#VK4:5ZC&S,=N:VD5C'XFC M5,@AECK'4.2H\ VU5#8Z[MSRX942-%$59>S*X!U$G B^=MQ#$^D0)P)0 MPG5"UL!(NGU SK)G$!0B21;G-]9LF/6ZQF3XWH=1IZJ#:H89(O1FH>I="&FM MZ5KLL^3;51S+@"1VCOXWO8HA3;V82L8SJE;$7LK[T9YY&[VV8#^/&!/'E"D% MWRNSNTF OH616U\32,D,A8&P9BB2)EE02R %3Z2K#>R+:6)RBD2YNY 43%;^ M5Y'UJ\#J#/E?C45\U5V",)*^'B9 FHX:9(00@92+3)(C*I)/BBWP3*'[4:]LJ(Y@BSGR1ML"9Q"MMQ(4!ZEDXQJ]'?647L/ M#+?ZB^7LRQ_-#79^,^MQ M2WO]8QDQ>7VU)&;TU$>T@][GSD*Y-7_4)< BL/'+9_>V^VX\BY]+=]OC1^=+ M]!6J7J,R'!V/WAX- ";^D!L?@JWXX^G*AF +_IDK)-/1!JQGUH;V@11T7]-/ M_P-02P,$% @ XXAO5D>"H>YN"0 TQP !D !X;"]W;W)K&ULS5E9;^,X$OXKA*=WX ""K]P4I;D8 MK*W=OAZ/3;86&VY&:BM*>+)2>L,M+/7]V&RUX#D=VA3C. RGXPV7Y>#RG.Y] MUI?GJK*%+,5GS4RUV7#]="T*M;L81(/FQA=YO[9X8WQYON7WXE;87[:?-:S& M+95<;D1II"J9%JN+P57T^GJ"^VG#KU+LC'?-4).E4E]Q\3Z_&(0HD"A$9I$" MA[\'<2.* @F!&+_7- W^(6I]4J27J<+0+]NYO5$R8%EEK-K4AT&"C2S=/W^L[> =F(='#L3U@9CD M=HQ(RK?<\LMSK79,XVZ@AA>D*IT&X62)3KFU&IY*.&[ MV_.Q!8IX?YS5IZ_=Z?C(Z2AF'U1IUX:]*W.1]PF,0916GKB1YSH^2?&MR$8L MB0(6AW%\@E[2ZI<0O>2_U,^=GAP^C1GQVFQY)BX&$/)&Z M?+?_?PNNF< @8A "8K,4FL+@^3X,"_R)V"^CVY&O3[/C%9L&DS3UUM$\B"<) M@RR&'"T/G6FI!XMHOG=W,5FP]\XP?VZTCNTB2&:)+\8BB!9Q>^-N?9*.- N MELL"++)$[/Q_L/E-I;4H+8K8R?[M@OTD MG\:3SBGAK/5HKQ>[,W>R9!--)Z)V?I0NPQ4K _IRT M'"Y%*5;2GGU/?8?QY,P3819.GBDZ3+OG\\6^HL,H"--YMV$+/&6B\*[B1(4S^XIT&:= Z\\\$"0YE# 0^\Z/HU'(_M;\ ?! LV4$&^;"79VATCVW M0&F")@1-C7C_AW,+=H<#D<=I#8 \H3&0Q^#2KFTA@VG(XCYX63D!>5;"4Z'[1GBKMT)01%) MB<#+O!6Q#9441(L]9I\%M&TELI/@=<.B>!3#I@Z"O[B23G%> 1L->%LZ<%-& MNA(1CM)6D^;<)P@YS8;A*#EKG^/]=VV0MC(EL]$"O)A,R)FM9A[$@%W7'(Z4 MRH*:HJ1,N2_E'QBY(!A%_V,FC/$"V<4_>AQ:4L@O]2#<3F1*9:&IE+KJ4PT$-83-!#221+2V"OV+:Q9 &Q*AQ9)QC7)4AA7#XK(PXR M<5F*3W^KM#2YI(Z\Y8V:;S7VYQFZ4V'A X;0[Q /OE%524$)PH&?//OD/E0# MM"P!7^P34\@."*/;1YVQ/6CAQ@@P"H91J(# M/LFXUD]XX41W?&K/"+*5>(3&BG8<$036=9\"FPIE.AHN8QP/,/:.ZQPL>5?[ MWN&D\X?8@$ P:7FB&W8O'Y DN(&PU8"OY H,#Q8&ZVQ5V43+H8C(O\V4W-15 MX#O ;9D7PQ@->*9P%2=)K/^-@,INQJRS3 ME>@;J=F4!$D:>:LYU-(:G'R6W88P67A-:SQ-63Q-KB Y),[I(-M60BF7?SA, MSI2QQC-2QVJ:SFHTR_<-UNY*@SCI4#.")CEZWFP<.(7];MJA<1P%T21BOQZI M%'57,I_[;0VL%^$9^>$DIUD0ST*?<9P^"P'/ZM\>!^]+"X5.+@O/9<,TF,T7 MGJQQ,,6V[JV 23&KNYSVX2283+S*-DR"20C%X^]*Y3M9>)WA+$BGH;<1^JH% M4/W4\_]P%OO$YM/Y7O/W3&?/I/,@C1/?QB#+?+][/-+W@4OBU#O^"H)C-HT] M4Y%SC,&,00B!E@7CL$'FU0D,"7S,P9J#L8SQST377P"%W5J0.215CPT.9(7\ M*J V66A(J)S A64&R1,FJS)@4$HAX@*JB_8DE)%'7#FNQ1!)$C02=?7@.9GZ%$,,F;\ 88Y#C%4-Q=0\C&S2W'/:2$>8"]F ]Z5JZ"N M/M6VKC\[>L%$9;"EU)P)3MM"',R>0VH&T*D?ZN6DH;9$YVB)ZZ8LHAV;V>J8 M$;QR"C+NH"3P+4P86RWK[KYI:XG:(=[+)_8J;ENAIR-M-T+_B%U1Z=I[T!=I MS7/7YO:AO5=1702)QZW4=8/;K^A+<2_+DJ:;$EDD<$"KZGX-BV1^LEC_)=*S MNM13LG:=4:\KJN<^@RXZUM:B#! U*Z_;#-A.547..+40!^N_V&]PT:.OH"3, MIV#](U->ULX)N.K)ZF5?+7;/T^:8J\G"5.EQNOP?]!G?_G+DNO5;3T-/-1]( MXR!K(^ZYA-/&PW/_' M<>==F;]4&PJ H]K=>PD:M]B"DCC#HK#B]ZJ>/:%=G=(T ;=_ M(V!2X!,.)<5A#)0'*FH53)C:-3L[:=>@P8[FYFTMS*=2'!MK;GC)P3C/AM8* M_*MW* 5V(!['NH- KF!*&G\;S*KS]N<*F)&V('N#WL_L$ &40[?T,R\KG-'V MRQ3$HP"HQ;"Q-*(1M*T1VM<>X\S0(%<(>CT&AZ:-T/?T.0WY0::Y;T[MW?:+W97[4-5M=Y_[/G -<&E8(59P M-!S-T@$,I?0)S2VLVM)GJZ6R5FWH&ULK5A9;]LX$/XKA+=;)( 26Y+/7$"2MM@"*1HD/9YI:6P1I4B5I.)D M?_W.4(>/V$[:[HO%:V:^.3GTV4*;'S8#<.PQE\J>=S+GBI-NUR89Y-P>ZP(4 M[LRTR;G#J9EW;6& IYXHE]VHUQMV[%6<'G< _N:W%K<-9MN:0B!V6%5LS [+QS&9Y<]>F\ M/_!-P,*NC!EI,M7Z!TT^IN>='@$""8DC#AP_#W -4A(CA/&SYMEI11+AZKCA M_L'KCKI,N85K+;^+U&7GG7&'I3#CI71W>O$/U/H,B%^BI?6_;%&=#>,.2TKK M=%X3(X)SL(HIH@\K@K01[E.^[XQ9G1"V;H-'*C@5?54R,X MH<@I]\[@KD Z=W'S_O+^_?U9UR$O6NDF-=U511?MH LC]DDKEUGV7J60KC/H M(H@62=0@N8KV/M7..R=[D'5;U'U]W'?@VH_73@Z9E\R8-8P\E4:9>@F"\9JL M@?G$M&&&DO%(SXY*W#EX^]ECIQ["H,9MIXXY(:&/4@_J[ M$"Y#]GX+4;L%R =@>17V2"G!VL,UI,0^')U:)E1BO#FX9%-M,$C(M(9,(ZS7 MU8])/F:PQ+'ATINT/6W7C9B4QI 146^EK_BECPA4+;(1)*MV%]/I9C[,"&L%D=V)B -*LB6"C)64C1TL.(P M'RDYZ2$X.:$R"\]UB9A1\(YX,D"ZI^1171JFUZ,070"&8A$-)?'ZL">,+-R+ M3W_Y>\4E5Y0/_J;C24+ +,.B _D4PZ\I/.S2 WU9T(Z$V;'<4+UAXZ _GKP: M]LW25B]#NJY"Y->QKWKD,DE,">M>6J*/@]$H9C=:S7W&_)FHELVFW[<*;[[] M8#(:&^5_71B5U5*D/L:MPT_>B"Z!_$(U67#4GDK8<7134!C$ MT:1VS]()@R >#3W;CRJ198HF>E9W@[H2D2M$WM22RB8+WUW1C8-W!3:+Z"OJ M.)=@VAKT[&0JK$_VMOK^/^;[_BI$!T_ C3U\+NCS9J7;/! =#Z,783T#L:;L M;O5>(7TR_+N=^5)>%$8_BMQ?6R4V&D#MJ,C+?/,Z+[$AW%+*N0_GYX;DOQG1 M2!RO1!@&*_:DN-A?G@@F@S$M#5:B-P[9+?; M^Z;ME;DJ<\W\PUX/&6K\L$.H7:6T.DKH=I3;\GR7Y\(_\5RTYKEH$J^[,P[& M@WC3F2/TXX8SXTFX[LQ^;[C->7%S8>PPR!),B')Z2R#W95'(II%+N,W8#'5% MQU7/X>IEVK8PM;U^L\;LKC77)+C@(O4-8]54^1Z3*FG:7#8Y2B^KKG-KL.PK M0JUJEAT]#X"U+.N/7M3@;K7[KCL@/:6'2H46'I.,JWG5_[X"YXMEZTV;GO7* MMI=:=^65G(.9^_\"\ E%UJP>S.UJ^W?#9?7*7AZO_JOXQ,U<*(LP9DC:.QX- M.M63HYDX7?@W]U0[?,'[808C10%56<(D/&DQ5%$QO)BC4>AC$ MP6YAQE>Y=0OA:%"R%3ZB_5@^:)J%#4K&"Y2&*PD:E\-@'/YF'/H1<=<$BV#HGG70?R+&^89:.!5FO0SIK0W,!+]=Y$CDMW*(]6TRXG M/SN:W?XUGM_>P,-X-O\"\]GX_G$\G=_]??\X""WA.ZLPW6)-:JSD %:

.>-VG./=_Y;U-98G=>Q MW&WIFY*E. SH.AC43QB,SD[BR^CZ"--.P[1S#/V-3(]CQ;TVS'.$J2I*)C<@ MD,K8@,$GU$Q QHW5?%'Y6[)F&G-5N7TF,[IVEG$!5(8D$99:%;0DF,4,2J8M M1].&FTISN0)+$3;(M %TIP]T=E@L4#?GYP%I$'O3'9F"94A8&[KH=A7G2OR-"4Z.^ZV, ZYVD.I FX3$7E M4+E\(6'31*"-/6)G)[TD[EX;2)4T2O#,>QA+?S55"DQ/HV8N;37QE#PI>^[% M>O(!58%MH,>CR8B&E^8P5Y?7.J05W,FVW M@'D6#H5X6TT %&^Q@<],4SIATMZYMT!5&J8YX_2V2:?&19PHIK,^G)U<77:O MKN$T;D511#SH&:<"YRDE_.5!T+/ZK>*&^^(AD.F&B:K UC;SW/QWB6]$)#\5 M\7UH0R4H,_I(4; ENO(^("CC5*VVL2(FYOLJ9BOZ-)H]FU*K%#%S0,"RS*>. MKF')N(=,6N5;* =325OW&Y% +INF^J)5:5O51;*4N/CASEUFJB= >TOE;*[B0O0]*ZC?P!0 M2P,$% @ XXAO5I]HM2"4 @ SP4 !D !X;"]W;W)K&ULG53;;MLP#/T5P1WZ-/B6])X8:-)N*X8.1=ILSXK-V$)ER9/H MIOW[4K+CI4.; 7NQ1(KG\% R.=EH\V@K &3/M51V&E2(S7D4V;R"FMM0-Z#H M9*U-S9%,4T:V,< +#ZIEE,;Q<51SH8)LXGUW)IOH%J50<&>8;>N:FY<92+V9 M!DFP=2Q$6:%S1-FDX27< RZ;.T-6-+ 4H@9EA5;,P'H:7";GL[&+]P$_!6SL MSIZY2E9:/SKCII@&L1,$$G)T#)R6)YB#E(Z(9/SN.8,AI0/N[K?L7WSM5,N* M6YAK^4L46$V#TX 5L.:MQ(7>?(.^GB/'EVMI_9=MNMAD'+"\M:CK'DP*:J&Z ME3_W][ #.(T_ *0](/6ZNT1>Y15'GDV,WC#CHHG-;7RI'DWBA'*/+FQ]=)A$3I#J*\A\\Z>/H!/$G9K59867:M"BC>$D2D91"4 M;@7-TKV,5Y"';)1\9FFQ_UO(=I==DUZ9_P;M3=@;GS+KC32 /#;BB8N&!= YVNM<6NX!,,,SUX!4$L#!!0 M ( ..(;U:246L++00 $,+ 9 >&PO=V]R:W-H965TY#=H,D;=%'6AI;1"31)2D[ M^?L.*ZZK19Z M)#?8T,Q*JIH;ZJIUH#<*>>% =16P,)P$-1>-MYBYL1NUF,G65*+!&P6ZK6NN MGLZQDKNY%WG]P*U8E\8.!(O9AJ_Q#LUOFQM%O># 4H@:&RUD PI7<^\L.CE/ MK+TS^%W@3@_:8#U92OE@.U^*N1=:05AA;BP#I\\6+["J+!')^&O/Z1V6M,!A MNV?_Q?E.OBRYQ@M9_2$*4\Z]S(,"5[RMS*W<_8I[?\:6+Y>5=O^PZVRCV(.\ MU4;6>S IJ$73??GC?A\&@"Q\ \#V .9T=PLYE9?<\,5,R1TH:TULMN%<=6@2 M)QI[*'=&T:P@G%G<77V^OOIZ#Y=G]V>SP!"C'0_R/?J\0[,WT!&#:]F84L-5 M4V#QG" @*0<]K-=SSMYEO,1\!''D PL9>X8_]A]K>1[-P!-]:!92?BML(U\ 50B[K MC1(:"Y K,#M)F;.1RO!EA:!Q3?ED] G<*%FTN0'>%' IM%%BV5J.$=QU-B": M+N-MZ@A-M)2'VMB9G3 EE.2J*6FY4N"JU]"L*2%RX1*VY@^HX.C3AXRQ\/3B MV^6U:T:GQSY(DMT!\1'SUN8EJ5V)')5/>KTLN-9H?P.!U'".-3E:9QLA%9$W= $YMW'+JY8;@NPW M:PAP^4\;VWR?5'(ES BN>%[V@];/*#W5^TF[>S5RW2JT@F"MI-8'X#UY:3?' M6C72$6Y%@9WTYZ<@U< -?*1KV7JV?.K7'8%=.8Q/__?OG\@5H+T!@/(7ZR6= M?)_#_YG\%BGV?80X&_L) MBZDU3?THG!R8/L(12_S)E!U3,QFG?A:G<"&UL6FUEK*@ )%5\4(!BT.?)>,7 MX^G$G\3QBV&[2!I-CU_R9,R/QE/X/(B6@;AH//:C-!N,L-!/TG@XD [MT[$_ M&=C_1!$2_>01,J&#R*8V0D(_3.)]9$R3Q$4&2WV69?\H,J+8S[*7WDY2?Y), M7XV,:B8SQQ!]/LSI*MJYCY,:524MIJ.ARS9*J7%36@.974IJ^8Q&ULS7UK<]M&LNA?0>GD;ME5$"U2MOQ*7"7)5E:YCNVR[$W=CT-@2"$& 2X& M(,7]]:=?\P)!2'9R3YTOMDAB9GIZ>OK=C9^W=?/-W&K=)G>KLC*_'-VV[?K5 MDRO,S??>I M>?-SW;5E4>E/36*ZU4HUNPM=UMM?CJ9']HO/Q?*VQ2^>O/EYK9;Z1K=?UY\: M^/3$S9(7*UV9HJZ21B]^.3J?OKHX/<4!],2_"KTUP=\);F5>U]_PPW7^R]$) M0J1+G;4XA8+_-OI2ER7.!'#\6R8]WOYR M].(HR?5"=67[N=[^4\N&GN%\65T:^C?9\K-/GQ\E66?:>B6# 8)54?'_ZDX0 M$0QX<7)@P$P&S AN7HB@?*M:]>;GIMXF#3X-L^$?M%4:#< 5%9[*3=O KP6, M:]_<7/_ZX?KJ^O+\PY?D_/+RX].? MG[2P'HYZDLG<%SSW[,#UVUMR9Y5^4ZCR=X H Z:&<6VHO9Z(QO=39) M3J=I,CN9S4;F.W6[/Z7Y3G]L]T-;Y@F?#D^(=^B56:M,_W($E\3H9J./WOSC MOZ9G)Z]'P'WJP'TZ-ON;#ZKM&IW4B^3C6C<*R=HDJLJ3"V4*@]]_PD6KEGX: M@O[OG#^Y5#D\_<^ZS(MJ:=+DNLHF:?+VR<63\^3+K4YNU$(U18D3_-K4W3IY MU,*W__BO%[/9R>O+>K56U8X^35^G[FNJBJI_09A)^=K@#.9SI"PIK,)02\ ILDM,+M_=ZII M=:/SI*B2WU3VS=35IBA+G2979=T4N4H3P)!*EF4]5V52PAC=X,,K574+X#U= M T@B8//"M$TQ[UK\PJB%;G?TO>F:3;%1\Z(LX)MU4^==UC+^:T!< TRP5"V MX'X"IIP@2F&;B:[@4Z:!8;9ILB@:T\+S9EU7" ?.L<)Y@?$"1,TW#:R<=CGO M#!"!,8(0;6!".*OE;3(]Z\&^AI.$1;=%>PO[PG6_3F[@P'_7=T56IT .E4(\ MT"]5@9#^7QB7URL@C5:5@,JK1E69)G#>PS2=J@K%)PA\NC1) ?.[W0$[+W/@ MAMJ!A#_G10,,'?!6:D) !D?@,0IGF=VJJM)E#]7PPQJ.L-(-$&I-E)\ !IZT!^> MC$Y391E3+9Y7YGZ&DU@4%:"^ -(T<'N)3$QRJS9 5H#;AH->V?RQDF:G X* MSYI..5EJ0)TJRQW^K-# @(?FM@W, $3CERR:<*M&+!5P-/)GDV%&/BM6ZV! MKILV^=@UR87E:3?X5;-PM,-\U"V8<"]QM ME[3;.MEIU= ]4C#P$!-(::JY#J#'&6EIF(=:B]$U1@$H@HQ]L,9...A4\%EXT@0^3/6X6L#39;'<^+BJ95^:8P-4C$ M3=UJ5 .&UT'VM00>I$F$J.RV:Y$V@(LL>8$)WDF5 WX$J@/GN$LR^*U5WS0N M#<(4S!XZ'ERYU:@C,W,J6%YIH*Z<"(\/ R>D\ZC V*E1'P#X8T8,)U/E@#62 M[@4)4WB&S)\2## S!AR@*0<-8\?'G=>,4H OTPUC;V"=!+\H84AM=/#MMNY* M45NV "-=!5H!),4&2,]3]@3O/W%ALM28^-1&P:2@SH$@WK"P:^/M"'G9"TP7 M5Z'D!FN,+N\6M#,A;90.?Z+2 #,_ '5 XC2W42NXN&""(L/Y2[>75"VP-D'= M2'%7#Q#-*S@'@9ZF:2P;84SCJ<1 A/?U\"8!@17\G5D.1:B-=F7%"-X"A&]4 M"7KA9,B+4=;_E4%^9P"=..>0\/B^&4C=8:U%M9X@C'X ;H4Y()(KQ7<8,;O" MBZG= L1C)MP(BT&FC^A=.84%GM>BLI<%:_*%3!4R.3P\.@]<^= 8 M7@6W88E]<#.LO Z# P2@JX[U;7V'# TFSEF;]V.(+HC73/ J=3 _WR,#8.(U MS@O8=>.8JPFP-$8<+QUQO!P]VBM5-,F_5 F _JX58HAV-D0C/S11:,T!-V4^ MB-M?=@6KN8"JCC37:[(Z=4 MGG1@ZM'C)$%0F:^R'>ZLJ-8="T'\=0,0N@L#PH"H#YF%I;U=(O,$ MT\+35\G'.7HVB"/9V?%R (=#%@XB0>5_=@:)\=]=S19KD;&YEH ]!VC.@,B$ M\(.UB9DU*K=V"#$A9Z[R\K-7(&UI36;)L'+56T;,B=R:J@*W9]:UA]^:T/MX M2!-=T IL<0)O1>@K^RFEH6AW +FT!9E&=%H=R!TP/5;VUN[/;+=R^@KLY'H< MER$'4O,:-+\M_LQ((9.V ,.+#7.ZK)W!B0@5I.,,(IE)1@YZ#@0'0]C#2ZH" M2E^$*'*$(-%/G[\V 1LJ*C"O.Z9S9+M@;5M3D/"!C$X94*:=40>XTP7M-F7N M77C.E,J)9EW3>,88#%ZK'8^$;YI.1_R2%.0:!;:ZLP\RW]7SEO>1@?IXVQ:D,7X^/?$^Y9-11GP)."+XZ8]W(&T!K$,\_4?G0F\ M7W,TU^U3](<.GL+[GH.<,X7XKH#XJV]P"O0D4/LM(SKR!ED*03R2V,O 5@'; M&T@H]A]X[;6J46JV<.V<5Y$TO4. C6(Z\-Y/1[%S;DGILZ/#01Q_]RS)%^3# M0W1N;SHK//8J;5EQ#]T1A%?#NDH..BE9?F2&D"]FF+D AR-%G.[IP.+>DX/& M^1VGDT>#,0,)+*8M M;"$"<8]0*&2#OL-([0AE.IDI&!GHK9_7W;P%\>'W';%I1:8%"O1#&$$J\Y"" M8@$4O>L9IV:M,]1I+ S#2+&[\*" I?"MJK=5N (P(@!@!8>6 0^R3*= ]7N# MV@@')!;Q 4($H]3I MUGMC/(9#'5L97XQ&[WIUQ6<#)!%,6R#/7QT$OZ-)R/77,P6P 3 3H:. 7L\ MURAUR&.'OKFEF#.-:8^+2L(5QZC<6"7[ZOKJH].R$=L;T':7FJ8#S12,X)R) M"MD*'$M9_(P[YA!L@:%B7.[($8!'K MS77#D2.)@&@0+6)H\)TG[1J5$!B#Y(B7DK3N!3"B.V 5*/V VVE$.6'1P'D= MK^H-S@LDN>+9T" .?"[$!"J-XS&,1,X[. MALOPS@,1T:4!2GZ5/"H>AZP,-+Y5P0:;HI@;_H4!*6]-O(8Q,*@@2#H _ILF MZ\/Z#( MU0:Y'8XF1Q@ZP8IE1=9LA;;,BDQ;Y)D-N2;('P$J*$T-)S;0LN=;UJS \B21K>1C,D4% M4R%?@KCH/W#K.DF[*M M@;B5D ;RYW7+&H8X!MWBAI5B^"@1 N_83?%@LEMB*GQI6(Q@))>A\90P2=Z& M,! S6Z$>$PIGL&04R2F*E+/$)4'68V=>(>N,1G4'BGK@_]?= 5' M==E,6*&4$9G]# GT]*6$KZZZ!O;3-7R_%\4=_FW'HB#U_R1AI@(4V^ M53+(U(N6/MA!ISCHF8SY767 "G33HX+XX1?RL/WR/1[];5WV0*<5W5UQZ$(B MX&N*GP90MG!L+9@NL=D=P<]$#0^$W/P'J)TR M9)BD"6SVF@3WWVZCT9CFAZ<^ #A1ZR3Y@%XD=""OD=Y8B\!0?$6*L>@6;+JA MCX0X!UPW9(\Y*T1(M*CM66^DZ.=]WG9H/\2VT9 SQ*TPL+]A5;"AU) E.0B3 MK&C@3J(=QQY#U+Q:[67HP'JAMY3_6%)64Q"J<;"C[^QZ(7PRT'Y_9'YAR<'< MHM8: M#YZ%)1!/V8'<&5F8Q27SJ%&)X9-MIN,),G0OATV;APSD>QV%9.B+R"_7\#F# M-O4?+XA1:],25[.'Z4/$2(B-WB<'U!@J9/@%F:ZD3?"*^@Y=+),8H$9;+8NN M(_)G/"%T^<)Z))PX2LPX=NEA- 68.AY \1R] +(&(RRAN45 MYKA9K.)8%RU(:AOGJRT31?3128FO598DIE+$NM[.>9+EAE.05F:T&KB^TTV& M$=E)\B_ (-WD/<3JP/8<8I)1PI1=%)U4/!.*"A#?)0.WG7!AYXT$W=S(X]M^HN#,J(*2X4 M(_>.'+/**OP^@#*=@:5"*<08P2!=2H+M3K>Q40QV@R64"ITZ8T!0:.\".I:\ M%[SDQ4FQ0 <5YX0"E<@/PIZ$3!&%/;UHSGFQ^R2)@G#_2$3R"2)\L@I-6"^. M\2);#\CGCU]]CAQ=Y_VKN^O=%M;CE'BFA]RK?94UR6O")MI_E.)1[9R7 SUO M18Y2@&=?=@I.M]6:#B-\BKW>E#:S0=JZQUOE4^:FXVEOO]9U3I<'MWX-$%:< MB\76^2"7_RL31OX89]P@Z;H'A;7!-S5'8Q-4&Y;DG7F5H$V^]RR1-N6K@?8C MVEB0D!*K_\7A*4!'B2?!(0*[@JG(Z@^4F%)6PM!_"XA04]@L';C1@"108E32!WH-[UPO-:5H-^000 MQHX8BS>K9"P"4JJM\6[QLL[H+BU1CK'4('V>,S!0.9.TDT.J=\BC@6=5]4J. MH6[B^"5FMK6%HQ)W9.*:>(1,(=>6MZI-FS@^YCG$43G6-, MJYAN:!P=B_CKPQ6JV )2<%\B(F$7EE-V555U*&S)#PH@8QP'=%]-7K)B$5H/ M(R:#@+$BE6RN90%KT@0^7B0F8X.NM'0(#.^5L[(^PM'- 3^G4\ =!G&TQ+0P MP[8W0$^;#3=4E=T0(F'(;!L73*^A=, Q$9\*2N5 M6U_@/3CM8]"'JSRB[T-JG #NZ$MA_N^Q:?7:DTJ/S)@RN5"$'BRJ34W)EDHR M#@OC\RSO.7N,,(3 B9_I^J#M'F>?T1QH8^J<8QY^.=Z@03K(&4X9#>HEV:3H M >9MZSQU3!/A%^$&^R[111E9H[VU'9)?*4TGG&=_QP='[Z'0 M;C\$N6]%*P_IH,T>ZZNDSEF']4)XK5C8(/(-!'+'$VD("M7TE8H M506E?'!/[7>8HXO,LF_^14QVDGPEA^O G*F-=%B/AW-U8&A#E^%V@JV,FYHP M]9_L3 D=)RBDE)>3\E"0H4U>W+ZV'&@7^\Z8N=[58J#L33=)+D"*\RR2ON)W M*3Y@,F.C1+%(87*>YGF-F$#I?<1TYJ/(]U M0^$@2KX05GY \!E-V>T;M%U8V-&-PTHU46,E=[IQ.;AV]_)59[P-V:.)D%SV MR,TGA*PPO8-JE5B1:2C\$5"TKQFV:=:-)+[8C&LZ\< 1'Y44T8]KOL$<)!6B M\O9EKEK%V1]X/?:9*; /DC0MV\2YS4$%>$(__@"*-5/5L+S"\9$B%:A-L/!6 M?9\*0,"[A)2807 R(FA"H&ZCI3BB%GSQN?'M$#]RL"$H$Y2%W^CM6Q)D6FV*Y)+9,AS"POFB1 M&(AZ>?;\Y6OOKU Y/(9N&0^%@_NW.T.;<6HXW"3>R0 Z6;]WIFV'J<7PC>8, E'UV;#EW0M9 M[A.O5+;@D_;\T"IC:UA0:6L5,#,OKEK?3_NR".@7/CAO!UIL?U#NAJ4Q"G)N MB'EBY@"9%@>)+M!%T8,J[(#K;OY\4)A&G!'#"F1P2(XY'(3%[@@5>MB_H0L; MVHJ]&0^8'R[C ,A[)[6^*RSKW[&P'%;!*%X\P8R9^SB22\!GGC3?"4T^" N1 MT3 4?;*G>9^N',3;@W0>)"*\"8(KJ_<,VC.U#WQ0C&<_?EHTPQ%4RB'.BYRX M'KDN*&-TW.] F5I^2Y26VNRE<_@6 1R^%HWWGFB;KPR>CE?TNKSA3YRG^ P["(C">)P>'FC%N3T#>*@]*-+O<7T<8J'!.FR\-!;4%96[,/AEB6T M"!=NB\I+Z45$ 9'STK'K0Y!X 1(P#^%N405<4"IFP::'1RG U_5-Q\OR/DN% MV6>^2H>Z&GS_+#W3M"'7G:UG\RS(Q5!L:IB35+:-1*S0N"OO)^-4/>L[:Y(PQ'$FK"Y5Z1[,/ MP&)&$?QE*,L*@W)H:2QTXUSN#$3M8GA.@@C@O/_#LP>>0;\0:V^(D;IT2[H< MDR+,CPW4=!KE^Y9@4O!ML5Y+DJ%&OM1X?[O#+):S9]9C:4.Y*A2EH)G1K C" M@U)3(/,U?("R#W;LK^N"F2^17UP8$I(=\MQ&PD9A8"*L(@^HFFC/51+8:TVF M#A7TY6! DZO!(01#H8V-&3"5[CQYI-8ZVJ6V,"RU]:VUR_(CTQGW&L-^"[S, MH)GM@QMV"Z*-H\9N XC(JK$L4F#&<, (.-1DF:!9QSBYF='*#/;B5H+NGUQF;QW7?D;"P.[#JV4P=8BH_W M4$F?39]S+@9TN/B(?HK2@KS,\EQ!9?JA9T64,/%1 3M!EW"]I6JD6Y_Q*CA4 M6>B,&T;\)'G+Y1I8#$Y)!"V'.M$8KUS"O.A44NW!J>/LUW8J)1N/KFQ:LKQ- ME.>K#C$@FQIA2]5EV0IHZ)CCZ%>DP*!V=8B"\"(RX5O\Q[J=]9DA6,=M?2P% M ?Y@TLAXJ=$%YG5)V@S?EJ#_4G@$YD?PG_;SB-B7RFFB%$I7;79[#"HNA\J* M*M!EO.7&#-+FY]ML+5_#+MQ.U&"^.)R)''D%:<]\;*0)'Y07UFY7I$2GE/QL M6S)851/MCJA4A_1M8_Y8:%$''IDRS3C7*/W#_3^#=DZH."QZD7H/!I;/F2E:I8F5[-%UYD*O%Q MF436G\"<+#X8QPX"9T%C[Y"(T0@"7C-FBEPY:J08&1- W1;VA[HT&_\0C1&F?">)-\ 4@-@3&^8E6,V*8.*,)-7:69Z[ )75J5]U( M]S+VD5AHB*D8Y\A$R52":G\I24F$!=0Y;*\U+.XDJ;# M!44$5*!X(^L<:HW M$1F6IO#A^WJ"$);AZ5UWA?YT^]!:NC[YI\3TME]8R*7PQS,ZJEQD018*[U#L^/<]E\8YY#B<32,\'9_D_/\@U;<=;"/VG5.$>07C M%7[.-B$/CNN?M;43!:5N5,*I%\2ZBDKB*9QQ@&UF85J\45A"XT;;JM["1/6T M*I9*;"G4E"K7]/6,.#[9WXM4].(LP:+H S*BG_AZ !NL"VGH,"_ZFRF%4PM\ MVQ+RMEAWE VP1_[B/0AL1P39*,L&:WV&FQIJG3#D!XGR0Q]0H/*]__\_X 4) M]_"*W#ZN4 7=/^CZ22[TLJ@J*7 /-^D2?MV@GY)I.GMV%GV>GIXFEZ+$B6XD MTMT^]6CV_,5C_^GTY,_ -C3IX> 'VO_ MZSM+S.[I!B$D_"N1\ V0\! #^>Y)DLNAJR'>P;#R-UEW8-PJ:NX1%?D>6UE+ M%<#6:K"\W7Z?>CDL3S2Z6,V[QHBK\X#Q;(V0$M,$<;;A N,4HROL_I<1]U2; M26R*V*D[5QHZQNUGOCW%;+RQQ(V56K^*U/J'6JU?@QX9R:UW(K<&C_+O7""Y M>;@4]>5V2*=C6=62*@@W2I4UGP1UGT*'T#90Z5'F8_G.3T_3Y],I M!PI.T^GL).REQ@&6 0$PZO>H@<)Z,>F M2CX?8J$1=N\KK'&MP_X7H#[Y0MZ9<=D@!/H\/7EQ)I&L].G922_\][W4&76. M",\&?I MBY?/_AK"QVZ9+YJ?C=>ZO]7S-KDVIB-U%Q6;80X].LOPBPP&II:27><8M?;3 M-48\,#6!<#Y[G5R[TB3$LOUYPC;QV,9][>=LO(23FF0?7Y 0O@R$\.#N?VRJ MO5BB]?ZZ!\)Z,^S_$6H&BKW%2ZJBZN6]#A3,DGN_9SU22 ?'L[O"UEX1%6.+ M<%DB* O:*^M(#V7R#4]&;B!ND.Z=ABZ\9MN3$DS.TXYO_=#'EZHI:]>(D+)R M#P9CV5PS+C=\ &WWE]]1BQ&#!1^QWZ:'4;*4W<]#-) MOF+H;X,8X!Y@]'1AYB FS(ZS160UU+>(*%MCA9&@[RA7UBFP&YN*6L+ MODO,5JV#F*#D4[@$'9 #F-U&1'BKH6 6D,58VTD N11FP@*5Z-?T?7PIN:F>%B<+!2C).X/H1B< MG-ITI-QCRN6G!"O!8=--(6Y%>E;J"^5S+JRRI>ZI])/B7=B0G>O9Y#/+I8^9 MCOIK2M\E 4MJT@-(7)-W8M,I=YPJ@ITL"@K<8TR+W MQ]!^'FU&#L)>EB#H&\!(M,GG[*DZ/JT@U#\9U85\9MYL/*WN,\JGSOJ'#BN! MH[,,\_^!J9/X.[9(@H; -E]TXZ:K90O MV'=A\-0?/KP?:^;L1M)37&MB;3-JQE#V_.D)O;_'SXQMJ&QD4=V--0T)[IO3 MF;DGO:;LR[ENMUK8U$"/_/W&S^3I@37G1$'U:-]^BNA%C@-;L(>=8= M8F?V91>2H[2%S"Q62'P2KZ(:=DI9'MPEB4C?\72H*:^M-4+E2OO?D<*& MGM[[GEC1*'8M,HHAT[:O,^(5E-ZVK.S-Z0QX?_BJE][94\B\N[)LBVBU4 MNPG2MCR#?U$U%06+GYW\'_L0IKQ,=OU[L>);J4SEX,NP@+D40QF[%5OW86B))9_<]!DD/!#UNCA_F]48R MJQ:B(9%D\[U(J--!%:0TT16S$ UE/<17!;!:VS?<$+OQ>W!& @4LX&J4K7OQ MB:LTLVG=DEK00Q@^+PVSE!4H6,32D.P(V]_[]PX-N8YB3!9Q8YL/^"*AZ5D2 ML[HQINX#Y[/QJ/=YT$/P(\%\&;FF9,%'[VLS_*[.OW/^WF]RH1Z5]%N8L _W M)% YT<3R+=U^/T11:F,@0OW0L4,^R/7D@A0\Q6);EKT549 MIY%)(!I?5-*Z@DMZ1^#;NBR5I&>U @TS@CI^P.?: IK9OF5QB?3&XDI,C(C; MB #[/%P\%B\:M&^1BNEH*:RJ05G #U'3"&QE'1*CEYV&6WT[UA_/M"A1B?;O M);5 D,(JA^10=D"7\"C* QR&+4B53:%VR:9M<-Y\USCY7:O8MS?>&AZVWJ?"(_B>K'>27)O!JP$SUWP3]<\O.7UP((Q M%^I=^UH$"&X_E=N]O_GO#C*X5K"8+RXNE>%W6OJTV#!E/^PRV$C7#I_+CCF7 MS_SV/_O08KI@!8#> YN Q M1QT,W7*VEJY/ <L(%] G%Q_;^-0D82I*W?>DS ^"2.T_$!/4OAKS I;):> MG4T/KO;' S!W3)&?S+=H/DNG)R_3%T]]\MGL1?KLY8OT[.4L>>>-5HMIH^%V MT&W]_D3 F_W05/\1V.*STY/!&3 4^K MYD)^X29GL_3T^> F ]0[ MW?VT6$ MMI^2D\GT+/H(&'S;6W?X*?OQ"S6VI6!X57L$A_[[(9K?': I)*-1KN4SE4[' M4XP^VSOA@,9:$"XJXTOY+(^B= : M(I]E/'7XY[_E G!S$*=VK7FRDCW@>ODVK ML&;[0N?NM2DDOE.!?8MYO_1M6[2=5$B>WULD'2LUN7^1%XS[:7J23I_RTS\] MAXMP&F=3I!10DPW$D:4 A(%73.$6#T2B*$Y$[VBD-T]]S\%-DALJSY% &75V MD_QSVVN7NB,$MFH-2@,U!>X_P[CJ+8'+C#O>=R1) M/:E_KY,N"[W1TD-9Y=BRAJ)L4K;%VY^=C(]XY.X.K^YX+0(&'OSE7XYQE>! M2QOH1Q*]?SI[;+^"B1R'@,=?'ISHY3&(W3C$\,C%'AZ_2FZHJ]YB9V]1 #L> M933P\+X^U"TH1*W# (#W6U?I^_8X!>;DA<)UP%.L4B#BXST3DD!^.CM['+Y. M-I S[YVY.C@OW>??*7\.6.F)@.:>''S=[46-^3'N%5RP#]>!VNYG:-C7-9EC M_OVXOG$U+GU\\C0%RI& 0_(9G_VLJ9C='?<+.)\K#LA%8=1WWFQ[\H[??2#V[++*[+RPE7+L+WM>\ 7K,K[MP17ODG$*G@SL+QZ:R]5 MH+8Q1MOH2E*Q@E>\D_7I5FK<%AL..=@>ZSCX?5WE,((2YXXO0.@F'XF7YXP/ MB_WWUQ3O'8>>PK,M>NC%Z=%!%T4 M>B=A6SO A9Y33[E]]4(")SY.R=V".5^)&?BA,W8=\,FA+6^2HA-*/0%ES71J7HE_*=_3%7QQA-BCU%I[R7#\1IZPQ=>.+8)RH) GI$DLD"&0; M_Y$4JT&_HZ1!:C*-E61!6FWD1.?M!(1J'9F7]O#24$KGM3;2LXW$M4_K\&E@ M?C+G=I%5Z@0)AN'G]D>^W,::Q+;?8Y0_Y@HH"<63GBW"AU7I;7@IC>-:#D37 MH\,7*@L4W@IW\-A&W'5/!7(-QC@I<\"G')'WH KPA'Q;;U6KWOP,JL=27^JR M-*Q[_W*$[AKW+5Y4K+5\=3X[>@(C_>-O?E[#J0#C7Z*Z4NH%##V9/']VQ&\9 ML!_:>HU3)O.Z!3V'_L0"(MW@ _#[HH:]RP=< &L>";PW_PU02P,$% @ MXXAO5GQH$&C> P [PH !D !X;"]W;W)K&UL MO59M;]LX#/XK@C<,+9#5;[&;=$F )EUW :Y9L'0WW$?5IF.AMN1)1478@"./Z3 M")E3C:),6Y-1M;>4DY$H=<8X+"5199Y3^3*%3&S& MEFMM-[ZQ=:K-ACT9%70-*]#?BZ5$R6Y18I8#5TQP(B$96]?NU30T^I7"7PPV M:F]-3"0/0CP:81Z/+<<0@@PB;1 H?IY@!EEF@)#&SP;3:ET:P_WU%OVVBAUC M>: *9B+[P6*=CJV!16)(:)GI;V+S!S3Q! 8O$IFJ?LFFT74L$I5*B[PQ1@8Y MX_67/C=Y.,7 :PR\BG?MJ&)Y0S6=C*38$&FT$*>7,]F7[\O[N>++V3Y]<_Y;/YY1<[NZ4,&ZGQD:_1F;.RH M09[6R-X;R*Y'[@37J2*?>0SQ(8"--%NNWI;KU.M$O('H@OANCWB.YW7@^6WL M?H7G_[?8CX5< _:/ YH&NE(%C6!L88E!DE2*N,-;8R4 M2'0E;(U\8Q0T-GM#D/3LUYE%*^QI@8)SI%RE$D M2X@)4I:4:P9UCB1D5.-V))16QPZDV]^_'P>R!_P*R;#FH/ M!CO)_+AD"FO&.9[UZ\A>"#SC$Z!V!_.>N#TO" ]DU_?)K)32G F6)A.8@HRR M?%<#9][EX'PG^!&1'GT#B$T<45CS&A(^CTK0) (N&X^/+>"1R M(&>94.KT^< M"S<\$#&#-Z_\'M?JZ!I[;PC)0:ZK44OA15AR7<\C[6X[S5W70\Q.O1X%[ZC$ MRTB1#!(T=2XN\=*4]7A5"UH4U4CS(#0.2-4RQ8D4I%' _Q,A]%8P#MH9=_(/ M4$L#!!0 ( ..(;U8]*%4ALP0 .H2 9 >&PO=V]R:W-H965T=H(.B6!&BT3=\.7OL$K(TW@A M3V3Y2Y8K6[-#PD(JGJZ<,8*49=65/JR(:.-@KQQ*(KK5A\HH/U%%1P/!ET1H M:T33-V6JI3<&QS(]*[=*X%N&?FIT,?[C?G([N9M\^WI+WM_1:0+RPZ"K$%H; M=,,5S&4%8Q^!L6SRA6!7=J-B)\@/"..91#;M.T& M/*=.U"GQW"-X-S2BXE!BC6ZZ*,YE3D,8=G#52Q +Z(S>O;%ZYL>&H-PZ*+=$ M=UJP?R@V]Q5B\^K8O$;";K$!1$4"A,^(XHHF).18C!$(JNOI4+C-@._>!+;I M?"2GKF,J8Y)3%I&W./E&X+KD"J0\)Z%^0<,?!1,0U>;O+^89G6BLK=&=VUM3VC;]L;UG+Z^(2R M#2V6;9)/, .A811]>+(P]F -/_ UJB@@.F%IF3URQ;/Y+PI$B@HWW6?&PYJL M\CFP&O5S"VB++29,QRN<414H3+;&\E>.0.PCCC"9\_ M[G._Y6&9Y$[0"+=UN.7;7^T'L/W5+&_-4[763V39,(]!/8]!(]_C1VR,*1R: MJ$;'%ZIBOPZK_Z\4N_\*L5GF9C-G_FS-/H'X$M%V L/$#>$)T0XH=NNX7IN*]VVRN]73":U>CQH ,"&V [V>V MT[)_/]M)LR)UW9#VQ;[7Q\_%OLM@+>2+*A$UO%:,JZ%7:KV\]'V5EE@1=2J6 MR(TG%[(BVJBR\-52(LE<4L7\* C._8I0[B4#9YO)9"!JS2C'F0155Q61/\?( MQ'KHA=[&<$^+4EN#GPR6I, YZL?E3!K-[U R6B%75'"0F ^]47@YCFV\"WBB MN%9;,MA*%D*\6.4F&WJ!)80,4VT1B-E6.$'&+)"A\:/%]+HC;>*VO$'_[&HW MM2R(PHE@SS33Y=#K>Y!A3FJF[\7Z"[;UG%F\5##E5EBWL8$'::VTJ-IDPZ"B MO-G):_L=_B4A:A,BQ[LYR+&\)IHD RG6(&VT0;."*]5E&W*4VTN9:VF\U.3I M9#29?'N\>YC#_70RO7D:C;].3^!N^@!'#V3!4!T/?&V.L<%^VD*.&\CH#Y!A M!+>"ZU+!E&>8O07P#;^.9+0A.8[V(EYC>@J]\ 2B((KVX/6ZHGL.K_?.HG?5 MVB#%NY%LRURJ)4EQZ)F>4"A7Z"6'!^%Y<+6'9]SQC/>A)W/3@EG-$$1N&B 5 M/*6,$O>:C467"&E)>($*J+'4$@@S349XBF#:%3)1+W1>,_/T4U%SK7;5MY_! MX4$_"GI7\+_V[T@DH'T68"X5JP5*=[$;O[U@NX0PQH)R3GGQMZ*ZW ]P'I]M M:>%)&/9@)L6*NA&R\<3A12@91Z=%_>#8/N?W\?D4 MQ6_9[7H3_E;S5B@+-Z(4.+"FCSMK-P5'3?/_#F]&Z"V1YJ,I8)B;U.#TXLP# MV8RE1M%BZ4;!0F@S6)Q8FDF.T@88?RZ$WBCV@.[?D/P"4$L#!!0 ( ..( M;U9.+G6?$P, ,D' 9 >&PO=V]R:W-H965T1+AMLJ1[)+0J[LY&J MI<:*JH[T5B&MO%/+(Q+'XZBE3 3SJ=?=J?E4[@QG N\4Z%W;4O5T@5SN9T$2 M'!7WK&Z,4T3SZ9;6N$+SN+U35HIZE(JU*#23 A1N9L&GY/PB<_;>X#/#O1ZL MP66REO*+$Y;5+(@=(>18&H= [>\K7B+G#LC2^/> &?0AG>-P?43_P^=N2_\TJT\R"(H *-W3'S;W<_X6'?'*'5TJN_1?VG>TX"Z#<:2/;@[-ET#+1 M_>FWPSD,'(KX!P[DX$ \[RZ09WE%#9U/E=R#?%S>/"[A?7-[^>;-\6-[>P/L'NN:H/TPC8R,XNZ@\H%UT:.0': F! M:RE,HV$A*JQ> D266L^/'/E=D).(5UB.($U"(#$A)_#2/M_4XZ4_G^]K:78@ MV>L@KE'.]9:6. ML)VA47S&8OWN3C../)RAF/<7L%/I\U?4'R U43-.Z5EA3 M?X6M1M@^U=16!]9/4#94".1 104UREK1;?/T6CJG SXT"!O);7\R48/QQ1^& MQI^(>@[OWA0D3C_^Y_\_2!6@NSY@BX_M&I6_ ,=]=Q'<)X''T6H$VCB"C@N7 M);6L:A0ELTS?TP^]SUL@>1R.BWBHL:#Q60Z7LFU1ES/$SS22^F65B, MXR[ M(HPSTDOCD.0YW/2%>$XDRR=AD4Z&&C()25'T&G<42U'R764=*>=PQ;11;+WS MM^HEWO]8/L&,M5JY @[S2>U1DBP;:I*S<%+\ZFG^UEF]UK_1X'FU5Z7V0T1# M*7?"="]MK^WGU*?N>7XV[X;<-54U$QHX;JQK/)KD :AN<'2"D5O_6*^EL4^_ M7S9VUJ)R!G9_(Z4Y"BY /[WGWP%02P,$% @ XXAO5@:VU8K6 @ >PH M !D !X;"]W;W)K&ULW59M3^,P#/XK5N^$0$+T M9;R,L57:8.B0&$(;<)^SUETCTJ:79!O\^W/:K>Q@FXZ#+]R7Q4X>/[;CN'-[ M+M6C3A$-/&4BUQTG-:9HN:Z.4LR8/I %YG222)4Q0ZJ:N+I0R.+2*!-NX'G' M;L9X[H3M*M 3[.,J><>"CGO.+ZSW!CR26KLAANV"S;!$9K[ MXE:1YM8L,<\PUUSFH##I.%V_U3NT^!+PP'&N5V2PF8RE?+3*5=QQ/!L0"HR, M96"TS/ YAQ:#I;3 (%@9!&7?E MJ(SR@AD6MI6<@[)H8K-"F6II3<'QW!9E9!2=O[/@SZW='] ML#_HW]R-8/>.C07JO;9KR(O%NM&"L5IAGX>8_PG@4OAU3$& MRQA[P5;&"XP.H.'O0^ %P1:^1IUSH^1KO"_G=:E61(?KB6S#M'3!(NPXU!$: MU0R=<.>;?^R=;0GSL [S@^!LS 4W'#5DR/1480S, M0,*X@AD34P3[V*EAHJE2/)_81\OUNN2VN^]^V">%;8.G\F$V1E67L.0DP8=( M4G=K0VR$,RE"(@5])HBA!3O?FH'7./OOUK?7L>G$?V-[SI1ZMO>[W+BT%7@H M*_ >#,OD-#>U>HTS%."_TH-7>N-?S:J7]/&*7N4&J+L30TK)1B2M,A*@N@\T3212\4ZZ">-\/?4$L#!!0 ( M ..(;U8U"%?,F ( -@% 9 >&PO=V]R:W-H965T5#>72<";P28%>5A55O\;(Y7KD1=[6 M,6&+TCA'D UKNL IFA_UD[)6T+$4K$*AF12@<#[R+J/S<<_%-P$O#-=ZYPRN MDIF4;\ZX+T9>Z 0AQ]PX!FI?*[Q"SAV1E?%SP^EU*1UP][QEOVUJM[7,J,8K MR5]987S^/KF_F<+79SKCJ+\- V.9W7V0;UC&+0OYA"4B\""%*37=GP4#<*+ ])ZG;3>(?9LVLX#R#DPL4)AI&*H01MJL !JP X.*G>= M2VU *A!V6.T$NK=.US3TB MN&6"V?^S@(64A>X"O@#I^R1,=QVIGX0)O-HQ/F'BI%8R1_V!2/S>8-!9/3_L MQS"A:SL-!A6C7 ,5A=TN=P4;9NS%*8=O,[;K:W+=EH_PMN=]T#5@@D-'.<6&IXF M?0]4NT=:P\BZF=V9-'83-,?2KEY4+L#>SZ4T6\,EZ)9Y]@=02P,$% @ MXXAO5EX(O7P0 P "@< !D !X;"]W;W)K&UL MG551;],P$/XK5D"(2=&2.&G3CK;2N@V!Q*!L \2CFUP:B\0.MK..?\_9:=, MI1*\Q+[SW7??^7+GV5:J;[H$,.2IKH2>>Z4QS440Z*R$FNESV8# DT*JFAD4 MU2;0C0*6.Z>Z"F@8CH.:<>$M9DZW4HN9;$W%!:P4T6U=,_5C"97-POT=_[7+'7-9,PY6L MOO#!PR3\BP/=.5#'NPOD6%XSPQ8S);=$66M$LQN7JO-&W*<<.[SXGU(^EFF' MDQS'L>URH1N6P=S#?M"@'L%;O'@6C<-7)U@F/8%>88X1/0ZZ.XI!,8HMI8R.9$D@A*^Q4+C87Y,6S"0WC5_^]8N6@ M7H-RU?O]T%;3?B+RSO+9JY^3U!\EHX&<^&,:DF7+JQQ9.?*\QCMY!$M?'P"I M/YW27HP09S0FKULEN&D5.,>"/]G]P2GRDS <2#2(D?)0=?&B/OE-RRK,1[5[_?%E&8OV #]\[?X"5!+ P04 " #CB&]64D<1/^($ !U$ M&0 'AL+W=O@%@R/%8; M%?F(.4XX*K@H!^.C6G:MQD>R,KDHX5H1714%5_GH16OU;X4\!*=_K$KN1.RB]V M<)$=#QP+"')(C?7 L?D&IY#GUA'"^+KV.6BGM(;=_H/WM_7:<2UW7,.IS#^+ MS"R.!_& 9##C56YNY.H]K-<36'^IS'7]2U:-;I0,2%II(XNU,2(H1-FT_/LZ M#AV#V-ECP-8&K,;=3%2C/..&CX^47!%EM=&;[=1+K:T1G"CMIMP:A5\%VIGQ MNX\?SSY?7%Z2R=49^3A]?WY#+JZFDZMW%R>7YV1R>WL^O27#*;_+01\.>[7'O,O)!EF:AR7F90;;M8(186\#L ? )Z_5X!NEKXKF4,(>Q M'G]>&P"O]N?]BP#L6G?CU=_MU5+I4"]Y"L<#Y(H&]0T&XUUUTIF56K(F=!& MB;NJYN-4&IZ3$Y[S,@5*<%^AN /UL+<.>4E"CX9)C!U&0S>T@I!ZKD^0C\BV M$OFA%)3I/3&*ESKG#<^SOY VF#>,;@$, W:PAL'9OXC@^>/)DC?;>K62=G8IBFH1. MSU;&+@VB5M!#VJ E;?!4THK2(&L%YE3"M0:C=U&VW]OOINR^=G],G]M^K@LF M9,\VG*1I551X>)Y@._D&"N\6C^3OE-2/3QLOI#+B;[Z36E=X0_JD85;EY%+, M ",Q$Z4P0'*\5F2=/=6'>^&@.?QZ(98;''CJ AK[$7:&04)=AHD) M3R;2GP4$,\ 4TD4II@Z8S)5/(.2%[#Q'E(_ M]LG0IRSP#_"\,\\A/KF2Y1^I+): *^%S!;!-Q"3RR!!_#EK2^8]6]9*X#M+) M\RSN" $%L<7M>91%P2/M"[P(_#QR._"[$?69T^)8#SONFHK20861\X(?4 4. MUI3'J/XK_NQ.UO_SYQ?Y$_G4B>*. (L[#;RPYA%F=)_MXY%+$S0UAD*8%G.T068>,D/V>12QTO0N>VZ6=2XM$@M%>=81C1F 4U\(!&.ZKZ MKQ,)ZW[D;XC4#/N(A%%AOK.-RF?4=ULB]13(L"V0X5,+)&@CBOJ ;ATI^(YO M40T$WZ)D[]I[2FK__$_E#[+6YI0(+V6)'6RV,: .1@1%F_SB40>O&2C:W"WP MIA'66E%'Y.-YFRX W]4S@^>[W2J&^3Q\M"%-:MT5\U'G*8A$F=16VTO9-/6F>DAOUYD'^@:NY*#7)88:FSNL(;R2J>>0V R.7]GV/Y+!@:V$?U.8[ M[/+I.KY,"5-]R:;VC3%BMC96E3LPVB67]GFZNR>UT-)[>3A^G-S/R MY9'-!9BO@\!B!.<79#NV<[Z$T:Y+.81+W4"[-BF4P]/ E&- OX*5G)U$2 M7AV1V&DD=HZQI[/Z?1"UP#N;Z37D1' VYX);#N:0VN-\9R=]&L97Y']'+ 64 M<]!5.?[>=.5I&Q$9[;3#%AN( =/LGI+83[K).YO2I %DJG0(5K]:F9,5>]5* M"&+9MA7"[]"P,:,+I.@U%%Q:P,)8!W5WN?'KQ6_3L''?,*V9M*][K6^T/HT[ M;0ME7\,"M$:4AA>0:Z@DUB\5SR;#'6ZQ40@FLU;2^['K7\2]#ZL1]9.P2R9K M)):6", ^TR[Z!T#L]UJIM,>(7I$?MD I!R[/ 9Z$?I33\>,N)8_*,M&N4M_O MM8[\E'1"OQ"K+JNT:K.Q:VKHW-:M-9Q_5#>W-O?XMW#&]Y-+@ MF2P0&I[WNA[1=:NM#:M657N;*XLEJ*8%_IU .P?<7RAE]X8+T/SOTC]02P,$ M% @ XXAO5O3&W$/V P FPL !D !X;"]W;W)K&ULK59M;]LV$/XKA+IU#:!%;[;L)+:!.$FQ%.T6).GVF99.$E&)U$@J M3O;K=Z1D66D<+4#W1=(=>0^?>^'I%ELAOZD"0)/'JN1JZ11:UZ>>IY("*JJ. M10T<5S(A*ZI1E+FG:@DTM495Z86^'WL59=Q9+:SN1JX6HM$EXW CB6JJBLJG M-91BNW0"9Z>X97FAC<);+6J:PQWHK_6-1,GK45)6 5=,<"(A6SKGP>EZ9O;; M#7\RV*K!-S&>;(3X9H3K=.GXAA"4D&B#0/'U !=0E@8(:?S=83K]D<9P^+U# M_VA]1U\V5,&%*/]BJ2Z6SMPA*62T*?6MV/X&G3]3@Y>(4MDGV;9[I[@Y:906 M56>,#"K&VS=][.(P,)C[KQB$G4%H>;<'69:75-/50HHMD68WHID/ZZJU1G*, MFZ3<:8FK#.WTZO)J?4\^W---">IHX6F$- M>TIFO6_/P%?,@)%\$UX4B5SR% M]#F AUQZ0N&.T#H<1;R$Y)A$@4M"/PQ'\*+>PY0;4#VL7^A"O/XJ&F0_O*:64"] ^DU@62,I6(!N-&>:=A2C4V!XE06O48'P(W M]OVCO1RZ_F1^1.Z%IB6Z,@R,2SC^#X9\9N[D.SZQ.PUZS?DSUT9\:/>NN=P**/C*]ME:$T&59> M$,Z-;GI MX]4$,S=^"0TRME>B;ONL2J 9OI K;49.>#Z,/S/"F0D_'$?_OC- M/>F:(RU0FDB3 [6EM3H4Y'' 'VU(5UD&]I=-4L/B=V&Z D8#Z]^4^T?VB%? M$KR#6G>=RN\ZE2ZD:/*"?&K*)Q)&;IL4D\HVE_[Q?#8E/[\A?K,^?K,WQR^C M3)('6C9M\+">)8!)X:$HCL/^7^W]O]YK6MJ>T4Z"-+$]1;WIK] VN*1KWU0I M>%:JD1L')P-Y5^6MV8OM4S>*GS4:[%HS&PO=V]R:W-H965T&);5!(0_GZ/9&,(%T/8 M3;L/^X(M<>XZ5_ETRL6C' (H\I3$J3RK#)4:?:C59#"$A$F+CR#%?_I<)$SA M4@QJ["DWQ!)"T]Z"X.0(CI$[8V2DO&2*M4\%GQ*AH9&:?C&J&FP4+DKU MJ?24P'\CQ%/MWOWMQ1\GYYW>U26YN/W2O;KI=>ZO;V_(\3U[B$&^/ZTI9*.! M:T%.\CPCZ6PA21WRA:=J*,E5&D+XG$ -Y2N$=.9"GCNE%"\AL(A+J\2Q':>$ MGELH[1IZ[C:EATS B3[,D%SP!#U<,N,C'2%8.@#T.D4>9F09KLMF9KLS92(D M?WY&DN1:02+_VF2AC']],W\=:1_DB 5P5L%0DB F4&F_>T-]^V.)=O5"NWH9 M]78O"S#"^R08:G4DB5*"$2D52\,H'1 ^TMI*@DN,+*E$%"A4$9TM>"1,*R@W M*57.]MV;IF.['\EK/[^;0$-Q.Q,0F#CV1OP-SU81C))U%'/0LEA^8I$@WU@\ M!G*[9#:&V!! \@!B[HUTC913]6V[:MLV.2)UR_P MUVO,27V(]H'AJ!B=X)CS&)Q9&: MK0&ZCF4WWY*[2#Z>] 4 Y@,%.O")V!0-U/):2X01-"'',V!"K@OJ67YC$9(L M#\FEH]VMY6[O\@OO\O?-?)GMLT27E7XTS"9O*J?XLY+:P4EPOM$9# 0,ED_S MX#RY"G^=8H' -BPH=NY ]WLZ "ZPT LT[YC%:W1N\RHS7U\]@0@B":1KW'^^ MG>79^>ISU$>?P7J5^]N+\^\\ZQUM>-L&NYJBW89;K3=:ZPG M>K^5BI%^&!< M%LKN3L\O3_3'7K7I-]\_$\O;2J=E^2\O :[?J/J4HNTRG;?;L&6M8[_6\],X MCF=DDA7(>1/#7ZJ;7\]K&ZKFT7+52I)2HTA*C=(4TL4>#+OXK*"5IJ)2.@U\WN\QJW071Q'43KOSK$2V^&#E5P<:= =UPJ MO-:%UPZ^_[< 6R:NU0:@Z56IW=PX3GF'WW<=8]6F]7]<_9N885OU?8I_;>F: M/0$Q,!\3) GX.%79C7NQ6WRPZ&37] OP[&O'%R8&.%.3&/J(:EL-]#21?4#( M%HJ/S*7] U?8K9K7(; 0A ; __NR5=A^2++))VC[*$FT3D427I-9)?GV'.BAZ[74= M-&A>;)$:SOW-C'B^9?RS6!,BT9>JK,7%9"WEYFPV$_F:5)EPV(;4\&;)>)5) M6/+53&PXR8KV4%7.L.M&LRJC]61^WN[=\_DY:V1):W+/D6BJ*N-?KTC)MA<3 M;S)LO*>KM50;L_GY)EN1!R(_;NXYK&::2T$K4@O*:L3)\F)RZ9U=)8J^)?A$ MR588STA9LF#LLUK<%1<35RE$2I)+Q2&#OT=R3L_(,65[MOV=]/:$BE_.2M'^HFU/ZTY0W@C) MJOXP:%#1NOO/OO1^..4 [@_@5N].4*OE32:S^3EG6\05-7!3#ZVI[6E0CM8J M* ^2PUL*Y^3\[NWUNS>WZ,/EG[&/9#)_^8L7N:^.Z!9HW8)CW.=']KKAG-12&3!Z^NR[!;\F!02Z M-"* [=CSC+5Z\O K]" !.GH_PL$8>C?6>3/L>;;OCNF5A!A]8!+DY+W:8W(, M-($=!:YQ/@Y3\,62 'W16FGUX9O^2'LM'$P-%6(W>&*H%8[ODW3?4,NSW3 9 M::P$I]/>V&)0_X#J.PR2>$>)>/#621#R[3 T(139H:\#> 1!D490=#*".(%R MF=.2MK5![0CP5B,9_XJ6O6M'-1%7GI0,D>62M&-"NW,(;L=5^+_@M0^S(5]& M,[F9'=AS7/3K\ ?U#P8X09!5D.YI"M[8C1MT.1AL5+=1W>?T!.ZRTF1EHQJ& M2PC!ON-!3NA$*'%&D%ZOLWJE&*#'K&RZ\&4ES(Y9G1,-X$Z'TW';1 :$ ,ES 9=]6/"=IU*M<)M27#N7=R#<&V7,>? MZO=J_U:GI-;)CYT4HN@';3#_'4"Q!E!\,H!T23!0D@E!P*W*3P"L!:!+TL-- MZ;B<']6,3NQ .\6YL^'[Z_%;E<+=K &0*)GH_,#:J.495W6%\6W&"[/DQ;;O M[PPOV [B&%WF.6_(CAL$JB1?4Z9(D<"UT^-D0='(<*1?PFY1]4G M&^BVH5"BZ;<.2CD34AA.&D5%8=PG8;'O,$T5VM@?D]V#$Z("7_H:/GNE,TM7J[JNFWW8+53S.'*M1QP3]O7+XB*UK7JL;L&&58 M8X8 VV[J[JP]8#0T1"A7E!4G,#(JB.7CJ9X=NR$XA])6-KELGOG.LKS R +S M7_6WV[HXU1JH)DGTG'6'TFEFW'M4A*_:VQT!-:ZI97<%HG?U!=)E=V\RDG>W M3V\R#HX7J"1+..HZ,7Q7\>Y&IUM(MFEO419,2E:UCVN2P;2@".#]DC$Y+)0 M?:TV_P=02P,$% @ XXAO5O8+FP39! H \ !D !X;"]W;W)K&ULM5?;;MLX$/T50NT6":#$NMB6G=@&DC3%%DBQ09-M MGVEI;!&E2)>DXN3O=TC)).16[M7DY$L M#6<"[A7195%0]7(-7"['7NBM%KZS>6[L0FW&O\*W36,E8 4(S M*8B"V=B["B^N$ROO!'XP6.I7_XF-9"KE+_OR-1M[@04$'%)C+5!\/,$-<&X- M(8S?M4VO<6D57_]?6?_B8L=8IE3#C>0_66;RL3?P2 8S6G+S72[_A#J>GK67 M2J[=+UG6LH%'TE(;6=3*B*!@HGK2YWH?CE&(:H7(X:X<.92?J:&3D9)+HJPT M6K-_7*A.&\$Q89/R8!1^9:AG)G>W5P^W#^3DD4XYZ--1QZ!1^ZF3U@:N*P/1 M 0-A1+Y)87)-;D4&V::!#J)I($4K2-=1J\7/D)Z3./1)%$11B[VX"3%V]N+6 M$/=%5NEU]^O9XW"A%S2%L8=\UZ">P)M\^A#V@\L65-T&5;?-^N0!CU=6PG24SNI)B?&5#%OW/5F-FAQS[GJV?7'_9[Y%$: MRH^0MAN>Q /RF -)9;&0 FS>D9(;1"14 5;@5"H\X<1(E-7&2FF*18-0D1&L MLTC&N4_F(! M=XLTPXK%M+'HL0+7UC1A@ACG46C)648-6M4&'\7*O06C(+?% M_PE0'M_A_$V82U"64V0F.3:;(SBQ>NX2_0M[1E#;.V_CUN0D/,6=Z_I!-R$_ MJ&*V=!X0W784^G$TK-.S3D+/CY.^,_M5I+S,<(MT+I6ITN_L:9\L[)TO0?QTB<$,;>YLOUX#<;9L1G9D=('@TK/^C[?MY%**3 M%Z!*G^XZVCH7N_L8G?>C-V'M@-@(]G!X1W@?]O]HZ0&]I@?TVGM =1.R1)Z5 MIL3,VO-2E'7.R8*^5"="P>^2*8RDQ!ZKMKFF]S6*=L_'9A:3&;\B*G(>^STN M=M<2_K WL$N]5R3O]0.[U&^6>F%L%Y)F(>E9YN(U),2]INE;VQN!:495BR%:%%=6MC50_)5FVV0'Q( M,1O+7GZWE=\FSHO)J:"E!S-QMJXCI$-4 UJ\WX>55-76OQ:G;]1M6<"8WN M9Z@:G"=8?54U#U8O1B[<##:5!B&ULS59M;]LV$/XK![4H$D"().H]M0WD;5T_I B2;,,^TM+9)BJ)'DG7 M[;_?D5(T%7:\ @.&?I'(T]W#YWB/>)SMI?JL-X@&OK9-I^?>QICM91#H:H,M MUQ=RBQU]64G5\P::Q0$3CKP'3&Y>T M@=/Q"_HO+G?*9->93[7W'()[5XE6RT>\*^]V6) M!]5.&]D.P<2@%5W_YE^'?9@$%.$K 6P(8(YWOY!C>+\F04?1449Q9/=Q_N[SX]P^W5\Q6\@KG'FE?H_J"WN+=FR@+WY_@EHS3"PL]),\GAKRJ7^>^MG$_R=2 M2/23*R2C0A2E54CHATD\**-,$J<,EONL*'Y(&5'L%\5AMEGN9TEY5!EES(XH M(\W\M"Q>5492^''XG3*8'Y?)5-G1!-9J(R2AAR[_Z58*MRLTU[17M)"@0THT M[I@2G4%5R7;+NV^ C:#.Q.U.:N!=/01VDHXQH:C]4@PW_6[;!@-& MTJ%$70 M*L.)IR^.':3!I+.UJ-:N?UM.N\[T36ZTCE>$J[XS_N/>WR_NN5H+(MC@BD+# MBSSU0/4]NY\8N75]&ULK9IA;]HX&,>_BL5-ITW:2FP@0(\B%9)MG&YM5=J[UX88B);$.=NTG70? M_NPD34@([M">-RT)?GYY\G\XBB15YV=4NEEMRO7.Q93 M><%3ENAO-ES$5.E#L>W*5# :9$%QU"6.XW9C&B:=Z20[=R>F$[Y749BP.X'D M/HZI^#%C$7^^ZN#.ZXG[<+M3YD1W.DGIEBV9>DSOA#[JEI0@C%DB0YX@P397 MG6M\Z9.>"W\R*2C;GT3]AH'97G5$'!6Q#]Y&ZY\]?67%# \-; M\TAF?]%ST=;IH/5>*AX7P3J#.$SR__2E$.(@0'/: T@10!H!9'@BH%<$])H! MY$1 OPCH_VS H C(;KV;WWLFG$<5G4X$?T;"M-8T\R%3/XO6>H6)Z2A+)?2W MH8Y3T^7BR\WB\V)^??. KN?SV\>;A\7-%W1W^]=BOO"7Z!.Z#H+0U)1&:)'D M/=-4^+W'% TC^0&]0V&"'G9\+VD2R$E7Z;0,O+LN4ICE*9 3*6#TC2=J)Y&? M!"QHB9^_$4\L@*[6HQ2%O(HR(U;BG_OH O7P1T0<@ML2LH=[;%V&$_2X]-#[ M=Q]0J%CX&:$9E*,WY.\$D2U3V55O?R/G]=KX9)B]E2M?LJI,:D'ABG>GOOV'7 M^:.M+I P#Q+F \%J1>J71>K;Z-.;?;QBPA0CILE^H\?FO0B3+4HCFBB)_CO5 M-6=6[+FUR6%N!C/3U],4NY/NTZ'BD-?S@6 UQ0>EX@/K8[%4?/T=+=,H5&VZ M#B!UA81YD# ?"%:K@%M6P+7V^;P"TE0 9>-26QW4.\2V_5S MV.!P2!F-&F/*<1MWV"BR#Y1437(*N4#5WIE9;A4K'?9W!FP)[V 3_5R M7*$UE^U"6JGG"CDZ>A"&SJ@Y.A\W&>BNIT)IYC;_ M15LIR=J4LT+.56Y\)$I_B'%#N>-&/4R:R@&E55,..Y4-<*S:S74_,RN$+>>! M1))';0OQF1URKG8%[5 7,B)X,&[(U]9NX [&C4?=A\JN+N&!D\)6"3V6: T'XI6KT-EU;#=JYTQ!4 ZJ#DHS0.E M^06MYFWPT*WFI[K6E7'#=N=V[AP ZM= :1XHS<*,V'HM5K4/E"//ZE@1[4$8+2/%":#T6K_ZI2F4SRELE, ME#"OGVF$%!.Q1%M!$]7ZH\_,SCJW*F]DIEB"?C JV@9!#S03'XI6KT'E4HG= MI=ZS,%[MA32O[1IOFO+BM-8"U+Z"TCQ0F@]%JU>G=>A]DA9Y?CV"%CM]=\(]'2:C :#QHO=: RR^7K'NPOB)G8 M9AL[),K<;?ZK>GFVW#QRG6V9:)R?XTLOWP)28?(=*=^HV(:)U*O2C48Z%T-] M@R+?Y)$?*)YFNQA67"D>9Q]WC 9,F ;Z^PWGZO7 7*#<:C/]'U!+ P04 M" #CB&]6D,Q&5K\$ !8)0 &0 'AL+W=O\AQ?8J'*R&_JR5C&KVE2:9&P5+K_"(,U6S)4JI. M1,XRL4>)5)&F M5+Y?L42L1D$4?!SXS!=+;0^$XV%.%^R)Z>?\49J]L*+$/&69XB)#DLU'P65T M0?# %I17?.5LI;:VD6WE18CO=F<:CX*.?2*6L)FV"&I^O;()2Q)+,L_Q8P,- MJGO:PNWM#_I-V;QIYH4J-A')-Q[KY2@8!"AF@OZ>@MRGH ME3R M_@NZG$P>GN^_3.]OT>/#W]/)]/H)_8D>I7G)I'Y'-(O1]8^"Y^9CU^@WPC3E MB?K=7,(U2X>A-H]CH>%L<^L(HSN1Z:5"UUG,XCH@-'U4S>"/9JZP ME_@PTR>H&_V!< ?C'0\T.;P\VM6/OYRPV;Z[U[KI5A]-M^1U]_!NA8A7/$E* MX1_TDDDTS33-%OPE8>A2*:;5CJ>\6E-[NZEV'+E0.9VQ46 &"L7D*PO&O_X2 M]3M_[5(,$D: 8#4U>Y6:/1]]?%^D+T9!,3>C52ZDYMD"%1G?+>$:U2]1=N1\ M'7>'X>NV+HU7$._C_&2SIU6SI]YF[WC&TR)%_Z"K@B>Q[=6^1#S-I7AEUK\[ MV_9"V[XYD# "!*N)V:_$['M]N'L W*5?'U(_2!@!@M7T.ZOT._.^C,^*S8L$ M)>;ON[+^R[?U9#X]O=RV>D+"B+_C4_3.J%0>[0:5=H,#C7Q32#-:%9*5LLWY MF]W>Z6(OL:UJD# "!*LI>5XI>0[DXG-(_2!A! A6TR_JN)EBYW_RL1_<5E)0 M&FEH&C=:.=J::D<'FGDBTKS09CJRI#)>T8VIE9AKN[-30B^ZM820- )%J\N* MG:P8R-D;$)2(D#0"1:N+Z+)&Y)U\'V-NT+P!2B,-37>;S>WB1>3/%\[<=W2V M-"?E(=H!A82-=I T D6KZ^D23'0*Y6K0V )*(U"TNH@NN43>B?TQK@;-,J T MTM#T :YVT27RS^3OZ-O/!&D_M;5ZH-$%BE97U 6:: #E:] @ THC4+2ZB"[+ M1-ZI_C&^!DTWH#32T'3WO-'8V(49[)_7.V,?'JS]R+;:@=((%*TNIXLV. )R M-08-,J T D6KB^B"#/;.\8]PM1_<6E308-/0=-1I=K5+,=@_H7>N;I^P_>C6 M&H+F&"A:75:7;7 /RMV@@0:41J!H=1%=H,'^[V2.<#=HP &ED8:FF_\3CEV8 MP?YYO3-WBX3M9[;6#C3'0-'J>KIL@\^@7 T:9T!I!(I6%]'%&>S_@N8(5X/& M&U ::6AZL-_5X=92E)3)1;FD1Z&9*#*]7I52':V6#5V6BV5"=_EZS=$=E0N> M*92PN2GMG)R9H4:NE_&L=[3(RX4M+T)KD9:;2T9C)NT%YOQ<"/VQ8V]0+:8: M_PM02P,$% @ XXAO5II>$=SO @ _P< !D !X;"]W;W)K&ULK57O;]HP$/U7K*S:6FEM(('0=A )TA]#6BDJ[?;930YB M-;$SVX'VO]\Y"1G0@#II7Q+;N??\WCF^ZZ^$?%$Q@":O:<+5P(JUSBYM6X4Q MI%2=B0PX?ID+F5*-4[FP52:!1@4H36RGU?+LE#)N^?UB;2K]OLAUPCA,)5%Y MFE+Y-H)$K 96VUHO/+!%K,V"[?263.]_C(/Q M]8R84(W+H5!:D>,KT)0EZ@0!3[,K-6W-ZUM3+OX3V59F.G5F.H?8 M_1$L&.>,+W93\4;@%0N8@B;[)6>WX#35:XF_4-?KV\M-6PU!;=>M@[;D=FNY MW8-R@UQ*X)ID()G \TDH2QL/J*3Q-C8_=7KG.PH;@MR+BV:%7JW0.ZAP*L62 M%947"S_6E2V]BB;0*-=[I^1]/M_'=,W=:A+;J\7V#HK%Z_ZO1]]K.'JWLR.U M*6C#3ZG5WJBE* MBB0P1\K660\ER;+=E!,MLJ)B/PN-];\8QMBA09H _#X70J\G9H.ZY_M_ %!+ M P04 " #CB&]6V0R,T[0# !A#0 &0 'AL+W=O(JFF?&.++<P4$6H%([/VP(,1RV1"*'[@0&1I MBOCO*4[8?FRYUF'A.]G$4B_8P6B+-GB%Y=/V@:N97:)$),54$$8!Q^NQ-7'O M9FY7*QB)'P3O164,M"O/C+WHR2(:6XZV"".?.,!)ZQY">)9#RV? M$>(VR1'YG^R^X<*BO\4*6"/,+]H6L M8X$P$Y*EA;*R("4T_Z+7(A 5!=>[H@ +!7BNT+NBT"T43.3LW#+CUAQ)%(PX MVP.NI16:'IC8&&WE#:&:QI7DZE^B]&2P6GQ>+CXM9I/E(YC,9M^>EH^+Y6?P M\.V_Q6QQOP(=\--$ D< [3!7S (1(XX%4#DA)*(1H1N@/H"JG",T9"D&-PD3 MX@/88IX+@YLYEH@D:JT#GE9S")$BD^JD4U?HQ9)A2D&-E2 MN:@-M=V*(0CRU5&P3F.VP%_[QS/>??N@BT!'82CUX9CUX3>K \ MS[HZ;W.(OH'0=6T7]'WHC.Q=U8M+(1=ZGEM*G9C7+\WK-]+UAL-3RT^_37Y: M CL)@%<&P&ODYRW5HY/G<5T<&L)[ 06G_ MH)' ^_5:73B K?,3IJX<('"8<2()%K74#=JDKB6P$]?]TG6_D;J59.%+1]^1 MBKT]XO7UV+\(O O[W?/#U;C37_HQ+/T8MI""10&M+0*-EHUOYXIA>;_V54G==6N8V?@-EZTP81*TBFK%*%"7H"0953F;5FY6KX3)J8[/EN?ZO># M:8*/,/GCXROB&^4_2/!:03JW W4#\KR?SR>2;4U+_,RD:K#-,%9O(,RU@/I_ MS9@\3/0&Y:LJ^ -02P,$% @ XXAO5C:*B31@ P B0T !D !X;"]W M;W)K&ULM9=M;]L@$,>_"O*FJ9/6^B&.\[ D4IMN M6J<]=$V[O:;V)4:UP06<;-]^@%W7:1VT5-F;!+#O?_># Q^3#>-W(@60Z'>> M43%U4BF+L>N*.(48_[G##*VF3J^\S!P15:IU /N;%+@%2Q WA277/7<1B4A M.5!!&$4,W>G.13)U/!T19!!++8'5WQKF MD&5:2<5Q7XLZC4]MV&X_J'\T\ KF%@N8L^P7260Z=88.2F")RTQ>LB):!'^XP"&J#X*G!+@^]VL#, MG%M%9K#.L<2S"6<;Q/7;2DTWS-P8:T5#J%[&A>3J*5%V*M&;A;GZ.CU6_0:$8JN4U8*3!,Q<:4*0XNY M<>UR7KD,=KCT _2549D*]($FD&P+N"K^!B)X@#@+K(J?,3U!OO\.!5X0= 5D M-S^'^ 3U.LVWPNDU<]HS>KT=>M=,X@S%3.5Z ASK='V'J-J2;(EB+%*5N_BP#%,';5M!? U.+,WK_S(>]\%?B"QK6D(FVD(;>H[ MIZ$+VJJT+W0EUC=B^AA;S_K]?MB;N.L.FGY#T[?2F/W0%;K5;-_0#R2V11@U MA)$U;=M'01=H=$C0 XEM@0X:T,$_)*;9A(+HM#SFD&$)B4I6(;M.M#.KX+[L ME5C4RL\H&'1GY[!!&EJ13G?!J+,Z+KDZ:U!2"O-8N_C6FF"OKW8MU5X>?]2+^D^)#EJ%N*UB M-P>^,G< H2(NJ:SJWF:TN6>+QF3#QWMH+E]S?X"4$L#!!0 ( ..(;U;L MK<-+M@4 (PG 9 >&PO=V]R:W-H965TDW:O%9!MK8"H$':ZOW[B1\#"6+5O MSVYO&H/U?"1]'R&>KZO++1=?\S6E$CTE<9I?C=929A?C<1ZN:4+R,Y[15'VS MY"(A4EV*U3C/!"51%93$8VQ9WC@A+!W-+ZM["S&_Y(6,64H7 N5%DA#Q_8;& M?'LULD?/-SZQU5J6-\;SRXRLZ#V5G[.%4%?CEA*QA*8YXRD2='DUNK8O NR5 M 56++XQN\YW/J)S*(^=?RXN[Z&IDE2.B,0UEB2#JSX;>TC@N26H3>:1Y/26QW^R2*ZO1K,1BNB2%+'\Q+>_TF9";LD+>9Q7_Z)M MT]8:H;#()4^:8#6"A*7U7_+4"+$38$\.!. F /<#O ,!3A/@'-O#I F8'!O@ M-@'5U,?UW"OA?"+)_%+P+1)E:T4K/U3J5]%*+Y:6"^5>"O4M4W%R?GW[Q^>[ M^[N'NX\?[M$;M"A$N%:ZHX5@(46W7*V(B I2)S6-T%O"!/I"XH*JUI](1 1Z MZ5-)6)R_4G<^W_OHY8M7Z 5B*7I8\R)70?GE6*JAEAV.PV98M_6P\(%AV1B] MYZE' MVP/AP?'AED$,I\VZ4_&<([(^,)J;.GHR'%WN71=Y1D)Z-5*;4T[%AH[F/_]D M>]8O0\)"PGQ(6 $TU(P:5,P,='GU^&W@N6L>K 22O)"4+7_2I11P7B$2/27 M>OC+.T/Y,:)/S4\-9_+JGTNW-OG5,\Q4_NM>GFB9;GG;:H]CR2\2&6N7I$A7Z7L[_[65*?'A4P/ M),R'A 5 ,"V-7IM&S_CXU&G4\O8:I73P:3&23DU'#?-VGA;7=2=.[W&![#( M@FDZ3UN=IT:=WW$>;5D<#^EJC#Q5U^F>KC/;G7H]7:=[>Y7G80_KK8*A5HX] M:5MI2LQ:)69&):IB9T@&8]BI,D#"?$A8 33M#]OM3__5_7*.60*(&$^)"P M@FDIL*W.*5C_7<5B9I^:HH:V^X0[Y_V2!;3+ (JFB[]CT^S_O6QIA@"5(TB: M#TH+H&AZ,G&73 Q6O#2HW:5NGSN>JR_V6W./)ZL-20N@:+K:G=>UC3Y.[5MA MN_HIVY#'F X*[>Q5(-B93/LZ@[I94%H 1=-U[@RM;7:T=^E&;?Y<,#KT@\]- M$[VKKSV;3OKZ0AI-'Y060-%T?3OC:AL-U7PA:$98A.A31M/\@,CNGLC>#/"J[)1?J^*%JKJRNQ@X;AO#!W+=?I20WI1'Y060-%TJ3O;:IM] MZUTJ2;IBZJUG6L^S_X,(#8;0)\N MJ2HQ(B3)$XH9>60QDP?JY@:E+>GIK.]+S!V>+#:H_X.BZ6)W_@__T/^)0FG] M(YT'_)]M>7V=0?T?*"V HNDZ=_X/F_W?[SQ=O9%4)"BBCX.U'-ZW@.ZD[P#- MO9RL,*@#A*+I"G<.$)L=8/T:W%G'Y2NQ2 Z\"@>LH.ON[1N@7A"4%D#1=+4[ M+XC-7O #E4>5'-Y1/]"9.SM9:% S"$6KA1[OG$9*J%A5Q\!R5)45]<&D]FY[ MU.RZ.F U[IK7Y]3>$[%B:8YBNE2AUME4J2SJHU_UA>19=;;ID4O)D^KCFI*( MBK*!^G[)N7R^*#MH#^#-_P%02P,$% @ XXAO5N%S (\$ P 80L !D M !X;"]W;W)K&ULM59=;]HP%/TK5E9-G=0V<8#0 M=A")4FUCVD=78'LVY$*L.G9F&VC__>PD#4P-;D6W%V([/N>>&Q]?;F\CY)U* M 32ZSQA7?2_5.K_T?35/(2/J3.3 S9N%D!G19BJ7OLHED*0 9

*M1L9]\1*,\KA1B*URC(B'ZZ B4W?P][CPBU=IMHN^'$O)TL8@Y[F-]+, M_)HEH1EP105'$A9];X OKW!D <6.GQ0V:F>,;"HS(>[L9)3TO< J @9S;2F( M>:QA"(Q9)J/C=T7JU3$M<'?\R/ZA2-XD,R,*AH+]HHE.^]ZYAQ)8D!73MV+S M":J$.I9O+I@J?M&FW-MM>VB^4EID%=@HR"@OG^2^^A [@##< P@K0%CH+@,5 M*J^))G%/B@V2=K=ALX,BU0)MQ%%N3V6LI7E+#4['@^&/Z6@\FHR^?QNC4S3B MFO EG3% Z5 *[-V2Q(BT?$U:$*9>E>O'"'*T205*T5XHGJ^-G(LJ3^O0E^5 MH<,]H3\3?H8P/D%A$(9H.KY&QT?O_J;Q339U2F&=4ECPMEZ04I.J$MUN1MM; M<*ER,H>^9VRN0*[!B]^^P5'PWJ&M56MKN=CCCU*HQD]5PCH%S-ZD=8P#<[-Z M_KHA6KN.UG9'$R+94,9.$!?\-(%D9>Z /5MSFY$F]RA?R5PH:%144D<[BKHX MP,V".K6@CE/0L# T2'.?&;&W4J4T;XSNY#GPD*):9?0J T7_05NWUM8]S$#= M)P:Z:.WSSWD=[-P9;+ &:4HSFBI8K!CZ0A?0%-I-@COH 8A4CN0O:CT73JH) MS%,NF%@^-,EP8@\\%AQLZVCP*M-4\'\L;Z?,X\-\4^%VC1/M\PW>EF#LK*(O M=LK7<48# "V# &0 'AL+W=OF*8(($BRN6 I4/5DRGF"I MNGQEBI0##G.C)#8=R_+-!!-JC(?YV)R/ARR3,:$PYTAD28+YZS7$;#,R;&,[ M<$=6D=0#YGB8XA4L0#ZD- M-,HC8T^Z,PM'AJ4C@A@"J26P^EO#%.)8*ZDXGDM1H_*I#7?;6_6O.;R"><0" MIBS^0T(9C8R>@4)8XBR6=VSS#4H@3^L%+!;Y+]H4ZP1*/AYQM$->SE9INY+G)K14- MH7H9%Y*KIT39R?%D^NMAMIC=SW[^6*!+M"A64[6FKSC.$D#G-R QB<4G-?:P MN$'G9Y_0&2(4W4B*?A6PV.#/Y%8C=&O&/W6C;M[&S2!^J<$/9%8#;1;@79;%W.B M#Z @>DM>U7?DM@FMU\\[5ZE<0_?]XG_9/ MN48G$JNEP;;>7M96^QVD85-,&M>PM*WMGYYE.WL+V>[BO0@[]8;=BO =A!C4 M5ZT1IE#Q=V N[9[;V8=I=?9>&.<-QCG9&ZZ4JBV/;W=[^T2M'H\E,G+QF3VXYV4'VJC/\"4$L#!!0 ( ..(;U;D$ R< MM 4 )TG 9 >&PO=V]R:W-H965T(<[K<'%@_'N^(T2@AR1.\\O)3HCLW72:ASN2X/PMRT@JO]DPGF A M3_EVFF>-,$TG2POJFMKOKQ@A8AI2M8\"RRL#JA;? M*#GD1\>HG,H]8]_+DYOH/!CII^RP#CX^? MZ.^KR?47'9JVQ@2% M12Y8T@3+$20TK3_Q0R/$48!IGPBPF@"K'^"="+"; +L?X)P(<)H Y[D!;A-0 M37U:S[T2SL<"+R\X.R!>MI:T\J!2OXJ6>M&T7"AW@LMOJ8P3RZO5'U]O[FZ^ MW'SZ>(?>H'7!PYW4':TY#0E:,;DB(L)QG=0T0N\QY>@;C@LB6Z\>Y4%"T$N? M"$SC_)6\]O7.1R]?O$(O$$W1EQTKIGIM:8FW^!$9SFMD&98U-AY]M$_"M\@V3X;[SP\W M1\*#YX<;&BWL-NUVQ;.?D?:1T5S7TZ0/09 ,$5WM]7=U2[]+TS@&&5/ M&UU6;73A8*.3/<=4;KCRZ8DVY::WKS8]G+ B%;E\1H9LF]*_^SM3G1X7,CV0 M,!\2%@#!E#1Z;1H][>U3IU')VVN4DM&[14LZ-QTUS#NZ6US7=>S>[0+990 $ M4W2>M3K/M#I_8"PZT#@>TU4;>:ZNLX&N<].=>3U=9X.]RO,LSU);!6.M;--I M6RE*S%LEYEHEFFIG3 AMX+E"0,)\2%@ !%/47[3J+_Y5Q;* 3 $DS(>$!4 P M)06FT9D%X[^K6?3LWJ M)W2/[^/1YWA#.2Y";-NP^CJ#&EI06@!%4W7N/*VI-[4WZ5[N_HQ3,O:3SW43 M?:RO:2R,P4*&-)L^*"V HJD"=^;5U)JJY9J3#-,(D8>,I/D)E=V!RI;K]C4& MM96@M "*IFK<.4M3;RT_B1WA*"PX+VL;G.=$C.L\M(*FT9<9T@CZH+0 BJ;* MW!E+4^\LUYS)NE$\5D4+D85E=K)R''I#TYP99E]K2#_J@]("*)JJ=6==3;UW MO4D%3K=4/O9TZWD^M."V,5C1H/X4E!9 T525.XMJ:NV7]K>2)O18W(4Y7,*@ MSA.4%D#1U'_>=-[3TGO/NF"N5R_"I1'EXQ:FX1PK[=CN;-:36M_=N5*#T@(H MFBIU9S0MK??IJN4,/YXJE1N$^O";]S<+?4=GBPQJ *%HJLB= ;3T!M G&R(K MC @)_(!BBN]I3,6)NKE!*4O:<9V^V*#^#Y060-%4L3O_9_W4__%":OTSG8?^ MSQS9.4#]'R@M@**I.G?^S]+[O[ITCEFZ?2,(3WZJ]] /6O.^&]1W>;;]6N=OK.SA09UAE"T6NCIT>M)">';ZKVP'%4U1OVF4GNU???LJGKC M:MHUKU]Z9$"RI#G<$1X27#>3W M&\;$TTG90?M&WO(?4$L#!!0 ( ..(;U;2:FBI] ( -(* 9 >&PO M=V]R:W-H965TW9D NQZMB9[4#Y][.3-% UI!7=7HCM^)Q[+CZ^N?V-D \J M#H,69< M#9Q(Z^3*==4B@IBH2Y$ -V^60L9$FZE['Y"D5"F<"% M8"K[19M\;\=L7J1*B[@ &P4QY?F3/!9_Q![ QP< ?@'P,]UYH$SE#=$DZ$NQ M0=+N-FQVD*6:H8TXRNVI3+0T;ZG!Z6 X^CD;3\;3\8_O$W2!QEP3OJ)S!FBH M%&AEUD9;PM(8T.D-:$*9.MM;.T&4HVDD4D5XJ/JN-I(LL;LHPE_GX?T#X6_) M%GG-<^1[OH]FDQMT>G+VG,4U"959^656?D;;>$-65:)R=+,:;2_"E4K( @:. M<;H"N08G^/@!M[U/-=H:I;9&'7OP10I5^4_EL%8&LY=I'70;GM=WUQ7!FF6P M9GTP(<(-9>P<<<$O0@A3KA;4*@6U M:@6-,DN#-#>:$7LO5423RNBU/$>>4;M4V7Z7?]K_05NGU-8YSC^=%_YI] [Y MIUL&Z]8&&ZY!FN*,9@J6*4/?Z!*J0M>3X!;: I&J)OE>J:=72S6%1<0%$ZMM ME8Q:[)''@KU=)?7>99H"_H_E[15Z?)QO"MPSX[0/&0?O2C"NK:)OMF=2A*:IL8T/)5*:L''GL^N4N/F^^Q36^F/E;>KV[B^]R]#L5V>[=$KBA7B,'2H+S+CH'+O('*)UHD6=,R%]I\+[)A9)I.D':# M>;\40C]-;!]4MK'!7U!+ P04 " #CB&]6^9,_6-T" "Y!P &0 'AL M+W=OK8S':@^_>S'V[[HK+MYD!J#0 M>TZ9[#F94HL;UY5Q!CF6UWP!3.^D7.18Z:F8NW(A "<6E%/7;S1"-\>$.5'7 MKHU%U.6%HH3!6"!9Y#D6OP9 ^:KG>,YF84+FF3(+;M1=X#E,03TOQD+/W(HE M(3DP23A# M*>T_=NAFUC;PU>"*SDUAB92&:WH#"A\@)=H>?I+3H_NT!GB##TE/%"8I;(KJNT $/CQFMG M@]*9?\29YZ,'SE0FT8@ED.P2N%IY)=_?R!_X)QEO(;Y&@7>)_(;OUP@:_CW< M.R$GJ+(96+[@6#;CF!=,232!&,@2SRAG7GA-W*!8^@Y^@E+$$MPHH\?O+#QN2X7_XEL)S/- M*C/-4^S1 .:$,<+F".^D(^'%3*4%U>^Y3%U=%DKJEJ4V96D9A4!GMB&Y5HELG18\%7Q)3K^I$E=!PRV'3:^^).K2Y\CJ=>E%A)2H\*>I5 M$ 57/$UK4Q76> PZ>[)JC/Q.HUY6NY+5/BE+O^A_/-WVPT!"WV-):*0:LK& M=5LK$F6C*">*+VRMG7&E*[<=9KJW@C &>C_E7&TFQD'5K:/?4$L#!!0 ( M ..(;U;KN"_@CP, ( - 9 >&PO=V]R:W-H965TY23D4AUQ#A]E*#2.";R M[99&8C^V.M9AX(EM0VT&[,DH(5OJ4?V2/$KLV:5+P&+*%1,<)-V,K6GGQKTV M\[,)OS.Z5^_:8#)9"_'-=!;!V&J;@&A$?6T<"/[LZ(Q&D3'",+X7GE:YI!&^ M;Q_<[[+<,9\%AS>"9S>"8%3")S_"#JG!-U"T/VHH%<(>AF9/)6,@TLT MF8RDV(,TL]'--#*8F1K39]QLNZ23.B4@Z#GP57(<*YCR@P;&!C6F5N3F'W&Z=6D>7^I?0 M[;3 :3M.14"S>OF#V*&\?5+N?GSU3DTVW7*GNIE?]X3?5"FJ%2!<6#*R9A'3 MC"JXIU$ >/S!(Q&MHIZ[]JI=S:URHQ+BT[&%UX:BMR<\_=?KM7ZN(-6GF M-F1V1+-7TNS5N4_>(_13*2G7+0@/+-4)EK6>Y[)LTLS-S:XR,W/5[_ \#4?V MK@+158GHJA:12W9(1;ZUX.4WN".^P?4&?X/+5"*0$'R1(DU:\""T&?/Q\#*> MT@!6"97$W.J5MT#MHNU MKZZAI2"1S*^$5BL^%]K@AY/7ZW3*DY>S:&C!(Q;#DL6PEL47K/T *RQSIX'8 M ,G>M"HLPQ_OD$'[.)-9[5KGOB(-F1UAN2ZQ7-??;A^^Q5J0(;Q8"H4%#Y(\ M2%O@::(I%L':@%UP7\2(6,),Q!AQ:(KC'3V,_SE_U69DC=LPYVE&PO M=V]R:W-H965TR'1N#,65'+V#)]QZ?8QU+5QKO&?\N$@") M?N09%1,KD7)S8]LB3B G8L V0-6=%>,YD:K)U[;8<"#+(BG/;-=Q CLG*;6F MXZ+OB4_';"NSE,(31V*;YX2_W4+&]A,+6^\=BW2=2-UA3\<;LH9GD"^;)ZY: M=HVR3'.@(F44<5A-K,_X9H9'.J&(^);"7AQ<(RWEE;'ONG&_G%B.9@09Q%)# M$/6W@QEDF492//ZM0*WZF3KQ\/H=_<]"O!+S2@3,6/9/NI3)Q(HLM(05V69R MP?9_0R7(UW@QRT3QB_95K&.A>"LDRZMDQ2!/:?E/?E0OXB !!V<2W"K!/4X8 MGDGPJ@2O$%HR*V3=$4FF8\[VB.MHA:8OBG=39"LU*=7#^"RYNINJ/#E=S+_- M'U[F:#&?/?[UE'\$R4"@US<4)X12R!"A2[0&MN9DD[RACW<@ M29J)3RK\Y?D.??SP"7U *45?$[85*E:,;:D(ZL?8<47FMB3CGB?2%49D( M-*=+6+8!;*6LEN>^R[MU>Q'O(!X@#_^&7,=U.PC-_G\Z[J'CU6_;*_"\H7J7JVV4V'?AAYX=C>'?+O"'-#-XKJL!8SOV;F]S)[ M&3P/D)!$0N'KC,5$.7P--$Z[V?;"73LFAL!:RH-:>6#"@X%)O8; 6GK#6F_X M\QXL4X,#<[F^$T3.D0<[PCSLC/QN#T8ULZB7V8SE.? X)5D7M=[<:P? $%A+ MYJB6.3)AN)%)O8; 6GJQTZRISL];KLH-6O.>YQ]/>QUAWC *G&[+X8/U'E^> M^%:P!'YAPNO'N79 3*&U5;N-:M>$!RL44YH-H;4U-[4&[EW:+[C0.[&7CW'@ M'[OP-&P8^N&9B0\W=0'N+PSNJ01.B1Z'[MFO/__JD3"$UE;;U!K8-^(^HS6& M*;2VYJ;*P+V+^@7W!2>VPD[@C[QC^W7%A;[CG?%?4Q/@_J+@42; .YGUYET] M!H;0VBJ;^@)'1GQGM-0PA=;6W!0;N'=MO^"[T>EFPAFZQZX[C0I<_WC.LP\V MW:J,6Q=G$0+%;$MEN4&M>^OSCL_%+O^H_U:?@Q2;^0:F/$3Y0O@ZI0)EL%*0 MSB!4E'AY+E$V)-L46_M7)B7+B\L$B%K;=8"ZOV),OC?T ^K3H>E_4$L#!!0 M ( ..(;U:%"97L]@( *(* 9 >&PO=V]R:W-H965T16F ;#Z45E.[9)!>(ZMC,=J#[][.= MD (*:*WRDMC./2?G7-\XM[=C_$6L 21Z30D5?6LMY>;&MD6TAA2+!ML 54^6 MC*=8JBE?V6+# <<&E!+;*$6F'/K#WRL,O6O1FXC@:8B.<$ M=N)@C+25!6,O>C*.^Y:C%0&!2&H*K&Y;& AFDGI^%.06N4[-?!PO&?_8AY-)F/T'0T>/@Y&3^-'R;H&QK3B&0Q"(0)0<-$2)XL M,I-V@8E:OAZ"Q D17U3L?#9$UU=?T!5**'I:LTQ@&HN>+94Z_0X[*I3LWF2HKKE.J:QS4=F82N 4ZQW I%$E[R+^ MO9M0$]F1U6YIM5M'T77K]%L3V9%?UWG[B3H?+[L">WB(N4XKZ/HG=5<9UPX< M_Z3P[(._?0I\99H@@2*649G_',O5LM&Z->W%R?J=;L!,%_%&DW=O]YBO$BH0 M@:6B=!IM)8KG#5$^D6QC>HH%DZI#,<.U:B*!ZP#U?,F8W$_T"\JV-/P'4$L# M!!0 ( ..(;U;(PA3=CP( )<& 9 >&PO=V]R:W-H965T2?6H6"&7\JCF])J4%;H[7[.?. M.WJ94@U#R7^RS.0#[\@C&PA!J>E-K*HP:B@ M8*)ZTZ>Z#AN H/\.(*P!X6M ] Z@6P.ZSFBES-D:44.36,D5438:V>S U<:A MT0T3]BO>&H6[#'$FF8P?QE?W8S(9#Z^_75W<75Q?D2]D*(516&'R@]$IX\PP MT&1W!(8RKO'W;JE211.TD]B:?Z 5-8>#A5=6@EN EGS\%_<[7-H?_B>R%WZCQ&VUC3YJ3 MPY]/SCX>9*5 F#;G%5W/T=F6LTRB?M"+_>6FH[=!0>"#WJAM$K-UME M_>OW\3?N?@%J[EJB1L'HH6H#S6K3=4]=L_&?PZN6?4G5G E-.,P0VCDX1*&J M:H/5Q,B%ZR13:; ON6&.?PY0-@#W9U*:]<0F:/Y%R5]02P,$% @ XXAO M5J$T&ULQ99; M3]LP%,>_RE&&)B9!<^F-=FTDH-W&PZ!J@3U,>W"3T\8BL3/;O;!//]LIH9/2 M("'0I*KQ[?S].\?GQ!ELN'B0":*";98R.702I?*^Z\HHP8S(!L^1Z9D%%QE1 MNBN6KLP%DM@:9:D;>%['S0AE3CBP8Q,1#OA*I93A1(!<91D1CQ>8\LW0\9VG M@2E=)LH,N.$@)TN,G3'S16R= Y ]%**I[MC#5!1EGQ M)-M=(/8,@N" 0; S""QWL9&E'!%%PH'@&Q!FM58S#>NJM=9PE)E3F2FA9ZFV M4^%T?#^^OAO#='QY\_7ZZO;JYAI.X3R.J0D:28&RXNA-"(]'J A-Y2#XZ-._,J[VI'0G M*-T)K&[SD#NX1K9"F&+$E\SZ4 57B+2J14PA]&5.(APZ.M,EBC4ZX<H:T10+94O(4=C8L@B!SU.ZM%&NC&8AV;:2IM#6H=_K];H#=UU! MTBI)6K4D$Q01,J6+#_A"E]@+7(#;7-<2**[7VO#^P2K68M/>'JO7: ?5J.T2 MM?U"T.RYGL!S]"9[E#.=MTCHSCL@=DO$;NW9E %79<#E7L"K<.L% M_0 RSE0B:^#.2KBS_YPXK<.)4XOVRE/IE8[WWB)Q>N^ Z'O/EX_WUJGS@F( MCTA$9>:X>[>D^>+X3L22ZM=:B@LMY36ZNLY%<8D7'<5S>W'.N=+7L&TF^L,' MA5F@YQ>.N8O+3ZGP+U!+ P04 " #CB&]6J!Q><+$" #$"@ &0 M 'AL+W=O^!-OX?7T>'^P<+V7\680 M$KU$-!9C(Y0R&9FF"$*(L+AF"<3JS8[Q"$O5Y7M3)!SP-A-%U'0LJV]&F,2& M[V5C#]SWV$%2$L,#1^(019C_O@'*TK%A&Z\#2[(/I1XP?2_!>UB!7"OPM0HU]3"T_:K^VT&KV V6,"4T9]D*\.QX1IH"SM\H'+)TN]0 M /6T7\"HR'Y1FL\=J!6#@Y L*L2J'Y$X?^*78B-.!';WC, I!,Y[!9U"T,E M\\@RK!F6V/2J[=$Z:1_.UDLT=/D;CU']_/) M:KV"L^4 M*A;M: ;%NC?YNLZ9=6<07*.._04YEN/4R*?OE]M5N:EVH-P&I]P&)_/KG/&; M" %2C.HXY;W^JH6C*K,'9*QDZ3N[^( M)2A7B3B6@$2*D]J\Y2:]S$1? D??';H]SSR>$,HD03J$]%M,Q$MF55 >R5HKXU$-)I\E#6CR(5;K_%N,$]*#%W?W6.^)[% %'9* M95T/E)SG)5/>D2S)JHX-DZJ&R9JA*C.!ZPGJ_8XQ^=K1A4Q9N/I_ %!+ P04 M " #CB&]6Y_WK;G(" #C!0 &0 'AL+W=O.[,S*^W&M9!/JD#4\%PRKH9>H?7VQO=56F!)U)78(C$3/HVW@4\4JS5 MP1JLD[403W9SEPV]P I"AJFV#,2\=CA!QBR1D?&KY?2ZE!9XN-ZSWSKOQLN: M*)P(]I-FNAAZ7SS(,"<5TPM1?\/6S[7E2P53[@EU&QMXD%9*B[(%&P4EYN-@YMW%!N MO^)22W-+#4XGMZ.[!3R.OJ]F,)^-EJO%;#[[\;"$3_ @"5TW@&W>=Q6AO<1R=9)QB>@6]\!*B((J.")K\/3P\(:?7 M5;SG^'K_5O%CE6J(^L>);'_?J"U)<>B9!E8H=^@E'S^$@^#K,9?_B>R5YW[G MN7^*/7GYE]:H:T0..:$2=H15""4254DTHT$#PQTR=0FD%!77QVK2)+IVB>R( MVB5![.\.C9Z*:-3[!_U2HMRX,:(@M3F;_ZH[[2;5R#7HF_.QF6#-P'FA:<;? MG,@-YS26X;"R?. M;+=A_WZV$Z+2AHZ'O22^]CW'Y\2YUTG#^(LH "1Z+6DEQE8A97UAVR(KH,3B MC-50J94EXR66*N0K6]0<<&Y );4]QXGL$I/*2A,S=\?3A*TE)17<<23698GY MGTN@K!E;KO4V,2>K0NH).TUJO((%R(?ZCJO([EER4D(E"*L0A^78^N%>3"*= M;Q(>"31B:XRTDV?&7G0PR\>6HP4!A4QJ!JQ>&Y@ I9I(R?C=<5K]EAJX/7YC MOS;>E9=G+&#"Z!/)93&V1A;*88G75,Y9_]K/KM:H.,I2$RH.$&GZ&$Q1<=')^@(D0K= M%VPM<)6+Q)9J3XVTLX[_LN7W/N"?0G:&?/<;\AS/&X!//@]WW\-MY;2WZ_5V M/LXHL3?;'@:R1K$3]UGOQ 6]N."@N"=5 MV*>D.JTYRT ,JFL)HJU]XR"*=L3M)P5.Z ]K"WMMX4%M<]RH\I+ ":8"J7]> M];>ZI@0&989["OPX/#_?T3F0Y7KN:%AHU N-#@J]9Q+3(4W1WI'%CA?[.YKV MLR+_/-[59&\U%MW4?V*^(I5 %)8*YYS%BH"WC;(-)*M-KWEF4G4N,RS4W0)< M)ZCU)6/R+=#MJ[^MTK]02P,$% @ XXAO5B,O*;N=! ]!< !D !X M;"]W;W)K&ULK5C;CMLV$/T5P@V*!$A6(G6SM[:! M77N#!.BF[EY:])$KT;80271(RM[\?:G+2I9$$U7!%UN7F<,SY.%P-/,39=_Y MGA !7M,DXXO)7HC#M67Q<$]2S*_H@63RS9:R% MYRW86/S""H](I32QDV[Z5 MXCB;+.?ELPU;SFDNDC@C&P9XGJ:8_;PE"3TM)G#R]N AWNU%\#YLF+RS&I0H3DG&8YH!1K:+R0V\7B&_<"@M_HK)B9]=@R*4%TJ_%S=?H\7$ M+AB1A(2B@,#R[TA6)$D*),GC1PTZ:<8L',^OW] _E\'+8%XP)RN:_!U'8K^8 M3"<@(EN<)^*!GKZ0.B"OP MIPLM?<*IL/6DG?\#-MS6X^_/YZ^;^[ML3>+\F L<)_P ^@>?'-7C_[@-X M!^(,/.UISG$6\;DEY/ %B!760]U60Z$+0T$$[FDF]AS<91&)N@"6Y-V01V_D M;Y$6<4W"*^# CP#9""D(K?Z[.]30<9JY=$H\9]18'')+% M1&Y-3MB13):__@)]^S=5D(; .B&[33YSI.C__0"$'W@D1G M#?^97J)R&ZD(:;W&Y@M#8)T H=V>-[:A)%D#&8K:%%HW[+-C%II-E#7>N;X" MS^UOTV=8@4%^$K&AZR 5A8(]9=,*U1CG=BN)&25<+.'JQ#*%U MPV]+&#@SI5&C98TIM.Z7:%O7(&T!,5ZC-5XG@[I2I3V1JLPL15C+5(HU=)U-HW;C;T@8A0_)$1NL:4VC=L-NZ!FD+B/\A3V>H MNZGK]S]^568PF'D7Y-D6)$A?D*QHQ@7+JUZ?_'"3)>A.SHN:JA9J]$(90NL& MWE8VR#.E3Z.5C2FT;MAM98/T[8[Q^O0'/2+YD3[MRW-H!=U9/WE:9_W3E+!= MV5;F(*1Y)JIN9/.T:5W?E W;WO-;>+VJ&M M3-4/O\=L%V<<)&0K(>VK0%)B M58NYNA'T4'9I7Z@0-"TO]P1'A!4&\OV64O%V4PS0-/J7_P)02P,$% @ MXXAO5@["<@WJ! 4QT !D !X;"]W;W)K&UL MM5EK<]HX%/TK&F]GIYW9%B2#,5E@AD?:9B9-,B'=?E9L =[:%I5$:&;VQZ_\ MB(6Q(D(BOH!M[CT^1Y;N/5B#+64_^8H0 7XG<)K1G"8)R5Q"[7;7BO!4>J,!OFU&S8:T(V(HY3<,, W28+9 MXX3$=#MTH/-TX39:KD1VH34:K/&2S(GXOKYA\JQ5H8110E(>T10PLA@Z8W@V M=5&6D$?\$Y$MWSD&F91[2G]F)Q?AT&EGC$A, I%!8/GU0*8DCC,DR>-7">I4 M]\P2=X^?T#_GXJ68>\S)E,8_HE"LAH[O@) L\"86MW3[E92"NAE>0&.>?X)M M&=MV0+#A@B9ELF201&GQC7^7 [&3 +UG$E"9@/83.L\DN&6"FPLMF.6R9EC@ MT8#1+6!9M$3+#O*QR;.EFBC-'N-<,/EK)//$Z,OU]>S'Q>4E&%_-P/7=U_-; M<'%U-[[Z#\C D[9"DIFDX(9>H891. ;3<6*@_,T M)&$=H"5E5EK1D]8),B+.2/ )N/ O@-H(:0A-7YX.#73<:NC=',]]!L\\IKH! M*_ Z>KQLP9_Q-0[(T)$KFA/V0)S1GW] K_VW3JPEL)KT3B6]8T(?37",TX M+, ]649I&J7+;!S6A$4TU$DO\+HY7E::'D:>ASSY%!]V->FB7-BIHFIDNQ79 MKI'L./BUB7B45YV$8+YA1-8Q49(%./Q7+M/LBHYW >WM,$)^M[U'VWC_5SX* MKU+G&=5=)&L6V(L@=5$PK;J;&W+];4$M*3>%EI=_DYC MAY9K; E8FVVNU]F?D_JPOJ^?E! IPNAT=;;$/E!HS0Q>^TA4PX?&IOJFFE9" M'RAJNJCGJAI4W1J^N%T?K&LEU"Z#GM_W&D^B&5:?:W6JJE=#<[.>15RPZ'Z3 M#:F6GJ5>6ZHX1>>&JG5#SW:%,YJ!H^5;0JO+5PX!FBW"*RI3."U I6=0"^V$UH)3"7ORJ0:NU M^39!-V=/84J0,B7(_$)A^HCC34*T_*VZ#UMH=9W*?:">[:EJM#-'R[>$5I>O MW PRNYFW]0^-O>DT_B.8&;Q6H;)!R&R##BW&ON;=3*>Q&$]A,6)H.M\$^R>"D&3_'!%<$A8%B!_7U JGDZR&U3[J*/_ 5!+ M P04 " #CB&]6K!;.5ZL" ;!P &0 'AL+W=OGZV86;8-5@9IO0 M_?O90"A-:39I^P)^W'-\SK5][1>,/XL80**7A*9B9,129F>F*<(8$BQ.60:I MFEDSGF"INGQCBHP#CDI00DW'LCPSP20U K\[*)I1XP S_#&UB"?,CNN.J9#4M$$D@%82GBL!X98_MLZNGX,N ' M@4*TVD@[>6+L67<6T>E= M>7G" J:,/I)(QB-C:* (UCBG\IX5EU#[Z6N^D%%1?E%1QUH&"G,A65*#E8*$ MI-4?O]1Y: %L[P. 4P.WL\?%U14:W\S0[>IR?H\6-ZOQS<5B 82$RI.5,C#V@:Y;*6*!Y&D'TEL!4]AJ/SL[CQ#G(.(/P%+GV%^18 MCM,A:/KWHZ"^!;,(+/GVS/ M^MYE^3^1O4E KTE [Q![T!P?\GJJPACS#739KKCZ)9>N2=O \LUMV\NAB#<" M^XW _F&!G F!-K7,+E$5WFLM.?QF>_:>L/=1 W?8&W2+\QIQWD%QXS#,DYQB M"5$[@51)AL[KYKU+SZ _[.])_4-0I=1LU9D$U'[I\BM0R/)45M>Q&6TJ_+@L M;'OC$U7YJT+]2E,]&]?J&)!4( IK16F=#I0D7I7BJB-95E:S)R95;2R;L7J] M@.L -;]F3.XZ>H'F/0Q^ U!+ P04 " #CB&]6:HL9IFL% #'P &0 M 'AL+W=O-8[91OD >]YZD,.UE"'O%W2%_YWC'(I#PS]BL[ MN5Z>#:R,$8WH0F001/Y[H3,:11F2Y/%/"3JHGIDE[A^_HW_+Q4LQSX33&8M^ MADNQ.1OX ["D*[*+Q -[_4Y+03G!!8MX_A>\EK'6 "QV7+"X3)8,XC I_I/? MY4#L)4"W)0&5">@PP6Y)P&4"SH46S')9%T20R3AEKR#-HB5:=I"/39XMU81) M]C/.12KOAC)/3*[N[BY^7M_<@.GM!;A[_'[Y *YO'Z>W5]?G-Y=@.I]?/L[! M$,R+7QFP%0@309)U^!Q10#BG@H//%U20,.)?9.#3_ )\_O0%?))QX''#=IPD M2SX>"^)H4?(Z+WBA%EX0@1\L$1L.+I,E7=8!1E)DI12]*SU'1L0+NC@! M&'X%R$)(0VCV_].A@0ZN!A[G>+@%SS2BNN$JT&P]6C;93_F6+.C90,YF3M,7 M.IC\^0=TK;]T4GL"JPFW*^&V"5T.Y"I,0D%!).?O(#%+1?@OR/W-!S7,<_T* )\+ MK2Y^KZ_#7J=0"5>;')Z-K(,W4A?FNIZM?R4A4G11_Y.HQ/R0LR;,P%EU<&CL MDY-9;L]H*NULE%=]O@FW^L'MM7OWA5:7K?HWM/N=5D8_<+3XGM#JXI47@-W- M0*M[@[CN^[1V^I\TPS[8\O^4]5:T?=N_]QQ@8V.SU0R> F9NNZ]#%(0>W M^#"H7 $TVX(.)J9$W+>$R/708:/5A4''1BV,E36 9F_P,U]&2J[3%YK*93%X MXG2UB\!-N*):NF8X",$;):GN)9MU2JW+4@X"?F AZ&*3L(BMW[0B>O40?:'5 M%XW*1*!^303JU43TA587KTP$,IN(3M6NQ*PMUAP7!0=33A<&@[9JAY230&8G MT5>U0TW7,(006PT=NC@K\-N$*'N!S/:B0[4K$??'U,8-/Z2)"H*611!2M@"9 MU_7'EKH/X/SV2O=!IO=AH4.JW2-SNS>OE;IENRED@0T5&C" M,');UE!(.0ED=A)=BES0]&H(-XI<,TI6PD#/%RL[@(T=]^@J]P&M%0]KG(-W^)55$P0M[+7,/.4O:[U\> M7#^'I[-B/U;!%-O#/TBZ#A,.(KJ2D-:))\FFQ8YK<2+8-M^T?&9"L#@_W%#I MQ=(L0-Y?,2;>3[('5/O>D_\ 4$L#!!0 ( ..(;U;/=+#6F ( )(& 9 M >&PO=V]R:W-H965T&TVFW-,#=\9;]J_6NO3Q@"6-.[TFF\J%SXJ ,EKBBZI9OSJ'Q M8P6FG$K[1)LFUW-06DG%BP:L%12$U6_\U-1A!^ /7@$$#2#8!_1? ?0:0,\: MK9596Q.L=*Z%6B<2H^N[Z>W,\N+E!R-4'7 MB_/I+9I=+9*KL]GH8HJ2^7RZF*-/*,DR8LJ.*2*L/COF(QQ.0&%"Y0>=? MH,.##^A 9Z!%SBN)628C5VF59B\W;12-:D7!*XK\ %URIG*)IBR#[#F!J^VU M'H.MQU'P)N,$TB/4\S^BP N"#D'C/X?[;\CIM27O6;[>/Y2\JVPU:[^;U=SV M4UGB%(:.OLX2Q!J<^/T[?^!]Z;+\G\B>%:#?%J#_%GN<%%PH\K,^0O"D&Y*$ M+L,U2VA93#=:QRYZUTC'4GA<=@F/1,8M@+#OQ:H3W5**WT@S?%.N52( M+]&*\TPBR6G6I3]\(:W?^[PG_V7.8##84^_N7.\"Q,IV/:E%5$S5MZ"=;1MK M8OO)WOQ(-]RZ/_ZFJ;OU)18KPB2BL-24WM&Q5B3J#E@'BI>VB3QPI5N2'>;Z MIP'").CU)>=J&Y@-VM]0_ M02P,$% @ XXAO5H;&7DOE @ OPD !D M !X;"]W;W)K&ULK99M;]HP%(7_BI554RNMS7L" M'42BP%JDKJT*73\;N!"K3LQL\[+]^ME)&E$(H4+[ G;B<_S<$R=V:\WXFX@! M)-HD-!5M(Y9R<6V:8A)#@L456T"J[LP83[!473XWQ8(#GF:BA)J.905F@DEJ M1*WLVA./6FPI*4GAB2.Q3!+,_]P 9>NV81OO%Y[)/);Z@AFU%G@.0Y OBR>N M>F;I,B4)I(*P%'&8M8V.?=UMZO'9@%\$UF*KC70E8\;>=&-AH&F,,-+*I_9 M^@Z*>GSM-V%49+]H78RU##19"LF20JP($I+F_WA3Y+ EL+T# J<0.)\5N(7 MS0K-R;*R>ECBJ,79&G$]6KGI1I9-IE;5D%0_Q:'DZBY1.AG=/C[V7@?W]ZCS MT$./H[O^,QH\C#H/MX.;^S[J#(?]T1!=HD["N"1_<18];-0:$H#4&M*)D91( M0%0]C2DBJ<3IG(PI("P$2('.>R QH>)"N;P,>^C\[ *=J7%H%+.EP.E4M$RI M"M$XYJ2 OLFAG0/0/9A<(=?^AAS+<2KDW<_+[8]R4\579NB4&3J9GWO KR\D M40M*E8\/Q92'='D@I*H$\BF]ZBGUNWTM%G@";4.]O +X"HSHZQ<[L+Y7Y?&? MS#ZDXY;IN'7ND0K9K2HP5_F92G]K5E$8VLV6N=H&K[4^$=PKP;UCX%X5>*X* MML!]R_9WP&NM3P3W2W#_&+A?!>[O@;M68.V UUJ?"!Z4X,$Q\* */-@#=X)@ M-_%:ZQ/!PQ(\/ 8>5H&'^^!>*,6?!2#VOMG$G@5?F,/WW9< M_8@^\-?.<")_L^1OUO,SB6D5>G/OZ^*Z3KB[9O9'.7[HV>6HG,G8G MYG.2"D1AIG365:@,>'Y&PO=V]R:W-H965T MG'E^RJ? M0T'4I5@ -RU3(0NB357.?+600"9E4L%\' 2)7Q#*O:Q;?KN765=Z'G/:WMH E.R9/I!K+_!UE!L]7+!5/F+UE5L M''LH7RHMBFVR(2@HK_[)9CL0>PEAZYT$O$W IR9$VX2H-%J1E;8&1).L*\4: M21MMU&RA')LRV[BAW$[C2$O32DV>SJ[[_8>GVP&Z&U[?#.^&C\/;$3H?@":4 MJ0OT&3V-!NC\[ *=($3U?6UZ=LJ^/FVGYNJ'_Q./P/(+U$4?D(X MP-B1WC\]/7R;[AO'M6UG2J3E%K$[[$HM2 X]SVPA!7(%7O;Q M0Y@$7UP._Y/8&[]1[3D#># IQ$L1N]':-WCZ*WE\:<*X1 W.'($;)F#*JJ1NSW2"( MTL8:.-K?/QX/G=I-YZB;'WIN!IQLU\Q?W'2:;A)\..C-H%848_>8A\'K914< MY7P4FC#GY1,TSZ5VVC@+'&&M((T.E[&_=Y_:Q\QW(F>4*S/94Y,77*9&0%;O M@ZJBQ:*\8L="F[5;%N?F3072!ICVJ1!Z5[&W=OU*R_X 4$L#!!0 ( ..( M;U:D_ ;SG0, /<0 9 >&PO=V]R:W-H965T(0 G00::6;-ND]O6JTVV>3&&(ML3/;*=W^^F,#RI<3AGN-SKNW>:Z8;QG^(%&,)'O.,BIF32EES>%8 ZJ(;P1O MQ,XST%:6C/W0@R_)S/&T(ISA6&H*I#X>\!QGF692.GXVI$X[IP;N/C^Q?ZK, M*S-+)/"<9=])(M.9,W9 @E>HS.17MOF,&T-#S1>S3%1_P::.#2<.B$LA6=Z ME8*BU4.I82O+G!$I%, MO%5A]XL;\.;E6_ 2$ KN4E8*1!,Q=:52HOG#CLPEWEOTV"WR;!K_@&!_F6TF2B1@5FE#Y@5Z) ,9XYZ@0)S!^P$[UZ M 4/OOARN[#K@E# MU ".@C:JHRYHU056=?\PNK:+J_%A9]J)-PJ?J3.$!>-A>$#>L)4WM,J[IRA7 MZ2._<5*?B(2(F)54 K7YZS=$B!+1&*NS(Z3Q/ SWI%VHM?6>&3!$^5XP-NL/ M6_VA5?\=DR@#62?)[P#%QDR'ADR/@KU,&\*"< A#L])1JW1D5ZKE90Q1DS(K M]-3#V!-9Q^6X=3D^Z[_-N$^#/9%U#$Y:@Y._/,\3PR[K'-3:A"',A+[:NS9W2#L_:: VL+Y,]L75-;DLWM!;.(S9;0["[ MC8;0?[;5[+.P9[8NMZW MU1\&YVU3:]=PLLF>V+HFMST$M#<11W1@<+_Z&SHP0]3A#@QN>P1H;Q+F)>=8 MM32%[G34]4K= Z2M&MOI3EZ&ULE951;]HP%(7_BI55 M4RNM)#$0TBY$&F75]C )%;H]FW!)K#IV9AMH__UL)T2T!-!X(';L<[]S2'Q) M=D*^J ) H]>2<37V"JVK>]]760$E43U1 3>]_"^TEL][L-ORGLU,$8V21+(5[LY.=J[ 76$##( MM*U S&4+#\"8+61L_&UJ>BW2"@_'^^J/+KO)LB0*'@3[0U>Z&'NQAU:P)ANF MG\3N!S1YAK9>)IARWVC7[ T\E&V4%F4C-@Y*RNLK>6U^AP,!QB<$N!%@Y[L& M.9=3HDF:2+%#TNXVU>S 175J8XYR^U#F6II5:G0ZG7Z?+- MFM?/!(DU(GDN M(2<:4"4ISVA%&*K(FWD0VBXSP?-;#;(TV9<:74]!$\K4#;I"E*-%(3:*\)5* M?&W<68:?-4XFM1-\R@ED/=0/OR <8(R>YU-T?77SOHQOPK4)<9L0N[K],PF[ MW-2J0;?*GH5[59$,QIYYV17(+7CIYT]A%'P]XZG?>NJ?JYZ:B/TN3[5JZ%3V M.&W3,#"?Q-]VP 8M;' )-NB"U:KH'2S$<3=LV,*&EV##+MCP?V!1"XLNP:(N M6'0,"^/H#G?31BUM=(DVZJ*-CFFG@L4M*CZ+6@AM3]W'\]=YJN+C=V9P%XRB M#P[\@QYAV^TO(G/*%6*P-L*@-S(59-W"ZHD6E6L;2Z%-$W+#PG1]D':#65\+ MH?<3VXG:_Y'T'U!+ P04 " #CB&]6<;822L$( ":2@ &0 'AL+W=O MT125\]Y M\6>YEE*1ES3)RNO!6JG-^]&HG*]E*LIAOI&9_F:9%ZE0^FVQ&I6;0HI%72A- M1LSSHE$JXFPPNZH_^UK,KO*M2N),?BU(N4U34?Q]*Y/\^7I !Z\?W,>KM:H^ M&,VN-F(E'Z3ZOOE:Z'>C/641IS(KXSPCA5Q>#V[H>Q[5!>HC_A/+Y_+@-:F: M\ICG?U9O/BVN!UYU1C*1MYWS*0>+-=#0GS?M'_&"7?'SAY]^//KA.#,5S.A\2G M-88!&'X^YL396*WT][^.7W/]D]Q'Y3B;VUVIP%VJ&BK>EQLQE]<#/1:4LGB2 M@]E//]#(^Y=+(4P81X)9:@5[M0*(/OMCJTJE.VB.+H:/1TJXS@LF(11L#_,:G.X;W,(MOES7I9$CY_R1>G& M;N-R78=NOM2#G[OO@+RN;<>$\1TL.E0HI&'H%BC:"Q2! E4A1.*RW(IL+LD\ M+U5)-B)>N*0!25VEP83QJ"4-H].)6YGQ7IDQJ(QKS'>I E*ZJH()XT@P2[W) M7KU)KZ%Y@JD6)HPCP2RUIGNUIF!?^Q)G<;I-R3)^D0LR7XMB507CDRRTN22% MT![0)>8.2KW#(6'(0GMDO0.K[JH2$LQ2B7K&C7G(PSD,[-KA4&F\H9TYHM,# MSTI!E3[&F1[-J\L\/)[#F,[:T%9K DJ#H\L\5IVV-,Q(PV!II-SI051.$JG= M=N%T0#"FLS2L_4-/Z;$#PJK3EL9X:0J:STY. $9UE@?58C>T\\P ->:9PN[Y M>R;2O%#Q/WJ K@8;LHC+>;YU>P*8U5F?H-6B<3 Y[CWM@Z9A=*+5QCY3V#^W M6FUW$&?;41TT;;O>24B/V^ZPQMZ4G6B\L<84]L;.K/]_I+E8.]N.:I%1:1R+ M9HMIW#0=]S*$%-4_H](X%LV6S%AH"GK.V5V>IK&J>YV^;CG%VP$H/>CYWM#S MZ/C8!,)5=1;F$F:9&K=,8;M\*C#%R\G Q#3!=Z@TCD6S;Q0:3\V\7H')4)TS M*HUCT6S)C,%FL,%^.S ; &5'@=E*SN":.NMR"7?-C+MFL+L^$95&U\0+N>H-(Y%LW\#8^-9 MOWOB#-6RH](X%LV6S%A[!EO[;[D2"G,>BV3^12558U"_J41,25!K'HMF2F82$P??W.T7]V!7UK:!'33ZP:+8\ M)OE@B MV6L 3 +CPY,"G[)Y(44IJT48JD-0-U@KJ+U64,.5=Y[_OT3BXIO$Q8<3EQ-! M?5NI=R^4A.]NP?#.ZRI0,Q\LFBVLR7Q\UF\E"FJB@DKC6#1;LH.U._!\P\UF MD\1S\9A(DHIBI8/WG2B)(!M9S'6W="TSNFV0K;2Z%;2XBW8ND9[X)CWQX?3D MG* ];9IA>.<>B)K78-%L84U>XX?]@A8UST"E<2R:+9G),WQX2J17T$;.H*6M MH$7-+K!HME FN_"[KQ[2@?KYT^T?]V]<95$G1%!I'(MFBVIR$K_?HB(?-9] MI7$LFBV9R2=\>*JD5\!.SPQ8U"P"BV:OC3591 !G$6\%[.DK+ SNO%P6-=_ MHMFBFGPCH+T"-D#-)%!I'(MF2V8RB0">0^D3L WR.&!;DTUPU9V%ND3^$)C\ M(8#SAQ,!>R^?\N2I7ORV^W(IYG$2J[^'3N509T50:1R+9NM[L%L@Z!>[J D% M*HUCT6S)3$(1P!,ES47"[*X@0.9FUY\*K_CJ,6-8' HMD2F00B M@!.(#IM04*]X!PITB-UV#<>]!KH=,W6:0DR47F ME EUI@"5QK%H]EXPX_'#?DN=0E0'CTKC6#1;,N/@0WC&X&:E^]VJNLNX*6(= MI1N1$)%6ZYXK1[J?_7NG?2KD4$/W>BC:LJCPZ706[Q)>/C1>/H2]_/D7NP9T MZ 68RPLXCCO:)MDTW'%<"&RG-*X[A%UWW\DV&-LYQ/SVU%TT;&TV<1W&AA$] M(8*QQB%\1_[<*Q:,Z=SHH-U'QL'TN,V7L,#AP7[;7FN%/DM5#1/YLLG*G&KA M;KW%W7M["=<<&M<<]EO>$Z)Z9%0:QZ+9DAGG'<+.NULN%K:=,@T=PR_JW70L MFJV0\=TA[+L/KTY)'9_E&P&*:L ;FC6<^>&Q <>JT];(&/"PEP%_J#M4=7!M MP]V7=%0?CDKC6#3[D0/&AT?]?'B$ZL-1:1R+9DMF?'@$^_!NPUD#:]U:.AK. MX#H[*X1JMD<'#^U)9;&J'WY4DGK+Y>XY./M/]P]8NJD?*W3T^1U]SW>/23*8 MW5.;OM3WUTL]^"TUTAN.M5[%[D%(NS&ULM9I=;^(X%(;_BI4=K6:D69(8*&T7D IV M-2---54[W;TVB8%HDCB;&.A(^^/7^6B":3 $G>U%24+.8_NU[P3Z<]L MS;E$KU$89Q-K+65R:]N9M^81RWHBX;'Z9BG2B$EUFJ[L+$DY\XN@*+2QXUS9 M$0MB:SHNKCVFT['8R#"(^6.*LDT4L?37C(=B-[%V5!7-B[.]JE*SLE+X2*5$'8S1RS-!'S]\:JG8_'R,:\ 0,^:[)WO( M'9S$T"Z8^5T+1A.K7X^)?L$='.$^!'$0;:*V?C,&YDGM-DN8QR>6REH93[?< MFO[^FWOE_-FF-22,0,(H$$Q3?U"K/RCH_:-C;"';I!] 2@\)(Y P"@33I!_6 MT@^- _\EWF3<1_EEM.06V;7?%+>3IV>X[BCX=C> M[@MN++BKX) P"@33!+^J!;\R9QKV>BS3& .[#G=(&(&$42"8IOZH5G]T4:89 M04H/"2.0, H$TZ2_KJ6_!LXT)<_%!YD&'R8:8[E=]8:$42"8IO=-K?>-4>^9 M\A+HB4F._D6&UQLCI.O(AX012!@%@FD]X3J-XW N2CM5&)#ZH#0"2J-0-+T# M]BR?:WP8[I(D##RV"+ERDNE*>;73Z:="OLL_A^G'7'1GV2%I%(JFRXX;V?'Y M.>CXBX^9TODQ@*014!J%HNG]T;A0C4X8+2*!1-E[TQN:[9Y7[[.OO^9'X/,A,Z/P*@YA>41J%H>E\T M_M>]NBP'@=I?4!H!I5$HFMX!C05VC3;OLAPT.C,'@7I?4!J%HNFR-_;7-?O? M.@<9WH,@S><C=ST'FHKO*#DJC4#1=]L8&8[,-?N);$6Z#>(6\+8U-QOBB=(1!?3$HC8#2*!1-[X#&%^,3R[_EG(P6(E6QQ?/! M5''JP6CM%E"W#$HCH#1:T89[&==UU%^=<76]&QN,3]C@2&QBB<1&9I+%OA*\ M5>?!N]*=PUQ_\A9BKDIG1?X/(XL;(XM/+-XY;U5L>.:2B;F8SH,. MU)]"T72)&W^*S0NTW[B4/$5B6E50&@&E42B:WAF-5\67K==BT 5; M4!H!I5$HFMX!C6O%9M?:<68$-;"@-%+1]J>*_OY45LD-:DSMO5V*$4]7Q?;0 M#'GY[%?NY*NOUEM0[XJ-EP?7B7M+RXVD#:;&PO=V]R:W-H965T7GR^F1NPUPL9/QWM%*;R]ZT1U9B'>YB]44^_"&J$QH5 MO*6,\_(O>=@?.Y[UR'*7*YE4P;H%293N_X<_JPO1"M"<[@!6!;##@.$+ 5X5 MX!T;,*P"AL<&C*J T;$!XRI@7%[[_<4JK[0?JG!^DVG[%K, /N_B,>/0WP@:,=;1G80__).]U^* ,IQWA_O'9N\(#>[@OEM;& M\^/#J>5:>O5]X)4\[T7>K>J2=!\U[(XJAKWS?!LNQ65/CVNYR.Y%;_[K+W0\ M^+U+#R3,1\(")(R#8(:.PUK'H8T^_[Q3N=+],TKO](@;A^E2=,EJA;C*BH3Y M2%BPAXU*6/&,O9]3QJCN+_=MO3J.\NAD6!]E"#&JA1A9A7BG'YO7F4BB74)X ME!9"D'_:X^R?,DP)#Y=1'*G'+HVL?%>-D# ?"0N0, Z"&8J/:\7')PVA8Z2. M2)B/A 5(& ?!#!TGM8X3>\]-Y"Y51*Y)7O16HHK>&A>]=6WIK5:FJ\I(F#]Y M-KQY0V]LCH$!,B,'P0SUIK5Z4ZMZ//HI5B1,TUT8ZX)5BR=R1;)0=3X'K2Q7 MU9 P?P^CK"7;X&S@348'PB&3S"O=%_-A%F=8N*=X2XD>R#1_U M*ZSJ?-.PHEQU0\+\V?/>1J<'FB$3M%-KLI *U"D/)B:3Y4%H I7$4S92S<6RHU4@XL4ZU0YW%AEHZ%:T]V@WI MX.#A"4W)4313P\:MH7:[QF$@)D%9S*X*%_;#3M='+_B.5_:4S@I#W1TH+8#2 M.(IFW@J-7T1'IXW.4!\(2O.AM !*XRB:*6=C!E&K1W'JZ PUBZ TOZ*-[*,S MU 9"T4P-&R.(VIT@-R_!#G/6#NH!5;1#.X'.#E]-H6DYBF;JUUA!U.X%.5D* M=I:S?% SJ*(9KL+D4#FH$X2BF>^23TH3D#*(VC:*:( MC6?$[)Z16T5KASF+YQU7@_K0M &4QE$T4[_&+V)VO\BIHK6SG.7K^$QF\$PZ MJ+\#I7$4S92N\7>8_8.@(TM:.\59-*C= Z4%4!JO:.;M.7[A(R[6V#CL/VP< MOOA,%KK'1>I__&!F3^(L*M36@=("*(VC:*;XC?_#)J=5L%"G!TKSH;0 2N,H MFBEG8PW21RJF KENE['KSN+>P)G:<50 T=*(VC M:*9TC:'CV;\:.K*"M5.M7YKKEQ6&ODX&RB3S#; MS]#;KRBY+6>4W4JE9%(N;D2X$EEQ@-Z_EE(]K10)ZGF2\W\!4$L#!!0 ( M ..(;U;(1/A J0( "4) 9 >&PO=V]R:W-H965T[)2;,21/[[%*D":\4)0PN!9)566+Q> Z4;\:. M[VP?7)%EH G7H&Y7ET+WW-8E)R4P23A# A9CYY-_-AF9>!MP1V C M=]K(D,PYOS>=63YV/%,04,B4<<#Z;PT3H-08Z3)^-YY.F]((=]M;]PO+KEGF M6,*$TQ\D5\78&3DHAP6NJ+KBFR_0\$3&+^-4VE^TJ6-CG3&KI.)E(];]DK#Z M'S\T\[ C\ ?/"()&$+Q4$#:"T(+6E5FL*58X303?(&&BM9MIV+FQ:DU#F%G% M:R7T*-$ZE4X_G]^@]^@"$X'N,*T \06:PERAXRDH3*@\T<.WUU-T?'2"CA!A MZ*;@E<0LEXFK= 7&Q\V:;.=UMN"Y;)"=HM!_AP(O"#KDDY?+_7VYJ[E;^*"% M#ZQ?^*R?YIPQJ42E-Z9"/[_J #134,I?77"UVZ#;S9RW,[G"&8P=?: DB#4X MZ=LW?NQ][$(]D-D>>-B"AWWNZ?=*2:67D+ EFG.AU;K5N9ZU3V1]S!MAG?KA M!V\8)^YZ%Z8C;#"*XD$;ME?FH"UST%OF#8@248Y95V6]TM.J<!2K#.V 'X]+OH(YX'/YH*GG-RJIR*$P0A5,PW+B M7887TY&U=P8O C9FK\UL)@NE7FWG+IUX@04""0E:!4Z?-5R!E%:(,'YN-;TF MI'7<;^_4;USNE,N"&[A2\H=(,9MX(X^EL.25Q$>UN85M/GVKERAIW)MMMK:! MQY+*H,JWSD20BZ+^\K?M.NPY1-$1AVCK$#GN.I"CG''D\5BK#=/6FM1LPZ7J MO E.%'93YJAI5I ?QK/KZ1/[PN:TV6DE@:DE$P6"!H-,,E497J1F[".167T_V5),:XKH"$48L7M58&;8=9%" M^E' IY2:O*)=7M.H57$&28=UPW,6!5'$GNPUB+TV=4I]@;0?!G5%IP?/ MF4&ND7X:K+3 =Y82^2'F=M4YE+2@P3FS*QJV8/8;S/[_84*1_ANR7?-;)3LL MZM:0@Q;(00,Y:!7\KFSMX)+Q7%4%'B*J!?I.P); =1P&]AG[ZP.!ATW@86O@ M&_$&J3N!AV+6OF&X%S3H!,%HV _VGO PPJA!&+4BO' M^()JPC&*VCV,/E+T MNJ,_XOI[Y2D'O7)%V+#$KFA=J9K1ILY?UN7MMWE]2=QSO:)_ADE8DFO0&=*Z MZ[KPUAU4I2MV"X54.ETSH[L*M#6@^:52N.O8 ,WM%_\"4$L#!!0 ( ..( M;U9CGC,6K@0 (7 9 >&PO=V]R:W-H965TE_ LG6/[KG2D8\UV CY62T!--DF<:J&SE+KU8WKJF@)"5-78@4I M/ID+F3"-3;EPU4H"F^5!2>SZGA>Z">.I,QKD]Q[E:" R'?,4'B5169(P^>46 M8K$9.M39WWCBBZ4V-]S18,46, 7]:?4HL>66*#.>0*JX2(F$^= 9TYN)[YN MO,=O'#;JX)H8*L]"?#:-A]G0\4Q&$$.D#03#OS5,((X-$N;QUP[4*<_1W.7DD\\P43$3\.Y_IY=#I.60&H,1GZ9WY.+[-P-78Q8&RXUV(]X6(_HG1J0^^2!2O53D M/IW!K [@8OHE!W_/X=:W(MY!=$4">DE\S_<;$IJ\/)Q:T@G*D@8Y7G "[R'5 M($%I\L0TD"F64#55J0#I-(,8]=ZH%8M@Z* \%<@U.*,?OJ.A]V,3PY; :GP[ M)=^.#7TTR9(L9D:-9('[QB5)YXW<->'U3CNUZ?!8;<:S^N2 MY[65YT](#@E%8I'ROPM&IUDTI5_ AX?I=SJ=X_2/^W7#[LGTPS+]T)K^.!$9 M:A@)Q$PI/N=(82Y%\M5I,=-!M"# 9,K31>-B#H]2?AO2WC&UXWZT$YZDUBVI M=5]';?QQ\H 3@LGSO2AABV] !;C-ZB7.8 I;3?0&8B2:Y-M2$[WN4=I!6,^[ MH&=-\Y4R[)5%Z%F+<+SM-#&Q8IR[Z[0$5J/;+^GVV]AE^VWR;0FLQI=ZU9O: MLT[P'4B^+O997.6@&U^]5HAS^>[0:G(-O=-;$3UP'?2E7&+.GGG,]9=&/E:8 ML_G0HQ=#T.N?IN-7=/PSM4?^(1^+O323TGBG?,H:EZ@=^VR.+:'5*U%Y']J* M^:&MNI^VT.J<*_]#[0;H1<(\]B1!2!N\BWVLUW*I/ ZUFYP#+F/#Y9),-\>OA/LT2D,S<_[.Q"O;!"\7DXZI+ M,BF4TSCA_QNG7I[*0U&[B;((W2)P*^;9B[TEM'H%*JM%NZT(O"4KM./\+8P5 MK9P5M5NK%PF\=R3PZR!L\(CVL5[+I;)-U.I2OK7 [8/7A?F+2".+QMN JI\G M5%;+MUNM1IF/HTAF^&6Q-RP<&E>^'?K]-V5?*5!/8+[7VUT*QOP];@BH*Y!Z>)2&.1'[(J$IEO[.)0 MKKQ;'N2.\^/+_]R_I3>3XCBV@BE.AS\PN>"I(C',$=*[ZN*V*8L#UZ*AQ2H_ MLWP66HLDOUP"FX$T'?#Y7 B];Y@!RF/OT;]02P,$% @ XXAO5LNNN+^U M" %FX !D !X;"]W;W)K&ULK=UK<]I(%@;@ MO]+%3LTF51FC"]>,395C27W9G20;CW=K/\K0&-7HPDC"3JKVQZ\D9(D&T493 M;S[$@#E/ SX'%+V1=?V2I']D&RES\CT*X^QFL,GS[SR,(CEUY1DNRCR MTQ^?9)B\W S,P>L-WX*G35[>,%Q<;_TG>2_SA^W7M+@V;)15$,DX"Y*8I')] M,[@U/PI[4A94]_AW(%^R@\ND?"J/2?)'>86O;@9&^8AD*)=Y2?C%EV=Y)\.P ME(K'\6>-#IHUR\+#RZ^Z5SWYXLD\^IF\2\+_!*M\3 5GNLCR)ZN+B$41!O/_J?Z]?B(,",+BT8UP7CXX+QF8))73 Y+CCW*DWK@NFE#VE6%\PN+9C7!?-+ M"TSC]2=G5!VT_Y%7_>+XN;^X3I,7DI;W+[SR0M5T57W1)D%8B#//M0W%A<_GV3[#(_7F77P[QX0"4[7-:+>_O%K3.+F^2W),XW&7'C ME5QUU-,WZBT-,"Q>B>;EL%Y?CD^65A2[\(J8HP_$,BRKXP'=O54>7Q%C?K;< MT9=_3IZ+ZI>/#FV7+O@G+[?#G5ESMRV91W/7=V>7G7ZOR" ME\ZRSI:+"\J[7SJEC^QFK.S*L\^-53DJFR1V_4[96?DA^SK;^4-X/B8S"3Z;,<+'[^FSDQ?NWJ4B3F(#$7B7E(C"(Q MAL0X$A,@3)F*43,5(YV^<(+G8"6+CPJRE>G^XZ38EEF&Q=>N=_]/6JWO3" Q M!XFY2,Q#8A2),23&]]BLPLI_ SPOC"N[^-AY/NSUKCL9L^9.2@^/FQX>7]3# MVL;5$GT;%XDY2,S=8^.#U])>4B,3DX'SQP;V/>^D'GF[*VO&_7(C$'B;G3CC?EHW=DY'H4B3$DQI&8 &%*:\^: MUI[UV^8@[X*8K)*PN'*P+=WY[TJMW+?KD9B#Q%PDYLVZ-BXGZA!1Y(H,B7$D M)D"8TO?SIN_GE[^E]^AYK=JWYY&8@\1<).;-+^EYY(H,B7$D)D"8TO.FT>Z1 M-[1=_P\_+G<;DI_]:/LKN4NBK1__^$!XO.SJ=3W6M]FAF@/57*CF034*U1A4 MXU!-H#1U. [B*A.\8[T&40."U!RHYD(U#ZI1J,:@&H=J J6I V*U V)I/ST> MR@^/ES3(BRVD59 MDUV<9Z3X2"'+)(J"K/R/#=D'LI9R?ZO\OI5Q)COW\^B7 MZCTZ2,V!:BY4\Z :K35E/\[)7E8&79-#-8'2U)%HLUA3&VHM>!SD@1^2[>XQ M#)8D6:]E&L1/G1T/C6&AF@/57*CF034*U1A4XU!-H#1U,MH\UARAMZ:@F2Q4 MBPVI))U\Y_?LFS7G?GJI=Z3 M 4U]:VURL DQF1NG6:T+7=:#:A2J,:C&H9I :6K3M_FOJ0^ >=GC9)L&2]G9 MZ-#X%ZHY9DJ>5"-0C4&U3A4$RA-/6*JS:LM [P3R8)FUE#- M@6HN5/.@&H5J#*IQJ"90FCH@;69M:2,_Z+:6?JG>HP--LVM-":JL\?$N)NB: M'E2C4(U!-0[5!$I31Z)-J2U]2GTOETF\\M,?Y(LFC=,CO9L=FC]#-1>J>5"- M0C4&U3A4$RA-'8HVI[;0!PU;T+@:JCE0S85J'E2C4(U!-0[5!$I3!Z2-JRUM MVMDCZ#?2 M.'UU[T;?:X>' 5CVU?BXRZ%'$4,U#ZI1J,:@&H=J J6I7=YFSI8^<_ZK>9R> M[=W^I_'Q:#*?38_['WJ8,53SH!J%:@RJ<:@F4)K:_VT>;>GS:.@^(FA&76O* MML_4//E(@![##-4\J$:A&H-J'*H)E*:.1!M16_J(^G0?4>\D3K]"[TF )M-0 MS85J'E2C4(U!-0[5!$I3)Z8-L*TY>@<2-*J&:@Y4O# MZ2_/,OWE-@R3/))Q3KYLRU];W=GOT.09JCE0S85J'E2C4(U!-0[5!$I3YZ)- MJ&T+O"UE0]-JJ.9 -1>J>5"-0C4&U3A4$RA-'9"#WW"M/ZJZ1QA72X>[D.R. MH\_N]"OV[OG353N/>8.NZD$U"M485.-03: TM9O;:-G61\MOI&QUM3X7N].O MT;M_H5DR5/.@&H5J#*IQJ"90FMKE;99LOW$X\U],V>S3W_0\L6?SX_:''K,, MU5RHYD$U"M485.-03: TM?W;D-G6A\S0W3^G4?%D8AY/!/3@9JCF0C4/JE&H MQJ :AVH"I>TG8GAP(JA(ID_5B<TW/WT*XHR$#5]ZA M^/XZ2?+7*^4"S:G@%O\'4$L#!!0 ( ..(;U9$BN ]V@0 "@; 9 M>&PO=V]R:W-H965TVH; M2*QLNRB2&''2/C,2;0DKD2Y)VTG1CR\I*;*4RD2<<-&76!?.X6<2"S%CZ9Q+)>.(, M'8C($F]2><=VOY$RH)[&"UDJ\K^P*\=Z#H0;(5E6&BL/LH06O_BI)*)F@+H' M#/S2P']EX/<.&'1*@\Y;9^B6!MV_GUY>+*X"F-U>SZ]N%A?WWVYOX!2NGDBXT5F!&)+WXAXC?D9 M>*,3\#W?;W/(;!Z0\ PZZ*!Y\(;9T;#-O!%-I\I?)\?K',#[3VK:.+XL,+KM M&+JTG(LU#LG$4;5#$+XESO3GGU#?^Z6-'YM@@26P!G?=BKNN"7WZ*\=40H0E M@25..&QQNB% GM:J)I$()(-'HFI;R%8T^5L]P +".MUZ)!4$V)9PP+#+:XP> MI^Y5S80UX0F+VO)A].O8?)B#].&98"[ AZS81VI'1?BY;9D$EMQJ)*-7):-G M]M/S$^W^^.QNZVSHNE*1N\#"M> MAD9>3-W /_"^W6N<\5@*;8(%EL :3(\JID<6=N_()G81P)6>D.KI;A1_2.'$(OX5 N%2'V^7U9TXZN^/K!8S?,> MRWB)UJ_M>-3M='J>]VK/VYJV26=-'J!W]$BJLRE:?@J9M4;QM2_X:E-*K41U6UH?]+H,SLPS'\W MCU Z:"]UD%GK_'_"T^S8T>;E*LE9)04'VYNU: %217J MZ@16A*HLI/FW#T=90A-E@#5X:T*LJC"K:($MM&92]D(,#2STP58ZM:K(2K5'[$"X?GB[V-L?[!]MN'%5[%@3*)O M69J+\]Y"RN4[SQ/3![[PD,P7LKS@C<^6=,XF3#XN M[PMUYFU5XB1CN4AXC@HV.^]=!.^NPGX9H._XG+"-V#E&I94GSK^6)Q_B\YY? MEHBE;"I+":K^K-D52]-2297CGUJTMWUF&;A[_*S^7IM79IZH8%<\_9+$ M&_90S&9TEH->H6\2EXK/N:)%&_5177\:<%70LF),T\J M\Z4%;UH;O:J,X@ZC 48?>2X7 MWD,8N; I[*VC9U^#EUEQA4O.7K4^2';Q'V M<=!6(#C\FDU/$0ET. :*0[8U2;0>Z=#[HM]8E=^+-2M4"T1_%JK2D'HK&'I/ MDP)]INF*M93SLM(-VW7+?N2=6-(I.^^ICD*P8LUZX]]_"R+_CS;3CL0:*0BW M*0@A]7'E."X=STK'Z](Q8M^63+]XDJ,GIM[$*9_GR;_J A5HRC/5(PJJ^Y3R MSEPPQ%4&$46;YXS2.J-+5B0\;DLA6"[;%,(F,?K.:"$01EGU/JLW.Z;?!9"_ M_C9_?5#ZP3322=E(VYR""K9.'8DUS$9;LQ'87B:ZAVFS&+FTZ$BL87&PM3@ MZ_-NIS.F$EVR>9+GZJ3--*AD:[H2B[18"1+K,8[\\M^9MV[Q,]SZ&8)^;E?9 MDVJ9:D"J1X]YV>!_[,PK/\.?%J$J*OC$(^MGM/4SLJF?&WW49@:4L:V"LU<%2UL8KM>%.U8:G4;^C7K$QA'\^K+:W MLCJR\XEUN4#]8RO$@%$ 0L?AS0S6L:X-8E,;AG$">/S7XY;^=(E;Z:75F%,^ MJ=7ZNSU(0'"',0,? 4P?C_D.FAWLS"F/U&J[?>,H\KN<&=((P%&^@TLWBV2Z M0(FP!]361#BEEEJM?U@B#(\$,)#\.D"'"V:='MAF6"-Z5",ZU(L9]@E@^-%$ MCNZJ;^I6BXY0IK;X$F 4&#(*1B_%$DYAR95:6HSAZ6M$U K=;H M"09A>T> #2-AF)&.ZNMA36MCP5Y?'X3#J,.9@25\ "R]<%\/%\$Z$7BOAH%$ M&.K",'7]NKX>+IAU>F";1TS'8,-Z&&:]A\EC:U/G(C! M3N'.E5K3IH% #$.@S>0%+&5M/-KKZ8;]P!]VM'!#\F+&DRX)3X,+[ M,THG011TC4,&JC ,50=_&L(ZUG;V9Z>&)!QUV3'4A%^*FK!3:G*EUEP(,=1$ M8&H")BS@2.O%#G_O$Q^3T[#C&Y\8/"(P'H$M"XZUME"O#_H'>C @1& 0.KAI MP3K6?O9GI" [.ZMK\#A_#(G#DM;.R!ZG]4G0X0>&!X05N66XWY816G!P:3 EA3#F\:3EEC5KM9U7B[6PMS%@QUSLN M2SY:Y;+:9;B]NMW5>:'W,GKF]FI+Z$=:J.%(H)3-5*A_.E E**I=EM6)Y$N] M4?&)2T4J^G#!:,R*\@;U^XQS^7Q2/F"[UW7\'U!+ P04 " #CB&]6P4O< M[OH' @.0 &0 'AL+W=O5-K9SRX8B)H+FQC:KN;'KW,I)I <,#+S M89J$^+7?.#GGL>.)^1^U!J@,SN9\*H9"/LWO$[776:F,_5!$J1]'*!&3\]8%_GKE MY07R,W[ZXC5=VT:9E>/=U=^GEQ?#;]?H MZN[F_MOM\.+QQ]TM.D5#&8]>T(]H)*+L4J/[@$?H\[60W _2+^J$I^$U^OSI M"_J$.BB=\42DR(_04^3+]$0=5-N/LWB1\FB-E&#CM!Q"&XKD%P\6LQ:B.*\^($ M: Y=77F:ZU'#*U_3LLM"B=4K94_ZUW3.1^*\I1[E5"1+T1K\_AOVG#_J;%H2 MJYAF*],,4A_<+L)GD:!X@N)Y]ABK.R9-%YO=6Y@&E4Q-%V)>+I:%MN6 =BGK M]L\ZRQH[[LJ."_=A]HB<7JHP,D97<:AB:\HS6R?H._<3]),'"X$NE,.P<%MG MT[5ITY)8Y6)XJXOA@7V;6U:YX$4EGWGBCT2=VT+"7>L'YJSZH/ UG*@A^[* M0Q?T\"!2J9HN57_F?5MG 50P[3!+8A6SO979GK4(U+-IVI)8Q71_9;J_9P0J M4U99Q1BI/(7X4B4W_AP(I @ICTUV=/\_R5)^,431,>R?KP6TKMM@37>:BG-8#!H*<_,PMHS*7J MLRP"+?.@^WFN?.8]_*767*'96X]#;<_== ;6?*@SHIT1T-DP:WX.J6,T6LLN M2+QEV[7Q%98T?5!+M?5P33 E]4D3:_+!(&,,GJ)$C.)IY/]GXLPJ!)5JZ\[Z MGM/D3.,-WI=ORNB2&!(IQ0]5&: M)<:3PF!SHB^UP$P/UW>H'\TK& :6LK/N)HK=U$TW6N3#G,>$C_UHBJ[Y>UIR MW$T!-07./<;H4JA#?J0&0E%#[(0K)HZ*5^_U@Z)CT _6^(.[1P=:;!60;*E5 M+XA&) S"2)E=\KM\9T[I[953C@$_6-,/AO'GVE_Z8Z%(Y]T70?V]6PCTUVQL M/;?'H!BB*8; %//M(Z8NXT#=G8$OW^N,E"J8K#MI4^+T-NS U1UJ1P,,@0'F MP4]?3B>)$$B%%*%JD"A1-%-K"==9I*B'PF(."&BR4: M*;W +<).\=1#/:9!AL 3.0>-"F%-8[O=+1[PVEY3QVDB(3"1'#(JA"6-C?6V MQTY=UN!+DPF!R>2@02&L:6RLOV4,LYY7[XQJ7J'.T:&:6F*4\A7 ,8B':N*A M,/'L"7"PBK'G6G:BE#0,^JFF'0K3B@' P4K&ED@]#N(F2VOOI@RX!OU"-W[D MAXM:E(.5C"T=@W"H)AQJCW"H5<*QI58UK@F'PH3S4]VUV:Q',PO L9VX>;@ M' 4@9QIT*(P5!Y$ K&ELUMLB 4+;S&UX2C7DT.//UE"KS&-+K7I!-!M1F(UV MSV[ L9V>_4!F#9UK:8A"M/0SA$T7-[8"-P:5H['NQ_C\7[-!&9U08"F(P;/ MYFRE&O[6E&I@)>,E <> (*8AB&%KJ899)2%;:E7C&I<8C$N[4PTL8&P7;@[= M.>ID&IL8C$T'Y1I8T]@MKP (PNIAME=T7,,8&(:F!A,*+M3 M#2Q@;-=M2#4-PU.F 8GMG F"4PU*AYFE7YLJ56-:T1B^Z[DV;V8!98R-KZ]VJ?GXK7W2M7%A!J%7!B% M#DH?L*;Q D+'9*CB:MIQX2F?0V8M84EC9WAK#9BUA36-C MVXMT,",-&=_5+./N,P6TL?R[8>GT):QE[.@8DT"N9AW7WB20:Y5I;*E5C:^M M9H:9IAQZH6AS%9.<<8E"_HZ>1?GF:X\ED7!EQI=F^T58WW,KBZ2JKC7_N'LM M [*](A2NU=B^MV6?,=R4<30AN3 AF>304FKW,C6XSD/O8@U$[HX79$V!"_U" M340(2QIWUC' R-5@Y/;MQ2^K8&1+K?K]@>8GS][R9EC*U+BWO5@:($)/8Y,' M8]/NN1)8P-@'W!Q@KJ2S]@U:*))I_FE>JI!H$ -3Z9^E*) 3%11I]U5H3\I/LXZEC,-\KW21S+ MCYVL@M5'D8/_ 5!+ P04 " #CB&]673,'M8L$ #M%0 &0 'AL+W=O ML[&EJI=U *^V/GYV$)$ P#8]](3_P/3[G7MLY=G]%V1N? PCT M'H4Q'QAS(197ILF].42$7](%Q/*?*641$?*1S4R^8$#\-"@*36Q9KAF1(#:& M_?3=(QOV:2+"((9'AG@2181]W$!(5P/#-M8OGH+97*@7YK"_(#.8@'A9/#+Y M9!8H?A!!S ,:(P;3@7%M7XTP5@%IB[\"6/'*/5)27BE]4P_?_(%A*480@B<4 M!)&7)8P@#!62Y/%/#FH4?:K ZOT:_==4O!3S2CB,:/@]\,5\8'0-Y,.4)*%X MHJO?(1?45G@>#7GZBU9Y6\M 7L(%C?)@R2 *XNQ*WO-$5 ('D>3SZ MX^+F>G)WBT;C^\>[A\GU\[?Q [I $T&]-T07:;K/;D&0(.3GZ LR$9\3!AP% M,7J) \&_RI?R_GE.$TYBG_=-(:FI#DPOIS'*:. ]-&R,[FDLYAS=Q3[XFP"F MU%0(PVMA-UB+> O>)7+LKPA;&%=)9YI.41,G[$X%M:&P5&ELZ M].%#$KT"0W2:#S YF#A/MBN?B=8B-16=@;DIF%KCED.GX[0ZO;ZYK)'3+N2T M/RDG'PSP#LP+.'D-H4Y2>X>%51#(>.I:;%!T"XJNEJ)<]:80"/#1F9RKDY3F M>1TW+4S3=+L[,B[:7;=;+Z532.EHI8P3P85<:()XAHA $/LJ\PM@ 3VHKK-; M?[?CVO96^@\VVR#>+8AW]35(PO #+8&K,JP'/OT!-=T=FF[+LK;'DI;4D1.] M5TCN:1>S[^F'5,J]7@*3Q@#=93,#T",+O-K)T3OE #P1V(9VVRJ_KI:VX+\Q M$J^GG$_#D#"N*INM$N?HW\KWHRX3>O2FJQ=:;E>JB]#?(.M9^6O0@C27K*=D6^E!,=/I*HV,W<3H:A2=U M.@=(]3*!J(.B;*/C(I]\: 67=LC^O!\Z(%D/M":)UR3EOFR79:Y7"W7L("Z= ME/V#5NI (D[DB?)U3TH"U$K3PO;6%Z&UJ[(ZW5:6]K,RH%:!&R6GC-RR3J)17:V5KPMSC*O MTQ,\LVR>'83>$S8+9/E"F,I0Z[(C>V;9V6+V(.@B/9Y[I4+0*+V= _&!J0;R M_RFE8OV@.BA.>(?_ 5!+ P04 " #CB&]6O4]S#$@# #0"@ &0 'AL M+W=OPE2 M EEMI6L:->W>9P1[///;8,]ES\5UF MB H>"LKDU,F4*B]<5R89%D2>\!*9GMER41"ENV+GRE(@22VHH*X_&(S<@N3, M"2=V;"7"":\4S1FN!,BJ*(AXG"/E^ZGC.4\#-_DN4V; #2$:U5VY$KKG MMBQI7B"3.6<@<#MU9MY%/#;VUN!;CGMYT 83R8;S[Z9SF4Z=@7$(*2;*,!#] MN\<(*35$VHT?#:?3+FF A^TG]B\V=AW+ADB,./T[3U4V=YPJ++JWZ.&).6PX>[=0P?/WSJH(E_GL;KICD*,6BW M.K"\P:]O==>.UN3#;G)S.UW(DB0X=?3U(U'1[DL7O1'8D MZK 5==C''BZ*DO)'%)#H\RCR365O,\6AI(1U9D8OWUMUK,E.+9FYX>_#P#L_ MF[CWA_J\-/+&9X/6Z"CNTS;NT]ZXEU6QT5'S+>"/BE!]'TA%*-4/@I+PSVL) M-*])1X?^'CL;]2[[UI/Q3F1'"HU:A4:]"GU#J7*V@Q)%SE/0+S20/1&IA)T@ M3&$*E;Z[!*@,(2$R^VR>KQ0H9[O/"D6A)4VTFOI5M&>I2\U^!P)X1"*ZSF#4 M"WRKR.]$=B3RN!5YW!MCQ M= $EBLPX?3!MU-4*)T5=GX2^(V[OP6_-T_#(% M@]'YLSQ]:>1[(_]9GKH';WV!8F=K)JFOGXJI^KEK1]NR;&:KD6?CD2[7ZNKJ M/YJZUM-OX4[G,U#<:LK!R5B[).KZJ>XH7MJ*8L.5KD]L,],E)PICH.>WG*NG MCEF@+6+#?P%02P,$% @ XXAO5A::'5TW @ O@0 !D !X;"]W;W)K M&ULG53O;]HP$/U73EDUM=)&0H!V8B$2O]8A#8H* MW3Z;Y$BL.G9F.Z3[[V<[D#&MY<.^)#[[WKMWSKU$M9#/*D?4\%(PKD9>KG4Y M]'V5Y%@0U1$EW'D]M8RCD2E&>6X MEJ"JHB#RUP29J$=>USMM/-(LUW;#CZ.29+A!_52NI8G\EB6E!7)%!0>)^Y$W M[@XG?9OO$KY3K-79&FPG.R&>;;!(1UY@!2'#1%L&8EX'G")CELC(^'GD]-J2 M%GB^/K%_<;V;7G9$X52P'S35^U(Q_2CJKWCL9V#Y$L&4>T+=Y-X- M/$@JI45Q!!L%!>7-F[P<[^$,$(9O ,(C('2ZFT).Y8QH$D=2U"!MMF&S"]>J M0QMQE-N/LM'2G%*#T_'T8;E<;)?SU78#X]4,I@^K[6)U/U]-%_,-?(1OF!$& M:RD2Q)3R3,'U##6A3-W %5 .VUQ4BO!41;XV>BRKGQQK3YK:X1NUN[ 47.<* MYCS%]&^\;_IHFPE/S4S"BX0;+#O0"SY &(1=>-K,X/KJY@)OK[VDGN/M_<\E MO=9W0]=_G<[Z;*A*DN#(,T92* _HQ>_?=6^#SQ?$]ENQ_4OL\8P4QDU :B+_ MN=5&78,?.+PU[2&^&P1!Y!_.J_IG,U6@S)QS%"2BXKH9KW:W->>XF&PO=V]R:W-H965TG=5+7JFFW2=,^.' 3 MK(+-;.?1?[]K0UB:5_=A7\ V]QS.O=<^[BZ%?%8I@":K/..JYZ1:%U>NJ^(4 MLWFZ&;4\:=J&O7[F74%7.=,0[WDJAY MGE/Y,H!,+'N.YZP7'M@LU6;!C;H%G<$8]%-Q+W'FUBP)RX$K)CB1,.TY?>]J M&)IX&_"-P5)MC(G)9"+$LYG<)#VG:01!!K$V#!1?"QA"EADBE/&[XG3J7QK@ MYGC-_LGFCKE,J(*AR+ZS1*<]Y](A"4SI/-,/8OD9JGS:AB\6F;)/LJQBFPZ) MYTJ+O *C@ISQ\DU751TV %YX .!7 '\;T#H ""I 8!,ME=FT1E33J"O%DD@3 MC6QF8&MCT9@-XZ:+8RWQ*T.-*\Z#4[!_0[/GD%N6DBESS!)+7!"X6 MH*Z"OZ["P#_*.(*X00+OG/A-W]\C:/CO<.^(G*!N2F#Y@D--*2OX2%?D>H7G M50$Y'0"'*=-GYZ9'ZU;4!^]B=*2SPFO_95N!30VB_ M6,>5*F@,/0>]08%<@!.]?^>%S8_[JO.?R%[5JE77JG6,/7IJC!L;6W)?KB5! MVQ(85UM$8:O=[KJ+S1QV@[Q+OQ744:_$M6MQ[:/BT&G01_@;^DJ.<./7?L>[ MW-*W&]1I=?:K"VMUX5%UU39[\Q#OTQSNE*L37 1;FG>#O([7\;=4NQONE8.< M65-7Z#ASKLLC7*_6]T;?VN76^@#OD]+^_]*4E]$ME3.&?I7!%"F;C0O4)$N# M+R=:%-8C)T*CX]IABG&PO=V]R:W-H965T7FVK9%NH:2B"NV :J^+!DOB51# MOK+%A@/)*J>RL%W'">V2Y-1*QM7) MAWRUEGK"3L8;LH(%R*?-/5/Q^T']WZ^"? M*IJ;_Z]7:!/: H4EKE$:G^@G*:L!"3)"PAT M,0=)\D)<*J.GQ1Q=?+Q$'Y4)>ERSK2 T$V-;*AZM:J?-VM-Z;??,VMA%=XS* MM4"W-(/L5,!6@;31N(=HINZ@XAS2*^3A/Y'KN*X!:/;[[G@ QVN3ZU5ZWAF] MV99SH%*G$&TXV^5Z\U^;$E7K^&8=7R!RU[,,B^D$2" MB;QV"X_(0]?O@ >]Z$9.U-J<\(0M3SB<2\;5*41-1&&/"'M.T$'J&\6!:T:* M6J1H$.F125*HU^V>-B%&O=7]T'')2B^K"J[ MB^?Z1+O\GP*,W[, WTGL)/I1&_WHK04XZB7[4V\;]VW\R/'-?PAV7B\9YVV5 MU?B=,'6WL<$F'ITI+7QT[^&W%E?C>0*%G2#N!U@?M68>#A M#K!]U "5P%=57RA0RK94UMU#.]OVGC=5Q]69G^J>M&JL7F7JAO:.\%5.!2I@ MJ22=*]T!\KI'K >2;:HVZYE)U;15KVO55P/7!NK[DC%Y&.@%VDX]^0]02P,$ M% @ XXAO5L-O1]_. P +PP !D !X;"]W;W)K&ULK5?;;N,V$/T50D7;%$BMB^^I+2!QLF@>T@V<[04H^D!+(YM8B=22 ME)W\?8>4+%]":]NB>4@DBG/FG)GA<#+;"?E9;0 T>2URKN;>1NORQO=5LH&" MJIXH@>.73,B":GR5:U^5$FAJC8K4<2^>V;5G&<]$I7/&X5D2514% ME6]WD(O=W N]_<*2K3?:+/CQK*1K> ']:_DL\B9&RDJ(S^;E,9U[@6$$.23:0%#\LX4%Y+E!0AY?&E"O]6D, MCY_WZ!^L>!2SH@H6(O^=I7HS]R8>22&C5:Z78OA;H34S*^N>:AK/I-@1 M:78CFGFPL;'6J(9QD\87+?$K0SL=/_ZR^/CT0#[=_O'P0GXD2T@$3UC.J VR MR(C> %&:ZDH+^48R2$'2G#">B *(IJ]$4HT/PFZ$+ .;EWI50BFDAA2WV\\+ M4924OWVO"'I1(FPD\ ,VL ,NM#C#TUY'@K6U*%+ M'8KO&HO3]#7B@G7'O MA/NWI39R*@PF;DWC5M.X6U,EI3DS;T"E[7")A)1I9RJZD:Y&O6'PK:N#+;YB M..B-WQF>B)FT8B:=2/<,>P7*28"L0.\ .,&['R\WS!-/VY+;-W*7QHF[W 9G MY>;>%EU(QK3E/^WDCPVLH-RD@^'-X,S!U.4X-'WZA)]S6S",W/S"X'"!!IT, MEW6=FK"2"N,L\=KB-J"E4,R<""?K!O5=\0[/:'=[_X_]-#P:#\).=1_QWI9. M_MUV5T&O?Z'T&\L.Y:=OQ@'[?\(\=]02P,$% @ MXXAO5AY*;L#] P : \ !D !X;"]W;W)K&UL MK9?;;MLX$(9?A= 6BQ:H(Y$Z.FL+2.WN;B[:!$G:W5M:HFVBE.@EZ3C=IR]U MB"Q+E.( N;%UF!E^,R/-+\X.7/R06T(4>,I8+N?65JG=I6W+9$LR+"_XCN3Z MSIJ+#"M]*C:VW F"T](I8S9RG,#.,,VM>%9>NQ7QC.\5HSFY%4#NLPR+GY\( MXX>Y!:WG"W=TLU7%!3N>[?"&W!/U;70X$6<^M*WBY@%'A M4%I\I^0@6\>@2&7%^8_BY#J=6TY!1!A)5!$"Z[]'LB",%9$TQW]U4*M9LW!L M'S]'_[-,7B>SPI(L./N'IFH[MR(+I&2-]TS=\W3+0B*]-:8H7CF> '( IK M':TX*&M3>NML:%ZT\5X)?9=J/Q5??UW+XG"E,D/VN+;_1*\?_NMNZ!$T=4%,'5,9S!^/5B>N, 9:2*'EI2JJ* MXIFC%._D@'Y_9<>==O#Z1@@%OADO:/""43P4N%=@G]-" 72?=U1A1O_'Y4Q- MN%3&8@9]$*=;R[Y-X ^T.FQ8PU'6F_)A3/NOIHDQ[*WO(Q=U(/M&< H'&AXU ME-$HY0/7)3R7,C(!^%$'LV^%(/0&.*<-YW24\SMF^ZK/F&GUQGE"3(33WMH3 M&$5=0J/5U#$30N>H1LZ+4^G,2M:13DH9HM#I@)K,IL@?J"5LZ28\7S!:L\BH M&G6L-Y*-MXIVFOE1*>&H+L77N<+YAJZ8>?#6WB>/AA]&W=EF,D,!\@;Z%73R#F>LY[@#>4;S@N'K]Q7EZH(P9T?IR- G] MH/=$&\P"?SI4N:-NP7'ANAG2*MC7H8E^T[I8!JLHB :HCG(%Q_7*,%U?4'[8 M5R(]F[08=(%-=J[7>E)/D8^J!<=EJX-,6Y_21M[1:*\>#F'OH\L/ S20TU'C MX*M$[L6S6-JC8@W[!8D-S"1A9Z_#.1:AQ1+6MJTX4 MWY4[HQ57>I]5'F[U5IB(PD#?7W.NGD^*S5:SN8Y_ 5!+ P04 " #CB&]6 M @=3',# #K"@ &0 'AL+W=O',?.; &QDV+]D"UPDFW L ^,=+:)2J1'4K:[7[\C):M^ MD86FV+Y(?+N'SW,D[VZTD>JS7B(:V!:YT&-O:*629,RIR/PJ"OE\P+KQDY,8>5#*2I;L1=Z MNX$97RR-'?"3T8HM\!'-\^I!4<]O4#)>H-!<"E X'WLWX?4T#*R!6_$;QXW> M:X.5\B+E9]OYE(V]P#+"'%-C(1C]UCC%/+=(Q./O&M1K]K2&^^T=^DP,/,IRS,C'V_A[9MW\ :X@*>E+#43F1[YABC:C?RTIC.I MZ$1GZ(01W$MAEAKN1(;9(8!/VAJ!T4[@).I$O,7T N+P/41!%+40FGZ[>=A! M)V[\'3N\^ S>*QS\'NZV:5YF7"S@II"E()\_H"*?"SMD),TSNA*UV0Q-J82& M/VX\Q>%WHRP047SAGEOA,->>.E=F*;_@KTTH':,+=.HF 8C/SUOJZ61:&] M0.L6OI<-W\M.OM-2*10&5JBXS%Y'ND+N[_&)AT>4.S?_SJ/H-]+Z_YNT3N37 MWL?^B9\^Q&>.[:K1=M6IC=X290-!X=AJ3+_ /"]34[H7W"KHZI1#V(N/3JMS MS^\\K4&C:-"IB(+KJU_-X$14.!STCT2=+CIX6@=DAPW982?97>Q3Z#PAC*5. M90S+#4<-E&@HZ1BD.0,;^H$5I2A[ -,TD\H"G3C8-OT&530$-?JGUA::K*XQQ8)]'@)#H=$^Y<4C'V]\J& M7"55,:4DNK M2K#-:%.QW;@ZY6A\8BLY5XY\A:G*P'NF*$1KR'%.D,'%%?%15655=8Q+D M11HJ=5QS2=4H*KN YN=2FEW';M#4M\F_4$L#!!0 ( ..(;U9%^'P7D@( M )P% 9 >&PO=V]R:W-H965TA6:4B-+?5(APJC; M/0\+QF40#_W:K8Z'JK*"2[S58*JB8/IY@D+5HZ 7;!?N^"JW;B&,AR5;X0+M M0WFK:1:V*"DO4!JN)&C,1L&X=SD9N'@?\(UC;7;&X)0LE7ITDZMT%'0=(128 M6(? Z+?&*0KA@(C&SPUFT)9TB;OC+?IGKYVT+)G!J1+?>6KS47 10(H9JX2] M4_47W.CQ!!,EC/]"O8GM!I!4QJIBDTP,"BZ;/WO:G,-.0A2]DA!M$B+/NRGD M6;DK4 MS'*Y J&,@2G3^IENOF8Z-7 \0\NX,"=P!%S"?:XJPV1JAJ$E)@XO3#95)TW5 MZ)6JO0BNE;2Y@;E,,?T3("0)K8YHJV,2'42<8=*!?N\4HFX4P<-B!L=')P=P M^^WY]#UN_S_.I[-/:)-^MC_=6>K2E"S!44">,:C7&,1OW_3.NY\.D#MKR9T= M0H^O9$)&-.AN8\U$Q9J'+LAI3":XCVX#./" SK#K.!J&ZSTFL$2)&;<&B%!%7#2]' F6/4&I#'<\#=B^;Y@ M('%:&O.TJVWK&3>.>PEO^M8UTRM.:@1FE-KM?*#2NND%S<2JTOMOJ2RYV0]S M:I^H70#M9TK9[<05:!MR_!M02P,$% @ XXAO5K$*^ *@ @ H@8 !D M !X;"]W;W)K&ULC55M;YLP$/XK%JNF3DH+(2^D M'4%JFU2;E&E1TVX?IGUPX!*L&IO91]+^^]D.1=E*4;^ ;>YYN;-]Q'NI'G4. M@.2IX$)/O1RQO/1]G>904'TN2Q#FRT:J@J*9JJVO2P4TR\(=V^9H%_PD+ND65H /Y5*9F=^P M9*P H9D41,%FZEWU+Z\C&^\"?C#8ZZ,QL9FLI7RTDZ_9U NL(>"0HF6@YK6# M&^#<$AD;?VI.KY&TP./Q"_NMR]WDLJ8:;B3_R3+,I][$(QEL:,7Q3NZ_0)W/ MR/*EDFOW)/LZ-O!(6FF410TV#@HF#F_Z5-?A"!!>O $(:T#H?!^$G,L919K$ M2NZ)LM&&S0Y5C-R.G)IW]I?)-2DU?8Y!4ZWD%G7FU^#KAA.\[>@4M= MTA2FGCGD&M0.O.3CA_XX^-SA:M"X&G2Q)]^;PG(P1ZDN;YO+ \_(\=B+M4LF MP\E%[.]:U(>-^K!3_:92"@36VD?[V69@^,K ((H&[09&C8'1.]-?6 L]LJ@] M//=(;:Y'5D@1"NO3G,1;)JA(&>5D*35S]_C7_ EM4UB;LSH75>$HI?C=ED2W MG:LT515DC0M3B<9'QV:/FVS'G?0+*;9G"*HXND_O*OWX5>F'%^-1>^FCQDS4 M:>9>HBGBN^2CUT/6H[MWM^HVC*AC<+&P(+SR.#5H2,>)BA+UX76 M$DU/<\/<_$1 V0#S?2,EODQL8VM^2\E?4$L#!!0 ( ..(;U;N&I)+6P( M )L% 9 >&PO=V]R:W-H965T 2%IJ8NBR9?IV!4+MI, @.!P]\4UAW$*9)Q3:P!/M4 M+31&8<>2\Q*DX4H2#>MI<#VXFL4NWR<\<]B9HSUQ3E9*O;C@6SX-(B<(!&36 M,3!E>Y2EU?B7(\ZFWV^OE[=+\I'2Q4;9C,31):E."(PJPM-VO*T3?*#2BY5](6 MAMS*'/(_"4+4WAF@!P,SVLLXA^R2# 6PP8U.XUP379F*93 -L$L,Z"T$Z?MW@SCZTJ-JU*D:];&G=WP/.<&6U,QR MN6G?*5/&GGR,AFSLR5Q[;M-1-)HDX?:$A'$G8=PKX9EISE8"_E]%PQ?3*N).1=RKXE%9)DX5B_^Q/!Y.XK^*A4<-4X+>^+%@T$$M;=,[W6DW>:Z; MAON=WHRM>Z8W7!J\@S5"H\L)EM;-*&@"JRK??BMEL9G]ML#I"=HEX/^U4O80 MN +=/$Y_ 5!+ P04 " #CB&]6.')6 :L" !L!@ &0 'AL+W=OW^9;-@L@10H&I=0B,7EN\1"$<$-'XW6 & M;4CG>+C>HU][[:1EQ0Q>*O' ,YO/@D\!9+AFE;!W:O<5&STCAY<(@;A]CSK@-YE@MF63+5:@?:61.:6WBI MWIO(\<(596DU?>7D9Y/O5Q?+JR5\A ?/'S-@6]14#LJXJRDO-B"09(-%+8$5 M&635(2LS#2W108 MS>Z ,7A7. =97[[^ #+V;#H*,FZUC/]3RZM6.L:]#M"/#W(<]:+X\_BO+(<' M$T"BWO@Y9\"#U\.@/6U'Z44]05[,ZSE\P_2&%X8XK\DUZIU3_G0]V^J-5:6? M)RME:3KY94Z_ ]3.@+ZOE;+[C0O0_F"2/U!+ P04 " #CB&]6?;EB5*T" M !E!P &0 'AL+W=O(%Q M!!26RH3 ^K6!6Z#41-(^_K1!O8YIA+OMC^CW-GF=S )+N.7T-\G5>N(-/)1# M@6NJGOCV =J$$A-OR:FT3[1MYP8>6M92\;(5:PGXW1Y?HOE:U M (,@95TB"CI55.%WO0-*HIKE() ^"P(KPE;-L$3G4U"84'F!SA!AZ'G-:XE9 M+L>^TMX,P5^V/FX:']$!'U-87J$X_(:B((K0RWR*SL\N/H?Q=6I=?E&77V3C MQD?S<_EI=#VWSER&D:SP$B:>/NT2Q :\[.N7, V^'W$5=Z[B8]$SG63L\M2H M$JLR]VF3]8(P&OL;!ZO7L7JG6#T7JU&E.ZQHF SZA^XB8-.M+@*.F9*TQ1T=S%SW?0 M96"P9V 8A@?V<-A9&!ZU\ A2CM!UR6NF=-VUIY_92T^8 MU3+B?#/2>7\># M#H?!O^(4'/4R:^!H@VD-B!?MDE""%X021&PO=V]R:W-H965T'T[M?$N MX!>%K=H9(UO)4HA7._E>S+S &@(&N;89B+EMX X8LXF,C3]=3J]'6N'N^"/[ M@ZO=U+(D"NX$^TT+7Q_09=/;'-EPNFW!5MN]C 0WFCM*@Z ML7%04=[>R5OW''8$&!\0X$Z G>\6Y%S.B299*L4621MMLMF!*]6IC3G*[4M9 M:&EVJ='I[,?]S>)^@2[10Z,;"19!JZ9"#$RIJ";OY@5HA1I>@$1<\,N<\!P8 M63) YF1(HBE?M]$*G<]!$\K4!3I#E*/G4C2*\$*EOC96+=#/.UNWK2U\P-8< M\BL4A5\0#C!&+XLY.C^[^#>-;RKMR\5]N=CEC8Z6.^2GU8V&=?;3N%8UR6'F MF;.O0&[ RSY_"I/@ZQ%74>\J.I8]LT4.>6I5L5/9KVN3C? T2OW- &O4LT:G M6-$0JU4E.ZQH$A]@Q3TK/L4:#;'B/18>XWB8E?2LY!0K'F(E>ZPPFH;#K''/ M&I]B)4.L\1YK%"3#J$F/FAQ%/9=@>NU*@QP"3O9?VH''..UYT^,\H0D[T 6& M'$SWCFB(Q\'_Y\;?:5"VU_\D3D" #-! M&0 'AL+W=O3',2J8V>V ]V_W]D.*9,H7Q+?^=Z[=SZ?L[W2SZ9" MM/!2"VFF465M,XEC4U18,S-0#4K:V2A=,TNFWL:FTVFH:?8J@Q UKA7U4^Z_8U7/M M^ HEC/_"OHM-(BA:8U7=@4E!S67XLY?N'(X :?H&(.T J=<=$GF5"V99GFFU M!^VBB3>*X=$U964V[G' V_WX_6]VOX".LVJ812,=MF8""F0HVU##@ M,C0^]$ PBR58!0+I) Q<+M R+LP57% D_*Q4:Y@L319;TN8RQ$6G8QYTI&_H M&*;PH*2M#-S+$LO_"6(JJJ\L/50V3\\R+K 8P&CX =(D3>%IM8#+BZLSO*/^ MQ$:>=W3VQ$Y5&'#CTS@W71/3L *G$8V/0;W#*'__;GB3?#ZC:MRK&I]CSW\T MJ*E++=L9SXZ(K5J+=^D P4JI4V MW+;>V\_J+%S1U_ PZ ],;[DTI&A#T&1P2ZEU&)Y@6-7X"[M6EJZ_7U;TWJ!V M ;2_4#)>@?\'R?U!+ P04 " #CB&]6G<_DS6P# .#0 &0 'AL M+W=O^X6DTVG'Q4\:( M"A[3A,FQ$RN57;FN#&-,B;S@&3+]9L-%2I1NBJTK,X$DLD9IX@:>UW=30IDS M&=F^A9B,>*X2RG A0.9I2L33-29\-W9\9]^QI-M8F0YW,LK(%E>HOF8+H5MN MI1+1%)FDG(' S=B9^E/B\5_]HX37,/9$XX\EW&JEX[ P=B'!#\D0M^>X3 MED ]HQ?R1-I?V!5C!WT'PEPJGI;&.H*4LN*?/):).##P3QD$I4'PIT'WA$&G M-.A8T"(RBS4GBDQ&@N] F-%:S3S8W%AK34.9F<:5$OHMU79JLKSY9[J^F<-B MNES_@/5R>K>:SM:W_]ZMX,T<%:&)? OOX>MJ#F]>O8570!FL8YY+PB(YGNNG 7G'#G!_"%,Q5+N&$11L<"KHZ] @CV -=!H^(@K#8PZ#76/*+.A.*@88<;3C+"G MOZ4^OJBB)($LOT]H"'RS04'9MBY'C8[/S5$AUC]8W$'0\^I7][!B'[; CH\8 MYO;*Y!O;<:?OUIG B"J8;@6BOI15'7^C\W/YAR\VM^]Y)_@O*_[+1OYR6\-K MDF8?]G/\#FY96(?3J'4N3DMB1]B^]WQG>RWN]5*L)?*VU([1#\H5OW'.I^&O MG$IJ8-_O%WK(I:HG]U_LNJ-55Q(U>OR_1,$S4=!(-*="E[352=1 $[S80T$- M3:.W9,%35:U5L5]5-;RO[1?VV*?5NQ/LL47PI?B-A2 M)B'!C9;T+@8:4!3%=]%0/+/UZSU7NAJVC['^8$%A!NCW&\[5OF$<5)] D]]0 M2P,$% @ XXAO5JU:FWDJ @ J@0 !D !X;"]W;W)K&ULC51M;]L@$/XKB%53*VW!<5ZV9;:EYJ5;/W2*G&;[3.Q+C(K! M QQG_WZ $R^5TFA?;.ZXY[GGX(ZHD>I%%P &'4HN=(P+8ZH)(3HKH*2Z)RL0 M=F3:?U'3QHZ'&&6U-K(\@JV"DHGV M3P_'&)I&2#5(NVK*YA2_5HZTX)MREK(RRN\SB M3)(N5L_I>O:\3A]_?$,?40K:J#HSM6)BAQ8'>_D:-+J=@Z&,ZSMT@YA SX6L M-16YCHBQ(AP5R8X)IVW"\(V$_1 ]26$*C18BA_PU ;'JNQ+"4PG3\"KC'+(> M&O0_H# (0[1>S='MS=T5WD%W- //._B?H[E4: L?7H:[:9KHBF808SLN&M0> M6YRUC\E M6"8W)1IELA:F;:7.VPWB?=M__\+;*7ZR0IC0B,/60H/>)YM9M9/1&D96OALW MTMC>]LO"/B:@7(#=WTII3H9+T#U/R5]02P,$% @ XXAO5O9C_U01 @ MA@0 !D !X;"]W;W)K&ULC91O;]HP$,:_BN5) MTR9-.!C*)I9$@L+^O&B%2K>]-LDEL6K'F>V0]MO/=D+&)(KVAOCL>WY^+MPE M[I1^,A6 1<]2U";!E;7-DA"352"9F:@&:G=2*"V9=:$NB6DTL#R(I" TBA9$ M,E[C- Y[.YW&JK6"U[#3R+12,OVR!J&Z!$_Q:>.!EY7U&R2-&U;"'NR/9J== M1$9*SB74AJL::2@2O)HNUW.?'Q)^Y[@R!L" 9GU!.8> M1[@%(3S(V?@],/%XI1>>KT_T+Z%V5\N!&;A5XA?/;97@3QCE4+!6V ?5?8.A MGAO/RY0PX1=U?>XLPBAKC55R$#L'DM?]DST/[^%,0.DK CH(:/#=7Q1<;IAE M::Q5A[3/=C2_"*4&M3/':_^G[*UVI]SI;+K??KW;WC^BS>IQA=YMP#(NS/N8 M6,?V&20;..N>0U_A3"FZ4[6M#-K6.>3_ H@S-3JC)V=K>I6X@6R"9M,/B$:4 M(@.E:P5[A3L;*YX%[NP_*KY49Z^>7U;[&5F:AF608#<$!O01M/(!&JG#]WBAMV4' J71SR6R/6P2^IO>3^@=TR6O#1)0.&DT^7B#D>Z[O@^L:D*G'91U M?1N6E?M0@/8)[KQ0RIX"?\'XZ4G_ %!+ P04 " #CB&]6XT)8+PD$ !, M$@ &0 'AL+W=OR:QTVX?TLTDZ>ZS#++-%) KR7$ZLS]^)2!\63#MFA<;B7N.SA57 M.J#9D;+O?$>( "]9FO.YL1-B?V6:/-J1#/-+NB>YO+.A+,-"-MG6Y'M&<%R MLM1$EN69&4YR8S$K^N[98D8/(DURY MF.WQECP2\6U_SV3+K%GB)",Y3V@.&-G,C6MXM40%H(CX.R%'WKH&*I4UI=]5 MXTL\-RREB*0D$HH"R[]GLB1IJIBDCA\5J5&/J8#MZU?V3T7R,IDUYF1)TW^2 M6.SF1F" F&SP(14/]/@GJ1)R%5]$4U[\@F,5:QD@.G!!LPHL%61)7O[CEVHB M6@#H#0!0!4!]@#, L"N 721:*BO26F&!%S-&CX"I:,FF+HJY*= RFR17C_%1 M,'DWD3BQ>+S]?'?[]0FLKI^NP07 G,O22?*R/M0\4P9DS3#9R+> O,CRX82# M]4_ R58^3@'>KXC 2"LIP-..'CC.8SXSA52JQC.C2M5- MJ0H-J(((W-%<[#BXS6,2=PE,F6*=)WK-\P:-,JY(= EL^ = %D(:0S5YZIGIIJ=$.WJT6MI7?(\C,C?DVN6$/1-C\>X-]*R/NM0F M(NLDZM2).F/LBZ^RG#A.B;8(2JA;0-5^\[QP7#^P_9GYW-:O"4,^"H(ZK*/, MK96YH\J6E M -V!+:*VQ48"@&_8D:L))T(GS3D:%ONOY04^<+LSR0DLOSJ_%^:/B'DA$\RA)U;[P19!,^X1' M*7ZWCBV2WZ>YXFY@(.*4.-,C2J M[)[1^! )#OX%?]6F7AFYWJ9'^7ZWKJ=BZV;?>"X\SW3AI*X[%5LWV<9WX1G& M6V';U64'KH/L?A5JXCP$@W"@$!OOA5.8+]38JFTAQ^W+U,1!.PC@@,S&?^%Y M!@PUUNJZ\,2!=7%.8%L#[P>P\6 X;L*KA N6K _%J_HO+^I)77DJMNX,-+X, MSS-F.*DS3\763;;Q9GB&.<-3VPU]:'G]6M2$699CZTL1->:,IC!G=&JZON?9 M_8U'$^;YGC.P[Z#&FM%YUES!V]\:R'+\$WF:,&2'_1<&PODCFQE2?XKB>SEE)ZS-5,6F10NF2&MO5L[BN-*-Y#:12 MQ+U.)XU+RB49#>2BO"I-'4W50IHA2=M0Y&]?\R'IIA])Y.7&*F=##0LG-YB;$!ZPZ+5ET3\60C*G@ M$\V!5="2BY4/]R P54+IR-BJLNFZ$*D?/-SU/2BX1J?D4FF7VV?PWY-F^!ZP M[H%!+D1KL$=\8#2HJ#%,RRO;<8-=\ D4->W;564=SC1==7OG9$-P-YMDHG3. M=)NF2]:AT4"P NQH/IO#W:@J!M 85=I&SNE,2>H\K!E-P\I.F1 W\#3^+':T ME\76OG5@UV3;M(::II?Q'=#?5O/:V[+)JW2CBM\K\V5AIR-='^J;76M6\*7K M+XO6 *;>Q=5I58G59\%GLF1^\B]..!K0-2^:*\T?;#8HE:D-,$VB>Z8-GVY' M?FM:W;*E69?3LL ]]]Z@Y[^[SC,FF:9BV[2M_4->Y5<[;EY?_\*S^[6R[SAH M,KDX?(_-*_O03:9OP>0;V.XD.WR/S:'JT$T>YDK&S2%CZR2SG.>YTP^.4,G]D^6'7T[/F<%70ASVX)#LFE_9SE? ME%D[ZAH6HAFU:7^#Z773]K!JS '&\2PLS_\TGSXZ'X]AWOI!I(]R^BC'LT+(V'VP/&%.9J_P3+,L M2=(46]'Q..A@C*U;FL)/6 WS!@PL#V3ZL[7&=QNOD.?K -O3YRH$FRE>B=A, M\;4&)+QNP,BR\&YC>8"![0)6.Y _G =J*LQ)$MA5S!OV!.-(EF$(U&*X1M,4 M69T4/N']P9Z2),FR, )8V$&28 @\C3B".0 /&)(D[CVX]SZ*U^^I>/-_O-$C M4$L#!!0 ( ..(;U:7BKL

-8?20$3;8T.P6BP^0"X99K>] M9!:GD.SMT]4$1J6. M']: R6;_^AM0-XV+7??2^I2(!#][F/FF9YI\?LWEO\]Y_B_[GB99<=U9E^7F M4Z]7A&N1\N*/?",R]?+Y\.U M%K('7^2E",LXS]3!ZL!3+%Z+]_>KE^PE+N+G.(G+M^M._7LB.BR-LSB-?XCH MNG/58<4Z?[W/9?PCSTJ>^*',D^2ZT]^]\21D&8>_'/8KR( _%_61DC][7(%< M=XPK=<%E+(NR/J.^/E>,+T*=O'NU+?/;."F%G/)2W,E\NXFS5749]2UZX&O4 M<3C\W 7QD_P_8L1N>,*S M4+ ZN 4 U!! [6* [.." \@! CDX(Z1?051_4+!\R>8;(0'D$($<7A#R'PU MZ@BD?C%(BQ=K &D@D,;%(/TUA\T]0B!'M)"^<^\<6 M\YEC.;8/(,<(Y)@6TK3^>G1\)W#F+B2:($03:J(Z5#[S;,MVGLR;F?T[<^T M#M=7V'A]1Q^G3DFQ$2U0NP5SWZRW4>[BN)\&W^B:S58]=5!&#=)@Q^L3*N)O/IU^=V:RFFP?WML<<-S#=.T?U M7=;H$9@S^L324 .+]VC7G?3&F:D>T6Q?S!1]8E5,[9M&:V)"Z!,;P;\W/?M^ M/IO:GO^AOMF";Y -4T.?V U^,+?^[-Z8OFI&:_ZPL%W?/!K9-,P-&K$;(%/= M&Z;VK>/6L&[@.1 3Q)1Q78=HL M,/]N,F%JT(C5,%.Z:M)@5M"(K>#9,S-0-]?"K-00>*:Z\ZSCF9R&F4$C-H-G M^X'W: 6/GKJ](!3F 8W8 [Y]5]WZ;&H&T$T:)@#MDKE"(S74,#=HU&Y ,0<0 M$].$1IY"O"KBH&912%*B(D99GC.U 4VNO7&DVT*]P@QU^CD20S2Z,VM3,P].K%[T$9O M8F(6THDM=#HEG(J2QQ 3LY!.;"%TYZL93YZM,*WLP*=72? MG7QMK W3R<)D&XD"#N\Z9B&=V$+MF%:>E9*'90,3LY!.;*%V3#.*XNI46*6B M8Q;2B2UTPQB]^"8,%$S,/<8Q.[!,6&B9F#N,2ZZ MG 83-0.M\B)V#XX)$S4#8>0QB\]3+?BJA4)>*MFH"G"]9 MF*<;GKU]*%@$5]@,S#P&L7D.F/N\1U'RU4J*E<)A&PFGPB/,/"/J(K =IBM> MF26%FF0P4U'658A5TT-,S$$C8@?M,2V>\2CFV8'UEH=UR3C$Q!PT(G;0H='7 MN2R[@9 IFXKGLDV5(\Q!(^K\9X=YRV/)GE0V7G>B=U*(B3EH1.R@EIX>9Z60 MHBB9Y'"E8X0Y:$3LH!;,9179ESJRC4;''#2BKA8 Y5#[:JC6P7V$5AI3EP^< MVC[I,ON[""$FYJ#1I79Y=@,^Q,0<-+I0E5F%6>8PFF/,06-B!Z&8C>68,>:@ M,7VQV>F:N"8FYJ Q]6,N6$T59-C>HS60,3<]"8V$%'F%.Q%%+- MY*K%PCP5< UNC%EH3&PA-)K-GHX^\4)LH2/,ZODP=5*V8DE>%(T-JS%FH3&Q MA?;;^;I,[.><)"7JS9,LE?(29FH0GY3M"I.NXZTX"8F(4F MY#M!H)B['M^+4FY#=0-4XY$-,3$+3:ASH4:]44NF-L'D,Z%.@2!=E_&J]D!- MB0X/I4-,]!G,6CZ]^N3BR^=(S:XR$;GJ(PIU/.1)N)"L^E%=J:\-]>JQG>4V M22QU;)[-&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'/-V[UNHT 81N%;L;B P/S/ MK.)4VZ1=Y0:0@^THMK& U29WOY93V =ML4W$6UD#XN-4CQ >'G]UAW9ZZT_C M_NT\KCZ.A].XKO;3=/Y1U^-FWQW;\:$_=Z?+F6T_'-OILAQV];G=O+>[KK9- M$^OA?D;U]'@_<_7R>>[^9V*_W;YMNI_]YO>Q.TW_&%S_Z8?W<=]U4[5Z:8== M-ZVK^N-P.SS6UQ_S<)END@BR"[?)!#D%L^R"/(+Q\4$!26 M#XH(BLL')02EY8,R@O+R005!9?D@TU#&1B!IAK6 UH9<&P&O#<$V F(;DFT$ MS#9$VPBH;EGI; ;TM];8">MO9P[: WI9Z M6P&]+?6V GI;ZFT%]+;4VPKH;:FW%=#;4F\KH+>EWE9 ;T>]G8#>CGH[ ;T= M]78">KO9RQ(!O1WU=@)Z.^KM!/1VU-L)Z.VHMQ/0VU%O)Z"WH]Y.0&]/O;V MWIYZ>P&]/?7V GI[ZNT%]/:SE]T">GOJ[07T]M3;"^CMJ;<7T-M3;R^@MZ?> M7D#O0+V#@-Z!>@<;381 MT#M2[RB@=Z3>44#O2+VC@-Z)>BBWDE [T2]DX#>F7IG ;TS]F?JG07TSM0["^B= MJ7<6T#M3[RR@=Z;>64#O3+VS@-YYMME;0.],O;. WH5Z%P&]"_4N GH7ZET$ M]"[4NPCH7:AW$="[4.\BH'>AWD5 [T*]BX#>A7H7 ;W+[&.=[]1[G#X/W7CK M^5KC_J;Y3JNGR[7=[?[7Y=?!V='VJ?3;,>XLIW<4(?XU=UG<]WLZWN;B>MK MG373&.P8UN%8([F]^62W]4,?5I\/\6??3>,F<;;WR>KC:>,Q:Y/4\]QW31WB M>O8XMK^EK)\3TGARV>-WW>ROXH8D>S/AN/+G@.=S7Q^MU"U_J(>[* M#GWFPU-O?7J^Q!L]3MMMU]AV:AZ&>"3UL[-UZW?6AJ%/3T6OSB>'>,/V])E? MG+^4.1<8=]ZY:?9Q8LZ^/^YE),?3ZSD6LBYTYU_Q-3&6OOC]['':K6W_,CM> M[X_)[9=Y^&QY7'['O\[XM?X[^Q"0/@I('Q+2AX+TH2%]E) ^#*2/"M)'?DUI MA")J3B$UIYB:4U#-*:KF%%9SBJLY!=:<(JN@R"HHL@J*K((BJZ#(*BBR"HJL M@B*KH,@J*+(6%%D+BJP%1=:"(FM!D;6@R%I09"THLA8460N*K)(BJZ3(*BFR M2HJLDB*KI,@J*;)*BJR2(JNDR*HHLBJ*K(HBJZ+(JBBR*HJLBB*KHLBJ*+(J MBJR:(JNFR*HILFJ*K)HBJZ;(JBFR:HJLFB*KILA:4F0M*;*6%%E+BJPE1=:2 M(FM)D;6DR%I29"TILAJ*K(8BJZ'(:BBR&HJLAB*KHZ5!WXTM^MOQC\/8G M4$L! A0#% @ XHAO5@=!36*! L0 ! ( ! M &1O8U!R;W!S+V%P<"YX;6Q02P$"% ,4 " #BB&]6!54-3N\ K @ M$0 @ &O 9&]C4')O<',O8V]R92YX;6Q02P$"% ,4 M" #BB&]6F5R<(Q & "<)P $P @ '- 0 >&PO=&AE;64O M=&AE;64Q+GAM;%!+ 0(4 Q0 ( .*(;U9YD4%2B0< (R 8 M " @0X( !X;"]W;W)K&PO=V]R:W-H M965T&UL4$L! A0#% @ XHAO5O*P<2N_ @ U@D !@ M ("!SQ8 'AL+W=O&PO=V]R:W-H965T&UL M4$L! A0#% @ XXAO5JH,6J4""0 L"H !@ ("!82, M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO M5F^(I]]W"0 @" !@ ("!,EP 'AL+W=O&UL4$L! A0#% M @ XXAO5K6S:XY4 P TP< !D ("!MF@ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO5E?11A'K @ 4 < !D M ("!\H$ 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ XXAO5GU*GJ$B"P #BD !D ("!]IP M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ MXXAO5D>"H>YN"0 TQP !D ("!L[< 'AL+W=O&UL4$L! A0#% @ XXAO5I]HM2"4 @ MSP4 !D ("!C&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO5GQH$&C> P [PH !D M ("!%OT 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ XXAO5DXN=9\3 P R0< !D ("!VP@! 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO M5EX(O7P0 P "@< !D ("! 1(! 'AL+W=O&PO=V]R:W-H965TBCMW ( /L& 9 " @6$: 0!X;"]W;W)K M&UL4$L! A0#% @ XXAO5O3&W$/V P FPL M !D ("!=!T! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO5O8+FP39! H \ !D M ("!3RT! 'AL+W=O&PO=V]R:W-H965T M U 0!X;"]W;W)K&UL4$L! A0# M% @ XXAO5I#,1E:_! 6"4 !D ("!K#L! 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO5C:* MB31@ P B0T !D ("!LT&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO5GK*UW%& P M@P !D M ("!&PO M=V]R:W-H965T&UL4$L! A0#% @ XXAO5OF3/UC= @ N0< !D ("! M!6$! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ XXAO5H4)E>SV @ H@H !D ("!V&L! 'AL+W=O&UL4$L! A0#% @ XXAO5J@<7G"Q M @ Q H !D ("!Y70! 'AL+W=O&PO=V]R:W-H965T0( +D& 9 " @79Z 0!X;"]W;W)K&UL4$L! A0#% @ XXAO5B,O*;N=! ]!< !D M ("!)GT! 'AL+W=OH$ !3'0 &0 @('Z@0$ >&PO=V]R M:W-H965T&UL M4$L! A0#% @ XXAO5FJ+&:9K!0 Q\ !D ("!_8D! M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ MXXAO5JLI0\$1 P L0D !D ("!BI4! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO5G&V$DK!" MFDH !D ("!/)\! 'AL+W=O24% "\*P &0 @($T MJ $ >&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO5LA$^$"I @ )0D !D M ("!Y[,! 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ XXAO5LNNN+^U" %FX !D ("!EKX! 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO M5L%+W.[Z!P (#D !D ("!*=,! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO5A::'5TW @ O@0 M !D ("!F^,! 'AL+W=O0" !Q!P &0 @($)Y@$ M>&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO5L-O1]_. P +PP !D M ("!L^P! 'AL+W=O&PO=V]R:W-H965T MST 0!X;"]W;W)K&UL4$L! A0# M% @ XXAO5D7X?!>2 @ G 4 !D ("!EO@! 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO5CAR M5@&K @ ; 8 !D ("!R " 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ XXAO5L>5D'DY @ S00 !D M ("!1 D" 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ XXAO5O9C_U01 @ A@0 !D ("! MN!$" 'AL+W=O&PO=V]R:W-H965T7!E&UL4$L%!@ !K &L 9!T .,I @ $! end XML 118 Show.js IDEA: XBRL DOCUMENT // Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission. Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105. var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0); e.removeAttribute('id');a.parentNode.appendChild(e)}} if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'} e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}} XML 119 report.css IDEA: XBRL DOCUMENT /* Updated 2009-11-04 */ /* v2.2.0.24 */ /* DefRef Styles */ ..report table.authRefData{ background-color: #def; border: 2px solid #2F4497; font-size: 1em; position: absolute; } ..report table.authRefData a { display: block; font-weight: bold; } ..report table.authRefData p { margin-top: 0px; } ..report table.authRefData .hide { background-color: #2F4497; padding: 1px 3px 0px 0px; text-align: right; } ..report table.authRefData .hide a:hover { background-color: #2F4497; } ..report table.authRefData .body { height: 150px; overflow: auto; width: 400px; } ..report table.authRefData table{ font-size: 1em; } /* Report Styles */ ..pl a, .pl a:visited { color: black; text-decoration: none; } /* table */ ..report { background-color: white; border: 2px solid #acf; clear: both; color: black; font: normal 8pt Helvetica, Arial, san-serif; margin-bottom: 2em; } ..report hr { border: 1px solid #acf; } /* Top labels */ ..report th { background-color: #acf; color: black; font-weight: bold; text-align: center; } ..report th.void { background-color: transparent; color: #000000; font: bold 10pt Helvetica, Arial, san-serif; text-align: left; } ..report .pl { text-align: left; vertical-align: top; white-space: normal; width: 200px; white-space: normal; /* word-wrap: break-word; */ } ..report td.pl a.a { cursor: pointer; display: block; width: 200px; overflow: hidden; } ..report td.pl div.a { width: 200px; } ..report td.pl a:hover { background-color: #ffc; } /* Header rows... */ ..report tr.rh { background-color: #acf; color: black; font-weight: bold; } /* Calendars... */ ..report .rc { background-color: #f0f0f0; } /* Even rows... */ ..report .re, .report .reu { background-color: #def; } ..report .reu td { border-bottom: 1px solid black; } /* Odd rows... */ ..report .ro, .report .rou { background-color: white; } ..report .rou td { border-bottom: 1px solid black; } ..report .rou table td, .report .reu table td { border-bottom: 0px solid black; } /* styles for footnote marker */ ..report .fn { white-space: nowrap; } /* styles for numeric types */ ..report .num, .report .nump { text-align: right; white-space: nowrap; } ..report .nump { padding-left: 2em; } ..report .nump { padding: 0px 0.4em 0px 2em; } /* styles for text types */ ..report .text { text-align: left; white-space: normal; } ..report .text .big { margin-bottom: 1em; width: 17em; } ..report .text .more { display: none; } ..report .text .note { font-style: italic; font-weight: bold; } ..report .text .small { width: 10em; } ..report sup { font-style: italic; } ..report .outerFootnotes { font-size: 1em; } XML 120 FilingSummary.xml IDEA: XBRL DOCUMENT 3.22.4 html 231 487 1 false 76 0 false 7 false false R1.htm 00090 - Document - Document and Entity Information Sheet http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation Document and Entity Information Cover 1 false false R2.htm 00100 - Statement - Consolidated Balance Sheets Sheet http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets Consolidated Balance Sheets Statements 2 false false R3.htm 00105 - Statement - Consolidated Balance Sheets (Parenthetical) Sheet http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheetsParenthetical Consolidated Balance Sheets (Parenthetical) Statements 3 false false R4.htm 00200 - Statement - Consolidated Statements of Operations and Comprehensive Income Sheet http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome Consolidated Statements of Operations and Comprehensive Income Statements 4 false false R5.htm 00205 - Statement - Consolidated Statements of Operations and Comprehensive Income (Parenthetical) Sheet http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncomeParenthetical Consolidated Statements of Operations and Comprehensive Income (Parenthetical) Statements 5 false false R6.htm 00300 - Statement - Consolidated Statements of Cash Flows Sheet http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows Consolidated Statements of Cash Flows Statements 6 false false R7.htm 00400 - Statement - Consolidated Statements of Shareholders Equity Sheet http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity Consolidated Statements of Shareholders Equity Statements 7 false false R8.htm 10101 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES Sheet http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPolicies SIGNIFICANT ACCOUNTING POLICIES Notes 8 false false R9.htm 10201 - Disclosure - ACQUISITIONS Sheet http://www.cadre-holdings.com/role/DisclosureAcquisitions ACQUISITIONS Notes 9 false false R10.htm 10301 - Disclosure - ACCOUNTS RECEIVABLE, NET Sheet http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNet ACCOUNTS RECEIVABLE, NET Notes 10 false false R11.htm 10401 - Disclosure - DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE Sheet http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSale DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE Notes 11 false false R12.htm 10501 - Disclosure - REVENUE RECOGNITION Sheet http://www.cadre-holdings.com/role/DisclosureRevenueRecognition REVENUE RECOGNITION Notes 12 false false R13.htm 10601 - Disclosure - FAIR VALUE MEASUREMENTS Sheet http://www.cadre-holdings.com/role/DisclosureFairValueMeasurements FAIR VALUE MEASUREMENTS Notes 13 false false R14.htm 10701 - Disclosure - INVENTORIES Sheet http://www.cadre-holdings.com/role/DisclosureInventories INVENTORIES Notes 14 false false R15.htm 10801 - Disclosure - PROPERTY AND EQUIPMENT Sheet http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipment PROPERTY AND EQUIPMENT Notes 15 false false R16.htm 10901 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS Sheet http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssets GOODWILL AND OTHER INTANGIBLE ASSETS Notes 16 false false R17.htm 11001 - Disclosure - ACCRUED LIABILITIES Sheet http://www.cadre-holdings.com/role/DisclosureAccruedLiabilities ACCRUED LIABILITIES Notes 17 false false R18.htm 11101 - Disclosure - DEBT Sheet http://www.cadre-holdings.com/role/DisclosureDebt DEBT Notes 18 false false R19.htm 11201 - Disclosure - SHAREHOLDERS' EQUITY Sheet http://www.cadre-holdings.com/role/DisclosureShareholdersEquity SHAREHOLDERS' EQUITY Notes 19 false false R20.htm 11301 - Disclosure - STOCK-BASED COMPENSATION Sheet http://www.cadre-holdings.com/role/DisclosureStockBasedCompensation STOCK-BASED COMPENSATION Notes 20 false false R21.htm 11401 - Disclosure - COMPENSATION AND DEFINED CONTRIBUTION PLANS Sheet http://www.cadre-holdings.com/role/DisclosureCompensationAndDefinedContributionPlans COMPENSATION AND DEFINED CONTRIBUTION PLANS Notes 21 false false R22.htm 11501 - Disclosure - COMMITMENTS AND CONTINGENCIES Sheet http://www.cadre-holdings.com/role/DisclosureCommitmentsAndContingencies COMMITMENTS AND CONTINGENCIES Notes 22 false false R23.htm 11601 - Disclosure - INCOME TAXES Sheet http://www.cadre-holdings.com/role/DisclosureIncomeTaxes INCOME TAXES Notes 23 false false R24.htm 11701 - Disclosure - LEASES Sheet http://www.cadre-holdings.com/role/DisclosureLeases LEASES Notes 24 false false R25.htm 11801 - Disclosure - RELATED PARTY TRANSACTIONS Sheet http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactions RELATED PARTY TRANSACTIONS Notes 25 false false R26.htm 11901 - Disclosure - RESTRUCTURING Sheet http://www.cadre-holdings.com/role/DisclosureRestructuring RESTRUCTURING Notes 26 false false R27.htm 12001 - Disclosure - SEGMENT DATA Sheet http://www.cadre-holdings.com/role/DisclosureSegmentData SEGMENT DATA Notes 27 false false R28.htm 20102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Policies) Sheet http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies SIGNIFICANT ACCOUNTING POLICIES (Policies) Policies 28 false false R29.htm 30103 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesTables SIGNIFICANT ACCOUNTING POLICIES (Tables) Tables http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPolicies 29 false false R30.htm 30203 - Disclosure - ACQUISITIONS (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureAcquisitionsTables ACQUISITIONS (Tables) Tables http://www.cadre-holdings.com/role/DisclosureAcquisitions 30 false false R31.htm 30303 - Disclosure - ACCOUNTS RECEIVABLE, NET (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNetTables ACCOUNTS RECEIVABLE, NET (Tables) Tables http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNet 31 false false R32.htm 30503 - Disclosure - REVENUE RECOGNITION (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionTables REVENUE RECOGNITION (Tables) Tables http://www.cadre-holdings.com/role/DisclosureRevenueRecognition 32 false false R33.htm 30603 - Disclosure - FAIR VALUE MEASUREMENTS (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsTables FAIR VALUE MEASUREMENTS (Tables) Tables http://www.cadre-holdings.com/role/DisclosureFairValueMeasurements 33 false false R34.htm 30703 - Disclosure - INVENTORIES (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureInventoriesTables INVENTORIES (Tables) Tables http://www.cadre-holdings.com/role/DisclosureInventories 34 false false R35.htm 30803 - Disclosure - PROPERTY AND EQUIPMENT (Tables) Sheet http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentTables PROPERTY AND EQUIPMENT (Tables) Tables http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipment 35 false false R36.htm 30903 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsTables GOODWILL AND OTHER INTANGIBLE ASSETS (Tables) Tables http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssets 36 false false R37.htm 31003 - Disclosure - ACCRUED LIABILITIES (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesTables ACCRUED LIABILITIES (Tables) Tables http://www.cadre-holdings.com/role/DisclosureAccruedLiabilities 37 false false R38.htm 31103 - Disclosure - DEBT (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureDebtTables DEBT (Tables) Tables http://www.cadre-holdings.com/role/DisclosureDebt 38 false false R39.htm 31303 - Disclosure - STOCK-BASED COMPENSATION (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables STOCK-BASED COMPENSATION (Tables) Tables http://www.cadre-holdings.com/role/DisclosureStockBasedCompensation 39 false false R40.htm 31603 - Disclosure - INCOME TAXES (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureIncomeTaxesTables INCOME TAXES (Tables) Tables http://www.cadre-holdings.com/role/DisclosureIncomeTaxes 40 false false R41.htm 31703 - Disclosure - LEASES (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureLeasesTables LEASES (Tables) Tables http://www.cadre-holdings.com/role/DisclosureLeases 41 false false R42.htm 32003 - Disclosure - SEGMENT DATA (Tables) Sheet http://www.cadre-holdings.com/role/DisclosureSegmentDataTables SEGMENT DATA (Tables) Tables http://www.cadre-holdings.com/role/DisclosureSegmentData 42 false false R43.htm 40101 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES - Additional Information (Details) Sheet http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails SIGNIFICANT ACCOUNTING POLICIES - Additional Information (Details) Details 43 false false R44.htm 40102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES - Property and Equipment (Details) Sheet http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails SIGNIFICANT ACCOUNTING POLICIES - Property and Equipment (Details) Details 44 false false R45.htm 40103 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES - Accrued warranties and related costs (Details) Sheet http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAccruedWarrantiesAndRelatedCostsDetails SIGNIFICANT ACCOUNTING POLICIES - Accrued warranties and related costs (Details) Details 45 false false R46.htm 40104 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES - Weighted average shares outstanding and net income (loss) per share (Details) Sheet http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails SIGNIFICANT ACCOUNTING POLICIES - Weighted average shares outstanding and net income (loss) per share (Details) Details 46 false false R47.htm 40201 - Disclosure - ACQUISITIONS - Summary - Radar (Details) Sheet http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails ACQUISITIONS - Summary - Radar (Details) Details 47 false false R48.htm 40202 - Disclosure - ACQUISITIONS - Purchase Price Consideration and Fair Value - Radar (Details) Sheet http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails ACQUISITIONS - Purchase Price Consideration and Fair Value - Radar (Details) Details 48 false false R49.htm 40203 - Disclosure - ACQUISITIONS - Intangible Assets - Radar (Details) Sheet http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails ACQUISITIONS - Intangible Assets - Radar (Details) Details 49 false false R50.htm 40204 - Disclosure - ACQUISITIONS - Summary - Cyalume (Details) Sheet http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails ACQUISITIONS - Summary - Cyalume (Details) Details 50 false false R51.htm 40205 - Disclosure - ACQUISITIONS - Purchase Price Consideration and Fair Value - Cyalume (Details) Sheet http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails ACQUISITIONS - Purchase Price Consideration and Fair Value - Cyalume (Details) Details 51 false false R52.htm 40206 - Disclosure - ACQUISITIONS - Intangible Assets - Cyalume (Details) Sheet http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails ACQUISITIONS - Intangible Assets - Cyalume (Details) Details 52 false false R53.htm 40301 - Disclosure - ACCOUNTS RECEIVABLE, NET (Details) Sheet http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNetDetails ACCOUNTS RECEIVABLE, NET (Details) Details http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNetTables 53 false false R54.htm 40401 - Disclosure - DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE (Details) Sheet http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE (Details) Details http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSale 54 false false R55.htm 40501 - Disclosure - REVENUE RECOGNITION - Net sales by channel and geography (Details) Sheet http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionNetSalesByChannelAndGeographyDetails REVENUE RECOGNITION - Net sales by channel and geography (Details) Details 55 false false R56.htm 40502 - Disclosure - REVENUE RECOGNITION - Includes all Distribution sales (Details) Sheet http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionIncludesAllDistributionSalesDetails REVENUE RECOGNITION - Includes all Distribution sales (Details) Details 56 false false R57.htm 40503 - Disclosure - REVENUE RECOGNITION - Contract Liabilities (Details) Sheet http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionContractLiabilitiesDetails REVENUE RECOGNITION - Contract Liabilities (Details) Details 57 false false R58.htm 40504 - Disclosure - REVENUE RECOGNITION - Additional information (Details) Sheet http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionAdditionalInformationDetails REVENUE RECOGNITION - Additional information (Details) Details 58 false false R59.htm 40601 - Disclosure - FAIR VALUE MEASUREMENTS (Details) Sheet http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails FAIR VALUE MEASUREMENTS (Details) Details http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsTables 59 false false R60.htm 40602 - Disclosure - FAIR VALUE MEASUREMENTS - Transfers of assets or liabilities (Details) Sheet http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsTransfersOfAssetsOrLiabilitiesDetails FAIR VALUE MEASUREMENTS - Transfers of assets or liabilities (Details) Details 60 false false R61.htm 40701 - Disclosure - INVENTORIES (Details) Sheet http://www.cadre-holdings.com/role/DisclosureInventoriesDetails INVENTORIES (Details) Details http://www.cadre-holdings.com/role/DisclosureInventoriesTables 61 false false R62.htm 40801 - Disclosure - PROPERTY AND EQUIPMENT (Details) Sheet http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails PROPERTY AND EQUIPMENT (Details) Details http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentTables 62 false false R63.htm 40901 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Summary of changes in goodwill (Details) Sheet http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails GOODWILL AND OTHER INTANGIBLE ASSETS - Summary of changes in goodwill (Details) Details 63 false false R64.htm 40902 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Impairment of Goodwill (Details) Sheet http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsImpairmentOfGoodwillDetails GOODWILL AND OTHER INTANGIBLE ASSETS - Impairment of Goodwill (Details) Details 64 false false R65.htm 40903 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Summary of intangible assets (Details) Sheet http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails GOODWILL AND OTHER INTANGIBLE ASSETS - Summary of intangible assets (Details) Details 65 false false R66.htm 40904 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Additional information (Details) Sheet http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAdditionalInformationDetails GOODWILL AND OTHER INTANGIBLE ASSETS - Additional information (Details) Details 66 false false R67.htm 40905 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Amortization expense for definite lived intangible assets (Details) Sheet http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails GOODWILL AND OTHER INTANGIBLE ASSETS - Amortization expense for definite lived intangible assets (Details) Details 67 false false R68.htm 41001 - Disclosure - ACCRUED LIABILITIES (Details) Sheet http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails ACCRUED LIABILITIES (Details) Details http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesTables 68 false false R69.htm 41101 - Disclosure - DEBT - Schedule of company's debt (Details) Sheet http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails DEBT - Schedule of company's debt (Details) Details 69 false false R70.htm 41102 - Disclosure - DEBT - Summary of aggregate principal payment of long-term debt (Details) Sheet http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails DEBT - Summary of aggregate principal payment of long-term debt (Details) Details 70 false false R71.htm 41103 - Disclosure - DEBT - New Credit Agreement (Details) Sheet http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails DEBT - New Credit Agreement (Details) Details 71 false false R72.htm 41104 - Disclosure - DEBT - Canadian Credit Facility (Details) Sheet http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails DEBT - Canadian Credit Facility (Details) Details 72 false false R73.htm 41105 - Disclosure - DEBT - Short-Term Debt (Details) Sheet http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails DEBT - Short-Term Debt (Details) Details 73 false false R74.htm 41106 - Disclosure - DEBT - Fair Value of Debt (Details) Sheet http://www.cadre-holdings.com/role/DisclosureDebtFairValueOfDebtDetails DEBT - Fair Value of Debt (Details) Details 74 false false R75.htm 41107 - Disclosure - DEBT - Schedule of interest rate swaps (Details) Sheet http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfInterestRateSwapsDetails DEBT - Schedule of interest rate swaps (Details) Details 75 false false R76.htm 41108 - Disclosure - DEBT - Schedule of fair value swap agreement (Details) Sheet http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails DEBT - Schedule of fair value swap agreement (Details) Details 76 false false R77.htm 41201 - Disclosure - SHAREHOLDERS EQUITY (Details) Sheet http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails SHAREHOLDERS EQUITY (Details) Details 77 false false R78.htm 41301 - Disclosure - STOCK-BASED COMPENSATION - Executive Compensation Plan (Details) Sheet http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails STOCK-BASED COMPENSATION - Executive Compensation Plan (Details) Details 78 false false R79.htm 41302 - Disclosure - STOCK-BASED COMPENSATION - Summary of phantom restricted share plan, changes in outstanding options and restricted stock awards (Details) Sheet http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails STOCK-BASED COMPENSATION - Summary of phantom restricted share plan, changes in outstanding options and restricted stock awards (Details) Details 79 false false R80.htm 41303 - Disclosure - STOCK-BASED COMPENSATION - Stock Incentive Plan (Details) Sheet http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails STOCK-BASED COMPENSATION - Stock Incentive Plan (Details) Details 80 false false R81.htm 41304 - Disclosure - STOCK-BASED COMPENSATION - Stock option (Details) Sheet http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails STOCK-BASED COMPENSATION - Stock option (Details) Details 81 false false R82.htm 41401 - Disclosure - COMPENSATION AND DEFINED CONTRIBUTION PLANS (Details) Sheet http://www.cadre-holdings.com/role/DisclosureCompensationAndDefinedContributionPlansDetails COMPENSATION AND DEFINED CONTRIBUTION PLANS (Details) Details http://www.cadre-holdings.com/role/DisclosureCompensationAndDefinedContributionPlans 82 false false R83.htm 41501 - Disclosure - COMMITMENTS AND CONTINGENCIES - Legal Proceedings (Details) Sheet http://www.cadre-holdings.com/role/DisclosureCommitmentsAndContingenciesLegalProceedingsDetails COMMITMENTS AND CONTINGENCIES - Legal Proceedings (Details) Details 83 false false R84.htm 41601 - Disclosure - INCOME TAXES - Consolidated income from continuing operations before provision for income taxes (Details) Sheet http://www.cadre-holdings.com/role/DisclosureIncomeTaxesConsolidatedIncomeFromContinuingOperationsBeforeProvisionForIncomeTaxesDetails INCOME TAXES - Consolidated income from continuing operations before provision for income taxes (Details) Details 84 false false R85.htm 41602 - Disclosure - INCOME TAXES - Benefit for income taxes (Details) Sheet http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails INCOME TAXES - Benefit for income taxes (Details) Details 85 false false R86.htm 41603 - Disclosure - INCOME TAXES - Reconciliation of the statutory federal income tax rate to the effective rate reported in the Company's consolidated financial statements (Details) Sheet http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfStatutoryFederalIncomeTaxRateToEffectiveRateReportedInCompanySConsolidatedFinancialStatementsDetails INCOME TAXES - Reconciliation of the statutory federal income tax rate to the effective rate reported in the Company's consolidated financial statements (Details) Details 86 false false R87.htm 41604 - Disclosure - INCOME TAXES - Deferred Income taxes (Details) Sheet http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails INCOME TAXES - Deferred Income taxes (Details) Details 87 false false R88.htm 41605 - Disclosure - INCOME TAXES - Reconciliation of Unrecognized Tax Benefits (Details) Sheet http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfUnrecognizedTaxBenefitsDetails INCOME TAXES - Reconciliation of Unrecognized Tax Benefits (Details) Details 88 false false R89.htm 41606 - Disclosure - INCOME TAXES - Operating loss Carryforwards (Details) Sheet http://www.cadre-holdings.com/role/DisclosureIncomeTaxesOperatingLossCarryforwardsDetails INCOME TAXES - Operating loss Carryforwards (Details) Details 89 false false R90.htm 41701 - Disclosure - LEASES - Schedule of operating assets and liabilities (Details) Sheet http://www.cadre-holdings.com/role/DisclosureLeasesScheduleOfOperatingAssetsAndLiabilitiesDetails LEASES - Schedule of operating assets and liabilities (Details) Details 90 false false R91.htm 41702 - Disclosure - LEASES - Components of lease expense (Details) Sheet http://www.cadre-holdings.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails LEASES - Components of lease expense (Details) Details 91 false false R92.htm 41703 - Disclosure - LEASES - Weighted average remaining lease term and discount rate (Details) Sheet http://www.cadre-holdings.com/role/DisclosureLeasesWeightedAverageRemainingLeaseTermAndDiscountRateDetails LEASES - Weighted average remaining lease term and discount rate (Details) Details 92 false false R93.htm 41704 - Disclosure - LEASES - Future minimum lease payments under operating leases (Details) Sheet http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails LEASES - Future minimum lease payments under operating leases (Details) Details 93 false false R94.htm 41705 - Disclosure - LEASES - Future minimum lease payments under non-cancelable operating leases (Details) Sheet http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderNonCancelableOperatingLeasesDetails LEASES - Future minimum lease payments under non-cancelable operating leases (Details) Details 94 false false R95.htm 41706 - Disclosure - LEASES - Supplemental cash flow information related to leases (Details) Sheet http://www.cadre-holdings.com/role/DisclosureLeasesSupplementalCashFlowInformationRelatedToLeasesDetails LEASES - Supplemental cash flow information related to leases (Details) Details 95 false false R96.htm 41801 - Disclosure - RELATED PARTY TRANSACTIONS (Details) Sheet http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails RELATED PARTY TRANSACTIONS (Details) Details http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactions 96 false false R97.htm 41901 - Disclosure - RESTRUCTURING - Restructuring Expenses (Details) Sheet http://www.cadre-holdings.com/role/DisclosureRestructuringRestructuringExpensesDetails RESTRUCTURING - Restructuring Expenses (Details) Details 97 false false R98.htm 42001 - Disclosure - SEGMENT DATA (Details) Sheet http://www.cadre-holdings.com/role/DisclosureSegmentDataDetails SEGMENT DATA (Details) Details http://www.cadre-holdings.com/role/DisclosureSegmentDataTables 98 false false R99.htm 42002 - Disclosure - SEGMENT DATA - asset information or operating expenses by segment (Details) Sheet http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails SEGMENT DATA - asset information or operating expenses by segment (Details) Details 99 false false All Reports Book All Reports [ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 14 fact(s) appearing in ix:hidden were eligible for transformation: cdre:CashBasedLongTermIncentivePlanVestingPeriod, cdre:NumberOfConsecutiveTradingDaysFairMarketValueToBeMaintained, dei:CurrentFiscalYearEndDate, us-gaap:CommonStockDividendsPerShareCashPaid, us-gaap:CommonStockSharesIssued, us-gaap:CommonStockSharesOutstanding, us-gaap:PaymentsOfDividendsCommonStock, us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1, us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod, us-gaap:StockholdersEquityNoteStockSplitConversionRatio1, us-gaap:TemporaryEquitySharesOutstanding - cdre-20221231x10k.htm 9 [ix-0514-Hidden-Fact-Not-Referenced] WARN: 5 fact(s) appearing in ix:hidden were not referenced by any -sec-ix-hidden style property: us-gaap:CommitmentsAndContingencies, us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration, us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration - cdre-20221231x10k.htm 9 cdre-20221231x10k.htm cdre-20221231.xsd cdre-20221231_cal.xml cdre-20221231_def.xml cdre-20221231_lab.xml cdre-20221231_pre.xml cdre-20221231xex10d17.htm cdre-20221231xex21d1.htm cdre-20221231xex23d1.htm cdre-20221231xex31d1.htm cdre-20221231xex31d2.htm cdre-20221231xex32d1.htm cdre-20221231xex32d2.htm cdre-20221231x10k001.jpg cdre-20221231x10k002.jpg cdre-20221231x10k003.jpg http://fasb.org/us-gaap/2022 http://xbrl.sec.gov/dei/2022 true true JSON 123 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "cdre-20221231x10k.htm": { "axisCustom": 0, "axisStandard": 32, "baseTaxonomies": { "http://fasb.org/us-gaap/2022": 909, "http://xbrl.sec.gov/dei/2022": 40 }, "contextCount": 231, "dts": { "calculationLink": { "local": [ "cdre-20221231_cal.xml" ] }, "definitionLink": { "local": [ "cdre-20221231_def.xml" ] }, "inline": { "local": [ "cdre-20221231x10k.htm" ] }, "labelLink": { "local": [ "cdre-20221231_lab.xml" ] }, "presentationLink": { "local": [ "cdre-20221231_pre.xml" ] }, "schema": { "local": [ "cdre-20221231.xsd" ], "remote": [ "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd", "http://www.xbrl.org/2003/xl-2003-12-31.xsd", "http://www.xbrl.org/2003/xlink-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://www.xbrl.org/lrr/arcrole/esma-arcrole-2018-11-21.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd", "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd", "https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd", "https://xbrl.fasb.org/srt/2022/elts/srt-roles-2022.xsd", "https://xbrl.fasb.org/srt/2022/elts/srt-types-2022.xsd", "https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd", "https://xbrl.fasb.org/us-gaap/2022/elts/us-roles-2022.xsd", "https://xbrl.fasb.org/us-gaap/2022/elts/us-types-2022.xsd", "https://xbrl.sec.gov/country/2022/country-2022.xsd", "https://xbrl.sec.gov/dei/2022/dei-2022.xsd" ] } }, "elementCount": 741, "entityCount": 1, "hidden": { "http://fasb.org/us-gaap/2022": 23, "http://www.cadre-holdings.com/20221231": 2, "http://xbrl.sec.gov/dei/2022": 8, "total": 33 }, "keyCustom": 51, "keyStandard": 436, "memberCustom": 31, "memberStandard": 43, "nsprefix": "cdre", "nsuri": "http://www.cadre-holdings.com/20221231", "report": { "R1": { "firstAnchor": { "ancestors": [ "p", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "document", "isDefault": "true", "longName": "00090 - Document - Document and Entity Information", "menuCat": "Cover", "order": "1", "role": "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation", "shortName": "Document and Entity Information", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R10": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FinancingReceivablesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10301 - Disclosure - ACCOUNTS RECEIVABLE, NET", "menuCat": "Notes", "order": "10", "role": "http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNet", "shortName": "ACCOUNTS RECEIVABLE, NET", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FinancingReceivablesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R11": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10401 - Disclosure - DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE", "menuCat": "Notes", "order": "11", "role": "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSale", "shortName": "DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R12": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10501 - Disclosure - REVENUE RECOGNITION", "menuCat": "Notes", "order": "12", "role": "http://www.cadre-holdings.com/role/DisclosureRevenueRecognition", "shortName": "REVENUE RECOGNITION", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RevenueFromContractWithCustomerTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10601 - Disclosure - FAIR VALUE MEASUREMENTS", "menuCat": "Notes", "order": "13", "role": "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurements", "shortName": "FAIR VALUE MEASUREMENTS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10701 - Disclosure - INVENTORIES", "menuCat": "Notes", "order": "14", "role": "http://www.cadre-holdings.com/role/DisclosureInventories", "shortName": "INVENTORIES", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10801 - Disclosure - PROPERTY AND EQUIPMENT", "menuCat": "Notes", "order": "15", "role": "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipment", "shortName": "PROPERTY AND EQUIPMENT", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10901 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS", "menuCat": "Notes", "order": "16", "role": "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssets", "shortName": "GOODWILL AND OTHER INTANGIBLE ASSETS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "cdre:AccruedLiabilitiesCurrentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11001 - Disclosure - ACCRUED LIABILITIES", "menuCat": "Notes", "order": "17", "role": "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilities", "shortName": "ACCRUED LIABILITIES", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "cdre:AccruedLiabilitiesCurrentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DebtDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11101 - Disclosure - DEBT", "menuCat": "Notes", "order": "18", "role": "http://www.cadre-holdings.com/role/DisclosureDebt", "shortName": "DEBT", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DebtDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11201 - Disclosure - SHAREHOLDERS' EQUITY", "menuCat": "Notes", "order": "19", "role": "http://www.cadre-holdings.com/role/DisclosureShareholdersEquity", "shortName": "SHAREHOLDERS' EQUITY", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashCashEquivalentsAndShortTermInvestments", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00100 - Statement - Consolidated Balance Sheets", "menuCat": "Statements", "order": "2", "role": "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets", "shortName": "Consolidated Balance Sheets", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CashCashEquivalentsAndShortTermInvestments", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11301 - Disclosure - STOCK-BASED COMPENSATION", "menuCat": "Notes", "order": "20", "role": "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensation", "shortName": "STOCK-BASED COMPENSATION", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11401 - Disclosure - COMPENSATION AND DEFINED CONTRIBUTION PLANS", "menuCat": "Notes", "order": "21", "role": "http://www.cadre-holdings.com/role/DisclosureCompensationAndDefinedContributionPlans", "shortName": "COMPENSATION AND DEFINED CONTRIBUTION PLANS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11501 - Disclosure - COMMITMENTS AND CONTINGENCIES", "menuCat": "Notes", "order": "22", "role": "http://www.cadre-holdings.com/role/DisclosureCommitmentsAndContingencies", "shortName": "COMMITMENTS AND CONTINGENCIES", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11601 - Disclosure - INCOME TAXES", "menuCat": "Notes", "order": "23", "role": "http://www.cadre-holdings.com/role/DisclosureIncomeTaxes", "shortName": "INCOME TAXES", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11701 - Disclosure - LEASES", "menuCat": "Notes", "order": "24", "role": "http://www.cadre-holdings.com/role/DisclosureLeases", "shortName": "LEASES", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11801 - Disclosure - RELATED PARTY TRANSACTIONS", "menuCat": "Notes", "order": "25", "role": "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactions", "shortName": "RELATED PARTY TRANSACTIONS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "11901 - Disclosure - RESTRUCTURING", "menuCat": "Notes", "order": "26", "role": "http://www.cadre-holdings.com/role/DisclosureRestructuring", "shortName": "RESTRUCTURING", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "12001 - Disclosure - SEGMENT DATA", "menuCat": "Notes", "order": "27", "role": "http://www.cadre-holdings.com/role/DisclosureSegmentData", "shortName": "SEGMENT DATA", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SegmentReportingDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R28": { "firstAnchor": { "ancestors": [ "us-gaap:SignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "20102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Policies)", "menuCat": "Policies", "order": "28", "role": "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies", "shortName": "SIGNIFICANT ACCOUNTING POLICIES (Policies)", "subGroupType": "policies", "uniqueAnchor": { "ancestors": [ "us-gaap:SignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "cdre:ScheduleOfPropertyAndEquipmentEstimatedUsefulLivesDepreciationInStraightLineMethod", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30103 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES (Tables)", "menuCat": "Tables", "order": "29", "role": "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesTables", "shortName": "SIGNIFICANT ACCOUNTING POLICIES (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "cdre:ScheduleOfPropertyAndEquipmentEstimatedUsefulLivesDepreciationInStraightLineMethod", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R3": { "firstAnchor": { "ancestors": [ "us-gaap:TemporaryEquityParOrStatedValuePerShare", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:TemporaryEquityParOrStatedValuePerShare", "reportCount": 1, "unique": true, "unitRef": "Unit_Divide_USD_shares_-5OxsgUIdE6HGg-iflrskw", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00105 - Statement - Consolidated Balance Sheets (Parenthetical)", "menuCat": "Statements", "order": "3", "role": "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheetsParenthetical", "shortName": "Consolidated Balance Sheets (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "us-gaap:TemporaryEquityParOrStatedValuePerShare", "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:TemporaryEquityParOrStatedValuePerShare", "reportCount": 1, "unique": true, "unitRef": "Unit_Divide_USD_shares_-5OxsgUIdE6HGg-iflrskw", "xsiNil": "false" } }, "R30": { "firstAnchor": { "ancestors": [ "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_us-gaap_BusinessAcquisitionAxis_cdre_RadarLeatherDivisionS.r.lMember_B9_NOvBjvU-m9_PrcHhNLQ", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30203 - Disclosure - ACQUISITIONS (Tables)", "menuCat": "Tables", "order": "30", "role": "http://www.cadre-holdings.com/role/DisclosureAcquisitionsTables", "shortName": "ACQUISITIONS (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_us-gaap_BusinessAcquisitionAxis_cdre_RadarLeatherDivisionS.r.lMember_B9_NOvBjvU-m9_PrcHhNLQ", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R31": { "firstAnchor": { "ancestors": [ "us-gaap:FinancingReceivablesTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30303 - Disclosure - ACCOUNTS RECEIVABLE, NET (Tables)", "menuCat": "Tables", "order": "31", "role": "http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNetTables", "shortName": "ACCOUNTS RECEIVABLE, NET (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:FinancingReceivablesTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R32": { "firstAnchor": { "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30503 - Disclosure - REVENUE RECOGNITION (Tables)", "menuCat": "Tables", "order": "32", "role": "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionTables", "shortName": "REVENUE RECOGNITION (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisaggregationOfRevenueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30603 - Disclosure - FAIR VALUE MEASUREMENTS (Tables)", "menuCat": "Tables", "order": "33", "role": "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsTables", "shortName": "FAIR VALUE MEASUREMENTS (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30703 - Disclosure - INVENTORIES (Tables)", "menuCat": "Tables", "order": "34", "role": "http://www.cadre-holdings.com/role/DisclosureInventoriesTables", "shortName": "INVENTORIES (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30803 - Disclosure - PROPERTY AND EQUIPMENT (Tables)", "menuCat": "Tables", "order": "35", "role": "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentTables", "shortName": "PROPERTY AND EQUIPMENT (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "30903 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS (Tables)", "menuCat": "Tables", "order": "36", "role": "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsTables", "shortName": "GOODWILL AND OTHER INTANGIBLE ASSETS (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfGoodwillTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "cdre:AccruedLiabilitiesCurrentTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31003 - Disclosure - ACCRUED LIABILITIES (Tables)", "menuCat": "Tables", "order": "37", "role": "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesTables", "shortName": "ACCRUED LIABILITIES (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "cdre:AccruedLiabilitiesCurrentTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfDebtTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31103 - Disclosure - DEBT (Tables)", "menuCat": "Tables", "order": "38", "role": "http://www.cadre-holdings.com/role/DisclosureDebtTables", "shortName": "DEBT (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfDebtTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R39": { "firstAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31303 - Disclosure - STOCK-BASED COMPENSATION (Tables)", "menuCat": "Tables", "order": "39", "role": "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables", "shortName": "STOCK-BASED COMPENSATION (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00200 - Statement - Consolidated Statements of Operations and Comprehensive Income", "menuCat": "Statements", "order": "4", "role": "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome", "shortName": "Consolidated Statements of Operations and Comprehensive Income", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "lang": null, "name": "us-gaap:SellingGeneralAndAdministrativeExpense", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R40": { "firstAnchor": { "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31603 - Disclosure - INCOME TAXES (Tables)", "menuCat": "Tables", "order": "40", "role": "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesTables", "shortName": "INCOME TAXES (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R41": { "firstAnchor": { "ancestors": [ "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "31703 - Disclosure - LEASES (Tables)", "menuCat": "Tables", "order": "41", "role": "http://www.cadre-holdings.com/role/DisclosureLeasesTables", "shortName": "LEASES (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:LesseeOperatingLeasesTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LeaseCostTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R42": { "firstAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "32003 - Disclosure - SEGMENT DATA (Tables)", "menuCat": "Tables", "order": "42", "role": "http://www.cadre-holdings.com/role/DisclosureSegmentDataTables", "shortName": "SEGMENT DATA (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R43": { "firstAnchor": { "ancestors": [ "p", "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "us-gaap:SignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "INF", "first": true, "lang": null, "name": "cdre:NumberOfManufacturingPlants", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_item_7I08iHLdv0SfMXM7MMO3Ng", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40101 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES - Additional Information (Details)", "menuCat": "Details", "order": "43", "role": "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails", "shortName": "SIGNIFICANT ACCOUNTING POLICIES - Additional Information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "us-gaap:SignificantAccountingPoliciesTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "INF", "first": true, "lang": null, "name": "cdre:NumberOfManufacturingPlants", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_item_7I08iHLdv0SfMXM7MMO3Ng", "xsiNil": "false" } }, "R44": { "firstAnchor": { "ancestors": [ "us-gaap:NumberOfReportingUnits", "p", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_10_31_2022_To_10_31_2022_uekXO0j1mEiVTnJurQuR-w", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:NumberOfReportingUnits", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_item_7I08iHLdv0SfMXM7MMO3Ng", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40102 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES - Property and Equipment (Details)", "menuCat": "Details", "order": "44", "role": "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails", "shortName": "SIGNIFICANT ACCOUNTING POLICIES - Property and Equipment (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "us-gaap:NumberOfReportingUnits", "p", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_10_31_2022_To_10_31_2022_uekXO0j1mEiVTnJurQuR-w", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:NumberOfReportingUnits", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_item_7I08iHLdv0SfMXM7MMO3Ng", "xsiNil": "false" } }, "R45": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "us-gaap:StandardProductWarrantyPolicy", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2021_O7TiK-zn9Uq9BqtW_NyJfA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ProductWarrantyAccrual", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40103 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES - Accrued warranties and related costs (Details)", "menuCat": "Details", "order": "45", "role": "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAccruedWarrantiesAndRelatedCostsDetails", "shortName": "SIGNIFICANT ACCOUNTING POLICIES - Accrued warranties and related costs (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "us-gaap:StandardProductWarrantyPolicy", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2020_djdMc011rE2h3N-TgxV3AQ", "decimals": "-3", "lang": null, "name": "us-gaap:ProductWarrantyAccrual", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R46": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerSharePolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40104 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES - Weighted average shares outstanding and net income (loss) per share (Details)", "menuCat": "Details", "order": "46", "role": "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails", "shortName": "SIGNIFICANT ACCOUNTING POLICIES - Weighted average shares outstanding and net income (loss) per share (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerSharePolicyTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R47": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40201 - Disclosure - ACQUISITIONS - Summary - Radar (Details)", "menuCat": "Details", "order": "47", "role": "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails", "shortName": "ACQUISITIONS - Summary - Radar (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_us-gaap_BusinessAcquisitionAxis_cdre_RadarLeatherDivisionS.r.lMember_B9_NOvBjvU-m9_PrcHhNLQ", "decimals": "-3", "lang": null, "name": "cdre:BusinessCombinationAcquisitionRelatedCostsAggregate", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R48": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:GoodwillPurchaseAccountingAdjustments", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40202 - Disclosure - ACQUISITIONS - Purchase Price Consideration and Fair Value - Radar (Details)", "menuCat": "Details", "order": "48", "role": "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails", "shortName": "ACQUISITIONS - Purchase Price Consideration and Fair Value - Radar (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "us-gaap:BusinessCombinationDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_1_11_2022_us-gaap_BusinessAcquisitionAxis_cdre_RadarLeatherDivisionS.r.lMember_sEFTXScIyUut8VXcf2Nf8Q", "decimals": "-3", "lang": null, "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R49": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_11_2022_To_1_11_2022_us-gaap_BusinessAcquisitionAxis_cdre_RadarLeatherDivisionS.r.lMember_SD3L8iglgUqqEuSKcGX7tg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FinitelivedIntangibleAssetsAcquired1", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40203 - Disclosure - ACQUISITIONS - Intangible Assets - Radar (Details)", "menuCat": "Details", "order": "49", "role": "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails", "shortName": "ACQUISITIONS - Intangible Assets - Radar (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_11_2022_To_1_11_2022_us-gaap_BusinessAcquisitionAxis_cdre_RadarLeatherDivisionS.r.lMember_SD3L8iglgUqqEuSKcGX7tg", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FinitelivedIntangibleAssetsAcquired1", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "span", "p", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00205 - Statement - Consolidated Statements of Operations and Comprehensive Income (Parenthetical)", "menuCat": "Statements", "order": "5", "role": "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncomeParenthetical", "shortName": "Consolidated Statements of Operations and Comprehensive Income (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "span", "p", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R50": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40204 - Disclosure - ACQUISITIONS - Summary - Cyalume (Details)", "menuCat": "Details", "order": "50", "role": "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "shortName": "ACQUISITIONS - Summary - Cyalume (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_us-gaap_BusinessAcquisitionAxis_cdre_CyalumeAcquisitionMember_vGVrGw_PQ0-ITvidCclG7w", "decimals": "-3", "lang": null, "name": "us-gaap:BusinessCombinationAcquisitionRelatedCosts", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R51": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:GoodwillPurchaseAccountingAdjustments", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40205 - Disclosure - ACQUISITIONS - Purchase Price Consideration and Fair Value - Cyalume (Details)", "menuCat": "Details", "order": "51", "role": "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "shortName": "ACQUISITIONS - Purchase Price Consideration and Fair Value - Cyalume (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_5_4_2022_us-gaap_BusinessAcquisitionAxis_cdre_CyalumeAcquisitionMember_pw0iYp1G3UmbawlzAR18Hw", "decimals": "-3", "lang": null, "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R52": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_5_4_2022_To_5_4_2022_us-gaap_BusinessAcquisitionAxis_cdre_CyalumeAcquisitionMember_kR3kRj3aJk6eCsRtBfIv9g", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FinitelivedIntangibleAssetsAcquired1", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40206 - Disclosure - ACQUISITIONS - Intangible Assets - Cyalume (Details)", "menuCat": "Details", "order": "52", "role": "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "shortName": "ACQUISITIONS - Intangible Assets - Cyalume (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_5_4_2022_To_5_4_2022_us-gaap_BusinessAcquisitionAxis_cdre_CyalumeAcquisitionMember_kR3kRj3aJk6eCsRtBfIv9g", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FinitelivedIntangibleAssetsAcquired1", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R53": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "us-gaap:FinancingReceivablesTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2021_O7TiK-zn9Uq9BqtW_NyJfA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40301 - Disclosure - ACCOUNTS RECEIVABLE, NET (Details)", "menuCat": "Details", "order": "53", "role": "http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNetDetails", "shortName": "ACCOUNTS RECEIVABLE, NET (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "us-gaap:FinancingReceivablesTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2020_djdMc011rE2h3N-TgxV3AQ", "decimals": "-3", "lang": null, "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R54": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2021_O7TiK-zn9Uq9BqtW_NyJfA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LiabilitiesOfDisposalGroupIncludingDiscontinuedOperationCurrent", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40401 - Disclosure - DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE (Details)", "menuCat": "Details", "order": "54", "role": "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails", "shortName": "DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_11_30_2022_us-gaap_DisposalGroupClassificationAxis_us-gaap_DisposalGroupNotDiscontinuedOperationsMember_us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis_cdre_DaventryUkFacilityMember_Mi_Kx4AdQUWWqYomifD0tg", "decimals": "-3", "lang": null, "name": "us-gaap:DisposalGroupIncludingDiscontinuedOperationConsideration", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R55": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40501 - Disclosure - REVENUE RECOGNITION - Net sales by channel and geography (Details)", "menuCat": "Details", "order": "55", "role": "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionNetSalesByChannelAndGeographyDetails", "shortName": "REVENUE RECOGNITION - Net sales by channel and geography (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_us-gaap_ContractWithCustomerSalesChannelAxis_cdre_U.s.stateAndLocalAgenciesMember_X2bnEoYBj06Ia_LT4FYLGA", "decimals": "-3", "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R56": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40502 - Disclosure - REVENUE RECOGNITION - Includes all Distribution sales (Details)", "menuCat": "Details", "order": "56", "role": "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionIncludesAllDistributionSalesDetails", "shortName": "REVENUE RECOGNITION - Includes all Distribution sales (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:DisaggregationOfRevenueTableTextBlock", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_srt_StatementGeographicalAxis_country_US_iFqoOWLxm0uB6zcrKh51_g", "decimals": "-3", "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R57": { "firstAnchor": { "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerLiabilityCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40503 - Disclosure - REVENUE RECOGNITION - Contract Liabilities (Details)", "menuCat": "Details", "order": "57", "role": "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionContractLiabilitiesDetails", "shortName": "REVENUE RECOGNITION - Contract Liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ContractWithCustomerLiabilityCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R58": { "firstAnchor": { "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueRemainingPerformanceObligation", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40504 - Disclosure - REVENUE RECOGNITION - Additional information (Details)", "menuCat": "Details", "order": "58", "role": "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionAdditionalInformationDetails", "shortName": "REVENUE RECOGNITION - Additional information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:RevenueFromContractWithCustomerTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueRemainingPerformanceObligation", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R59": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_iRBUuxX-Dk65B5UFUdp8TQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DerivativeAssets", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40601 - Disclosure - FAIR VALUE MEASUREMENTS (Details)", "menuCat": "Details", "order": "59", "role": "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails", "shortName": "FAIR VALUE MEASUREMENTS (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_us-gaap_FairValueByMeasurementFrequencyAxis_us-gaap_FairValueMeasurementsRecurringMember_iRBUuxX-Dk65B5UFUdp8TQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DerivativeAssets", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ProfitLoss", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00300 - Statement - Consolidated Statements of Cash Flows", "menuCat": "Statements", "order": "6", "role": "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows", "shortName": "Consolidated Statements of Cash Flows", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ProfitLoss", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R60": { "firstAnchor": { "ancestors": [ "cdre:FairValueAssetsAndLiabilitiesTransfersBetweenFairValueMeasurementLevelsAmount", "p", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "cdre:FairValueAssetsAndLiabilitiesTransfersBetweenFairValueMeasurementLevelsAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40602 - Disclosure - FAIR VALUE MEASUREMENTS - Transfers of assets or liabilities (Details)", "menuCat": "Details", "order": "60", "role": "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsTransfersOfAssetsOrLiabilitiesDetails", "shortName": "FAIR VALUE MEASUREMENTS - Transfers of assets or liabilities (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "cdre:FairValueAssetsAndLiabilitiesTransfersBetweenFairValueMeasurementLevelsAmount", "p", "us-gaap:FairValueDisclosuresTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "cdre:FairValueAssetsAndLiabilitiesTransfersBetweenFairValueMeasurementLevelsAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R61": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "us-gaap:InventoryDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InventoryFinishedGoodsAndWorkInProcessNetOfReserves", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40701 - Disclosure - INVENTORIES (Details)", "menuCat": "Details", "order": "61", "role": "http://www.cadre-holdings.com/role/DisclosureInventoriesDetails", "shortName": "INVENTORIES (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "us-gaap:InventoryDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:InventoryFinishedGoodsAndWorkInProcessNetOfReserves", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R62": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40801 - Disclosure - PROPERTY AND EQUIPMENT (Details)", "menuCat": "Details", "order": "62", "role": "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails", "shortName": "PROPERTY AND EQUIPMENT (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:PropertyPlantAndEquipmentGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R63": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2021_O7TiK-zn9Uq9BqtW_NyJfA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:Goodwill", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40901 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Summary of changes in goodwill (Details)", "menuCat": "Details", "order": "63", "role": "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails", "shortName": "GOODWILL AND OTHER INTANGIBLE ASSETS - Summary of changes in goodwill (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "lang": null, "name": "us-gaap:GoodwillForeignCurrencyTranslationGainLoss", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R64": { "firstAnchor": { "ancestors": [ "us-gaap:GoodwillImpairmentLoss", "p", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:GoodwillImpairmentLoss", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40902 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Impairment of Goodwill (Details)", "menuCat": "Details", "order": "64", "role": "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsImpairmentOfGoodwillDetails", "shortName": "GOODWILL AND OTHER INTANGIBLE ASSETS - Impairment of Goodwill (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "lang": null, "name": "us-gaap:GoodwillGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R65": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "cdre:ScheduleOfFiniteLivedAndIndefiniteLivedIntangibleAssetsByMajorClassTableTextBlock", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40903 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Summary of intangible assets (Details)", "menuCat": "Details", "order": "65", "role": "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails", "shortName": "GOODWILL AND OTHER INTANGIBLE ASSETS - Summary of intangible assets (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "cdre:ScheduleOfFiniteLivedAndIndefiniteLivedIntangibleAssetsByMajorClassTableTextBlock", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R66": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AmortizationOfIntangibleAssets", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40904 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Additional information (Details)", "menuCat": "Details", "order": "66", "role": "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAdditionalInformationDetails", "shortName": "GOODWILL AND OTHER INTANGIBLE ASSETS - Additional information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AmortizationOfIntangibleAssets", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R67": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "40905 - Disclosure - GOODWILL AND OTHER INTANGIBLE ASSETS - Amortization expense for definite lived intangible assets (Details)", "menuCat": "Details", "order": "67", "role": "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails", "shortName": "GOODWILL AND OTHER INTANGIBLE ASSETS - Amortization expense for definite lived intangible assets (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R68": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "cdre:AccruedLiabilitiesCurrentTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "cdre:AccruedExpensesCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41001 - Disclosure - ACCRUED LIABILITIES (Details)", "menuCat": "Details", "order": "68", "role": "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails", "shortName": "ACCRUED LIABILITIES (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock", "cdre:AccruedLiabilitiesCurrentTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "cdre:AccruedExpensesCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R69": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ShortTermBorrowings", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41101 - Disclosure - DEBT - Schedule of company's debt (Details)", "menuCat": "Details", "order": "69", "role": "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails", "shortName": "DEBT - Schedule of company's debt (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "lang": null, "name": "us-gaap:DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_EGvWP9jK0Eq93VlIfooT-Q", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StockholdersEquity", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00400 - Statement - Consolidated Statements of Shareholders Equity", "menuCat": "Statements", "order": "7", "role": "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity", "shortName": "Consolidated Statements of Shareholders Equity", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2020_us-gaap_StatementEquityComponentsAxis_us-gaap_CommonStockMember_EGvWP9jK0Eq93VlIfooT-Q", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StockholdersEquity", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R70": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41102 - Disclosure - DEBT - Summary of aggregate principal payment of long-term debt (Details)", "menuCat": "Details", "order": "70", "role": "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails", "shortName": "DEBT - Summary of aggregate principal payment of long-term debt (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R71": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DebtInstrumentCarryingAmount", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41103 - Disclosure - DEBT - New Credit Agreement (Details)", "menuCat": "Details", "order": "71", "role": "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails", "shortName": "DEBT - New Credit Agreement (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_8_20_2021_To_8_20_2021_us-gaap_DebtInstrumentAxis_cdre_NewCreditAgreementAugust2021Member_nmGolRyc30GTIyoMSMR0sw", "decimals": "2", "lang": null, "name": "cdre:DebtInstrumentFixedChargeCoverageRatioThreshold", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_5SG8_7Vv40GtNrmA4oWz-g", "xsiNil": "false" } }, "R72": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_cdre_CanadianCreditFacilityMember_u5cvmdD5k0msM_qrjxbVxA", "decimals": "5", "first": true, "lang": null, "name": "us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_5SG8_7Vv40GtNrmA4oWz-g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41104 - Disclosure - DEBT - Canadian Credit Facility (Details)", "menuCat": "Details", "order": "72", "role": "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "shortName": "DEBT - Canadian Credit Facility (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_srt_RangeAxis_srt_MinimumMember_us-gaap_DebtInstrumentAxis_cdre_CanadianCreditFacilityMember_u5cvmdD5k0msM_qrjxbVxA", "decimals": "5", "first": true, "lang": null, "name": "us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_5SG8_7Vv40GtNrmA4oWz-g", "xsiNil": "false" } }, "R73": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ShortTermBorrowings", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41105 - Disclosure - DEBT - Short-Term Debt (Details)", "menuCat": "Details", "order": "73", "role": "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails", "shortName": "DEBT - Short-Term Debt (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_7_31_2021_us-gaap_LineOfCreditFacilityAxis_cdre_AonPremiumFinanceMember_us-gaap_ShortTermDebtTypeAxis_us-gaap_LoansPayableMember_sr2z_770Lk6l8cxLhvlfUw", "decimals": "-3", "lang": null, "name": "us-gaap:DebtInstrumentFaceAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R74": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDebtTableTextBlock", "us-gaap:DebtDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DebtInstrumentCarryingAmount", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41106 - Disclosure - DEBT - Fair Value of Debt (Details)", "menuCat": "Details", "order": "74", "role": "http://www.cadre-holdings.com/role/DisclosureDebtFairValueOfDebtDetails", "shortName": "DEBT - Fair Value of Debt (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_us-gaap_LongtermDebtTypeAxis_cdre_TermLoanMember_FWRsguGQqkWvhAFrWh2p9w", "decimals": "-3", "lang": null, "name": "us-gaap:DebtInstrumentFairValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R75": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "cdre:ScheduleOfInterestRateSwapsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_JgmkjphIC0enHoMOvV_sjg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DebtInstrumentMaturityDateRangeStart1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41107 - Disclosure - DEBT - Schedule of interest rate swaps (Details)", "menuCat": "Details", "order": "75", "role": "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfInterestRateSwapsDetails", "shortName": "DEBT - Schedule of interest rate swaps (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "cdre:ScheduleOfInterestRateSwapsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_us-gaap_DerivativeInstrumentRiskAxis_us-gaap_InterestRateSwapMember_JgmkjphIC0enHoMOvV_sjg", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DebtInstrumentMaturityDateRangeStart1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R76": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AociLossCashFlowHedgeCumulativeGainLossAfterTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41108 - Disclosure - DEBT - Schedule of fair value swap agreement (Details)", "menuCat": "Details", "order": "76", "role": "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails", "shortName": "DEBT - Schedule of fair value swap agreement (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:AociLossCashFlowHedgeCumulativeGainLossAfterTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R77": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_11_22_2021_ee1VAOA7vEmsY0TnzT9oQQ", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:DividendsPayableAmountPerShare", "reportCount": 1, "unique": true, "unitRef": "Unit_Divide_USD_shares_-5OxsgUIdE6HGg-iflrskw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41201 - Disclosure - SHAREHOLDERS EQUITY (Details)", "menuCat": "Details", "order": "77", "role": "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails", "shortName": "SHAREHOLDERS EQUITY (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_11_22_2021_ee1VAOA7vEmsY0TnzT9oQQ", "decimals": "2", "first": true, "lang": null, "name": "us-gaap:DividendsPayableAmountPerShare", "reportCount": 1, "unique": true, "unitRef": "Unit_Divide_USD_shares_-5OxsgUIdE6HGg-iflrskw", "xsiNil": "false" } }, "R78": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "reportCount": 1, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41301 - Disclosure - STOCK-BASED COMPENSATION - Executive Compensation Plan (Details)", "menuCat": "Details", "order": "78", "role": "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails", "shortName": "STOCK-BASED COMPENSATION - Executive Compensation Plan (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_us-gaap_PlanNameAxis_cdre_TwoThousandTwentyOnePhantomRestrictedSharePlanMember_rh0DiGBaVkyprfXNUhcI_w", "decimals": "-3", "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R79": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "reportCount": 1, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41302 - Disclosure - STOCK-BASED COMPENSATION - Summary of phantom restricted share plan, changes in outstanding options and restricted stock awards (Details)", "menuCat": "Details", "order": "79", "role": "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails", "shortName": "STOCK-BASED COMPENSATION - Summary of phantom restricted share plan, changes in outstanding options and restricted stock awards (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2021_us-gaap_AwardTypeAxis_us-gaap_RestrictedStockMember_oIY8s9o_aEO1Pn8f_hX85A", "decimals": "INF", "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_j9v87a7EnUuQ0-boL4pX_Q", "xsiNil": "false" } }, "R8": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10101 - Disclosure - SIGNIFICANT ACCOUNTING POLICIES", "menuCat": "Notes", "order": "8", "role": "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPolicies", "shortName": "SIGNIFICANT ACCOUNTING POLICIES", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R80": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "reportCount": 1, "unitRef": "Unit_Standard_shares_j9v87a7EnUuQ0-boL4pX_Q", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41303 - Disclosure - STOCK-BASED COMPENSATION - Stock Incentive Plan (Details)", "menuCat": "Details", "order": "80", "role": "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "shortName": "STOCK-BASED COMPENSATION - Stock Incentive Plan (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_11_4_2021_vhS3myms0ECmWEC6mnoL8w", "decimals": "2", "lang": null, "name": "cdre:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsFairMarketValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Divide_USD_shares_-5OxsgUIdE6HGg-iflrskw", "xsiNil": "false" } }, "R81": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "reportCount": 1, "unitRef": "Unit_Standard_shares_j9v87a7EnUuQ0-boL4pX_Q", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41304 - Disclosure - STOCK-BASED COMPENSATION - Stock option (Details)", "menuCat": "Details", "order": "81", "role": "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails", "shortName": "STOCK-BASED COMPENSATION - Stock option (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "INF", "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_shares_j9v87a7EnUuQ0-boL4pX_Q", "xsiNil": "false" } }, "R82": { "firstAnchor": { "ancestors": [ "p", "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41401 - Disclosure - COMPENSATION AND DEFINED CONTRIBUTION PLANS (Details)", "menuCat": "Details", "order": "82", "role": "http://www.cadre-holdings.com/role/DisclosureCompensationAndDefinedContributionPlansDetails", "shortName": "COMPENSATION AND DEFINED CONTRIBUTION PLANS (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R83": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_9_1_2021_To_9_30_2021_dlaHP7dFAU6cpvtsltZ4vA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LossContingencyDamagesAwardedValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41501 - Disclosure - COMMITMENTS AND CONTINGENCIES - Legal Proceedings (Details)", "menuCat": "Details", "order": "83", "role": "http://www.cadre-holdings.com/role/DisclosureCommitmentsAndContingenciesLegalProceedingsDetails", "shortName": "COMMITMENTS AND CONTINGENCIES - Legal Proceedings (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_9_1_2021_To_9_30_2021_dlaHP7dFAU6cpvtsltZ4vA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LossContingencyDamagesAwardedValue", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R84": { "firstAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperations", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41601 - Disclosure - INCOME TAXES - Consolidated income from continuing operations before provision for income taxes (Details)", "menuCat": "Details", "order": "84", "role": "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesConsolidatedIncomeFromContinuingOperationsBeforeProvisionForIncomeTaxesDetails", "shortName": "INCOME TAXES - Consolidated income from continuing operations before provision for income taxes (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:StateAndLocalIncomeTaxExpenseBenefitContinuingOperations", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R85": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CurrentFederalTaxExpenseBenefit", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41602 - Disclosure - INCOME TAXES - Benefit for income taxes (Details)", "menuCat": "Details", "order": "85", "role": "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails", "shortName": "INCOME TAXES - Benefit for income taxes (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:CurrentFederalTaxExpenseBenefit", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R86": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "3", "first": true, "lang": null, "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_5SG8_7Vv40GtNrmA4oWz-g", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41603 - Disclosure - INCOME TAXES - Reconciliation of the statutory federal income tax rate to the effective rate reported in the Company's consolidated financial statements (Details)", "menuCat": "Details", "order": "86", "role": "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfStatutoryFederalIncomeTaxRateToEffectiveRateReportedInCompanySConsolidatedFinancialStatementsDetails", "shortName": "INCOME TAXES - Reconciliation of the statutory federal income tax rate to the effective rate reported in the Company's consolidated financial statements (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "3", "first": true, "lang": null, "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_pure_5SG8_7Vv40GtNrmA4oWz-g", "xsiNil": "false" } }, "R87": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwards", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41604 - Disclosure - INCOME TAXES - Deferred Income taxes (Details)", "menuCat": "Details", "order": "87", "role": "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails", "shortName": "INCOME TAXES - Deferred Income taxes (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsOperatingLossCarryforwards", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R88": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2021_O7TiK-zn9Uq9BqtW_NyJfA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:UnrecognizedTaxBenefits", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41605 - Disclosure - INCOME TAXES - Reconciliation of Unrecognized Tax Benefits (Details)", "menuCat": "Details", "order": "88", "role": "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfUnrecognizedTaxBenefitsDetails", "shortName": "INCOME TAXES - Reconciliation of Unrecognized Tax Benefits (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2020_djdMc011rE2h3N-TgxV3AQ", "decimals": "-3", "lang": null, "name": "us-gaap:UnrecognizedTaxBenefits", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R89": { "firstAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41606 - Disclosure - INCOME TAXES - Operating loss Carryforwards (Details)", "menuCat": "Details", "order": "89", "role": "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesOperatingLossCarryforwardsDetails", "shortName": "INCOME TAXES - Operating loss Carryforwards (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "10201 - Disclosure - ACQUISITIONS", "menuCat": "Notes", "order": "9", "role": "http://www.cadre-holdings.com/role/DisclosureAcquisitions", "shortName": "ACQUISITIONS", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:BusinessCombinationDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R90": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeaseRightOfUseAsset", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41701 - Disclosure - LEASES - Schedule of operating assets and liabilities (Details)", "menuCat": "Details", "order": "90", "role": "http://www.cadre-holdings.com/role/DisclosureLeasesScheduleOfOperatingAssetsAndLiabilitiesDetails", "shortName": "LEASES - Schedule of operating assets and liabilities (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R91": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "cdre:FixedOperatingLeaseCosts", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41702 - Disclosure - LEASES - Components of lease expense (Details)", "menuCat": "Details", "order": "91", "role": "http://www.cadre-holdings.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails", "shortName": "LEASES - Components of lease expense (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "cdre:FixedOperatingLeaseCosts", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R92": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "cdre:ScheduleOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeasePayments", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41703 - Disclosure - LEASES - Weighted average remaining lease term and discount rate (Details)", "menuCat": "Details", "order": "92", "role": "http://www.cadre-holdings.com/role/DisclosureLeasesWeightedAverageRemainingLeaseTermAndDiscountRateDetails", "shortName": "LEASES - Weighted average remaining lease term and discount rate (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "ix:continuation", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": null, "lang": "en-US", "name": "us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R93": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41704 - Disclosure - LEASES - Future minimum lease payments under operating leases (Details)", "menuCat": "Details", "order": "93", "role": "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails", "shortName": "LEASES - Future minimum lease payments under operating leases (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R94": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41705 - Disclosure - LEASES - Future minimum lease payments under non-cancelable operating leases (Details)", "menuCat": "Details", "order": "94", "role": "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderNonCancelableOperatingLeasesDetails", "shortName": "LEASES - Future minimum lease payments under non-cancelable operating leases (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "As_Of_12_31_2022_ywpwCy1Fi0CqYiCIaBfCqQ", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R95": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "cdre:ScheduleOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:OperatingLeasePayments", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41706 - Disclosure - LEASES - Supplemental cash flow information related to leases (Details)", "menuCat": "Details", "order": "95", "role": "http://www.cadre-holdings.com/role/DisclosureLeasesSupplementalCashFlowInformationRelatedToLeasesDetails", "shortName": "LEASES - Supplemental cash flow information related to leases (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R96": { "firstAnchor": { "ancestors": [ "p", "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "cdre:RelatedPartyTransactionRentExpense", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41801 - Disclosure - RELATED PARTY TRANSACTIONS (Details)", "menuCat": "Details", "order": "96", "role": "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails", "shortName": "RELATED PARTY TRANSACTIONS (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "cdre:RelatedPartyTransactionRentExpense", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R97": { "firstAnchor": { "ancestors": [ "p", "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "cdre:RestructuringChargesBenefits", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "41901 - Disclosure - RESTRUCTURING - Restructuring Expenses (Details)", "menuCat": "Details", "order": "97", "role": "http://www.cadre-holdings.com/role/DisclosureRestructuringRestructuringExpensesDetails", "shortName": "RESTRUCTURING - Restructuring Expenses (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "cdre:RestructuringChargesBenefits", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } }, "R98": { "firstAnchor": { "ancestors": [ "p", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:NumberOfReportableSegments", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_segment_9wXu6N7PqUKoZoXvmuQGSA", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "42001 - Disclosure - SEGMENT DATA (Details)", "menuCat": "Details", "order": "98", "role": "http://www.cadre-holdings.com/role/DisclosureSegmentDataDetails", "shortName": "SEGMENT DATA (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "us-gaap:SegmentReportingDisclosureTextBlock", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:NumberOfReportableSegments", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_segment_9wXu6N7PqUKoZoXvmuQGSA", "xsiNil": "false" } }, "R99": { "firstAnchor": { "ancestors": [ "p", "td", "tr", "table", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_JGiV4rX9gUao5j4KAI0lzA", "decimals": "-3", "first": true, "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "42002 - Disclosure - SEGMENT DATA - asset information or operating expenses by segment (Details)", "menuCat": "Details", "order": "99", "role": "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails", "shortName": "SEGMENT DATA - asset information or operating expenses by segment (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "p", "td", "tr", "table", "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock", "ix:continuation", "div", "div", "body", "html" ], "baseRef": "cdre-20221231x10k.htm", "contextRef": "Duration_1_1_2022_To_12_31_2022_srt_ConsolidationItemsAxis_us-gaap_MaterialReconcilingItemsMember_CL4KAL00w0qDPA0opf3uGw", "decimals": "-3", "lang": null, "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "reportCount": 1, "unique": true, "unitRef": "Unit_Standard_USD_V-AnC8PIHk63vOflmSc8yw", "xsiNil": "false" } } }, "segmentCount": 76, "tag": { "cdre_AccountsPayableBookCashOverdrafts": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the information pertaining to accounts payable, book cash overdrafts.", "label": "Accounts Payable, Book Cash Overdrafts", "terseLabel": "Accounts payable, book cash overdrafts" } } }, "localname": "AccountsPayableBookCashOverdrafts", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "cdre_AccountsPayablePolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The entire disclosure about accounts payable .", "label": "Accounts Payable [Policy Text Block]", "terseLabel": "Accounts Payable" } } }, "localname": "AccountsPayablePolicyTextBlock", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "cdre_AccruedExpensesCurrent": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of changes in accrued expenses, classified as current.", "label": "Accrued Expenses, Current", "terseLabel": "Accrued expenses" } } }, "localname": "AccruedExpensesCurrent", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "cdre_AccruedLiabilitiesCurrentTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The entire disclosure on current accrued liabilities.", "label": "Accrued Liabilities Current [Text Block]", "terseLabel": "ACCRUED LIABILITIES" } } }, "localname": "AccruedLiabilitiesCurrentTextBlock", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilities" ], "xbrltype": "textBlockItemType" }, "cdre_AfcoCreditCorporationMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the information pertaining to AFCO credit corporation.", "label": "AFCO Credit Corporation [Member]", "terseLabel": "AFCO Credit Corporation" } } }, "localname": "AfcoCreditCorporationMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "domainItemType" }, "cdre_AmortizationOfInventory": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 14.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization expense for inventory.", "label": "Amortization of Inventory", "terseLabel": "Amortization of inventory step-up" } } }, "localname": "AmortizationOfInventory", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "cdre_AonPremiumFinanceMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to Aon Premium Finance.", "label": "Aon Premium Finance" } } }, "localname": "AonPremiumFinanceMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "domainItemType" }, "cdre_AssetsHeldForSalePolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The entire disclosure about assets held for sale.", "label": "Assets Held For Sale [Policy Text Block]", "terseLabel": "Assets Held for Sale" } } }, "localname": "AssetsHeldForSalePolicyTextBlock", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "cdre_BusinessCombinationAcquisitionRelatedCostsAggregate": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The total business acquisition-related costs for the acquisition.", "label": "Business Combination, Acquisition Related Costs, Aggregate", "terseLabel": "Total acquisition-related costs" } } }, "localname": "BusinessCombinationAcquisitionRelatedCostsAggregate", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails" ], "xbrltype": "monetaryItemType" }, "cdre_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedLiabilities": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 3.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of accrued liabilities assumed at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Accrued Liabilities", "terseLabel": "Accrued liabilities" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAccruedLiabilities", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "cdre_CanadianCreditFacilityMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the Canadian Credit Facility.", "label": "Canadian Credit Facility" } } }, "localname": "CanadianCreditFacilityMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails" ], "xbrltype": "domainItemType" }, "cdre_CashBasedExecutiveCompensationPlanGrantDateFairValueCommonStock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The grant date fair value per share of common stock of all vested and unvested units under the cash-based executive compensation plan.", "label": "Cash-Based Executive Compensation Plan, Grant Date Fair Value, Common Stock", "terseLabel": "Grant date fair value per share of common stock of all vested and unvested units under the cash-based executive compensation plan" } } }, "localname": "CashBasedExecutiveCompensationPlanGrantDateFairValueCommonStock", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails" ], "xbrltype": "perShareItemType" }, "cdre_CashBasedExecutiveCompensationPlanNumberOfAwardsExpectedToVest": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of awards expected to vest under the cash-based executive compensation plan.", "label": "Cash-Based Executive Compensation Plan, Number of Awards, Expected to Vest", "terseLabel": "Number of units expected to vest under cash-based executive compensation plan" } } }, "localname": "CashBasedExecutiveCompensationPlanNumberOfAwardsExpectedToVest", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails" ], "xbrltype": "sharesItemType" }, "cdre_CashBasedExecutiveCompensationPlanNumberOfAwardsGranted": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of awards granted under cash-based executive compensation plan.", "label": "Cash-Based Executive Compensation Plan, Number of Awards, Granted", "terseLabel": "Number of awards granted under cash-based executive compensation plan" } } }, "localname": "CashBasedExecutiveCompensationPlanNumberOfAwardsGranted", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureCompensationAndDefinedContributionPlansDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails" ], "xbrltype": "sharesItemType" }, "cdre_CashBasedExecutiveCompensationPlanNumberOfAwardsUnvested": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of unvested awards under the cash-based executive compensation plan.", "label": "Cash-Based Executive Compensation Plan, Number of Awards, Unvested", "terseLabel": "Number of unvested units under cash-based executive compensation plan" } } }, "localname": "CashBasedExecutiveCompensationPlanNumberOfAwardsUnvested", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails" ], "xbrltype": "sharesItemType" }, "cdre_CashBasedExecutiveCompensationPlanUnrecognizedCompensationExpense": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost not yet recognized for nonvested award under the cash-based executive compensation plan.", "label": "Cash-Based Executive Compensation Plan, Unrecognized Compensation Expense", "terseLabel": "Unrecognized compensation under cash-based executive compensation plan" } } }, "localname": "CashBasedExecutiveCompensationPlanUnrecognizedCompensationExpense", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails" ], "xbrltype": "monetaryItemType" }, "cdre_CashBasedLongTermIncentivePlanCompensationExpense": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Compensation expense related to the cash-based long-term incentive plan.", "label": "Cash-Based Long-Term Incentive Plan, Compensation Expense", "terseLabel": "Compensation expense related to the cash-based long-term incentive plan" } } }, "localname": "CashBasedLongTermIncentivePlanCompensationExpense", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureCompensationAndDefinedContributionPlansDetails" ], "xbrltype": "monetaryItemType" }, "cdre_CashBasedLongTermIncentivePlanVestingPeriod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The vesting period for awards granted under the cash-based long-term incentive plan.", "label": "Cash-Based Long-Term Incentive Plan, Vesting Period", "terseLabel": "Vesting period for awards granted under the cash-based long-term incentive plan" } } }, "localname": "CashBasedLongTermIncentivePlanVestingPeriod", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureCompensationAndDefinedContributionPlansDetails" ], "xbrltype": "durationItemType" }, "cdre_CommercialMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to commercial.", "label": "Commercial" } } }, "localname": "CommercialMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionNetSalesByChannelAndGeographyDetails" ], "xbrltype": "domainItemType" }, "cdre_CurrentPortionOfTermLoanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The represent information pertaining to current portion of term loan member.", "label": "Current portion of term loan" } } }, "localname": "CurrentPortionOfTermLoanMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails" ], "xbrltype": "domainItemType" }, "cdre_CyalumeAcquisitionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the member information pertaining to Cyalume Acquisition.", "label": "Cyalume" } } }, "localname": "CyalumeAcquisitionMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsTables", "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails" ], "xbrltype": "domainItemType" }, "cdre_DaventryUkFacilityMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to a facility located in Daventry, UK.", "label": "Daventry, UK Facility" } } }, "localname": "DaventryUkFacilityMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails" ], "xbrltype": "domainItemType" }, "cdre_DebtInstrumentFixedChargeCoverageRatioThreshold": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the minimum fixed charge coverage ratio required by a loan security agreement debt covenant.", "label": "Debt Instrument, Fixed Charge Coverage Ratio Threshold", "terseLabel": "Minimum fixed charge coverage ratio" } } }, "localname": "DebtInstrumentFixedChargeCoverageRatioThreshold", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "pureItemType" }, "cdre_DebtInstrumentIncreaseInTotalNetLeverageRatioDueToMajorAcquisitions": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the increase in total net leverage ratio required by a loan security agreement debt covenant due to material acquisitions.", "label": "Debt Instrument, Increase In Total Net Leverage Ratio Due To Major Acquisitions", "terseLabel": "Increase in total net leverage ratio" } } }, "localname": "DebtInstrumentIncreaseInTotalNetLeverageRatioDueToMajorAcquisitions", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "pureItemType" }, "cdre_DebtInstrumentPercentageOfUpfrontFee": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage of Of upfront fee for funds borrowed, under the debt agreement.", "label": "Debt Instrument, Percentage Of Upfront Fee", "terseLabel": "Upfront Fee" } } }, "localname": "DebtInstrumentPercentageOfUpfrontFee", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails" ], "xbrltype": "percentItemType" }, "cdre_DebtInstrumentTotalNetLeverageRatio": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the total net leverage ratio required by a loan security agreement debt covenant.", "label": "Debt Instrument, Total Net Leverage Ratio", "terseLabel": "Total net leverage ratio" } } }, "localname": "DebtInstrumentTotalNetLeverageRatio", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "pureItemType" }, "cdre_DeferredTaxLiabilitiesNet": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.", "label": "Deferred Tax Liabilities Net", "terseLabel": "Deferred tax liabilities" } } }, "localname": "DeferredTaxLiabilitiesNet", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "cdre_DistributionServicesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Distribution assistance, including, but not limited to, marketing and selling fund shares, advertising, printing and mailing of prospectus and sale literature to investor.", "label": "Distribution" } } }, "localname": "DistributionServicesMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails", "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails" ], "xbrltype": "domainItemType" }, "cdre_EffectiveIncomeTaxRateReconciliationReserveForUncertainTaxPositions": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Effective income tax rate reconciliation reserve for uncertain tax positions.", "label": "Effective Income Tax Rate Reconciliation Reserve For Uncertain Tax Positions", "terseLabel": "Reserve for uncertain tax positions" } } }, "localname": "EffectiveIncomeTaxRateReconciliationReserveForUncertainTaxPositions", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfStatutoryFederalIncomeTaxRateToEffectiveRateReportedInCompanySConsolidatedFinancialStatementsDetails" ], "xbrltype": "percentItemType" }, "cdre_EmergingGrowthCompanyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy pertaining to Emerging Growth Company.", "label": "Emerging Growth Company [Policy Text Block]", "terseLabel": "Emerging Growth Company" } } }, "localname": "EmergingGrowthCompanyPolicyTextBlock", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "cdre_ExecutiveCompensationPlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the executive compensation plan.", "label": "Executive Compensation Plan" } } }, "localname": "ExecutiveCompensationPlanMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails" ], "xbrltype": "domainItemType" }, "cdre_FairValueAssetsAndLiabilitiesTransfersBetweenFairValueMeasurementLevelsAmount": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of transfers of assets and liabilities measured on a recurring between fair value measurement levels.", "label": "Fair Value Assets and Liabilities Transfers Between Fair Value Measurement Levels Amount", "terseLabel": "Transfers between fair value measurement levels, amount" } } }, "localname": "FairValueAssetsAndLiabilitiesTransfersBetweenFairValueMeasurementLevelsAmount", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsTransfersOfAssetsOrLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "cdre_FiniteLivedAndIndefiniteLivedIntangibleAssetsByMajorClassLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Finite Lived And Indefinite Lived Intangible Assets By Major Class [Line Items]", "terseLabel": "Goodwill and Other Intangible Assets" } } }, "localname": "FiniteLivedAndIndefiniteLivedIntangibleAssetsByMajorClassLineItems", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "cdre_FiniteLivedAndIndefiniteLivedIntangibleAssetsByMajorClassTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Finite Lived And Indefinite Lived Intangible Assets By Major Class [Table]" } } }, "localname": "FiniteLivedAndIndefiniteLivedIntangibleAssetsByMajorClassTable", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "cdre_FixedOperatingLeaseCosts": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails": { "order": 1.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of fixed operating lease costs.", "label": "Fixed Operating Lease Costs", "terseLabel": "Fixed operating lease costs" } } }, "localname": "FixedOperatingLeaseCosts", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails" ], "xbrltype": "monetaryItemType" }, "cdre_InsurancePremiumFinancingMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The represent information pertaining to insurance premium financing member.", "label": "Insurance premium financing" } } }, "localname": "InsurancePremiumFinancingMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails" ], "xbrltype": "domainItemType" }, "cdre_InternationalMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to International.", "label": "International" } } }, "localname": "InternationalMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionNetSalesByChannelAndGeographyDetails" ], "xbrltype": "domainItemType" }, "cdre_IpfsCorporationMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to IPFS Corporation.", "label": "IPFS Corporation" } } }, "localname": "IpfsCorporationMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "domainItemType" }, "cdre_KandersCompanyIncMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the information about Kanders & Company, Inc.", "label": "Kanders & Company, Inc" } } }, "localname": "KandersCompanyIncMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails", "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "domainItemType" }, "cdre_LongTermDebtMaturitiesRepaymentsOfTotalPrincipalPayments": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price on total principal payments.", "label": "Long Term Debt Maturities Repayments Of Total Principal Payments", "totalLabel": "Total principal payments" } } }, "localname": "LongTermDebtMaturitiesRepaymentsOfTotalPrincipalPayments", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "cdre_NewCreditAgreementAugust2021Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to the \"New Credit Agreement\" entered into August 20, 2021.", "label": "New Credit Agreement" } } }, "localname": "NewCreditAgreementAugust2021Member", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "cdre_NumberOfConsecutiveTradingDaysFairMarketValueToBeMaintained": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of consecutive trading days for which fair market value of common stock to be maintained.", "label": "Number Of Consecutive Trading Days, Fair Market Value To Be Maintained" } } }, "localname": "NumberOfConsecutiveTradingDaysFairMarketValueToBeMaintained", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "durationItemType" }, "cdre_NumberOfEqualInstallments": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of equal installments.", "label": "Number OF Equal Installments", "terseLabel": "Number of equal installments" } } }, "localname": "NumberOfEqualInstallments", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureCompensationAndDefinedContributionPlansDetails" ], "xbrltype": "integerItemType" }, "cdre_NumberOfManufacturingPlants": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the number of manufacturing plants.", "label": "Number of Manufacturing Plants", "terseLabel": "Number of manufacturing plants" } } }, "localname": "NumberOfManufacturingPlants", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "integerItemType" }, "cdre_OtherLongTermDebtMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The represent information pertaining to other long term debt member.", "label": "Other." } } }, "localname": "OtherLongTermDebtMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails" ], "xbrltype": "domainItemType" }, "cdre_OtherMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to other sales channel.", "label": "Other" } } }, "localname": "OtherMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionNetSalesByChannelAndGeographyDetails" ], "xbrltype": "domainItemType" }, "cdre_OtherOperatingIncomes": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 4.0, "parentTag": "us-gaap_OperatingExpenses", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The total amount of other operating income, the components of which are not separately disclosed on the income statement, from items that are associated with the entity's normal revenue producing operation.", "label": "Other Operating Incomes", "negatedLabel": "Other general income" } } }, "localname": "OtherOperatingIncomes", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "cdre_PaymentsOfDeferredIssuanceCosts": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow for cost incurred directly with the deferred issuance of an equity security.", "label": "Payments of Deferred Issuance Costs", "negatedLabel": "Deferred offering costs" } } }, "localname": "PaymentsOfDeferredIssuanceCosts", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "cdre_PaymentsOfExtinguishmentOfDebt": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the cash outflow for extinguishment of debt.", "label": "Payments Of Extinguishment of Debt", "negatedLabel": "Payments on extinguishment of debt" } } }, "localname": "PaymentsOfExtinguishmentOfDebt", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "cdre_PercentageOfCommitmentFee": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage of commitment fee for funds borrowed, under the debt agreement.", "label": "Percentage of Commitment Fee", "terseLabel": "Commitment Fee" } } }, "localname": "PercentageOfCommitmentFee", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "percentItemType" }, "cdre_ProceedsFromInsurancePremiumFinancing": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Represents the cash inflow from insurance premium financing.", "label": "Proceeds From Insurance Premium Financing", "terseLabel": "Proceeds from insurance premium financing" } } }, "localname": "ProceedsFromInsurancePremiumFinancing", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "cdre_ProceedsFromIssuanceInitialPublicOfferingNet": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The net proceeds received from entity's first offering of stock to the public.", "label": "Proceeds from Issuance Initial Public Offering, Net", "terseLabel": "Net proceeds from the sale of shares" } } }, "localname": "ProceedsFromIssuanceInitialPublicOfferingNet", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "monetaryItemType" }, "cdre_ProductsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Article or substance produced by nature, labor or machinery.", "label": "Products" } } }, "localname": "ProductsMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails", "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails" ], "xbrltype": "domainItemType" }, "cdre_ProductsWarrantyAccrualPayments": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in the standard and extended product warranty accrual from payments made in cash or in kind to satisfy claims under the terms of the standard and extended product warranty.", "label": "Products Warranty Accrual Payments", "terseLabel": "Current period claims" } } }, "localname": "ProductsWarrantyAccrualPayments", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAccruedWarrantiesAndRelatedCostsDetails" ], "xbrltype": "monetaryItemType" }, "cdre_RadarLeatherDivisionS.r.lMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the member information pertaining to Radar Leather Division S.r.l.", "label": "Radar" } } }, "localname": "RadarLeatherDivisionS.r.lMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsTables", "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails" ], "xbrltype": "domainItemType" }, "cdre_ReimbursableDevelopmentContractMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This member stands for reimbursable development contract.", "label": "Reimbursable Development Contract [Member]", "terseLabel": "Reimbursable development contract" } } }, "localname": "ReimbursableDevelopmentContractMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "cdre_RelatedPartyTransactionFeesPaidForServicesRelatedToExecutionOfNewCreditAgreement": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The fees paid for services related to the execution of the New Credit Agreement, in a related party transaction.", "label": "Related Party Transaction, Fees Paid for Services Related to Execution of New Credit Agreement", "terseLabel": "Fees paid for services related to the execution of the New Credit Agreement" } } }, "localname": "RelatedPartyTransactionFeesPaidForServicesRelatedToExecutionOfNewCreditAgreement", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails" ], "xbrltype": "monetaryItemType" }, "cdre_RelatedPartyTransactionFeesPaidForServicesRelatedToInitialPublicOffering": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The fees paid for services related to the Company's initial public offering, in a related party transaction.", "label": "Related Party Transaction, Fees Paid for Services Related to Initial Public Offering", "terseLabel": "Fees paid for services related to the Company's initial public offering" } } }, "localname": "RelatedPartyTransactionFeesPaidForServicesRelatedToInitialPublicOffering", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails" ], "xbrltype": "monetaryItemType" }, "cdre_RelatedPartyTransactionRentExpense": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Rent expense, in a related party transaction.", "label": "Related Party Transaction, Rent Expense", "terseLabel": "Rent expense" } } }, "localname": "RelatedPartyTransactionRentExpense", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails" ], "xbrltype": "monetaryItemType" }, "cdre_RepaymentsOfInsurancePremiumFinancing": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the cash outflow from insurance premium financing.", "label": "Repayments of Insurance Premium Financing", "negatedLabel": "Principal payments on insurance premium financing" } } }, "localname": "RepaymentsOfInsurancePremiumFinancing", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "cdre_RestructuringChargesBenefits": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expenses (benefits) associated with exit or disposal activities pursuant to an authorized plan.", "label": "Restructuring Charges (Benefits)", "verboseLabel": "Restructuring Charges" } } }, "localname": "RestructuringChargesBenefits", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRestructuringRestructuringExpensesDetails" ], "xbrltype": "monetaryItemType" }, "cdre_ScenarioPeriodOneMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Each quarter starting with the quarter ended December 31, 2021.", "label": "Each quarter starting with the quarter ended December 31, 2021" } } }, "localname": "ScenarioPeriodOneMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "cdre_ScenarioPeriodThreeMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Period after the quarter ended September 30, 2022.", "label": "Period after the quarter ended September 30, 2022" } } }, "localname": "ScenarioPeriodThreeMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "cdre_ScenarioPeriodTwoMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "From the Quarter Ended December 31, 2021 until the quarter ended September 30, 2022.", "label": "From the Quarter Ended December 31, 2021 until the quarter ended September 30, 2022" } } }, "localname": "ScenarioPeriodTwoMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "cdre_ScheduleOfDebtLineItem": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "n/a", "label": "Schedule Of Debt [Line Item]", "terseLabel": "Debt" } } }, "localname": "ScheduleOfDebtLineItem", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails" ], "xbrltype": "stringItemType" }, "cdre_ScheduleOfDebtTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "n/a", "label": "Schedule Of Debt [Table]" } } }, "localname": "ScheduleOfDebtTable", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails" ], "xbrltype": "stringItemType" }, "cdre_ScheduleOfEstimatedFairValueOfSwapAgreement": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The tabular disclosure Estimated Fair Value Of Swap Agreement.", "label": "Schedule Of Estimated Fair Value Of Swap Agreement", "terseLabel": "Schedule of fair value swap agreement" } } }, "localname": "ScheduleOfEstimatedFairValueOfSwapAgreement", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtTables" ], "xbrltype": "textBlockItemType" }, "cdre_ScheduleOfFiniteLivedAndIndefiniteLivedIntangibleAssetsByMajorClassTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of amortizable finite-lived intangible assets, in total and by major class, including the gross carrying amount and accumulated amortization, and indefinite-lived intangible assets not subject to amortization, excluding goodwill, in total and by major class. A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.", "label": "Schedule Of Finite Lived And Indefinite Lived Intangible Assets By Major Class [Table Text Block]", "terseLabel": "Summary of intangible assets" } } }, "localname": "ScheduleOfFiniteLivedAndIndefiniteLivedIntangibleAssetsByMajorClassTableTextBlock", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsTables" ], "xbrltype": "textBlockItemType" }, "cdre_ScheduleOfInterestRateSwapsTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The tabular disclosure of interest rate swaps.", "label": "Schedule Of Interest Rate Swaps [Table Text Block]", "terseLabel": "Schedule of Interest rate swaps" } } }, "localname": "ScheduleOfInterestRateSwapsTableTextBlock", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtTables" ], "xbrltype": "textBlockItemType" }, "cdre_ScheduleOfPropertyAndEquipmentEstimatedUsefulLivesDepreciationInStraightLineMethod": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the schedule of property and equipment estimated useful lives depreciation in straight line method.", "label": "Schedule of Property And Equipment Estimated Useful Lives Depreciation In Straight Line Method", "terseLabel": "Summary of property and equipment" } } }, "localname": "ScheduleOfPropertyAndEquipmentEstimatedUsefulLivesDepreciationInStraightLineMethod", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesTables" ], "xbrltype": "textBlockItemType" }, "cdre_ScheduleOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure for supplemental cash flow information related to leases.", "label": "Schedule of Supplemental Cash Flow Information Related to Leases [Table Text Block]", "terseLabel": "Schedule of supplemental cash flow information related leases" } } }, "localname": "ScheduleOfSupplementalCashFlowInformationRelatedToLeasesTableTextBlock", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesTables" ], "xbrltype": "textBlockItemType" }, "cdre_SecondaryOfferingMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the information pertaining to Secondary Offering.", "label": "Secondary Offering" } } }, "localname": "SecondaryOfferingMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "domainItemType" }, "cdre_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpectedToVest": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, expected to vest if on or before specified date, the fair market value (as defined in the plan) of the Company's common stock shall have equaled or exceeded a specific price per share for twenty consecutive trading days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Expected to Vest", "terseLabel": "Number of shares expected to vest" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsExpectedToVest", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "sharesItemType" }, "cdre_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsFairMarketValue": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Fair market value of the common stock of the underlying asset relating to the share-based payment award.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Fair Market Value", "terseLabel": "Fair market price" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsFairMarketValue", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "perShareItemType" }, "cdre_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeitedWeightedAverageRemainingContractualTerm": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, forfeited, Weighted Average Remaining Contractual .", "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Forfeited Weighted Average Remaining Contractual Term", "terseLabel": "Forfeited (in Years)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeitedWeightedAverageRemainingContractualTerm", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "durationItemType" }, "cdre_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedWeightedAverageRemainingContractualTerm": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Granted, Weighted Average Remaining Contractual .", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Granted, Weighted Average Remaining Contractual Term", "terseLabel": "Granted (in Years)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantedWeightedAverageRemainingContractualTerm", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "durationItemType" }, "cdre_ShortTermLoanFacilityEnteredInJuly2021Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Borrowing supported by a written promise to pay an obligation, entered in July 2021.", "label": "Short-Term Loan Facility Entered In July 2021 [Member]", "terseLabel": "Short-Term Loan Facility Entered in July 2021" } } }, "localname": "ShortTermLoanFacilityEnteredInJuly2021Member", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "domainItemType" }, "cdre_ShortTermLoanFacilityEnteredInNovember2021Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Borrowing supported by a written promise to pay an obligation, entered in November 2021.", "label": "Short-Term Loan Facility Entered in November 2021 [Member]", "terseLabel": "Short-Term Loan Facility Entered in November 2021" } } }, "localname": "ShortTermLoanFacilityEnteredInNovember2021Member", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "domainItemType" }, "cdre_StockIncentivePlan2021Member": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the information pertaining to Stock Incentive Plan 2021.", "label": "Stock Incentive Plan 2021" } } }, "localname": "StockIncentivePlan2021Member", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "domainItemType" }, "cdre_StockSplitAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "No definition available.", "label": "Stock Split [Abstract]", "terseLabel": "Stock Split" } } }, "localname": "StockSplitAbstract", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "stringItemType" }, "cdre_StockSplitPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy pertaining to stock split.", "label": "Stock Split [Policy Text Block]", "terseLabel": "Stock Split" } } }, "localname": "StockSplitPolicyTextBlock", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "cdre_SwingLineLoansMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information pertaining to swing line loans.", "label": "Swing line loans" } } }, "localname": "SwingLineLoansMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "cdre_TermLoanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The represent information pertaining to term loan member.", "label": "Term loan" } } }, "localname": "TermLoanMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtFairValueOfDebtDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails" ], "xbrltype": "domainItemType" }, "cdre_TwoThousandTwentyOnePhantomRestrictedSharePlanMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents the information pertaining to 2021 Phantom Restricted Share Plan.", "label": "2021 Phantom Restricted Share Plan" } } }, "localname": "TwoThousandTwentyOnePhantomRestrictedSharePlanMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "domainItemType" }, "cdre_U.s.FederalAgenciesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to U.S. federal agencies.", "label": "U.S. federal agencies" } } }, "localname": "U.s.FederalAgenciesMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionNetSalesByChannelAndGeographyDetails" ], "xbrltype": "domainItemType" }, "cdre_U.s.stateAndLocalAgenciesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Represents information pertaining to U.S. state and local agencies.", "label": "U.S. state and local agencies" } } }, "localname": "U.s.stateAndLocalAgenciesMember", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionNetSalesByChannelAndGeographyDetails" ], "xbrltype": "domainItemType" }, "cdre_VariableOperatingLeaseCosts": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails": { "order": 2.0, "parentTag": "us-gaap_LeaseCost", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of variable operating lease costs.", "label": "Variable Operating Lease Costs", "terseLabel": "Variable operating lease costs" } } }, "localname": "VariableOperatingLeaseCosts", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails" ], "xbrltype": "monetaryItemType" }, "cdre_WeightedaverageremainingContractualLifeAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Definition not available.", "label": "Weighted Average Remaining Contractual Life [Abstract]", "terseLabel": "Weighted Average Remaining Contractual Life" } } }, "localname": "WeightedaverageremainingContractualLifeAbstract", "nsuri": "http://www.cadre-holdings.com/20221231", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "stringItemType" }, "country_US": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "United States" } } }, "localname": "US", "nsuri": "http://xbrl.sec.gov/country/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionIncludesAllDistributionSalesDetails" ], "xbrltype": "domainItemType" }, "dei_AmendmentFlag": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.", "label": "Amendment Flag" } } }, "localname": "AmendmentFlag", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_AuditorFirmId": { "auth_ref": [ "r818", "r819", "r820" ], "lang": { "en-us": { "role": { "documentation": "PCAOB issued Audit Firm Identifier", "label": "Auditor Firm ID" } } }, "localname": "AuditorFirmId", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "nonemptySequenceNumberItemType" }, "dei_AuditorLocation": { "auth_ref": [ "r818", "r819", "r820" ], "lang": { "en-us": { "role": { "label": "Auditor Location" } } }, "localname": "AuditorLocation", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "internationalNameItemType" }, "dei_AuditorName": { "auth_ref": [ "r818", "r819", "r820" ], "lang": { "en-us": { "role": { "label": "Auditor Name" } } }, "localname": "AuditorName", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "internationalNameItemType" }, "dei_CityAreaCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Area code of city", "label": "City Area Code" } } }, "localname": "CityAreaCode", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_CoverAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Cover page.", "label": "Document and Entity Information [Abstract]" } } }, "localname": "CoverAbstract", "nsuri": "http://xbrl.sec.gov/dei/2022", "xbrltype": "stringItemType" }, "dei_CurrentFiscalYearEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "End date of current fiscal year in the format --MM-DD.", "label": "Current Fiscal Year End Date" } } }, "localname": "CurrentFiscalYearEndDate", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "gMonthDayItemType" }, "dei_DocumentAnnualReport": { "auth_ref": [ "r818", "r819", "r820" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as an annual report.", "label": "Document Annual Report" } } }, "localname": "DocumentAnnualReport", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentFiscalPeriodFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.", "label": "Document Fiscal Period Focus" } } }, "localname": "DocumentFiscalPeriodFocus", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "fiscalPeriodItemType" }, "dei_DocumentFiscalYearFocus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.", "label": "Document Fiscal Year Focus" } } }, "localname": "DocumentFiscalYearFocus", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "gYearItemType" }, "dei_DocumentPeriodEndDate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.", "label": "Document Period End Date" } } }, "localname": "DocumentPeriodEndDate", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "dateItemType" }, "dei_DocumentTransitionReport": { "auth_ref": [ "r821" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true only for a form used as a transition report.", "label": "Document Transition Report" } } }, "localname": "DocumentTransitionReport", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_DocumentType": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.", "label": "Document Type" } } }, "localname": "DocumentType", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "submissionTypeItemType" }, "dei_EntityAddressAddressLine1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Address Line 1 such as Attn, Building Name, Street Name", "label": "Entity Address, Address Line One" } } }, "localname": "EntityAddressAddressLine1", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCityOrTown": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the City or Town", "label": "Entity Address, City or Town" } } }, "localname": "EntityAddressCityOrTown", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressPostalZipCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Code for the postal or zip code", "label": "Entity Address, Postal Zip Code" } } }, "localname": "EntityAddressPostalZipCode", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressStateOrProvince": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Name of the state or province.", "label": "Entity Address State Or Province" } } }, "localname": "EntityAddressStateOrProvince", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r816" ], "lang": { "en-us": { "role": { "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.", "label": "Entity Central Index Key" } } }, "localname": "EntityCentralIndexKey", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "centralIndexKeyItemType" }, "dei_EntityCommonStockSharesOutstanding": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.", "label": "Entity Common Stock, Shares Outstanding" } } }, "localname": "EntityCommonStockSharesOutstanding", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "sharesItemType" }, "dei_EntityCurrentReportingStatus": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Current Reporting Status" } } }, "localname": "EntityCurrentReportingStatus", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r816" ], "lang": { "en-us": { "role": { "documentation": "Indicate if registrant meets the emerging growth company criteria.", "label": "Entity Emerging Growth Company" } } }, "localname": "EntityEmergingGrowthCompany", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityExTransitionPeriod": { "auth_ref": [ "r824" ], "lang": { "en-us": { "role": { "documentation": "Indicate if an emerging growth company has elected not to use the extended transition period for complying with any new or revised financial accounting standards.", "label": "Entity Ex Transition Period" } } }, "localname": "EntityExTransitionPeriod", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityFileNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.", "label": "Entity File Number" } } }, "localname": "EntityFileNumber", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r816" ], "lang": { "en-us": { "role": { "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Filer Category" } } }, "localname": "EntityFilerCategory", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "filerCategoryItemType" }, "dei_EntityIncorporationStateCountryCode": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Two-character EDGAR code representing the state or country of incorporation.", "label": "Entity Incorporation, State or Country Code" } } }, "localname": "EntityIncorporationStateCountryCode", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r822" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).", "label": "Entity Interactive Data Current" } } }, "localname": "EntityInteractiveDataCurrent", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityPublicFloat": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.", "label": "Entity Public Float" } } }, "localname": "EntityPublicFloat", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "monetaryItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r816" ], "lang": { "en-us": { "role": { "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.", "label": "Entity Registrant Name" } } }, "localname": "EntityRegistrantName", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r816" ], "lang": { "en-us": { "role": { "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.", "label": "Entity Shell Company" } } }, "localname": "EntityShellCompany", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r816" ], "lang": { "en-us": { "role": { "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).", "label": "Entity Small Business" } } }, "localname": "EntitySmallBusiness", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_EntityTaxIdentificationNumber": { "auth_ref": [ "r816" ], "lang": { "en-us": { "role": { "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.", "label": "Entity Tax Identification Number" } } }, "localname": "EntityTaxIdentificationNumber", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "employerIdItemType" }, "dei_EntityVoluntaryFilers": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.", "label": "Entity Voluntary Filers" } } }, "localname": "EntityVoluntaryFilers", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_EntityWellKnownSeasonedIssuer": { "auth_ref": [ "r823" ], "lang": { "en-us": { "role": { "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.", "label": "Entity Well-known Seasoned Issuer" } } }, "localname": "EntityWellKnownSeasonedIssuer", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "yesNoItemType" }, "dei_IcfrAuditorAttestationFlag": { "auth_ref": [ "r818", "r819", "r820" ], "lang": { "en-us": { "role": { "label": "ICFR Auditor Attestation Flag" } } }, "localname": "IcfrAuditorAttestationFlag", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "booleanItemType" }, "dei_LocalPhoneNumber": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Local phone number for entity.", "label": "Local Phone Number" } } }, "localname": "LocalPhoneNumber", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "normalizedStringItemType" }, "dei_Security12bTitle": { "auth_ref": [ "r815" ], "lang": { "en-us": { "role": { "documentation": "Title of a 12(b) registered security.", "label": "Title of 12(b) Security" } } }, "localname": "Security12bTitle", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r817" ], "lang": { "en-us": { "role": { "documentation": "Name of the Exchange on which a security is registered.", "label": "Security Exchange Name" } } }, "localname": "SecurityExchangeName", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "edgarExchangeCodeItemType" }, "dei_TradingSymbol": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Trading symbol of an instrument as listed on an exchange.", "label": "Trading Symbol" } } }, "localname": "TradingSymbol", "nsuri": "http://xbrl.sec.gov/dei/2022", "presentation": [ "http://www.cadre-holdings.com/role/DocumentDocumentAndEntityInformation" ], "xbrltype": "tradingSymbolItemType" }, "srt_BoardOfDirectorsChairmanMember": { "auth_ref": [ "r847" ], "lang": { "en-us": { "role": { "label": "Warren Kanders" } } }, "localname": "BoardOfDirectorsChairmanMember", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails" ], "xbrltype": "domainItemType" }, "srt_ConsolidationItemsAxis": { "auth_ref": [ "r302", "r344", "r356", "r357", "r358", "r359", "r360", "r362", "r366", "r438", "r439", "r440", "r441", "r443", "r444", "r446", "r448", "r449", "r867", "r868" ], "lang": { "en-us": { "role": { "label": "Consolidation Items [Axis]" } } }, "localname": "ConsolidationItemsAxis", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails" ], "xbrltype": "stringItemType" }, "srt_ConsolidationItemsDomain": { "auth_ref": [ "r302", "r344", "r356", "r357", "r358", "r359", "r360", "r362", "r366", "r438", "r439", "r440", "r441", "r443", "r444", "r446", "r448", "r449", "r867", "r868" ], "lang": { "en-us": { "role": { "label": "Consolidation Items [Domain]" } } }, "localname": "ConsolidationItemsDomain", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails" ], "xbrltype": "domainItemType" }, "srt_MaximumMember": { "auth_ref": [ "r434", "r435", "r436", "r437", "r537", "r716", "r745", "r772", "r773", "r790", "r803", "r814", "r869", "r923", "r924", "r925", "r926", "r927", "r928" ], "lang": { "en-us": { "role": { "label": "Maximum" } } }, "localname": "MaximumMember", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "domainItemType" }, "srt_MinimumMember": { "auth_ref": [ "r434", "r435", "r436", "r437", "r537", "r716", "r745", "r772", "r773", "r790", "r803", "r814", "r869", "r923", "r924", "r925", "r926", "r927", "r928" ], "lang": { "en-us": { "role": { "label": "Minimum" } } }, "localname": "MinimumMember", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "domainItemType" }, "srt_RangeAxis": { "auth_ref": [ "r434", "r435", "r436", "r437", "r519", "r537", "r570", "r571", "r572", "r715", "r716", "r745", "r772", "r773", "r790", "r803", "r814", "r862", "r869", "r924", "r925", "r926", "r927", "r928" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Axis]" } } }, "localname": "RangeAxis", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "stringItemType" }, "srt_RangeMember": { "auth_ref": [ "r434", "r435", "r436", "r437", "r519", "r537", "r570", "r571", "r572", "r715", "r716", "r745", "r772", "r773", "r790", "r803", "r814", "r862", "r869", "r924", "r925", "r926", "r927", "r928" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]" } } }, "localname": "RangeMember", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "domainItemType" }, "srt_ScenarioUnspecifiedDomain": { "auth_ref": [ "r318", "r538", "r825", "r844" ], "lang": { "en-us": { "role": { "label": "Scenario [Domain]" } } }, "localname": "ScenarioUnspecifiedDomain", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "srt_SegmentGeographicalDomain": { "auth_ref": [ "r369", "r370", "r763", "r764", "r765", "r766", "r767", "r768", "r769", "r770", "r771", "r792", "r813", "r872" ], "lang": { "en-us": { "role": { "label": "Geographical [Domain]" } } }, "localname": "SegmentGeographicalDomain", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionIncludesAllDistributionSalesDetails" ], "xbrltype": "domainItemType" }, "srt_StatementGeographicalAxis": { "auth_ref": [ "r369", "r370", "r758", "r763", "r764", "r765", "r766", "r767", "r768", "r769", "r770", "r771", "r792", "r813", "r872" ], "lang": { "en-us": { "role": { "label": "Geographical [Axis]" } } }, "localname": "StatementGeographicalAxis", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionIncludesAllDistributionSalesDetails" ], "xbrltype": "stringItemType" }, "srt_StatementScenarioAxis": { "auth_ref": [ "r318", "r538", "r825", "r826", "r844" ], "lang": { "en-us": { "role": { "label": "Scenario [Axis]" } } }, "localname": "StatementScenarioAxis", "nsuri": "http://fasb.org/srt/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AccountingPoliciesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "SIGNIFICANT ACCOUNTING POLICIES" } } }, "localname": "AccountingPoliciesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_AccountingStandardsUpdate201602Member": { "auth_ref": [ "r683" ], "lang": { "en-us": { "role": { "documentation": "Accounting Standards Update 2016-02 Leases (Topic 842).", "label": "Accounting Standards Update 2016-02" } } }, "localname": "AccountingStandardsUpdate201602Member", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r31", "r812" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accounts Payable, Current", "terseLabel": "Accounts payable" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableNetCurrent": { "auth_ref": [ "r374", "r375" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts Receivable, after Allowance for Credit Loss, Current", "terseLabel": "Accounts receivable, net" } } }, "localname": "AccountsReceivableNetCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedIncomeTaxesCurrent": { "auth_ref": [ "r18", "r211", "r225" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations.", "label": "Accrued Income Taxes, Current", "terseLabel": "Income tax payable" } } }, "localname": "AccruedIncomeTaxesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrent": { "auth_ref": [ "r36" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accrued Liabilities, Current", "terseLabel": "Accrued liabilities", "totalLabel": "Total" } } }, "localname": "AccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "ACCRUED LIABILITIES" } } }, "localname": "AccruedLiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_AccruedLiabilitiesMember": { "auth_ref": [ "r36" ], "lang": { "en-us": { "role": { "documentation": "This item represents obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered.", "label": "Accrued liabilities" } } }, "localname": "AccruedLiabilitiesMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "auth_ref": [ "r112", "r255" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails": { "order": 2.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.", "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment", "negatedLabel": "Less accumulated depreciation" } } }, "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "auth_ref": [ "r48", "r49", "r50", "r261", "r741", "r753", "r757" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.", "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax", "terseLabel": "Accumulated other comprehensive income (loss)" } } }, "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "auth_ref": [ "r47", "r50", "r185", "r705", "r748", "r749", "r830", "r831", "r832", "r841", "r842", "r843" ], "lang": { "en-us": { "role": { "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners.", "label": "Accumulated Other Comprehensive Income (Loss)" } } }, "localname": "AccumulatedOtherComprehensiveIncomeMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Acquired Finite-Lived Intangible Assets [Line Items]", "terseLabel": "ACQUISITIONS" } } }, "localname": "AcquiredFiniteLivedIntangibleAssetsLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": { "auth_ref": [ "r98" ], "lang": { "en-us": { "role": { "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Acquired Finite-lived Intangible Assets, Weighted Average Useful Life", "terseLabel": "Average Useful Life" } } }, "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails" ], "xbrltype": "durationItemType" }, "us-gaap_AdditionalPaidInCapital": { "auth_ref": [ "r23", "r812" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.", "label": "Additional Paid in Capital", "terseLabel": "Additional paid-in capital" } } }, "localname": "AdditionalPaidInCapital", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalMember": { "auth_ref": [ "r579", "r580", "r581", "r841", "r842", "r843", "r915" ], "lang": { "en-us": { "role": { "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.", "label": "Additional Paid-In Capital" } } }, "localname": "AdditionalPaidInCapitalMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": { "auth_ref": [ "r243", "r244", "r245", "r246", "r247", "r306", "r307", "r308", "r309", "r318", "r381", "r382", "r385", "r386", "r387", "r388", "r389", "r390", "r579", "r580", "r581", "r608", "r609", "r610", "r611", "r624", "r625", "r626", "r638", "r639", "r640", "r641", "r642", "r643", "r644", "r645", "r646", "r647", "r648", "r649", "r659", "r660", "r661", "r662", "r663", "r664", "r665", "r666", "r678", "r679", "r684", "r685", "r686", "r687", "r700", "r701", "r702", "r703", "r704", "r705", "r720", "r721", "r722", "r746", "r747", "r748", "r749", "r750", "r751", "r752", "r753", "r754", "r755", "r756", "r757" ], "lang": { "en-us": { "role": { "documentation": "Information by amendment to accounting standards.", "label": "Accounting Standards Update [Axis]" } } }, "localname": "AdjustmentsForNewAccountingPronouncementsAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "auth_ref": [ "r154", "r155", "r541" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.", "label": "APIC, Share-based Payment Arrangement, Increase for Cost Recognition", "terseLabel": "Stock-based compensation" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "Adjustments to reconcile net income to net cash provided by operating activities:" } } }, "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AdvertisingCostsPolicyTextBlock": { "auth_ref": [ "r584" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for advertising cost.", "label": "Advertising Cost [Policy Text Block]", "terseLabel": "Advertising Expenses" } } }, "localname": "AdvertisingCostsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_AdvertisingExpense": { "auth_ref": [ "r585" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line.", "label": "Advertising Expense" } } }, "localname": "AdvertisingExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllocatedShareBasedCompensationExpense": { "auth_ref": [ "r574" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.", "label": "Share-based Payment Arrangement, Expense", "terseLabel": "Share based compensation expense" } } }, "localname": "AllocatedShareBasedCompensationExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivable": { "auth_ref": [ "r262", "r378", "r391", "r392", "r395" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable.", "label": "Accounts Receivable, Allowance for Credit Loss", "periodEndLabel": "Ending allowance for doubtful accounts", "periodStartLabel": "Beginning allowance for doubtful accounts" } } }, "localname": "AllowanceForDoubtfulAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableRollforward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNetDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": { "auth_ref": [ "r394" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.", "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff", "negatedLabel": "Write-offs" } } }, "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AmortizationOfFinancingCostsAndDiscounts": { "auth_ref": [ "r473", "r681", "r788", "r789", "r837" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 11.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization expense attributable to debt discount (premium) and debt issuance costs.", "label": "Amortization of Debt Issuance Costs and Discounts", "terseLabel": "Amortization of original issue discount and debt issue costs" } } }, "localname": "AmortizationOfFinancingCostsAndDiscounts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_AmortizationOfIntangibleAssets": { "auth_ref": [ "r73", "r96", "r104" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.", "label": "Amortization of Intangible Assets", "terseLabel": "Amortization expense" } } }, "localname": "AmortizationOfIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "auth_ref": [ "r331" ], "lang": { "en-us": { "role": { "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.", "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount", "terseLabel": "Anti-dilutive instruments excluded" } } }, "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_AociLossCashFlowHedgeCumulativeGainLossAfterTax": { "auth_ref": [ "r272" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after tax, of accumulated gain (loss) on derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness.", "label": "AOCI, Cash Flow Hedge, Cumulative Gain (Loss), after Tax", "terseLabel": "Cumulative gain, net of tax reflected in accumulated other comprehensive income (loss)" } } }, "localname": "AociLossCashFlowHedgeCumulativeGainLossAfterTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ArrangementsAndNonarrangementTransactionsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations.", "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Domain]" } } }, "localname": "ArrangementsAndNonarrangementTransactionsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Assets": { "auth_ref": [ "r209", "r224", "r259", "r297", "r352", "r358", "r364", "r384", "r438", "r439", "r441", "r442", "r443", "r445", "r447", "r449", "r450", "r629", "r633", "r658", "r812", "r867", "r868", "r921" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets", "totalLabel": "Total assets" } } }, "localname": "Assets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets [Abstract]", "terseLabel": "Assets" } } }, "localname": "AssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r251", "r267", "r297", "r384", "r438", "r439", "r441", "r442", "r443", "r445", "r447", "r449", "r450", "r629", "r633", "r658", "r812", "r867", "r868", "r921" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets, Current", "totalLabel": "Total current assets" } } }, "localname": "AssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets, Current [Abstract]", "terseLabel": "Current assets" } } }, "localname": "AssetsCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsFairValueDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Assets, Fair Value Disclosure [Abstract]", "terseLabel": "Assets:" } } }, "localname": "AssetsFairValueDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsHeldForSaleNotPartOfDisposalGroupCurrent": { "auth_ref": [ "r108", "r812" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 6.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of assets held-for-sale that are not part of a disposal group, expected to be sold within a year or the normal operating cycle, if longer.", "label": "Assets Held-for-sale, Not Part of Disposal Group, Current", "terseLabel": "Assets held for sale" } } }, "localname": "AssetsHeldForSaleNotPartOfDisposalGroupCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AwardTypeAxis": { "auth_ref": [ "r545", "r546", "r547", "r549", "r550", "r551", "r552", "r553", "r554", "r555", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r565", "r566", "r569", "r570", "r571", "r572", "r573" ], "lang": { "en-us": { "role": { "documentation": "Information by type of award under share-based payment arrangement.", "label": "Award Type [Axis]" } } }, "localname": "AwardTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables" ], "xbrltype": "stringItemType" }, "us-gaap_BalanceSheetLocationAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by location on balance sheet (statement of financial position).", "label": "Balance Sheet Location [Axis]" } } }, "localname": "BalanceSheetLocationAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BalanceSheetLocationDomain": { "auth_ref": [ "r190", "r193" ], "lang": { "en-us": { "role": { "documentation": "Location in the balance sheet (statement of financial position).", "label": "Balance Sheet Location [Domain]" } } }, "localname": "BalanceSheetLocationDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_BaseRateMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Minimum rate investor will accept.", "label": "Base Rate" } } }, "localname": "BaseRateMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).", "label": "Basis of Accounting, Policy [Policy Text Block]", "terseLabel": "Nature of Operations and Basis of Presentation" } } }, "localname": "BasisOfAccountingPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_BuildingAndBuildingImprovementsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Facility held for productive use including, but not limited to, office, production, storage and distribution facilities and any addition, improvement, or renovation to the structure, for example, but not limited to, interior masonry, interior flooring, electrical, and plumbing.", "label": "Building and improvements" } } }, "localname": "BuildingAndBuildingImprovementsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_BusinessAcquisitionAcquireeDomain": { "auth_ref": [ "r622", "r801", "r802" ], "lang": { "en-us": { "role": { "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree.", "label": "Business Acquisition, Acquiree [Domain]" } } }, "localname": "BusinessAcquisitionAcquireeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsTables", "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails" ], "xbrltype": "domainItemType" }, "us-gaap_BusinessAcquisitionAxis": { "auth_ref": [ "r168", "r169", "r622", "r801", "r802" ], "lang": { "en-us": { "role": { "documentation": "Information by business combination or series of individually immaterial business combinations.", "label": "Business Acquisition [Axis]" } } }, "localname": "BusinessAcquisitionAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsTables", "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessAcquisitionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Business Acquisition [Line Items]", "terseLabel": "ACQUISITIONS" } } }, "localname": "BusinessAcquisitionLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsTables" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessAcquisitionPercentageOfVotingInterestsAcquired": { "auth_ref": [ "r167" ], "lang": { "en-us": { "role": { "documentation": "Percentage of voting equity interests acquired at the acquisition date in the business combination.", "label": "Business Acquisition, Percentage of Voting Interests Acquired", "terseLabel": "Percentage acquired" } } }, "localname": "BusinessAcquisitionPercentageOfVotingInterestsAcquired", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails" ], "xbrltype": "percentItemType" }, "us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount": { "auth_ref": [ "r177" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of goodwill arising from a business combination that is expected to be deductible for tax purposes.", "label": "Business Acquisition, Goodwill, Expected Tax Deductible Amount", "terseLabel": "Goodwill, non-deductible for tax purposes" } } }, "localname": "BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationAcquisitionRelatedCosts": { "auth_ref": [ "r166" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.", "label": "Business Combination, Acquisition Related Costs", "terseLabel": "Acquisition-related costs incurred during the period" } } }, "localname": "BusinessCombinationAcquisitionRelatedCosts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationConsiderationTransferredAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, Period Increase (Decrease) [Abstract]", "terseLabel": "Total consideration, net of cash acquired:" } } }, "localname": "BusinessCombinationConsiderationTransferredAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationDisclosureTextBlock": { "auth_ref": [ "r180", "r623" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).", "label": "Business Combination Disclosure [Text Block]", "terseLabel": "ACQUISITIONS" } } }, "localname": "BusinessCombinationDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitions" ], "xbrltype": "textBlockItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets": { "auth_ref": [ "r171" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of assets acquired at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets", "terseLabel": "Total assets acquired", "totalLabel": "Total assets acquired" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther": { "auth_ref": [ "r171" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 4.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of other assets expected to be realized or consumed before one year or the normal operating cycle, if longer, acquired at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Other", "terseLabel": "Other current assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsOther", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets": { "auth_ref": [ "r171" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 3.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer, acquired at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Prepaid Expense and Other Assets", "terseLabel": "Prepaid expenses" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": { "auth_ref": [ "r171" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables", "terseLabel": "Accounts receivable" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": { "auth_ref": [ "r171" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 1.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable", "terseLabel": "Accounts payable" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": { "auth_ref": [ "r171" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 2.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities", "terseLabel": "Deferred tax liabilities" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill": { "auth_ref": [ "r171" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 6.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of intangible assets, excluding goodwill, acquired at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill", "terseLabel": "Intangible assets" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory": { "auth_ref": [ "r170", "r171" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 2.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of inventory recognized as of the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Inventory", "terseLabel": "Inventories" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities": { "auth_ref": [ "r171" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 2.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities assumed at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Liabilities", "terseLabel": "Total liabilities assumed", "totalLabel": "Total liabilities assumed" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt": { "auth_ref": [ "r171" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 4.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of long-term debt due after one year or the normal operating cycle, if longer, assumed at the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Long-term Debt", "terseLabel": "Long-term debt", "verboseLabel": "Other long-term liabilities" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesLongTermDebt", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": { "auth_ref": [ "r170", "r171" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 5.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date.", "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment", "terseLabel": "Property and equipment" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": { "auth_ref": [ "r171" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.", "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net", "totalLabel": "Net assets acquired", "verboseLabel": "Net assets acquired" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net [Abstract]", "terseLabel": "Total purchase price consideration and preliminary fair value amounts recognized" } } }, "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNetAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails" ], "xbrltype": "stringItemType" }, "us-gaap_BusinessCombinationsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "ACQUISITIONS" } } }, "localname": "BusinessCombinationsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_CapitalExpendituresIncurredButNotYetPaid": { "auth_ref": [ "r78", "r79", "r80" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Future cash outflow to pay for purchases of fixed assets that have occurred.", "label": "Capital Expenditures Incurred but Not yet Paid", "terseLabel": "Accruals and accounts payable for capital expenditures" } } }, "localname": "CapitalExpendituresIncurredButNotYetPaid", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAcquiredFromAcquisition": { "auth_ref": [ "r60" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails": { "order": 2.0, "parentTag": "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow associated with the acquisition of business during the period (for example, cash that was held by the acquired business).", "label": "Cash Acquired from Acquisition", "negatedLabel": "Less: cash acquired" } } }, "localname": "CashAcquiredFromAcquisition", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsPolicyTextBlock": { "auth_ref": [ "r76" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.", "label": "Cash and Cash Equivalents, Policy [Policy Text Block]", "terseLabel": "Cash and Cash Equivalents" } } }, "localname": "CashAndCashEquivalentsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CashCashEquivalentsAndShortTermInvestments": { "auth_ref": [ "r829" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Cash includes currency on hand as well as demand deposits with banks or financial institutions. It also includes other kinds of accounts that have the general characteristics of demand deposits in that the customer may deposit additional funds at any time and effectively may withdraw funds at any time without prior notice or penalty. Cash equivalents, excluding items classified as marketable securities, include short-term, highly liquid Investments that are both readily convertible to known amounts of cash, and so near their maturity that they present minimal risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify under that definition. Original maturity means original maturity to the entity holding the investment. For example, both a three-month US Treasury bill and a three-year Treasury note purchased three months from maturity qualify as cash equivalents. However, a Treasury note purchased three years ago does not become a cash equivalent when its remaining maturity is three months. Short-term investments, exclusive of cash equivalents, generally consist of marketable securities intended to be sold within one year (or the normal operating cycle if longer) and may include trading securities, available-for-sale securities, or held-to-maturity securities (if maturing within one year), as applicable.", "label": "Cash, Cash Equivalents, and Short-term Investments", "terseLabel": "Cash and cash equivalents" } } }, "localname": "CashCashEquivalentsAndShortTermInvestments", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "auth_ref": [ "r70", "r75", "r81" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents", "periodEndLabel": "Cash and cash equivalents, end of period", "periodStartLabel": "Cash and cash equivalents, beginning of period" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "auth_ref": [ "r70", "r200" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect", "totalLabel": "Change in cash and cash equivalents" } } }, "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommitmentsAndContingencies": { "auth_ref": [ "r42", "r216", "r230" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.", "label": "Commitments and Contingencies", "terseLabel": "Commitments and contingencies (Note 15)" } } }, "localname": "CommitmentsAndContingencies", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "COMMITMENTS AND CONTINGENCIES" } } }, "localname": "CommitmentsAndContingenciesDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "auth_ref": [ "r121", "r432", "r433", "r759", "r866" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for commitments and contingencies.", "label": "Commitments and Contingencies Disclosure [Text Block]", "terseLabel": "COMMITMENTS AND CONTINGENCIES" } } }, "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureCommitmentsAndContingencies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CommonStockDividendsPerShareCashPaid": { "auth_ref": [ "r140" ], "lang": { "en-us": { "role": { "documentation": "Aggregate dividends paid during the period for each share of common stock outstanding.", "label": "Common Stock, Dividends, Per Share, Cash Paid", "terseLabel": "Dividend paid (in dollars per share)" } } }, "localname": "CommonStockDividendsPerShareCashPaid", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockDividendsPerShareDeclared": { "auth_ref": [ "r140" ], "lang": { "en-us": { "role": { "documentation": "Aggregate dividends declared during the period for each share of common stock outstanding.", "label": "Common Stock, Dividends, Per Share, Declared", "verboseLabel": "Dividend declared (in dollars per share)" } } }, "localname": "CommonStockDividendsPerShareDeclared", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockMember": { "auth_ref": [ "r841", "r842", "r915" ], "lang": { "en-us": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock" } } }, "localname": "CommonStockMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockParOrStatedValuePerShare": { "auth_ref": [ "r22" ], "lang": { "en-us": { "role": { "documentation": "Face amount or stated value per share of common stock.", "label": "Common Stock, Par or Stated Value Per Share", "terseLabel": "Common stock, par value" } } }, "localname": "CommonStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockSharesAuthorized": { "auth_ref": [ "r22" ], "lang": { "en-us": { "role": { "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.", "label": "Common Stock, Shares Authorized", "terseLabel": "Common stock, shares authorized" } } }, "localname": "CommonStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r22" ], "lang": { "en-us": { "role": { "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.", "label": "Common Stock, Shares, Issued", "terseLabel": "Common stock, shares issued" } } }, "localname": "CommonStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesOutstanding": { "auth_ref": [ "r22", "r135" ], "lang": { "en-us": { "role": { "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.", "label": "Common Stock, Shares, Outstanding", "periodEndLabel": "Balance at the end (in shares)", "periodStartLabel": "Balance at the beginning (in shares)", "terseLabel": "Common stock, shares outstanding" } } }, "localname": "CommonStockSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheetsParenthetical", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r22", "r812" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Common Stock, Value, Issued", "terseLabel": "Common stock ($0.0001 par value, 190,000,000 shares authorized, 37,332,271 and 34,383,350 shares issued and outstanding as of December 31, 2022 and December 31, 2021, respectively)" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CompensationAndRetirementDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "COMPENSATION AND DEFINED CONTRIBUTION PLANS" } } }, "localname": "CompensationAndRetirementDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_CompensationRelatedCostsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "STOCK-BASED COMPENSATION" } } }, "localname": "CompensationRelatedCostsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Components of Deferred Tax Assets and Liabilities [Abstract]" } } }, "localname": "ComponentsOfDeferredTaxAssetsAndLiabilitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_ComprehensiveIncomeNetOfTax": { "auth_ref": [ "r51", "r277", "r279", "r285", "r737", "r742" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncomes": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners.", "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent", "totalLabel": "Comprehensive income, net of tax" } } }, "localname": "ComprehensiveIncomeNetOfTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_ComprehensiveIncomeNetOfTaxAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent [Abstract]", "terseLabel": "Other comprehensive income:" } } }, "localname": "ComprehensiveIncomeNetOfTaxAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "stringItemType" }, "us-gaap_ComprehensiveIncomePolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for comprehensive income.", "label": "Comprehensive Income, Policy [Policy Text Block]", "terseLabel": "Accumulated Other Comprehensive Income (Loss)" } } }, "localname": "ComprehensiveIncomePolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ComputerEquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.", "label": "Computer hardware and software" } } }, "localname": "ComputerEquipmentMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ConcentrationRiskCreditRisk": { "auth_ref": [ "r222", "r337" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for credit risk.", "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]", "terseLabel": "Risk and Uncertainties" } } }, "localname": "ConcentrationRiskCreditRisk", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ConsolidationPolicyTextBlock": { "auth_ref": [ "r183", "r778" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.", "label": "Consolidation, Policy [Policy Text Block]", "terseLabel": "Principles of Consolidation" } } }, "localname": "ConsolidationPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ConstructionInProgressMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Structure or a modification to a structure under construction. Includes recently completed structures or modifications to structures that have not been placed into service.", "label": "Construction in progress" } } }, "localname": "ConstructionInProgressMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "auth_ref": [ "r493", "r494", "r515" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.", "label": "Contract with Customer, Liability, Current", "terseLabel": "Contract liabilities, current" } } }, "localname": "ContractWithCustomerLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionContractLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": { "auth_ref": [ "r516" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.", "label": "Contract with Customer, Liability, Revenue Recognized", "terseLabel": "Revenue recognized from amounts included in contract liabilities" } } }, "localname": "ContractWithCustomerLiabilityRevenueRecognized", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionContractLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ContractWithCustomerSalesChannelAxis": { "auth_ref": [ "r797", "r872" ], "lang": { "en-us": { "role": { "documentation": "Information by sales channel for delivery of good or service in contract with customer.", "label": "Contract with Customer, Sales Channel [Axis]" } } }, "localname": "ContractWithCustomerSalesChannelAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionNetSalesByChannelAndGeographyDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ContractWithCustomerSalesChannelDomain": { "auth_ref": [ "r797", "r872" ], "lang": { "en-us": { "role": { "documentation": "Sales channel for delivery of good or service in contract with customer. Includes, but is not limited to, directly to consumer and through intermediary.", "label": "Contract with Customer, Sales Channel [Domain]" } } }, "localname": "ContractWithCustomerSalesChannelDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionNetSalesByChannelAndGeographyDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CostOfGoodsAndServicesSold": { "auth_ref": [ "r55", "r718" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_GrossProfit", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.", "label": "Cost of Goods and Services Sold", "terseLabel": "Cost of goods sold" } } }, "localname": "CostOfGoodsAndServicesSold", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfGoodsAndServicesSoldAmortization": { "auth_ref": [ "r833" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense for allocation of cost of intangible asset over its useful life directly used in production of good and rendering of service.", "label": "Cost, Amortization", "terseLabel": "Amortization expense included in cost of goods sold" } } }, "localname": "CostOfGoodsAndServicesSoldAmortization", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfGoodsAndServicesSoldDepreciation": { "auth_ref": [ "r833", "r861" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense for allocation of cost of tangible asset over its useful life directly used in production of good and rendering of service.", "label": "Cost, Depreciation", "terseLabel": "Depreciation expense included in cost of goods sold" } } }, "localname": "CostOfGoodsAndServicesSoldDepreciation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfSalesPolicyTextBlock": { "auth_ref": [ "r874" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for cost of product sold and service rendered.", "label": "Cost of Goods and Service [Policy Text Block]", "terseLabel": "Cost of Goods Sold" } } }, "localname": "CostOfSalesPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CostsAndExpensesRelatedParty": { "auth_ref": [ "r56" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Costs of sales and operating expenses for the period incurred from transactions with related parties.", "label": "Costs and Expenses, Related Party", "terseLabel": "Acquisition-related costs" } } }, "localname": "CostsAndExpensesRelatedParty", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicyTextBlock": { "auth_ref": [ "r118", "r119", "r120" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for recognizing and reporting costs associated with exiting, disposing of, and restructuring certain operations.", "label": "Costs Associated with Exit or Disposal Activities or Restructurings, Policy [Policy Text Block]", "terseLabel": "Restructuring Costs" } } }, "localname": "CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CreditFacilityAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.", "label": "Credit Facility [Axis]" } } }, "localname": "CreditFacilityAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtFairValueOfDebtDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_CreditFacilityDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.", "label": "Credit Facility [Domain]" } } }, "localname": "CreditFacilityDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtFairValueOfDebtDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CurrentFederalStateAndLocalTaxExpenseBenefitAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Current Federal, State and Local, Tax Expense (Benefit) [Abstract]", "terseLabel": "Current tax provision:" } } }, "localname": "CurrentFederalStateAndLocalTaxExpenseBenefitAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_CurrentFederalTaxExpenseBenefit": { "auth_ref": [ "r840", "r907", "r910" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction.", "label": "Current Federal Tax Expense (Benefit)", "terseLabel": "Federal" } } }, "localname": "CurrentFederalTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentForeignTaxExpenseBenefit": { "auth_ref": [ "r840", "r907" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Current Foreign Tax Expense (Benefit)", "terseLabel": "Foreign" } } }, "localname": "CurrentForeignTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentIncomeTaxExpenseBenefit": { "auth_ref": [ "r164", "r605", "r615", "r840" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.", "label": "Current Income Tax Expense (Benefit)", "totalLabel": "Total current provision" } } }, "localname": "CurrentIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": { "auth_ref": [ "r840", "r907", "r910" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.", "label": "Current State and Local Tax Expense (Benefit)", "terseLabel": "State" } } }, "localname": "CurrentStateAndLocalTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CustomerRelationshipsMember": { "auth_ref": [ "r176" ], "lang": { "en-us": { "role": { "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships.", "label": "Customer relationships" } } }, "localname": "CustomerRelationshipsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails", "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DebtDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "DEBT" } } }, "localname": "DebtDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_DebtDisclosureTextBlock": { "auth_ref": [ "r133", "r295", "r456", "r457", "r458", "r459", "r460", "r461", "r462", "r467", "r474", "r475", "r477" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.", "label": "Debt Disclosure [Text Block]", "terseLabel": "DEBT" } } }, "localname": "DebtDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebt" ], "xbrltype": "textBlockItemType" }, "us-gaap_DebtInstrumentAxis": { "auth_ref": [ "r17", "r18", "r19", "r210", "r212", "r223", "r302", "r451", "r452", "r453", "r454", "r455", "r457", "r463", "r464", "r465", "r466", "r468", "r469", "r470", "r471", "r472", "r473", "r682", "r785", "r786", "r787", "r788", "r789", "r838" ], "lang": { "en-us": { "role": { "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities.", "label": "Debt Instrument [Axis]" } } }, "localname": "DebtInstrumentAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentBasisSpreadOnVariableRate1": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage points added to the reference rate to compute the variable rate on the debt instrument.", "label": "Debt Instrument, Basis Spread on Variable Rate", "verboseLabel": "Applicable margin (as a percent)" } } }, "localname": "DebtInstrumentBasisSpreadOnVariableRate1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DebtInstrumentCarryingAmount": { "auth_ref": [ "r19", "r212", "r223", "r478" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails": { "order": 1.0, "parentTag": "us-gaap_LongTermDebtNoncurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, before unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but is not limited to, notes payable, bonds payable, commercial loans, mortgage loans, convertible debt, subordinated debt and other types of debt.", "label": "Long-term Debt, Gross", "terseLabel": "Long-term debt", "verboseLabel": "Outstanding borrowings" } } }, "localname": "DebtInstrumentCarryingAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtFairValueOfDebtDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtInstrumentFaceAmount": { "auth_ref": [ "r202", "r204", "r451", "r682", "r786", "r787" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Face (par) amount of debt instrument at time of issuance.", "label": "Debt Instrument, Face Amount", "verboseLabel": "Amount of short term loan facility" } } }, "localname": "DebtInstrumentFaceAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtInstrumentFairValue": { "auth_ref": [ "r465", "r657", "r786", "r787" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Fair value portion of debt instrument payable, including, but not limited to, notes payable and loans payable.", "label": "Debt Instrument, Fair Value Disclosure", "terseLabel": "Fair value of debt" } } }, "localname": "DebtInstrumentFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtFairValueOfDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtInstrumentInterestRateDuringPeriod": { "auth_ref": [ "r38", "r202", "r470" ], "lang": { "en-us": { "role": { "documentation": "The average effective interest rate during the reporting period.", "label": "Debt Instrument, Interest Rate During Period", "terseLabel": "Aggregate principal amount per quarter (in percent)" } } }, "localname": "DebtInstrumentInterestRateDuringPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DebtInstrumentInterestRateStatedPercentage": { "auth_ref": [ "r38", "r452" ], "lang": { "en-us": { "role": { "documentation": "Contractual interest rate for funds borrowed, under the debt agreement.", "label": "Debt Instrument, Interest Rate, Stated Percentage", "netLabel": "Fixed annual interest rate", "terseLabel": "Interest rate (as percent)" } } }, "localname": "DebtInstrumentInterestRateStatedPercentage", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DebtInstrumentLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Debt Instrument [Line Items]" } } }, "localname": "DebtInstrumentLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtFairValueOfDebtDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentMaturityDateRangeEnd1": { "auth_ref": [ "r39" ], "lang": { "en-us": { "role": { "documentation": "Latest date the outstanding debt instruments are required to be repaid, in YYYY-MM-DD format.", "label": "Debt Instrument, Maturity Date Range, End", "verboseLabel": "Debt instrument, end maturity date" } } }, "localname": "DebtInstrumentMaturityDateRangeEnd1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfInterestRateSwapsDetails" ], "xbrltype": "dateItemType" }, "us-gaap_DebtInstrumentMaturityDateRangeStart1": { "auth_ref": [ "r39" ], "lang": { "en-us": { "role": { "documentation": "Earliest date the outstanding debt instruments are required to be repaid, in YYYY-MM-DD format.", "label": "Debt Instrument, Maturity Date Range, Start", "terseLabel": "Debt instrument, start maturity date" } } }, "localname": "DebtInstrumentMaturityDateRangeStart1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfInterestRateSwapsDetails" ], "xbrltype": "dateItemType" }, "us-gaap_DebtInstrumentNameDomain": { "auth_ref": [ "r40", "r302", "r451", "r452", "r453", "r454", "r455", "r457", "r463", "r464", "r465", "r466", "r468", "r469", "r470", "r471", "r472", "r473", "r682", "r785", "r786", "r787", "r788", "r789", "r838" ], "lang": { "en-us": { "role": { "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities.", "label": "Debt Instrument, Name [Domain]" } } }, "localname": "DebtInstrumentNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DebtInstrumentPeriodicPaymentPrincipal": { "auth_ref": [ "r40" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the required periodic payments applied to principal.", "label": "Debt Instrument, Periodic Payment, Principal", "verboseLabel": "Required monthly payments" } } }, "localname": "DebtInstrumentPeriodicPaymentPrincipal", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtInstrumentTable": { "auth_ref": [ "r40", "r136", "r137", "r138", "r139", "r201", "r202", "r204", "r221", "r302", "r451", "r452", "r453", "r454", "r455", "r457", "r463", "r464", "r465", "r466", "r468", "r469", "r470", "r471", "r472", "r473", "r476", "r682", "r785", "r786", "r787", "r788", "r789", "r838" ], "lang": { "en-us": { "role": { "documentation": "A table or schedule providing information pertaining to long-term debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer.", "label": "Schedule of Long-Term Debt Instruments [Table]" } } }, "localname": "DebtInstrumentTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtFairValueOfDebtDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DebtInstrumentUnamortizedDiscount": { "auth_ref": [ "r201", "r204", "r870" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after accumulated amortization, of debt discount.", "label": "Debt Instrument, Unamortized Discount", "negatedLabel": "Unamortized debt discount and debt issuance costs", "terseLabel": "Unamortized debt discount" } } }, "localname": "DebtInstrumentUnamortizedDiscount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet": { "auth_ref": [ "r203", "r463", "r479", "r786", "r787" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails": { "order": 2.0, "parentTag": "us-gaap_LongTermDebtNoncurrent", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of unamortized debt discount (premium) and debt issuance costs.", "label": "Debt Instrument, Unamortized Discount (Premium) and Debt Issuance Costs, Net", "negatedLabel": "Unamortized debt discount and debt issuance costs" } } }, "localname": "DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtLongtermAndShorttermCombinedAmount": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Represents the aggregate of total long-term debt, including current maturities and short-term debt.", "label": "Debt, Long-Term and Short-Term, Combined Amount", "verboseLabel": "Carrying value of debt" } } }, "localname": "DebtLongtermAndShorttermCombinedAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtFairValueOfDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtPolicyTextBlock": { "auth_ref": [ "r129" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy related to debt. Includes, but is not limited to, debt issuance costs, the effects of refinancings, method of amortizing debt issuance costs and original issue discount, and classifications of debt.", "label": "Debt, Policy [Policy Text Block]", "terseLabel": "Debt Issuance Costs" } } }, "localname": "DebtPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis": { "auth_ref": [ "r153" ], "lang": { "en-us": { "role": { "documentation": "Information by type of deferred compensation related to equity-based payment arrangements. Includes, but is not limited to, employment contracts with one or more selected officers or key employees. Excludes broad group equity-based compensation plans, defined benefit pension plans, defined benefit other postretirement benefit plans and other deferred compensation that is not equivalent to a defined benefit pension plan or a defined benefit other postretirement benefit plan.", "label": "Equity-Based Arrangements, Individual Contracts, Type of Deferred Compensation [Axis]" } } }, "localname": "DeferredCompensationArrangementWithIndividualShareBasedPaymentsByTypeOfDeferredCompensationAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Deferred Compensation Arrangement with Individual, Share-based Payments [Line Items]", "terseLabel": "Compensation Plans" } } }, "localname": "DeferredCompensationArrangementWithIndividualShareBasedPaymentsLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": { "auth_ref": [ "r840", "r908", "r910" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction.", "label": "Deferred Federal Income Tax Expense (Benefit)", "terseLabel": "Federal" } } }, "localname": "DeferredFederalIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefitAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred Federal, State and Local, Tax Expense (Benefit) [Abstract]", "terseLabel": "Deferred tax (benefit) provision:" } } }, "localname": "DeferredFederalStateAndLocalTaxExpenseBenefitAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": { "auth_ref": [ "r164", "r840", "r908" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred Foreign Income Tax Expense (Benefit)", "terseLabel": "Foreign" } } }, "localname": "DeferredForeignIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxAssetsNet": { "auth_ref": [ "r589", "r590" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting.", "label": "Deferred Income Tax Assets, Net", "terseLabel": "Deferred tax assets, net" } } }, "localname": "DeferredIncomeTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "auth_ref": [ "r73", "r164", "r606", "r614", "r615", "r840" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred Income Tax Expense (Benefit)", "totalLabel": "Total deferred (benefit) provision" } } }, "localname": "DeferredIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "auth_ref": [ "r589", "r590" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.", "label": "Deferred Income Tax Liabilities, Net", "negatedTotalLabel": "Total deferred tax liabilities" } } }, "localname": "DeferredIncomeTaxLiabilitiesNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxesAndTaxCredits": { "auth_ref": [ "r74" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred income tax expense (benefit) and income tax credits.", "label": "Deferred Income Taxes and Tax Credits", "terseLabel": "Deferred income taxes" } } }, "localname": "DeferredIncomeTaxesAndTaxCredits", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredRevenueCurrent": { "auth_ref": [ "r827" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails": { "order": 5.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable, classified as current.", "label": "Deferred Revenue, Current", "terseLabel": "Deferred revenue and customer credit balances" } } }, "localname": "DeferredRevenueCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": { "auth_ref": [ "r840", "r908", "r910" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.", "label": "Deferred State and Local Income Tax Expense (Benefit)", "terseLabel": "State" } } }, "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsGross": { "auth_ref": [ "r600" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredTaxAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.", "label": "Deferred Tax Assets, Gross", "totalLabel": "Total deferred tax assets" } } }, "localname": "DeferredTaxAssetsGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsLiabilitiesNet": { "auth_ref": [ "r905" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.", "label": "Deferred Tax Assets, Net", "totalLabel": "Total deferred income taxes" } } }, "localname": "DeferredTaxAssetsLiabilitiesNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsNet": { "auth_ref": [ "r905" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.", "label": "Deferred Tax Assets, Net of Valuation Allowance", "totalLabel": "Net deferred tax assets" } } }, "localname": "DeferredTaxAssetsNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsNetOfValuationAllowanceAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred Tax Assets, Net of Valuation Allowance [Abstract]", "terseLabel": "Deferred tax assets:" } } }, "localname": "DeferredTaxAssetsNetOfValuationAllowanceAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": { "auth_ref": [ "r162", "r906" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible operating loss carryforwards.", "label": "Deferred Tax Assets, Operating Loss Carryforwards", "terseLabel": "Net operating loss and other carry forwards" } } }, "localname": "DeferredTaxAssetsOperatingLossCarryforwards", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsOther": { "auth_ref": [ "r162", "r906" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 5.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.", "label": "Deferred Tax Assets, Other", "terseLabel": "Other deferred tax assets" } } }, "localname": "DeferredTaxAssetsOther", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 4.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from property, plant, and equipment.", "label": "Deferred Tax Assets, Property, Plant and Equipment", "terseLabel": "263A uniform capitalization costs" } } }, "localname": "DeferredTaxAssetsPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities": { "auth_ref": [ "r162", "r906" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from accrued liabilities.", "label": "Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Accrued Liabilities", "terseLabel": "Accrued liabilities" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves": { "auth_ref": [ "r162", "r906" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 3.0, "parentTag": "us-gaap_DeferredTaxAssetsGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences from reserves, classified as other.", "label": "Deferred Tax Assets, Tax Deferred Expense, Reserves and Accruals, Reserves", "verboseLabel": "Reserves and other" } } }, "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReserves", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsValuationAllowance": { "auth_ref": [ "r601" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredTaxAssetsNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.", "label": "Deferred Tax Assets, Valuation Allowance", "negatedLabel": "Valuation allowance" } } }, "localname": "DeferredTaxAssetsValuationAllowance", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilities": { "auth_ref": [ "r158", "r905" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.", "label": "Deferred Tax Liabilities, Net", "negatedTotalLabel": "Total deferred income taxes" } } }, "localname": "DeferredTaxLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill": { "auth_ref": [ "r162", "r178", "r179", "r906" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 3.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilitiesNet", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from goodwill.", "label": "Deferred Tax Liabilities, Goodwill", "negatedLabel": "Goodwill" } } }, "localname": "DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets": { "auth_ref": [ "r162", "r906" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 1.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilitiesNet", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from intangible assets other than goodwill.", "label": "Deferred Tax Liabilities, Intangible Assets", "negatedLabel": "Intangibles" } } }, "localname": "DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesNetAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Deferred Tax Liabilities, Net [Abstract]", "terseLabel": "Deferred tax liabilities:" } } }, "localname": "DeferredTaxLiabilitiesNetAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredTaxLiabilitiesOther": { "auth_ref": [ "r162", "r906" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 4.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilitiesNet", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as other.", "label": "Deferred Tax Liabilities, Other", "negatedLabel": "Other" } } }, "localname": "DeferredTaxLiabilitiesOther", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": { "auth_ref": [ "r162", "r906" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails": { "order": 2.0, "parentTag": "us-gaap_DeferredIncomeTaxLiabilitiesNet", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.", "label": "Deferred Tax Liabilities, Property, Plant and Equipment", "negatedLabel": "Depreciation" } } }, "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesDeferredIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DefinedContributionPlanEmployerDiscretionaryContributionAmount": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of discretionary contributions made by an employer to a defined contribution plan.", "label": "Defined Contribution Plan, Employer Discretionary Contribution Amount", "terseLabel": "Employer contribution to plans" } } }, "localname": "DefinedContributionPlanEmployerDiscretionaryContributionAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureCompensationAndDefinedContributionPlansDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Deposits": { "auth_ref": [ "r214" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The aggregate of all deposit liabilities held by the entity, including foreign and domestic, interest and noninterest bearing; may include demand deposits, saving deposits, Negotiable Order of Withdrawal (NOW) and time deposits among others.", "label": "Deposits" } } }, "localname": "Deposits", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Depreciation": { "auth_ref": [ "r73", "r110" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.", "label": "Depreciation", "terseLabel": "Depreciation expense" } } }, "localname": "Depreciation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DepreciationDepletionAndAmortization": { "auth_ref": [ "r73", "r347" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 12.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.", "label": "Depreciation, Depletion and Amortization", "terseLabel": "Depreciation and amortization" } } }, "localname": "DepreciationDepletionAndAmortization", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration": { "auth_ref": [ "r635" ], "lang": { "en-us": { "role": { "documentation": "Indicates line item in statement of financial position that includes derivative asset.", "label": "Derivative Asset, Statement of Financial Position [Extensible Enumeration]" } } }, "localname": "DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails" ], "xbrltype": "enumerationSetItemType" }, "us-gaap_DerivativeAssets": { "auth_ref": [ "r268", "r269", "r657", "r777" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Fair value, after the effects of master netting arrangements, of a financial asset or other contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes assets not subject to a master netting arrangement and not elected to be offset.", "label": "Derivative Asset", "terseLabel": "Interest rate swaps", "verboseLabel": "Derivative asset" } } }, "localname": "DerivativeAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeContractTypeDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Financial instrument or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset.", "label": "Derivative Contract [Domain]" } } }, "localname": "DerivativeContractTypeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfInterestRateSwapsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DerivativeFixedInterestRate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Fixed interest rate related to the interest rate derivative.", "label": "Derivative, Fixed Interest Rate", "terseLabel": "Fixed rate" } } }, "localname": "DerivativeFixedInterestRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfInterestRateSwapsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DerivativeInstrumentRiskAxis": { "auth_ref": [ "r191", "r192", "r195", "r196", "r777" ], "lang": { "en-us": { "role": { "documentation": "Information by type of derivative contract.", "label": "Derivative Instrument [Axis]" } } }, "localname": "DerivativeInstrumentRiskAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfInterestRateSwapsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DerivativeLiabilities": { "auth_ref": [ "r268", "r269", "r657", "r777" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Fair value, after the effects of master netting arrangements, of a financial liability or contract with one or more underlyings, notional amount or payment provision or both, and the contract can be net settled by means outside the contract or delivery of an asset. Includes liabilities not subject to a master netting arrangement and not elected to be offset.", "label": "Derivative Liability", "terseLabel": "Interest rate swaps", "verboseLabel": "Derivative liability" } } }, "localname": "DerivativeLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration": { "auth_ref": [ "r635" ], "lang": { "en-us": { "role": { "documentation": "Indicates line item in statement of financial position that includes derivative liability.", "label": "Derivative Liability, Statement of Financial Position [Extensible Enumeration]" } } }, "localname": "DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails" ], "xbrltype": "enumerationSetItemType" }, "us-gaap_DerivativeNotionalAmount": { "auth_ref": [ "r913", "r914" ], "lang": { "en-us": { "role": { "documentation": "Nominal or face amount used to calculate payment on derivative.", "label": "Derivative, Notional Amount", "terseLabel": "Notional amount" } } }, "localname": "DerivativeNotionalAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfInterestRateSwapsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DerivativeVariableInterestRate": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Variable interest rate in effect as of the balance sheet date related to the interest rate derivative.", "label": "Derivative, Variable Interest Rate", "terseLabel": "Variable rate" } } }, "localname": "DerivativeVariableInterestRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfInterestRateSwapsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_DerivativesFairValueLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Derivatives, Fair Value [Line Items]", "terseLabel": "Interest Rate Swaps" } } }, "localname": "DerivativesFairValueLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DerivativesPolicyTextBlock": { "auth_ref": [ "r186", "r187", "r188", "r189", "r197", "r301" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for its derivative instruments and hedging activities.", "label": "Derivatives, Policy [Policy Text Block]", "terseLabel": "Derivatives" } } }, "localname": "DerivativesPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisaggregationOfRevenueLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Disaggregation of Revenue [Line Items]", "terseLabel": "Revenue Recognition" } } }, "localname": "DisaggregationOfRevenueLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionIncludesAllDistributionSalesDetails", "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionNetSalesByChannelAndGeographyDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTable": { "auth_ref": [ "r514", "r791", "r792", "r793", "r794", "r795", "r796", "r797" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table]" } } }, "localname": "DisaggregationOfRevenueTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionIncludesAllDistributionSalesDetails", "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionNetSalesByChannelAndGeographyDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisaggregationOfRevenueTableTextBlock": { "auth_ref": [ "r872" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.", "label": "Disaggregation of Revenue [Table Text Block]", "terseLabel": "Summary of disaggregation of net sales by channel and geography" } } }, "localname": "DisaggregationOfRevenueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "auth_ref": [ "r544", "r575", "r576", "r578", "r583", "r804" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for share-based payment arrangement.", "label": "Share-based Payment Arrangement [Text Block]", "terseLabel": "STOCK-BASED COMPENSATION" } } }, "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensation" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "STOCK - BASED COMPENSATION" } } }, "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_DisclosureTextBlockAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "INCOME TAXES." } } }, "localname": "DisclosureTextBlockAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_DiscontinuedOperationsAndDisposalGroupsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE" } } }, "localname": "DiscontinuedOperationsAndDisposalGroupsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_DisposalGroupClassificationAxis": { "auth_ref": [ "r249" ], "lang": { "en-us": { "role": { "documentation": "Information by disposal group classification.", "label": "Disposal Group Classification [Axis]" } } }, "localname": "DisposalGroupClassificationAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DisposalGroupClassificationDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Component or group of components disposed of, including but not limited to, disposal group held-for-sale or disposed of by sale, disposed of by means other than sale, and discontinued operations.", "label": "Disposal Group Classification [Domain]" } } }, "localname": "DisposalGroupClassificationDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DisposalGroupIncludingDiscontinuedOperationConsideration": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of consideration received or receivable for the disposal of assets and liabilities, including discontinued operation.", "label": "Disposal Group, Including Discontinued Operation, Consideration", "terseLabel": "Sales price" } } }, "localname": "DisposalGroupIncludingDiscontinuedOperationConsideration", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DisposalGroupNotDiscontinuedOperationGainLossOnDisposal": { "auth_ref": [ "r421", "r837", "r860" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before tax of gain (loss) recognized on the sale or disposal of a disposal group. Excludes discontinued operations.", "label": "Disposal Group, Not Discontinued Operation, Gain (Loss) on Disposal", "terseLabel": "Gain on sale of assets" } } }, "localname": "DisposalGroupNotDiscontinuedOperationGainLossOnDisposal", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DisposalGroupNotDiscontinuedOperationGainLossOnDisposalStatementOfIncomeExtensibleList": { "auth_ref": [ "r422" ], "lang": { "en-us": { "role": { "documentation": "Indicates line item in statement of income that includes gain (loss) recognized on sale or disposal of disposal group. Excludes discontinued operation.", "label": "Disposal Group, Not Discontinued Operation, Gain (Loss) on Disposal, Statement of Income or Comprehensive Income [Extensible Enumeration]" } } }, "localname": "DisposalGroupNotDiscontinuedOperationGainLossOnDisposalStatementOfIncomeExtensibleList", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails" ], "xbrltype": "enumerationSetItemType" }, "us-gaap_DisposalGroupNotDiscontinuedOperationsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disposal group that is not classified as discontinued operations.", "label": "Disposal Group, Not Discontinued Operations" } } }, "localname": "DisposalGroupNotDiscontinuedOperationsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock": { "auth_ref": [ "r13", "r117" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure related to a disposal group. Includes, but is not limited to, a discontinued operation, disposal classified as held-for-sale or disposed of by means other than sale or disposal of an individually significant component.", "label": "Disposal Groups, Including Discontinued Operations, Disclosure [Text Block]", "terseLabel": "DISPOSITIONS AND ASSETS AND LIABILITIES HELD FOR SALE" } } }, "localname": "DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSale" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisposalGroupsIncludingDiscontinuedOperationsNameDomain": { "auth_ref": [ "r801", "r802" ], "lang": { "en-us": { "role": { "documentation": "Name of disposal group.", "label": "Disposal Group Name [Domain]" } } }, "localname": "DisposalGroupsIncludingDiscontinuedOperationsNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails" ], "xbrltype": "domainItemType" }, "us-gaap_Dividends": { "auth_ref": [ "r140", "r220" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of paid and unpaid cash, stock, and paid-in-kind (PIK) dividends declared, for example, but not limited to, common and preferred stock.", "label": "Dividends", "negatedLabel": "Dividends declared" } } }, "localname": "Dividends", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_DividendsCommonStock": { "auth_ref": [ "r140", "r220" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of paid and unpaid common stock dividends declared with the form of settlement in cash, stock and payment-in-kind (PIK).", "label": "Dividends, Common Stock", "terseLabel": "Dividend declared" } } }, "localname": "DividendsCommonStock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DividendsCommonStockCash": { "auth_ref": [ "r140" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of paid and unpaid common stock dividends declared with the form of settlement in cash.", "label": "Dividends, Common Stock, Cash", "terseLabel": "Cash Dividends" } } }, "localname": "DividendsCommonStockCash", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DividendsPayableAmountPerShare": { "auth_ref": [ "r78" ], "lang": { "en-us": { "role": { "documentation": "The per share amount of a dividend declared, but not paid, as of the financial reporting date.", "label": "Dividends Payable, Amount Per Share", "terseLabel": "Dividends per share declared" } } }, "localname": "DividendsPayableAmountPerShare", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Earnings Per Share [Abstract]", "terseLabel": "Net income per share:" } } }, "localname": "EarningsPerShareAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareBasic": { "auth_ref": [ "r286", "r310", "r311", "r312", "r313", "r314", "r319", "r322", "r328", "r329", "r330", "r332", "r647", "r648", "r738", "r743", "r781" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.", "label": "Earnings Per Share, Basic", "terseLabel": "Basic" } } }, "localname": "EarningsPerShareBasic", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareDiluted": { "auth_ref": [ "r286", "r310", "r311", "r312", "r313", "r314", "r322", "r328", "r329", "r330", "r332", "r647", "r648", "r738", "r743", "r781" ], "lang": { "en-us": { "role": { "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", "label": "Earnings Per Share, Diluted", "terseLabel": "Diluted" } } }, "localname": "EarningsPerShareDiluted", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerSharePolicyTextBlock": { "auth_ref": [ "r83", "r84" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for computing basic and diluted earnings or loss per share for each class of common stock and participating security. Addresses all significant policy factors, including any antidilutive items that have been excluded from the computation and takes into account stock dividends, splits and reverse splits that occur after the balance sheet date of the latest reporting period but before the issuance of the financial statements.", "label": "Earnings Per Share, Policy [Policy Text Block]", "terseLabel": "Net Income per Share" } } }, "localname": "EarningsPerSharePolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_EarningsPerShareReconciliationAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Earnings Per Share Reconciliation [Abstract]", "terseLabel": "Calculation of weighted average shares outstanding and net (loss) income per share" } } }, "localname": "EarningsPerShareReconciliationAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations": { "auth_ref": [ "r917" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies; including, but not limited to, disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.", "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash and Restricted Cash Equivalents, Including Disposal Group and Discontinued Operations", "terseLabel": "Effect of foreign exchange rates on cash and cash equivalents" } } }, "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsIncludingDisposalGroupAndDiscontinuedOperations", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "auth_ref": [ "r592" ], "lang": { "en-us": { "role": { "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Effective Income Tax Rate Reconciliation, Percent", "terseLabel": "Effective tax rate" } } }, "localname": "EffectiveIncomeTaxRateContinuingOperations", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfStatutoryFederalIncomeTaxRateToEffectiveRateReportedInCompanySConsolidatedFinancialStatementsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Effective Income Tax Rate Reconciliation, Percent [Abstract]" } } }, "localname": "EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": { "auth_ref": [ "r299", "r592", "r616" ], "lang": { "en-us": { "role": { "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).", "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent", "terseLabel": "Federal statutory rate" } } }, "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfStatutoryFederalIncomeTaxRateToEffectiveRateReportedInCompanySConsolidatedFinancialStatementsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance": { "auth_ref": [ "r902", "r911" ], "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to changes in the valuation allowance for deferred tax assets.", "label": "Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Percent", "terseLabel": "Change in valuation allowance" } } }, "localname": "EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfStatutoryFederalIncomeTaxRateToEffectiveRateReportedInCompanySConsolidatedFinancialStatementsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential": { "auth_ref": [ "r902", "r911" ], "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to statutory income tax expense (benefit) outside of the country of domicile.", "label": "Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent", "terseLabel": "Difference between foreign and federal tax rate" } } }, "localname": "EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfStatutoryFederalIncomeTaxRateToEffectiveRateReportedInCompanySConsolidatedFinancialStatementsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationNondeductibleExpense": { "auth_ref": [ "r902", "r911" ], "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible expenses.", "label": "Effective Income Tax Rate Reconciliation, Nondeductible Expense, Percent", "terseLabel": "Permanent items" } } }, "localname": "EffectiveIncomeTaxRateReconciliationNondeductibleExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfStatutoryFederalIncomeTaxRateToEffectiveRateReportedInCompanySConsolidatedFinancialStatementsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Percentage of the difference, between reported income tax expense (benefit) and the expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations, that is attributable to tax exempt income, equity in earnings (loss) of an unconsolidated subsidiary, minority interest income (expense), tax holiday, disposition of a business, disposition of an asset, repatriation of foreign earnings, repatriation of foreign earnings jobs creation act of 2004, change in enacted tax rate, prior year income taxes, change in deferred tax asset valuation allowance, and other adjustments.", "label": "Effective Income Tax Rate Reconciliation, Other Reconciling Items, Percent", "terseLabel": "Other" } } }, "localname": "EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfStatutoryFederalIncomeTaxRateToEffectiveRateReportedInCompanySConsolidatedFinancialStatementsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes": { "auth_ref": [ "r902", "r911" ], "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to state and local income tax expense (benefit), net of federal tax expense (benefit).", "label": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent", "terseLabel": "State income taxes, net of federal income taxes" } } }, "localname": "EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfStatutoryFederalIncomeTaxRateToEffectiveRateReportedInCompanySConsolidatedFinancialStatementsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits": { "auth_ref": [ "r902", "r911" ], "lang": { "en-us": { "role": { "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax credits. Including, but not limited to, research credit, foreign tax credit, investment tax credit, and other tax credits.", "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Percent", "negatedLabel": "Current year tax credits" } } }, "localname": "EffectiveIncomeTaxRateReconciliationTaxCredits", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfStatutoryFederalIncomeTaxRateToEffectiveRateReportedInCompanySConsolidatedFinancialStatementsDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EmployeeRelatedLiabilitiesCurrent": { "auth_ref": [ "r36" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total of the carrying values as of the balance sheet date of obligations incurred through that date and payable for obligations related to services received from employees, such as accrued salaries and bonuses, payroll taxes and fringe benefits. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Employee-related Liabilities, Current", "terseLabel": "Accrued compensation and payroll tax" } } }, "localname": "EmployeeRelatedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": { "auth_ref": [ "r577" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement.", "label": "Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount", "terseLabel": "Grant date fair value which is expected to be recognized as compensation expense", "verboseLabel": "Unrecognized compensation expense" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": { "auth_ref": [ "r577" ], "lang": { "en-us": { "role": { "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Share-based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition", "terseLabel": "Grant date fair value expected to be recognized as compensation expense over a weighted average period" } } }, "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "durationItemType" }, "us-gaap_EmployeeStockOptionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time.", "label": "Stock Options", "terseLabel": "Stock Options" } } }, "localname": "EmployeeStockOptionMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables" ], "xbrltype": "domainItemType" }, "us-gaap_EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain": { "auth_ref": [ "r153" ], "lang": { "en-us": { "role": { "documentation": "Deferred compensation related to equity-based payment arrangements. Includes, but is not limited to, employment contracts with one or more selected officers or key employees. Excludes broad group equity-based compensation plans, defined benefit pension plans, defined benefit other postretirement benefit plans and other deferred compensation that is not equivalent to a defined benefit pension plan or a defined benefit other postretirement benefit plan.", "label": "Equity-Based Arrangements, Individual Contracts, Type of Deferred Compensation [Domain]" } } }, "localname": "EquityBasedArrangementsIndividualContractsTypeOfDeferredCompensationDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails" ], "xbrltype": "domainItemType" }, "us-gaap_EquityComponentDomain": { "auth_ref": [ "r135", "r245", "r281", "r282", "r283", "r303", "r304", "r305", "r307", "r315", "r317", "r334", "r388", "r492", "r579", "r580", "r581", "r610", "r611", "r646", "r671", "r672", "r673", "r674", "r675", "r676", "r705", "r748", "r749", "r750" ], "lang": { "en-us": { "role": { "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.", "label": "Equity Component [Domain]" } } }, "localname": "EquityComponentDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]", "terseLabel": "Fair Value Measurements" } } }, "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": { "auth_ref": [ "r650", "r651", "r655" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis.", "label": "Fair Value, Recurring and Nonrecurring [Table]" } } }, "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByFairValueHierarchyLevelAxis": { "auth_ref": [ "r465", "r521", "r522", "r523", "r524", "r525", "r526", "r651", "r712", "r713", "r714", "r786", "r787", "r798", "r799", "r800" ], "lang": { "en-us": { "role": { "documentation": "Information by level within fair value hierarchy and fair value measured at net asset value per share as practical expedient.", "label": "Fair Value Hierarchy and NAV [Axis]" } } }, "localname": "FairValueByFairValueHierarchyLevelAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueByMeasurementFrequencyAxis": { "auth_ref": [ "r650", "r651", "r652", "r653", "r656" ], "lang": { "en-us": { "role": { "documentation": "Information by measurement frequency.", "label": "Measurement Frequency [Axis]" } } }, "localname": "FairValueByMeasurementFrequencyAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "FAIR VALUE MEASUREMENTS" } } }, "localname": "FairValueDisclosuresAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_FairValueDisclosuresTextBlock": { "auth_ref": [ "r654" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information.", "label": "Fair Value Disclosures [Text Block]", "terseLabel": "FAIR VALUE MEASUREMENTS" } } }, "localname": "FairValueDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurements" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueInputsLevel2Member": { "auth_ref": [ "r465", "r521", "r526", "r651", "r713", "r786", "r787", "r798", "r799", "r800" ], "lang": { "en-us": { "role": { "documentation": "Inputs other than quoted prices included within level 1 that are observable for an asset or liability, either directly or indirectly, including, but not limited to, quoted prices for similar assets or liabilities in active markets, or quoted prices for identical or similar assets or liabilities in inactive markets.", "label": "Level 2" } } }, "localname": "FairValueInputsLevel2Member", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementFrequencyDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Measurement frequency.", "label": "Measurement Frequency [Domain]" } } }, "localname": "FairValueMeasurementFrequencyDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for fair value measurements of financial and non-financial assets, liabilities and instruments classified in shareholders' equity. Disclosures include, but are not limited to, how an entity that manages a group of financial assets and liabilities on the basis of its net exposure measures the fair value of those assets and liabilities.", "label": "Fair Value Measurement, Policy [Policy Text Block]", "terseLabel": "Fair Value Measurements" } } }, "localname": "FairValueMeasurementPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": { "auth_ref": [ "r465", "r521", "r522", "r523", "r524", "r525", "r526", "r712", "r713", "r714", "r786", "r787", "r798", "r799", "r800" ], "lang": { "en-us": { "role": { "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value.", "label": "Fair Value Hierarchy and NAV [Domain]" } } }, "localname": "FairValueMeasurementsFairValueHierarchyDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValueMeasurementsRecurringMember": { "auth_ref": [ "r654", "r656" ], "lang": { "en-us": { "role": { "documentation": "Frequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, frequently measured at fair value.", "label": "Recurring" } } }, "localname": "FairValueMeasurementsRecurringMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable": { "auth_ref": [ "r190", "r194", "r198" ], "lang": { "en-us": { "role": { "documentation": "Schedule that discloses the location and fair value amounts of derivative instruments (and nonderivative instruments that are designated and qualify as hedging instruments) reported in the statement of financial position.", "label": "Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]" } } }, "localname": "FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FinanceLeasePrincipalPayments": { "auth_ref": [ "r691", "r694" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow for principal payment on finance lease.", "label": "Finance Lease, Principal Payments", "negatedTerseLabel": "Payment of capital leases" } } }, "localname": "FinanceLeasePrincipalPayments", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_FinancingReceivablesTextBlock": { "auth_ref": [ "r379", "r383" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for financing receivable.", "label": "Financing Receivables [Text Block]", "terseLabel": "ACCOUNTS RECEIVABLE, NET" } } }, "localname": "FinancingReceivablesTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNet" ], "xbrltype": "textBlockItemType" }, "us-gaap_FiniteLivedIntangibleAssetUsefulLife": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Finite-Lived Intangible Asset, Useful Life", "terseLabel": "Weighted Average Useful Life" } } }, "localname": "FiniteLivedIntangibleAssetUsefulLife", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "durationItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "auth_ref": [ "r257", "r418" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangiblesSummaryOfIntangibleAssetsDetails": { "order": 2.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Accumulated Amortization", "negatedLabel": "Definite lived intangibles, Accumulated amortization" } } }, "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable": { "auth_ref": [ "r97" ], "lang": { "en-us": { "role": { "documentation": "A table containing detailed characteristics of finite-lived intangible assets acquired during a business combination. Finite-lived intangible assets are assets that have no physical form, but have expected future economic benefit, and are expected to be used over a defined period. Acquired finite-lived intangible assets are disclosed by major class (assets that can be grouped together because they are similar, either by their nature or by their use in operations of the Entity) and in total. Additionally, any significant residual value (the expected value of the asset at the end of its useful life) and the weighted-average amortization period are also disclosed.", "label": "Finite-Lived Intangible Assets Acquired as Part of Business Combination [Table]" } } }, "localname": "FiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails": { "order": 6.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, after Year Five", "terseLabel": "Thereafter" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": { "auth_ref": [ "r105" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails": { "order": 1.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One", "terseLabel": "2023" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of amortization expense of assets, excluding financial assets, that lack physical substance, having a limited useful life.", "label": "Finite-lived Intangible Assets Amortization Expense [Table Text Block]", "terseLabel": "Summary of estimated amortization expense for definite lived intangible assets" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": { "auth_ref": [ "r105" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails": { "order": 5.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Five", "terseLabel": "2027" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": { "auth_ref": [ "r105" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails": { "order": 4.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four", "terseLabel": "2026" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": { "auth_ref": [ "r105" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails": { "order": 3.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three", "terseLabel": "2025" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": { "auth_ref": [ "r105" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails": { "order": 2.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two", "terseLabel": "2024" } } }, "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "auth_ref": [ "r414", "r417", "r418", "r420", "r719", "r723" ], "lang": { "en-us": { "role": { "documentation": "Information by major type or class of finite-lived intangible assets.", "label": "Finite-Lived Intangible Assets by Major Class [Axis]" } } }, "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails", "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Net, Amortization Expense, Fiscal Year Maturity [Abstract]", "terseLabel": "Estimated amortization expense for finite-lived intangible assets" } } }, "localname": "FiniteLivedIntangibleAssetsFutureAmortizationExpenseAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "auth_ref": [ "r103", "r723" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangiblesSummaryOfIntangibleAssetsDetails": { "order": 1.0, "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Gross", "terseLabel": "Definite lived intangibles, Gross" } } }, "localname": "FiniteLivedIntangibleAssetsGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "auth_ref": [ "r97", "r102" ], "lang": { "en-us": { "role": { "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.", "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]" } } }, "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails", "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "auth_ref": [ "r103", "r719" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangiblesSummaryOfIntangibleAssetsDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.", "label": "Finite-Lived Intangible Assets, Net", "terseLabel": "Definite lived intangibles, Net", "totalLabel": "Total" } } }, "localname": "FiniteLivedIntangibleAssetsNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsAmortizationExpenseForDefiniteLivedIntangibleAssetsDetails", "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FiniteLivedIntangibleAssetsNetAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Net [Abstract]", "terseLabel": "Summary of intangible assets" } } }, "localname": "FiniteLivedIntangibleAssetsNetAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_FinitelivedIntangibleAssetsAcquired1": { "auth_ref": [ "r415" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in assets, excluding financial assets, lacking physical substance with a definite life, from an acquisition.", "label": "Finite-lived Intangible Assets Acquired", "terseLabel": "Gross" } } }, "localname": "FinitelivedIntangibleAssetsAcquired1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": { "auth_ref": [ "r667", "r668", "r669", "r670" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount before tax of foreign currency transaction realized and unrealized gain (loss) recognized in the income statement.", "label": "Foreign Currency Transaction Gain (Loss), before Tax", "negatedLabel": "Foreign exchange loss" } } }, "localname": "ForeignCurrencyTransactionGainLossBeforeTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": { "auth_ref": [ "r677" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy.", "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]", "terseLabel": "Foreign Currency" } } }, "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ForeignIncomeTaxExpenseBenefitContinuingOperations": { "auth_ref": [ "r298" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current and deferred foreign income tax expense (benefit) attributable to income (loss) from continuing operations.", "label": "Foreign Income Tax Expense (Benefit), Continuing Operations", "terseLabel": "Foreign operations" } } }, "localname": "ForeignIncomeTaxExpenseBenefitContinuingOperations", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesConsolidatedIncomeFromContinuingOperationsBeforeProvisionForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_FurnitureAndFixturesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.", "label": "Furniture and fixtures" } } }, "localname": "FurnitureAndFixturesMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": { "auth_ref": [ "r73" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.", "label": "Gain (Loss) on Disposition of Property Plant Equipment", "negatedLabel": "Gain on sale of fixed assets" } } }, "localname": "GainLossOnSaleOfPropertyPlantEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_GainsLossesOnExtinguishmentOfDebt": { "auth_ref": [ "r73", "r131", "r132" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 }, "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Difference between the fair value of payments made and the carrying amount of debt which is extinguished prior to maturity.", "label": "Gain (Loss) on Extinguishment of Debt", "negatedLabel": "Loss on extinguishment of debt", "terseLabel": "Loss on extinguishment of debt" } } }, "localname": "GainsLossesOnExtinguishmentOfDebt", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_Goodwill": { "auth_ref": [ "r256", "r401", "r736", "r784", "r812", "r849", "r856" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails": { "order": 7.0, "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets", "weight": 1.0 }, "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill", "periodEndLabel": "Balance at end of period", "periodStartLabel": "Balance at beginning of period", "terseLabel": "Goodwill" } } }, "localname": "Goodwill", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails", "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAcquiredDuringPeriod": { "auth_ref": [ "r404", "r784" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.", "label": "Goodwill, Acquired During Period", "verboseLabel": "Acquisition" } } }, "localname": "GoodwillAcquiredDuringPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "GOODWILL AND OTHER INTANGIBLE ASSETS" } } }, "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": { "auth_ref": [ "r107" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for goodwill and intangible assets.", "label": "Goodwill and Intangible Assets Disclosure [Text Block]", "terseLabel": "GOODWILL AND OTHER INTANGIBLE ASSETS" } } }, "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssets" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock": { "auth_ref": [ "r94", "r100" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets.", "label": "Goodwill and Intangible Assets, Policy [Policy Text Block]", "terseLabel": "Goodwill and Intangible Assets" } } }, "localname": "GoodwillAndIntangibleAssetsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": { "auth_ref": [ "r408" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of foreign currency translation gain (loss) which increases (decreases) an asset representing future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill, Foreign Currency Translation Gain (Loss)", "terseLabel": "Foreign currency translation adjustments" } } }, "localname": "GoodwillForeignCurrencyTranslationGainLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillGross": { "auth_ref": [ "r403", "r410", "r784" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill, Gross", "terseLabel": "Gross goodwill" } } }, "localname": "GoodwillGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsImpairmentOfGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillImpairedAccumulatedImpairmentLoss": { "auth_ref": [ "r403", "r410", "r784" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of accumulated impairment loss for an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill, Impaired, Accumulated Impairment Loss", "terseLabel": "Accumulated impairment losses" } } }, "localname": "GoodwillImpairedAccumulatedImpairmentLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsImpairmentOfGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillImpairmentLoss": { "auth_ref": [ "r73", "r402", "r407", "r413", "r784" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of loss from the write-down of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill, Impairment Loss", "netLabel": "Goodwill impairment charge", "verboseLabel": "Impairment losses" } } }, "localname": "GoodwillImpairmentLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsImpairmentOfGoodwillDetails", "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Goodwill [Line Items]", "terseLabel": "Goodwill" } } }, "localname": "GoodwillLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails" ], "xbrltype": "stringItemType" }, "us-gaap_GoodwillPurchaseAccountingAdjustments": { "auth_ref": [ "r165", "r855" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) from adjustments after acquisition date under purchase accounting of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.", "label": "Goodwill, Purchase Accounting Adjustments", "terseLabel": "Acquisition measurement period adjustment" } } }, "localname": "GoodwillPurchaseAccountingAdjustments", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails", "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GoodwillRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Goodwill [Roll Forward]", "terseLabel": "Summary of changes in goodwill" } } }, "localname": "GoodwillRollForward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails" ], "xbrltype": "stringItemType" }, "us-gaap_GrossProfit": { "auth_ref": [ "r54", "r297", "r352", "r357", "r363", "r366", "r384", "r438", "r439", "r441", "r442", "r443", "r445", "r447", "r449", "r450", "r658", "r783", "r867" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.", "label": "Gross Profit", "totalLabel": "Gross profit" } } }, "localname": "GrossProfit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IPOMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "First sale of stock by a private company to the public.", "label": "Initial public offering" } } }, "localname": "IPOMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r52", "r208", "r217", "r232", "r352", "r357", "r363", "r366", "r739", "r783" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "totalLabel": "Income before provision for income taxes" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesConsolidatedIncomeFromContinuingOperationsBeforeProvisionForIncomeTaxesDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeStatementAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Consolidated Statements of Operations and Comprehensive Income" } } }, "localname": "IncomeStatementAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis": { "auth_ref": [ "r801", "r802" ], "lang": { "en-us": { "role": { "documentation": "Information by name of disposal group.", "label": "Disposal Group Name [Axis]" } } }, "localname": "IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Income Statement, Balance Sheet and Additional Disclosures by Disposal Groups, Including Discontinued Operations [Line Items]", "terseLabel": "Assets and Liabilities Held for Sale" } } }, "localname": "IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable": { "auth_ref": [ "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r9", "r10", "r11", "r12", "r115", "r116" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about a disposal group. Includes, but is not limited to, a discontinued operation, disposal classified as held-for-sale or disposed of by means other than sale or disposal of an individually significant component.", "label": "Disposal Groups, Including Discontinued Operations [Table]" } } }, "localname": "IncomeStatementBalanceSheetAndAdditionalDisclosuresByDisposalGroupsIncludingDiscontinuedOperationsTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationAxis": { "auth_ref": [ "r422", "r426" ], "lang": { "en-us": { "role": { "documentation": "Information by location in the income statement.", "label": "Income Statement Location [Axis]" } } }, "localname": "IncomeStatementLocationAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeStatementLocationDomain": { "auth_ref": [ "r426" ], "lang": { "en-us": { "role": { "documentation": "Location in the income statement.", "label": "Income Statement Location [Domain]" } } }, "localname": "IncomeStatementLocationDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IncomeTaxDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "INCOME TAXES" } } }, "localname": "IncomeTaxDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxDisclosureTextBlock": { "auth_ref": [ "r299", "r593", "r598", "r604", "r612", "r617", "r619", "r620", "r621" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.", "label": "Income Tax Disclosure [Text Block]", "verboseLabel": "INCOME TAXES" } } }, "localname": "IncomeTaxDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxes" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r300", "r316", "r317", "r350", "r591", "r613", "r618", "r744" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Income Tax Expense (Benefit)", "negatedLabel": "Provision for income taxes", "totalLabel": "Total provision for income taxes" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesBenefitForIncomeTaxesDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Income Tax Expense (Benefit), Continuing Operations, by Jurisdiction [Abstract]" } } }, "localname": "IncomeTaxExpenseBenefitContinuingOperationsByJurisdictionAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxPolicyTextBlock": { "auth_ref": [ "r280", "r587", "r588", "r598", "r599", "r603", "r607" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.", "label": "Income Tax, Policy [Policy Text Block]", "terseLabel": "Income Taxes" } } }, "localname": "IncomeTaxPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxesPaidNet": { "auth_ref": [ "r77" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income, net of any cash received during the current period as refunds for the overpayment of taxes.", "label": "Income Taxes Paid, Net", "terseLabel": "Cash paid for income taxes, net" } } }, "localname": "IncomeTaxesPaidNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayableAndOtherOperatingLiabilities": { "auth_ref": [ "r836" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in obligations incurred but not paid, and operating obligations classified as other.", "label": "Increase (Decrease) in Accounts Payable and Other Operating Liabilities", "terseLabel": "Accounts payable and other liabilities" } } }, "localname": "IncreaseDecreaseInAccountsPayableAndOtherOperatingLiabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "auth_ref": [ "r72" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", "label": "Increase (Decrease) in Accounts Receivable", "negatedLabel": "Accounts receivable" } } }, "localname": "IncreaseDecreaseInAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInInventories": { "auth_ref": [ "r72" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", "label": "Increase (Decrease) in Inventories", "negatedLabel": "Inventories" } } }, "localname": "IncreaseDecreaseInInventories", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Capital [Abstract]", "terseLabel": "Changes in operating assets and liabilities, net of impact of acquisitions:" } } }, "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "auth_ref": [ "r72" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.", "label": "Increase (Decrease) in Prepaid Expense and Other Assets", "negatedTerseLabel": "Prepaid expenses and other assets" } } }, "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]" } } }, "localname": "IncreaseDecreaseInStockholdersEquityRollForward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": { "auth_ref": [ "r323", "r324", "r325", "r330", "r543" ], "lang": { "en-us": { "role": { "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.", "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-based Payment Arrangements", "terseLabel": "Stock-based awards" } } }, "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassAxis": { "auth_ref": [ "r416", "r419" ], "lang": { "en-us": { "role": { "documentation": "Information by type or class of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit.", "label": "Indefinite-lived Intangible Assets [Axis]" } } }, "localname": "IndefiniteLivedIntangibleAssetsByMajorClassAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IndefiniteLivedIntangibleAssetsExcludingGoodwill": { "auth_ref": [ "r106" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of assets, excluding financial assets and goodwill, lacking physical substance and having a projected indefinite period of benefit.", "label": "Indefinite-lived Intangible Assets (Excluding Goodwill)", "terseLabel": "Indefinite lived intangibles" } } }, "localname": "IndefiniteLivedIntangibleAssetsExcludingGoodwill", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IndefiniteLivedIntangibleAssetsMajorClassNameDomain": { "auth_ref": [ "r99", "r106" ], "lang": { "en-us": { "role": { "documentation": "The major class of indefinite-lived intangible asset (for example, trade names, etc. but not all-inclusive), excluding goodwill. A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of the company.", "label": "Indefinite-lived Intangible Assets, Major Class Name [Domain]" } } }, "localname": "IndefiniteLivedIntangibleAssetsMajorClassNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_IntangibleAssetsNetExcludingGoodwill": { "auth_ref": [ "r95", "r101" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.", "label": "Intangible Assets, Net (Excluding Goodwill)", "terseLabel": "Intangible assets, net", "verboseLabel": "Indefinite lived intangibles, Net" } } }, "localname": "IntangibleAssetsNetExcludingGoodwill", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_IntangibleAssetsNetIncludingGoodwillAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Intangible Assets, Net (Including Goodwill) [Abstract]", "terseLabel": "Goodwill and Other Intangible Assets" } } }, "localname": "IntangibleAssetsNetIncludingGoodwillAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails" ], "xbrltype": "stringItemType" }, "us-gaap_InterestExpense": { "auth_ref": [ "r203", "r219", "r284", "r346", "r680" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of the cost of borrowed funds accounted for as interest expense.", "label": "Interest Expense", "negatedLabel": "Interest expense" } } }, "localname": "InterestExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_InterestPaidNet": { "auth_ref": [ "r289", "r292", "r293" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.", "label": "Interest Paid, Excluding Capitalized Interest, Operating Activities", "terseLabel": "Cash paid for interest" } } }, "localname": "InterestPaidNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_InterestPayableCurrent": { "auth_ref": [ "r36" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails": { "order": 3.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of [accrued] interest payable on all forms of debt, including trade payables, that has been incurred and is unpaid. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Interest Payable, Current", "terseLabel": "Accrued interest payable" } } }, "localname": "InterestPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InterestRateCashFlowHedgeGainLossToBeReclassifiedDuringNext12MonthsNet": { "auth_ref": [ "r199" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The estimated net amount of unrealized gains or losses on interest rate cash flow hedges as of the balance sheet date expected to be reclassified to earnings within the next twelve months.", "label": "Interest Rate Cash Flow Hedge Gain (Loss) to be Reclassified During Next 12 Months, Net", "terseLabel": "Amount reclassified from AOCI into interest expense within next twelve months" } } }, "localname": "InterestRateCashFlowHedgeGainLossToBeReclassifiedDuringNext12MonthsNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InterestRateSwapMember": { "auth_ref": [ "r810" ], "lang": { "en-us": { "role": { "documentation": "Forward based contracts in which two parties agree to swap periodic payments that are fixed at the outset of the swap contract with variable payments based on a market interest rate (index rate) over a specified period.", "label": "Interest Rate Swap" } } }, "localname": "InterestRateSwapMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails", "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfInterestRateSwapsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_InventoryDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "INVENTORIES" } } }, "localname": "InventoryDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_InventoryDisclosureTextBlock": { "auth_ref": [ "r398" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.", "label": "Inventory Disclosure [Text Block]", "terseLabel": "INVENTORIES" } } }, "localname": "InventoryDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureInventories" ], "xbrltype": "textBlockItemType" }, "us-gaap_InventoryFinishedGoodsAndWorkInProcessNetOfReserves": { "auth_ref": [ "r93", "r828" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureInventoriesDetails": { "order": 1.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregated amount of merchandise or goods held by the entity and readily available for future sale plus items held by the entity which are partially complete or in the process of being readied for future sale. This amount is net of valuation reserves and adjustments.", "label": "Inventory, Finished Goods and Work in Process, Net of Reserves", "terseLabel": "Finished goods" } } }, "localname": "InventoryFinishedGoodsAndWorkInProcessNetOfReserves", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureInventoriesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryNet": { "auth_ref": [ "r264", "r774", "r812" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureInventoriesDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Inventory, Net", "terseLabel": "Inventories", "totalLabel": "Total" } } }, "localname": "InventoryNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureInventoriesDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryPolicyTextBlock": { "auth_ref": [ "r253", "r263", "r333", "r396", "r397", "r398", "r717", "r779" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.", "label": "Inventory, Policy [Policy Text Block]", "terseLabel": "Inventories" } } }, "localname": "InventoryPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_InventoryRawMaterialsAndSuppliesNetOfReserves": { "auth_ref": [ "r93", "r828" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureInventoriesDetails": { "order": 3.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Aggregated amount of unprocessed materials to be used in manufacturing or production process and supplies that will be consumed. This amount is net of valuation reserves and adjustments.", "label": "Inventory, Raw Materials and Supplies, Net of Reserves", "terseLabel": "Raw materials and supplies" } } }, "localname": "InventoryRawMaterialsAndSuppliesNetOfReserves", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureInventoriesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryWorkInProcessNetOfReserves": { "auth_ref": [ "r93", "r776" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureInventoriesDetails": { "order": 2.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Carrying amount, net of reserves and adjustments, as of the balance sheet date of merchandise or goods which are partially completed. This inventory is generally comprised of raw materials, labor and factory overhead costs, which require further materials, labor and overhead to be converted into finished goods, and which generally require the use of estimates to determine percentage complete and pricing.", "label": "Inventory, Work in Process, Net of Reserves", "terseLabel": "Work-in-process" } } }, "localname": "InventoryWorkInProcessNetOfReserves", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureInventoriesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LandMember": { "auth_ref": [ "r873" ], "lang": { "en-us": { "role": { "documentation": "Part of earth's surface not covered by water.", "label": "Land" } } }, "localname": "LandMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LeaseCost": { "auth_ref": [ "r697", "r811" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lease cost recognized by lessee for lease contract.", "label": "Lease, Cost", "totalLabel": "Total" } } }, "localname": "LeaseCost", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LeaseCostTableTextBlock": { "auth_ref": [ "r918" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.", "label": "Lease, Cost [Table Text Block]", "terseLabel": "Schedule of operating lease expense" } } }, "localname": "LeaseCostTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LeasesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "LEASES" } } }, "localname": "LeasesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_LesseeLeasesPolicyTextBlock": { "auth_ref": [ "r693" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee.", "label": "Lessee, Leases [Policy Text Block]", "terseLabel": "Leases" } } }, "localname": "LesseeLeasesPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "auth_ref": [ "r919" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.", "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]", "terseLabel": "Summary of future minimum lease payments required under operating leases" } } }, "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "auth_ref": [ "r698" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.", "label": "Lessee, Operating Lease, Liability, to be Paid", "totalLabel": "Total future lease payments" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "auth_ref": [ "r698" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails": { "order": 1.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year One", "terseLabel": "2023" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": { "auth_ref": [ "r698" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails": { "order": 5.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five", "terseLabel": "2027" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "auth_ref": [ "r698" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails": { "order": 4.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four", "terseLabel": "2026" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "auth_ref": [ "r698" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails": { "order": 3.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three", "terseLabel": "2025" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "auth_ref": [ "r698" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails": { "order": 2.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two", "terseLabel": "2024" } } }, "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "auth_ref": [ "r698" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails": { "order": 1.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.", "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount", "negatedLabel": "Less: Amount representing interest" } } }, "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LesseeOperatingLeasesTextBlock": { "auth_ref": [ "r699" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.", "label": "Lessee, Operating Leases [Text Block]", "terseLabel": "LEASES" } } }, "localname": "LesseeOperatingLeasesTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeases" ], "xbrltype": "textBlockItemType" }, "us-gaap_LetterOfCreditMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A document typically issued by a financial institution which acts as a guarantee of payment to a beneficiary, or as the source of payment for a specific transaction (for example, wiring funds to a foreign exporter if and when specified merchandise is accepted pursuant to the terms of the letter of credit).", "label": "Letter of credit" } } }, "localname": "LetterOfCreditMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LettersOfCreditOutstandingAmount": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date.", "label": "Letters of Credit Outstanding, Amount", "terseLabel": "Outstanding letters of credit" } } }, "localname": "LettersOfCreditOutstandingAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Liabilities": { "auth_ref": [ "r35", "r297", "r384", "r438", "r439", "r441", "r442", "r443", "r445", "r447", "r449", "r450", "r630", "r633", "r634", "r658", "r782", "r867", "r921", "r922" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 4.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.", "label": "Liabilities", "totalLabel": "Total liabilities" } } }, "localname": "Liabilities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r27", "r213", "r228", "r812", "r839", "r848", "r916" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", "label": "Liabilities and Equity", "totalLabel": "Total liabilities, mezzanine equity and shareholders' equity" } } }, "localname": "LiabilitiesAndStockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities and Equity [Abstract]", "terseLabel": "Liabilities, Mezzanine Equity and Shareholders' Equity" } } }, "localname": "LiabilitiesAndStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r37", "r252", "r297", "r384", "r438", "r439", "r441", "r442", "r443", "r445", "r447", "r449", "r450", "r630", "r633", "r634", "r658", "r812", "r867", "r921", "r922" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.", "label": "Liabilities, Current", "totalLabel": "Total current liabilities" } } }, "localname": "LiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities, Current [Abstract]", "terseLabel": "Current liabilities" } } }, "localname": "LiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesFairValueDisclosureAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Liabilities, Fair Value Disclosure [Abstract]", "terseLabel": "Liabilities:" } } }, "localname": "LiabilitiesFairValueDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesOfDisposalGroupIncludingDiscontinuedOperationCurrent": { "auth_ref": [ "r0", "r1", "r8", "r109", "r114", "r249", "r250" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount classified as liabilities attributable to disposal group held for sale or disposed of, expected to be disposed of within one year or the normal operating cycle, if longer.", "label": "Disposal Group, Including Discontinued Operation, Liabilities, Current", "terseLabel": "Liabilities current, held for sale", "verboseLabel": "Liabilities held for sale" } } }, "localname": "LiabilitiesOfDisposalGroupIncludingDiscontinuedOperationCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDispositionsAndAssetsAndLiabilitiesHeldForSaleDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCredit": { "auth_ref": [ "r19", "r212", "r223" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.", "label": "Long-term Line of Credit", "verboseLabel": "Amount outstanding" } } }, "localname": "LineOfCredit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditFacilityAxis": { "auth_ref": [ "r32", "r838" ], "lang": { "en-us": { "role": { "documentation": "Information by name of lender, which may be a single entity (for example, but not limited to, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit.", "label": "Lender Name [Axis]" } } }, "localname": "LineOfCreditFacilityAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LineOfCreditFacilityLenderDomain": { "auth_ref": [ "r32", "r838" ], "lang": { "en-us": { "role": { "documentation": "Identification of the lender, which may be a single entity (for example, a bank, pension fund, venture capital firm) or a group of entities that participate in the line of credit, including a letter of credit facility.", "label": "Line of Credit Facility, Lender [Domain]" } } }, "localname": "LineOfCreditFacilityLenderDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LineOfCreditFacilityLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Line of Credit Facility [Line Items]", "terseLabel": "Debt" } } }, "localname": "LineOfCreditFacilityLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": { "auth_ref": [ "r32" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.", "label": "Line of Credit Facility, Maximum Borrowing Capacity", "terseLabel": "Maximum borrowing capacity" } } }, "localname": "LineOfCreditFacilityMaximumBorrowingCapacity", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditFacilityRemainingBorrowingCapacity": { "auth_ref": [ "r32" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of borrowing capacity currently available under the credit facility (current borrowing capacity less the amount of borrowings outstanding).", "label": "Line of Credit Facility, Remaining Borrowing Capacity", "terseLabel": "Available borrowing capacity" } } }, "localname": "LineOfCreditFacilityRemainingBorrowingCapacity", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditFacilityTable": { "auth_ref": [ "r32", "r838" ], "lang": { "en-us": { "role": { "documentation": "A table or schedule providing information pertaining to short-term or long-term contractual arrangements with lenders, including letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line.", "label": "Line of Credit Facility [Table]" } } }, "localname": "LineOfCreditFacilityTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "The fee, expressed as a percentage of the line of credit facility, for available but unused credit capacity under the credit facility.", "label": "Line of Credit Facility, Unused Capacity, Commitment Fee Percentage", "terseLabel": "Unused line fee (as a percent)" } } }, "localname": "LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails" ], "xbrltype": "percentItemType" }, "us-gaap_LoansPayableMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Borrowing supported by a written promise to pay an obligation.", "label": "Short-Term Loan Facility" } } }, "localname": "LoansPayableMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LondonInterbankOfferedRateLIBORMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Interest rate at which a bank borrows funds from other banks in the London interbank market.", "label": "LIBOR" } } }, "localname": "LondonInterbankOfferedRateLIBORMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LongTermDebtCurrent": { "auth_ref": [ "r34" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.", "label": "Long-term Debt, Current Maturities", "terseLabel": "Current portion of long-term debt" } } }, "localname": "LongTermDebtCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths": { "auth_ref": [ "r129", "r302", "r469" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails": { "order": 1.0, "parentTag": "cdre_LongTermDebtMaturitiesRepaymentsOfTotalPrincipalPayments", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Long-Term Debt, Maturity, Year One", "verboseLabel": "2023" } } }, "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive": { "auth_ref": [ "r129", "r302", "r469" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails": { "order": 5.0, "parentTag": "cdre_LongTermDebtMaturitiesRepaymentsOfTotalPrincipalPayments", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Long-Term Debt, Maturity, Year Five", "terseLabel": "2027" } } }, "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour": { "auth_ref": [ "r129", "r302", "r469" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails": { "order": 4.0, "parentTag": "cdre_LongTermDebtMaturitiesRepaymentsOfTotalPrincipalPayments", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Long-Term Debt, Maturity, Year Four", "terseLabel": "2026" } } }, "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree": { "auth_ref": [ "r129", "r302", "r469" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails": { "order": 3.0, "parentTag": "cdre_LongTermDebtMaturitiesRepaymentsOfTotalPrincipalPayments", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Long-Term Debt, Maturity, Year Three", "terseLabel": "2025" } } }, "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo": { "auth_ref": [ "r129", "r302", "r469" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails": { "order": 2.0, "parentTag": "cdre_LongTermDebtMaturitiesRepaymentsOfTotalPrincipalPayments", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).", "label": "Long-Term Debt, Maturity, Year Two", "terseLabel": "2024" } } }, "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtSummaryOfAggregatePrincipalPaymentOfLongTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongTermDebtNoncurrent": { "auth_ref": [ "r260" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, excluding unamortized premium (discount) and debt issuance cost, of long-term debt classified as noncurrent. Excludes lease obligation.", "label": "Long-term Debt, Excluding Current Maturities", "terseLabel": "Long-term debt", "totalLabel": "Total long-term debt, net" } } }, "localname": "LongTermDebtNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LongtermDebtTypeAxis": { "auth_ref": [ "r40" ], "lang": { "en-us": { "role": { "documentation": "Information by type of long-term debt.", "label": "Long-term Debt, Type [Axis]" } } }, "localname": "LongtermDebtTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtFairValueOfDebtDetails", "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails" ], "xbrltype": "stringItemType" }, "us-gaap_LongtermDebtTypeDomain": { "auth_ref": [ "r40", "r130" ], "lang": { "en-us": { "role": { "documentation": "Type of long-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer.", "label": "Long-term Debt, Type [Domain]" } } }, "localname": "LongtermDebtTypeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtFairValueOfDebtDetails", "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails" ], "xbrltype": "domainItemType" }, "us-gaap_LossContingencyDamagesAwardedValue": { "auth_ref": [ "r863", "r864", "r865" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of damages awarded to the plaintiff in the legal matter.", "label": "Loss Contingency, Damages Awarded, Value", "terseLabel": "Damage awarded" } } }, "localname": "LossContingencyDamagesAwardedValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureCommitmentsAndContingenciesLegalProceedingsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_MachineryAndEquipmentMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment.", "label": "Machinery and equipment" } } }, "localname": "MachineryAndEquipmentMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_MaterialReconcilingItemsMember": { "auth_ref": [ "r91" ], "lang": { "en-us": { "role": { "documentation": "Items used in reconciling reportable segments' amounts to consolidated amount. Excludes corporate-level activity.", "label": "Reconciling Items" } } }, "localname": "MaterialReconcilingItemsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_MovementInStandardAndExtendedProductWarrantyIncreaseDecreaseRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Movement in Standard and Extended Product Warranty Accrual, Increase (Decrease) [Roll Forward]", "terseLabel": "Changes in the Company's accrued warranties and related costs" } } }, "localname": "MovementInStandardAndExtendedProductWarrantyIncreaseDecreaseRollForward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAccruedWarrantiesAndRelatedCostsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r291" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.", "label": "Net Cash Provided by (Used in) Financing Activities", "totalLabel": "Net cash provided by (used in) financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]", "terseLabel": "Cash Flows From Financing Activities:" } } }, "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r291" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.", "label": "Net Cash Provided by (Used in) Investing Activities", "totalLabel": "Net cash used in investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]", "terseLabel": "Cash Flows From Investing Activities:" } } }, "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r70", "r71", "r74" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0 } }, "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.", "label": "Net Cash Provided by (Used in) Operating Activities", "totalLabel": "Net cash provided by operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]", "terseLabel": "Cash Flows From Operating Activities:" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r53", "r74", "r218", "r231", "r250", "r275", "r278", "r283", "r297", "r306", "r310", "r311", "r312", "r313", "r316", "r317", "r326", "r352", "r357", "r363", "r366", "r384", "r438", "r439", "r441", "r442", "r443", "r445", "r447", "r449", "r450", "r648", "r658", "r783", "r867" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncomes": { "order": 2.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.", "label": "Net Income (Loss) Attributable to Parent", "terseLabel": "Net income", "totalLabel": "Net income", "verboseLabel": "Net income" } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic": { "auth_ref": [ "r310", "r311", "r312", "r313", "r319", "r320", "r327", "r330", "r352", "r357", "r363", "r366", "r783" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities; of income (loss) available to common shareholders.", "label": "Net Income (Loss) Available to Common Stockholders, Basic", "verboseLabel": "Net income (loss)" } } }, "localname": "NetIncomeLossAvailableToCommonStockholdersBasic", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetIncomeLossAvailableToCommonStockholdersBasicAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Net Income (Loss) Available to Common Stockholders, Basic [Abstract]", "terseLabel": "Numerator for basic and diluted earnings per share:" } } }, "localname": "NetIncomeLossAvailableToCommonStockholdersBasicAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.", "label": "New Accounting Pronouncements, Policy [Policy Text Block]", "terseLabel": "Recent Accounting Pronouncements" } } }, "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NonUsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Countries excluding the United States of America (US).", "label": "International." } } }, "localname": "NonUsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionIncludesAllDistributionSalesDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NoncashInvestingAndFinancingItemsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Noncash Investing and Financing Items [Abstract]", "terseLabel": "Supplemental Disclosure of Non-Cash Investing and Financing Activities:" } } }, "localname": "NoncashInvestingAndFinancingItemsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NoncompeteAgreementsMember": { "auth_ref": [ "r175" ], "lang": { "en-us": { "role": { "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party.", "label": "Non-compete agreements" } } }, "localname": "NoncompeteAgreementsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_NonoperatingIncomeExpense": { "auth_ref": [ "r58" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).", "label": "Nonoperating Income (Expense)", "totalLabel": "Total other expense, net" } } }, "localname": "NonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_NonoperatingIncomeExpenseAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Nonoperating Income (Expense) [Abstract]", "terseLabel": "Other expense" } } }, "localname": "NonoperatingIncomeExpenseAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "stringItemType" }, "us-gaap_NumberOfReportableSegments": { "auth_ref": [ "r846" ], "lang": { "en-us": { "role": { "documentation": "Number of segments reported by the entity. A reportable segment is a component of an entity for which there is an accounting requirement to report separate financial information on that component in the entity's financial statements.", "label": "Number of Reportable Segments", "terseLabel": "Number of reportable segments" } } }, "localname": "NumberOfReportableSegments", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSegmentDataDetails" ], "xbrltype": "integerItemType" }, "us-gaap_NumberOfReportingUnits": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of reporting units tested for impairment of goodwill. A reporting unit is an operating segment or one level below an operating segment.", "label": "Number of Reporting Units", "terseLabel": "Number of reporting units" } } }, "localname": "NumberOfReportingUnits", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails" ], "xbrltype": "integerItemType" }, "us-gaap_OffsettingAssetsLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Offsetting Assets [Line Items]", "terseLabel": "Interest Rate Swaps" } } }, "localname": "OffsettingAssetsLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfInterestRateSwapsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_OffsettingAssetsTable": { "auth_ref": [ "r45", "r46" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about derivative and financial assets that are subject to offsetting, including enforceable master netting arrangements.", "label": "Offsetting Assets [Table]" } } }, "localname": "OffsettingAssetsTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfInterestRateSwapsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_OperatingExpenses": { "auth_ref": [], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.", "label": "Operating Expenses", "totalLabel": "Total operating expenses" } } }, "localname": "OperatingExpenses", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingExpensesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Operating Expenses [Abstract]", "terseLabel": "Operating expenses" } } }, "localname": "OperatingExpensesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "stringItemType" }, "us-gaap_OperatingIncomeLoss": { "auth_ref": [ "r352", "r357", "r363", "r366", "r783" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The net result for the period of deducting operating expenses from operating revenues.", "label": "Operating Income (Loss)", "totalLabel": "Operating income" } } }, "localname": "OperatingIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiability": { "auth_ref": [ "r689" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails": { "order": 2.0, "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0 }, "http://www.cadre-holdings.com/role/DisclosureLeasesScheduleOfOperatingAssetsAndLiabilitiesDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.", "label": "Operating Lease, Liability", "terseLabel": "Operating lease liabilities", "totalLabel": "Total lease liabilities", "verboseLabel": "Present value of lease liabilities" } } }, "localname": "OperatingLeaseLiability", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderOperatingLeasesDetails", "http://www.cadre-holdings.com/role/DisclosureLeasesScheduleOfOperatingAssetsAndLiabilitiesDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityCurrent": { "auth_ref": [ "r689" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails": { "order": 7.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 }, "http://www.cadre-holdings.com/role/DisclosureLeasesScheduleOfOperatingAssetsAndLiabilitiesDetails": { "order": 2.0, "parentTag": "us-gaap_OperatingLeaseLiability", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.", "label": "Operating Lease, Liability, Current", "terseLabel": "Current lease liabilities" } } }, "localname": "OperatingLeaseLiabilityCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails", "http://www.cadre-holdings.com/role/DisclosureLeasesScheduleOfOperatingAssetsAndLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList": { "auth_ref": [ "r690" ], "lang": { "en-us": { "role": { "documentation": "Indicates line item in statement of financial position that includes current operating lease liability.", "label": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]" } } }, "localname": "OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesScheduleOfOperatingAssetsAndLiabilitiesDetails" ], "xbrltype": "enumerationSetItemType" }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "auth_ref": [ "r689" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureLeasesScheduleOfOperatingAssetsAndLiabilitiesDetails": { "order": 1.0, "parentTag": "us-gaap_OperatingLeaseLiability", "weight": 1.0 }, "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.", "label": "Operating Lease, Liability, Noncurrent", "terseLabel": "Long-term operating lease liabilities" } } }, "localname": "OperatingLeaseLiabilityNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesScheduleOfOperatingAssetsAndLiabilitiesDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasePayments": { "auth_ref": [ "r692", "r694" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.", "label": "Operating Lease, Payments", "terseLabel": "Cash paid for amounts included in the measurement of lease liabilities - Operating cash flows", "verboseLabel": "Operating cash flows - operating leases" } } }, "localname": "OperatingLeasePayments", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesSupplementalCashFlowInformationRelatedToLeasesDetails", "http://www.cadre-holdings.com/role/DisclosureLeasesWeightedAverageRemainingLeaseTermAndDiscountRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseRightOfUseAsset": { "auth_ref": [ "r688" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 7.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of lessee's right to use underlying asset under operating lease.", "label": "Operating Lease, Right-of-Use Asset", "terseLabel": "Operating lease assets" } } }, "localname": "OperatingLeaseRightOfUseAsset", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesScheduleOfOperatingAssetsAndLiabilitiesDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": { "auth_ref": [ "r696", "r811" ], "lang": { "en-us": { "role": { "documentation": "Weighted average discount rate for operating lease calculated at point in time.", "label": "Operating Lease, Weighted Average Discount Rate, Percent", "terseLabel": "Operating leases weighted average discount rate" } } }, "localname": "OperatingLeaseWeightedAverageDiscountRatePercent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesWeightedAverageRemainingLeaseTermAndDiscountRateDetails" ], "xbrltype": "percentItemType" }, "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": { "auth_ref": [ "r695", "r811" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Operating Lease, Weighted Average Remaining Lease Term", "terseLabel": "Operating leases weighted average remaining lease term (years):" } } }, "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesWeightedAverageRemainingLeaseTermAndDiscountRateDetails" ], "xbrltype": "durationItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDue": { "auth_ref": [ "r239", "r241" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for leases having an initial or remaining non-cancelable letter-terms in excess of one year.", "label": "Operating Leases, Future Minimum Payments Due", "totalLabel": "Total minimum lease payments" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderNonCancelableOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent": { "auth_ref": [ "r239", "r241" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments Due, Next 12 Months", "terseLabel": "2022" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderNonCancelableOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFiveYears": { "auth_ref": [ "r239", "r241" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Five Years", "terseLabel": "2026" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInFiveYears", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderNonCancelableOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInFourYears": { "auth_ref": [ "r239", "r241" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the fourth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Four Years", "terseLabel": "2025" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInFourYears", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderNonCancelableOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInThreeYears": { "auth_ref": [ "r239", "r241" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the third fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Three Years", "terseLabel": "2024" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInThreeYears", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderNonCancelableOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears": { "auth_ref": [ "r239", "r241" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due in Two Years", "terseLabel": "2023" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueInTwoYears", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderNonCancelableOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesFutureMinimumPaymentsDueThereafter": { "auth_ref": [ "r239", "r241" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due after the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Operating Leases, Future Minimum Payments, Due Thereafter", "terseLabel": "Thereafter" } } }, "localname": "OperatingLeasesFutureMinimumPaymentsDueThereafter", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesFutureMinimumLeasePaymentsUnderNonCancelableOperatingLeasesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock": { "auth_ref": [ "r237", "r238", "r239", "r240", "r242" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure for lessee's operating leases. Includes, but is not limited to, description of lessee's operating lease, existence and terms of renewal or purchase options and escalation clauses, restrictions imposed by lease, such as those concerning dividends, additional debt, and further leasing, rent holidays, rent concessions, or leasehold improvement incentives and unusual provisions or conditions.", "label": "Lessee, Operating Lease, Disclosure [Table Text Block]", "terseLabel": "Summary of future minimum lease payments required under non-cancelable operating leases" } } }, "localname": "OperatingLeasesOfLesseeDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureLeasesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_OperatingSegmentsMember": { "auth_ref": [ "r356", "r357", "r358", "r359", "r360", "r366" ], "lang": { "en-us": { "role": { "documentation": "Identifies components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity.", "label": "Operating segments" } } }, "localname": "OperatingSegmentsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Organization, Consolidation and Presentation of Financial Statements [Abstract]", "terseLabel": "Nature of Operations and Basis of Presentation" } } }, "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_OtherAccruedLiabilitiesCurrent": { "auth_ref": [ "r36" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails": { "order": 6.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.", "label": "Other Accrued Liabilities, Current", "terseLabel": "Other accrued liabilities" } } }, "localname": "OtherAccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsCurrent": { "auth_ref": [ "r266", "r812" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current assets classified as other.", "label": "Other Assets, Current", "terseLabel": "Other current assets" } } }, "localname": "OtherAssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsMember": { "auth_ref": [ "r190", "r198" ], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing other assets.", "label": "Other assets" } } }, "localname": "OtherAssetsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OtherAssetsNoncurrent": { "auth_ref": [ "r258" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncurrent assets classified as other.", "label": "Other Assets, Noncurrent", "terseLabel": "Other assets" } } }, "localname": "OtherAssetsNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r181", "r182", "r184" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncomes": { "order": 2.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent", "terseLabel": "Foreign currency translation adjustments, net of tax(3)", "verboseLabel": "Foreign currency translation adjustments" } } }, "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeForeignCurrencyTranslationAdjustmentTaxPortionAttributableToParent": { "auth_ref": [ "r181", "r182", "r184" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of tax expense (benefit), after reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax, Portion Attributable to Parent", "terseLabel": "Foreign currency translation adjustments, net of tax expense" } } }, "localname": "OtherComprehensiveIncomeForeignCurrencyTranslationAdjustmentTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncomeParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax": { "auth_ref": [ "r270", "r272" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncomes": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after tax and reclassification, of gain (loss) from derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness.", "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), after Reclassification and Tax", "totalLabel": "Total unrealized gains on interest rate swaps, net of tax" } } }, "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAfterTax": { "auth_ref": [ "r270", "r272" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncomes": { "order": 1.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after tax and before reclassification, of gain (loss) from derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness.", "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), before Reclassification, after Tax", "terseLabel": "Unrealized holding gains, net of tax(1)", "verboseLabel": "Gain recognized in other comprehensive income" } } }, "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationAfterTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax": { "auth_ref": [ "r273" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, before reclassification, of tax expense (benefit) for gain (loss) from derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness.", "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), before Reclassification, Tax", "terseLabel": "Unrealized holding gains, net of tax expense" } } }, "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossBeforeReclassificationTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncomeParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationAfterTax": { "auth_ref": [ "r272", "r274" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncomes": { "order": 2.0, "parentTag": "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossAfterReclassificationAndTax", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after tax, of reclassification of gain (loss) from accumulated other comprehensive income (AOCI) for derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness.", "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), Reclassification, after Tax", "negatedLabel": "Reclassification adjustments for gains included in net loss, net of tax(2)", "negatedTerseLabel": "Amount reclassified from accumulated other comprehensive loss to earnings" } } }, "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationAfterTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationTax": { "auth_ref": [ "r273" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of tax expense (benefit) for reclassification of gain (loss) from accumulated other comprehensive income (AOCI) for derivative instrument designated and qualifying as cash flow hedge included in assessment of hedge effectiveness.", "label": "Other Comprehensive Income (Loss), Cash Flow Hedge, Gain (Loss), Reclassification, Tax", "terseLabel": "Reclassification adjustments for gains included in net of income tax (benefit) expense" } } }, "localname": "OtherComprehensiveIncomeLossCashFlowHedgeGainLossReclassificationTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncomeParenthetical" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossDerivativeExcludedComponentIncreaseDecreaseAfterAdjustmentsAndTaxParent": { "auth_ref": [ "r271", "r636" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, after tax and adjustments, of gain (loss) from increase (decrease) in value of excluded component of derivative designated and qualifying as hedge, attributable to parent. Adjustments include, but are not limited to, reclassifications for sale and settlement, and amounts recognized under systematic and rational method.", "label": "Other Comprehensive Income (Loss), Derivative, Excluded Component, Increase (Decrease), after Adjustments and Tax, Parent", "terseLabel": "Change in fair value of derivative instruments" } } }, "localname": "OtherComprehensiveIncomeLossDerivativeExcludedComponentIncreaseDecreaseAfterAdjustmentsAndTaxParent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": { "auth_ref": [ "r181", "r182", "r184", "r276", "r279" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncomes": { "order": 1.0, "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity.", "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent", "totalLabel": "Other comprehensive income" } } }, "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherCurrentAssetsMember": { "auth_ref": [ "r190", "r198" ], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing other current assets.", "label": "Other current assets" } } }, "localname": "OtherCurrentAssetsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfFairValueSwapAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_OtherLiabilitiesNoncurrent": { "auth_ref": [ "r41" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Liabilities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.", "label": "Other Liabilities, Noncurrent", "terseLabel": "Other liabilities" } } }, "localname": "OtherLiabilitiesNoncurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherNonoperatingIncomeExpense": { "auth_ref": [ "r59" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 3.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of income (expense) related to nonoperating activities, classified as other.", "label": "Other Nonoperating Income (Expense)", "terseLabel": "Other expense, net" } } }, "localname": "OtherNonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OverAllotmentOptionMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Right given to the underwriter to sell additional shares over the initial allotment.", "label": "Over-Allotment Option" } } }, "localname": "OverAllotmentOptionMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PaymentsOfDebtIssuanceCosts": { "auth_ref": [ "r68" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow paid to third parties in connection with debt origination, which will be amortized over the remaining maturity period of the associated long-term debt.", "label": "Payments of Debt Issuance Costs", "negatedLabel": "Payments for debt issuance costs", "verboseLabel": "Debt issuance costs paid" } } }, "localname": "PaymentsOfDebtIssuanceCosts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsOfDividends": { "auth_ref": [ "r66" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Cash outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests.", "label": "Payments of Dividends", "negatedTerseLabel": "Dividends distributed" } } }, "localname": "PaymentsOfDividends", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsOfDividendsCommonStock": { "auth_ref": [ "r66" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow in the form of ordinary dividends to common shareholders of the parent entity.", "label": "Payments of Ordinary Dividends, Common Stock", "terseLabel": "Dividend paid" } } }, "localname": "PaymentsOfDividendsCommonStock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsOfFinancingCosts": { "auth_ref": [ "r69" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow for loan and debt issuance costs.", "label": "Payments of Financing Costs", "terseLabel": "Financing costs paid" } } }, "localname": "PaymentsOfFinancingCosts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsOfLoanCosts": { "auth_ref": [ "r69" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow for loan origination associated cost which is usually collected through escrow.", "label": "Payments of Loan Costs", "terseLabel": "Fees paid to lenders" } } }, "localname": "PaymentsOfLoanCosts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsOfStockIssuanceCosts": { "auth_ref": [ "r69" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow for cost incurred directly with the issuance of an equity security.", "label": "Payments of Stock Issuance Costs", "terseLabel": "Underwriter discounts and commissions, fees and expenses", "verboseLabel": "Direct offering costs" } } }, "localname": "PaymentsOfStockIssuanceCosts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails", "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": { "auth_ref": [ "r288" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 13.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.", "label": "Payment, Tax Withholding, Share-based Payment Arrangement", "negatedLabel": "Taxes paid in connection with employee stock transactions" } } }, "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesGross": { "auth_ref": [ "r62", "r627" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails": { "order": 1.0, "parentTag": "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.", "label": "Payments to Acquire Businesses, Gross", "terseLabel": "Cash paid" } } }, "localname": "PaymentsToAcquireBusinessesGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": { "auth_ref": [ "r62" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.", "label": "Payments to Acquire Businesses, Net of Cash Acquired", "negatedLabel": "Business acquisitions, net of cash acquired", "netLabel": "Total consideration, net", "terseLabel": "Total consideration, net", "totalLabel": "Total consideration, net" } } }, "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [ "r63" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", "label": "Payments to Acquire Property, Plant, and Equipment", "negatedLabel": "Purchase of property and equipment" } } }, "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": { "auth_ref": [ "r519", "r520", "r526", "r527", "r529", "r530", "r531", "r532", "r533", "r534", "r535", "r536", "r539", "r800" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for retirement benefits.", "label": "Retirement Benefits [Text Block]", "terseLabel": "COMPENSATION AND DEFINED CONTRIBUTION PLANS" } } }, "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureCompensationAndDefinedContributionPlans" ], "xbrltype": "textBlockItemType" }, "us-gaap_PhantomShareUnitsPSUsMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share-based payment arrangement awarded as phantom share or unit.", "label": "Phantom Share Units (PSUs) [Member]", "terseLabel": "Phantom award activity" } } }, "localname": "PhantomShareUnitsPSUsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables" ], "xbrltype": "domainItemType" }, "us-gaap_PlanNameAxis": { "auth_ref": [ "r875", "r876", "r877", "r878", "r879", "r880", "r881", "r882", "r883", "r884", "r885", "r886", "r887", "r888", "r889", "r890", "r891", "r892", "r893", "r894", "r895", "r896", "r897", "r898", "r899", "r900" ], "lang": { "en-us": { "role": { "documentation": "Information by plan name for share-based payment arrangement.", "label": "Plan Name [Axis]" } } }, "localname": "PlanNameAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PlanNameDomain": { "auth_ref": [ "r875", "r876", "r877", "r878", "r879", "r880", "r881", "r882", "r883", "r884", "r885", "r886", "r887", "r888", "r889", "r890", "r891", "r892", "r893", "r894", "r895", "r896", "r897", "r898", "r899", "r900" ], "lang": { "en-us": { "role": { "documentation": "Plan name for share-based payment arrangement.", "label": "Plan Name [Domain]" } } }, "localname": "PlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PrepaidExpenseCurrent": { "auth_ref": [ "r265", "r399", "r400", "r775" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.", "label": "Prepaid Expense, Current", "terseLabel": "Prepaid expenses" } } }, "localname": "PrepaidExpenseCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromIssuanceInitialPublicOffering": { "auth_ref": [ "r64" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow associated with the amount received from entity's first offering of stock to the public.", "label": "Proceeds from Issuance Initial Public Offering", "verboseLabel": "Proceeds from initial public offering, net of underwriter discounts" } } }, "localname": "ProceedsFromIssuanceInitialPublicOffering", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromIssuanceOfCommonStock": { "auth_ref": [ "r64" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 14.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow from the additional capital contribution to the entity.", "label": "Proceeds from Issuance of Common Stock", "terseLabel": "Proceeds from secondary offering, net of underwriter discounts" } } }, "localname": "ProceedsFromIssuanceOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromIssuanceOfDebt": { "auth_ref": [ "r834" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow during the period from additional borrowings in aggregate debt. Includes proceeds from short-term and long-term debt.", "label": "Proceeds from Issuance of Debt", "terseLabel": "Proceeds from term loans" } } }, "localname": "ProceedsFromIssuanceOfDebt", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromLinesOfCredit": { "auth_ref": [ "r65", "r838" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 12.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.", "label": "Proceeds from Lines of Credit", "terseLabel": "Proceeds from revolving credit facilities" } } }, "localname": "ProceedsFromLinesOfCredit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": { "auth_ref": [ "r61" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.", "label": "Proceeds from Sale of Property, Plant, and Equipment", "terseLabel": "Proceeds from disposition of property and equipment" } } }, "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProductWarrantyAccrual": { "auth_ref": [ "r126", "r127", "r215" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers.", "label": "Standard and Extended Product Warranty Accrual", "periodEndLabel": "Ending accrued warranty expense", "periodStartLabel": "Beginning accrued warranty expense" } } }, "localname": "ProductWarrantyAccrual", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAccruedWarrantiesAndRelatedCostsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProductWarrantyAccrualClassifiedCurrent": { "auth_ref": [ "r36", "r122", "r123" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails": { "order": 4.0, "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers. For classified balance sheets, represents the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Product Warranty Accrual, Current", "terseLabel": "Accrued warranty expense" } } }, "localname": "ProductWarrantyAccrualClassifiedCurrent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProductWarrantyAccrualWarrantiesIssued": { "auth_ref": [ "r124" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in the standard and extended product warranty accrual from warranties issued.", "label": "Standard and Extended Product Warranty Accrual, Increase for Warranties Issued", "terseLabel": "Provision for current period sales" } } }, "localname": "ProductWarrantyAccrualWarrantiesIssued", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAccruedWarrantiesAndRelatedCostsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProfitLoss": { "auth_ref": [ "r250", "r275", "r278", "r290", "r297", "r306", "r316", "r317", "r352", "r357", "r363", "r366", "r384", "r438", "r439", "r441", "r442", "r443", "r445", "r447", "r449", "r450", "r628", "r631", "r632", "r648", "r658", "r739", "r783", "r808", "r809", "r832", "r867" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 13.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.", "label": "Net Income (Loss), Including Portion Attributable to Noncontrolling Interest", "terseLabel": "Net income" } } }, "localname": "ProfitLoss", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "PROPERTY AND EQUIPMENT" } } }, "localname": "PropertyPlantAndEquipmentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "auth_ref": [ "r113" ], "lang": { "en-us": { "role": { "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.", "label": "Long-Lived Tangible Asset [Axis]" } } }, "localname": "PropertyPlantAndEquipmentByTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": { "auth_ref": [ "r117", "r760", "r761", "r762" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.", "label": "Property, Plant and Equipment Disclosure [Text Block]", "terseLabel": "PROPERTY AND EQUIPMENT" } } }, "localname": "PropertyPlantAndEquipmentDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipment" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentGross": { "auth_ref": [ "r111", "r254" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails": { "order": 1.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Gross", "terseLabel": "Property and equipment, gross" } } }, "localname": "PropertyPlantAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Property, Plant and Equipment [Line Items]", "terseLabel": "Property and Equipment" } } }, "localname": "PropertyPlantAndEquipmentLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r113", "r229", "r740", "r812" ], "calculation": { "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Net", "terseLabel": "Property and equipment, net", "totalLabel": "Total" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentNetByTypeAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment, Net, by Type [Abstract]", "terseLabel": "PROPERTY AND EQUIPMENT" } } }, "localname": "PropertyPlantAndEquipmentNetByTypeAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": { "auth_ref": [ "r113", "r760", "r761" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.", "label": "Property, Plant and Equipment, Policy [Policy Text Block]", "terseLabel": "Property and Equipment" } } }, "localname": "PropertyPlantAndEquipmentPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "auth_ref": [ "r113" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.", "label": "Property, Plant and Equipment [Table Text Block]", "terseLabel": "Summary of property and equipment" } } }, "localname": "PropertyPlantAndEquipmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "auth_ref": [ "r111" ], "lang": { "en-us": { "role": { "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.", "label": "Long-Lived Tangible Asset [Domain]" } } }, "localname": "PropertyPlantAndEquipmentTypeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_PropertyPlantAndEquipmentUsefulLife": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.", "label": "Property, Plant and Equipment, Useful Life", "terseLabel": "Useful lives of property and equipment" } } }, "localname": "PropertyPlantAndEquipmentUsefulLife", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails" ], "xbrltype": "durationItemType" }, "us-gaap_ProvisionForDoubtfulAccounts": { "auth_ref": [ "r287", "r393" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.", "label": "Accounts Receivable, Credit Loss Expense (Reversal)", "terseLabel": "Provision for (recoveries from) losses on accounts receivable", "verboseLabel": "Provision" } } }, "localname": "ProvisionForDoubtfulAccounts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNetDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ReceivablesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "ACCOUNTS RECEIVABLE, NET" } } }, "localname": "ReceivablesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]" } } }, "localname": "ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_RelatedPartyDomain": { "auth_ref": [ "r528", "r708", "r709" ], "lang": { "en-us": { "role": { "documentation": "Related parties include affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests.", "label": "Related Party [Domain]" } } }, "localname": "RelatedPartyDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails", "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RelatedPartyTransactionExpensesFromTransactionsWithRelatedParty": { "auth_ref": [ "r205" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 3.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Expenses recognized resulting from transactions (excluding transactions that are eliminated in consolidated or combined financial statements) with related party.", "label": "Related Party Transaction, Expenses from Transactions with Related Party", "terseLabel": "Related party expense" } } }, "localname": "RelatedPartyTransactionExpensesFromTransactionsWithRelatedParty", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_RelatedPartyTransactionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Related Party Transaction [Line Items]", "terseLabel": "Related Party Transactions" } } }, "localname": "RelatedPartyTransactionLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RelatedPartyTransactionsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "RELATED PARTY TRANSACTIONS" } } }, "localname": "RelatedPartyTransactionsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": { "auth_ref": [ "r528", "r708", "r724", "r725", "r726", "r727", "r728", "r729", "r730", "r731", "r732", "r733", "r734", "r735", "r920" ], "lang": { "en-us": { "role": { "documentation": "Information by type of related party. Related parties include, but not limited to, affiliates; other entities for which investments are accounted for by the equity method by the entity; trusts for benefit of employees; and principal owners, management, and members of immediate families. It also may include other parties with which the entity may control or can significantly influence the management or operating policies of the other to an extent that one of the transacting parties might be prevented from fully pursuing its own separate interests.", "label": "Related Party [Axis]" } } }, "localname": "RelatedPartyTransactionsByRelatedPartyAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails", "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": { "auth_ref": [ "r706", "r707", "r709", "r710", "r711" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates.", "label": "Related Party Transactions Disclosure [Text Block]", "terseLabel": "RELATED PARTY TRANSACTIONS" } } }, "localname": "RelatedPartyTransactionsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactions" ], "xbrltype": "textBlockItemType" }, "us-gaap_RepaymentsOfDebt": { "auth_ref": [ "r835" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cash outflow during the period from the repayment of aggregate short-term and long-term debt. Excludes payment of capital lease obligations.", "label": "Repayments of Debt", "negatedLabel": "Principal payments on term loans" } } }, "localname": "RepaymentsOfDebt", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_RepaymentsOfLinesOfCredit": { "auth_ref": [ "r67", "r838" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 11.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.", "label": "Repayments of Lines of Credit", "negatedLabel": "Principal payments on revolving credit facilities" } } }, "localname": "RepaymentsOfLinesOfCredit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ResearchAndDevelopmentExpense": { "auth_ref": [ "r157", "r233", "r929" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.", "label": "Research and Development Expense", "terseLabel": "Total research and development costs" } } }, "localname": "ResearchAndDevelopmentExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ResearchAndDevelopmentExpensePolicy": { "auth_ref": [ "r157" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process.", "label": "Research and Development Expense, Policy [Policy Text Block]", "terseLabel": "Research and Development" } } }, "localname": "ResearchAndDevelopmentExpensePolicy", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RestrictedStockMember": { "auth_ref": [ "r83" ], "lang": { "en-us": { "role": { "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met.", "label": "Restricted Stock" } } }, "localname": "RestrictedStockMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_RestrictedStockUnitsRSUMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met.", "label": "RSUs" } } }, "localname": "RestrictedStockUnitsRSUMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables" ], "xbrltype": "domainItemType" }, "us-gaap_RestructuringAndRelatedActivitiesAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "RESTRUCTURING" } } }, "localname": "RestructuringAndRelatedActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock": { "auth_ref": [ "r424", "r425", "r428", "r430", "r431" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for restructuring and related activities. Description of restructuring activities such as exit and disposal activities, include facts and circumstances leading to the plan, the expected plan completion date, the major types of costs associated with the plan activities, total expected costs, the accrual balance at the end of the period, and the periods over which the remaining accrual will be settled.", "label": "Restructuring and Related Activities Disclosure [Text Block]", "terseLabel": "RESTRUCTURING" } } }, "localname": "RestructuringAndRelatedActivitiesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRestructuring" ], "xbrltype": "textBlockItemType" }, "us-gaap_RestructuringCosts": { "auth_ref": [ "r73" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 2.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount, after cash payment, of expenses associated with exit or disposal activities pursuant to an authorized plan. Excludes expenses related to a discontinued operation or an asset retirement obligation.", "label": "Restructuring Costs", "terseLabel": "Restructuring and transaction costs" } } }, "localname": "RestructuringCosts", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r24", "r140", "r227", "r752", "r757", "r812" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings (Accumulated Deficit)", "terseLabel": "Accumulated deficit" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [ "r245", "r303", "r304", "r305", "r307", "r315", "r317", "r388", "r579", "r580", "r581", "r610", "r611", "r646", "r748", "r750" ], "lang": { "en-us": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Accumulated Deficit" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "REVENUE RECOGNITION" } } }, "localname": "RevenueFromContractWithCustomerAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": { "auth_ref": [ "r343", "r344", "r356", "r361", "r362", "r368", "r369", "r372", "r513", "r514", "r718" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_GrossProfit", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.", "label": "Revenue from Contract with Customer, Excluding Assessed Tax", "terseLabel": "Net sales" } } }, "localname": "RevenueFromContractWithCustomerExcludingAssessedTax", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionIncludesAllDistributionSalesDetails", "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionNetSalesByChannelAndGeographyDetails", "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": { "auth_ref": [ "r505", "r506", "r507", "r508", "r509", "r510", "r511", "r512", "r518", "r780" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for revenue from contract with customer.", "label": "Revenue from Contract with Customer [Policy Text Block]", "terseLabel": "Revenue Recognition" } } }, "localname": "RevenueFromContractWithCustomerPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "auth_ref": [ "r495", "r496", "r497", "r498", "r499", "r500", "r503", "r504", "r517", "r518" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts.", "label": "Revenue from Contract with Customer [Text Block]", "terseLabel": "REVENUE RECOGNITION" } } }, "localname": "RevenueFromContractWithCustomerTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognition" ], "xbrltype": "textBlockItemType" }, "us-gaap_RevenueRemainingPerformanceObligation": { "auth_ref": [ "r501" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue.", "label": "Revenue, Remaining Performance Obligation, Amount", "terseLabel": "Remaining performance obligations" } } }, "localname": "RevenueRemainingPerformanceObligation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionAdditionalInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]", "terseLabel": "Revenue Recognition" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionAdditionalInformationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": { "auth_ref": [ "r502" ], "lang": { "en-us": { "role": { "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period", "terseLabel": "Expected timing of satisfaction" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionAdditionalInformationDetails" ], "xbrltype": "durationItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": { "auth_ref": [ "r502" ], "lang": { "en-us": { "role": { "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionAdditionalInformationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about expected timing for satisfying remaining performance obligation.", "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]" } } }, "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionAdditionalInformationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRemainingPerformanceObligationPercentage": { "auth_ref": [ "r871" ], "lang": { "en-us": { "role": { "documentation": "Percentage of remaining performance obligation to total remaining performance obligation not recognized as revenue.", "label": "Revenue, Remaining Performance Obligation, Percentage", "terseLabel": "Percentage of remaining performance obligations expect to recognize" } } }, "localname": "RevenueRemainingPerformanceObligationPercentage", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRevenueRecognitionAdditionalInformationDetails" ], "xbrltype": "percentItemType" }, "us-gaap_RevolvingCreditFacilityMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount.", "label": "Revolving credit facility." } } }, "localname": "RevolvingCreditFacilityMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SaleOfStockNameOfTransactionDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement.", "label": "Sale of Stock [Domain]" } } }, "localname": "SaleOfStockNameOfTransactionDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": { "auth_ref": [ "r44" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.", "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]", "terseLabel": "Schedule of reconciliation of the changes in our allowance for doubtful accounts" } } }, "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccountsReceivableNetTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of accrued liabilities.", "label": "Schedule of Accrued Liabilities [Table Text Block]", "verboseLabel": "Summary of accrued liabilities" } } }, "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAccruedLiabilitiesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": { "auth_ref": [ "r168", "r169", "r622" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting each material business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities.", "label": "Schedule of Business Acquisitions, by Acquisition [Table]" } } }, "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsPurchasePriceConsiderationAndFairValueRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsSummaryRadarDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsTables" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock": { "auth_ref": [ "r168", "r169" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of a material business combination completed during the period, including background, timing, and recognized assets and liabilities. This table does not include leveraged buyouts.", "label": "Schedule of Business Acquisitions, by Acquisition [Table Text Block]", "terseLabel": "Schedule of total consideration" } } }, "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": { "auth_ref": [ "r163" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.", "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]", "terseLabel": "Schedule of benefit for income taxes" } } }, "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfDebtTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of information pertaining to short-term and long-debt instruments or arrangements, including but not limited to identification of terms, features, collateral requirements and other information necessary to a fair presentation.", "label": "Schedule of Debt [Table Text Block]", "terseLabel": "Schedule of company's debt" } } }, "localname": "ScheduleOfDebtTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable": { "auth_ref": [ "r143", "r144", "r145", "r153" ], "lang": { "en-us": { "role": { "documentation": "Schedule, table or text reflecting equity-based arrangements (such as stock or unit options and stock or unit awards) with individual employees, which are generally based on employment contracts between the entity and one or more selected officers or key employees, and which contain a promise by the employer to pay certain equity-based awards at future dates, sometimes including a period after retirement, upon compliance with stipulated requirements. This type of arrangement is distinguished from broader based employee benefit plans as it is usually tailored to the employee. Disclosure also typically includes the amount of related compensation expense recognized during the reporting period, the number of shares or units issued during the period under such arrangements, and the carrying amount as of the balance sheet date of the related liability.", "label": "Schedule of Deferred Compensation Arrangement with Individual, Share-based Payments [Table]" } } }, "localname": "ScheduleOfDeferredCompensationArrangementWithIndividualShareBasedPaymentsTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": { "auth_ref": [ "r161" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.", "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]", "terseLabel": "Schedule of deferred income tax assets and liabilities" } } }, "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "auth_ref": [ "r845" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.", "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "terseLabel": "Summary of calculation of weighted average shares outstanding and net income (loss) per share" } } }, "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": { "auth_ref": [ "r159" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.", "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]", "terseLabel": "Schedule of reconciliation of statutory federal income tax rate to effective rate" } } }, "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": { "auth_ref": [ "r650", "r651" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of assets and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3).", "label": "Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]", "verboseLabel": "Summary of assets and liabilities measured at fair value on a recurring basis" } } }, "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureFairValueMeasurementsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock": { "auth_ref": [ "r97" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of finite-lived intangible assets acquired as part of a business combination or through an asset purchase, by major class and in total, including the value of the asset acquired, any significant residual value (the expected value of the asset at the end of its useful life) and the weighted-average amortization period.", "label": "Schedule of Finite-Lived Intangible Assets Acquired as Part of Business Combination [Table Text Block]", "terseLabel": "Schedule of acquired intangible assets" } } }, "localname": "ScheduleOfFiniteLivedIntangibleAssetsAcquiredAsPartOfBusinessCombinationTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfGoodwillTable": { "auth_ref": [ "r403", "r404", "r405", "r406", "r407", "r408", "r409", "r410", "r411", "r412", "r413", "r784" ], "lang": { "en-us": { "role": { "documentation": "Schedule of goodwill and the changes during the year due to acquisition, sale, impairment or for other reasons.", "label": "Schedule of Goodwill [Table]" } } }, "localname": "ScheduleOfGoodwillTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfGoodwillTextBlock": { "auth_ref": [ "r784", "r849", "r850", "r851", "r852", "r853", "r854", "r855", "r856", "r857", "r858", "r859" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.", "label": "Summary of changes in goodwill" } } }, "localname": "ScheduleOfGoodwillTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock": { "auth_ref": [ "r840" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of income before income tax between domestic and foreign jurisdictions.", "label": "Schedule of Income before Income Tax, Domestic and Foreign [Table Text Block]", "terseLabel": "Schedule of consolidated income from continuing operations before income taxes" } } }, "localname": "ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": { "auth_ref": [ "r14", "r28", "r29", "r30" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.", "label": "Schedule of Inventory, Current [Table Text Block]", "terseLabel": "Summary of inventories stated at lower of cost or net realizable value" } } }, "localname": "ScheduleOfInventoryCurrentTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureInventoriesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock": { "auth_ref": [ "r129" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of maturity and sinking fund requirement for long-term debt.", "label": "Schedule of Maturities of Long-term Debt [Table Text Block]", "terseLabel": "Summary of aggregate principal payments of long-term debt" } } }, "localname": "ScheduleOfMaturitiesOfLongTermDebtTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": { "auth_ref": [ "r128" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability.", "label": "Schedule of Product Warranty Liability [Table Text Block]", "terseLabel": "Summary of changes in the accrued warranties and related costs" } } }, "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": { "auth_ref": [ "r113" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.", "label": "Property, Plant and Equipment [Table]" } } }, "localname": "ScheduleOfPropertyPlantAndEquipmentTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosurePropertyAndEquipmentDetails", "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPropertyAndEquipmentDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock": { "auth_ref": [ "r172" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the amounts recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree.", "label": "Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]", "terseLabel": "Summary of total purchase price consideration and preliminary fair value amounts recognized for assets acquired and liabilities assumed" } } }, "localname": "ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfRelatedPartyTransactionsByRelatedPartyTable": { "auth_ref": [ "r206", "r207" ], "lang": { "en-us": { "role": { "documentation": "Schedule of quantitative and qualitative information pertaining to related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates.", "label": "Schedule of Related Party Transactions, by Related Party [Table]" } } }, "localname": "ScheduleOfRelatedPartyTransactionsByRelatedPartyTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureRelatedPartyTransactionsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTable": { "auth_ref": [ "r88", "r89", "r90", "r94" ], "lang": { "en-us": { "role": { "documentation": "A table disclosing the profit or loss and total assets for each reportable segment of the entity. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.", "label": "Schedule of Segment Reporting Information, by Segment [Table]" } } }, "localname": "ScheduleOfSegmentReportingInformationBySegmentTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": { "auth_ref": [ "r88", "r89", "r90", "r94" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.", "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]", "terseLabel": "Summary of segment data" } } }, "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSegmentDataTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceBasedUnitsVestedAndExpectedToVestTableTextBlock": { "auth_ref": [ "r151" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of number, weighted-average exercise price or conversion ratio, aggregate intrinsic value, and weighted-average remaining contractual term for outstanding performance-based awards that are fully vested and expected to vest. Includes, but is not limited to, unvested awards for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Performance-Based Units, Vested and Expected to Vest [Table Text Block]", "terseLabel": "Summary of phantom award activity" } } }, "localname": "ScheduleOfShareBasedCompensationArrangementByShareBasedPaymentAwardPerformanceBasedUnitsVestedAndExpectedToVestTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": { "auth_ref": [ "r540", "r542", "r545", "r546", "r547", "r549", "r550", "r551", "r552", "r553", "r554", "r555", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r565", "r566", "r569", "r570", "r571", "r572", "r573" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of information about share-based payment arrangement.", "label": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]" } } }, "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": { "auth_ref": [ "r147", "r148", "r150" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.", "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]", "terseLabel": "Summary of stock option activity" } } }, "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": { "auth_ref": [ "r152" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.", "label": "Schedule of Share-based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]", "verboseLabel": "Schedule of fair value of the stock-based awards" } } }, "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Disclosure of the number and weighted-average grant date fair value for restricted stock and restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock and restricted stock units that were granted, vested, or forfeited during the year.", "label": "Share-based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]", "verboseLabel": "Summary of changes in outstanding options and restricted stock awards" } } }, "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShortTermDebtTable": { "auth_ref": [ "r33" ], "lang": { "en-us": { "role": { "documentation": "A table or schedule providing information pertaining to borrowings under which repayment was required in less than twelve months (or normal operating cycle, if longer) after its issuance. It may include: (1) description of the short-term debt arrangement; (2) identification of the lender or type of lender; (3) repayment terms; (4) weighted average interest rate; (5) carrying amount of funds borrowed under the specified short-term debt arrangement as of the balance sheet date and measures of the maximum and average amount outstanding during the period; (6) description of the refinancing of a short-term obligation when that obligation is excluded from current liabilities in the balance sheet; and (7) amount of a short-term obligation that has been excluded from current liabilities in the balance sheet because of a refinancing of the obligation.", "label": "Schedule of Short-term Debt [Table]" } } }, "localname": "ScheduleOfShortTermDebtTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": { "auth_ref": [ "r807", "r904" ], "lang": { "en-us": { "role": { "documentation": "Tabular disclosure of the change in unrecognized tax benefits.", "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]", "terseLabel": "Schedule of reconciliation of change in unrecognized income tax benefit" } } }, "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SegmentDomain": { "auth_ref": [ "r340", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r356", "r357", "r358", "r359", "r360", "r361", "r362", "r363", "r364", "r366", "r372", "r403", "r404", "r405", "r406", "r407", "r408", "r409", "r410", "r411", "r427", "r429", "r784", "r930" ], "lang": { "en-us": { "role": { "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity.", "label": "Segments [Domain]" } } }, "localname": "SegmentDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails", "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SegmentReportingAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "SEGMENT DATA" } } }, "localname": "SegmentReportingAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_SegmentReportingDisclosureTextBlock": { "auth_ref": [ "r340", "r341", "r342", "r352", "r355", "r360", "r364", "r365", "r366", "r367", "r368", "r371", "r372", "r373" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.", "label": "Segment Reporting Disclosure [Text Block]", "terseLabel": "SEGMENT DATA" } } }, "localname": "SegmentReportingDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSegmentData" ], "xbrltype": "textBlockItemType" }, "us-gaap_SegmentReportingInformationLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Segment Reporting Information [Line Items]", "terseLabel": "Segment Data" } } }, "localname": "SegmentReportingInformationLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "auth_ref": [ "r57" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome": { "order": 1.0, "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.", "label": "Selling, General and Administrative Expense", "terseLabel": "Selling, general and administrative" } } }, "localname": "SellingGeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpensesMember": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Primary financial statement caption encompassing selling, general and administrative expense.", "label": "Selling, general and administrative" } } }, "localname": "SellingGeneralAndAdministrativeExpensesMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpensesPolicyTextBlock": { "auth_ref": [ "r156" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for inclusion of significant items in the selling, general and administrative (or similar) expense report caption.", "label": "Selling, General and Administrative Expenses, Policy [Policy Text Block]", "terseLabel": "Selling, General & Administrative Expenses" } } }, "localname": "SellingGeneralAndAdministrativeExpensesPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r72" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of noncash expense for share-based payment arrangement.", "label": "Share-based Payment Arrangement, Noncash Expense", "terseLabel": "Stock-based compensation" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": { "auth_ref": [ "r804" ], "lang": { "en-us": { "role": { "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Award Vesting Period", "terseLabel": "Vesting period" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "durationItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": { "auth_ref": [ "r562" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeited in Period", "negatedLabel": "Forfeited" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": { "auth_ref": [ "r562" ], "lang": { "en-us": { "role": { "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value", "terseLabel": "Forfeited" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": { "auth_ref": [ "r560" ], "lang": { "en-us": { "role": { "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period", "terseLabel": "Number of awards granted" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r560" ], "lang": { "en-us": { "role": { "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value", "terseLabel": "Granted", "verboseLabel": "Grant date fair value (per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": { "auth_ref": [ "r557", "r558" ], "lang": { "en-us": { "role": { "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number", "periodEndLabel": "Outstanding at Ending", "periodStartLabel": "Outstanding at Beginning" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]", "terseLabel": "Shares" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": { "auth_ref": [ "r557", "r558" ], "lang": { "en-us": { "role": { "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value", "periodEndLabel": "Outstanding at Ending", "periodStartLabel": "Outstanding at Beginning" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]", "terseLabel": "Weighted Average Grant Date Fair Value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": { "auth_ref": [ "r561" ], "lang": { "en-us": { "role": { "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period", "negatedLabel": "Vested" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue": { "auth_ref": [ "r564" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value", "terseLabel": "Grant date fair value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationExecutiveCompensationPlanDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r561" ], "lang": { "en-us": { "role": { "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value", "terseLabel": "Vested" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions and Methodology [Abstract]", "terseLabel": "Stock-Based Compensation, Fair Value Assumptions" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsAndMethodologyAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Agreed-upon price for the exchange of the underlying asset relating to the share-based payment award.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Exercise Price", "terseLabel": "Grant price (per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": { "auth_ref": [ "r571" ], "lang": { "en-us": { "role": { "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Dividend Rate", "terseLabel": "Dividend yield" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": { "auth_ref": [ "r570" ], "lang": { "en-us": { "role": { "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Volatility Rate", "terseLabel": "Expected volatility" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": { "auth_ref": [ "r572" ], "lang": { "en-us": { "role": { "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Risk Free Interest Rate", "terseLabel": "Risk-free interest rate" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]", "terseLabel": "Stock-Based Compensation", "verboseLabel": "STOCK-BASED COMPENSATION" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": { "auth_ref": [ "r806" ], "lang": { "en-us": { "role": { "documentation": "Number of shares authorized for issuance under share-based payment arrangement.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Authorized", "terseLabel": "Maximum number of shares that may be issued under the plan" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": { "auth_ref": [ "r153" ], "lang": { "en-us": { "role": { "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Number of Shares Available for Grant", "terseLabel": "Number of shares reserved and available for issuance under the plan" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": { "auth_ref": [ "r551" ], "lang": { "en-us": { "role": { "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number", "terseLabel": "Number of shares exercisable" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod": { "auth_ref": [ "r555" ], "lang": { "en-us": { "role": { "documentation": "The number of shares under options that were cancelled during the reporting period as a result of occurrence of a terminating event specified in contractual agreements pertaining to the stock option plan.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures in Period", "negatedLabel": "Forfeited (in Shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "auth_ref": [ "r553" ], "lang": { "en-us": { "role": { "documentation": "Gross number of share options (or share units) granted during the period.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross", "terseLabel": "Number of options issued" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r563" ], "lang": { "en-us": { "role": { "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value", "terseLabel": "Grant date fair value (per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "auth_ref": [ "r549", "r550" ], "lang": { "en-us": { "role": { "documentation": "Number of options outstanding, including both vested and non-vested options.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number", "periodEndLabel": "Outstanding at end of period (in Shares)", "periodStartLabel": "Outstanding at Beginning of period (in Shares)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]", "terseLabel": "Options" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": { "auth_ref": [ "r549", "r550" ], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price", "periodEndLabel": "Outstanding at End of period (in dollars per Share)", "periodStartLabel": "Outstanding at Beginning of period (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]", "terseLabel": "Weighted Average Exercise Price" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": { "auth_ref": [ "r565" ], "lang": { "en-us": { "role": { "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price", "terseLabel": "Fully vested options outstanding at end of period (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward": { "auth_ref": [ "r146" ], "lang": { "en-us": { "role": { "documentation": "Description of terms of award under share-based payment arrangement.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Terms of Award", "terseLabel": "Contractual terms granted" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardTermsOfAward", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "auth_ref": [ "r545", "r546", "r547", "r549", "r550", "r551", "r552", "r553", "r554", "r555", "r556", "r557", "r558", "r559", "r560", "r561", "r562", "r563", "r564", "r565", "r566", "r569", "r570", "r571", "r572", "r573" ], "lang": { "en-us": { "role": { "documentation": "Award under share-based payment arrangement.", "label": "Award Type [Domain]" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationSummaryOfPhantomRestrictedSharePlanChangesInOutstandingOptionsAndRestrictedStockAwardsDetails", "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationTables" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice": { "auth_ref": [ "r555" ], "lang": { "en-us": { "role": { "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options that were terminated.", "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Forfeitures in Period, Weighted Average Exercise Price", "terseLabel": "Forfeited (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": { "auth_ref": [ "r553" ], "lang": { "en-us": { "role": { "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.", "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price", "terseLabel": "Granted (in dollars per share)" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": { "auth_ref": [ "r548", "r567", "r568", "r569", "r570", "r573", "r582", "r583" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.", "label": "Share-based Payment Arrangement [Policy Text Block]", "terseLabel": "Stock-Based Compensation" } } }, "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_SharePrice": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Price of a single share of a number of saleable stocks of a company.", "label": "Share Price", "terseLabel": "Common stock, share price" } } }, "localname": "SharePrice", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod": { "auth_ref": [ "r805" ], "lang": { "en-us": { "role": { "documentation": "Period from grant date that an equity-based award expires, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Expiration Period", "terseLabel": "Expiration period" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": { "auth_ref": [ "r569" ], "lang": { "en-us": { "role": { "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Term", "terseLabel": "Expected term" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockIncentivePlanDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": { "auth_ref": [ "r151" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term", "terseLabel": "Outstanding (in Years)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": { "auth_ref": [ "r565" ], "lang": { "en-us": { "role": { "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term", "verboseLabel": "Fully vested options outstanding (in Years)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number of options vested.", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested, Number of Shares", "terseLabel": "Fully vested options outstanding at end of period (in Shares)" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureStockBasedCompensationStockOptionDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_SharesIssuedPricePerShare": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Per share or per unit amount of equity securities issued.", "label": "Shares Issued, Price Per Share", "terseLabel": "Issue price" } } }, "localname": "SharesIssuedPricePerShare", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShortTermBorrowings": { "auth_ref": [ "r16", "r210", "r226", "r812" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Reflects the total carrying amount as of the balance sheet date of debt having initial terms less than one year or the normal operating cycle, if longer.", "label": "Short-term Debt", "terseLabel": "Short-term debt", "verboseLabel": "Outstanding balance" } } }, "localname": "ShortTermBorrowings", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails", "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShortTermDebtLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Short-term Debt [Line Items]", "terseLabel": "Debt" } } }, "localname": "ShortTermDebtLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShortTermDebtTypeAxis": { "auth_ref": [ "r33" ], "lang": { "en-us": { "role": { "documentation": "Information by type of short-term debt arrangement.", "label": "Short-term Debt, Type [Axis]" } } }, "localname": "ShortTermDebtTypeAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails", "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShortTermDebtTypeDomain": { "auth_ref": [ "r31" ], "lang": { "en-us": { "role": { "documentation": "Type of short-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing.", "label": "Short-term Debt, Type [Domain]" } } }, "localname": "ShortTermDebtTypeDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtScheduleOfCompanySDebtDetails", "http://www.cadre-holdings.com/role/DisclosureDebtShortTermDebtDetails" ], "xbrltype": "domainItemType" }, "us-gaap_SignificantAccountingPoliciesTextBlock": { "auth_ref": [ "r82", "r294" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.", "label": "Significant Accounting Policies [Text Block]", "terseLabel": "SIGNIFICANT ACCOUNTING POLICIES" } } }, "localname": "SignificantAccountingPoliciesTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_StandardProductWarrantyPolicy": { "auth_ref": [ "r125" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for standard warranties including the methodology for measuring the liability.", "label": "Standard Product Warranty, Policy [Policy Text Block]", "terseLabel": "Product Warranty" } } }, "localname": "StandardProductWarrantyPolicy", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_StateAndLocalIncomeTaxExpenseBenefitContinuingOperations": { "auth_ref": [ "r840", "r901", "r909" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of current and deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current and deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.", "label": "State and Local Income Tax Expense (Benefit), Continuing Operations", "terseLabel": "U.S. operations" } } }, "localname": "StateAndLocalIncomeTaxExpenseBenefitContinuingOperations", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesConsolidatedIncomeFromContinuingOperationsBeforeProvisionForIncomeTaxesDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_StatementBusinessSegmentsAxis": { "auth_ref": [ "r248", "r340", "r343", "r344", "r345", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r356", "r357", "r358", "r359", "r360", "r361", "r362", "r363", "r364", "r366", "r372", "r403", "r404", "r405", "r406", "r407", "r408", "r409", "r410", "r411", "r423", "r427", "r429", "r784", "r930" ], "lang": { "en-us": { "role": { "documentation": "Information by business segments.", "label": "Segments [Axis]" } } }, "localname": "StatementBusinessSegmentsAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfChangesInGoodwillDetails", "http://www.cadre-holdings.com/role/DisclosureSegmentDataAssetInformationOrOperatingExpensesBySegmentDetails" ], "xbrltype": "stringItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r43", "r135", "r245", "r281", "r282", "r283", "r303", "r304", "r305", "r307", "r315", "r317", "r334", "r388", "r492", "r579", "r580", "r581", "r610", "r611", "r646", "r671", "r672", "r673", "r674", "r675", "r676", "r705", "r748", "r749", "r750" ], "lang": { "en-us": { "role": { "documentation": "Information by component of equity.", "label": "Equity Components [Axis]" } } }, "localname": "StatementEquityComponentsAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Statement [Line Items]" } } }, "localname": "StatementLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementOfCashFlowsAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Consolidated Statements of Cash Flows" } } }, "localname": "StatementOfCashFlowsAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_StatementOfFinancialPositionAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Consolidated Balance Sheets" } } }, "localname": "StatementOfFinancialPositionAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_StatementOfStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Consolidated Statements of Shareholders Equity" } } }, "localname": "StatementOfStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [ "r303", "r304", "r305", "r334", "r718" ], "lang": { "en-us": { "role": { "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.", "label": "Statement [Table]" } } }, "localname": "StatementTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StockIssuedDuringPeriodSharesNewIssues": { "auth_ref": [ "r21", "r22", "r135", "r140" ], "lang": { "en-us": { "role": { "documentation": "Number of new stock issued during the period.", "label": "Stock Issued During Period, Shares, New Issues", "terseLabel": "Number of shares issued", "verboseLabel": "Issuance of common stock in offering, net of underwriter discounts and issuance costs (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesNewIssues", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation": { "auth_ref": [ "r21", "r22", "r135", "r140" ], "lang": { "en-us": { "role": { "documentation": "Number, after forfeiture, of shares or units issued under share-based payment arrangement. Excludes shares or units issued under employee stock ownership plan (ESOP).", "label": "Shares Issued, Shares, Share-based Payment Arrangement, after Forfeiture", "terseLabel": "Common stock withheld related to net share settlement of stock-based compensation (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensationGross": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Number, before forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).", "label": "Shares Issued, Shares, Share-based Payment Arrangement, before Forfeiture", "terseLabel": "Common stock issued under employee compensation plans (in shares)" } } }, "localname": "StockIssuedDuringPeriodSharesShareBasedCompensationGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueNewIssues": { "auth_ref": [ "r21", "r22", "r135", "r140" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering.", "label": "Stock Issued During Period, Value, New Issues", "terseLabel": "Issuance of common share in secondary offering, net of underwriter discounts and issuance costs" } } }, "localname": "StockIssuedDuringPeriodValueNewIssues", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation": { "auth_ref": [ "r21", "r22", "r140", "r149" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value, after forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).", "label": "Shares Issued, Value, Share-based Payment Arrangement, after Forfeiture", "terseLabel": "Common stock withheld related to net share settlement of stock-based compensation" } } }, "localname": "StockIssuedDuringPeriodValueShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueShareBasedCompensationGross": { "auth_ref": [], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Value, before forfeiture, of shares issued under share-based payment arrangement. Excludes employee stock ownership plan (ESOP).", "label": "Shares Issued, Value, Share-based Payment Arrangement, before Forfeiture", "terseLabel": "Common stock issued under employee compensation plans" } } }, "localname": "StockIssuedDuringPeriodValueShareBasedCompensationGross", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r22", "r25", "r26", "r92", "r812", "r839", "r848", "r916" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.", "label": "Stockholders' Equity Attributable to Parent", "periodEndLabel": "Balance at the end", "periodStartLabel": "Balance at the beginning", "totalLabel": "Total shareholders' equity" } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfShareholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Stockholders' Equity Attributable to Parent [Abstract]", "terseLabel": "Shareholders' equity" } } }, "localname": "StockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityNoteAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "SHAREHOLDERS' EQUITY" } } }, "localname": "StockholdersEquityNoteAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "auth_ref": [ "r142", "r296", "r480", "r481", "r482", "r483", "r484", "r485", "r486", "r487", "r488", "r489", "r490", "r491", "r492", "r637" ], "lang": { "en-us": { "role": { "documentation": "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.", "label": "Stockholders' Equity Note Disclosure [Text Block]", "terseLabel": "SHAREHOLDERS' EQUITY" } } }, "localname": "StockholdersEquityNoteDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquity" ], "xbrltype": "textBlockItemType" }, "us-gaap_StockholdersEquityNoteStockSplitConversionRatio1": { "auth_ref": [ "r141" ], "lang": { "en-us": { "role": { "documentation": "Ratio applied to the conversion of stock split, for example but not limited to, one share converted to two or two shares converted to one.", "label": "Stockholders' Equity Note, Stock Split, Conversion Ratio", "terseLabel": "Stock split ratio" } } }, "localname": "StockholdersEquityNoteStockSplitConversionRatio1", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "pureItemType" }, "us-gaap_SubsidiaryOrEquityMethodInvesteeSaleOfStockBySubsidiaryOrEquityInvesteeTable": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Different names of stock transactions and the different attributes of each transaction.", "label": "Subsidiary or Equity Method Investee, Sale of Stock by Subsidiary or Equity Investee [Table]" } } }, "localname": "SubsidiaryOrEquityMethodInvesteeSaleOfStockBySubsidiaryOrEquityInvesteeTable", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsidiarySaleOfStockAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of sale of the entity's stock.", "label": "Sale of Stock [Axis]" } } }, "localname": "SubsidiarySaleOfStockAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SubsidiarySaleOfStockLineItems": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Subsidiary, Sale of Stock [Line Items]", "terseLabel": "Shareholders' Equity (Deficit)" } } }, "localname": "SubsidiarySaleOfStockLineItems", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureShareholdersEquityDetails" ], "xbrltype": "stringItemType" }, "us-gaap_SupplementalCashFlowInformationAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Supplemental Cash Flow Information [Abstract]", "terseLabel": "Supplemental Disclosure of Cash Flows Information:" } } }, "localname": "SupplementalCashFlowInformationAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_TechnologyBasedIntangibleAssetsMember": { "auth_ref": [ "r173" ], "lang": { "en-us": { "role": { "documentation": "Technology-based intangible assets, including, but not limited to, patented technology, unpatented technology, and developed technology rights.", "label": "Technology" } } }, "localname": "TechnologyBasedIntangibleAssetsMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails", "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TemporaryEquityAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Temporary Equity [Abstract]", "terseLabel": "Mezzanine equity" } } }, "localname": "TemporaryEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_TemporaryEquityCarryingAmountAttributableToParent": { "auth_ref": [ "r438", "r441", "r442", "r443", "r449", "r450" ], "calculation": { "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Carrying amount, attributable to parent, of an entity's issued and outstanding stock which is not included within permanent equity. Temporary equity is a security with redemption features that are outside the control of the issuer, is not classified as an asset or liability in conformity with GAAP, and is not mandatorily redeemable. Includes any type of security that is redeemable at a fixed or determinable price or on a fixed or determinable date or dates, is redeemable at the option of the holder, or has conditions for redemption which are not solely within the control of the issuer. Includes stock with a put option held by an ESOP and stock redeemable by a holder only in the event of a change in control of the issuer.", "label": "Temporary Equity, Carrying Amount, Attributable to Parent", "terseLabel": "Preferred stock ($0.0001 par value, 10,000,000 shares authorized, no shares issued and outstanding as of December 31, 2022 and December 31, 2021)" } } }, "localname": "TemporaryEquityCarryingAmountAttributableToParent", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_TemporaryEquityParOrStatedValuePerShare": { "auth_ref": [ "r15", "r134" ], "lang": { "en-us": { "role": { "documentation": "Per share amount of par value or stated value of stock classified as temporary equity. Temporary equity is a security with redemption features that are outside the control of the issuer, is not classified as an asset or liability in conformity with GAAP, and is not mandatorily redeemable.", "label": "Temporary Equity, Par or Stated Value Per Share", "terseLabel": "Preferred stock, par value" } } }, "localname": "TemporaryEquityParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_TemporaryEquitySharesAuthorized": { "auth_ref": [ "r20" ], "lang": { "en-us": { "role": { "documentation": "The maximum number of securities classified as temporary equity that are permitted to be issued by an entity's charter and bylaws. Temporary equity is a security with redemption features that are outside the control of the issuer, is not classified as an asset or liability in conformity with GAAP, and is not mandatorily redeemable. Includes any type of security that is redeemable at a fixed or determinable price or on a fixed or determinable date or dates, is redeemable at the option of the holder, or has conditions for redemption which are not solely within the control of the issuer. If convertible, the issuer does not control the actions or events necessary to issue the maximum number of shares that could be required to be delivered under the conversion option if the holder exercises the option to convert the stock to another class of equity. If the security is a warrant or a rights issue, the warrant or rights issue is considered to be temporary equity if the issuer cannot demonstrate that it would be able to deliver upon the exercise of the option by the holder in all cases. Includes stock with put option held by ESOP and stock redeemable by holder only in the event of a change in control of the issuer.", "label": "Temporary Equity, Shares Authorized", "terseLabel": "Preferred stock, shares authorized" } } }, "localname": "TemporaryEquitySharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_TemporaryEquitySharesIssued": { "auth_ref": [ "r20" ], "lang": { "en-us": { "role": { "documentation": "The number of securities classified as temporary equity that have been sold (or granted) to the entity's shareholders. Securities issued include securities outstanding and securities held in treasury. Temporary equity is a security with redemption features that are outside the control of the issuer, is not classified as an asset or liability in conformity with GAAP, and is not mandatorily redeemable. Includes any type of security that is redeemable at a fixed or determinable price or on a fixed or determinable date or dates, is redeemable at the option of the holder, or has conditions for redemption which are not solely within the control of the issuer. If convertible, the issuer does not control the actions or events necessary to issue the maximum number of shares that could be required to be delivered under the conversion option if the holder exercises the option to convert the stock to another class of equity. If the security is a warrant or a rights issue, the warrant or rights issue is considered to be temporary equity if the issuer cannot demonstrate that it would be able to deliver upon the exercise of the option by the holder in all cases. Includes stock with put option held by ESOP and stock redeemable by holder only in the event of a change in control of the issuer.", "label": "Temporary Equity, Shares Issued", "terseLabel": "Preferred stock, shares issued" } } }, "localname": "TemporaryEquitySharesIssued", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_TemporaryEquitySharesOutstanding": { "auth_ref": [ "r20" ], "lang": { "en-us": { "role": { "documentation": "The number of securities classified as temporary equity that have been issued and are held by the entity's shareholders. Securities outstanding equals securities issued minus securities held in treasury. Temporary equity is a security with redemption features that are outside the control of the issuer, is not classified as an asset or liability in conformity with GAAP, and is not mandatorily redeemable. Includes any type of security that is redeemable at a fixed or determinable price or on a fixed or determinable date or dates, is redeemable at the option of the holder, or has conditions for redemption which are not solely within the control of the issuer. If convertible, the issuer does not control the actions or events necessary to issue the maximum number of shares that could be required to be delivered under the conversion option if the holder exercises the option to convert the stock to another class of equity. If the security is a warrant or a rights issue, the warrant or rights issue is considered to be temporary equity if the issuer cannot demonstrate that it would be able to deliver upon the exercise of the option by the holder in all cases. Includes stock with put option held by ESOP and stock redeemable by holder only in the event of a change in control of the issuer.", "label": "Temporary Equity, Shares Outstanding", "terseLabel": "Preferred stock, shares outstanding" } } }, "localname": "TemporaryEquitySharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/StatementConsolidatedBalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_TradeAndOtherAccountsReceivablePolicy": { "auth_ref": [ "r234", "r235", "r236", "r376", "r377", "r380" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for accounts receivable.", "label": "Accounts Receivable [Policy Text Block]", "terseLabel": "Accounts Receivable" } } }, "localname": "TradeAndOtherAccountsReceivablePolicy", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_TradeNamesMember": { "auth_ref": [ "r174" ], "lang": { "en-us": { "role": { "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof.", "label": "Tradenames" } } }, "localname": "TradeNamesMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureGoodwillAndOtherIntangibleAssetsSummaryOfIntangibleAssetsDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TrademarksMember": { "auth_ref": [ "r174" ], "lang": { "en-us": { "role": { "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style.", "label": "Trademarks" } } }, "localname": "TrademarksMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsCyalumeDetails", "http://www.cadre-holdings.com/role/DisclosureAcquisitionsIntangibleAssetsRadarDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TypeOfAdoptionMember": { "auth_ref": [ "r243", "r244", "r245", "r246", "r247", "r306", "r307", "r308", "r309", "r318", "r381", "r382", "r385", "r386", "r387", "r388", "r389", "r390", "r579", "r580", "r581", "r608", "r609", "r610", "r611", "r624", "r625", "r626", "r638", "r639", "r640", "r641", "r642", "r643", "r644", "r645", "r646", "r647", "r648", "r649", "r659", "r660", "r661", "r662", "r663", "r664", "r665", "r666", "r678", "r679", "r684", "r685", "r686", "r687", "r700", "r701", "r702", "r703", "r704", "r705", "r720", "r721", "r722", "r746", "r747", "r748", "r749", "r750", "r751", "r752", "r753", "r754", "r755", "r756", "r757" ], "lang": { "en-us": { "role": { "documentation": "Amendment to accounting standards.", "label": "Accounting Standards Update [Domain]" } } }, "localname": "TypeOfAdoptionMember", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "domainItemType" }, "us-gaap_TypeOfArrangementAxis": { "auth_ref": [ "r912" ], "lang": { "en-us": { "role": { "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations.", "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]" } } }, "localname": "TypeOfArrangementAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesAdditionalInformationDetails" ], "xbrltype": "stringItemType" }, "us-gaap_UnamortizedDebtIssuanceExpense": { "auth_ref": [], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "The remaining balance of debt issuance expenses that were capitalized and are being amortized against income over the lives of the respective bond issues. This does not include the amounts capitalized as part of the cost of the utility plant or asset.", "label": "Unamortized Debt Issuance Expense", "terseLabel": "Unamortized debt issuance costs" } } }, "localname": "UnamortizedDebtIssuanceExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefits": { "auth_ref": [ "r586", "r595" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of unrecognized tax benefits.", "label": "Unrecognized Tax Benefits", "periodEndLabel": "Ending unrecognized tax benefits", "periodStartLabel": "Beginning unrecognized tax benefits" } } }, "localname": "UnrecognizedTaxBenefits", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfUnrecognizedTaxBenefitsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromCurrentPeriodTaxPositions": { "auth_ref": [ "r160" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.", "label": "Unrecognized Tax Benefits, Decrease Resulting from Current Period Tax Positions", "negatedLabel": "Current period unrecognized tax benefits" } } }, "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromCurrentPeriodTaxPositions", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfUnrecognizedTaxBenefitsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromForeignCurrencyTranslation": { "auth_ref": [ "r903" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of decrease in unrecognized tax benefits resulting from foreign currency translation.", "label": "Unrecognized Tax Benefits, Decrease Resulting from Foreign Currency Translation", "negatedLabel": "Foreign currency fluctuations" } } }, "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromForeignCurrencyTranslation", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfUnrecognizedTaxBenefitsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": { "auth_ref": [ "r594" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.", "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued", "terseLabel": "Amount of interest or penalties accrued" } } }, "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfUnrecognizedTaxBenefitsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense": { "auth_ref": [ "r594" ], "crdr": "debit", "lang": { "en-us": { "role": { "documentation": "Amount of expense for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.", "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense", "terseLabel": "Amounts representing penalties and interest were recorded as income tax expense" } } }, "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfUnrecognizedTaxBenefitsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": { "auth_ref": [ "r596" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.", "label": "Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions", "terseLabel": "Current period unrecognized tax benefits" } } }, "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesReconciliationOfUnrecognizedTaxBenefitsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": { "auth_ref": [ "r597" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.", "label": "Unrecognized Tax Benefits that Would Impact Effective Tax Rate", "terseLabel": "Amount of unrecognized benefits on uncertain tax positions that, if recognized, would affect the Company's effective tax rate" } } }, "localname": "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesOperatingLossCarryforwardsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_UseOfEstimates": { "auth_ref": [ "r85", "r86", "r87", "r335", "r336", "r338", "r339" ], "lang": { "en-us": { "role": { "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.", "label": "Use of Estimates, Policy [Policy Text Block]", "terseLabel": "Use of Estimates" } } }, "localname": "UseOfEstimates", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ValuationAllowanceDeferredTaxAssetChangeInAmount": { "auth_ref": [ "r602" ], "crdr": "credit", "lang": { "en-us": { "role": { "documentation": "Amount of increase (decrease) in the valuation allowance for a specified deferred tax asset.", "label": "Valuation Allowance, Deferred Tax Asset, Increase (Decrease), Amount", "terseLabel": "Increase in valuation allowance" } } }, "localname": "ValuationAllowanceDeferredTaxAssetChangeInAmount", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureIncomeTaxesOperatingLossCarryforwardsDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_VariableRateAxis": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Information by type of variable rate.", "label": "Variable Rate [Axis]" } } }, "localname": "VariableRateAxis", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_VariableRateDomain": { "auth_ref": [], "lang": { "en-us": { "role": { "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index.", "label": "Variable Rate [Domain]" } } }, "localname": "VariableRateDomain", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureDebtCanadianCreditFacilityDetails", "http://www.cadre-holdings.com/role/DisclosureDebtNewCreditAgreementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustmentAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Incremental Weighted Average Shares Attributable to Dilutive Effect [Abstract]", "terseLabel": "Effect of dilutive securities:" } } }, "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustmentAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails" ], "xbrltype": "stringItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r321", "r330" ], "lang": { "en-us": { "role": { "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", "label": "Weighted Average Number of Shares Outstanding, Diluted", "netLabel": "Weighted average shares outstanding - diluted", "terseLabel": "Diluted" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": { "auth_ref": [], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]", "terseLabel": "Weighted average shares outstanding:" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingAbstract", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "stringItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r319", "r330" ], "lang": { "en-us": { "role": { "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", "label": "Weighted Average Number of Shares Outstanding, Basic", "terseLabel": "Basic", "verboseLabel": "Weighted average shares outstanding - basic" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2022", "presentation": [ "http://www.cadre-holdings.com/role/DisclosureSignificantAccountingPoliciesWeightedAverageSharesOutstandingAndNetIncomeLossPerShareDetails", "http://www.cadre-holdings.com/role/StatementConsolidatedStatementsOfOperationsAndComprehensiveIncome" ], "xbrltype": "sharesItemType" } }, "unitCount": 7 } }, "std_ref": { "r0": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222160&loc=d3e1107-107759", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r1": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222160&loc=SL51721533-107759", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r10": { "Name": "Accounting Standards Codification", "Paragraph": "5C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721675-107760", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r100": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r101": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "((a)(1),(b))", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r102": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r103": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r104": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(2)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r105": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r106": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r107": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "350", "URI": "https://asc.fasb.org/topic&trid=2144416", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r108": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "15", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=126982154&loc=d3e400-110220", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r109": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=126905981&loc=d3e2473-110228", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r11": { "Name": "Accounting Standards Codification", "Paragraph": "5D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721677-107760", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r110": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r111": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r112": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r113": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r115": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r116": { "Name": "Accounting Standards Codification", "Paragraph": "3A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=SL51724579-110230", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r117": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "360", "URI": "https://asc.fasb.org/topic&trid=2155823", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r118": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.3)", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140864-122747", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r119": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140864-122747", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r12": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r120": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.4)", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r121": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "440", "URI": "https://asc.fasb.org/topic&trid=2144648", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r122": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "460", "URI": "https://asc.fasb.org/extlink&oid=126907644&loc=d3e11281-110244", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r123": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12524-110249", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "((c)(3))", "Topic": "460", "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r125": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "460", "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r126": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "460", "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r127": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(5)", "Topic": "460", "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r128": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "https://asc.fasb.org/extlink&oid=126907703&loc=d3e12565-110249", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r129": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123465755&loc=d3e1835-112601", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r13": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/subtopic&trid=2122178", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r130": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123465755&loc=SL6230698-112601", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r131": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "40", "SubTopic": "50", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126972273&loc=d3e12317-112629", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r132": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "40", "SubTopic": "50", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126972273&loc=d3e12355-112629", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r133": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "470", "URI": "https://asc.fasb.org/topic&trid=2208564", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r134": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Topic": "480", "URI": "https://asc.fasb.org/extlink&oid=122040564&loc=d3e177068-122764", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r135": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r136": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21475-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r137": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21506-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r138": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21521-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r139": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21538-112644", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r14": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r140": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r141": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 4.C)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187143-122770", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r142": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "505", "URI": "https://asc.fasb.org/topic&trid=2208762", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r143": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "30", "SubTopic": "10", "Topic": "710", "URI": "https://asc.fasb.org/extlink&oid=6409875&loc=d3e20015-108363", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r144": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "710", "URI": "https://asc.fasb.org/extlink&oid=6409961&loc=d3e20517-108367", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r145": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5047-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r146": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r147": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r148": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r149": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r15": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(27)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r150": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r151": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r152": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r153": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r154": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126964447&loc=d3e11149-113907", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r155": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126964447&loc=d3e11178-113907", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r156": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "35", "Subparagraph": "(a)", "Topic": "720", "URI": "https://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r157": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "730", "URI": "https://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r158": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r159": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r16": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(19)(a))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r160": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r161": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r162": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32632-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r163": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r164": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.7)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r165": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123586518&loc=d3e961-128460", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r166": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "25", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123586518&loc=d3e1043-128460", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r167": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r169": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r17": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(19))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r170": { "Name": "Accounting Standards Codification", "Paragraph": "37", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123455525&loc=d3e2207-128464", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r171": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4845-128472", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r172": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4845-128472", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r173": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5227-128473", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r174": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r175": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r176": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5333-128473", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r177": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r178": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "25", "SubTopic": "740", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126966508&loc=d3e9972-128506", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r179": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "25", "SubTopic": "740", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126966508&loc=d3e9979-128506", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r18": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(20))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r180": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "805", "URI": "https://asc.fasb.org/topic&trid=2303972", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r181": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=126929396&loc=SL4569616-111683", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r182": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=126929396&loc=SL4569643-111683", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r183": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r184": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(3)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r185": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c),(3)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r186": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5579240-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r187": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5579245-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r188": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=d3e41620-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r189": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=d3e41638-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r19": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(22))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r190": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r191": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r192": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r193": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r194": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624163-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r195": { "Name": "Accounting Standards Codification", "Paragraph": "4C", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624171-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r196": { "Name": "Accounting Standards Codification", "Paragraph": "4D", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624177-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=d3e41675-113959", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r198": { "Name": "Accounting Standards Codification", "Paragraph": "182", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=127000641&loc=SL5629052-113961", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r199": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=121549185&loc=d3e80748-113994", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r2": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=d3e1361-107760", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r20": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(27)(b))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r200": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r201": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28541-108399", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r202": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28551-108399", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28555-108399", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r204": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=114775985&loc=d3e28878-108400", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r205": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "850", "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r206": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r207": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39603-107864", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r208": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "940", "URI": "https://asc.fasb.org/extlink&oid=126941158&loc=d3e41242-110953", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r209": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(11))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r21": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(28))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r210": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(13))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r211": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(15)(1))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r212": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(16))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(23))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r214": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.12)", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r215": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.15(5))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r216": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03.17)", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r217": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(15))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r218": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(22))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r219": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04.9)", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(29))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r220": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "405", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=6957935&loc=d3e64057-112817", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r221": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "470", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=123599511&loc=d3e64711-112823", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r222": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "825", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126941378&loc=d3e61044-112788", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r223": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(16))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r224": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(12))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r225": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(15)(b)(1))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r226": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(16)(a)(1))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r227": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r228": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(25))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r229": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(8))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r230": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.(a),19)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r231": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(18))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r232": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(8))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r233": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "985", "URI": "https://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r234": { "Name": "Accounting Standards Codification", "Paragraph": "11B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=SL6953423-111524", "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef" }, "r235": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5212-111524", "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef" }, "r236": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5093-111524", "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef" }, "r237": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "460", "URI": "https://asc.fasb.org/extlink&oid=124440162&loc=d3e12069-110248", "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef" }, "r238": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "840", "URI": "https://asc.fasb.org/extlink&oid=123389372&loc=d3e36991-112694", "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef" }, "r239": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(Note 3)", "Topic": "840", "URI": "https://asc.fasb.org/extlink&oid=123403562&loc=d3e38371-112697", "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef" }, "r24": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r240": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "840", "URI": "https://asc.fasb.org/extlink&oid=123406913&loc=d3e41499-112717", "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef" }, "r241": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "840", "URI": "https://asc.fasb.org/extlink&oid=123406913&loc=d3e41502-112717", "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef" }, "r242": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "840", "URI": "https://asc.fasb.org/extlink&oid=123406913&loc=d3e41502-112717", "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef" }, "r243": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "105", "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r244": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "105", "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r245": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "105", "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r246": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "105", "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r247": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "105", "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r248": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=d3e1361-107760", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r249": { "Name": "Accounting Standards Codification", "Paragraph": "5C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)(2)", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721675-107760", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r25": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r250": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r251": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r252": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6904-107765", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r253": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r254": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(13))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r255": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(14))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r256": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(15))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r257": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(16))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r258": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(17))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r259": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(18))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r26": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(31))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r260": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(22))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r261": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r262": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(4))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r263": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(b))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r264": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r265": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(7))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r266": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(8))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r267": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(9))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r268": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r269": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=99393222&loc=SL20226008-175313", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r27": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(32))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r270": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r271": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(dd)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r272": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e637-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r273": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e640-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r274": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e689-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r275": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r276": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r277": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r278": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r279": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r28": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(a))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r280": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r281": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r282": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r283": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r284": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(210.5-03(11))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r285": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(24))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r286": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(25))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r287": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(5))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r288": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r289": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3367-108585", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r29": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(b))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r290": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3000-108585", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r291": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r292": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r293": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4297-108586", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r294": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18726-107790", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r295": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(c))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r296": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(e)(1))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r297": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r298": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r299": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(2))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r3": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=d3e1474-107760", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r30": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(c))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r300": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r301": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(n))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r302": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-04(a))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24072-122690", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r303": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r304": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r305": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r306": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r307": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(3)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r308": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(4)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r309": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r31": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r310": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r311": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r312": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r313": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r314": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r315": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r316": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r317": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r318": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.M.Q2)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=122038215&loc=d3e31137-122693", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r319": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1448-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r32": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(b),22(b))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r320": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1377-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r321": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1505-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r322": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1252-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r323": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1707-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r324": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1757-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r325": { "Name": "Accounting Standards Codification", "Paragraph": "28A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1500-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r326": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r327": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r328": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r329": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1337-109256", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r33": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r330": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r331": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r332": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e3842-109258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r333": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "270", "URI": "https://asc.fasb.org/extlink&oid=126900757&loc=d3e543-108305", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r334": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "272", "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r335": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r336": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r337": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r338": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r339": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19,20)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r340": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8657-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r341": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8721-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r342": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8721-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r343": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r344": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r345": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r346": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r347": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r348": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r349": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r35": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19-26)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r350": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r351": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(j)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r352": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r353": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8813-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r354": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8813-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r355": { "Name": "Accounting Standards Codification", "Paragraph": "26", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8844-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r356": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r357": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r358": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r359": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r36": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r360": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r361": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r362": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r363": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r364": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r365": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r366": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r367": { "Name": "Accounting Standards Codification", "Paragraph": "34", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8981-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r368": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9031-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r369": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r37": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.21)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r370": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r371": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r372": { "Name": "Accounting Standards Codification", "Paragraph": "42", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9054-108599", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r373": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "280", "URI": "https://asc.fasb.org/topic&trid=2134510", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r374": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r375": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r376": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e4975-111524", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r377": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5033-111524", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r378": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r379": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/subtopic&trid=2196772", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r38": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.22(a)(1))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r380": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=84159169&loc=d3e10133-111534", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r381": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r382": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r383": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "20", "Topic": "310", "URI": "https://asc.fasb.org/subtopic&trid=2196816", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r384": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r385": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r386": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r387": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r388": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r389": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)(3)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r39": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.22(a)(2))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r390": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)(4)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r391": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r392": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r393": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r394": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r395": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "326", "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r396": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "330", "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r397": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "330", "URI": "https://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r398": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "330", "URI": "https://asc.fasb.org/topic&trid=2126998", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r399": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "05", "SubTopic": "10", "Topic": "340", "URI": "https://asc.fasb.org/extlink&oid=126905020&loc=d3e5879-108316", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r4": { "Name": "Accounting Standards Codification", "Paragraph": "3A", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721659-107760", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r40": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.22)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r400": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "340", "URI": "https://asc.fasb.org/extlink&oid=6387103&loc=d3e6435-108320", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r401": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r402": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=99380562&loc=d3e13777-109266", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r403": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r404": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r405": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r406": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r407": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r408": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r409": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r41": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.24)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r410": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r411": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r412": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=SL108378252-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r413": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r414": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r415": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r416": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r417": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r418": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(1)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r419": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.25)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r420": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r421": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r422": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r423": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r424": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r425": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r426": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r427": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r428": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r429": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.4(d))", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r43": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29-31)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r430": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.P.4(e))", "Topic": "420", "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r431": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "420", "URI": "https://asc.fasb.org/topic&trid=2175745", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r432": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "440", "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r433": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "440", "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r434": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r435": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r436": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r437": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r438": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r439": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.3,4)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r440": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r441": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r442": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(5))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r443": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r444": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r445": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r446": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r447": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r448": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r449": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r45": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=51824906&loc=SL20225862-175312", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r450": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-02(a)(5))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r451": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r452": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r453": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r454": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r455": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r456": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r457": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r458": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(i)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r459": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=51824906&loc=SL20225877-175312", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r460": { "Name": "Accounting Standards Codification", "Paragraph": "1C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r461": { "Name": "Accounting Standards Codification", "Paragraph": "1C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r462": { "Name": "Accounting Standards Codification", "Paragraph": "1C", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r463": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r464": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r465": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r466": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r467": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r468": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r469": { "Name": "Accounting Standards Codification", "Paragraph": "1E", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r47": { "Name": "Accounting Standards Codification", "Paragraph": "10A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669646-108580", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r470": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r471": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r472": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r473": { "Name": "Accounting Standards Codification", "Paragraph": "1F", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r474": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r475": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r476": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r477": { "Name": "Accounting Standards Codification", "Paragraph": "1I", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r478": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466204&loc=SL6031897-161870", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r479": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466204&loc=SL6031897-161870", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e637-108580", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r480": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r481": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r482": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r483": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r484": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r485": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r486": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r487": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r488": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496180-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r489": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e681-108580", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r490": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r491": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r492": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r493": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130531-203044", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r494": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130532-203044", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r495": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130551-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r496": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r497": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r498": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r499": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r5": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721663-107760", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r50": { "Name": "Accounting Standards Codification", "Paragraph": "14A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669686-108580", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r500": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130554-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r501": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r502": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(1)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r503": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r504": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130558-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r505": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130561-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r506": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130563-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r507": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130563-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r508": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130564-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r509": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r51": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=d3e557-108580", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r510": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r511": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r512": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r513": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130543-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r514": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r515": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130549-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r516": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130549-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r517": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130550-203045", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r518": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "606", "URI": "https://asc.fasb.org/topic&trid=49130388", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r519": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(i)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(10))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r520": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iii)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r521": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(01)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r522": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r523": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(A)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r524": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(B)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r525": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(02)(C)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r526": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(03)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r527": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(l)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r528": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(n)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r529": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(o)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r53": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(20))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r530": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(p)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r531": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(q)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r532": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(r)(1)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r533": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(r)(2)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r534": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "20", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=21916913&loc=d3e273930-122802", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r535": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "60", "Subparagraph": "(c)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=6414203&loc=d3e39689-114964", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r536": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "70", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=49170846&loc=d3e28014-114942", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r537": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(d)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r538": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(f)(3)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r539": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "715", "URI": "https://asc.fasb.org/topic&trid=2235017", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r54": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1,2)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r540": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=SL116886442-113899", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r541": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4534-113899", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r542": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "35", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4549-113899", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r543": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=126962052&loc=d3e4991-113900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r544": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r545": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r546": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r547": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r548": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r549": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r55": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2(a),(d))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r550": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r551": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r552": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r553": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(01)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r554": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(02)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r555": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(03)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r556": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(04)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r557": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r558": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r559": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r560": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(01)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r561": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(02)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r562": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(03)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r563": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r564": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r565": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r566": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r567": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r568": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r569": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r57": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.4)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r570": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r571": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r572": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iv)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r573": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(v)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r574": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(1)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r575": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r576": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r577": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r578": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(l)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r579": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r58": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.7)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r580": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r581": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r582": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 14.D.2.Q6)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=122041274&loc=d3e301413-122809", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r583": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "718", "URI": "https://asc.fasb.org/topic&trid=2228938", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r584": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "35", "Subparagraph": "(a)", "Topic": "720", "URI": "https://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r585": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "35", "Subparagraph": "(b)", "Topic": "720", "URI": "https://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r586": { "Name": "Accounting Standards Codification", "Paragraph": "10B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=SL37586934-109318", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r587": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r588": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r589": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r59": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.9)", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r590": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r591": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r592": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r593": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r594": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r595": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r596": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r597": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r598": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r599": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r6": { "Name": "Accounting Standards Codification", "Paragraph": "4B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721665-107760", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r60": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3179-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r600": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r601": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r602": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r603": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r604": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r605": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r606": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r607": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r608": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r609": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r61": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3179-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r610": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r611": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(3)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r612": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.5.Q1)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r613": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.7)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r614": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.1)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r615": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.2)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r616": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.4)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r617": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.C)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r618": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r619": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "270", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r62": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r620": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r621": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "740", "URI": "https://asc.fasb.org/topic&trid=2144680", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r622": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4946-128472", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r623": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4946-128472", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r624": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r625": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r626": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r627": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)(1)", "Topic": "805", "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r628": { "Name": "Accounting Standards Codification", "Paragraph": "19", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=126929396&loc=SL4569616-111683", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r629": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r63": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r630": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r631": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r632": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=109239629&loc=SL4573702-111684", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r633": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r634": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r635": { "Name": "Accounting Standards Codification", "Paragraph": "4A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5618551-113959", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r636": { "Name": "Accounting Standards Codification", "Paragraph": "4C", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624171-113959", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r637": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126731327&loc=SL126733271-114008", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r638": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)(1)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r639": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)(2)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r64": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3255-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r640": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)(3)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r641": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(b)(1)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r642": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(b)(2)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r643": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(c)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r644": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r645": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(2)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r646": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(3)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r647": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(4)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r648": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r649": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r65": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3255-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r650": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r651": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r652": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bbb)(1)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r653": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bbb)(2)", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r654": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19207-110258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r655": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=d3e19279-110258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r656": { "Name": "Accounting Standards Codification", "Paragraph": "6A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "820", "URI": "https://asc.fasb.org/extlink&oid=126976982&loc=SL6742756-110258", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r657": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13433-108611", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r658": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r659": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL120254526-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r66": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r660": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL120254526-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r661": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r662": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r663": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)(1)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r664": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r665": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL122642865-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r666": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL122642865-165497", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r667": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=126980362&loc=d3e28228-110885", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r668": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "35", "SubTopic": "20", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=123602790&loc=d3e30226-110892", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r669": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=125521441&loc=d3e30690-110894", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r67": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r670": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=124440516&loc=d3e30840-110895", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r671": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r672": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r673": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r674": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r675": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r676": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r677": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "830", "URI": "https://asc.fasb.org/topic&trid=2175825", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r678": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "832", "URI": "https://asc.fasb.org/extlink&oid=128342835&loc=SL128342857-244232", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r679": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "832", "URI": "https://asc.fasb.org/extlink&oid=128342835&loc=SL128342857-244232", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r68": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r680": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r681": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28555-108399", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r682": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "835", "URI": "https://asc.fasb.org/extlink&oid=124429444&loc=SL124452920-239629", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r683": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL77916155-209984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r684": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r685": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r686": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r687": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r688": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r689": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r69": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r690": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918631-209977", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r691": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r692": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r693": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918666-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r694": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(1)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r695": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(3)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r696": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)(4)", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r697": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r698": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r699": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/subtopic&trid=77888251", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r7": { "Name": "Accounting Standards Codification", "Paragraph": "5A", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721671-107760", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r70": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r700": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL122150809-237846", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r701": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r702": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r703": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r704": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(01)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r705": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)(3)(iii)(03)", "Topic": "848", "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r706": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "850", "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r707": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "850", "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r708": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "850", "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r709": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "850", "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r71": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r710": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39691-107864", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r711": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "850", "URI": "https://asc.fasb.org/topic&trid=2122745", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r712": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r713": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(2)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r714": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(bb)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r715": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r716": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "https://asc.fasb.org/extlink&oid=126937589&loc=SL119991595-234733", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r717": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "330", "Topic": "912", "URI": "https://asc.fasb.org/extlink&oid=6471895&loc=d3e55923-109411", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r718": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.L)", "Topic": "924", "URI": "https://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r719": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "926", "URI": "https://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r720": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "926", "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r721": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "926", "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r722": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "926", "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r723": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "340", "Topic": "928", "URI": "https://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r724": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e61929-109447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r725": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e61929-109447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r726": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e62059-109447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r727": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e62059-109447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r728": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e62395-109447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r729": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e62395-109447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r73": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r730": { "Name": "Accounting Standards Codification", "Paragraph": "33", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e62479-109447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r731": { "Name": "Accounting Standards Codification", "Paragraph": "33", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e62479-109447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r732": { "Name": "Accounting Standards Codification", "Paragraph": "35A", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(a)", "Topic": "932", "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=SL6807758-109447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r733": { "Name": "Accounting Standards Codification", "Paragraph": "35A", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(b)", "Topic": "932", "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=SL6807758-109447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r734": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(c)(1)", "Topic": "932", "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e61872-109447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r735": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "235", "Subparagraph": "(c)(2)", "Topic": "932", "URI": "https://asc.fasb.org/extlink&oid=126939881&loc=d3e61872-109447", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r736": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(10)(1))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r737": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(26))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r738": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(27))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r739": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(2))", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r740": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "942", "URI": "https://asc.fasb.org/extlink&oid=124429447&loc=SL124453093-239630", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r741": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r742": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(22))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r743": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(23))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r744": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(9))", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r745": { "Name": "Accounting Standards Codification", "Paragraph": "7A", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Subparagraph": "(d)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r746": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r747": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r748": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r749": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(1)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r75": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3044-108585", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r750": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(2)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r751": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(1)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r752": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(i)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r753": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(ii)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r754": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(iii)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r755": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(iv)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r756": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(1)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r757": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(2)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r758": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "310", "Subparagraph": "(SX 210.12-29(Footnote 4))", "Topic": "948", "URI": "https://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r759": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "440", "Subparagraph": "(a)", "Topic": "954", "URI": "https://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r76": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4273-108586", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r760": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Subparagraph": "(d)", "Topic": "958", "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99779-112916", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r761": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99893-112916", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r762": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=SL120174063-112916", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r763": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column B))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r764": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column C))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r765": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column D))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r766": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column E))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r767": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column F))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r768": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column G))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r769": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column H))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4297-108586", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r770": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Column I))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r771": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "360", "Subparagraph": "(SX 210.12-28(Footnote 2))", "Topic": "970", "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r772": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(c)", "Topic": "976", "URI": "https://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r773": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "310", "Subparagraph": "(b)", "Topic": "978", "URI": "https://asc.fasb.org/extlink&oid=126945304&loc=d3e27327-108691", "role": "http://www.xbrl.org/2003/role/disclosureRef" }, "r774": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r775": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r776": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(a)(3))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r777": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=99393222&loc=SL20226052-175313", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r778": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r779": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r78": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4304-108586", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r780": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r781": { "Name": "Accounting Standards Codification", "Paragraph": "52", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e4984-109258", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r782": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r783": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r784": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=122137925&loc=d3e14258-109268", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r785": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r786": { "Name": "Accounting Standards Codification", "Paragraph": "69B", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r787": { "Name": "Accounting Standards Codification", "Paragraph": "69C", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r788": { "Name": "Accounting Standards Codification", "Paragraph": "69E", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495743-112612", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r789": { "Name": "Accounting Standards Codification", "Paragraph": "69F", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495745-112612", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r79": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4313-108586", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r790": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "505", "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r791": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r792": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r793": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r794": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r795": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r796": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r797": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r798": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(ii)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r799": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)(iv)(01)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r8": { "Name": "Accounting Standards Codification", "Paragraph": "5B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721673-107760", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r80": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4332-108586", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r800": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=123450688&loc=d3e4179-114921", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r801": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r802": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "80", "Subparagraph": "(a)", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r803": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "55", "SubTopic": "80", "Topic": "715", "URI": "https://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r804": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r805": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r806": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r807": { "Name": "Accounting Standards Codification", "Paragraph": "217", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=126976462&loc=d3e36027-109320", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r808": { "Name": "Accounting Standards Codification", "Paragraph": "4J", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=120409616&loc=SL4591551-111686", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r809": { "Name": "Accounting Standards Codification", "Paragraph": "4K", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "810", "URI": "https://asc.fasb.org/extlink&oid=120409616&loc=SL4591552-111686", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r81": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=SL98516268-108586", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r810": { "Name": "Accounting Standards Codification", "Paragraph": "4D", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5624177-113959", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r811": { "Name": "Accounting Standards Codification", "Paragraph": "53", "Publisher": "FASB", "Section": "55", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r812": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Topic": "852", "URI": "https://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r813": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r814": { "Name": "Accounting Standards Codification", "Paragraph": "29F", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117819544-158441", "role": "http://www.xbrl.org/2003/role/exampleRef" }, "r815": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r816": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r817": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r818": { "Name": "Form 10-K", "Number": "249", "Publisher": "SEC", "Section": "310", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r819": { "Name": "Form 20-F", "Number": "249", "Publisher": "SEC", "Section": "220", "Subsection": "f", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r82": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "235", "URI": "https://asc.fasb.org/topic&trid=2122369", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r820": { "Name": "Form 40-F", "Number": "249", "Publisher": "SEC", "Section": "240", "Subsection": "f", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r821": { "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-1", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r822": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r823": { "Name": "Securities Act", "Number": "230", "Publisher": "SEC", "Section": "405", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r824": { "Name": "Securities Act", "Number": "7A", "Publisher": "SEC", "Section": "B", "Subsection": "2", "role": "http://www.xbrl.org/2003/role/presentationRef" }, "r825": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14615-108349", "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef" }, "r826": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "855", "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314020-165662", "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef" }, "r827": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(20))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r828": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r829": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(9))", "Topic": "210", "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r83": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r830": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r831": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r832": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r833": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(b)(2))", "Topic": "220", "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r834": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3255-108585", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r835": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r836": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r837": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r838": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(f))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r839": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r84": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r840": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Topic": "235", "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r841": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r842": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r843": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r844": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r845": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r846": { "Name": "Accounting Standards Codification", "Paragraph": "18", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8672-108599", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r847": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4647-111522", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r848": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r849": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r85": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r850": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r851": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r852": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r853": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(e)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r854": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r855": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(g)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r856": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(h)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r857": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r858": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=SL108378252-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r859": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r86": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r860": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=126905981&loc=d3e2443-110228", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r861": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "360", "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r862": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "410", "URI": "https://asc.fasb.org/extlink&oid=6393242&loc=d3e13237-110859", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r863": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r864": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r865": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "450", "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r866": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "450", "URI": "https://asc.fasb.org/topic&trid=2127136", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r867": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r868": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r869": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(d)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r87": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r870": { "Name": "Accounting Standards Codification", "Paragraph": "1D", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "470", "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r871": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(1)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r872": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r873": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "606", "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r874": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "705", "URI": "https://asc.fasb.org/topic&trid=2122478", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r875": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r876": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r877": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r878": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r879": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r880": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r881": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r882": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(01)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r883": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(02)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r884": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(03)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r885": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(04)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r886": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r887": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r888": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r889": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(01)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r89": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8813-108599", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r890": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(02)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r891": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)(iii)(03)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r892": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r893": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r894": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(1)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r895": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)(2)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r896": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(i)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r897": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(ii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r898": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iii)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r899": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iv)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r9": { "Name": "Accounting Standards Codification", "Paragraph": "5B", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721673-107760", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r90": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r900": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(v)", "Topic": "718", "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r901": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r902": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r903": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r904": { "Name": "Accounting Standards Codification", "Paragraph": "15A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r905": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r906": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32621-109319", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r907": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r908": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r909": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.7)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r91": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r910": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.7)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r911": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.4)", "Topic": "740", "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r912": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "808", "URI": "https://asc.fasb.org/extlink&oid=6931272&loc=SL5834143-161434", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r913": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5579245-113959", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r914": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=125515794&loc=SL5580258-113959", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r915": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)(3)", "Topic": "815", "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r916": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r917": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "230", "Topic": "830", "URI": "https://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r918": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r919": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "842", "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r92": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 4.E)", "Topic": "310", "URI": "https://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r920": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "https://asc.fasb.org/extlink&oid=6457730&loc=d3e39603-107864", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r921": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "852", "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r922": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "852", "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r923": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r924": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(2)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r925": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(c)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r926": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(1)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r927": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(2)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r928": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(b)(3)", "Topic": "860", "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r929": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "730", "Topic": "912", "URI": "https://asc.fasb.org/extlink&oid=6472174&loc=d3e58812-109433", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r93": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 5.BB)", "Topic": "330", "URI": "https://asc.fasb.org/extlink&oid=27011343&loc=d3e100047-122729", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r930": { "Name": "Accounting Standards Codification", "Paragraph": "4H", "Publisher": "FASB", "Section": "50", "SubTopic": "40", "Topic": "944", "URI": "https://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438", "role": "http://www.xbrl.org/2009/role/commonPracticeRef" }, "r94": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r95": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r96": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r97": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r98": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)(3)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" }, "r99": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "350", "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275", "role": "http://fasb.org/us-gaap/role/ref/legacyRef" } }, "version": "2.2" } ZIP 124 0001558370-23-003915-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001558370-23-003915-xbrl.zip M4$L#!!0 ( ..(;U;39=ML@1H -\G 0 1 8V1R92TR,#(R,3(S,2YX MT$!U<,M!1Q0/;-/&RHCP#?& M9B6[JMB__C+E#VQLRQ]0TZX[O707=BI3Z5]*2J52TD__^;JSR#/CPG3L+U>= MZ_858;;AK$Q[\^7*$RTJ#-.\^L^__ON__?0?K=:O=_,Q63F&MV.V2PS.J,M6 MY,5TMV3I[/?4)@^,<].RR!TW5QM&2*=]W;UN7_](6JV QQT54,:QB636O>Y$ M;_H!/\?^3&YO.A]NNNWN+?GXN=/^W+XELX>(\ 'JMS8+*5_%ZK,PMFQ'B4OY MAKD3NF-B3PWVY6KKNOO/-SYMYXI0U^7F MD^>R>X?O!FQ-/+6M6#&]<9YO@G?REJ&10 J[EA,1$765#Q) M$>&;!#EGZT1UI("@0A]OX&U4;WBQ@^W/@O(U(KE^7MS:]CT_XMI!2F MD:T:O#C5RCWL<[22;Q+D@KMY7R%ZE2S@[GE.3>!-LBHNSU7OTPV\C=5Y0^D^ ML\KX(L'5@J^B^&KX^@G:2US!G \2O4KP9Z_&-EM!?),@?4W5);#1SJ=/GV[D MVY#4IJ8ALMG*5PF^AN/9+L^S9?]EHH#--M@-*+XV GD3D(6E2C34HT6;BF]N MVL*EML&.+=X7&+H7&/DLQLY.%% MTDR@$R[?+4_NS.O8&@A1 XNU+8= M5^(BGX5/]WO37CO!(WB(3>LT(JM3=N4E0=3;K=)BT1LX.\X)Q*P(CZOGVY. M&9SR]F"(G]I_E7^#_0A@*3\3#@)!Z8!$5=*@EN%9-0H>:Y9?+G@:PO)F:$4/ MQ70]W8?-N&>O^LX./LT6&_DS&X'/M6,*,"NQ46/=56-]E$2<-3G*(M1>D80T MXHO3YO!&YJ!JW-7X%!E$1QM$$PRB3\7VWG)>R@)_I%<#?%NEQ2-3(KEJ'+-Q M')C"L!SA<=8S_NF90M9 ++S=CO+#G*XH'S"7FE8 8WER%8H_!LWTR U^]/K_ M_3A:C):CZ62!"/L\X2_)EOP0,/ZC1K(*DC./&UN8=8JZ/.@?[VG M)O]&+8^5!;H&MR([Z!;802B22)DD(53VVBB62+G:5JK;RLA^!I4=;C*1@W\& MA1K3/Z?;]FCR;3A93N>CX4*#4QZ<&7? 0W$/T+B&T CW.*[EH*0B5T-1D#"P7*Z M/C[K"0%3T1QDSV&E1OY3^_84^:_3Z>"7T7@LD9\N?Q[.H>TN>Y.OH[OQ,#XL M@W-E1D()E5*U@5S"0'P$>SN'N^:_I&K#USW,23 8./"KS<8P05F=;3]G2RHR MKP^5S(OT%HOA$HTL7B7"_#J1M<-)P)\1"ZNE+? \+]'@'EN-3?ID6E"17 <@ MGU")?Z>=Y>/WYX_# 1F/>G>C,?AXVA^H MF /;D8HU]Y%H,9L[/;4_NPP*&^SX7(="&8ZMF'N MJ36C!_3CINNQ8V^6#->"U%#79%5D!*DY6F@$1V> AA+)/A1)]KY,?&V!U)8+ M8K6)5)Z@81AR25^QVUTSSG$XCCW*F;.5*:2&_6/[Q_0TKC]]&))E[U?I"X:L M@U I<9&YQK8\MF-&!7CQ40<=Q*/M3>"9V25&YUH\U,AG3.#'P]["]_]C_;X3 MB@J]+PS'6$=IVA2JF@*.T([M!\3ED\ A5V)?5*@([%3O'H%]Y"S[<.0=N>,: MVXK8WGLN_/T 5=EY._DH&)/%H[UB/&JW/K42\7JLBNP@U=U'=N#+(SM?8& ( MP>@NB(2JZE9114+ZK]6&51+J=9: 0@7:;;N;#M\EUDY^\+GH]E<(SL)UC-]D+B^.>#"\226R M85+2*@'KW*8!6RRG_;^U[J"?'1#PK6?#R:*'Z&GPRH-G;FQS;1K4=GN&S,$$ MRAGT70:XH+W52M:-6B-[[?"=5#!G;*W/2!T'S0BB+$9?)Z/[4;\W66),;/HX M68XF7\EL.A[U1W+(/)" M5O$+,S=;<'AZS^#+;IAT=,34K7B0A9*>(<:R4-SV8N,?V0SP_ 7OR1@%'ZQ-H4Z[F$IRML91-R ME.6*4F_4[F.+')D3G[M.L+E(6EW_0"UOE]=K%!C@?D?CHGB]YX MJ(VAO#',V3.S/?C/<#9^1<"C1\C$W:&_I;;-,"GK*W,VG.ZWAQQKJ,E%;0X? MTN8P'WX;3AZ'\']_"C,%&85J$9!%! HC3P=B^.+DJ+ )!6J+.,2LF M>I8%9/ZV7W@L\2UM$&68%-E#*AJ1;0^A*$(MB\2%!5:BC>$,8Z@2K:Q8N@C^ MU)PA&_Y86-+48YT/]X3PV,X^3- M^(L+%$&9\N0"*$.N(9XA7PUGQ3T;6X>[939D9-$5@9<*V(>[+9!9"[F1@=Y$ M41FSR(&>K@M0RZ$LPBT58@]PBZV?P&BHH3MGSQNX,0P^@CNG+EN\T'V>7U2R M5!&D?RZQ^\T,F!..NY\$LM?XUL4W:GH(4QEWIVS1(J3_4@+I-3;D9]F0$69" MM3=4(P$KE9N>ESV52ZC&,N-HH<7/O?GPY^EX,)POY'D6R[]KR,Y-CQZ^,L-S MS6<6?SBS:&YZ;3TN:K!O,\#.2ZEND4@8B4LC*$[;P[GV$(4:9EMJN\YNSG!Q MR,"M*=B2\2-'@:M8GN-T'ZYSQPJ@@-X+Y:N\\?U[5*'($M/YO/F6& N/[/VZ M$A[)#E(I]U#=/\4#;O$\3,>OLUR*C9?$:A,JZZU-^FR3QJ&X.]81 MHD\Y/ZP=KAIK*I55@_TQ'20X.5-A>MQ&"R)(0H8&O,HRNX5;5V>4NXLL>_)2+7XF4"2>^ M;3XX6$$FV@E?LC:50E,)[N\)_\=]>. &N8<8MH$9E*%40=QNMS_A+OF00?Q/ MN1U/+UEK@FZE;T6(EE(#:6_RE+RC@CR0X*U;HQO=4E M6=CK\U1;15=M%94O#]"&<]'MN97VURJA[M38E*_!J[+12;65J0":@KL!- XE M3G;%QB#FS&#F,YXC,L%+K%*GNF80J9')B+8'#66!.<+#T;?>W7CX)S(9+C5* ME]TJ=MX>L0)<+[4Y3(->/?N_.+6_ +QR6[DT-+62\4MEX1< 5#[]7H-4X;H2 MQ3TE!8"H+RC1(-2YEJ3,?20%L)2^B$0C=.XV@ZK;" J0J[FS1.-8_8Z&XLL9 MU%B5O)5!0U,F;S$K(;'@\^?*$P0(L"C(%_Q"D"FILZJ50E$N8 M*,"H0H*?QJD(I_AWAZ%^@/5!-.SH% =,'DJ-,66+J9',"#(DDEO041@,[T<3 M">MD.1_=/WC MB"%B-YI\'4YTT+QB9I(B\:@ EHP00SRO2*-0[HJ&[-L6"KY][FTI^JO73=(J MFYU5@$REM"R-5C%:PN6>X7H<*-(0Q5^J<AG(=KSJT@)8JH,(5I M;L:FCR),]1TAYV1$Y%W#DT^J1C!CVTY>=H2&[HP5\VS<GTV0K$W:DSRCDC4(-18[,AS,4X)U)!D.(*)#=4:FFHK(-FH)-ZI X;S M17BJ#.#'.L%%\#=\T>0EDAV<-B2E$P/%ZQWJ9P8A*7%+1%(H&X=STXA]_AQ-+6\1:AG=%N#Z@CTM/UF==^J%BI[>-3 MVCY*WMYPE(G6\E5?]'%Q ZERU==9O(I,)'7Z7$D3T3>!_4[9V#E&4;&TT@S. MS,W6H%\D2WO,-M2:<<=@3!;/![XJ!S7X57.Z,:2#@DA,DC:!6D'0^/%"_N-[ M[NQ\3#UY,G%XQM =@SX6E_>>30&_[QT>8U-\<.6%!:D-JB ;_?18)=,_*VD- M%2)&5*/P9#P\7^E)UHGLPTH1^!D6<[%>VOQJF=\=LZ$V;E5C4A8K,HV42WIB M&@%S#?%E(,:8@XV7//G'7*[Q##//=?CAGJV@?5D1*=Z-LG2&ZS4S\!AI_#EG M>X?+#@.=#6H?%O%V>V_:%#A3ZW@L6K'I?)?J%)FD>@FI19*5QAD1>.%$A%4G M:[_N,7/U[X)Q'4G(0B7\ISQ0 T]TQ]>!,G\0V/D=>\5UJ(\4%!P[I]O )=K MH\W]2-R_V H(@AZGAO46,"JRN]1%7X5V%Q=(0&+86VK+J+S2^0LS-UMH:+UG M:+L;Z%QV%*IE;^1;O&0-)U50!L/PV/OD6,=YS-06DK^6VB*A1$)]D="M!#*) MA4*)B_?$X7K-*I#K]S[:3BK:R;WGPM\/4)6=MY./9O0@>^-'&[K]B6/W\:A8 M"]=HCL?#RZ)*D[D WR+K2?4OD?7XPLG.EQY8S#Z03SRL +$=NV5$58@=5"VI M=8]3V9(6WGYOR8&<6GTJMO>6\Q(+V 6KNDNGA/'48U5D+ZF["2)[B)'>!I][LIBV8)J\(NV9$IO),:=A.PURK7R>HIO M*"A[ZX!R#^?_*W3PGR?H>>9L35[E$Q>(OEP)<[?' U3]9UO.UE^N#,2JV^YV M.]W;SC] W>O7G162(/\$M*]/W+IV^.8&,ZE\5$^_4" X9$&YD>+R.,_0ILP;--\K(HPMS#W'CB'Y^-0BCQS_D&9_#:)"BZL@ M5DYE^:&*Z'B1\$?%*IPVP4^^J=ML@SYO=CU.BUF<)TJUD$^KTVUU/M:OR.V- M:>.=D 8K5PE9!'^UPG)8C5NLQFVG(B0!OP_RU\HM78&P $K^4%[FFHHGR<(3 MK0VE^S(FD%GFAD%;#Y]4-(2(H>!NI0J$]+YP^'6.!:Y3 M7X^BDO*WJ(<#VK,X'PC)YE)-LJ0AQIJCJVJ*S)_WRAI\N0J6O 6NGHYL&%^P M"+EB!",_&P0'^'R7I?3 M".LC7T#X?E26YW8N]I;IRDT)AR5[=>\L>!;35D'C*PH=3TMV-)_=\-7OHVVN M6L,=XQL !@2^N-M@%2Y?PW+D355VXNV>&)^N'ZCMK6D0Q,$$L= %ESHJJ>(& M:]HNVS#^G94Z&ETO*)-ID<>7<17PRFQ[\\8:^+2Y"F J%^.XR/O \,O'JI]^ M=6I:*SEY^;X*/%Z+ZV#EOA?DH*4T4= T4:41F#:WJ9_:FE(F\VT3U9")PJGJ M)YXVL=H+\-Q6GL6FZWNQ?8#ZV\@PWK6:>H(?%1A",)W,D,UW Y^AP)FC:;MF<.]U-S,>ER[% [ M/;$N(&RBQ9:19%$]5)U)-BB P7T>-Q[J7CXBX\ M$]K,/M,[J\_BC8=]?TW0O<2H_X+9JM 9HG6F7;7LUTV$>P8C#*[R;Z"#/^Z\ MO&?Q(4U!#?N@1\(_9E9JWN'+ZC% M\M==BTD;#*,\PPW<-V2N4+& L*D*SIFY>_*X0,X#& DL1YXW'IX\ENIM2M(W MM.^)0W3G.+_AOILI#'\K3M<)][X$[?L)WT4[L!,[LY,[4^=,,/[,H'T^ E/N M EI -W/2_L1%N+W]6%NO,<2VQ_A.<7A0@DBT 1598^RB* _L&/7*NG$@"EX^ M"K;V+%P%$P.VY\SP(1[9"Y".&UAQ#OC W*VSR@RI78YY4_O0 5LS&+UQ^WC, M5YDP-^&"YM*\FQ%_3E>4CQG%4,_ ](]Q65SSZW2*12%E$\>'8[9?"-9(" ^_ MC3RE-S,O,(>R,7U L1?GV(D0,4MAF4O11 Q'^S7,A/C>\4NFX^+9[YNHBDQ^ M@S$6GD#WB!E\W7:WDP[#*8L+O'V&6KPO5?X.1Y*@ M ^J]4'Y<7(19EK?;2P?K1/VXN;RIF RW3G+[OC&4T%3 _<#3B:"\99W&\Q4T M<6-I1M)L8D=",/*,<%,9M6;>$\P\I^"CHW.:]$&J%6O,&%;DQPXH7FG&#X^_ MW5.<@;B'=(I3+DD3.\@^M:$CHW9?#MZY2JG)FJC8A+WXE8TR('K>QA-NYL!6 MAKB)2N9<='[/F)A14T; @B2[Z(B/S$:8F'!>BF5C&G7Q9*.ZSL-7Z0A@1D#: M>,[[G 6LW_UGG>.DW ]%%W^H!'%C5"\:)C!^)[V:<.D^X31_8T)>V2)%)SK9 M"J4:Z%:JZQ_W =/PURC[_JPA:-G/B<.X4;_0(Y3>K_B*.;@LTS*J ML7BO4P^,Y[F'X\JJD%E RRVUI_X$ >W"D!THMI1+3$,JBVS38D^GM]@90,;P( 5354QD<>Q982DTDW=JDQQMI4',N-\/%5JQD] \>IE)SU)_Q MHH*:,F053K;Z!Q@[=BQF0^D@3BY)$YM7;X&'^&I1'L6[ M:28+S&180>W"J$EZR26/HHF0Q>/V3%XW$[_&/+Q0[HZY+XS96=?<87ZH)0!7 M+Q%$N3#?]V,>, 6FP-B?\T_M]()I+D43S2-9V>6+4Z!.C.(=J+/EK B?!$T3 M5>JM#<HMO8&CIT]]/%552O1M=%UL8 M^L/=;.%RU%!N_EV-[/_RK$-V D.E8DTT9;4&$^=9UKV&\EE%F_@!PHLL@GLL MHFLLPJQ@CUIC<\TR3GBJ7#(QGV[ EMS:@TVET*),):H,?!X\/X)S.MF 'SD[F-)L8 MN9)6DQD1JE>\B1W6N8WGWN%K9GZ7=EM=]/=MN?X9U?YIKG_]7U!+ P04 M" #CB&]6U[;>OS(7 #X<@$ %0 &-D,76(;7T_.?_4.M&P MI=L&L6;?3SSG%#DZ(2?__,??_N/;WT]/?[\9]37#UKTYMEQ-IQBYV-#>B/NB M3>S% EG:(Z:4F*9V0XDQPYIVWOK4_M3Z=*F=GH8T;I##ZMB6YA-K?SI?_7(; MTK.MK]K%V?G56;O5OM"NOYZWOK8NM.'CJN CZ]^4Y)8TB?7G5_X_SZQ)C0&U MG*_O#OE^\N*ZBZ]G9V]O;Y_>+C[9=,;JM\[/?G_LC_47/$>GQ')<9.GX1&/E MOSK^Q[ZM(]?G4JSZ^S,U(P(79ZNVA"7XOTZC8J?\T^EY^_3B_-.[8YR$7>0_ M2S02%7]/E0\QG7Z03F6=ON\'2#YS['+!,EUY-:V'-LD!I?K#3(Y\?$+QJYS MHG'J/T>]1'=TQ$F]V";7/^>3;L_/>+$S&7H^1"F^G>T%WNJC,Y@.%ICZRN)T M+>/6GB\H?L&60UYQCPVN.2X!O5IS=6).&;JAV!XD]MPBY^7!M-_*9D.,[@'A MWA%'-VW'H[BK_Y]''.(+8NS-YX@N1\A ] Z[B)B*:!7(5@YVZ%']A34PI$3' M7#K$"!62Z>,#(O179'JX;%X4:;425O6L5Z:@-B78V1'^-DJ50!I2F]D<=\DX M?<\DLN C<$=LF20K ?G#MHTWYNJQ'@W<%TQ[%O,=9N39Q-$X'$S7W[J.PV;I M'9FP4Y/ F!3TKCNWJ4O^\L?E_?N"34OXP68#; (&LYYE]W!"I!N#K T7CN MSF84SY@;PR8R2R<+9 [1DEN_P;1O6[,)IO.R6%&TR8JF3>Z[3M [5\\I6W7S M<1G[M.-,*D6\$N!]S"@Z:[T-W7MK%MHOJT134*RM"MG"![%M!0Z__R4TX:7P M(9=XA< ?/)?]_<@FJ;DW]S^%8];Y:3''=R6XH'0I["C8I#*3=&3JGNE/R'WV M6\@8WJ7R]DYB_,?O+F;]-U9?BL>EO="9^/#MLGWQ'+&C[R;9TC]E;RQ5T<6O9/ZXOOIQ?7K5:5YW. MEW:[T[[HQ$#$%*A+DW@0U:-VV)\IG4I*+"QQYO")DE,[91[A/*H_I?8\SS%]7\YL*0B[UD@G.CG.LDCL\^A M"-J 1+"Y^GC"[OV[;GK<[.6(1Z9JG417&$\HU@M 8DWYF2M( F&**]1)A(HH M0L%= A)$HLNJTJ=A*>,(Q3?%2#Q!>AN,WV.1)DZ"2B_XZ%$ MK@%)).8@98LE73 )\:+3OCP'(9LL"61ZB%FX +J'0XH7B!CANCA;>EO+-D. M\M! ^I?!*=)2/'_%BS1#8KF( 'J,75VW/J6_ M8--XL.F807JRW2&B[F!Z1YR%[2#S![6]A8S;*DND&:I0 F:(+G%B+WW$NS&8 M_G2";0^1=YQ5!ZJPM[K#RD!""7X&),'8.1DW3:ZM_\F/*C!UN-%REP(AYE<[ M, [IGJ<+)D5UR43UN6*=DQ5*7!LE<0% MWJ(3D27)KPA/M))B2LNW(%B \H[UW-]1V!+ZV[<=OM4ZF$[0NWC)H$*E09I0 M!G* Z_NN89"@%T-$C)YUBQ;$1:(C(T'I)HE9 2' 70"FE7/;\M'[$%& ML08)4 H:P&7^!,\7-D5T&:"]190N>6C5G&]@=%V7DF?/Y3L8$YNM8,3+/&4Z M\&1?Q!$K!S9 \WUF03;%7["CL77/MC2"1;N]XAK)$%?,= 7-92U*D" =CH& M.W^MUPRIY0$":)-]1R_6;[EPM*T50,MP:^<$)Y'RZ N@I*;1Q&49;Y<\^HU M0KR%0 *<,N-I";FBW5ZX"?)40%;^#)F.4>=?5@%>;(4<-R2I;>OLPG663@%D M &?&6*^S3YW2!9,0KQG$5FV$IX@*X%%BW"CD2"Y=$K3HLOJ8;1PE1 C)B0DS M,F,I:+EA'MO+-TB<:A@A^BQKY!N'TPQ3$,/.,Z[\M2X#NKK%0]KZ%J':( 79 M!R< [BNDL[6E;$/-9NE"MD%MSH;D;$51;$.TY#N8HV5-MW::&+$-+M*HIWY!UV)' 5DCKHU;! M -@H<_!XZ:CI!Z;NP=ZTQ[1BS?4;/+43=PKV50&2H=N'Y0; ]<%J'R]WJ&PI"4_DAY9H MQL9H#IL Z@+S[&4YGY99'BR LAKA5\S6'I&64Z2[OQ'W MY=9S7(:=KG*9>:0K^X\ACM(J0 F>[/,DF)9Y6; !ZL:M[;B#*<]B]P]<,7TE M.G;&S.,4!@&(*C1!THKH;$(H[+\;Q&=T&)HN&E*@,6=*:XTF+> 2] 6SQBGB/U=->C#!.W M1**AFRZ8A/@%P&T!144JB0W@3OL(^T'_J+C-AGAWL0 M\2I"6>]$M4F*43XC#A:>X$!I@IH6$U<8;]O MV()1O',M*)T$VV%@OU0M7+E#*SDD"ILA0 ^U96]8;K?.C^-4>PN/1XY I"1XA9'9&/%;*; *>6NU#3]2TL10>-D$U@\5W"C3G1(G:F=U* MO12T%-4I05L+\+0)"KMO5?U0TC*5M(AZ@CHR%2%^8&./S,)(>SU^:, 9RO\5 M:H/QOUYP<6/Y;N5>^E O/=^_MW X)@/NJ;Y!7/G=P_[!/]$9'/X#&[C)#[&20TR)S5/R*+]/X X'_[]* MM[I_UU^0-<,CQI/[Z13K(IM]Z$X;0B MLY"O63?%R!-(#,*+%H"\^6H4;,-*[<(]@.N Z-T]GN?(,5F&2'.VE$R"/&<@ M+ZO?/=]%0&F)RZ+>PP&H(.QDW2.),TV)&@T68E'T>U@0Y0IS]9J5XWC\,8K MO-O,O%3%!HMV1R;DOL11@AP\@3UDYD@G"WYS]#+K/9[,.@T6?W'\N2]X ME.>\Q:<=E;$M53$)KMUI7U<>=U:N(U>8":&$OP":L..&*B.T=+-8@V6L!#F4 M: >2M=[F5&8*5USA",2L"#[:+FD!'<-]8O&[OV[9\C+C;1M!^2,0MQKV2-J@ MT@/B&BLC;F'Y(Q"W&O9(W)!.5".7,4P?G-@3],[3"<-S/O[BWPNB^(:YF7X8 M,K8@*V6R)E(E\%MW;$"LWY)17S!^ 9?QKDD#+_G1C1"5J8219A3;ZGFZM1,L2.4I4*,P9B0&X:'G\; MW6(-J5B?6)VC5(D\_!!/JL4V>&*%!(<><%=SX0K7UX$U9@N]P91A8OQPET,362Y?_RWFXF0;N#:NM+$NLS?<2&DK ,\]+6_J M75O-E'PQ'N2?H%=@[+MSGGOYE\_"P71U2N '8C+;Y3^:E>$#RE8_ J78B17Y MY^U5^ $+BG7B V)_FSA,Y8T#%?H"^563?+CJM*\;MXM0F T@S^/]&_PSTIO7 M!8Y M#E@\T_!RPII39J=:+=R\Q[KK*(-EI8R[!H=6W,@SB['UEL(P%,%L,?6 MLMP#> ]G/*)CRXX%XVC>UH\"!7@JM:- LR-DBG #X %T%!(VL;LZZSO%RAHB M3> 8%&0W9D \7$Y!NO$<'F;*EL3^I3&^:0Y^$;UAI4(BR9?K3OOJNO%*HLH. MB"?1P;3*$_G74^W VFE2CS_HO7[F.UIA;S[P+?*)JN\8/)6NWM<"*A7Y?//] M7&3%NVK:CD>Q;P D("->7Z3RRJH_*KP;-#JG)0FDO% MF &ZX7&D?'41&_X":6?4:**@5>%6_KS"=E,^]"B;\/Q\>7X)AN4PES*8D-A$ M]8 (_169'BYDZ=LYECYJ6O/;UA*-^V\M\.8UO_T:S0:1(MW:\V=B^6!&6+=G M%OF+>>D&4SHR)7ZTN!_3&ZD0?W+VC9C\#?Q%&( W!Y\]O@/R3N-#K= $_>A,=I>2 4/LFA39'[# M=Z:C;.H)>C^LB=_>\(?^[T__%3A>_BZV(+&J5%].UZF7Y:DT.G;1GUJ,W>=T-'7O MZ=?[I\E@U+L?UR!8;G5L+(YPBQ>I(/1YU?P#L8CS$JQ8^:T*O]GT3WYMIZWC M\(GS$78P?S M7^VI1E:-:\AOO0;3"/?Y7=PGK^F0 /%$DEVI@JDDHT-9DTE>-7C6(9_S:?M0 M""7 *24#1\P$2MPXJ$ZH\8J@@KL64T((*X8EC.GF-[#CJ9@3JC/&E=*,H77' MX_L)GS?B7=-PT#=M:E/-"'NGF;Q['Y-*5 F0M4EKU1/3D,D;-E_QHVVY+P4F M' FBB='(=*]]774,FYR@96U000[4;*I*H_PW1G3R9I>B,R&MXU.5+. =R\+ M@&,MBX*["E([4BT10@=X[*X.[\'V1$E:Q8@=IY8(D0/,ABJ CI4M3TE8V2-5 M$A%R@)E#:NBZ4Q?34C4E0?'XU"4?OGQRS?ZOF]J,4E-:%9^WMMT9>#OZ>7^G M]7O=FUZ_-ZE'M$N:$6'TM?A88GMY]3U1T17^00NA4@FZDU$2WL#+Y-EZU*EB M K@JO)\O3'N)\0C[&VW26I5;K[9"W0TAP&4=FP@PQ8X;IF)DRW5[X234QKO@!+B MBG)*1O@56U[.L-U>N/8B58 %<'43W-.CZ*YE5ZJ]1 O YC@OWK)J<\OB8]P M+',DFUFI_I)5AR>?V+_OU27/[QCK+]CP^/,W_#U49"W'_*O:*O,\O"-4S.EM4ZDB,H"+U22&GQ8*MK3PZG'2(<5SXLWYZQB\ MJ.-XR.(7DCM9A_P[4FV26I0#'E PCF_7HT#,[FQ&\8PMYH>46#I9(#.\P'\P MC;-,U>*G;JB/+/XZ"A-%+6N+J&EM$;3-?S99ZZ=L@3H_T'P@V,>+,^$1N1[U M)_T1#GOJ#*83VV5,V^#>UESPXK0.;%/R.[KJ8\^2#*G9B69R2+6#)T$KL2>E M*$7?'0 W:=6Q983>%"/VH3DR# &X/:R,+B,< MIQ"M#\V1X ? +69U<.+ BT*T/A1'@A_R.]O[OV*$?<03],Z#+X*=^<0GE773 M=>LR?>O([>#Q7IMT?_>SV*(FM* -S>6-U&"S+'896!!Y$]M!S=J%R*E5T?'3 MJC\*74]M#%0YLA7%LNWX*1<8P&5(JN]928?;"]= AB*!2,A2#+$.TER?MC 4 M_F[NU*9OB!K2(A93J('F&N>Y6\43Q+<\A].^[X^!BS5@0OQTU M&=V!ABQ#,]>MUN"D4I"RH9:_ B7Y)CO&&>(R")])L<= #]P[WG5C5# ML%G0Y#VZP]AIGD]E6T'4B_\EW-M6-4RHCZ>FYJ(U3>(J,*'Y:0^>R_Y^)!:9>W/_ M4P27J2JF26C*R^I4O._*>PO:U>9!PZ'[%@5*:QYO.[;<]G^NP_+Z4/,$W!E0 M-E^R(+D:VXZMR=BE\@'@A"&++R4>KX_N**>N\2#P>7%IR^?+C[],/CX,1WC"C'> MAP2#>+ OGR[WOURGXY'@E\'7SY<_?OYR\>7KX*=?+B]^N?@ZF-[O&]YS^!:> MMJ7O!7_\(O[SQ*<<<$0#]LLK\W[]L K#S2^?/[^\O'QZ^?J)T"7O?W'Y^;_N M[V;."J_11R]@(0H<_&' V__"XB_OB(/"F$J9[J]/U-\-\/7S?BYI"_'IXZ[9 M1_'5Q\LO'[]>?GIE[H<41/&SP22[YN)7-]QWR#;^\7/R8[:IIQ@Z@W;2_@24 ME%R7/__\\^?XUP^#.+O?@FW&_SK!^:M-[X8*_YN1?'BUP^. M2P7:7[Y(P/Y+-EG,5HCB%?%=+J2C?T9>N/TP M$--]?QSG0'.0&%LTY+++/CED_5DT^UQI@AA_(R9\/I< -QYS?,(BBH<.GYUY M0LC8'#WYF)7#5#V2%91F(7'^B%?\-5EO<,#B)70>LUHMM'Y")Z)A6TPUI'=AI19\4GF%+/P4)!>UP+Q_+* MF7.+//H[\B-<-RVJS&J=5.. [\U+CVNY(6,X9'4313V^=?13^;W>+L7G86V*18 MH,@_][1><3(KA-GO@/<8B<^Q$>%,_-5C6D&S@3L9O&O7-T+<%\\7JGD2KC ] MWN'3H^%D(53X$O,3P*['F:2H86+8!#O^H2UZ2>>U M) T&MB?**T+#.:;KNB2X<#QKZ.UWX2,I["C@G^Q,UUKHU=/B @7]/H%3O\?OF,LU].?72V!Z;B M;(!(LS\U3?DI,R3K1RQNXXYPCPK6"K#WY\])% K?L"#'9+,S &4ZB F&+XBZ MYRH2*Z!"8HKX=APX7%]P,6I,4!730"-&PL3FJ' TOB5SBR_"$J:(WX_G%''P MG%ARSS:L:(:UPVN\C+=#%*+XEI8Q\4SH9!-[&X+EZ%6P21A0=^W/E( S9RU- MJI@:.WH=P[Q ["GN&[&/2X0V";08N^O/H]>0@R#NL*,@6J>^ESN/A2Q/8C$2 MVT7\G(PG:/\9^R$3WXC!6$GUUO_3EM\QGY?O'8Q[PHD(I= M ):(]/HQQBD>K0:H^-]"2$CPT8W)4".(IT/7 6\\U,P^7%K@'3% M@:).](0_[@E1([R%H]2EJGCXE.['$Q-^3#]P/"[_]/'R\N.71*L/G)0Z(._XQ MG5(,TISR2Y#$0N>[V-U_ZX5BTI]__OGB8O!QD<2XUV<+Z!_!8KX;=T M* MUN7)3PR B1B?B6P2S]VN9[H.S]%A"2T.R/UB"/Q@3@9:H GE"N'7#Y9$9F\J MNMIFO'^W%/\SPH&S5:P;@YY2<3+L:Y4@18 I5Y1!3SU!U'W/7FWEF$9* ]CZ M"C1"*+L.#1&!N"JO$/-4.YFF5\G5F.MG@PA30F/9/O@Q]G\<#B3WN1/]$4%* MC" E3LDQ&EJA14PDE8$$LDHS2&57:$EDP*S4_9^_>9AR8JVV=_@9^V8+5M'9 M9-UJND/92-DIG*6W5.D8I397Y2AU+F(SQFIV6B6T-E>S$CO=MJO$RNZROL'4 M>T;"-S$.6$CCA--'C_VA6,RJ+E+1U'6RB_LU"4**G'#.9U.N4U47 ]R+.YV] M"@TY0LQ!:GVIJ5'(+C =Z';7TPZFOWKA*K$9X3A(G^VBT^7KRJ2K5,9,.T.D MB7+%F76N3)<:5V%)_I$J0+:^+LV0RJY/%/71.P]DO:R@GP8L>MZG,2:,A,%$#8 M'VJ* M%K^\8>'52=[4'E;26Z&LJ2%F-=T)M=0E>@!:O0_* -Y=!E6 6KX+1D\LC@D( M1\_\/\*4JKH%%K>67Y#D[8$@J[X%RMJ70;C.VZ&6_,00E/;OB#+0<[=#%HANA2USLDBRF]0KI;"]4G2D/:R@? !#[,N312:S1;ULM!WE1##J6LM" MTG&'E(7*RIJ28)%;54;0VUU><9Z@9O/)M9%*T$DK*TM')$N>9,$-*16ID[%I M[&I[:#-%6_%=#/D!_, 5V8+:FU034\F79T.3G;V@9;)!FH>]]65_A&MNJ3>$ MH^6]-_M^A>Z$6M16(<^2UB#0U*S[PM;FJ-:YG6J(3HS :'__+ 8[OZ"DX-I= M$W MBAK:QDLI[:<-C7"K4=(5M"6ZR5N7\E-@LS)>#&3[;MI'8&;WOQ6Z+'._ MM@IN8?[FT:]RD&O(NY01AQ1.TZK[- /6SF-Z!(Y=+2I[WNMJF_U%H5_-!Y!J MIW)#V*:24B>?-C3"ND:=7(D?1 =6Z]JZ#!I9/5X,OL5TC)F# [ZW$%TJ1K:= M.@WCN&5K**7S?@_8!CMQ]4QY"H:L;3%JJM;UI&!(R$L, +"3?I$'>)]ZH0+4 M[DYRA7Q1^'.VPCC<%3I5[!NRYE)]J>H !5_EWB#O4 KG&O<* QX04V!:WR'D MP&?W S70=E?,:+WQR18G#\M.7@),V^%*QF"J,))6Y MBF/!(V#\(K'R^33#[A5)E1_@[,5Z'H])-:A;7]65L,R]T58".]MY&@Y9XT.& M6493BT,;DB ML:&MZ:V\OE$&4&T85,71I+0_8[P:$DM:%CM2"]X6QQ89#VOI!#H13.-:X4 QX04V!:7RURX+/K10TTF.>N[SST% ?U:=^"4O61 M1YCK>EE%?P>2AUG*+G<2/&(GHM0+EO'#YM\#\L0P?1:183$?^<\D$'&0L3(\ M1DO]0E33\^K9T.3,=;ZWK12QHF>VFT3,YM/<180H?)&[20+8U5932C:8AK&W M1]@^10V>36P3W6JV>H.>TB5CV!<40;0G 8.>Y0E2\]F@'--(:0!;7\U&".5* M9Y@A LIW:1#OH^AAZB6$$/4C 4GS(IRB3UGDFW/&Z2. M"#9]I/)XX"TH%NV M9_*Q)XO,:P8JBV916[G93];:RELHF><:N&I[(**&YNZ;;)BOLB14R5&DI*DP MSOGV4@WSR%G@M6]/+48GN_(JH %A;YNCUV$4K@A5IU06-]8H]:+F,# UV,=. MFY? MO;=2T'YDXVK&!!+>]8IX*?;53' MJLJ/85&SQ&<-I1'$A0VM8^=/C1+ MTMP0TYJ#JY04)V9 6*B.= ITOB:2'%C+"0]I28"APV]HS-/E.Q2WEH?^R]M# M05;\2;%ZA6C[E2+ 2<_S4R"T;"$E06H_$4*&0BX/P@1TRY:^]&TVE4DOTT1N MJCIJ9!,7M3W.[&7"!MX4E-"1J"9MWW*6 S)G(@/VBM\=7UJ3A?$S+++F4@E0 M=8""[QT.. O4[YAINI7"_[CC^6^;Z;E"RH'4_DMG4A1RKYT9@&[[CK' E$I? M^A3E]\:!ZSU[;H3\T6L:J'[R^J. 4TT\%9H8+@HG4EUI M+,.EN%< @,RFJ%R1((JAIX2#*Q#C^&4H<, ^6UJU&!_-E:^I";7,;6;*&JZ= M &2OZ);;)-4LW).M4SE_+6^2NAW:?DXIW,;F4G[6>K:.:O-:R0WGE]MP&X.: M]4"BYGA^% MWC.>B4"V.+@MV=BP>\L%4T =A3'0D\4(T8#O/&R*:4+%;?$ "@73!ADIMO@R8\AWG+*C M6(PH3)FHC*0X'RDX]'0;1.WWRY\UBX7U@),[%HQ[?^(XH< MN@\R_0>))ADD.+$/-G1(7)1Y^,3B6Y!,210V.M8!1XUL+/%)N,(T >2!!"+7 MAXN4!"EEVR/<)&W/7^'%A"7:F<]:@S"Y-"73IROSR8;#A M.Z>(U?OUPX4MQ^P^#4PCY(J6)\[7@I96#@".0R/L9N"Y5HJ\MOWQDI:WK\&Y M+"B8'\[!-65\,F>6J%A1Y0[EBK$\T2FE%.^)@I!(ABL"I MA)JK14D'N78\Z=!I)2F__:AZU*DH90PPT9MEC('X)M%*Z5N5P3*9\-@DH&^8PJUJ6'<* M9I&LJ^9O5<0EL KY5L&X$^NOA7*MN,;J;[ O+R^?'"1D8$5\$>[ /O%)DWOL M'LYK$C#B>ZXH"[+_DDT6L4E:].-WT<1Q9G2WO;CXX>)B\'&P'XK_G9WB\ ,; MD,4@.\M@/\W:#U@.BSV/OEQ/@&FV\$/GJI'9UGU89\N5,AFAPL>1^/XMH2^(NA+FE1X%PDYEQN/2J!WNKZ?FI=87WS&DTL5WVA#"Z:ZB=.;7 MZ"EJ@%B4.9;&5@ VB4(6HD 8*O0G\8(N$%96#6Q3(PF(@0\X3,X]=X3)]K:C M-A!.?#6PZ @K0#R)41DS%F'W)A*Y1DFX6OP(Z@-^B7^1GT.,^D(X&M:E'?78 MPN=MHB0J,O>DNO"#7_O=6F?138TS*8 2(#YG@ MQ#F1F&IB.1(NB%QNT"-.'H_!,TR?/0D5XF3(J5B]3 U?2TK4K-OSF(=HVEUP T@Y=D &5(->G$]J6@H:M9F61!R0&,N<41QE[RR ) MJ'.VF9>EAX$;?_*3M/G]\>H!AY/%'+U."8U_"$/J/46A,/C/R13I(H;;@Z%= MT6O.\M3H0JHEKKS.T* M:'-VSU:(I1?+/W^N/Q[R4"D^\P0LB[V;9DE]7R^^7'P=?!P31<%SN.QJF_FD#($L/4S+VJ8 K/(O4X,* MC*S(.-WCS0"")HO JN5A;3#!E!II+/7 ]IG5L(WO'R!)?C TXMW6G" MO-1=[ 5\F:"2NR"7WFPZ&!Q6!DF.Q!6'XH\:CD.'H8 NU]HDXX IH&OH 8'4 M*?0O[(Y=+I3>PL-NFN:;*"R77UJR:>",<37EQ@)O+A US0(AJJ:ZK-1$!)!B M="O8@>_XI=@=!R$*EN+1ER/D&+_XAHQ1EQ^/;5&S.:3Z[]\O!K.1C>#Z\G]=/0P&PK31)4MH3)^!S0" MUZAL4C-3 3&6%(I[;C-H!'N[PC-=H2 DZQCL[YSV;#K[KD[K4O: 8'II?$SVAPT&)I>YQ] MUZ1?*OM N-BUQ5<-*8!OWS(:Z(R"=0QL,5>T-K(4W^?./A5VVO)8F;I33!>$ MKE'@)+_%:^EWOKYB4\KH=8/%,IL3\55)BY45F#JQO34MZDT0%J3-3!:[G]L> M.&I%&\;0";UGCE 5J:YYRD[LW74(;CR:B;C'_;R#S,2#?TNG!NQHZ, ;CVD)C(/L*TS_DK: M7 #:-QTE*%A.$L[<0?D!YX$#VUHE".P+9$BT+Q?WD5\N*II#S.1K:D\A[].JMH[64CD>_V]0.$J;O M"'D$*9AG-]JI7V=%:<@,-=I34$G4[/(R/1]4+:YG7?V<)9.ZBGNVF7/ 829> ME>-W9/9](][F_W)Q^=/%%]WCOB9](9R(5#)X]*ZO"4JV<_O[MV0A.^TF=(D" M[U^QE>-0[<*+$[2G%#,.:%KT^=8+4.!XR#_4P="4CZEI;!!.-"-YJ GA^LR[ MDGOE0R1PGBSN41 M^)3):Q$^"L+CU:EO#D%CUBK$^YNE$NW&>90\H[KQ/5F1 M)FDK$/X[Y7J1@@[)L7'RQ, #"?$!:"YGS_PGX344LG4IW=;*#F-S06DD3_U& MLPZQQI=,>B!B4[05^_$5(7]<([::<#A%/6 M\+Y0#\* Q&/HHR?C-1+MZ@AA&==S1A7!#T@+EP3%DX6WPAQA0LE?2.6 MS?CF+.&&J@.$%U/-N*+" A!W;O"&,._D]''Z,X1W2U)B Y=,N/UY6YD;:&L2SG55XD\$!= C6 ME!(.=[@5P=C\@APG[@+$5C[F+P="K&Q*$L^LTQN M7?=W';R@3<@V(WX?UO!VPAHX/91A#?G?(8+VA MY#GQ!"H#2 S[0G"'EA#3_!NM1AC:9>%M1#E5Q6/7@7OKO8J_U'Q3=8 065"1 M62JT;!LCUYLHQ'2/B)(]TM80O-@5>2/%R2YC[I&S\@),SARMXBQ'W7&R@Y%W4I2^,[R(_#MO(;,4&?4$O;U\8!Z=(HQ[B^-@X (YI&&OO:.(WM<,:RU5)MG+YB M2QT/Y)NJP/8O@I+E=77Z3'\&VD?LHU"$@;*0#9=+BI?\8]&2JS0,A+N?*:NK M8PGH>F .OV;!F@P X?I7=B&7P0\@7S.P3ODQ3N23+;E2^IV(&Q"_4F&*V:%2 MA[E2-AH,@J&U*K_+X@J0]QF1%;F%GAO'\O$-1[Q-L\!4E&916WI1.X0PNP;)4QJ>M=V@W0NKB#/.>NL%EE #!7Y;SOEI,-BKQ!,1!A;C%I>*S>)1?G@5#0#I=-;=4"Q"'9,&=1M19 M(8:GU'-P#G41[H \*E[)Q94,O"<1Z4<&WMW4@WCN06[R."1=3#^(Y^^-P+T1 MN#<"]T;@W@C<&X%[(_"[-@*?S=^=[WUW_#BDXV6>\I,PVK OI-N+*>\-40-T M82DXNY_6B48GU7WWL1=%%:/Y:;V\B:G>62%=B\XP1]5+%$!B][;OR>8FK2;6 M6I-W:NAZJ9!&UQ&EXFF:N"4?!7O/N0+?]2BGDE-#VMY:%,AVB/M&!7DGVAH+DB;:4=%-4/--RJ;N<4XI7B#/#=]?(JWGXA[:O);VUI7#0LD;W5' M9;L$M=^#[,<(MRWDZ:20O/!O09I3LKY1L94FQ;0@O8JY(3R0V7$A5E#WCJS<:"3/LG9DWZ:CRH#,;U3(VSTE6-3%;],+]<;TL(ZL[0;6 MM2VBG7SM$YGZ1"8#>T*?R-211":%:KC:WJ-_$'KM M(XZO7/^5&@%.;8R&=&(I:H!E_0'0![16:\W2HP#1H14$WY#/Q6A;?GDC8B%9 M8QH_[22.Q"MOHR[4H.P!0157%-_S=6SMRU.XT^=SEAK"7 MWUT%5<.=SOR@U,$4\ 1O7X7WI?),I.L*0?_6(QPZ3 &9JPT0_BL6U9JY5#]C MBI986__CO"$A*/ASI> \"@"2CH+K?>[MJZ$?S\N_WAG 12*0$\81&S?8C9PP M1GDM0I#,S4SGS $AP>M<^:F9))!<#VF!BNLM\B-^0"KI<_C!N/Q%.D$'? W] MVV<=]2+T;Y_U+H,&70:I!LO,*O<5R-M"L$R5=Q+(\0&W+G378G67_IFSOM9% M:\^^Z%C=U[HH.P"$RVK9A5P&/X!\S=Z)^EH7?:V+>,/I:UT8K/*^UD5?ZZ*O M=='7NNC?\.QK7=1=ZZ*B/??'6JM=]#;?WN;;VWQ[FV]O\X5SQ.UMOKW-%W9< M4U_:HB]MT9>VZ$M;]-?BOK0%)+W4E[;H2UN\B0VV+VWQID2U+VW1E[;H2UN\ M"]GO2UN\'6GN2UOTI2VZ*,1]:8N^M$5?V@*"C/>E+?K2%GUIBXZIF/=Q7>E+ M6_2E+<"GH?2E+?K2%GUIB[ZT15_:HB]MT9>VZ$M;]*4M^M(6?6F+OK0%4M]WM)[SUOJ*UGTE2SZ2A9])8N^ MDL4QCGTEB[Z215_)HBXF]94L^DH6W;\6PZV3D=A@\W@^%L M-IHG?]Z-AU?C._[;:#;X;71W,[B=/ YFP[M1!_P/XX#3%L]"%,;'@RODH\#! MLQ7&(L-CZ+I>PM0#,?C-/:$]\K]1$FT8'\*/!)]$&R+>)8FP.]FD;\,QE8^B MM=E;5G'-XZ6P%;8U.1PO2\M"G-6J;1';[I9="F"M-;/R:$"LFNVN[JRT5:9< M$YZF&R1>'Z#;[W_<(D=LN5NYITG>%H*5\TSQWON?Y%@"6KZQ(,E93[&/ M:'O!\3-9W "T5 ++>G,=7=P/B#8V%&Y#GL'P).4 ?"!AL4PJK=SEA@"GA56B M*F6E%DV[7&U>2^G,Z:U"8,\:;X'0[=X)NFOPSZ&IQC+WQ+R)EBLU' 3'@&4Y MK4X\0-9DHPW@&^?)'6%L$NR:G[-K%HT&P<, 29S*T*[[TK2G^621,&$D3,M, MV,OO/"9S4C0U&01O13=E44M:0**:<71,%F54>9*()Y')LT>%\%B<9>$[FX:V M?6N/^!ESR-*4)#'> PZ%&XV3Z7J%@@"+%*1OF"PIVJRVY9QK/YXZUQY'OX\> MOH_X_Z\GWQYB)QO_EL\Y8&+2P=-VX"33QI6&EKN).^!?XWBBM#@K)^-DD9)6 MY113=VD[II5+JZAY(,%W=>Q.KH7-Z[R1Z&1WJ!SD]9&98>?3DCQ_CA\9 MIMN$RNF' X'3+_[^?79\/,_\8'/O-R9G%N#^!-Z?P/L3>'\"K_,$?G"!CH,% MH>LDR++DT?L'LZ/W8:Z!=YBL R?N/=F$3'':3C&-P0\-L;'3GDSHGL'>2J9],M8I4YT]':M3/$2T8)R \@,JI,X(8OZEPP45+<_: MVK.C0/!P A"%+$FZ)A0JRO .'I$^8U3?\!!S-)) M^QO:^[RA]4=G (JJ/SKW1^?^Z-P?G?NC14\@IC1R)Z*^ M5$2I<$T%HAP?W7V\0LQ3OM%7X_AM/RZ\@_QJFY&56XK_&>' V:K*;9CTA.-6 MJ%T$7\#:*#%N $Z3T-#M?LXXK(QR4^]/T@6'X;EQX#.@"R M\=U@ZCVCT'M.Z2$+"#]I!F%+,!;57"SX"2J V)&1Q?(KT+0S!*M[X\O0E!B MF'^0S SPV@69:PMA59:3X>*EF4/*MLEZ2@F_9(9;+H.C?T;>1NS5Y2S6?SJU M6$\?)]/1X_QO<0F:T7]^'T^%Q;H#!NN9L\)NY./)8D>7J8^",$LL(Q-Y=E8':%&J%J5XO*D>*3*BT:1CV!V#%*2*L1_[(H M6CX"HJ_A+S3=5!PCW@XK,4J%E^RG']28*,=TCHJXL M+VL-(=2E(F^D.-EES#UR5OPB27/'>R5SE#T@O!Q6D4%*O&ROGH!?&Z,XE&D< M=,.EHS^5@CE:64>87K0ZZ":0H/>#= M'41MK2PS .CCHU(&RF )R!0I!?L;):ST&DX[@;ZL2<76B)LIAH X.'2<:!WY M*,3N#=Y0['AI2MK&QS'E W>X)C3T_I6$H,LPDWG[:AL>]-HVDHKZ: %(?E0D MJ:#1@=\JSUO],7Z >)>50JG_*-L$-&^4^VL>#T \N"8LG"R^$>(*Y^8,TV?/ MP6Q&?-> .Z:=05L#E'PSQ="V[T] ^.+YHF!._+#V. A1L!05I1+']2Q:KQ'= M3A;B4>XE9N-@UZ.+(5@0!9QE1T.P\ +!LL4BDXY%'>D,_,?'K5NW6C.N'PS-G2XO+-D MZ30V8\L= MWK+&$,SR)1ESC ) EG LL+<,KB-*Q9L;2=:9 MH-49-\KQ#V6]*%_/]Z)X>Q &*(:A>1^*Y#IX*VB/[[QG['+"C8.4&\DWQY2Z MVMZC?Q!Z[7.@BQPHM8S8=EB[&7"JYVG*C&#?&5,CVW-A\66H8#F300[J = ' MM%:[=$J/ L285T'@#?E+BDVR+Y4=8!P":V!1RH4[7*KQ,%,<4 M/8I]WV]#A]32 ME #-_A*'U4HC 3FP5EP$)?A>[N!J\>AWAD TN"G5;5J0.45K&[5]%VK-!-E[ MN,]5D1UTRBHV_ <<:C("33O;O"(T("MET0=DFE> K$H4U'>#H,_+R;(A)^$E M"BJ S22V91/8RG-5.A#PVWYU/DLQ[@;GY4E^ND[ 30/5.0HMR4\.ZG>&%Y%_ MYRVD-6&,N@(W(%3F9!9'0/S4'"-&KXX?"?^J)MZJ_# V5VR#QZGRA E#"?" M;BX )EUM+NY&F6Z"O.UHB!O\%!Y"<<6[6"C8SL2WI<(=+B]/DT9O1E=S$-)FH,PZXWA!5)*<4K[UHS;4R_R2K MVF76!<+=72,[>Q.=%IE&DC3C2+UP*JZ%))@L!)QW!*E2-34](%RC34FNP\7R MZ\,D6(9FFK^X*1#WG*'B+\8!%@N4:E_6&(C65XF3B@]-ZGR]NK&J7@PI*=$N MM6H3"0'C"&8!ST[;R2DI;0I!8QN25(I#$[3-ZZW=74]_43BTM.0_5 .^)V:A M7NZ@HV^_VU\12LF+N.GJ#N;9EM9=>'IV*>$'9"H2\(_C%X&%=%PC2K-&A&P3/H>H,0GA%UAO!'0IO>/8>#&31F+Q*U$O)*F\,6< M/:IU*V!55E? M4O24)7?=O/7ZN8H*)YE#T B)C6YQ2IN)46-;;XZ7Y([,A0@ MV,X?\,LUQ:X7[D."R]K-3]($4[LY'WF0##W8C]V!)Q0%(R>+!/!;Y(C*>5O5 M(XJ*]E95H<+:4M30OI'=F %RQ0?!Y)*'2!NP+&\.Q.PBERHY'VI+BY/<;$^5 MUC!:1BSD+2_E!@237A#,,SH)VE^ 31"RG)686\4*E534T+[YMY)**D(%$A>4 MZJBX*1!5)).]L(Z*?4=P6O%P97$["/&F M1K)<#+Y=B?X=44]L[H\H5/FL3YM9.+!(Y+G4@>44$3CT5QY6BAH".:K(9$A& M=QC'%/&^@H!&7:;XJ!&$@XA<9'+O^!]!;MT*ZHJJDWQ#>4+!'Y/% O/U*N"[ M&U]-'M4[J5E?"$<:,]88(M0 QQ@-,]SBGPZ!GI+9"V4XY-? >QF)T*0HZ$]X;SG M]%A':RD=CWZWO7D5,'U'R"-(+9 2O:I)F?_=]F:E(F4>4LM7O@)M=*>IC*+I M8Z]*BA$RN3N>7!=W,&JW")M4V/;1K==HPW\)MR58*Q\"PF6^%I[+4004HY9W MPL>&"Z,*B0!,3FO2*X0 M\]AL0S%R)T'6VG]II%I5W5ME[+\WHF95Z(%E:793CVW7+M_4'?X#6LK"H,L, MT"I;_]3XL><4P?H8*RL*NY\L?O-F[<4UVFYQX3,PBL:M[U"M$EOB;/F'*0'L7#A,)$RT3:11$O2@_1KI7JH@X6E<:Q9<;-28C\ M!QS>X0PX>F9)NK7+H'-M,>9XM#P/9+A<5 (STV$YR1^N"Q3D[[PW>Q: MAFV7J><:6^K#&]")1!3<8Z+B'F:38/0JJI%R0%<"N23C3G(0,>C7+G?KLKL8 M( :(?5.TC>N+3!;[=Z#B_&$)U^3-VV567;86.3X@>22B;\W8DVG9+F?J,J<4 MH@*2*2>Y]UKF%/1HETEU&4>4* %BUEMY?>"R&>,'](<(LO!EY&STNL$!DUDZ M=)W:95Q=Y@T=5A#>*KA& 7(]KK3SF24EWROX0?)>P6[TW:,%N_'[-POZ-POZ M-POZ-PO.?:FV4'DIWJE5MH>0=&/\3H$:%4BY\?T+!1"XT+]0T+]0\(9>*'AG M*?85GS908P G([G/".\SPON,\#XCO,\(?Z<9X7!SX,[-_.YSX/HNSX'+ F[ OH[FL^51 $3^MYEFT4PV6Y]F83G-HJ[P+#MI%HWL MA-\##I.[T^RY9 4MG\\8[\UDPQGBVW*@>C8!Y?N&HRW-NS'KUZD&YWHZ7B41ZJ)W6E(@ES!;<5[>-*F$!PV MII*TWX:DV#12W'VS8->$;@@5Z5.*J@*2AF -%RH*2W!I1(H7#DD@,Z*RLCE8 M*X12FE48V=7Q)]7H%7NOI"V<0+FR&Z\$(6 <46ZVTM9 ]EBE?"EY 2-&(BY= M,45;(4(:'_UI0PA;KT:<\E[Y4Q0:>>=W!Y*8<*= 1[$UR!T'_R_RM^I:;^7Z M0V""7(H.3P&70JI]MCR0YWCNB%%>3@$F\99IM#6%GF?)3C <@3\'9=/)*K3E7^=<:W-M8LVAYZ:\,P0?;%5.RK$"Q,4]?1WY$=FAK$_F)XE/1@P[B,<=D$57W#)'SW IO#&%+?M$R2J. M%P71^Q3)-JP]UE(DNUDHN&)>(\1"P218AF96Y.*F<(S(ADJD& U87%"[:26- M@:@2E42I^*!3)U:M@"KV %W9^>6@LR1)6]LS)6D0D-]\WHX)*3V6&UJ0]JTA M&) J+E4B,1)5Y!+A,27P+3_7U,'#C.[?X^YJLGSB"KI9E)ITA MV(5*,L\$+0BVB(-;(&>*?$$;5M8N\>^R6-%T"F&5\-))!I3/,F!BF@X8*2:+ M!<.A>&QXR/@?3&6FD+1M?5E2[QF%WC,^R.RCQ_Y0/BZGZ@+'>*%D1GX9JA"R MK39WL%WS Q)%COX>HNX"Y#9B(G?%/"I"RBZ/CA6B,JQ%UAC"?%B MEQW'ZUYWQ5*TMW?)TB*1Y8-$TW7^HG6/PDB<>VZX?,49^[,0T= LA5/:%\(E MK!1W#?$"=M970#P*W(H\3'I"N*+5R<$$*U#\V^T##R0!07,[DS6'+RN["6@X5](#@K*_(I )L0/)IEV-?BE7%G2 D+%?D5C%"L(P;>RNG M.,\.EQ3'IZ2R%HX_&5@X%B(*XSF.PA#FC0':3=8!.\>>2NS 77:%?)%8-EMA M'-Z):3EKKK;%=XJK[6_877*6W&#F+8.XKE^'FX"#&=HU?9Z;CL*!!<6Z69 M7QI+0'Q.+L%DO:%X)4126'4=LL8G^.RPN,(+0O$C=GS$F+?P4L.'6@YJGP7" M(\"EY:1V*G19CIJ6(""R(RDWW[SL=$)JLFZ(0BSFY"HC_]B]B2B_R#[PV^GE MEWM^35VQ!RR+2:IK\%;EY>>:Y*4NY&V'9LQ6B$L\;X I&_TS$C%SI0(QOEQ< M'@=BS'X;/HY^F]S=C!YG@]%_?A_/_]:!>(M9],0\UT-T.Z$)(>YQN"+N.. R M$6(\0_%[72%Q_KC:GC;>-5.^85[K%&T_5[.')P.FZN%5>7LXT11-,#WW[(V< M")8?'SJ \X#6_,\Y10%#CM9Q:-(1B -1*[$Y3AG@97DOGT[4X1.'WR'X"LTE M++>M'I!HY+E0[)# %2M85&_E>Z+B55!94PAV[G+$5>-C^5[SC.G0]TE<2&<2 M0Z%VRLK;0[!*5Y-Z!5)VN?.(_?@=1$3#;083=K7-_J(X!909 $Y04=/'@C)4 M@2, RG-!44,@YX#R0BSC59//?OT%B6(,3)@@4,!%R)%O3=*F$/9]N<3LMR(I M_);/Q$7GQ1,C@,DUYPY"((09.L6WE3K47@=C'V+4QHQ%.W--\I!L;"-A#_@E M_DDJ"8:=09P?R\N&(7: C)\); G,4^HYHDAC_)V,@?+V((Z6Y7DF1ZCQ&I53 M2AR,77;+<1 0B&BJL: <\J?1D^\YNVO(J7VY0G\(L0SF_*F (*!EE3ZJS5(, M=[!?$R8-%E-W@1"04'YQJ7$"Q*\;[]ES<>#NBH4DV=8:7:CK!"&.H#S/=%A! MY)HH,TR"&#<=KW)-(7CPS^!0#A?@?!'^OQ*\29I#\)+7PY\$'T \.JCF$JM( MUPF"E_J<70K\RLK ==#3J6J^$8YT>G _'[\O;]2U7>O(15TL-$.N(XP4NF** MO"J,/'1MEY&UF5?,D+,>$!*;=Q##KK#/X8"A)* 6.U&2^'+X" M:)'YY/HO'Z^&L]'-X'IR/QT]S(;S\>2!_[2?=)"==2"F[4) R?[!DQO,;W(T M3] AI>)=*J&<_^J%JW'@"I&(D!^+0TS_G>Y6AI34/$GKP?)G 7VU%?E7$MQ5 M;WTT/"N@ )=&A# ?F=\P,>UN9HEI.P8Y@Q4[H+3+!&1R/)2.LSHG .)P:VE5 M9Z6P3BHV80Z5[I]R+Y^V"P1O7_W+8V\@U>)O^9+)(1$A'HI])M\$4'A#XYM" M'G,8C%)JX>-&0#1ID9 5T;G1>F0O9+XB$4.!.W_A7-]. CQ=H2 DZT?,0NHY M(4[\@&I]5FT<"$JN6((.M8\J(68[,40DM^Q3* T>@U+VL*#;9%[2QG6;DA @ MN:K4?)H^0!2A@;P:\ A&(/<,^WRXY3<<8(K\8> .W34G+=<4<0+2Z%6(J^99 MG))C0-"B1L*9"U\HAZ/MM/^SM,V)X;!>D\4=A("TNDF4DY6:U7[[P6N2TY

,ZC2N,A5'K(8EA$C8-] MSJK+UNOX.0>YK^EZ)2C#QL$D"EF( C%#BO$P<#,=XI=18GU0 M-I[O2XEXOA1B49EKD\ \H'L8!DQ /=APL/_/P$D 'WC!@!Q 'R1D9P/^,==3 M@#] ,?R="@S4"C232;193.#9X_4#[6IB:A].T8=3].$4'0FG2)8OGT"A MN8[:0 P':T!U'6$-_)8@Q>^ 1N ::$9 MDK80M&^3:R#_;E(A"8"8O01(!J_-*=I#<(JWQ4L%&4"MR>^<#^QQ]KW,VCSN M \'#;6F-'I,"^&8MH\&)#:DN\]P=A"BJ^LA2'#]U]AFPB^]^-698W%O;'XGO MWQ(J.K5N-2X&HA,;6#5A;IF2[\(/LD<]"7>P)\2[^3MQF&Y$<;0LZSN"OPLQ MCR/\V,X3U+J4'T_?:27= 2$_IO>[D/&\M].R$[LC-ZX.R_@QO=^%C'-*+[!G M4\P+(( 0+/V6);V Y.]"V/>4_ROVEBL1V_6,*5KBTW0%$-?0GNP?4\M M1^I^L>1H WB%O)OK;Q6-!FV-O9.%E;]+P5M=I>%[)Y=ON$NL-,?>Q3K+W^?@ MK;/2\'7ZA/<6UEEICKV+=9;>)B.*&;Q%5@ZX=V)X@+O"RK$+T/)Z>YG#=8NG M\HK??LXPW-30MK- 83Q,T(Q<-4BT]R"*?9:RIK12MX2V<^X2@V%KV5R+N/T.=(]CF2?8[D^\J1/%61O,VE/!=2W1Z"IT23 M\ZA&H,]M[',;^]S&/K>QSZ/J1JXCK#RJKN6M6LYU[/-6 3C;WGK>ZCLHO]' M>:NOO-%7WN@K;[R+RAN,AAF&\D\'9O(/?W\42J1 6Q[]9D$ORKR+3>C%(VPM ML:%PM9S\:EF;%0I-CH;VA/F>TV,=K:5T//K=ID:1,'U'R"-(+9 2O:I)F?_= MYKU&1\H\I,!M2_U3'/U3')9%;5>%(?Z5#:-P1:@BZJ2!>3IA)6DW44E.+$!1 M)G5A]XP\7ZR[6T+CH+Z&)>]TNDZ8=JP*X"G-WH(<]H]:0 GW;(^&;T%N"U'[ M1@FK_;BHFNGM!HDV0JZW('CQ?T32BQO6 M3FA020$O8!KT#>C)MY=">7G1INST.93O)H?RLE5/2R>2*&4I$HT=2?4UX]N; MNUWA:\6GTC(% 2G%&*,IY2M-==Y*&[3+^?:=&2F:C>N)G0/DFLM&6K=Z3I%( M6;U!6R8.3/>(_H'#^-@T)U?XGM,GY/^>[#7G#]E]@]AZ'*^(2GRRWPR<1/.C4[A,M,W.[XM<-2W\9^L$]TQ1A<;3L:CW' M&,T'(?*WQ15]_MG&B*IO55V.7C%U/*8_'S4T8:>#EZI):QMD?;OBFEPS;KQG MS\6!^XC"EJ2V:-Y.!SZ!$MXBZKYU&?Z=^'P8GV/8MA0?S]SIP"B ^^.68CP.0DPQ"]N2X^)Y.QU0!4B*BZD+38:K^)Y5:W:.Z5H9C=70A)V. MS:I!:ALB*^ W^!*+>=G']WXH_?A>@G#_Z%Z'']WKQAM8-I[=Z]_ ZM_ >AMO M8'7UC1W+;U^!?6.G/D]+G[3<)RTW&JXZB4(6HD <8ALLT*B9K-,>@&:\HQJ* M0;N*UX/BKMQ[T\*WFZ<3F^59"[@A6=P1\ V)X7M*!:U;!;8NBM#30]]>W'W= MKL?2(M/!4/QSB9,Z],79M-&=L6">3KL#6U='!01\0V*8*2#7U#L>JIDZ[=-K M710+20A-&*LX?'+U0O-OZ]3MLE-.U6EG735QK)V&T.2Q'E(>I8;FPO$$F1=M MV5:, >GT";(MNXLQ-=^?5-L5Y3=GORFI0"S(>[>$7&KN-\GLKT70ZX3@C5F( MFA3V.LG^E@2^X')@0^I+@]'I@ M-P,Y>Z;!Q\K\L0 Q$1Y=:TYR10ALWM[.64_GIQM7)!AX&4P/%U:EL#P,-B]6 M(.2P/,F@'0K/L%#+MW<9^E]4)\&V(;%Y-3I7>*T2[@V)<.F#JXPLM2>_-0"@ MS0,I%(&ODYZVL^0>L2^B>J:(AMLY)P#CT DGB\C@Y[G%T-YR/;@;3 MX>/\;X/YX_!A-KP6V7&S3N7#R>ASMS8$\LA&:;RAV$=#I3E(J3Y4IM-^TGQDD6D@3J1SYM<5"]<2]HRTO' M46/$&K<:2H"XQ9A-D>?>$IJ^QP7RXNOIP\4C7Z=C]ZF ]NAO,A_XC$W /O,#EGQ(#LIA_@=/[!TW:0GB<[ M9:Y+J?:(-X0*A#)4WI/4\*$J\Y':]E>$?&G$9NJ(\?7 6 H-4UCG-'T@&N1* MLS)WT5+C:]GAE"YMY2M3^39 [&Y&HI?C0QZ-)DZ^4TKK6B"B9(BND\W-HBQ?=+B .$86:5R= M7\6LJ\6G"DN@)GF,T'P[ZN"S@X_X&0<1ON5$VX44_=4+5]<1"\D:T]&KXT?" M$B$L#?P?=XY>I1ZV"B,!.O"5%I%*" ,R]PESUF3QC1!76"=WA]D9\64O&Z@Z M0/#*5&6D"B] _(I?1^/WN84G*X&8:P'!(U*5(SE$*ME;__PY(5!J1OR/_P]0 M2P,$% @ XXAO5E<,S*)1KP "<(+ !4 !C9')E+3(P,C(Q,C,Q7VQA M8BYX;6SLO?MSY#:2/_C[1=S_@/-=W+0C2FVWO8\;W^[W&Z57CV+4DE92VSOG MN)B@2%2)8Q99PX>D\E]_2( /L(H@011)).6+V%FKJX!\5>8'B5?B/_[GVR8@ M+S1._"C\SV\^??S^&T)#-_+\ M7Q,O_?29/$;;K1.2+S2._2 @I['OK2DAG[[_^,/'[S_^ M"SDYR6F<.@GK$X6$$_OAXZ?RF[.<7A3^1'[\[M._?O?#]S_\2/[MIT_?__3] MC^3N2]GP"Y-OY7>V#/SPMY_@_STQEH0I&B8_O27^?W[SG*;;G[[[[O7U]>/K MCQ^C>,WZ?__IN__^J$+OV&L/8_)?S#Z\AU4FXEJ?O;4QP4 M!'[\KN2E; '_.BF:GWQ/LF%Q&^UF!2-'\[:)_K].G/?_[S M=_S;LBDCY*5E6YGNOWXGOOR&&8Z0_XBC@-[3%>'=?TIW6_J?WR3^9AL 6_[9 MH$9II)/7MK)B ( M.E^SOVH*TK>4AA[U"A6!9PMI+A(/9DX9:$=NC6 !7%AR9+BEA/J/MQ';U\ MYU$?$/,'^.,$_N"68O_X^UG$QH+E4Y+&CIL6E+C\__E-T_<][0%2 [%E7!?= MB=V"&?NSPQ)YB^_(FR%(TFX%3-2FV[UQR&^1.UBCJTURSKT:XGR++!U"- >,IQ,W;"Q(=QNQ/V&IK.P 55 M"AZ,K7OMD#NB4MSCQ]R2\G10*++(2S^@-]GFB<8-BCQ]*H4*K]O_'JFW M*<4T];)\N@ 4B2 YF7?=T[4/\Y(PO7$V3>.LHAEZ+VM6K.YI]3:HO4TAZI$> M5U$E0'8RK[L*W2AF*,JGQ@\I&]S/HBQ,X]U9Y*F=L*L7>I_44KONHJU=4'NL MGN1'.G"-R8)P-B2*2;OR6++@KWRQE=$Q;*O;H_?D#E7K/JQH MC-I[NV0^TF\9>5*G/_7 O_0\9K4D_\^U'])/2F,TMT7OI"TJUAVTH2%JYVR3 M]TC'S&DNBC\(4">WX70HFC,^8W_>QH_1:]AEAEK+N3CEH7J-+EDUFX-#-D@[ ME#L":1C8@?C4KLBSBMOX+HY>_-!5YZ?*YG-Q2H6BC9ZYUW8.[JD2>1@?S9// MVY@4#*;VT[LH29W@__&WK;,H1>.Y^&BCDHT>6FLY!_]L%G@H!!74"2,_U:P( M,'L94T?ACGM?(W; )D7*DP[2=TB=K%%$4[?B S%0F\J+X%Q@I5\(8F MB+U)I5#A4?O?(_4JI9BFGL4)$DYQNLGP W6SF+GTIQ^>'OTT:,*IAB:(O4NE M4.%=^]\C]2ZEF*;>Q:F0:$4^_?#AZ5M2T)_ Q1YC!XY[/^PV3U&3JOO?(W:N M1E4*SZI]B=2MFF4T]BE!C0AR$Z+5Q9O[S$2FBCT[13/$CM6FV#YRR6V0NEFK MJ*;>5A E!=5I]^Q^H4'PUS!Z#1^HD[ QVKM*DJQE=T/='K$?:JE:GVTJ&B/U M3#V9CYQS OF3WX ^*1@0P6$R;_TY"K(P=6)^3"-.E)8X;(?>.Q6JU;URKQ%J M;U3)>J07EF2)H#N9[YUE<4S#5)P3@VPC==),[8+*YN@]L5W1ND,VMT7MEQTB M'^F>.752DB>"_H2'<%(*%U+\%WKNI$XNC](:RN;HW;1=T?WS-DUM4;MIA\A' MG[ IJ<,I;*?PVTG/O\9G3DK74;Q3&F&_%7JG;%3K\"!LV02U"S9+.L!QV)@4 M5"?SMX>-$P2G6>*'-%$/VONMT/M;HUIU?ZLU0>UOS9(>Z6^<*"FH3N9O%QL: MK]GP_SF.7M/GLVBS=4(USJE:H_>_5C7K?MC8%+4_MDM\I%\6Q(F@3G+RTSGH M6W7Y15S)4MNAJ2E^UU0JN.>7!^UP.Z5:W&,]\DV^#R5H3^".5^XJ7F:>S^@L MTY0F*3\X>QDXZP8;M#9&[)+=2A9.J6Z)U"TU!#9US*NSRWN2TR82<0+4ITL= MGVD0=(W@>XT0NZ):J;V\46J!U/5:!#TV:P2:DX_)=]E3X+N70>2H%VSJ;=#[ M68-*=3>3&J#VLB8YCW0R09)PFM,M8T>;#=S^$W@MUE-Y;V&[I@=I/M00_=I&;\R"=A.\0NUJK:7AY6;X34W=IE/3;;$F0)ITL8X2DN^8CMX$L_<9W@;]2) MU27;6IHB=L$N!\V0^F*7M$=7;Y-]D9.>W!'%)HF>*];;SL89&U1L=D>IX2P MH5PRKW$YE5,N&6^/:]:\:[;_/6+G:U2EG'O(7R)ULF89C><=!;5AMKQ63O+$ MV63)R=IQML*?:) FQ2>58^4?_)T70 1;E>7?NB$KL]B)Q*[Q(J:]SV[(G5' M$P. I_;IA]")C<0W3BNC,(D"W^,OV)PZ 3P? YMO-#T>-TVF9,\P_\N_IGY+T[ I$F6H??P M',7I(XTW5^$+35(8S_>GJD8$D =I?V/(D:O?&W$X&RAA[/V,#8MP]O^)Q&W! M'TWB#$]86&Z(Q-).[$]L$JZ_"W_0BJ&=8=EUH71RZ8>GY*KJ.D M&NZ3V".6[!'2XX_NF40T8%7(R.Z8@@IC[#5!'K%-"LD1*G^/."(;Q30^ M_UX06Y";0S^;)J1&4PI:=0!M-.]?^@I90ZR\T\"ZC^('-GF^B],Z) MT]O5N9]LH\0)/L=1MNV8QO8E@CQ"S8QRN"RM2P%Q9!LJ$? [8;/>$T:? M#;.,)P&F4(.V8$LX7]M382O6>6;\^)H 6,?^#I3.'L!<8KXSI.<2L<.ZW,AA MUC6A'%8E/J/$,/;>Q=&6QNGNCBF2+D,/5LRWL#*N7F[JZ((\QG04KL\ZU>T1 M1Z"6V.;S,T%\03AYOOU1,K"XA#6)TEQ;6FG;L# \#2*-JJV]):];II0#!36O M*9/DWE\_LU3F:T(Y *MF1QU]D&.2ELJUB7E;!\2HI">W\82VH$XX^07A#$ZB MU0EC(:;QEB;O$ZD= 'F;V<0Y75&6TGCPKN^&/CIO(FM2YQ*M'9!';;>RJQ^H-]:TNB*/W3X&J&].=_=#',^]Q#??^RV8R %-/I2<2,'J6UL[ MW=-:H27:!U'XA<9/$0J5/;KR0S^E)/!?&-3Y)==F4)\$ZSKP;#Z8U89+,\"> MP=RL(#1*+&WYA^AI #3KET[0P@[A_Y\0T9_ZG_ O;V*!W/[RUPWSB7^.FN+KU/&)\Z-O4 M-:_&<*-6M0%N#AOCAYL6F8\-P>I( M#A:\&4'97$DXCF,S$9!@9N_&#A-0;-"S3YG?IW[(#)$?]HO"]O@]GBKR*!_( M;(K)N0E)Q(@QE&;&9]_V[LN57(G,EI1\%X@2'MNVDQ<^\YVT1?OMNZG.%&&R MC/WKB-=1N(;:8N?TJ:/@5G-+['BK5J^&H8?-,.-BB[3&7LEHBBIX0+5:U?SB MI%D\XJRF$\=&T+70;1O%_+7>:$6"4GV/,;*=46DG2?.)0ZU5E%DMGXPPT9XN M?>A:3!AK%:&\.VQ[*T'&E<[#:,K&V*.N54G5 #B+\V@= @\U#%:'_S$.B*,H MWC0 3@0ZXZ@F@*<^PMN[PU2_5%G@[*[[0*Q&/^1PI*VZ^LYP0R?$(*4O^V!W MATLF"([3CJY]!5K1WF7B(],+UXLI#]U//_SXB8LWQTWJ0$Z?":<&=C MI(&JIR1$9WM+RR'IY:^=-3UWK"FX\5;$!O;HBS+4WL'EV05,-FL?%YZZ(TZ: MQOY3EL*:/DDC^);_Z?DKUIZR7RTAKW[Z3/[!$I#$\UU0CXUL;"0#S_\X2I0W MP=O(-BRO',/=:GFU;/+[U5,I*ON!K0D1OZ8@*ZAU0T?5 2G Z2M[<%>GL37F MW*-;Z.-NM-06*ZSG&F-K:SL\)=VZEVSP!V"#.HJ%0,0AUB3E $M_UE?\AIIQ M6PZ9LVBS\<5S.FN61JE#J+T'\I#24+?VAI2Z.>*0TY':>%NHHLUO MIM2H6WH0:D)U79DZ^7 3I91\^M>#6B>3A.XCW6RCV(EW6M?RU*V1AVR'FG*X M*IHB#M4NB8T'EX(NELMT8RE:79>C]F[%[2EWYL3QCJ&$6.=82BL6C]&=TS); M-*$SK^C5-TU+7'<3F4_$]]!E*"R 1QX%4U*LQ"WW5M4$9Q1(,8&![N)BC2F! M2[[DP__Q_R]#F*_=^IMR!A M5'SJ)PD<=X1<(6(3Y1\_+0B@"&^W_^DG.^E$[XO^ M<[[:W^\R_RRO[X]X85TF75Q'5V"(]<1C3#/4;N5;S#]@EA*%7-.? :Y:)DI[ MS9"'J4JQ_3FZW 9Q2"I%/69Z&H6$4UR0G\50=<6'('MS\3$T;!F8_]PZ,O_X M[XL??_QA\<._?^)C[8__LOCQ__IQ\>._?C_D@+T@C-*6NJG_0H.=G>%[Z7F^ MV.N\*5LC1X0.-6OW_YJ;(L:'+HF--]Q+N@0($S\D.6E+ M%__&UQ/>F#QA>KK->DYU,3?;9(&34H_OCS$LV[*$@88)PPEQ11&>V[ZAZ>WJ MT7E3&:LW%>PA;&:6O:N]?4A@#GE#38ZX!ESP(V+3ML:QN![\ 9A^*XI[LW&0 M<;9V1=B:>2+QAF;-/'YNG@#,8P54[FGJ^"'U+IP8BNXFDL3G=.6[OFJZKM41 M.73H*R^C17F(T8^R=F5A46S(8<(#KF"S+?2 ]8S7TFE?G#%#V+Y8!\53TR+S>T^ABI[S#&6Z^IVQK%H M/K<8WI-Z\/BU>2!B3(55<>LWZFLO9F^KK=<3>83W4%]Q/'&&<^L^T@]SB!'AG'I" M(Z"83$OZ:DZDVWO,)[!U)M MS><1R(//'^L!C&32/('"J&;+!_JVSI35K><6 MK.H9LJ+IG()TH(EB4X"BN2G;/A3NZS"T^.^; ;>WG%*E#3@"; MPW7LB:_6T9]1]3X\!$0^^&$>Q>,_QA8F2/+\G6+Y_4Q1%.KQ2 M8>FRP L-,WK)?GRHBP1F^,5/G\\R%G4;&I>%VY=)0MG_>>I;2&:4D(?!$>:I MWR_H309Q^!RCC?D-!,Z3P,]#"JZBCF_!5WYFH&!M[UZ2#2/!72QX LM6H< D MO5U]CB*/GSVD\8OOTN0A"M1+#"T=D -#M[+U.8RJ->(PUQ#:?*!,^*U!3IP/ MB 5Y O1MY;*CZ[OF^B8-*DX2H9_C*$GNXFBEO )8;X$\!AO4D8-.^AIQE#5) M:>IFG!81Q.RFVVC-M.^,7/QMF69.DTZ)GMM[9&'4J>JC6_)[#=&'&;= M,AL7-B_?3"E(6Z]H-86R-"=MYQXL#1BY]6<:,G$"-EHOO8T?^J D5-C)U598 M1[LS\ICM9X3:'5JMGHBCN:<"QG=M!9L%R1GQ3+7.J@AZ2Z7K)K;#6K*#4V-E M:?&*L<]<>$DP7$..K:I(W]@0>7BKE:NO+.VW0ARV+<*:KPM)) FG:6N]9V3= M(.98L(6)PU^L(FZ3KA.%':^$<>?$Z>ZQDJA(-F#)2_HX@64ON8O2@,=211_0 M@YBM'OU'D40-%<-H9AY[HMH+IT8D5HLJS>=KT;(48CVZUM46&.&PWI9;CS:G M2$>\(,DK?95S$;%]MC_VMS9$"A7=RI6O1C:VPOYB9+O0QC=!GJ'H#=0E<'@) M>%AI%:79JO=,15FV!3\_ 07;HK#8F7U]]MUGXL24A%%*$LI\EOENL".>G[A! M!)M(;+2%?GEIMZ38V%T(!/#9OQ+6P$DY%2=)(M?G[L_A0!Q42?UT]Z>$L8@W M3,XXW\W:QI&7N2!?5.P/3_S^Y#B_B*@;6"T6Y'2'5>W/0K60KL'837 XNH;% M?,BWMX%_L-:CNR:$%P4[56M=C$2'6ZT*KN68&T5!BT/:311&==UR5.G8?]/I MASP2M567X[*S$^(HU9?=^%"4Q*$,VYS)M]:WZL;77V2J1\S!!S@RSMD,J,^.'R8PWM/D-KQX M ^S(_.09UB1N5^?T27FZ2Z,?\J#35KUV$JRK$^+ U)?=^)P5XY GLK#25>]Z8'>WN!ZZV8%V+2>9I(-B8HR'U)-@KHZ(<,KF2]@XXK-:)"RNI/EAQE2N+J:>TE44YT]F/3IO-&&)1^Q$L>>'3KR[ M@EU.9BL7+K-%_#Q@,1=23KW&Y(@<(R8P]^$=[%'8(<:I*;0V7RB0-@BJ:ZM" M0/DZ^!,7L0!#+N2"U(4BA51V$'(&9LZ-N(VC%S^!TY'LG\5YC10$LHBYS"#Y MB')*0ZJ^>Z=N/0NL4ZIYB%,'3=%CC%KB(QV7$2Z62,F'G/; B5"?Q=)Q=+W3 M#LLI 6UX/47"APR$;FC:>6IAOPURP&E4J3;IDAL@!I=F.8\I_U!/.R9\%[![ MIW-P79N/*$PT:YR3-B\T?HIP_#J30%[Q$FQ1>[GCW$A+<^1 V*6HC(FJMHCA ML5-D4_\LGS$NZX9;/P@RFJY5+!(V7Q-E]'Y"$9:G3N*[FN8HVLXL(&LJMD4C M;SBC4*S+.UP<+@BGC",&AU&R42$K 7?N!UFJK/BM;CVSH-M3LRWL\J8S"KQ] MB8<,O9PVCN ;2E&%4I,$X"_47S\SYDN6@3MK>I-MGFA\NSHHE=N1H!J001ZR MIH:18[DO#<1!;JR*:5 4#$G.D0B6B\ [0)-ATMN>4&(QO9_6+N,IJK&<9\D%U"A)3LB3M7F0 MPAKYJ*;[[$I_*O,$S"ZS:$"FBL3\0+-3DVDSL)%VAEN?-K%FF58T\6S.5:ZB_]VI55S?$8-A'>O.:Z(=/H.3[ MU@L"FQ8,"1F_A6(3V_I<= H;B;/];LU28B_'SJR3R].@./QJ9T[R?!E$KW^A MWIK"!2;X4!P,O*=NX"2)O_)=?EYPN6+65;\D,SP7Y!@SDED/;@T-QP(Q=HVE MZ7$QW(IV(!8!N0@7;$&D*YF+XFSKOH +XH"(]EZXP6;HKV%,G0">UR7/4<#3 MQ#76/,*K@'4\F&TCT#Y[CL>X^8>)X_\B25+SC".>Y^9 "J!ADGD!-&%T" M)E-MG/EAU$/\CX./S:,9="E*LL8E?68T?AO*<=ULDXDZP4T##Y@4IGLT/Q

3R@Q@"P2OA225]?8D_UP'5?;5Y_5+%S^ 6/T,JF5V:P]0F*3^B6PR; MMW%1C;80G\./G_I49SHB]C2;[MSC?8Y:?34;<1RR/9P<,Y^8SH1HUO9;=L_[ M[[?C1QL-=35/CR!&"1VI+9T6L1/STQE$1#+:F7_//<[1CX;, C.&-^8(!T)P M(]((2N([!C+W R!3G?VP6K+_Z VY$8\QO$\T' L'WSD"HL2^.8/>& 8U/*7 M<+ J1T<^/.7E!E$"8]-*X/[:W^@[0[T9SA1$AS.VZ9Y//VXS!-P!E9Y\-Z=A M]^9=;-M,;'^3/1JKV/Q0O'1]NRJ&MJ3CSE='%^3XJ*.PC'!M[1%CE);8Y@M3 M81(%OL55B^>;IT4__%3WW:Y>1& MA)"[OKEQ]@KO]J2".$R.4.:88HT\2@JFY&E'/@!?EKE_2TK6I.)M_2*D!3-5 M0$+@28)&N]BY(]"&/KD@=V!@6MX^KG#UYC.XI^+(?T%H1Z\=HF,%^)%;(0W], \L@,@8? MQ' TJKK&5W2DQ4,&6:58Y/!! ?;UW-*3.9@\+DT>5M6ZV>?P+Q?LO97L73V@ MYUA.=L[IEDGN\P4,]G= \X.:RPV,AK_SSQ6_BF97Y"C9QP RZNGT0XQBO<0W MKGDD,5F0D@T_4RXSLH,JDYN Z^VTZ#U-WB4)<+NZ]$.'P5:X/HN2-&':G_N) M"]<]59.?'MV11WY?0]1R'LV^B!&@MPI'7!\N&15OT9.K),D80THX/QX9)4=+ M288M>T2QOV;< N(SFU#BY8RX3> E]_QS%P0Q00S7BRF'@4\__/B)0P%\LJ?O M5?C",IDHWNU9IZ,ITA#741#"N:V=Y=#U(C>#Y+(I ],2^\C;_LPQY:&JV,3* M'\3+F7T<)52;4&MLE6L165*>%HDFU;'\#4F2TNU)MK4T_5C1.(:IFEN\.RON M6Y^Q#WUE$J+1#2DR]56\/N5H[X,XV= 6W3S/%@QJCS 7Y0=(SL76/&,JW:T_ M5%H\N40].+[!QHNV]0-E8^2AVZYD[6Q!8TO$8=HAL*F#,&,TODC.KPQK91?-)F6GB="SET\C]+5?>E0A;"=#B1.MM^. $]'9U%\-2 M9+J[8\JE%__,_.U&?>Q2NS/R .YG!#F@]7HB#O">"AQ5F#+?;V#I)IL[;Z/$ M+U+/@BGA7$G)UE;INBF-PBR0,"9@AI7_!A7RDX1:*CM0ONE^&<7G4?:4KK)@ MZ;:N_G5T01[X.@KO'8]0MD<%8HB?/UD ^P^<>4A;U2\+AO>>5#RJM[.86]XM)>MBJV M3&,1*U"F+CI3O[BHOH+7CP)RH#,PAXQ[/;HCAD$3+8Z]%]!80JOI#K#%2KTV M[$+?W&>8[G%@M((05Z$;4R;3.17_E0Z'G#E;/W6"CD-DO0@@QX?^QI#A0;\W M8G0P4,(T" I6Y$/![%NXSED=M> M_( ?C"KO4OF;+6/-=Z9<-BL3$TI+YZ8.355D4E5>K&WEQJZS@Q"U =K!X[#? MK&"C1?R! :-AZF4KAYC$#,ONJ9.E6"^V91DZ:1NHWF=VT=V@B_L8P*YN!&&,,E)BP M3(:="M 3VT3KKB@FL("Y7C)$[9UV0O,$#PWC:(!("Y7Y@8F.,B.!2LD:T^5V M"V;:K[W39!=+M7?$Z>#D,5K"%D],:V?Q6)K6=4:U%P'DF-+?&+7#:]J]$6.( M@1+&*PHY*RC:D#,K3ZHNQ%'5!4_=K9]7G=(H3/QGF/9%*TA*Q+%=, )5&6&J MDZLNI5X"Z-5P9E<')WI1P X4_ ;[(3_0/25: M]#@%:\DJ7OW0/R;TV,?/TRSQ0PHG=OG;/I >Y=]XNA#<3@([?A@8I#75:.F/ M&4%,U!@RW:CXE0]B\52]8(HFX1C3, 7MVB&O\@P87QYQQK5'BL86XM%P%L$) MFQK&>1TE)J"EL>3]JMZU"(A2=62K?D>O;^ ?*/L;PVQU#_$@::#$A*MYJ+8( MQK()'P,S809>QR5!O#U0%M(Z=GN@G= \@4/#.!H TD)E?D"BH\Q(@%*RGL'V MP)AFVM\>:+*+M=+\Y6K&->1?+//B5X\U5C_VVR-'C$Y552MXM<:(X[];YF'6 MH3AM/I7FU.TOPXVI;$Q?HN %0M455_)7CFOS@-$]W>8SI]N53L"VM4<>L)VJ MR@&K;(PX8+ME-O7ABC+$Z:@!J[_H-9ZZ=['/AM,MF^-7:H?H0E>&K*):[^T* MBO=J8-Q!!^3!VZVL:KBMMT8?@I11UFT!P^T,Q&RH$"K&F /"[0%%70:S 1)ED,.'$7 MTXV?;O3HBC;+^RI?UTK5Z8:^>WD^)(V*422^V>9^I6+CUPU40O8JQ MPR\XDZU@358%[XE+JT]CCW+DS(^=%MKGC*J5)@N%UR>V0-?O/R#&R?C<"^-T M.V+&N%[*EQBGU0L[QO538DB,B[(4(\A-9A I,9L,Y+KSM0EMT)S!#0QW1\^= MA+[T&NZ$EA(71ST4R6Y7'Z18V$OE6BW(M@Z(YUMZ_()6[%QRL MUF085_>B@C\_C2<*UP7 R=(R96WJ6:ST\%>[5"M#K3V0QZ^&NDTG5&O^I&+3KVPUB[JG <\PHT?G[1<_?7Z. H_)>!G% MO9[V.H(<4@@CQ5[^+D9ML(,4]+A=,3C=1"%_E[&'9??[S1 M&E7O/M@F=9H9.C3+ M/OPQ-\&%<#:8CKN-IWU"F0]Z3KP;,?P[UUW*EY5;5GTUNR"-YCX*-RR]-+:? MS]I+N_C&"7#3B@NL$,+[V1E_2-OS8Y84!SN1$\,2C5>^L2V%O1/R2B;I#L(A M8QZ_L[9$,XZIZHOEQ0OK5A?,)]&[U+4 M^:%\JDWN'RX AAZ&AM;4DNDR*:A MGF(CJVB&.1=ID7:06"RH6MUF'D/+DA*D#FGL/V7I89T79/?9%>;I10!YE/8W MAMF]=<0Q;:#$A/?4416^&,LF![6Q/V2%3O4/I)97H1MDL"A\SDOJ.<'G.,JVK,.39$C[_"1G=SH\@\I+*/XY2<7 OEH9.='D4>> M:25 /,I8,L0Q%9P&&3:$Z*3A]2]Y2*D/6T('.Q.2N?U.PFS^NQH.QOAIWCE8 M#XZ][Q5*L2#C*.BVY?AS$;:>&[-OOD:86A *KQJNB%!B1/L\I$[<6J$;K86> MZ-H/0Q@PE7::!-T?LNTVX(C/*M^;^2(W=,,,C9K M=D6,PGTU, T'F0\I"XL2B97U"JM63 $K#T&49#$M7WD0%5K=S>$])[K1!',+95/@8.^9A:N068(E)5TAM]\*?;PUJE4/MEH3U)'6+*EYF EZ M>8A=O!7K*6?B6KW_.YRVRALM)GP2N3LFAS7$?D *ZG9.?3"?9M)43S>$7KF; M?9723>?C!3WZ(X_=WJ:H'?G0[8PXWOOK8'RX07"2GC2!&61USH-SLYXH3V>/ MEE29"7%RUF8KVV\4Y.!]\;:EH>>G3&S8?^3GBD^S]"9*_T8Y<"I7+[2[(\>/ MOH:H+W[J]46,'KU5,!\]11$>F1,I6)&G+&4QDY(=%7F&'>B8S!A+UXTS)T@X M*#BNN'P"14:O1?WF(.CEH7U#BQ*\B17SG!@TQV6J<3C@_E%:(0(F/YYJNVK[OZ MS,4EVU1N]-"F#G-PV%:YC4_VB>M^%54V*6-T[;CQGH;GT<;Q515Y5&V1NVVK MBK4STDT-$;MIN[Q#N2?Y51"VXY_2[?,O=/-$8X4MFMHA]TNE:K5)['XCQ/ZH MEM4\^5371)C$_9:>QQ^/A]*WOG<5YG/05E?LZH/<+;54EEVTM0-B=]63VW@1 MH:3.ETQ.KL)B2\:.([MNMLEXF;#;])G& .]L\D;#Q'^A8G^TW:E[],?NX'U- M47-VWLI!6<"&=%:KQ(?DC@PW64)-]:>OHL9;D-]2Z<&$[5):U! MH&R,W./;E:P_AM;4$K$O=P@\A..>TY7O'KXA.NTJPS53DN^/=4U9Y8;(W5*M M7.,B0MD*L3NV"#O >[Z,@N(SB5R=6[4[VIX+\X,0E0)C8(C@A19$AC;%30832@ &#AX)1X'#Y?>/[(DY>>\'B/%-@E'G*?]ET7NX;)RPI#@@<8OODL%.MVS;&L=QD M9^A-RQ.IW*BNQ![3M(YKVOR$T^TWJF@4=B\>@M22.^#BVV]A*: MIN+2/U^QG\$_EN 2TDK@,O0>G;<[IE>H*DHP#6?D6#BA M^67LG( M8JR=4GM3I.F\0[$@E:A%-3@H/5U(NV@NPR^P6Y*:[]XSN1=$2&X' MS.?PDU3E]U>.'Y,7R(,!V[U2/O9=DL;\O5H[*WA+4<(&!L,H\%V?=A6@:^V M'#N[E=V[SJ5HC1BI-(0V3OZN/M]<75Z=+6\>R?+L[/;KS>/5S6=R=WM]=79U M\6!GXN2O0W_ENTZ8'FK^2-_2TT!ZBGX_']3MC-RM^QFA-B/2ZHG8W7LJ8.SZ M%1M2\2$%(_(KL"*KVQLT7EL5(NT:N;0[S\^36XS0X=,-/>?E MW6T*F/IYP89(?.2*M_9'KHD,83W@[ZE+V:SO*>B<8C6W1![*+>K5BP@<-$,< MI&W2FCLB3YL>R/W%V<75S\O3ZXL%N;EXM.*495EK2=.NP:>K#W)'U5)9=MG6 M#HB=5T]N4S>N"J)+Y!$,)^-JC2IXFU^7%L].5\]0=XTV_:D@#W!#L]0O2?4B M@1@$3#4QOJ5T]7!WFZ=99'ES3I8/#Q>/XL_KJ^7IU37[[N*!_.7B^IQ8##]J=D 9/''UR"&VPNXHVCBCL!A5#._."@$($("^6%M M60A22;' -4.T;\'9@-H]?:','I>[!NP>W>?M]:T#L&[? M^?K]<,-!SHB ]4G!BA_N(P4S!*/F=.9 @@.7CA_SH^95"M U]^WH@CS>=12N M+62UM$<.JC2AXX;G0D)'=59IV##[M/9 'KH:Z M]1JVRN:(@U9':N,J:CQ=&6QNGN+H"SG:$']:JW<&&@8WC1Z8<\9+55E^.VLQ/BX-67 MW=2;[^YO[R[N'__&UZXO_NOKU1VD3+@<6W]$ZDEBKNZN.6+UZ3_'(!@#W0MF M"\+9\;MM)4-/RYO/5Z?7%_FF,-X0 MZ1I,>Q-Y#T'2.J#VHS#W,!EN\"C8\=&T8D@$1URCZM2FP0HA2]>-,^I=^\Z3 M'_BI3Y.S+(Z[IYDZ_9 #A;;J>[?#VSLAA@-]V8\X)WW_]:)V.LK$JUTOIMQ5 M/_WPXR?NKO")6G[5$*??"ZFK]E0;'%6SBV4W]2*75[]HJFG65P-39WU\IH01 M]-EXY%5#4Q025W BCI"!!)40'T<9K9J"=BHKY"R(Q(/D3"P.TY-I/PQ@'7\J MG3ZEVK-:96.D**:G9.U<>&-+Q$-KA\#&)Y O3BW=,:KITWGY0=EZ5A[9?E6A MN>EL?'+ 8_&,+J[)W&B:V@J_P_=Q;Z*T:UCH[(0\&/64/JCLJNR!.#0U!3[JC_PQ0LCPSME2?4$6%Y36N_96XBX#LV.>II _08!@F'>NH4 E$Z00))L@&7HW5-8?J\?9NH8[?M1 M0 XU!N:08:5'=\008J*%<6EV*0#X7OSYQ>75#8^,F\?[J].O_(N[ZZ6E:H%W M4-.>FX$7NK]CX!"7]CBE(5WY?<[V'$$.>>0<:ZC: 5I#6HACZFB5S"_)%UQ( MP0;!&&S-'-CQ!MXI\LLG,,YX79TU#:%Z>)\1N1<-Y,AB9)*]45F? &(,,=/C MB$CYM1U6 MA[(04%#W?H5:V5SQ.&N([7Y96/FPQ?D M!RVNRQ :Y?YN6Q'60!U^WDY[9!E ?@S@XSZI,//"XV?HJ[* &.J;3M8 MK^$%PZY=T8-&R .R62DY!.LM$ >=0E!3?[N^6#Y8\[0DH32OLANNA6)= T-G M)_2>J*-TW3/;>J#V5"W!C3V7DU^0D@$1'!!,4<;6W%[,YON*=TZ<[AYC)TP8 M!FF\C:?1#7GKW_;W@=Q[&J+;E[@]7KY>'%.[I90$.+Q?GGSL#RS^9!6 ML[[Z,Y9^%&;J[9KSF1[=9Q@#X^QL<5Z$,R,R-UR+;Y/:!!M$P*OJ;IK%;$CG M1PFX*9;, "_\_F#G&*C?'ST\]#1%'1PT.Z.&AKXZF ?!P^/]U[/'K_=7-Y]Q M^GV?,=*(U-RC07O4[$]GSC$RSC@J,>4[6<7(6O'%-J+:,)-U5'F@:]C"NZ?; M*(8Y(H[Q39^&3QQ6?8="7GR\"[._'_ MN\);NS/R".]G!#G(]7HBCO.>"ICZ.6=#HA6I&"V(8$)^S?]K/> GLL6-D_(* M6"OI35">H)=&NF/J%56[+)W)#!.FM<DF7Y165+ M[%47NP4W+J4D55A<067%?"0C6Q&%4.+>\4/X)(U( G*0! 29N.+B>!;@E DG M;1][IM-U0)2YV-!XS3SD8:;K.P_4*GQQ0E %,WU1\V^ MR+&@EPEJ*Y(Z'1%C0#_YC=*E>/N75TP+Z$KRV_J6LV/^3F/$592ASQ]N@SXTY6 M44P2QG_J1]S&UC]_7Q4X$,:" _[B#2][JM<=SN56U7/M.LE$3VZ(P4W4T/4 M*K%J]D6<=/16P?QDCV#$?*)3-\BB"-\1[JRD_( MMS1'O^:@)_TH*P[%*O96\";3OQD_INKE(GU.WSY&V=#:4IF/%QIF])+%--34 MACO^M?N2#RQ]\IS8NXLC+V,J._ T7KIK/:_0U0PN:%[ZK"M M _(([E:V?N-9U1IQ[&H(;7[;.4GA%#W,H\7U_0<:O_@N@DQ]O,&+E[JQ;$P,>9P?9Z1Z22,32HCQX4B% MS L?<;8+DC/F\%%G30K>"/, )$;[/YW-]O]6F96P_B>)I2Y/]R^.*IE6LA/XY M?=(\2=C<$GEHMZ@GAW)#,\2AVR:M<:D21A-?.(ZE*;E*DLQAWL,S#CN#[L.S M$]-3)I('I3\8OO!-Y]MM*AZ4OV+2A9#AP\'&I'UAW8@2\L@]PCRU&7Q_,H@C M_QAMC*>AP/,$_H8W:G9\_%["DO6:7YS' Q96C ,%R4XX4R)SM326Q_X+7Q70 MG(BW=D".#]W*U@=X56O$T:XAM/D@6)+&..I/H;>U_;9DF221Z\-3'W!4X.+- M3V_C4[ZAKEL%0=D<.3QU*5JO@M#< M%C%T=(IL7A$ "!-&&5\\3Z"TM&I*##'*'*^3\J6%D&.A+ S$V&*MB/M*]2F^P MDCI+?' QN7V@)C*FW%ZRS>UX2NLN :]FC/ MZ3:FL'7"L/,J?& HZJ^?TVL_I%]H^AQY>T8V98PU3.Y#;DP;B M7-98E8$@J58^@I1,R:^-,SA3)"2 TT. M,S$5&VZNO5L I8WVE_Q.G<1WX1Z2'V1,QIZ0TY?:;)#'R$S- -2+U"QPR$RC M(>"H:5&=WW 1_A,@TL<4D@'("-Q-;=?#/5PJI%3.1\T)C9\W2>Y F(5&6 M)E"&"";F8,F0I@S3Q%& (X"\/7[Q-KZ?67)TRQAB6&2+%V6O"6\-%ERNI/^ MQ6W9^8-HDYD-8O4S3#-4Z=&8!4;U5&4(<"I8$IGG@CSMY ]R<#I I$G"J,$H MRS=?]12WNC7RH.A04_9]15/$+MXEL:DG-WDO^15(X_%5^#.F]#S:./[^>EJ? M?C/TWT;5NSRYUFEF/MTL^Y#>O2 %$_*K8&/DZ8IMB'O'<^)KZL ARW/_A?&, MPH>/\(%!(1+M+$R^RCFP;H#QBJ9SLG8#^V! WJ&&UIBSDXNU0L MHU+5$'LX=LH]51SF@L@#S<3A-YHI>5^AV*/>RI)!']C$& M,EVWF]7^@H$Z4Z_?8=IL6NL$^A8@)+9_KN>0[%938H-:A9FP%L$!:SP+9A-1TBCBN) M2"52_EYAL4+F\5U!22R2RX40#I%8N-J#%4"Y92H_LZ_(-H;7+&JXR:W+IIF! MO_%#Z+5R_)B\L-D6)> M[50/]A-GO8[I6I1-7N5/C6K-P77[(@>J7B:HE1?6Z8@8?/K);UQ\M\9%S'#% M<[980&0:.T@S4._ )'# -X$7#&%Y$V CI.*YM#6-UK&S?;93>$?*#]D,^&>8 M . 6+T&D?/ M06:)L%K$!5H4,\/]Y;I"*@+E3 JY^-6)9"I8?*'Q4Z0]/<1@X@I GPH;N_#.S:I?(6_"S6T.B+'"WWE9:3H[H48(WH(;QH-!8L% MX4SX<%J5N< "#A,8 GM!"GA^_M4/ OT$H:D'\AC74+M@[" M.N(O[7FT95Z'^ET]\7Y1Q2?!2Q[;\UW1V."- +&-6I#.:^!.&"_ M@S">PJ8ARLAE@1/# J ;1#!7Y;/9312G>8(IY#H)^ [SP;[G@E=78'QZ MVI$-B$I%JH5#>&\2X_S>^4:3-O=PF MTLZ>98@XIT]]=^@:N\P&!M0*-P?^8?M9A'J+V$,$-Y!'DS!,IG4^4_X35!Q_ MLKUR_@4F^>*AY=5U%*X?:;PQB&9M,K.)\'Z&:8YZ/1JS0(*>J@P1)Q5+^!

Z/I;N+7G[/C[)/!]4)K,%&@Z]S?8U(HRNZ;W M3(J'5V?;:]^BNS-2M# S0L,^0T?/^>P?Z"IBO"_P3$G:N#?@YYQ)#(&0 &]K M:]!C6T%>6RYX$6!&.#?KH&C+')%DCLH-1@&\\CV0\L#G[0IT6S(HYB]#M9M$ MI_L\0$_;$ VPU]EW/L"GK\K T%<]LE.=I@9< .:DY&X-"L>WBPR&>L:P"H83 M&H3!H72X&["0I8H*&TP\W2P>$Z#>&9L%TS#A(;:$UT?6XF&]TUW5YDXDL\M7 M)_;TRN0?3Q\I^HYFRN:9ZY'$9S&E'4K'(>*5\SF!SSTB2T-D<> :(TJR<%2:X#8X9OE-*[6R'T-R-FLM6\>NI4U0@\. M3-\XF_;R_".Q0N[]8QJX-N*,P =Q+(ZJ[A A?<2S L=?X'EVPC3:!VIC6_G"-HB)2*<.OD ]+\EOPH6MB[D M3*"TPX/6<5/_Q4_MU#ZXV&R#:$?I0QJYO]UNE<\0Z+1''JN=JLJ1JFR,.$Z[ M93:>Y0!%(D@>+,E.$X^6E)LD".]IDL:^FU*/R\+AYO[A:VL@=O5!'HQ:*LL! MV=H!<5#JR6W\3@@;E'!.WE0Y\'7'^QF#$$;N_,,9K]:]C=>_:]B,@&,P(,'AR>F!&:\=_$9CD\?;LKR>GRX>+/@8P4<]SRC:D0G[>(+A)S/< M@QI>(,RC& J['#< 'B*W8G_K]' $7!!)_+P!5V!!A JB.DNN!%RZAH^M'XEZ M)S^?5/\%SP+4GDV?]FVZ-W]B1FJ:42US%4Q&DZ%9SFNP&,7@+6/!H/SF _7C MJ#W$5*8$Z J\%J22A8CE,<#E@P]!1'C/6LB(\DH?1N,W5C"*LC1)F96AHD@D MUB*YT>/*Z(GX)0"S;=\5;![#V34KFS< MG,-\,''V6*+JIS@P(#94;8K&@,<44[*=/'X^>Y4]AO"I%%$F?R BQ MS-2O0C?:T%.ZBF(J_GYTWL[9?Y+4=^%!(O:YOPY[EWLWHSH;^#K*;*KB\ 8D M9P%N C%OY@0"U*((5X.$X(@A"_[)H3W9J/ ]_BM+E]8$*(# MODC],!.3W;(&96[JO&'JO%FOB0.X'X6PKEV8DYDP+S=V2D.Z\OMN8)E0G W" M&9NK&=UZDYL%LIEK-41(5MPEC&,"E+7_/N0R?(L0T>R:[DEPX.7^$&'4Q6I% M(2^L,![NZM_7WFKL"5)&)&>#4N8&:X:I_O1F@5-'J#5$M)7L99#B=3+J(B"$ M*#!(;*B'DNW @F_1+&--"*T-#A\8KT8X8K&,?68[9H>8^M= MI[ ?M=E F9&95-4->Y":!8"9:31,343!F6.6XG%$?+!ESUY>82\)EII?/[0, M2U]# -=UZ/_.S93GG,E]% 1L-EV6%=!')@."LP$G4V,UXU-?:K. *&.EAH@Z MF3E'JH(] ?XD%P A4%FUVF%V)4YQP"&.3+:HA&7YS-$*>%U3IL)9I'G26MT: M.>QTJ"ECBJ(I8L#HDMC4KSG=!0'*:,)\+%WE&,[7G,,U"8!;\9"#I?ADB0Z] M+23BZA=9URZO1ZMW&,",$OJX-C9//>9[DT&-!^;:F&,%\(1]^R)V&> M4