0000950170-24-057486.txt : 20240510 0000950170-24-057486.hdr.sgml : 20240510 20240510091553 ACCESSION NUMBER: 0000950170-24-057486 CONFORMED SUBMISSION TYPE: 10-Q PUBLIC DOCUMENT COUNT: 81 CONFORMED PERIOD OF REPORT: 20240331 FILED AS OF DATE: 20240510 DATE AS OF CHANGE: 20240510 FILER: COMPANY DATA: COMPANY CONFORMED NAME: FTC Solar, Inc. CENTRAL INDEX KEY: 0001828161 STANDARD INDUSTRIAL CLASSIFICATION: SEMICONDUCTORS & RELATED DEVICES [3674] ORGANIZATION NAME: 04 Manufacturing IRS NUMBER: 814816270 STATE OF INCORPORATION: DE FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 10-Q SEC ACT: 1934 Act SEC FILE NUMBER: 001-40350 FILM NUMBER: 24933084 BUSINESS ADDRESS: STREET 1: 9020 N CAPITAL OF TEXAS HWY, SUITE I-260 CITY: AUSTIN STATE: TX ZIP: 78759 BUSINESS PHONE: (907) 312-0717 MAIL ADDRESS: STREET 1: 9020 N CAPITAL OF TEXAS HWY, SUITE I-260 CITY: AUSTIN STATE: TX ZIP: 78759 10-Q 1 ftci-20240331.htm 10-Q 10-Q
0001828161false--12-31Q151http://fasb.org/us-gaap/2023#OtherLiabilitiesCurrenthttp://fasb.org/us-gaap/2023#OtherLiabilitiesCurrent0001828161us-gaap:SoftwareDevelopmentMember2023-12-310001828161srt:MaximumMemberus-gaap:DevelopedTechnologyRightsMember2024-03-310001828161us-gaap:CommonStockMember2024-01-012024-03-310001828161us-gaap:EquipmentMember2024-03-3100018281612024-01-012024-03-310001828161us-gaap:CommonStockMember2024-03-310001828161ftci:AlphaSteelMember2023-07-282023-07-280001828161us-gaap:RetainedEarningsMember2024-03-310001828161us-gaap:AdditionalPaidInCapitalMember2023-12-310001828161us-gaap:GeneralAndAdministrativeExpenseMember2023-01-012023-03-310001828161ftci:AlphaSteelMember2024-01-012024-03-310001828161us-gaap:LeaseholdImprovementsMember2023-12-310001828161us-gaap:LetterOfCreditMemberftci:PlcBarclaysBankMember2024-03-310001828161us-gaap:GeneralAndAdministrativeExpenseMember2024-01-012024-03-310001828161ftci:TreasuryStock1Member2023-12-310001828161srt:MinimumMemberus-gaap:DevelopedTechnologyRightsMember2024-03-310001828161us-gaap:TechnologyEquipmentMember2024-03-310001828161us-gaap:RestrictedStockMember2024-01-012024-03-310001828161ftci:SouthLakeOneLlcMember2022-02-012022-02-280001828161us-gaap:SellingAndMarketingExpenseMember2024-01-012024-03-310001828161us-gaap:CommonStockMember2023-03-310001828161us-gaap:RevolvingCreditFacilityMemberus-gaap:LetterOfCreditMemberftci:PlcBarclaysBankMember2024-03-310001828161us-gaap:PreferredStockMember2022-12-3100018281612023-12-222023-12-220001828161us-gaap:RevolvingCreditFacilityMemberus-gaap:LetterOfCreditMemberftci:PlcBarclaysBankMember2021-04-300001828161us-gaap:PreferredStockMember2023-03-310001828161us-gaap:RevolvingCreditFacilityMemberus-gaap:LetterOfCreditMemberftci:PlcBarclaysBankMember2024-01-012024-03-310001828161us-gaap:AdditionalPaidInCapitalMember2024-01-012024-03-310001828161us-gaap:AdditionalPaidInCapitalMember2023-03-310001828161us-gaap:AdditionalPaidInCapitalMember2022-12-310001828161ftci:DayvLlcMember2023-02-090001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-01-012024-03-310001828161us-gaap:ServiceMember2024-01-012024-03-310001828161ftci:TreasuryStock1Member2022-12-310001828161us-gaap:RevolvingCreditFacilityMemberftci:PlcBarclaysBankMember2024-01-012024-03-310001828161us-gaap:CommonStockMember2022-12-310001828161ftci:MajorCustomersMember2024-03-310001828161us-gaap:CostOfSalesMember2024-01-012024-03-310001828161us-gaap:TechnologyEquipmentMember2023-12-310001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-01-012023-03-310001828161us-gaap:SoftwareDevelopmentMember2024-03-310001828161us-gaap:EquipmentMember2023-12-310001828161us-gaap:ServiceMember2023-01-012023-03-310001828161us-gaap:SellingAndMarketingExpenseMember2023-01-012023-03-310001828161ftci:AtmProgramMember2023-01-012023-03-310001828161ftci:AssessmentMember2024-01-012024-03-310001828161ftci:CbpAssessmentsMember2024-01-012024-03-310001828161srt:MinimumMember2022-08-162022-08-160001828161us-gaap:ToolsDiesAndMoldsMember2024-03-310001828161us-gaap:ProductMember2023-01-012023-03-310001828161us-gaap:PreferredStockMember2023-12-310001828161ftci:FernwehEngagedOperatorCompanyLlcMemberus-gaap:RelatedPartyMember2023-01-012023-03-310001828161us-gaap:DevelopedTechnologyRightsMember2024-03-310001828161ftci:MajorCustomersMember2024-01-012024-03-310001828161us-gaap:RetainedEarningsMember2022-12-310001828161us-gaap:RetainedEarningsMember2024-01-012024-03-310001828161srt:MaximumMember2022-08-162022-08-160001828161us-gaap:PreferredStockMember2024-03-310001828161us-gaap:LeaseholdImprovementsMember2024-03-310001828161us-gaap:RestrictedStockMember2023-01-012023-03-310001828161us-gaap:RevolvingCreditFacilityMemberftci:PlcBarclaysBankMember2024-03-310001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2022-12-310001828161ftci:TreasuryStock1Member2023-03-310001828161us-gaap:ProductMember2024-01-012024-03-310001828161us-gaap:AdditionalPaidInCapitalMember2024-03-310001828161us-gaap:CommonStockMember2023-01-012023-03-310001828161us-gaap:EmployeeStockOptionMember2024-01-012024-03-3100018281612023-12-310001828161ftci:TreasuryStock1Member2024-03-310001828161us-gaap:AdditionalPaidInCapitalMember2023-01-012023-03-310001828161us-gaap:RevolvingCreditFacilityMember2024-01-012024-03-310001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-03-310001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2024-03-310001828161srt:MinimumMember2024-01-012024-03-310001828161ftci:AtmProgramMember2022-09-1400018281612024-04-260001828161ftci:AlphaSteelMember2024-03-310001828161us-gaap:RetainedEarningsMember2023-03-310001828161us-gaap:RetainedEarningsMember2023-01-012023-03-310001828161ftci:MajorCustomersMemberus-gaap:SubsequentEventMember2024-04-032024-04-030001828161us-gaap:AccumulatedOtherComprehensiveIncomeMember2023-12-310001828161ftci:AlphaSteelMember2023-12-310001828161srt:MaximumMember2024-03-310001828161us-gaap:ResearchAndDevelopmentExpenseMember2024-01-012024-03-310001828161us-gaap:ResearchAndDevelopmentExpenseMember2023-01-012023-03-310001828161us-gaap:DevelopedTechnologyRightsMember2023-12-310001828161ftci:TaihuaNewEnergyMember2023-02-090001828161us-gaap:EmployeeStockOptionMember2023-01-012023-03-310001828161us-gaap:CommonStockMember2023-12-3100018281612023-01-012023-03-310001828161ftci:AlphaSteelMember2023-02-0900018281612024-03-310001828161us-gaap:RevolvingCreditFacilityMember2023-01-012023-03-310001828161us-gaap:CostOfSalesMember2023-01-012023-03-3100018281612022-12-310001828161srt:MinimumMember2024-03-310001828161srt:MinimumMember2023-12-220001828161us-gaap:RetainedEarningsMember2023-12-310001828161srt:MaximumMemberftci:AlphaSteelMember2024-01-012024-03-3100018281612023-03-310001828161srt:MaximumMember2024-01-012024-03-310001828161us-gaap:ToolsDiesAndMoldsMember2023-12-310001828161ftci:AtmProgramMember2024-03-31ftci:Daysxbrli:purexbrli:sharesiso4217:USDiso4217:USDxbrli:shares

 

UNITED STATES
SECURITIES AND EXCHANGE COMMISSION

WASHINGTON, D.C. 20549

FORM 10-Q

 

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

 

 

For the quarterly period ended March 31, 2024

 

 

OR

 

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

For the transition period from __________to__________

Commission File Number 001-40350

FTC SOLAR, INC.
(Exact name of registrant as specified in its charter)

Delaware

 

81-4816270

(State or other jurisdiction of incorporation or organization)

 

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

9020 N Capital of Texas Hwy, Suite I-260,

Austin, Texas 78759

 

 

78759

 (Address of principal executive offices)

 

(Zip Code)

 

(737) 787-7906

Registrant's telephone number, including area code

 

Not Applicable

Former name, former address and former fiscal year, if changed since last report

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

Title of each class

Trading Symbol(s)

Name of each exchange on which registered

Common Stock, $0.0001 par value

FTCI

The Nasdaq Stock Market LLC

 

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.405 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 is a shell company (as defined in Rule 12b-2 of the Act). Yes No

As of April 26, 2024, 125,979,165 shares of the registrant's common stock were outstanding.

 

 


 

img146218138_0.jpg 

TABLE OF CONTENTS

 

 

 

Page

PART I - FINANCIAL INFORMATION

 

 

Forward-looking statements

1

 

Item 1.

Financial Statements (Unaudited)

2

 

 

Condensed Consolidated Balance Sheets

2

 

 

Condensed Consolidated Statements of Comprehensive Loss

3

 

 

Condensed Consolidated Statements of Changes in Stockholders’ Equity

4

 

 

Condensed Consolidated Statements of Cash Flows

5

 

 

Notes to Condensed Consolidated Financial Statements

6

 

Item 2.

Management’s Discussion and Analysis of Financial Condition and Results of Operations

21

 

 

 

 

 

Item 3.

Quantitative and Qualitative Disclosures About Market Risk

35

 

 

 

 

 

Item 4.

Controls and Procedures

36

 

 

 

 

PART II – OTHER INFORMATION

 

Item 1.

Legal Proceedings

37

 

Item 1A.

Risk Factors

37

 

Item 2.

Unregistered Sales of Equity Securities and Use of Proceeds

38

 

Item 3.

Defaults Upon Senior Securities

39

 

Item 4.

Mine Safety Disclosures

39

 

Item 5.

Other Information

39

 

Item 6.

Exhibits

40

SIGNATURE

41

 

 

 


 

FORWARD-LOOKING STATEMENTS

This Quarterly Report on Form 10-Q ("Quarterly Report") contains forward-looking statements. All statements other than statements of historical or current facts contained in this Quarterly Report may be forward-looking statements. Statements regarding our future results of operations and financial position, business strategy and plans and objectives of management for future operations, including, among others, liquidity, growth and profitability strategies and factors and trends affecting our business are forward-looking statements. Forward-looking statements can be identified in some cases by the use of words such as “believe,” “can,” “could,” “potential,” “plan,” “predict,” “goals,” “seek,” “should,” “may,” “may have,” “would,” “estimate,” “continue,” “anticipate,” “intend,” “expect,” the negative of these words, other similar expressions or by discussions of strategy, plans or intentions.

The forward-looking statements in this Quarterly Report are only predictions. We have based these forward-looking statements largely on our current expectations and projections about future events and financial trends that we believe may affect our business, financial condition and results of operations. Forward-looking statements involve known and unknown risks, uncertainties, and other important factors that may cause our actual results, performance or achievements, or industry results, to be materially different from any future results, performance or achievements expressed or implied by the forward-looking statements. We believe that these factors include, but are not limited to, the factors set forth under Part II, Item 1A. "Risk Factors" of this Quarterly Report, and more comprehensively in Part I, Item 1A "Risk Factors" included in our Annual Report on Form 10-K for the year ended December 31, 2023. Because forward-looking statements are inherently subject to risks and uncertainties, some of which cannot be predicted or quantified, you should not rely on these forward-looking statements as predictions of future events. The events and circumstances reflected in our forward-looking statements may not be achieved or occur, and actual results could differ materially from those projected in the forward-looking statements.

In addition, statements that “we believe” and similar statements reflect our beliefs and opinions on the relevant subject. These statements are based upon information available to us as of the date of this Quarterly Report, and while we believe such information forms a reasonable basis for such statements, such information may be limited or incomplete, and our statements should not be read to indicate that we have conducted an exhaustive inquiry into, or review of, all potentially available relevant information. These statements are inherently uncertain, and investors are cautioned not to unduly rely upon these statements.

You should read this Quarterly Report with the understanding that our actual future results may be materially different from what we expect. All forward-looking statements attributable to us or persons acting on our behalf are expressly qualified in their entirety by these cautionary statements.

These forward-looking statements speak only as of the date of this Quarterly Report. Except as required by applicable law, we do not plan to publicly update or revise any forward-looking statements contained in this Quarterly Report, whether as a result of any new information, future events or otherwise.

1


 

ITEM 1. FINANCIAL STATEMENTS

 

FTC Solar, Inc.

Condensed Consolidated Balance Sheets

(unaudited)

(in thousands, except shares and per share data)

 

March 31, 2024

 

 

December 31, 2023

 

ASSETS

 

 

 

 

 

 

Current assets

 

 

 

 

 

 

Cash and cash equivalents

 

$

14,041

 

 

$

25,235

 

Restricted cash

 

 

1,896

 

 

 

 

Accounts receivable, net

 

 

66,379

 

 

 

65,279

 

Inventories

 

 

3,844

 

 

 

3,905

 

Prepaid and other current assets

 

 

14,069

 

 

 

14,089

 

Total current assets

 

 

100,229

 

 

 

108,508

 

Operating lease right-of-use assets

 

 

1,637

 

 

 

1,819

 

Property and equipment, net

 

 

1,994

 

 

 

1,823

 

Intangible assets, net

 

 

399

 

 

 

542

 

Goodwill

 

 

7,213

 

 

 

7,353

 

Equity method investment

 

 

1,010

 

 

 

240

 

Other assets

 

 

2,548

 

 

 

2,785

 

Total assets

 

$

115,030

 

 

$

123,070

 

LIABILITIES AND STOCKHOLDERS' EQUITY

 

 

 

 

 

 

Current liabilities

 

 

 

 

 

 

Accounts payable

 

$

12,059

 

 

$

7,979

 

Accrued expenses

 

 

29,690

 

 

 

34,848

 

Income taxes payable

 

 

27

 

 

 

88

 

Deferred revenue

 

 

4,897

 

 

 

3,612

 

Other current liabilities

 

 

7,859

 

 

 

8,138

 

Total current liabilities

 

 

54,532

 

 

 

54,665

 

Operating lease liability, net of current portion

 

 

934

 

 

 

1,124

 

Other non-current liabilities

 

 

4,406

 

 

 

4,810

 

Total liabilities

 

 

59,872

 

 

 

60,599

 

Commitments and contingencies (Note 14)

 

 

 

 

 

 

Stockholders’ equity

 

 

 

 

 

 

Preferred stock par value of $0.0001 per share, 10,000,000 shares authorized; none issued as of March 31, 2024 and December 31, 2023

 

 

 

 

 

 

Common stock par value of $0.0001 per share, 850,000,000 shares authorized; 125,952,253 and 125,445,325 shares issued and outstanding as of March 31, 2024 and December 31, 2023

 

 

13

 

 

 

13

 

Treasury stock, at cost; 10,762,566 shares as of March 31, 2024 and December 31, 2023

 

 

 

 

 

 

Additional paid-in capital

 

 

363,525

 

 

 

361,886

 

Accumulated other comprehensive loss

 

 

(474

)

 

 

(293

)

Accumulated deficit

 

 

(307,906

)

 

 

(299,135

)

Total stockholders’ equity

 

 

55,158

 

 

 

62,471

 

Total liabilities and stockholders’ equity

 

$

115,030

 

 

$

123,070

 

 

The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.

 

2


 

FTC Solar, Inc.

Condensed Consolidated Statements of Comprehensive Loss

(unaudited)

 

 

Three months ended March 31,

 

(in thousands, except shares and per share data)

 

2024

 

 

2023

 

Revenue:

 

 

 

 

 

 

Product

 

$

10,905

 

 

$

32,579

 

Service

 

 

1,682

 

 

 

8,315

 

Total revenue

 

 

12,587

 

 

 

40,894

 

Cost of revenue:

 

 

 

 

 

 

Product

 

 

12,367

 

 

 

31,767

 

Service

 

 

2,328

 

 

 

7,092

 

Total cost of revenue

 

 

14,695

 

 

 

38,859

 

Gross profit (loss)

 

 

(2,108

)

 

 

2,035

 

Operating expenses

 

 

 

 

 

 

Research and development

 

 

1,439

 

 

 

1,922

 

Selling and marketing

 

 

2,388

 

 

 

1,711

 

General and administrative

 

 

6,567

 

 

 

10,799

 

Total operating expenses

 

 

10,394

 

 

 

14,432

 

Loss from operations

 

 

(12,502

)

 

 

(12,397

)

Interest expense, net

 

 

(136

)

 

 

(58

)

Gain from disposal of investment in unconsolidated subsidiary

 

 

4,085

 

 

 

898

 

Other income (expense), net

 

 

36

 

 

 

(74

)

Loss from unconsolidated subsidiary

 

 

(265

)

 

 

 

Loss before income taxes

 

 

(8,782

)

 

 

(11,631

)

(Provision for) benefit from income taxes

 

 

11

 

 

 

(131

)

Net loss

 

 

(8,771

)

 

 

(11,762

)

Other comprehensive loss:

 

 

 

 

 

 

Foreign currency translation adjustments

 

 

(181

)

 

 

(5

)

Comprehensive loss

 

$

(8,952

)

 

$

(11,767

)

Net loss per share:

 

 

 

 

 

 

Basic and diluted

 

$

(0.07

)

 

$

(0.11

)

Weighted-average common shares outstanding:

 

 

 

 

 

 

Basic and diluted

 

 

125,569,375

 

 

 

106,791,198

 

 

The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.

 

3


 

FTC Solar, Inc.

Condensed Consolidated Statements of Changes in Stockholders’ Equity

(unaudited)

 

Three months ended March 31, 2024:

 

 

 

Preferred stock

 

 

Common stock

 

 

Treasury stock

 

 

 

 

 

 

 

 

 

 

 

 

 

(in thousands, except shares)

 

Shares

 

 

Amount

 

 

Shares

 

 

Amount

 

 

Shares

 

 

Amount

 

 

Additional
paid-In
capital

 

 

Accumulated other comprehensive loss

 

 

Accumulated deficit

 

 

Total
stockholders'
equity
(deficit)

 

Balance as of December 31, 2023

 

 

 

 

$

 

 

 

125,445,325

 

 

$

13

 

 

 

10,762,566

 

 

$

 

 

$

361,886

 

 

$

(293

)

 

$

(299,135

)

 

$

62,471

 

Shares issued during the period for vested restricted stock awards

 

 

 

 

 

 

 

 

506,928

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Stock-based compensation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1,639

 

 

 

 

 

 

 

 

 

1,639

 

Net loss

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(8,771

)

 

 

(8,771

)

Other comprehensive loss

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(181

)

 

 

 

 

 

(181

)

Balance as of March 31, 2024

 

 

 

 

$

 

 

 

125,952,253

 

 

$

13

 

 

 

10,762,566

 

 

$

 

 

$

363,525

 

 

$

(474

)

 

$

(307,906

)

 

$

55,158

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Three months ended March 31, 2023:

 

 

 

Preferred stock

 

 

Common stock

 

 

Treasury stock

 

 

 

 

 

 

 

 

 

 

 

 

 

(in thousands, except shares)

 

Shares

 

 

Amount

 

 

Shares

 

 

Amount

 

 

Shares

 

 

Amount

 

 

Additional
paid-In
capital

 

 

Accumulated
other
comprehensive
loss

 

 

Accumulated
deficit

 

 

Total
stockholders'
equity
(deficit)

 

Balance as of December 31, 2022

 

 

 

 

$

 

 

 

105,032,588

 

 

$

11

 

 

 

10,762,566

 

 

$

 

 

$

315,345

 

 

$

(61

)

 

$

(248,845

)

 

$

66,450

 

Shares issued during the period for vested restricted stock awards

 

 

 

 

 

 

 

 

1,498,987

 

 

 

 

 

 

 

 

 

 

 

 

2,775

 

 

 

 

 

 

 

 

 

2,775

 

Issuance of common stock upon exercise of stock options

 

 

 

 

 

 

 

 

265,125

 

 

 

 

 

 

 

 

 

 

 

 

51

 

 

 

 

 

 

 

 

 

51

 

Shares issued for legal settlement

 

 

 

 

 

 

 

 

797,396

 

 

 

 

 

 

 

 

 

 

 

 

2,000

 

 

 

 

 

 

 

 

 

2,000

 

Sale of shares

 

 

 

 

 

 

 

 

2,683,000

 

 

 

 

 

 

 

 

 

 

 

 

6,292

 

 

 

 

 

 

 

 

 

6,292

 

Stock offering costs

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(32

)

 

 

 

 

 

 

 

 

(32

)

Stock-based compensation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2,472

 

 

 

 

 

 

 

 

 

2,472

 

Net loss

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(11,762

)

 

 

(11,762

)

Other comprehensive loss

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5

)

 

 

 

 

 

(5

)

Balance as of March 31, 2023

 

 

 

 

$

 

 

 

110,277,096

 

 

$

11

 

 

 

10,762,566

 

 

$

 

 

$

328,903

 

 

$

(66

)

 

$

(260,607

)

 

$

68,241

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.

 

4


 

FTC Solar, Inc.

Condensed Consolidated Statements of Cash Flows

(unaudited)

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Cash flows from operating activities

 

 

 

 

 

 

Net loss

 

$

(8,771

)

 

$

(11,762

)

Adjustments to reconcile net loss to cash used in operating activities:

 

 

 

 

 

 

Stock-based compensation

 

 

1,639

 

 

 

4,890

 

Depreciation and amortization

 

 

404

 

 

 

334

 

Amortization of debt issue costs

 

 

177

 

 

 

177

 

Provision (credit) for obsolete and slow-moving inventory

 

 

177

 

 

 

1,261

 

Loss from unconsolidated subsidiary

 

 

265

 

 

 

 

Gain from disposal of investment in unconsolidated subsidiary

 

 

(4,085

)

 

 

(898

)

Warranty and remediation provisions

 

 

838

 

 

 

1,543

 

Warranty recoverable from manufacturer

 

 

98

 

 

 

(54

)

Credit loss provisions

 

 

670

 

 

 

 

Deferred income taxes

 

 

225

 

 

 

216

 

Lease expense and other

 

 

309

 

 

 

229

 

Impact on cash from changes in operating assets and liabilities:

 

 

 

 

 

 

Accounts receivable

 

 

(1,770

)

 

 

(11,412

)

Inventories

 

 

(116

)

 

 

5,078

 

Prepaid and other current assets

 

 

45

 

 

 

817

 

Other assets

 

 

(226

)

 

 

(882

)

Accounts payable

 

 

3,989

 

 

 

7,882

 

Accruals and other current liabilities

 

 

(6,200

)

 

 

(616

)

Deferred revenue

 

 

1,285

 

 

 

(2,677

)

Other non-current liabilities

 

 

(523

)

 

 

(2,212

)

Lease payments and other, net

 

 

(287

)

 

 

(230

)

Net cash used in operations

 

 

(11,857

)

 

 

(8,316

)

Cash flows from investing activities:

 

 

 

 

 

 

Purchases of property and equipment

 

 

(432

)

 

 

(28

)

Equity method investment in Alpha Steel

 

 

(1,035

)

 

 

(900

)

Proceeds from disposal of investment in unconsolidated subsidiary

 

 

4,085

 

 

 

898

 

Net cash provided by (used in) investing activities

 

 

2,618

 

 

 

(30

)

Cash flows from financing activities:

 

 

 

 

 

 

Sale of common stock

 

 

 

 

 

5,450

 

Stock offering costs paid

 

 

 

 

 

(32

)

Proceeds from stock option exercises

 

 

 

 

 

51

 

Net cash provided by financing activities

 

 

 

 

 

5,469

 

Effect of exchange rate changes on cash, cash equivalents and restricted cash

 

 

(59

)

 

 

(15

)

Decrease in cash, cash equivalents and restricted cash

 

 

(9,298

)

 

 

(2,892

)

Cash and cash equivalents at beginning of period

 

 

25,235

 

 

 

44,385

 

Cash, cash equivalents and restricted cash at end of period

 

$

15,937

 

 

$

41,493

 

 

 

 

 

 

 

Supplemental disclosures of cash flow information:

 

 

 

 

 

 

Purchases of property and equipment included in ending accounts payable and accruals

 

$

175

 

 

$

32

 

Stock issued for accrued legal settlement

 

$

 

 

$

2,000

 

Right-of-use asset and lease liability recognition for new leases

 

$

 

 

$

1,417

 

Cash paid during the period for interest

 

$

140

 

 

$

129

 

Cash paid during the period for taxes, net of refunds

 

$

58

 

 

$

6

 

 

The accompanying notes are an integral part of these Condensed Consolidated Financial Statements.

 

5


 

FTC Solar, Inc.

Notes to Condensed Consolidated Financial Statements

(unaudited)

1. Description of business

FTC Solar, Inc. (the “Company”, “we”, “our”, or “us”) was founded in 2017 and is incorporated in the state of Delaware. In April 2021, we completed an initial public offering ("IPO"), and our common stock began trading on the Nasdaq Global Market under the symbol “FTCI”.

We are a global provider of solar tracker systems, supported by proprietary software and value-added engineering services. Solar tracker systems move solar panels throughout the day to maintain an optimal orientation relative to the sun, thereby increasing the amount of solar energy produced at a solar installation. Our original two-panel in-portrait solar tracker system is currently marketed under the Voyager brand name (“Voyager”) and our one module-in-portrait ("1P") solar tracker system, which became certified in 2023, is marketed under the Pioneer brand name ("Pioneer"). We also have a mounting solution to support the installation and use of U.S.-manufactured thin-film modules by project owners. Our primary software offerings include SUNPATH which is intended to help customers optimize solar tracking for increased energy production, our SUNOPS real-time operations management platform and our web-based ATLAS portfolio management software. In addition, we have a team of renewable energy professionals available to assist our U.S. and worldwide clients in site layout, structural design, pile testing and other needs across the solar project development and construction cycle. The Company is headquartered in Austin, Texas, and has international subsidiaries in Australia, China, India, South Africa and Spain.

We are an emerging growth company, as defined in the Jumpstart Our Business Startups (JOBS) Act. Under the JOBS Act, we elected to use the allowed extended transition period to delay adopting new or revised accounting standards until such time as those standards apply to private companies.

 

2. Summary of significant accounting policies

Basis of presentation and principles of consolidation

The accompanying unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries and have been prepared in accordance with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial statements and pursuant to Form 10-Q and Article 10 of Regulation S-X. In the opinion of management, all adjustments of a normal recurring nature have been made that are considered necessary for a fair statement of our financial position as of March 31, 2024, and December 31, 2023, our results of operations for the three months ended March 31, 2024 and 2023, and our cash flows for the three months ended March 31, 2024 and 2023. The condensed consolidated balance sheet as of December 31, 2023 has been derived from the Company’s audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America. Operating results for the three months ended March 31, 2024 are not necessarily indicative of the results that may be expected for the year ending December 31, 2024. Intercompany balances and transactions have been eliminated in consolidation.

Certain information and disclosures normally included in the notes to annual financial statements prepared in accordance with U.S. GAAP have been omitted from these interim financial statements pursuant to the rules and regulations of the Securities and Exchange Commission (the “SEC”). Therefore, these unaudited condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and related notes included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2023 (our "2023 Annual Report").

We currently operate in one business segment, the manufacturing and servicing of solar tracker systems.

Liquidity

We have incurred cumulative losses since inception and have a history of cash outflows from operations. As of March 31, 2024, we had $14.0 million of cash on hand, $45.7 million of working capital and approximately $64.9 million of remaining capacity available for future sales of our common stock under our ATM program as defined and described further in Note 4 below. There can be no assurance that we will be able to sell any additional shares of our common stock under the ATM program and no assurance regarding the price at

 

6


 

which we will be able to sell such shares, and any sales of our common stock under the ATM program may be at prices that result in additional dilution to our existing stockholders. On December 22, 2023, we received notification from The Nasdaq Stock Market LLC (“Nasdaq”) that we were not in compliance with the requirement to maintain a minimum closing bid price of $1.00 per share, as set forth in Nasdaq Listing Rule 5450(a)(1), because the closing bid price of the Company’s common stock was below $1.00 per share for 30 consecutive business days. The notification does not impact the listing of our common stock on the Nasdaq Global Market at this time.

In accordance with Nasdaq Listing Rule 5810(c)(3)(A), we have a period of 180 calendar days from the date of notification, or until June 19, 2024, to regain compliance with the minimum bid price requirement. During this period, our common stock will continue to trade on the Nasdaq Global Market. If at any time before June 19, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq will provide written notification that we have achieved compliance with this minimum bid price requirement.

In the event we do not regain compliance by June 19, 2024, we may be eligible for an additional 180 calendar day compliance period to demonstrate compliance with the minimum bid price requirement. To qualify for the additional 180-day period, we may be required to meet the continued listing requirements for market value of publicly held shares and all other initial listing standards (with the exception of the bid price requirement) and transfer our listing to the Nasdaq Capital Market. In addition, we will need to provide written notice to Nasdaq of our intention to cure the deficiency during the second compliance period by effecting a reverse stock split, if necessary. If we do not qualify for the second compliance period or fail to regain compliance during the second 180-day period, then Nasdaq will notify us that our common stock is subject to delisting.

As of March 31, 2024, we were not in compliance with the minimum liquidity covenant in our existing Senior Secured Revolving Credit Facility (the "Credit Facility") which prevented us from borrowing under the Credit Facility prior to its termination on April 30, 2024.

Also, as of March 31, 2024, we had a material contractual obligation that could require us to make additional capital contributions of up to $1.6 million to Alpha Steel, as described further in Note 3, "Equity method investment".

The most notable incentive program impacting our U.S. business has historically been the investment tax credit ("ITC") for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between 30% and 50%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program.

We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" below.

Similar to previous periods, we continue to evaluate our opportunities in 2024 to address existing market challenges, our cost structure and our historical use of cash. Further, in 2023, we introduced a new mounting solution to support the installation and use of U.S.-manufactured thin-film modules, Pioneer, our 1P solar tracker solution became certified, and we introduced SUNOPS, a cloud-based, tracker agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. Additionally, we have seen improvements in the logistics markets and easing of supply chain constraints since 2022. These factors contributed to us having positive gross profit during each quarter in 2023, a first since our IPO in April 2021.

 

7


 

In accordance with Accounting Standards Codification ("ASC") 205-40, Going Concern, we have evaluated whether there are conditions and events, considered in the aggregate, which raise substantial doubt about our ability to continue as a going concern within one year after the date our condensed consolidated financial statements are issued.

Management believes that our existing cash on hand, including cash received in April 2024 as a result of our agreement with a major customer as discussed further in Note 18, "Subsequent events" below, as well as the continuing impact of certain of the actions described above and our expectations of (i) improved market conditions, (ii) the expected timing of customer project activity, including activity related to certain large project awards received in 2023, and (iii) positive results in recent periods from our efforts to increase our direct product margins, will allow us to grow profitably and generate positive cash flow from operations during the next twelve months in amounts that will be sufficient, along with our other available resources such as our existing working capital and, if conditions become more conducive, the remaining capacity available for future sales of our common stock under our ATM program, to fund our operations for at least one year from the date of issuance of the condensed consolidated financial statements.

While there are already many underlying drivers of growth in the solar industry, the expected positive impact on demand for our products, or the timing of construction activity by existing customers and solar project developers, could take longer than expected to occur. In addition, domestic and international market conditions could deteriorate significantly from what we currently expect, and regulatory and international trade policies could become more stringent as a result of (i) findings from an ongoing investigation by the U.S. Department of Commerce (the Solar Circumvention Investigation") in response to a petition by Auxin Solar, Inc. of claims related to alleged circumvention of U.S. antidumping and countervailing duties ("AD/CVD") by solar manufacturers in certain Southeast Asian countries, (ii) enforcement of the Uyghur Forced Labor Prevention Act ("UFLPA") passed by the U.S. Congress and signed into law by President Biden on December 23, 2021, by U.S. Customs and Border Protection ("CBP'), and (iii) other factors, which may result in a need for us to issue additional debt or obtain new equity financing to adequately fund our existing operations beyond the next twelve months. We continue to actively explore options to obtain additional sources of capital through the issuance of new debt, asset financing or other potential measures for our longer-term needs. However, we may be unable to obtain any desired additional financing on terms favorable to us, or at all, depending on market and other conditions, which could result in curtailment of our current operations and our ability to further invest in our products and new technology. The ability to raise additional financing depends on numerous factors, some of which that are outside of our control, including macroeconomic factors such as the impact of inflation, the level of interest rates, supply chain or other effects from the ongoing conflicts in the Ukraine and the Middle East, general market conditions, the health of financial institutions (including recent bankruptcies and financial difficulties involving certain regional banks and related impacts that have occurred and continue to occur in the banking industry), investors' and lenders' assessments of our prospects and the prospects of the solar industry in general and the ability of our common stock to continue to trade in active markets.

Use of estimates

Preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported revenue and expenses during the period. Estimates are used for calculating the measure of progress of our solar tracker projects and deriving the standalone selling prices of the individual performance obligations when determining amounts to recognize for revenue, estimating allowances for credit losses and slow-moving and obsolete inventory, determining useful lives of long-lived assets and the estimated fair value of those assets for impairment assessments, and estimating the fair value of investments, stock compensation awards, warranty liabilities and federal and state taxes, including tax valuation allowances, as well as other contingencies. We base our estimates on historical experience and anticipated results, trends, and various other assumptions that we believe are reasonable under the circumstances, including assumptions as to future events. Actual results could differ from those estimates due to risks and uncertainties.

Concentration of credit risk

Financial instruments that potentially subject the Company to concentrations of credit risk are primarily cash and accounts receivable.

We regularly maintain cash balances with various financial institutions that exceed federally insured amounts, but we have experienced no losses associated with these amounts to date. We also took action in early 2023 to reallocate cash balances between different financial institutions based on our assessment as to the financial health of certain institutions.

We extend credit to customers in the normal course of business, often without requiring collateral. We also perform credit analyses and monitor the financial health of our customers to reduce credit risk.

 

8


 

The Company’s accounts receivables are derived from revenue earned from customers primarily located in the U.S. and Australia. No countries other than the U.S. and Australia accounted for 10% or more of our revenue. Most of our customers are project developers, solar asset owners and engineering, procurement and construction (“EPC”) contractors that design and build solar energy projects. We typically rely on a small number of customers that account for a large portion of our revenue each period and our outstanding receivables at each period end.

Cash and cash equivalents

We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents. Certain of our cash equivalents include deposits in money market funds that invest primarily in short-term securities issued or guaranteed by the U.S. government or its agencies or instrumentalities and contain no restrictions on immediate redemption. These deposits totaled $9.3 million at March 31, 2024 and $13.9 million at December 31, 2023. Interest earned on cash equivalents is included in interest income, which is reported net of interest expense in our condensed consolidated statements of comprehensive loss.

Restricted cash

Cash balances that are legally, contractually or otherwise restricted as to withdrawal or usage are considered restricted cash.

Accounts receivable, net

Trade receivables are recorded at invoiced amounts, net of allowances for credit losses, and do not bear interest. We generally do not require collateral from our customers; however, in certain circumstances, we may require letters of credit, other collateral, additional guarantees or advance payments.

The allowance for credit losses is based on the lifetime expected credit loss of our customer accounts. To assess the lifetime expected credit loss, we utilize a loss rate method that takes into consideration historical experience and certain other factors, as appropriate, such as credit quality and current economic or other conditions that may affect a customer's ability to pay. Provisions for credit losses are included as a component of our selling and marketing expenses.

Receivables arising from revenue recognized in excess of billings represents our unconditional right to consideration before customers are invoiced due to the level of progress obtained as of period end on our contracts to procure and deliver tracker systems and related equipment. Further information may be found below in our revenue recognition policy.

Inventories, net

Inventories are stated at the lower of cost or net realizable value, with costs computed on a first-in, first-out basis. The Company periodically reviews its inventories for excess and obsolete items and adjusts carrying costs to estimated net realizable values when they are determined to be less than cost.

Impairment

We review our long-lived assets that are held for use for impairment whenever events or changes in circumstances indicate that the carrying amount of the asset may not be recoverable or that its useful life may be shorter than previously expected. If such impairment indicators are present or other factors exist that indicate the carrying amount of the asset may not be recoverable, we determine whether an impairment has occurred through the use of an undiscounted cash flow analysis of the asset at the lowest level for which identifiable cash flows exist. If an impairment has occurred, we recognize a loss for the difference between the carrying amount and the fair value of the asset, which in most cases is estimated based upon Level 3 unobservable inputs. If the asset is determined to have a remaining useful life shorter than previously expected, an adjustment for the shorter remaining life will be made for purposes of recognizing future depreciation expense. Assets are classified as held for sale when we have a plan, approved by the appropriate levels of management, for disposal of such assets, as well as other considerations, and those assets are stated at the lower of carrying value or estimated fair value less estimated costs to sell.

 

9


 

Intangible assets, net

Intangible assets are recorded at fair value when acquired in connection with a business combination and consist of developed technology in the form of software tools, licenses, and intellectual property, which are amortized over the period of their estimated useful lives, generally 2.5 - 3.0 years, using the straight-line method. Costs incurred to renew or extend the term of a recognized intangible asset, if any, are expensed as incurred. We evaluate intangible assets for impairment using the method described above under "Impairment".

Goodwill

We recognize goodwill as the excess of the purchase price over the estimated fair value of the identified assets and liabilities acquired in a business combination accounted for using the acquisition method. Goodwill is not amortized but is subject to a periodic assessment for impairment at least annually, or whenever events and circumstances indicate an impairment may exist. Our assessments may include qualitative factors such as current or expected industry and market conditions, our overall financial performance, share price trends, market capitalization and other company-specific events.

We operate in one segment, being the consolidated entity, which we have also determined is the reporting unit for goodwill impairment.

No impairment of goodwill was recognized as of March 31, 2024 or 2023.

Equity method investment

We use the equity method of accounting for investments in which we have the ability to exercise significant influence, but not control, over operating and financial policies of the investee. Our proportionate share of the net income or loss of these investees is included in our condensed consolidated statements of comprehensive loss. Judgment regarding the level of influence over each equity method investment includes considering key factors such as our ownership interest, legal form of the investee, representation on the board of directors or managers, participation in policy-making decisions and material intra-entity transactions.

We account for distributions received from equity method investees under the “nature of the distribution” approach based on the nature of the activity or activities of the investee that generated the distribution as either a return on investment (classified as cash inflows from operating activities) or a return of investment (classified as cash inflows from investing activities).

We evaluate equity method investments for impairment whenever events or changes in circumstances indicate that the carrying amount of the investment might not be recoverable. Factors considered by the Company when reviewing an equity method investment for impairment include the length of time and the extent to which the fair value of the equity method investment has been less than its cost, the investee’s financial condition and near-term prospects and the intent and ability to hold the investment for a period of time sufficient to allow for anticipated recovery. An impairment that is other-than temporary is recognized in the period identified.

We made an accounting policy election that, upon the sale of our equity method investments, we will recognize contractual contingent gains arising from earnout provisions and project escrow releases when such amounts are realizable in periods subsequent to the disposal date.

Warranty

Typically, the sale of solar tracker projects includes parts warranties to customers as part of the overall price of the product. We provide standard assurance type warranties for our products for periods generally ranging from five to ten years. We also accrue for costs relating to remediation efforts involving product issues we believe require correction. We record a provision for estimated warranty and remediation expenses in cost of sales, net of amounts recoverable from manufacturers under their warranty obligations to us. When historical claims information relating to our equipment is not sufficient, we will base our estimates on industry studies involving the nature and frequency of product failure rates for similar parts used by our competitors, as well as other related businesses. We do not maintain general or unspecified reserves; all warranty reserves are related to specific projects. All actual or estimated material costs incurred for warranty or remediation services in subsequent periods are charged to those established reserves.

While we periodically monitor our warranty activities and claims, if actual costs incurred were to be different from our estimates, we would recognize adjustments to our warranty reserves in the period in which those differences arise or are identified.

 

10


 

Stock-based compensation

We recognize compensation expense for all share-based payment awards made, including stock options and restricted stock units ("RSUs"), based on the estimated fair value of the award on the grant date. We calculate the fair value of stock options using the Black-Scholes option pricing model for awards with service-based vesting or through use of a lattice model or a Monte Carlo simulation for stock option and RSU awards with market conditions. The fair value of RSUs with service or performance-based vesting is based on the estimated fair value of the Company's common stock on the date of grant. We consider the closing price of our stock, as reported on the Nasdaq Global Market, to be the fair value of our stock on the grant date.

Forfeitures are accounted for as they occur. For service-based awards, stock-based compensation is recognized using the straight-line attribution approach over the requisite service period. For performance-based awards, stock-based compensation is recognized based on graded vesting over the requisite service period when the performance condition is probable of being achieved. Stock compensation expense for market-based awards is recognized over the derived service period determined in the valuation model, inclusive of any vesting conditions.

Revenue recognition

Product revenue is derived from the sale of solar tracker systems and customized components for those systems, individual part sales for certain specific transactions and the sale of term-based software licenses. Term-based licensed software is deployed on the customers’ own servers and has significant standalone functionality.

Service revenue includes revenue from shipping and handling services, engineering consulting and pile testing services, our subscription-based enterprise licensing model and maintenance and support services in connection with the term-based software licenses. Our subscription-based enterprise licensing model typically has contract terms ranging from one to two years and consists of subscription fees from the licensing of subscription services. Our hosted on-demand service arrangements do not provide customers with the right to take possession of the software supporting the hosted services. Support services include ongoing security updates, upgrades, bug fixes, and maintenance.

We recognize revenue when promised goods or services are transferred to customers in an amount that reflects the consideration to which we expect to be entitled to in exchange for those goods or services by following a five-step process: (1) identify the contract with a customer, (2) identify the performance obligations in the contract, (3) determine the transaction price, (4) allocate the transaction price to the performance obligations in the contract, and (5) recognize revenue when or as the Company satisfies a performance obligation, as further described below.

Identify the contract with a customer: A contract with a customer exists when (i) the Company enters into an enforceable contract with a customer that defines each party’s rights regarding the products and services to be transferred and identifies the payment terms related to these products and services, (ii) the contract has commercial substance, and (iii) the Company determines that collection of substantially all consideration for products and services that are transferred is probable based on the customer’s intent and ability to pay the promised consideration. In assessing the recognition of revenue, we also evaluate whether two or more contracts should be combined and accounted for as one contract and if the combined or single contract should be accounted for as multiple performance obligations which could change the amount of revenue and profit (loss) recorded in a period. Change orders may include changes in specifications or design, manner of performance, equipment, materials, scope of work, and/or the period of completion of the project. We analyze change orders to determine if they should be accounted for as a modification to an existing contract or a new stand-alone contract.

Contracts we enter into with our customers for sale of solar tracker systems are generally under two different types of arrangements: (1) purchase agreements and equipment supply contracts (“Purchase Agreements”), and (2) sale of individual parts for those systems.

Change orders from our customers are generally modifications to existing contracts and are included in the total estimated contract revenue when it is probable that the change order will result in additional value that can be reliably estimated and realized.

Identify the performance obligations in the contract: We enter into contracts that can include various combinations of products and services, which are either capable of being distinct and accounted for as separate performance obligations or as one performance obligation since the majority of tasks and services are part of a single project or capability. However, determining whether products or services are considered distinct performance obligations that should be accounted for separately versus together may sometimes require significant judgment.

 

11


 

Our Purchase Agreements typically include two performance obligations: 1) our solar tracker systems or customized components of those systems, and 2) shipping and handling services. The deliverables included as part of our solar tracker systems are predominantly accounted for as one performance obligation, as these deliverables are part of a combined promise to deliver a project.

The revenue for shipping and handling services will be recognized over time based on progress in meeting shipping terms of the arrangements, as this faithfully depicts the Company’s performance in transferring control. Revenue for stand-alone engineering consulting and pile testing services is recognized at a point in time upon completion of the services performed.

Sales of individual parts of our solar tracker systems for certain specific transactions include multiple performance obligations consisting of individual parts of those systems. Revenue is recognized for parts sales at a point in time when the obligations under the terms of the contract with our customer are satisfied. Generally, this occurs with the transfer of control of the asset, which is in line with shipping terms.

Determine the transaction price: The transaction price is determined based on the consideration to which we will be entitled in exchange for transferring services to the customer. Such amounts are typically stated in the customer contract, and to the extent that we identify variable consideration, we will estimate the variable consideration at the onset of the arrangement as long as it is probable that a significant reversal in the amount of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is subsequently resolved. The majority of our contracts do not contain variable consideration provisions as a continuation of the original contract. None of our contracts contain a significant financing component. Taxes collected from customers and remitted to governmental authorities are not included in revenue.

Allocate the transaction price to performance obligations in the contract: Once we have determined the transaction price, we allocate the total transaction price to each performance obligation in a manner depicting the amount of consideration to which we expect to be entitled in exchange for transferring the good(s) or service(s) to the customer. We allocate the transaction price to each performance obligation identified in the contract on a relative standalone selling price basis.

We use the expected cost-plus margin approach based on hardware, labor, and related overhead cost to estimate the standalone selling price of our solar tracker systems, customized components of those systems, and individual parts for certain specific transactions. We also use the expected cost-plus margin approach based on expected third-party shipping and transportation costs to estimate the standalone selling price of our shipping, handling and logistics performance obligations. We use the adjusted market assessment approach for all other performance obligations.

Recognize revenue when or as the Company satisfies a performance obligation: For each performance obligation identified, we determine at contract inception whether we satisfy the performance obligation over time or at a point in time. The performance obligations in the contracts for our solar tracker systems and customized components of those systems are satisfied over time as work progresses, utilizing an input measure of progress determined by cost-to-cost measures on these projects as this faithfully depicts our performance in transferring control. Additionally, our performance does not create an asset with an alternative use, due to the highly customized nature of the product, and we have an enforceable right to payment for performance completed to date. Our performance obligations for individual part sales for certain specific transactions are recognized at a point in time as and when control transfers based on the Incoterms for the contract. Our performance obligations for engineering consulting and pile testing services are recognized at a point in time upon completion of the services. Our performance obligations for term-based software licenses are recognized at a point in time as and when control transfers, either upon delivery to the customer or the software license start date, whichever is later. Our performance obligations for shipping and handling services are satisfied over time as the services are delivered over the term of the contract. We recognize revenue for subscription and other services on a straight-line basis over the contract period. With regard to support revenue, a time-elapsed method is used to measure progress because we transfer control evenly over the contractual period. Accordingly, the fixed consideration related to support revenue is generally recognized on a straight-line basis over the contract term.

Contract assets and liabilities: The timing of revenue recognition, billing, and cash collection results in the recognition of accounts receivable, unbilled receivables for revenue recognized in excess of billings, and deferred revenue in the condensed consolidated balance sheets. We have elected to use the practical expedient of expensing incremental costs of obtaining a contract as incurred since the majority of the performance obligations in our contracts are satisfied in less than one year. We may receive advances or deposits from our customers before revenue is recognized, resulting in contract liabilities, which are reflected as “deferred revenue” in our condensed consolidated balance sheets. Customer deposits are short term as the related performance obligations are typically fulfilled within 12 months. Changes in deferred revenue relate to fluctuations in the timing of customer deposits and completion of performance obligations. Revenue recognized during the three months ended March 31, 2024 and 2023, from amounts included in deferred revenue at December 31, 2023 and December 31, 2022, totaled $2.4 million and $7.6 million, respectively.

 

12


 

Cost of revenue consists primarily of costs related to raw materials, equipment manufacturing activities, freight and delivery, product warranty, remediation and personnel costs (salaries, bonuses, benefits, and stock-based compensation). Personnel costs in cost of revenue include both direct labor costs, as well as costs attributable to any individuals whose activities relate to the procurement, installment and delivery of the finished product and services. Cost of revenue owed but not yet paid is recorded as accrued cost of revenue in the accompanying condensed consolidated financial statements. Deferred cost of revenue results from the timing differences between the costs incurred in advance of the satisfaction of all revenue recognition criteria consistent with our revenue recognition policy.

Recent accounting and regulatory pronouncements not yet adopted

In November 2023, the Financial Accounting Standards Board ("FASB") issued ASU No. 2023-07 - Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures ("ASU 2023-07"), which will become effective for us for our year end 2024 financial reporting and our interim reporting beginning January 1, 2025. ASU 2023-07 requires public companies to disclose significant segment expenses and other segment items on an annual and interim basis and will require interim disclosures about a reportable segment's profit or loss and assets that are currently required annually. As noted above, we operate in one segment. We are currently evaluating the impact of ASU 2023-07 on our existing disclosures. ASU 2023-07 will be applied retrospectively to all periods when presented in our consolidated financial statements for the year ending December 31, 2024.

In December 2023, the FASB issued ASU No. 2023-09 - Income Taxes (Topic 740): Improvements to Income Tax Disclosures ("ASU 2023-09"). ASU 2023-09 requires companies to disclose (i) additional categories of information about federal, state and foreign income taxes above a quantitative threshold in their rate reconciliation table and (ii) income taxes paid, net of refunds, disaggregated by federal, state and foreign taxes for annual periods, as well as other disclosure changes. As an emerging growth company, we are not required to adopt ASU 2023-09 prior to 2026, although earlier adoption is permitted. We are currently evaluating the impact of ASU 2023-09 on our existing income tax disclosures.

In March 2024, the U.S. Securities and Exchange Commission ("SEC") adopted the final rule under SEC Release No. 33-11275, The Enhancement and Standardization of Climate-Related Disclosures for Investors. This rule would require registrants to disclose certain climate-related information in registration statements and annual reports. In April 2024, the SEC issued a stay of the final rules pending a judicial review of the validity of the rules by the Eighth Circuit Court of Appeals. We are currently evaluating the final rule to determine its impact on our disclosures.

Other standards or regulatory requirements that have been issued but not yet adopted as of March 31, 2024, are either not applicable to us or are not expected to have any material impact upon adoption.

Reclassifications

Certain prior year amounts have been reclassified to conform to the current year presentation. There was no impact on our financial condition or results of operations as a result of the reclassification.

 

3. Equity method investment

On February 9, 2023, we entered into a limited liability company agreement (the "LLC Agreement") with Taihua New Energy (Thailand) Co., LTD ("Taihua"), a leading steel fabricator and an existing vendor, and DAYV LLC, for the creation of Alpha Steel LLC ("Alpha Steel"), a Delaware limited liability company dedicated to producing steel components, including torque tubes, for utility-scale solar projects. The Alpha Steel facility, which is located outside of Houston in Sealy, Texas, began commercial production late in the fourth quarter of 2023.

We entered into amendment no. 1 to the Alpha Steel LLC Agreement with Taihua and DAYV LLC on July 28, 2023, to allow for members at their option, and with the approval of the Board of Managers, to make payments in respect of Alpha Steel’s contractual obligations in the event that Alpha Steel does not or is not able to make such payments from its own resources (“Credit Support Payments”). Any such Credit Support Payments will be treated as capital contributions by the members to Alpha Steel, with any member funding more than its ratable share of Credit Support Payments being deemed to have loaned such excess to each underfunding member at the U.S. prime rate plus 2%.

 

13


 

Alpha Steel is intended to enhance our domestic supply chain, our ability to support our customers and the growth of the U.S. solar market, with domestic manufacturing utilizing U.S. steel. We have a 45% interest in Alpha Steel, which is accounted for under the equity method of accounting. Taihua has a 51% interest in Alpha Steel and DAYV LLC, an entity owned by members of the Board of Managers of Alpha Steel and a related party with the parent company of Taihua, has a 4% interest in Alpha Steel. The Chief Executive Officer of Taihua is the General Manager of Alpha Steel. We have equal voting representation with Taihua and DAYV LLC, combined, on Alpha Steel's Board of Managers which will be responsible, through majority vote, for making certain "major decisions" involving Alpha Steel, as specified in the LLC Agreement, including, among other things, approval of an annual business plan.

During 2023, we made a required initial capital contribution of $0.9 million to Alpha Steel. For the three months ended March 31, 2024, we also made a required additional capital contribution of $1.0 million. Pursuant to the LLC Agreement, we could be required to make up to $1.6 million in future additional capital contributions as Alpha Steel continues to expand production. For the three months ended March 31, 2024, we recognized a loss of $0.3 million which represents our share of the net operating losses incurred by Alpha Steel during the period.

In connection with the creation of Alpha Steel, we also entered into a three-year equipment supply agreement (the "Supply Agreement") with Alpha Steel, the terms of which will apply to our equipment purchase orders. Pursuant to the Supply Agreement, we have committed to placing a minimum level of purchase orders for torque tubes with Alpha Steel during the year ended December 31, 2024, with such volume commitments increasing in each of the next two annual periods. In the event we fail to meet our minimum required purchase commitments in any annual period, we may be required to make a cash payment for the net profit attributable to any unfilled requirements, calculated as specified in the agreement, in an amount not to exceed $4.0 million in the aggregate. As of March 31, 2024, we had met approximately 6% of our 2024 annual purchase commitments. The Supply Agreement may be terminated early in accordance with its provisions or may be extended beyond the initial term if mutually agreed to by the parties.

At March 31, 2024, in addition to our requirement to meet the remaining minimum purchase obligations for the remainder of the year, as described above, we were contingently liable for unpaid vendor obligations, including issued but unsatisfied purchase orders, of Alpha Steel totaling approximately $5.2 million. We expect Alpha Steel will be able to satisfy these obligations with financial resources available to them in the normal course of operations.

 

4. ATM program

On September 14, 2022, we filed a prospectus supplement and entered into an equity distribution agreement (as amended from time to time, the "EDA") under which we may from time to time, in one or more transactions, offer and sell newly issued shares of our common stock having an aggregate offering price of up to $100 million in "at the money" offerings (the "ATM program"). We have and may continue to use the net proceeds from this offering for general corporate purposes, including working capital and operating expenses. We may also use a portion of such proceeds to acquire or invest in businesses, products, services or technologies.

Barclays Capital Inc. ("Barclays") is our sales agent under the EDA. The offering of our common stock under the EDA will terminate upon the earlier of (1) the sale of all common stock subject to the EDA or (2) the termination of the EDA by us or by Barclays as permitted therein. The EDA contains customary representations, covenants and indemnification provisions.

We sold no shares of newly issued common stock under the ATM program during the three months ended March 31, 2024, however, during the three months ended March 31, 2023, we sold 2,683,000 shares of newly issued common stock valued at $6.5 million for proceeds, net of commissions and fees, of approximately $6.3 million, including $0.8 million for shares sold but not yet settled as of March 31, 2023. As of March 31, 2024, approximately $64.9 million of capacity remained for future sales of our common stock under the ATM program.

 

 

14


 

5. Accounts receivable, net

Accounts receivable consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Trade receivables

 

$

49,474

 

 

$

46,152

 

Related party receivables

 

 

1,672

 

 

 

868

 

Revenue recognized in excess of billings

 

 

24,456

 

 

 

26,813

 

Other receivables

 

 

4

 

 

 

3

 

Total

 

 

75,606

 

 

 

73,836

 

Allowance for credit losses

 

 

(9,227

)

 

 

(8,557

)

Accounts receivable, net

 

$

66,379

 

 

$

65,279

 

Information relating to related party receivables at March 31, 2024, may be found below in Note 16, "Related party transactions".

Included in total receivables above are amounts billed under retainage provisions totaling $0.6 million and $0.9 million as of March 31, 2024 and December 31, 2023, respectively, which are due within the next twelve months.

Activity in the allowance for credit losses during the three months ended March 31, 2024 and 2023 was as follows:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Balance at beginning of period

 

$

8,557

 

 

$

1,184

 

Impact of adoption of ASU 2016-13, effective January 1, 2023

 

N/A

 

 

 

 

Additions charged to earnings during the period

 

 

670

 

 

 

 

Balance at end of period

 

$

9,227

 

 

$

1,184

 

 

 

 

 

 

 

 

 

6. Inventories, net

Inventories consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Finished goods

 

$

4,362

 

 

$

4,246

 

Allowance for slow-moving and obsolete inventory

 

 

(518

)

 

 

(341

)

Total

 

$

3,844

 

 

$

3,905

 

 

7. Prepaid and other current assets

Prepaid and other current assets consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Vendor deposits

 

$

5,894

 

 

$

5,667

 

Vendor deposits with related party

 

 

1,504

 

 

 

520

 

Prepaid expenses

 

 

710

 

 

 

1,251

 

Prepaid taxes

 

 

471

 

 

 

447

 

Deferred cost of revenue

 

 

611

 

 

 

666

 

Surety collateral

 

 

55

 

 

 

 

Other current assets

 

 

4,824

 

 

 

5,538

 

Total

 

$

14,069

 

 

$

14,089

 

At March 31, 2024, other current assets included $2.5 million of (i) a short-term, interest-bearing loan to a customer, as well as (ii) a non-interest-bearing customer advance, both of which are for pre-project construction financing activities. These amounts are secured by customer assets and, additionally in one case by a financial guarantee.

 

15


 

8. Leases

We lease office and warehouse space in various locations, including our corporate headquarters in Austin, Texas. Additionally, we lease space for an applications laboratory in Austin, Texas and a research and development facility in Seguin, Texas. All of our manufacturing is outsourced to contract manufacturing partners, and we currently do not own or lease any manufacturing facilities.

Our expense for our operating leases consisted of the following:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Operating lease cost

 

$

309

 

 

$

229

 

Short-term lease cost

 

 

93

 

 

 

92

 

Total lease cost

 

$

402

 

 

$

321

 

 

 

 

 

 

 

 

Reported in:

 

 

 

 

 

 

Cost of revenue

 

$

236

 

 

$

215

 

Research and development

 

 

14

 

 

 

15

 

Selling and marketing

 

 

48

 

 

 

15

 

General and administrative

 

 

104

 

 

 

76

 

Total lease cost

 

$

402

 

 

$

321

 

Future remaining operating lease payment obligations were as follows:

(in thousands)

 

March 31,
2024

 

Remainder of 2024

 

$

607

 

2025

 

 

755

 

2026

 

 

219

 

2027

 

 

192

 

2028

 

 

16

 

Total lease payments

 

 

1,789

 

Less: imputed interest

 

 

(113

)

Present value of operating lease liabilities

 

$

1,676

 

 

 

 

 

Current portion of operating lease liability

 

$

742

 

Operating lease liability, net of current portion

 

 

934

 

Present value of operating lease liabilities

 

$

1,676

 

 

9. Property and equipment, net

Property and equipment consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Leasehold improvements

 

$

162

 

 

$

157

 

Field equipment

 

 

1,062

 

 

 

1,062

 

Information technology equipment

 

 

508

 

 

 

466

 

Tooling

 

 

1,381

 

 

 

1,014

 

Capitalized software

 

 

761

 

 

 

734

 

Total

 

 

3,874

 

 

 

3,433

 

Accumulated depreciation

 

 

(1,880

)

 

 

(1,610

)

Property and equipment, net

 

$

1,994

 

 

$

1,823

 

Depreciation expense recognized for the three months ended March 31, 2024 and 2023, totaled $0.3 million and $0.2 million, respectively.

 

 

16


 

10. Intangible assets, net and goodwill

Intangible assets consisted of the following:

(in thousands)

 

Estimated Useful Lives (Years)

 

March 31, 2024

 

 

December 31, 2023

 

Developed technology

 

2.5 3.0

 

$

2,529

 

 

$

2,555

 

Total

 

 

 

 

2,529

 

 

 

2,555

 

Accumulated amortization

 

 

 

 

(2,130

)

 

 

(2,013

)

Intangible assets, net

 

 

 

$

399

 

 

$

542

 

Amortization expense recognized for the three months ended March 31, 2024 and 2023, totaled $0.1 million and $0.1 million, respectively.

During the three months ended March 31, 2024 and 2023, activity in our goodwill balance was as follows:

 

 

 

 

Three months ended March 31,

 

(in thousands)

 

 

 

2024

 

 

2023

 

Balance at beginning of period

 

 

 

$

7,353

 

 

$

7,538

 

Translation

 

 

 

 

(140

)

 

 

(185

)

Balance at end of period

 

 

 

$

7,213

 

 

$

7,353

 

 

11. Debt

On April 30, 2021, we entered into our Credit Facility with various lenders, including Barclays Bank PLC, as issuing lender, the swingline lender and as administrative agent providing aggregate commitments of up to $100.0 million. We had not made any draws on our Credit Facility as of March 31, 2024. However, as of March 31, 2024, we had $1.9 million in letters of credit outstanding that reduced our unused borrowing capacity to approximately $98.1 million. At March 31, 2024, we have deposited $1.9 million in an escrow account with Barclays related to our outstanding letters of credit, which is reflected as restricted cash in our condensed consolidated balance sheets.

Under the Credit Facility, we were required to maintain a liquidity level (defined as unrestricted cash and cash equivalents plus the available borrowing capacity under the Credit Facility) of no less than $125.0 million at each quarter end in order to utilize the Credit Facility. As of March 31, 2024, we were under the required minimum liquidity level thus not allowing us to continue to access our Credit Facility up to the available borrowing capacity. The Credit Facility provided for payment of commitment fees of 0.50% per annum on our unused borrowing capacity and outstanding letter of credit fees of 3.25% per annum during its term. During the three months ended March 31, 2024 and 2023, we incurred interest expense of $0.3 million in each period, for commitment and letter of credit fees, as well as amortization of costs relating to the establishment of the Credit Facility.

Our Credit Facility expired unused on April 30, 2024.

 

12. Accrued expenses and other current liabilities

Accrued expenses and other current liabilities consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Accrued cost of revenue

 

$

22,423

 

 

$

26,773

 

Related party accrued cost of revenue

 

 

1,370

 

 

 

1,451

 

Accrued compensation

 

 

3,650

 

 

 

3,858

 

Other accrued expenses

 

 

2,247

 

 

 

2,766

 

Total accrued expenses

 

$

29,690

 

 

$

34,848

 

 

 

 

 

 

 

 

Warranty reserves

 

$

6,992

 

 

$

7,279

 

Current portion of operating lease liability

 

 

742

 

 

 

740

 

Non-federal tax obligations

 

 

125

 

 

 

119

 

Total other current liabilities

 

$

7,859

 

 

$

8,138

 

 

 

17


 

Information relating to our related party accrued cost of revenue at March 31, 2024 and December 31, 2023 may be found below in Note 16, "Related party transactions".

Other accrued expenses primarily include amounts due for (i) legal costs associated with outstanding corporate or legal matters and (ii) other professional services.

Activity by period in the Company's warranty accruals was as follows:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Balance at beginning of period

 

$

11,002

 

 

$

12,426

 

Warranties issued and remediation added during the period

 

 

838

 

 

 

1,543

 

Settlements made during the period

 

 

(849

)

 

 

(1,103

)

Changes in liability for pre-existing warranties

 

 

(519

)

 

 

(309

)

Balance at end of period

 

$

10,472

 

 

$

12,557

 

 

 

 

 

 

 

 

Warranty accruals are reported in:

 

 

 

 

 

 

Other current liabilities

 

$

6,992

 

 

$

8,085

 

Other non-current liabilities

 

 

3,480

 

 

 

4,472

 

Balance at end of period

 

$

10,472

 

 

$

12,557

 

 

 

 

 

 

 

 

 

13. Income taxes

For the three months ended March 31, 2024 and 2023, we recorded an income tax benefit of $0.01 million and an income tax expense of $0.13 million respectively. These amounts for each period were lower than the statutory rate of 21%, primarily due to a valuation allowance established against the U.S. deferred tax assets.

We have had no material change in our unrecognized tax benefits since December 31, 2023. We recognize accrued interest and penalties related to unrecognized tax benefits as a component of income tax expense. As of March 31, 2024 and December 31, 2023, we had no accrued interest or penalties related to unrecognized tax benefits.

 

14. Commitments and contingencies

We may become involved in various claims, lawsuits, investigations, and other proceedings, arising in the normal course of business. We accrue a liability when information available prior to the issuance of our financial statements indicates it is probable a loss has been incurred as of the date of the financial statements and the amount of loss can be reasonably estimated. If the reasonable estimate of the probable loss is a range, we record an accrual for the most likely estimate of the loss, or the low end of the range if there is no one best estimate. We adjust our accruals to reflect the impact of negotiation, settlements, rulings, advice of legal counsel and other information and events pertaining to a particular case. Legal costs are expensed as incurred.

In March of 2023, CBP issued notices of tariff assessment that indicated an action taken at the Import Specialist (i.e., the port) level with respect to merchandise imported from Thailand under entry number 004-1058562-5 (the “625 Assessment”) and entry number 004-1063793-9 (the “Original 939 Assessment”, and collectively with the 625 Assessment, the “Original CBP Assessments”). The Original CBP Assessments related to certain torque beams that are used in our Voyager+ product that were imported in 2022. In the Original CBP Assessments, CPB asserted that Section 301 China tariffs, Section 232 steel & aluminum tariffs, and antidumping and countervailing duties applied to the merchandise. Based on correspondence received to date from CBP and our calculations based on applicable duty and tariff rates, the 625 Assessment is currently for approximately $2.84 million. In September of 2023, CBP informed us (the "Revised 939 Assessment", and together with the 625 Assessment, the "Revised CBP Assessments") that the amount owed under the Original 939 Assessment was being revised downward to approximately $2.01 million. In particular, CBP accepted our position that the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, previously assessed under the Original 939 Assessment are not applicable as they are only applicable to articles that originate in China and that, in this case, the finished goods are products of Thailand.

 

18


 

Upon review of the facts involved, and in consultation with outside legal counsel, we believe that the remaining amounts claimed in the Revised CBP Assessments are incorrect. In particular, the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, are not applicable under the 625 Assessment for the same reason stated above with respect to the Revised 939 Assessment, which has been accepted by CBP. Moreover, with respect to both Revised CBP Assessments, we believe that the goods in question were properly classified as parts of structures at the time of importation and that when properly classified, the beams and other materials are not subject to Section 232 duties applicable to more basic steel products.

CBP has legally finalized both Revised CBP Assessments. We filed a formal protest for the 625 Assessment in September of 2023 and for the Revised 939 Assessment in March of 2024. Based on the above, and under the relevant accounting guidance related to loss contingencies, we have made no accrual for the amounts claimed by CBP as of March 31, 2024, as we do not consider these amounts to be a probable obligation, as such term is defined and interpreted under the relevant accounting guidance, for us at this time. However, because matters of this nature are subject to inherent uncertainties, and unfavorable rulings or developments, including future assessments of additional duties or tariffs owed in respect of other shipments or other materials beyond what is presently included in the Revised CBP Assessments, could occur despite our belief that the tariffs and duties asserted are incorrect, there can be no certainty that the Company may not ultimately incur charges that are not currently recorded as liabilities. Since the outcome of these matters cannot be predicted with certainty, the costs associated with them could have a material adverse effect on our consolidated results of operations, financial position, or liquidity.

 

15. Stock-based compensation

Stock compensation expense for each period was as follows:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Cost of revenue

 

$

216

 

 

$

816

 

Research and development

 

 

81

 

 

 

249

 

Selling and marketing

 

 

44

 

 

 

384

 

General and administrative

 

 

1,298

 

 

 

3,441

 

Total stock compensation expense

 

$

1,639

 

 

$

4,890

 

 

16. Related party transactions

Transaction with Ayna.AI LLC

In February 2022, we engaged Ayna.AI LLC (as successor in interest to Fernweh Engaged Operator Company LLC) (“Ayna”) to support us with improvements to our processes and performance in various areas including design, sourcing, logistics, pricing, software and standard configuration. The foregoing engagement constituted a related party transaction as South Lake One LLC, an entity affiliated with Isidoro Quiroga Cortés, a member of our board of directors, and a holder of more than 5% of our outstanding capital stock, is an investor in Ayna. In addition, Discrimen LLC is an investor in Ayna, and Isidoro Quiroga Cortés is affiliated with that entity. Isidoro Quiroga Cortés is also on the board of directors of Ayna. On September 13, 2023, we executed a termination of the master services agreement and statement of work (collectively, the "Service Agreement") with Ayna and Fernweh Group LLC, the parent company of Fernweh Engaged Operator Company LLC.

For the three months ended March 31, 2023, we incurred $2.3 million of general and administrative expense, including expense relating to stock-based compensation awards, and made cash payments of $0.8 million associated with our engagement of Ayna.

Related party receivables and payables

We have related party receivables at March 31, 2024 and December 31, 2023, totaling $1.7 million and $0.9 million, respectively, for future material costs discounts contractually owed to us by Alpha Steel in connection with the expected receipt of manufacturing incentives available to Alpha Steel under the Inflation Reduction Act as costs are incurred by Alpha Steel to purchase raw materials and manufacture torque tubes and other products that will be used to fulfill purchase orders we issue to Alpha Steel.

 

19


 

We also have related party liabilities to Alpha Steel at March 31, 2024 and December 31, 2023, totaling $1.4 million and $1.5 million, respectively, for the accrued cost of revenue recognized on certain of our customer projects associated with the cost of products that are being manufactured for us by Alpha Steel.

During the three months ended March 31, 2024, we made vendor deposits of $1.6 million to Alpha Steel and received invoices from Alpha Steel totaling $1.6 million. Our balance of vendor deposits with Alpha Steel as of March 31, 2024 and December 31, 2023 is shown in Note 7, "Prepaids and other current assets" above as "Vendor deposits with related party". After payments and application of vendor deposits to invoices received, we owe $0.4 million to Alpha Steel, which is included in our accounts payable balance at March 31, 2024 (none at December 31, 2023) in our condensed consolidated balance sheets.

 

17. Net loss per share

 

 

Three months ended March 31,

 

 

2024

 

 

2023

 

Net loss (in thousands)

 

$

(8,771

)

 

$

(11,762

)

Weighted average shares outstanding for calculating basic and diluted loss per share

 

 

125,569,375

 

 

 

106,791,198

 

Basic and diluted loss per share

 

$

(0.07

)

 

$

(0.11

)

 

 

 

 

 

 

 

For purposes of computing diluted loss per share, weighted average common shares outstanding do not include potentially dilutive securities that are anti-dilutive, as shown below.

 

 

For the three months ended March 31,

 

 

 

2024

 

 

2023

 

Anti-dilutive securities excluded from calculating dilutive loss per share:

 

 

 

 

 

 

Shares of common stock issuable under stock option plans outstanding

 

 

2,427,526

 

 

 

6,544,725

 

Shares of common stock issuable upon vesting of RSUs

 

 

12,178,375

 

 

 

6,612,849

 

Potential common shares excluded from diluted net loss per share calculation

 

 

14,605,901

 

 

 

13,157,574

 

 

18. Subsequent events

On April 3, 2024, we entered into a First Amendment (“the Amendment”) to Master Project Supply Agreements dated October 11, 2021 with a customer and major solar project developer. As of March 31, 2024, our customer owed us approximately $30.8 million for project equipment we had previously completed and made available to the customer pursuant to the Master Project Supply Agreements. The Amendment was executed in consideration of and concurrent with the sale of the uncompleted projects by our customer, including the amended Master Project Supply Agreements, to a new third-party developer (“the Purchaser”), who will assume certain obligations to us under the amended Master Project Supply Agreements.

Pursuant to the Amendment, the only completed project equipment that will be provided to the Purchaser are foundation piles. All remaining equipment completed and made available to our customer under the original Master Project Supply Agreements will be retained by us and returned to our inventory in exchange for forgiveness of the associated outstanding receivable balance owed by our customer, to the extent of the current fair value of the retained equipment, which approximated $13.2 million. During the three months ended March 31, 2024, we recorded an additional estimated credit loss provision of $0.7 million to recognize the difference between the receivable balance owed us and the expected cash to be received from the Purchaser plus the current estimated fair value of the equipment that would be added to our inventory pursuant to this Amendment. At March 31, 2024, we had a total credit loss reserve relating to this customer of approximately $9.0 million.

Upon execution of the Amendment, we received a cash payment of $9.0 million from the Purchaser to acquire the foundation piles and we anticipate receiving certain additional amounts for temporary storage and upon final delivery to the project sites, which is expected to occur no later than the fourth quarter of 2024.

 

 

20


 

ITEM 2. MANAGEMENT’S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS

The following discussion and analysis of our financial condition and results of operations should be read in conjunction with our condensed consolidated financial statements and related notes included in Item 1 of this Form 10-Q and along with information included in our 2023 Annual Report. In addition to historical financial information, the following discussion contains forward-looking statements that involve risks and uncertainties. Our actual results could differ materially from such forward-looking statements. Factors that could cause or contribute to those differences include, but are not limited to, those identified below and those discussed in Part I, Item 1A. "Risk Factors" included in our 2023 Annual Report. Additionally, our historical results are not necessarily indicative of the results that may be expected in any future period.

This discussion and analysis of our financial condition and results of operations contain the presentation of Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS, which are not presented in accordance with U.S. GAAP. Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS are being presented because they provide the Company and readers of this Form 10-Q with additional insight into our operational performance relative to earlier periods and relative to our competitors. We do not intend Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS to be substitutes for any U.S. GAAP financial information. Readers of this Form 10-Q should use Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS only in conjunction with Net Loss and Net Loss per Share, the most comparable U.S. GAAP financial measures. Reconciliations of Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS to Net Loss and Net Loss per Share, the most comparable U.S. GAAP measures, are provided in "Non-GAAP Financial Measures" below.

Overview

FTC Solar, Inc. (the “Company”, “we”, “our”, or “us”) was founded in 2017 and is incorporated in the state of Delaware. In April 2021, we completed an initial public offering ("IPO"), and our common stock began trading on the Nasdaq Global Market under the symbol “FTCI”.

We are a global provider of solar tracker systems, supported by proprietary software and value-added engineering services. Solar tracker systems move solar panels throughout the day to maintain an optimal orientation relative to the sun, thereby increasing the amount of solar energy produced at a solar installation. Our original two-panel in-portrait solar tracker system is currently marketed under the Voyager brand name (“Voyager”) and our one module-in-portrait ("1P") solar tracker system, which became certified in 2023, is marketed under the Pioneer brand name ("Pioneer"). We also have a mounting solution to support the installation and use of U.S.-manufactured thin-film modules by project owners. Our primary software offerings include SUNPATH which is intended to help customers optimize solar tracking for increased energy production, our SUNOPS real-time operations management platform and our web-based ATLAS portfolio management software. In addition, we have a team of renewable energy professionals available to assist our U.S. and worldwide clients in site layout, structural design, pile testing and other needs across the solar project development and construction cycle. The Company is headquartered in Austin, Texas, and has international subsidiaries in Australia, China, India, South Africa and Spain.

We are an emerging growth company, as defined in the Jumpstart Our Business Startups (JOBS) Act. Under the JOBS Act, we elected to use the allowed extended transition period to delay adopting new or revised accounting standards until such time as those standards apply to private companies.


Key Factors Affecting Our Performance

Government Regulations. Changes in the U.S. trade environment, including the imposition of import tariffs, AD/CVD investigations and the UFLPA, which became effective in June 2022, can have an impact on the timing of developer projects. The UFLPA resulted in new rules for module importers and reviews by CBP. There is currently uncertainty in the market around achieving full compliance with UFLPA, whether related to sufficient traceability of materials or other factors. Escalating trade tensions, particularly between the United States and China, have led to increased tariffs and trade restrictions, including tariffs applicable to certain raw materials and components for our products. We have taken measures with the intention of mitigating the effect of tariffs and the impact of AD/CVD and UFLPA on our business by reducing our reliance on China and enhancing our U.S.-based supply chain, including through our investment in Alpha Steel, as described further in Note 3, "Equity method investment" in Part I, Item 1 of this Form 10-Q. As an example, we have reduced our reliance on suppliers in China in terms of meeting our supply chain requirements from 90% in 2019 to less than 20% as of the date of this Quarterly Report. As of March 31, 2024, we have qualified suppliers outside of China for certain of our commodities and we continue to work to have second-source capability for all Chinese-manufactured components to help reduce the extent to which our supply chain for U.S.-based

 

21


 

projects is subject to existing tariffs and to be able to quickly address potential future regulatory and governmental policy changes. We have entered into partnerships with manufacturers based in the United States, Hong Kong, India, Mexico, Canada, Spain, Brazil, Turkey, Saudi Arabia, Thailand, Vietnam and Korea to diversify our supply chain and optimize costs. On June 6, 2022, President Biden issued an Executive Order allowing U.S. solar deployers to import solar modules and cells from Cambodia, Malaysia, Thailand and Vietnam free from certain duties for 24 months, along with other incentives designed to accelerate U.S. domestic production of clean energy technologies. However, on December 29, 2023, Auxin Solar, Inc. and Concept Clean Energy, Inc. filed suit in the U.S. Court of International Trade challenging the legal basis for the moratorium and implementing regulations. If the suit proves successful, solar module importers could owe retroactive duties on goods that have already cleared customs.

The most notable incentive program impacting our U.S. business has historically been the ITC for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between 30% and 50%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program. We believe this law will bolster and extend future demand for our products in the United States, however as the implementing regulations for this law are not completely finalized, this creates uncertainty about the extent of its impact on our Company and the solar energy industry.

Disruptions in Transportation and Supply Chain. Our costs are affected by the costs of certain components and materials, such as steel, motors and micro-chips, as well as transportation costs. Current market conditions and international conflicts that constrain the supply of materials and disrupt the flow of materials from international vendors impact the cost of our products and services, along with overall rates of inflation in the global economy, which have been higher than pre-COVID 19 pandemic historical rates. While certain costs have moderated compared to pre-pandemic rates, domestic fuel prices continue to be elevated. These cost increases and decreases impact our operating margins.

We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" included in our condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report with regard to the related-party consulting firm. We also intend to maintain a sharp focus on our design-to-value initiative to continue to improve margins by reducing manufacturing and material costs of our products.

Megawatts ("MW") Produced and MW Shipped and Average Selling Price ("ASP"). The primary operating metrics we use to evaluate our sales performance and to track market acceptance of our products are the change in quantity of MW produced and MW shipped from period to period. MW are measured for each individual project and are calculated based on the expected output of that project once installed and fully operational. We also utilize metrics related to price and cost of goods sold per watt, including the change in ASP from period to period and cost per watt. ASP is calculated by dividing product and service revenue by total watts produced or shipped and product and service cost per watt is calculated by dividing product or service costs of goods sold by total watts produced or shipped. These metrics enable us to evaluate trends in pricing, manufacturing and logistics costs and profitability. Events such as the COVID-19 pandemic, global inflation rates and international conflicts have in the past impacted and may continue to impact the U.S. economy, global supply chains, and our business. These impacts can cause significant shipping delays and cost increases, as well as offsetting ASP increases, and also raise the price of inputs like steel and logistics, affecting our cost per watt.

Investment in Technology and Personnel. We invest in both the people and technology behind our products. We intend to continue making significant investments in the technology for our products and expansion of our patent portfolio to attract and retain customers, expand the capabilities and scope of our products, and enhance user experience. As an example, in August 2023, we introduced SUNOPS, a cloud-based, tracker-agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. We also intend over time to make significant investments to attract and retain employees in key

 

22


 

positions, including sales leads, engineers, software developers, quality assurance personnel, supply chain personnel, product management, and operations personnel, to help us drive additional efficiencies across our marketplace and, in the case of sales leads, to continue to enhance and diversify our sales capabilities, including international expansion.

Impact of Climate Change. Climate change has primarily impacted our business operations by increasing demand for solar power generation and, as a result, for use of our products. While climate change has not resulted in any material negative impact to our operations to date, we recognize the risk of disruptions to our supply chain due to extreme weather events. This, among other things, has led us to expand the diversity of our supplier base and to partner with more local suppliers to reduce shipping and transportation needs. We are also increasingly partnering with larger scale steel producers rather than smaller suppliers to facilitate scaling of our operations while remaining conscious of the environmental impacts of steel manufacturing as the regulatory landscape around these high-emitting industries evolves. An example of this strategy is our investment in Alpha Steel, a U.S.-based manufacturing partnership with Taihua, a leading steel fabricator.

We also attempt to mitigate the climate-related risks from the use of our products by designing our equipment and systems to have a high-slope tolerance and wind mitigation capabilities, while at the same time reducing the required foundation/pile count needed. This allows our trackers to be installed in increasingly hostile environments with minimal disturbance to the surrounding land.

Liquidity. See "Liquidity and Capital Resources" below for a discussion of the impact of the items above on our liquidity position.

Non-GAAP Financial Measures

Adjusted EBITDA, adjusted net loss and adjusted earnings per share ("EPS")

We utilize Adjusted EBITDA, Adjusted Net Loss, and Adjusted EPS as supplemental measures of our performance. We define Adjusted EBITDA as net loss plus (i) provision for (benefit from) income taxes, (ii) interest expense, net, (iii) depreciation expense, (iv) amortization of intangibles, (v) stock-based compensation, and (vi) non-routine legal fees, severance and certain other costs (credits). We also deduct the contingent gains from the disposal of our investment in an unconsolidated subsidiary from net loss in arriving at Adjusted EBITDA. We define Adjusted Net Loss as net loss plus (i) amortization of debt issue costs and intangibles, (ii) stock-based compensation, (iii) non-routine legal fees, severance and certain other costs (credits), and (iv) the income tax expense (benefit) of those adjustments, if any. We also deduct the contingent gains from the disposal of our investment in an unconsolidated subsidiary in arriving at Adjusted Net Loss. Adjusted EPS is defined as Adjusted Net Loss on a per share basis using our weighted average diluted shares outstanding.

Adjusted EBITDA, Adjusted Net Loss, and Adjusted EPS are intended as supplemental measures of performance that are neither required by, nor presented in accordance with, U.S. GAAP. We present Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS, because we believe they assist investors and analysts in comparing our performance across reporting periods on an ongoing basis by excluding items that we do not believe are indicative of our core operating performance. In addition, we use Adjusted EBITDA, Adjusted Net Loss and Adjusted EPS to evaluate the effectiveness of our business strategies.

Among other limitations, Adjusted EBITDA, Adjusted Net Loss, and Adjusted EPS do not reflect (i) our cash expenditures, or future requirements, for capital expenditures or contractual commitments, and (ii) the impact of certain cash charges resulting from matters we consider not to be indicative of our ongoing operations. Further, the adjustments noted in Adjusted EBITDA do not reflect the impact of any income tax expense or benefit. Additionally, other companies in our industry may calculate Adjusted EBITDA, Adjusted Net Loss, and Adjusted EPS differently than we do, which limits its usefulness as a comparative measure.

Because of these limitations, Adjusted EBITDA, Adjusted Net Loss, and Adjusted EPS should not be considered in isolation or as substitutes for performance measures calculated in accordance with U.S. GAAP, and you should not rely on any single financial measure to evaluate our business. These non-GAAP financial measures, when presented, are reconciled to the most closely applicable U.S. GAAP measure as disclosed below:

 

23


 

 

 

Three months ended March 31,

 

 

 

2024

 

 

2023

 

(in thousands, except shares and per share data)

 

Adjusted EBITDA

 

 

Adjusted Net Loss

 

 

Adjusted EBITDA

 

 

Adjusted Net Loss

 

Net loss per U.S. GAAP

 

$

(8,771

)

 

$

(8,771

)

 

$

(11,762

)

 

$

(11,762

)

Reconciling items -

 

 

 

 

 

 

 

 

 

 

 

 

Provision for (benefit from) income taxes

 

 

(11

)

 

 

 

 

 

131

 

 

 

 

Interest expense, net

 

 

136

 

 

 

 

 

 

58

 

 

 

 

Amortization of debt issue costs in interest expense

 

 

 

 

 

177

 

 

 

 

 

 

177

 

Depreciation expense

 

 

270

 

 

 

 

 

 

194

 

 

 

 

Amortization of intangibles

 

 

134

 

 

 

134

 

 

 

140

 

 

 

140

 

Stock-based compensation

 

 

1,639

 

 

 

1,639

 

 

 

4,890

 

 

 

4,890

 

Gain from disposal of investment in unconsolidated subsidiary(a)

 

 

(4,085

)

 

 

(4,085

)

 

 

(898

)

 

 

(898

)

Non-routine legal fees(b)

 

 

33

 

 

 

33

 

 

 

108

 

 

 

108

 

Severance

 

 

 

 

 

 

 

 

(13

)

 

 

(13

)

Adjusted Non-GAAP amounts

 

$

(10,655

)

 

$

(10,873

)

 

$

(7,152

)

 

$

(7,358

)

 

 

 

 

 

 

 

 

 

 

 

 

 

U.S. GAAP net loss per share:

 

 

 

 

 

 

 

 

 

 

 

 

Diluted

 

N/A

 

 

$

(0.07

)

 

N/A

 

 

$

(0.11

)

 

 

 

 

 

 

 

 

 

 

 

 

 

Adjusted Non-GAAP net loss per share (Adjusted EPS):

 

 

 

 

 

 

 

 

 

 

 

 

Diluted

 

N/A

 

 

$

(0.09

)

 

N/A

 

 

$

(0.07

)

 

 

 

 

 

 

 

 

 

 

 

 

 

Weighted-average common shares outstanding:

 

 

 

 

 

 

 

 

 

 

 

 

Diluted

 

N/A

 

 

 

125,569,375

 

 

N/A

 

 

 

106,791,198

 

 

(a)

Our management excludes the gain from collections of contingent contractual amounts arising from the sale in 2021 of our investment in an unconsolidated subsidiary.

(b)

Non-routine legal fees represent legal fees and other costs incurred for specific matters that were not ordinary or routine to the operations of the business.

 

Key Components of Our Results of Operations

The following discussion describes certain line items in our condensed consolidated statements of comprehensive loss.

Revenue

Revenue from the sale of our solar tracker systems and customized components of those systems is recognized over time, as work progresses, utilizing an input measure of progress determined by cost incurred to date relative to total expected cost on these projects to correlate with our performance in transferring control over the tracker systems and their components. Revenue from the sale of individual parts is recognized at a point in time as and when control transfers based on the terms of the contract. Revenue from sale of term-based software licenses is recognized upon transfer of control to the customer. Revenue for shipping and handling services is recognized over time based on progress in meeting shipping terms of the arrangements. Revenue for stand-alone engineering consulting and pile testing services is recognized at a point in time upon completion of the services performed. Subscription revenue, which is derived from our subscription-based enterprise licensing model, and support revenue, which is derived from ongoing security updates and maintenance, are generally recognized on a straight-line basis over the term of the contract.

Our customers include project developers, solar asset owners and EPC contractors that design and build solar energy projects. For each individual solar project, we enter into a contract with our customers covering the price, specifications, delivery dates and warranty for the products being purchased, among other things. Our contractual delivery period for our solar tracker systems and related parts can vary depending on size of the project and availability of vessels and other means of delivery. Contracts can range in value from tens of thousands to tens of millions of dollars.

 

24


 

Our revenue is affected by changes in the volume and ASP of our solar tracking systems purchased by our customers and volume of sales of software products and engineering services, among other things. The ASP of our solar tracker systems and quarterly volume of sales is driven by the supply of, and demand for, our products, changes in product mix, geographic mix of our customers, strength of competitors’ product offerings, tariff and import restrictions, supply chain issues and availability of government incentives to the end-users of our products. Additionally, our revenue may be impacted by seasonality due to cold weather, which can cause variability in site construction activity.

The vast majority of our revenue in the periods presented was attributable to sales in the United States and Australia. Our revenue growth is dependent on continued growth in the number of solar tracker projects and engineering services we win in competitive bidding processes and growth in our software sales each year, as well as our ability to increase our market share in each of the geographies in which we currently compete, expand our global footprint to new emerging markets, grow our sources of production to meet demand and continue to develop and introduce new and innovative products that address the changing technology and performance requirements of our customers, among other things.

Cost of revenue and gross profit (loss)

We subcontract with third-party companies to manufacture and deliver our products directly to our customers. Our product costs are affected by the underlying cost of raw materials procured by these contract manufacturers, including steel and aluminum; component costs, including electric motors and gearboxes; technological innovation in manufacturing processes; and our ability to achieve economies of scale resulting in lower component costs. We do not currently hedge against changes in the price of raw materials, but we continue to explore opportunities to mitigate the risks of foreign currency and commodity fluctuations through the use of hedges and foreign exchange lines of credit. Some of these costs, primarily personnel, are not directly affected by sales volume.

We have made changes to our headcount in recent years as we initially scaled up our business and, more recently, made adjustments at the end of 2022 and in August 2023 in response to current project activity levels. Our gross profit may vary period-to-period due to changes in our headcount, ASP, product costs, product mix, customer mix, geographical mix, shipping methods, warranty costs and seasonality.

Operating expenses

Operating expenses consist of research and development expenses, selling and marketing expenses and general and administrative expenses. Personnel-related costs are the most significant component of our operating expenses and include salaries, benefits, bonuses, commissions and stock-based compensation expenses.

We implemented reductions in our workforce at the end of 2022 and in August 2023, in response to regulatory and other issues that were negatively impacting our solar project activity levels. We also had certain executive departures near the end of 2023. In addition, our operating costs have been impacted by (i) our level of research activities to originate, develop and enhance our products, (ii) our sales and marketing efforts as we expand our development activities in other parts of the world, and (iii) variations in legal and professional fees, compliance costs, insurance, facility costs and other costs associated with strategic changes in response to changing market conditions and other matters.

 

25


 

Results of Operations - Three Months Ended March 31, 2024 Compared to Three Months Ended March 31, 2023

 

 

Three months ended March 31,

 

 

 

2024

 

 

2023

 

(in thousands, except percentages)

 

Amounts

 

 

Percentage of revenue

 

 

Amounts

 

 

Percentage of revenue

 

Revenue:

 

 

 

 

 

 

 

 

 

 

 

 

Product

 

$

10,905

 

 

 

86.6

%

 

$

32,579

 

 

 

79.7

%

Service

 

 

1,682

 

 

 

13.4

%

 

 

8,315

 

 

 

20.3

%

Total revenue

 

 

12,587

 

 

 

100.0

%

 

 

40,894

 

 

 

100.0

%

Cost of revenue:

 

 

 

 

 

 

 

 

 

 

 

 

Product

 

 

12,367

 

 

 

98.3

%

 

 

31,767

 

 

 

77.7

%

Service

 

 

2,328

 

 

 

18.5

%

 

 

7,092

 

 

 

17.3

%

Total cost of revenue

 

 

14,695

 

 

 

116.7

%

 

 

38,859

 

 

 

95.0

%

Gross profit (loss)

 

 

(2,108

)

 

 

(16.7

%)

 

 

2,035

 

 

 

5.0

%

Operating expenses

 

 

 

 

 

 

 

 

 

 

 

 

Research and development

 

 

1,439

 

 

 

11.4

%

 

 

1,922

 

 

 

4.7

%

Selling and marketing

 

 

2,388

 

 

 

19.0

%

 

 

1,711

 

 

 

4.2

%

General and administrative

 

 

6,567

 

 

 

52.2

%

 

 

10,799

 

 

 

26.4

%

Total operating expenses

 

 

10,394

 

 

 

82.6

%

 

 

14,432

 

 

 

35.3

%

Loss from operations

 

 

(12,502

)

 

 

(99.3

%)

 

 

(12,397

)

 

 

(30.3

%)

Interest expense, net

 

 

(136

)

 

 

(1.1

%)

 

 

(58

)

 

 

(0.1

%)

Gain from disposal of investment in unconsolidated subsidiary

 

 

4,085

 

 

 

32.5

%

 

 

898

 

 

 

2.2

%

Other income (expense), net

 

 

36

 

 

 

0.3

%

 

 

(74

)

 

 

(0.2

%)

Loss from unconsolidated subsidiary

 

 

(265

)

 

 

(2.1

%)

 

 

 

 

 

0.0

%

Loss before income taxes

 

 

(8,782

)

 

 

(69.8

%)

 

 

(11,631

)

 

 

(28.4

%)

(Provision for) benefit from income taxes

 

 

11

 

 

 

0.1

%

 

 

(131

)

 

 

(0.3

%)

Net loss

 

$

(8,771

)

 

 

(69.7

%)

 

$

(11,762

)

 

 

(28.8

%)

Revenue

We generate our revenue in two streams – Product revenue and Service revenue. Product revenue is derived from the sale of solar tracker systems and customized components for those systems, individual part sales for certain specific transactions and the sale of term-based software licenses. Service revenue includes revenue from shipping and handling services, engineering consulting and pile testing services, our subscription-based enterprise licensing model and maintenance and support services in connection with the term-based software licenses.

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Product

 

$

10,905

 

 

$

32,579

 

 

$

(21,674

)

 

 

(66.5

)%

Service

 

 

1,682

 

 

 

8,315

 

 

 

(6,633

)

 

 

(79.8

)%

Total revenue

 

$

12,587

 

 

$

40,894

 

 

$

(28,307

)

 

 

(69.2

)%

Product revenue

The decrease in product revenue for the three months ended March 31, 2024, as compared to the three months ended March 31, 2023, was primarily due to a decrease of 72% in the amount of megawatts produced as activity was adversely impacted by customer project delays and a decline in order levels during the latter part of 2023 as compared to the same period in 2022. However, we also had an increase of 20% in ASP for the three months ended March 31, 2024, as a result of better pricing as compared to the three months ended March 31, 2023, which partially offset some of the impact of the decline in activity.

Service revenue

The decrease in service revenue for the three months ended March 31, 2024, as compared to the three months ended March 31, 2023, primarily resulted from (i) a decrease of 75% in the amount of MW delivered as a result of timing of project deliveries, (ii) lower engineering consulting and software revenues, and (iii) a decrease of 20% in ASP as compared to the three months ended March 31, 2023.

 

26


 

Cost of revenue and gross profit (loss)

Cost of revenue consists primarily of costs related to raw materials, equipment manufacturing activities, freight and delivery, product warranty, remediation and personnel costs (salaries, bonuses, benefits, and stock-based compensation). Personnel costs in cost of revenue include both direct labor costs, as well as costs attributable to any individuals whose activities relate to the procurement, installment and delivery of the finished product and services.

Gross profit may vary from period-to-period and is primarily affected by our ASP, product costs, timing of tracker production and delivery, customer mix, geographical mix, shipping method, logistics costs, warranty costs, indirect cost control efforts and seasonality.

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Product

 

$

12,367

 

 

$

31,767

 

 

$

(19,400

)

 

 

(61.1

)%

Service

 

 

2,328

 

 

 

7,092

 

 

 

(4,764

)

 

 

(67.2

)%

Total cost of revenue

 

$

14,695

 

 

$

38,859

 

 

$

(24,164

)

 

 

(62.2

)%

Gross profit (loss)

 

$

(2,108

)

 

$

2,035

 

 

$

(4,143

)

 

 

(203.6

)%

Gross profit (loss) percentage of revenue

 

 

(16.7

%)

 

 

5.0

%

 

 

 

 

 

 

The decrease in cost of revenue for the three months ended March 31, 2024, as compared to the three months ended March 31, 2023, was primarily driven by (i) a decrease of 72% in MW produced, (ii) a decrease of 75% in shipping and logistics activity and, (iii) by a reduction of 40% in the cost per MW produced as largely a result of lower direct costs due to our design to value efforts and lower (a) remediation costs, (b) obsolete and slow-moving inventory provisions and, (c) stock-based compensation expense during the current period.

Our gross margin percentage of revenue for the three months ended March 31, 2024 was a negative 16.7%, as compared to a positive 5.0% for the three months ended March 31, 2023.

We had negative gross margin for the three months ended March 31, 2024 as production volumes were not sufficient to cover certain relatively fixed overhead costs and our service revenue was not sufficient to fully cover our related shipping, transportation and warehousing costs.

We had positive gross margin for the three months ended March 31, 2023 due to (i) improved product average selling prices in the period, (ii) lower direct and indirect product costs resulting from our design to value efforts and (iii) positive margins on our shipping and logistics services.

Research and development

Research and development expenses consist primarily of salaries, employee benefits, stock-based compensation expense and travel expense related to our engineers performing research and development activities to originate, develop and enhance our products. Additional expenses include consulting charges, component purchases and other costs for performing research and development on our software products.

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Research and development

 

$

1,439

 

 

$

1,922

 

 

$

(483

)

 

 

(25.1

%)

The decrease in research and development expenses for the three months ended March 31, 2024, as compared to the three months ended March 31, 2023, was primarily attributable to (i) lower stock-based compensation costs of $0.2 million, largely due to (a) award forfeitures resulting from a reduction in force in August 2023 and (b) the absence of stock award grants during the three months ended March 31, 2024 for incentive compensation, as compared to the issuance of such awards for incentive compensation earned during the three months ended March 31, 2023, (ii) lower spending on lab and other research activities of $0.2 million and, (iii) lower payroll costs of $0.1 million. Research and development expenses as a percentage of revenue were 11.4% for the three months ended March 31, 2024, as compared to 4.7% for the three months ended March 31, 2023. The increase in the percentage research and development costs to revenue for the three months ended March 31, 2024, is largely a function of the lower level of revenue.

 

27


 

Selling and marketing

Selling and marketing expenses consist primarily of salaries, employee benefits, stock-based compensation expense and travel expense related to our sales and marketing and business development personnel. Additionally, selling and marketing expenses include costs associated with professional fees and support charges for software subscriptions and licenses, trade shows and conventions.

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Selling and marketing

 

$

2,388

 

 

$

1,711

 

 

$

677

 

 

 

39.6

%

The increase in selling and marketing expenses for the three months ended March 31, 2024, as compared to the three months ended March 31, 2023, was primarily attributable to higher provisions for credit losses of $0.7 million related mainly to a charge associated with a specific customer account during the three months ended March 31, 2024 . Selling and marketing costs as a percentage of revenue were 19.0% for the three months ended March 31, 2024, compared to 4.2% for the three months ended March 31, 2023.

General and administrative

General and administrative expenses consist primarily of salaries, employee benefits, stock-based compensation expense and travel expense related to our executives, finance team, and administrative employees. It also consists of legal, consulting, and professional fees, rent and lease expense pertaining to our headquarters and international offices, business insurance costs and certain other costs.

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

General and administrative

 

$

6,567

 

 

$

10,799

 

 

$

(4,232

)

 

 

(39.2

%)

The decrease in general and administrative expenses for the three months ended March 31, 2024, as compared to the three months ended March 31, 2023, was primarily attributable to $2.1 million of lower stock-based compensation expense related primarily to (i) forfeiture of awards in connection with the September 2023 termination of the Service Agreement with a related party as described further in Note 16, "Related party transactions" in Part I, Item 1 above, (ii) forfeiture of awards in connection with our reduction in force in August 2023 and executive terminations during the fourth quarter of 2023 and (iii) the absence of stock-based incentive compensation awards during the three months ended March 31, 2024, as compared to the three months ended March 31, 2023. In addition, the terminations described above contributed to lower payroll expense of $0.9 million during the three months ended March 31, 2024 and we were able to lower our insurance costs by $0.8 million and our legal costs by $0.2 million as compared to the three months ended March 31, 2023. General and administrative expenses as a percentage of revenue were 52.2% for the three months ended March 31, 2024, compared to 26.4% for the three months ended March 31, 2023, largely due to the lower level of revenue.

Interest expense, net

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Interest expense, net

 

$

136

 

 

$

58

 

 

$

78

 

 

 

134.5

%

Interest expense totaled approximately $0.3 million during each of the three months ended March 31, 2024 and 2023, and primarily consisted of letter of credit and commitment fees on the Credit Facility, along with associated debt issue cost amortization. Interest income earned on our cash equivalents was approximately $0.2 million during each of the three months ended March 31, 2024 and 2023.

Gain from disposal of investment in unconsolidated subsidiary

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

 

Gain from disposal of investment in unconsolidated subsidiary

 

$

4,085

 

 

$

898

 

 

$

3,187

 

 

 

354.9

%

 

 

28


 

We sold our interest in our unconsolidated subsidiary, Dimension Energy LLC ("Dimension"), on June 24, 2021. Dimension is a community solar developer based in Atlanta, Georgia that provides renewable energy solutions for local communities in the United States. The sales agreement with Dimension included an earnout provision which provides the potential to receive additional contingent consideration of up to approximately $14.0 million through December 2024, based on Dimension achieving certain performance milestones. The sales agreement also includes a projects escrow release which is an additional contingent consideration to receive $7 million based on Dimension’s completion of certain construction projects in progress at the time of the sale. We made an accounting policy election to account for the contingent gains from the earnout provision and projects escrow release only when those amounts become realizable in the periods subsequent to the disposal date. During the three months ended March 31, 2024 and 2023, we received earnout and escrow release payments of $4.1 million and $0.9 million, respectively, that were recognized in accordance with our policy election. Since the sale of our interest in Dimension, we have received a total of $7.4 million in contingent earnout and escrow release payments through March 31, 2024.

Loss from unconsolidated subsidiary

 

 

Three months ended March 31,

(in thousands)

 

2024

 

 

2023

 

 

$ Change

 

 

% Change

Loss from unconsolidated subsidiary

 

$

265

 

 

$

 

 

$

265

 

 

N/A

The loss from unconsolidated subsidiary for the three months ended March 31, 2024, represents our share of the net operating losses incurred by Alpha Steel during the period.

Liquidity and Capital Resources

Liquidity

Since our inception, we have financed our operations primarily through sales of shares of common stock, including our IPO in April 2021, issuance of debt and payments from our customers. Our ability to generate positive cash flow from operations is dependent on contract payment terms, timely collections from our customers and the strength of our gross margins.

We have incurred cumulative losses since inception and have a history of cash outflows from operations. As of March 31, 2024, we had $14.0 million of cash on hand, $45.7 million of working capital and approximately $64.9 million of remaining capacity available for future sales of our common stock under our ATM program as defined and described further in Note 4 in the notes to condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report. There can be no assurance that we will be able to sell any additional shares of our common stock under the ATM program and no assurance regarding the price at which we will be able to sell such shares, and any sales of our common stock under the ATM program may be at prices that result in additional dilution to our existing stockholders. On December 22, 2023, we received notification from The Nasdaq Stock Market LLC (“Nasdaq”) that we were not in compliance with the requirement to maintain a minimum closing bid price of $1.00 per share, as set forth in Nasdaq Listing Rule 5450(a)(1), because the closing bid price of the Company’s common stock was below $1.00 per share for 30 consecutive business days. The notification does not impact the listing of our common stock on the Nasdaq Global Market at this time.

In accordance with Nasdaq Listing Rule 5810(c)(3)(A), we have a period of 180 calendar days from the date of notification, or until June 19, 2024, to regain compliance with the minimum bid price requirement. During this period, our common stock will continue to trade on the Nasdaq Global Market. If at any time before June 19, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq will provide written notification that we have achieved compliance with this minimum bid price requirement.

In the event we do not regain compliance by June 19, 2024, we may be eligible for an additional 180 calendar day compliance period to demonstrate compliance with the minimum bid price requirement. To qualify for the additional 180-day period, we may be required to meet the continued listing requirements for market value of publicly held shares and all other initial listing standards (with the exception of the bid price requirement) and transfer our listing to the Nasdaq Capital Market. In addition, we will need to provide written notice to Nasdaq of our intention to cure the deficiency during the second compliance period by effecting a reverse stock split, if necessary. If we do not qualify for the second compliance period or fail to regain compliance during the second 180-day period, then Nasdaq will notify us that our common stock is subject to delisting.

As of March 31, 2024, we were not in compliance with the minimum liquidity covenant in our existing Senior Secured Revolving Credit Facility (the "Credit Facility") which prevented us from borrowing under the Credit Facility prior to its termination on April 30, 2024.

 

29


 

Also, as of March 31, 2024, we had a material contractual obligation that could require us to make additional capital contributions of up to $1.6 million to Alpha Steel, as described further in Note 3, "Equity method investment" in the notes to condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report.

The most notable incentive program impacting our U.S. business has historically been the ITC for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between 30% and 50%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program.

We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" in the notes to condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report.

Similar to previous periods, we continue to evaluate our opportunities in 2024 to address existing market challenges, our cost structure and our historical use of cash. Further, in 2023, we introduced a new mounting solution to support the installation and use of U.S.-manufactured thin-film modules, Pioneer, our 1P solar tracker solution became certified, and we introduced SUNOPS, a cloud-based, tracker agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. Additionally, we have seen improvements in the logistics markets and easing of supply chain constraints since 2022. These factors contributed to us having positive gross profit during each quarter in 2023, a first since our IPO in April 2021.

In accordance with Accounting Standards Codification ("ASC") 205-40, Going Concern, we have evaluated whether there are conditions and events, considered in the aggregate, which raise substantial doubt about our ability to continue as a going concern within one year after the date our condensed consolidated financial statements are issued.

Management believes that our existing cash on hand, including cash received in April 2024 as a result of our agreement with a major customer as discussed further in Note 18, "Subsequent events" in the notes to condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report, as well as the continuing impact of certain of the actions described above and our expectations of (i) improved market conditions, (ii) the expected timing of customer project activity, including activity related to certain large project awards received in 2023, and (iii) positive results in recent periods from our efforts to increase our direct product margins, will allow us to grow profitably and generate positive cash flow from operations during the next twelve months in amounts that will be sufficient, along with our other available resources such as our existing working capital and, if conditions become more conducive, the remaining capacity available for future sales of our common stock under our ATM program, to fund our operations for at least one year from the date of issuance of the condensed consolidated financial statements.

While there are already many underlying drivers of growth in the solar industry, the expected positive impact on demand for our products, or the timing of construction activity by existing customers and solar project developers, could take longer than expected to occur. In addition, domestic and international market conditions could deteriorate significantly from what we currently expect, and regulatory and international trade policies could become more stringent as a result of (i) findings from an ongoing Solar Circumvention Investigation in response to a petition by Auxin Solar, Inc. of claims related to alleged circumvention of AD/CVD by solar manufacturers in certain Southeast Asian countries, (ii) enforcement of the UFLPA passed by the U.S. Congress and signed into law by President Biden on December 23, 2021, by CBP, and (iii) other factors, which may result in a need for us to issue additional debt or obtain new equity financing to adequately fund our existing operations beyond the next twelve months. We continue to actively explore options to obtain additional sources of capital through the issuance of new debt, asset financing or other potential measures for our longer-term needs. However, we may be unable to obtain any desired additional financing on terms favorable to us, or at all, depending on market and other conditions, which could result in curtailment of our current operations and our ability to further invest in our products and new technology. The ability to raise additional

 

30


 

financing depends on numerous factors, some of which that are outside of our control, including macroeconomic factors such as the impact of inflation, the level of interest rates, supply chain or other effects from the ongoing conflicts in the Ukraine and the Middle East, general market conditions, the health of financial institutions (including recent bankruptcies and financial difficulties involving certain regional banks and related impacts that have occurred and continue to occur in the banking industry), investors' and lenders' assessments of our prospects and the prospects of the solar industry in general and the ability of our common stock to continue to trade in active markets.

Statements of cash flows

The following table shows our cash flows from operating activities, investing activities and financing activities for the stated periods:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Net cash used in operations

 

$

(11,857

)

 

$

(8,316

)

Net cash provided by (used in) investing activities

 

 

2,618

 

 

 

(30

)

Net cash provided by financing activities

 

 

 

 

 

5,469

 

Effect of exchange rate changes on cash, cash equivalents and restricted cash

 

 

(59

)

 

 

(15

)

Decrease in cash, cash equivalents and restricted cash

 

$

(9,298

)

 

$

(2,892

)

Operating activities

During the three months ended March 31, 2024, we used approximately $8.1 million of cash to fund a portion of our current period expenditures for personnel and facilities, legal and professional fees, insurance, research and development and various other operating activities. This compares to approximately $4.1 million of cash used during the three months ended March 31, 2023, also to fund a portion of our prior period expenditures for various operating activities as described above.

Approximately $3.8 million of cash was also used for working capital and other increases during the three months ended March 31, 2024, primarily as a result of production activity and the timing of customer receipts and vendor payments. During the three months ended March 31, 2023, we used approximately $4.3 million of cash for working capital and other increases as a result of production activity and the timing of vendor payments.

Investing activities

During the three months ended March 31, 2024, we made an additional equity investment of $1.0 million in Alpha Steel, a manufacturing partnership with Taihua, in which we hold a 45% interest. Pursuant to our agreement with Alpha Steel, we could be required to make up to $1.6 million in future additional capital contributions as Alpha Steel continues to expand production. We also spent nearly $0.4 million, mainly for tooling and new computer and IT equipment during the three months ended March 31, 2024. In addition, we received $4.1 million of contingent earnout payments in connection with the June 2021 sale of our equity interest in Dimension.

During the three months ended March 31, 2023, we made an initial equity investment of $0.9 million in Alpha Steel and received $0.9 million in contingent payments from escrow in connection with the sale of our equity interest in Dimension as described above.

Financing activities

During the three months ended March 31, 2023, we began selling newly issued shares of our common stock in various daily transactions under our ATM program, receiving cash proceeds of nearly $5.5 million. We also received $0.1 million of proceeds from employee exercises of stock options.

Revolving line of credit

On April 30, 2021, we entered into our Credit Facility with various lenders, including Barclays Bank PLC, as issuing lender, the swingline lender and as administrative agent providing aggregate commitments of up to $100.0 million. We had not made any draws on our Credit Facility as of March 31, 2024. However, as of March 31, 2024, we had $1.9 million in letters of credit outstanding that reduced our unused borrowing capacity to approximately $98.1 million.

Under the Credit Facility, we were required to maintain a liquidity level (defined as unrestricted cash and cash equivalents plus the available borrowing capacity under the Credit Facility) of no less than $125.0 million at each quarter end in order to utilize the Credit

 

31


 

Facility. As of March 31, 2024, we were not in compliance with this minimum liquidity covenant and were therefore, unable to utilize our available borrowing capacity.

Our Credit Facility expired unused on April 30, 2024.

Critical Accounting Policies and Significant Management Estimates

Preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported revenue and expenses during the period. Estimates are used for calculating the measure of progress of our solar tracker projects and deriving the standalone selling prices of the individual performance obligations when determining amounts to recognize for revenue, estimating allowances for credit losses and slow-moving and obsolete inventory, determining useful lives of long-lived assets and the estimated fair value of those assets for impairment assessments, and estimating the fair value of investments, stock compensation awards, warranty liabilities and federal and state taxes, including tax valuation allowances, as well as other contingencies. We base our estimates on historical experience and anticipated results, trends, and various other assumptions that we believe are reasonable under the circumstances, including assumptions as to future events. Actual results could differ from those estimates due to risks and uncertainties.

To the extent that there are differences between our estimates and actual results, our future financial statement presentation, financial condition, results of operations and cash flows will be affected. We believe that the accounting policies discussed below are critical to understanding our historical and future performance, as these policies relate to the more significant areas involving management’s judgments and estimates. Critical accounting policies and estimates are those that we consider the most important to the portrayal of our financial condition and results of operations because they require our most difficult, subjective or complex judgments, often as a result of the need to make estimates about the effects of matters that are inherently uncertain.

We believe that the accounting policies described below involve a significant degree of judgment and complexity. Accordingly, we believe these are the most critical to aid in fully understanding and evaluating our condensed consolidated financial condition and results of operations.

Revenue recognition

Our accounting policy on revenue recognition may be found in Note 2, "Summary of significant accounting policies" in our condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report.

Judgments and assumptions

The timing and amounts of revenue and cost of revenue recognition, as well as recording of related receivables and deferred revenue, is highly dependent on our identification of performance obligations in each contract and our estimates by contract of total project cost and our progress toward project completion as of each period end. Certain estimates are subject to factors outside of our control that may impact our suppliers and the global supply chain. As an example, we began to experience increases in steel prices and shipping and logistics costs, as well as delays in delivery of our products to customers during 2021, which negatively impacted our results of operations as we were not able to recover all of the additional costs under certain of our fixed fee contracts. In addition, regulatory, tariff and import concerns such as those caused by the UFLPA and the Solar Circumvention Investigation have in the past, and may continue to, affect our ability to obtain project materials and may delay the timing of customer project activity which has had in the past, and may continue to have, an adverse impact on our results of operations, including the expected timing of the recognition of revenue needed to cover our relatively fixed overhead costs. We base our estimates on the best information available at each period end, but future events and their effects cannot be determined with certainty, and actual results could differ materially from our assumptions and estimates.

 

32


 

Accounts receivable, net

Our accounting policy relating to our accounts receivable and allowance for credit losses may be found in Note 2, "Summary of significant accounting policies" in our condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report.

Judgments and assumptions

The allowance for credit losses is based on the lifetime expected credit loss of our customer accounts. To assess the lifetime expected credit loss, we utilize a loss rate method that takes into consideration historical experience and certain other factors, as appropriate, such as credit quality and current economic or other conditions that may affect a customer's ability to pay. This method accelerates the recognition of expected credit losses as compared to the incurred loss model used prior to 2023 and may result in material differences between our estimates and actual collection results. We may also have greater fluctuations in our credit loss expense over time based on changes in our historical experience or changes in estimates of future economic conditions which may not adequately reflect future actual customer payment activity.

Adjustments to the allowance are largely dependent on historical experience involving amounts previously collected from our customers in recent years or based on specific changes in a customer's ability to pay. As an example, we recognized a $0.6 million credit loss provision in our selling and marketing expenses during the three months ended March 31, 2024, related to indications received of a specific customer's inability to fully pay amounts owed. Historical experience, when used in making such adjustments, may not reflect current actual experience.

Warranty

Our accounting policy relating to our warranty obligations may be found in Note 2, "Summary of significant accounting policies" in our condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report.

Judgments and assumptions

We base our estimated warranty obligations on available industry data relating to the nature and frequency of product failure rates and, where possible, on our historical experience, to make estimates of costs to address future claims. These estimates are inherently uncertain given our relatively short history of sales, and changes to our historical or projected warranty experience or fluctuations in available industry data may result in material changes to our warranty reserves in the future. Additionally, we make estimates of what costs we believe will be recoverable from the manufacturers of our products that we use to offset our obligations to our customers.

While we periodically monitor our warranty activities and claims, if actual costs incurred were to be different from our estimates, we would recognize adjustments to our warranty reserves in the period in which those differences arise or are identified. Such adjustments could be material to cost of revenue in our results of operations in the period the adjustments are made.

Stock-based compensation

Our accounting policy relating to our stock-based compensation may be found in Note 2, "Summary of significant accounting policies" in our condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report.

Judgments and assumptions

The Black-Scholes model relies on various assumptions, in addition to the exercise price of the option and the value of our common stock on the date of grant. These assumptions include:

Expected Term: The expected term represents the period that the Company’s stock-based awards are expected to be outstanding and is calculated as the average of the option vesting and contractual terms, based on the simplified method, as we do not have sufficient historical exercise data to provide a reasonable basis upon which to estimate the expected term for options granted. The simplified method deems the term to be the average of the time-to-vesting and the contractual life of the options. The contractual life of an option may be up to 10 years.

 

33


 

Expected Volatility: Since the Company did not have a trading history of its common stock prior to our IPO and since such trading history subsequent to our IPO is limited and may be less than the expected term of an award, the expected volatility is derived from the average historical stock volatilities of several public companies within the Company’s industry that it considers to be comparable to its business over a period equivalent to the expected term of the stock option grants.

Risk-Free-Interest-Rate: The Company bases the risk-free interest rate on the implied yield available on U.S. Treasury zero-coupon issues with a remaining term equivalent to the expected term.

Expected Dividend: The Company has not issued any dividends in its history and does not expect to issue dividends over the life of the options and, therefore, has estimated the dividend yield to be zero.

We used Monte Carlo simulations for certain awards granted with market conditions which provided an estimated average present value for each award based on a simulation assuming Geometric Brownian Motion in a risk-neutral framework using 100,000 simulation paths to determine the derived service and vesting periods.

Our use of the simplified method for estimating the expected outstanding term our options may differ significantly from future actual exercise patterns of our option holders. Estimates of the outstanding term our options that are less than the actual exercise patterns of our option holders, may result in lower recognized expense. Alternatively, our recognized expense may be higher if our option holders exercise their options sooner than our estimates project.

Similarly, our use of a volatility estimate based on historical stock volatilities of a peer group of other public companies may differ significantly from the actual future volatility of our stock over the term options are held. Higher estimated volatility compared to future actual results may result in higher recognized expense and alternatively, lower expected volatility compared to future actual results may result in lower recognized expense.

Changes to any of our assumptions, but particularly our estimates of expected term and volatility, could change the fair value of our options and impact the amount of stock-based compensation expense we report each period.

Impairment

Our accounting policies relating to impairment of our long-lived assets held for use, including intangible assets, and of goodwill may be found in Note 2, "Summary of significant accounting policies" in our condensed consolidated financial statements in Part I, Item 1 of this Quarterly Report.

Judgments and assumptions

Key judgments and assumptions involving our assessment of impairment of our long-lived and intangible assets, as well as goodwill, may include:

Determination of whether events or changes in circumstances indicate that the carrying value of our long-lived assets or goodwill might be impaired. Such factors to consider may include an evaluation of changes in the business or regulatory climate, market conditions or other events impacting our operations;
Estimating future cash flows of our long-lived assets or asset groups and intangible assets, which may involve assumptions as to the lowest level of our assets at which cash flows are generated, including future growth and risk-adjusted discount rates, as well as a terminal growth rate or value and future market conditions;
Estimates of assumptions a market participant would use in determining the fair value of the affected long-lived assets or asset groups; and
Estimating the fair value of the consolidated company.

 

34


 

In estimating the fair value of the consolidated company, we used our market capitalization based on our closing stock price on the Nasdaq Global Market at March 31, 2024. Our daily closing stock price is affected by numerous factors, some of which may not directly involve the operations of the company, and, historically, has demonstrated high volatility.

We did not identify any impairments of our long-lived assets, intangible assets or goodwill during the three months ended March 31, 2024 and 2023.

JOBS Act accounting election

We are an emerging growth company, as defined in the JOBS Act. Under the JOBS Act, emerging growth companies can delay adopting new or revised accounting standards until such time as those standards apply to private companies. We elected to use the allowed extended transition period for adopting new or revised accounting standards.

 

ITEM 3. QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK

We are exposed to market risk in the ordinary course of our business. Market risk represents the risk of loss that may impact our financial position due to adverse changes in financial market prices and rates. Our market risk exposure is primarily a result of customer concentrations and fluctuations in steel, aluminum and logistics/transportation prices. We do not hold or issue financial instruments for trading purposes.

Fair value of financial instruments

Our financial instruments consist of cash, cash equivalents, restricted cash, accounts receivable, short-term interest-bearing loans and accounts payable. Cash, cash equivalents, restricted cash, accounts receivable and accounts payable are stated at their carrying value, which approximates fair value due to the short time to the expected receipt or payment date.

We had $14.0 million of cash and cash equivalents on hand, the vast majority of which was located in the United States, and no debt outstanding as of March 31, 2024. We regularly maintain cash balances with various financial institutions that exceed federally insured amounts, but we have experienced no losses associated with these amounts to date. We also took action in early 2023 to reallocate cash balances between different financial institutions based on our assessment as to the financial health of certain institutions.

Certain of our cash equivalents include deposits in money market funds that invest primarily in short-term securities issued or guaranteed by the U.S. government or its agencies or instrumentalities and contain no restrictions on immediate redemption. The carrying value for these money market fund deposits approximates fair value based on quoted prices in active markets for units held (Level 1 classification) and totaled $9.3 million at March 31, 2024 and $13.9 million at December 31, 2023.

We have no other financial instruments as of March 31, 2024 or December 31, 2023, other than cash equivalents, short-term interest-bearing loans and certain non-functional currency intercompany and third-party receivables and payables, which are subject to foreign exchange, interest rate or market risks.

Concentrations of major customers

Our customers include project developers, solar asset owners and EPC contractors that design and build solar energy projects. We extend credit to customers in the normal course of business, often without requiring collateral. We also perform credit analyses and monitor the financial health of our customers to reduce credit risk.

We typically rely on a small number of customers that account for a large portion of our revenue each period and our outstanding receivables at each period end.

Further, our accounts receivables are from companies within or serving the solar industry and, as such, we are exposed to normal industry credit risks. We continually evaluate our reserves for potential credit losses and establish initial reserves based on our expectation of lifetime expected credit losses.

 

35


 

Commodity Price Risk

We subcontract to various contract manufacturers, who manufacture and deliver products directly to our customers. We, therefore, do not procure raw materials and commodities directly, except for items added to our inventory. We are subject to indirect risk from fluctuating market prices of certain commodity raw materials, including steel and aluminum, which are used in our products, through our contract manufacturers, as increases in these commodity prices would increase our cost of procuring subcontracting services. Prices of these raw materials may be affected by supply restrictions or other market factors from time to time. Significant price increases for these raw materials could reduce our operating margins if we are unable to recover such increases in costs from our customers, and could harm our business, financial condition and results of operations.

 

ITEM 4. CONTROLS AND PROCEDURES

Evaluation of Disclosure Controls and Procedures

Our management, with the participation of our Chairman of the Board of Directors (functioning as our principal executive officer) and our Chief Financial Officer, evaluated the effectiveness of our disclosure controls and procedures (as defined in Rules 13a-15(e) and 15d-15(e) under the Securities Exchange Act of 1934 (the "Exchange Act") as of the end of the period covered by this Quarterly Report. Based on that evaluation, our Chairman of the Board of Directors and Chief Financial Officer concluded that our disclosure controls and procedures were effective as of March 31, 2024 in providing reasonable assurance that information required to be disclosed by us in reports that we file or submit under the Exchange Act is recorded, processed, summarized and reported within the time periods specified in the Securities and Exchange Commission's rules and forms, and that such information is accumulated and communicated to our management, including our Chief Executive Officer and Chief Financial Officer, as appropriate, to allow timely decisions regarding required disclosures.

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.

Changes in Internal Control Over Financial Reporting

There were no changes in our internal control over financial reporting that occurred during the three months ended March 31, 2024, that have materially affected, or are reasonably likely to materially affect, our internal control over financial reporting.

 

 

36


 

PART II - OTHER INFORMATION

From time to time, we may become involved in various claims, lawsuits, investigations, and other proceedings, arising in the normal course of business.

In March of 2023, CBP issued notices of tariff assessment that indicated an action taken at the Import Specialist (i.e., the port) level with respect to merchandise imported from Thailand under entry number 004-1058562-5 (the “625 Assessment”) and entry number 004-1063793-9 (the “Original 939 Assessment”, and collectively with the 625 Assessment, the “Original CBP Assessments”). The Original CBP Assessments related to certain torque beams that are used in our Voyager+ product that were imported in 2022. In the Original CBP Assessments, CPB asserted that Section 301 China tariffs, Section 232 steel & aluminum tariffs, and antidumping and countervailing duties applied to the merchandise. Based on correspondence received to date from CBP and our calculations based on applicable duty and tariff rates, the 625 Assessment is currently for approximately $2.84 million. In September of 2023, CBP informed us (the "Revised 939 Assessment", and together with the 625 Assessment, the "Revised CBP Assessments") that the amount owed under the Original 939 Assessment was being revised downward to approximately $2.01 million. In particular, CBP accepted our position that the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, previously assessed under the Original 939 Assessment are not applicable as they are only applicable to articles that originate in China and that, in this case, the finished goods are products of Thailand.

Upon review of the facts involved, and in consultation with outside legal counsel, we believe that the remaining amounts claimed in the Revised CBP Assessments are incorrect. In particular, the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, are not applicable under the 625 Assessment for the same reason stated above with respect to the Revised 939 Assessment, which has been accepted by CBP. Moreover, with respect to both Revised CBP Assessments, we believe that the goods in question were properly classified as parts of structures at the time of importation and that when properly classified, the beams and other materials are not subject to Section 232 duties applicable to more basic steel products.

CBP has legally finalized both Revised CBP Assessments. We filed a formal protest for the 625 Assessment in September of 2023 and for the Revised 939 Assessment in March of 2024. Based on the above, and under the relevant accounting guidance related to loss contingencies, we have made no accrual for the amounts claimed by CBP as of March 31, 2024, as we do not consider these amounts to be a probable obligation, as such term is defined and interpreted under the relevant accounting guidance, for us at this time. However, because matters of this nature are subject to inherent uncertainties, and unfavorable rulings or developments, including future assessments of additional duties or tariffs owed in respect of other shipments or other materials beyond what is presently included in the Revised CBP Assessments, could occur despite our belief that the tariffs and duties asserted are incorrect, there can be no certainty that the Company may not ultimately incur charges that are not currently recorded as liabilities. Since the outcome of these matters cannot be predicted with certainty, the costs associated with them could have a material adverse effect on our consolidated results of operations, financial position, or liquidity.

 

ITEM 1A. RISK FACTORS

We are subject to a number of risks that if realized could adversely affect our business, strategies, prospects, financial condition, results of operations and cash flows. Some of the more significant risks and uncertainties we face include those summarized below. The summary below is not exhaustive and is qualified by reference to the full set of risk factors set forth in Item 1A. "Risk Factors" in our 2023 Annual Report. Please carefully consider all of the information in this Quarterly Report and our 2023 Annual Report, including the full set of risks set forth in Item 1A. "Risk Factors" of our 2023 Annual Report, and in our other filings with the SEC before making an investment decision regarding us.

Risks related to our business and our industry – We are a relatively new public company with a history of losses that provides products and services to the solar industry, which is rapidly changing and dependent on being competitive with the price of electricity generated from other sources. We face competition from other companies that may be larger than us and have more financial resources than we have which could impact our ability to compete for new business. We also currently rely on a limited number of customers which may have material adverse effects on our revenue, operating results and cash flows.
Risks related to government regulations and legal compliance – We face risks to the demand for our products from our customers due to changes in, or expiration of, governmental incentives and existing tax credits and other benefits. Additionally,

 

37


 

changes in the trade environment and tax treaties between the United States and other countries, such as China, as well as import tariffs and other laws and regulations that impact the ability to import our products or other products necessary for the construction of solar energy projects, have adversely and could continue to adversely affect our business.
Risks related to manufacturing and supply chain – We face risks in meeting the needs of our customers due to our reliance on a limited number of contract manufacturers, including on their ability to obtain raw materials in a cost effective and timely manner and to provide timely deliveries of finished products to us and our customers.
Risks related to intellectual property – We face the risk of not being able to adequately protect or defend our intellectual property and property rights in the various countries in which we do business.
Risks related to information technology and data privacy – We face reputational and monetary risks from cybersecurity incidents and the unauthorized disclosure of personal or sensitive data relating to our employees, customers, vendors and others.
Risks related to ownership of our common stock – The holders of our common stock face a risk of loss in their investment in us due to fluctuations in our stock price as a result of changing market conditions, any future issuances of stock, our future financial performance, our corporate legal structure, the substantial ownership in our stock by our directors, executive officers and principal stockholders and the potential for our common stock to not be able to trade in active, liquid markets.
Risks related to health epidemics – We face risks of our business being adversely impacted by the effects of future widespread outbreaks of contagious disease. For example, the COVID-19 pandemic caused significant supply chain disruptions beginning in 2020 that resulted in delays in product delivery and completion and caused increased transportation costs, as well as labor shortages.

Additionally, as described further in Note 2 in Part I, Item 1 under the section "Liquidity" and in Part I, Item 2 of this Quarterly Report under the section "Liquidity and Capital Resources", we have a history of cash outflows to fund operations.

 

ITEM 2. UNREGISTERED SALES OF EQUITY SECURITIES AND USE OF PROCEEDS

Unregistered Sales of Equity Securities

None.

Use of Proceeds

None.

Issuer Purchases of Equity Securities

None.

 

38


 

 

ITEM 3. DEFAULTS UPON SENIOR SECURITIES

Not applicable.

 

ITEM 4. MINE SAFETY DISCLOSURES

Not applicable.

 

ITEM 5. OTHER INFORMATION

(a)
Information required to be disclosed in a report on Form 8-K during the period covered by this Form 10-Q, but not reported.

None

(b)
Furnish the information required by Item 407(c)(3) of Regulation S-K (§229.407 of this chapter)

None

(c)
Furnish the information required by Item 408(a) of Regulation S-K (17 CFR 229.408(a)).

During the three months ended March 31, 2024, none of our directors or officers adopted, amended or terminated a "Rule 10b5-1 trading arrangement" or a "non-Rule 10b5-1 trading arrangement," as each term is defined in Item 408 of Regulation S-K.

 

39


 

ITEM 6. EXHIBITS

The following exhibits are filed as part of this report:

 

 

Exhibit

Number

 

Description

3.1

**

Amended and Restated Certificate of Incorporation of FTC Solar, Inc.(filed as Exhibit 3.1 to the Registrant's Current Report on Form 8-K filed with the Securities and Exchange Commission on May 3, 2021 and incorporated herein by reference).

3.2

**

Amended and Restated Bylaws of FTC Solar, Inc.(filed as Exhibit 3.2 to the Registrant's Current Report on Form 8-K filed with the Securities and Exchange Commission on May 3, 2021 and incorporated herein by reference).

3.3

**

Certificate of Correction of Amended and Restated Certificate of Incorporation (Filed as Exhibit 3.3 to the Registrant's Quarterly Report on Form 10-Q filed with the Securities and Exchange Commission on June 8, 2021 and incorporated herein by reference)

4.1

**

Specimen Common Stock Certificate (filed as Exhibit 4.1 to the Registrant's Registration Statement on Form S-1 filed with the Securities and Exchange Commission on April 29, 2021 and incorporated herein by reference)

10.1

*

Amendment dated July 1, 2022, to Employment Agreement, dated as of June 14, 2022, between FTC Solar, Inc. and Sasan Aminpour

10.2

*

Amendment dated August 17, 2022, to Employment Agreement, dated as of June 14, 2022, between FTC Solar, Inc. and Sasan Aminpour

10.3

*

Amendment dated May 11, 2023, to Employment Agreement, dated as of June 14, 2022, between FTC Solar, Inc. and Sasan Aminpour

31.1

*

Certification of Principal Executive Officer Pursuant to SEC Rule 13a−14(a)/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 SEC Rule 13a−14(a)/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

*

Inline XBRL Instance Document – the instance document does not appear in the Interactive Data File because XBRL tags are embedded within the Inline XBRL document.

101.SCH

*

Inline XBRL Taxonomy Extension Schema With Embedded Linkbase Documents

104

*

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

 

*

Filed herewith

**

Incorporated herein by reference

 

40


 

SIGNATURE

 

Pursuant to the requirements 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.

 

 

 

 

FTC SOLAR, INC.

 

 

 

 

Date: May 10, 2024

/s/ Cathy Behnen

 

Cathy Behnen, Chief Financial Officer

 

 

 

 

41


EX-10.1 2 ftci-ex10_1.htm EX-10.1 EX-10.1

Exhibit 10.1

July 1, 2022

Re: Amendment to Employment Agreement, dated as of June 14, 202[2] (the “Employment Agreement”), between FTC Solar, Inc. (the “Company”) and Sasan Aminpour (“you”)

Dear Sasan:

As discussed between you and the Company, and as approved by the Compensation Committee of the Board of Directors of the Company on June 7, 2022, you are agreeing to forego your cash salary (other than the Retained Cash Salary, as defined below) for the period from July 1, 2022 until December 31, 2022. In exchange, you will receive 42,422 Restricted Stock Units (“RSUs”) that will entitle you to receive the Company’s Common Stock (the “Common Stock”) in accordance with the Company’s equity plan and based on the delivery terms described herein and therein. Your RSUs shall become vested over a six-month period as follows: 1/6 of such award will vest on the last day of each of July, August, September, October, November and December of 2022, so long as you are providing services to the Company at all times from the grant date through each applicable vesting date. Following a reasonable amount of time after the vesting of the RSUs (but no later than March 15 of the year following such date), the Company shall issue to you a number of shares of Company stock equal to the then-vested RSUs.

The foregoing shall not apply to your Retained Cash Salary, and your Retained Cash Salary will continue to be paid to you in accordance with the Company’s standard payroll practices. “Retained Cash Salary” means the minimum cash salary that is required to be paid to you in compliance with applicable law.

Except as provided by this letter, your Employment Agreement shall remain in full force and effect and is hereby ratified and confirmed, and the execution, delivery and performance of this letter shall not constitute a waiver of any provision of, or operate as a waiver of any right, power or remedy of any party under your Employment Agreement. This letter supersedes all prior oral or written understandings, discussions or agreements that cover the subject matter of this letter.

This letter may be executed in counterparts, each of which shall be deemed an original, but all of which together shall constitute one agreement, and shall become effective when signed and delivered by each of the Company and you. A manual signature on this letter whose image shall have been transmitted electronically will constitute an original signature, and delivery of copies of this letter by electronic transmission will constitute delivery of this letter, for all purposes.


 

Please confirm your agreement to the above by signing and returning this letter to the Company.

 

Sincerely,

/s/ Sean Hunkler

Sean Hunkler

Chief Executive Officer FTC Solar, Inc.

 

Acknowledged and Accepted:

 

 

By:

/s/ Sasan Aminpour

Name:

Sasan Aminpour

 

 


EX-10.2 3 ftci-ex10_2.htm EX-10.2 EX-10.2

Exhibit 10.2

 

August 17, 2022

 

Re: Amendment to Employment Agreement, dated as of June 14, 2022 (the “Employment Agreement”), between FTC Solar, Inc. (the “Company”) and Sasan Aminpour (“you”)

 

Dear Sasan:

 

As discussed between you and the Company, you are agreeing to forego your cash bonus that was otherwise earned by you in respect of Q2 of 2022 under the Company’s bonus policies. In exchange, you will receive Restricted Stock Units (“RSUs”) that will entitle you to receive the Company’s Common Stock (the “Common Stock”) in accordance with the Company’s equity plan and based on the delivery terms described herein and therein. The grant date for such award will be August 17, 2022. Your RSUs shall become vested in full upon grant. Shortly after vesting, the Company shall issue to you a number of shares of Company stock equal to the then-vested RSUs.

 

The number of RSUs granted pursuant to the foregoing paragraph will be determined as follows: the applicable cash bonus earned in respect of Q2 of 2022 divided by the 30-day volume-weighted average price (VWAP) of the Company’s publicly traded stock as of the date of grant.

 

In addition, you and the Company hereby agree that any cash bonus that you earn in respect of Q3 or Q4 of 2022 under the Company’s bonus policies may also be paid in the form of RSUs based on the same terms and conditions as set forth above. Any decision to pay such cash bonuses in the form of RSUs shall be in the Company’s sole discretion, and the Company may elect not to pay such bonuses in such a manner (or pay only a portion of such bonuses in such a manner).

 

Except as provided by this letter, your Employment Agreement shall remain in full force and effect and is hereby ratified and confirmed, and the execution, delivery and performance of this letter shall not constitute a waiver of any provision of, or operate as a waiver of any right, power or remedy of any party under your Employment Agreement.

 

This letter may be executed in counterparts, each of which shall be deemed an original, but all of which together shall constitute one agreement, and shall become effective when signed and delivered by each of the Company and you. A manual signature on this letter whose image shall have been transmitted electronically will constitute an original signature, and delivery of copies of this letter by electronic transmission will constitute delivery of this letter, for all purposes.

 

 

Please confirm your agreement to the above by signing and returning this letter to the Company.


 

 

 

Sincerely,

 

 

/s/ Sean Hunkler

Sean Hunkler

Chief Executive Officer FTC Solar, Inc.

 

 

 

 

Acknowledged and Accepted:

 

 

By: /s/ Sasan Aminpour

 

Name: Sasan Aminpour

 


EX-10.3 4 ftci-ex10_3.htm EX-10.3 EX-10.3

Exhibit 10.3

May 11, 2023

Re: Amendment to Employment Agreement, dated as of June 14, 2022 (the “Employment Agreement”), between FTC Solar, Inc. (the “Company”) and Sasan Aminpour (“you”)

Dear Sasan:

As discussed between you and the Company, you are agreeing to forego your cash bonus(es) that was otherwise earned by you in respect of Q1 of 2023 under the Company’s bonus policies. In exchange, you will receive Restricted Stock Units (“RSUs”) that will entitle you to receive the Company’s Common Stock (the “Common Stock”) in accordance with the Company’s equity plan and based on the delivery terms described herein and therein. The grant date for such award will be May 17, 2023. Your RSUs shall become vested in full upon grant. Shortly after vesting, the Company shall issue to you a number of shares of Company stock equal to the then-vested RSUs.

The number of RSUs granted pursuant to the foregoing paragraph will be determined as follows: the applicable cash bonus earned in respect of Q1 of 2023 divided by the 30-day volume-weighted average price (VWAP) of the Company’s publicly traded stock as of the date of grant.

In addition, you and the Company hereby agree that any cash bonus that you earn in respect of Q2, Q3 or Q4 of 2023 (or any other cash bonus in respect of 2023) under the Company’s bonus policies may also be paid in the form of RSUs or other equity based compensation as determined by the Company. Any decision to pay such cash bonuses in the form of RSUs or other equity based compensation shall be in the Company’s sole discretion, and the Company may elect not to pay such bonuses in such a manner (or pay only a portion of such bonuses in such a manner).

Except as provided by this letter, your Employment Agreement shall remain in full force and effect and is hereby ratified and confirmed, and the execution, delivery and performance of this letter shall not constitute a waiver of any provision of, or operate as a waiver of any right, power or remedy of any party under your Employment Agreement.

This letter may be executed in counterparts, each of which shall be deemed an original, but all of which together shall constitute one agreement, and shall become effective when signed and delivered by each of the Company and you. A manual signature on this letter whose image shall have been transmitted electronically will constitute an original signature, and delivery of copies of this letter by electronic transmission will constitute delivery of this letter, for all purposes.


 

Please confirm your agreement to the above by signing and returning this letter to the Company.

 

Sincerely,

/s/ Sean Hunkler

Sean Hunkler

Chief Executive Officer FTC Solar, Inc.

 

Acknowledged and Accepted:

 

 

By:

/s/ Sasan Aminpour

Name:

Sasan Aminpour

 

 


EX-31.1 5 ftci-ex31_1.htm EX-31.1 EX-31.1

Exhibit 31.1

CERTIFICATION PURSUANT TO

RULES 13a-14(a) AND 15d-14(a) UNDER THE SECURITIES EXCHANGE ACT OF 1934,

AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002

I, Shaker Sadasivam, certify that:

1.
I have reviewed this quarterly report on Form 10-Q of FTC Solar 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: May 10, 2024

By:

/s/ Shaker Sadasivam

Shaker Sadasivam

Chairman of the Board of Directors of FTC Solar, Inc.

 

 


EX-31.2 6 ftci-ex31_2.htm EX-31.2 EX-31.2

Exhibit 31.2

CERTIFICATION PURSUANT TO

RULES 13a-14(a) AND 15d-14(a) UNDER THE SECURITIES EXCHANGE ACT OF 1934,

AS ADOPTED PURSUANT TO SECTION 302 OF THE SARBANES-OXLEY ACT OF 2002

I, Cathy Behnen, certify that:

1.
I have reviewed this quarterly report on Form 10-Q of FTC Solar 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: May 10, 2024

By:

/s/ Cathy Behnen

Cathy Behnen

Chief Financial Officer

 

 


EX-32.1 7 ftci-ex32_1.htm EX-32.1 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 Quarterly Report of FTC Solar, Inc. (the "Company") on Form 10-Q for the quarterly period ended March 31, 2024, as filed with the Securities and Exchange Commission on the date hereof (the "Report"), I certify, pursuant to 18 U.S.C. § 1350, as adopted pursuant to § 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.

 

Date: May 10, 2024

By:

/s/ Shaker Sadasivam

Shaker Sadasivam

Chairman of the Board of Directors of FTC Solar, Inc.

 

 


EX-32.2 8 ftci-ex32_2.htm EX-32.2 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 Quarterly Report of FTC Solar, Inc. (the "Company") on Form 10-Q for the quarterly period ended March 31, 2024, as filed with the Securities and Exchange Commission on the date hereof (the "Report"), I certify, pursuant to 18 U.S.C. § 1350, as adopted pursuant to § 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.

 

Date: May 10, 2024

By:

/s/ Cathy Behnen

Cathy Behnen

Chief Financial Officer

 

 


GRAPHIC 9 img146218138_0.jpg GRAPHIC begin 644 img146218138_0.jpg M_]C_X 02D9)1@ ! 0$ P # #_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" "I A,# 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@ HJ&ZNX;&!YIY%BB499F. *\9\??'(J\ECX?P2IVM=L,C\!_6O.QF/H8& M'/5?R._"8&OC9\E&/SZ'JNO>*M+\-6[2ZA=I ,[F6# M2,/NS2'Y3^%>,:AJ-UJMP9[RXDN)2?O2-G'TJ;2M!U'7)"EA9376#@F-20/K M7P>(XAQ6)ER86-E^)]UA^'L+AH\^+E=_(M M4U,@W=]+.1R"QKT#0?@#JU^N_4;N.Q4C($?SG\:ZW3OV>](MU/VRZFNR>A'R MUSK+F.U?1 M"? ;PLJ_-#.Q]?.(J.7X!^&FSY:SIZ?O"<4_]6\9'5-7#_67"2T<78\2LO'G MB#3_ /4:K/&O=0>#77:)\>M;L&1+V&*\@'5APY_&NAOOV=8F,CVFJO'_ '8V M0'\,UP^M_"#Q+HRL_P!E%Y'V^SG&5Q@ MBO_E.=5\556'K0U[_P"9X.;9+0PM M+ZQ1GIV_R/8Z***^W/C HHHH **** "BBB@ HHHH **** "BBB@ HHHH *** M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M **** "BBB@ HHHH **** "BBB@ HHHH **** "L?Q-XJT_PGILEY?3*BK]V M//S.>P H\5>)K/PGH\U_>2;54?*O=F[ 5\L^*O%%YXMU62]O'8@G]W%GA%]* M^!_ >H>-M06*!6AM%YEN6'R@>@]37TMX7\)Z?X3T M]+6QA5 !\SD?,Q]2:^/P668G.*GM\2[1_K8^OQF98;)X?5\-&\OR]3S;P9\! M;>W6.YUY_M$F,_9D^X/K[UZQIVE6FDPK%:6\<$:C&$4"K=%?H>%P&'P<>6E' MY]3\^Q6-KXR7-6E?\@HHHKT#A"BBB@ HHHH P?$'@?1?$T>R_L8Y3V8#!_,5 MI:3I-MHFGPV=I&(X(EVJHJY16,:-.,N>,4F:NK4E%06&=.7Q_B M?3$,R7$:R1L&1AD$5)7BW@+Q_+HLT5A>,9+1VPLA/W/_ *U>S1R+-&KH=RL, M@U^P<-<287B/"*M1=I+XEV9\WCL%4P-3DGMT8^BBBOL#S@HHHH **** "BBB M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "HYYDMH7ED8) M&@RS'L*DKR;X[^,&TS3(M(M92L]US(5/1.X/UKAQN*C@Z$JTNAV83#2Q=:-& M'4\U^*/CA_&.O.L3'^S[<[85S]X_WJH>!?!=UXVUI+:)2MK&09YL<*OI]:Y^ MWMY+J:."%2TDC!54>IKZI^'/A&/P?X;@M=O^DL-\S=]Q[5^;9;A9YSBW6K?" MM_\ (_1LRQ,,FPD:%#XGM_F;6B:+:>'].BL[.(10QC' Z^YJ_117ZI&,8148 MJR1^7RDY-RD[MA1115DA39)%AC:1V"HH+,QZ #J:=7SK^W-\=!\%/@GJ#60S#YF(]-N:N$'4DHKJ9U*BI0!_B=X5^)5O=3^%].J8J MHX\MDCZ U?6++0=-N-0U&ZCL[*W0R2SS-M5%'4DUYJO[57PC9@:7 M T^H:C<+;PQ*>6)//Z9JL/@E5I^TF[$XK,71J^RIJY^^G@SQ]X>^(FEOJ7AO M5K?6+%9#$;BV)*[AU&<4OC+QWX?^'FC_ -J^)-6MM&T[>L7VBZ?:NX]!]:PO M@A\+['X._"_0/"M@ORV-LJRR$?-)(>69O4Y/Z5^C[22U/T#;]JKX1JI)\?Z-@ M+S;6\A^[(IZ'Z&OQ=_9O^#]S\T\/Z3::;80+;65K$L,,,8PJ*!@ 5Y M^>9/A,90>$Q"YE)=>A>68^O-^V2Y;'S?GG6"_O+\&?3M%9'A?7(_$&C07:')888> MC=ZUZ_KW"XFGC*$,12=XR5T?F\X2IR<);H****ZB HHHH **** "BBB@ HHH MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ M HHHH **** "BBB@ HHHH **** "BBB@ HHHH BN;A+6WDFD.$C4LQ]A7R3X MRUZ7Q)XFOKZ1MRLY2/TV#I7T9\5=:;0_!-_,G^L=?+ ^O!KY853\JCJ3C\Z_ M/.*,0Y2AAH^I]_PQATE/$R]#U'X$^$UU;6I=5N$W06G$>>GF?_JKZ%KE_AOX M;3PSX4L[;"^!?"M]JMY)%9:;IML9&9CM1%4<#V["OF[_ ()Y_ I?A3\&X=;O MH%77O$6+J9\$$0XS$I!Z$ G->>_\%/OCJ?#GA&P^'6EW)2]UD>=?[""/LX.- MC>A)P:QKR>+Q"@MCHPT5@<*ZDMV?G]\;OBE??&7XHZ]XLO6<"\N&^SPNV[R8 M@<*@]N,_C7UE_P $PO@5_P )%XLU#XCZI;;K+2_]'T\2IP\QY,BG_9Y'XU\3 M^&?#=[XN\0:9H>FH7OM0N$MH0 3AF. 3CL*_=?X'?"VQ^#?POT+PK8Q+$MG MOG%>C3$9D;\6S7=CJBHTE2CU/-RZB\16=:?0R_VDOB_:?!'X0Z]XEN'_ -(B M@:.UC!PSRL-JX]<$Y_"OPTUC6+O7M6OM5U"4W%_>S-<3RGJSL_ M9>J6ZG+GZ]*>"IJA1=674G,*KQ-=48;+0_0C_@F=\"_^$'^&UQXYU*WV:MXA M'[@MPT=J#PI'^\,U]IU2T;2;?0=)L].M(UBMK6)88U4 *H '\JNUX%6HZLW M-GU-"DJ%-4UT(KFW6Z@>)QE6&"#7SMXHT=M!URYM-I$88M'GNOK7T=7F/QET MD&WM+Z./YD;;(_MV_6OQGQ+R6.892\7%>_2U]5V/JLCQ3H8E4WM(S/A#KC6N MI2Z;(W[J4;UR>A'85[#7S5HNH'2]8L[KM'("<=Z^D+:036\;CHR@UQ^%N;2Q MF62P=1WE2?X/8US_ ZI8A5(K21+1117[8?+A17E/B3]J;X5^$=:N=(U?QGI M]GJ-LVR:!V8LA]#@5SLW[='P-MY&C?X@Z<'7J-LG_P 36JI5'M%F#KTEO)?> M>\45X)_PW;\"O^BA:=_WS)_\34]G^V_\$+YF$/Q TUBHR>''\UH]E4_E8?6* M7\R^\]THKS/6?VD_AKX?\/Z1K>H>++*UTK5T,EC*PO^&R_@S_T M/FF_^/\ ^%)4YO:+&ZU-;R1[317BW_#9?P9_Z'S3?_'_ /"C_ALOX,_]#YIO M_C_^%/V53^5B]O2_F7WGM-%>+']LSX,@$GQ[IN/^!_X5ZEX4\6:3XXT"TUO0 M[V/4=+NUWP7,6=KKZC-3*$H_$K%QJ0F[1=S7HI"P4$DX ZFO,?'7[3/PQ^&M MR;?Q#XQTVPG'6/S/,(]OE!I1C*6D5<%?$-EK%NS%1Y,F&R/\ 9.#^E7*E M..LD1&M3F[1DF=E11161L%%%5WU"UC8J]S"K#J&< T 6**IIK%A(Q"WMN2/2 M5?\ &K2.LBAE8,IZ%3D4 .HHHH **BGNH+7!FFCBSTWL!_.J,?B32I9WA74+ M01L5>>-&'4,X!H FHIDF5.13Z "BBB@ HHJ*2ZAA;;)-&C>C, : ):*CCN(IL^7*DF/[K U)0 M 445%-=0V^/-FCCS_?8"@"6BJW]IV?\ S]P?]_%_QH_M.S_Y^X/^_B_XT 6: M*;'(DJ[D977U4Y%.H **** /'OVB;QH]+TRW#$"25MR^V*\B\'V*ZIXJTJU= M=TL3X*6J77CR$.N[RXF<>Q'>ORS'_P"T MYPH=FC].P'^RY,ZG=-GTO%&(8U1?NJ !3Z**_4DK*R/S$****8!39'6-&=F" MJHR6/ ]:=7C_P"U7XH\4^&_@WK2^#-%NM;\17T1M;>&U3<5###,?3"D_C51 MCS22(G+DBY=C\R?V\/CDWQE^-UY;6_$&MZ;X%\*WNJ7A6UTO3+9II-HX2-%S@#Z"OPL^.'Q1O/C+ M\4]?\67C[A>3D0!?NK"O"8';Y<5^FO\ P4.NO'^M_#JR\'>!?#>HZQ_:TFZ^ MNK ?ZF-.0A]FK\Y;']E'XNWUY;6O_"O]8A2:18S(8@ BD@%NO8<_A7/E\84T MZDWJ=.:2J5)*E!:(^DO^"8/P+_X23Q??_$?4K?=8:5NM=/+?=>8\.2/]D8Q7 MWC^T;\7K7X(_"/7/$\[H+F&(QV<3_P#+6=A\J_S_ "J_\"_A99?!KX7Z%X5L MU7-G HGE50#+*1\SGW)_E7Q;_P %&-*^*'Q8\8Z;X5\,^#M6U'PUI:">6XMX M\Q7,S<@CGJO2N1R^M8B\GH=\8/!X2T5[WZGYZ:QK%SKNJ7VJZA,\UW=RM/+) M(2X#W=Y>1@1K&IRRD^XR*_9C0]&M/#NCV6 MEV$0@LK.%8(8QT5%& /RKLQ^(CR*E \_+,-+G=:HMB]1117@GTX5SWCK2?[7 M\-WD6<%4W_ES70U5U*,2Z?9F=".)P5:E-73B_R-J,G"I&2Z,^9 MMWRYZ$V_"N1I/"L )R%.!]* M_FCPNJ2P^;U\+W3_ /NN((\^&A4['8TC?=-+2-]TU_51^?,_!W]HI0?C[\0 M>Y_M>;J?I7+^'? ?B/QC',^@>'=1UQ(3ME:PMFE$9/8XZ5U/[17_ "7SX@?] MAB;^E?;W_!))C_PC?C\<[?ML)]L[*^NJ570H_P#A7[Z45Y?]J3_E1[/]CT_Y MV?DC\?/AQXMNOV9_@=80^%]6EOK.QD6YM4M6,D)WGAQV-?.7_"H_'7_0E:[_ M . 3U^_3*&Z@'ZBF^4G]Q?RK.GF$J<;RV>H6DU MC>1'$EO<*4=/J#TJYH/A+6_%+3+HFC7VL-" 95LH6E,8/0MCI7KO[;P"_M4> M.\# \^/_ -!KZ+_X))J#XF^) (!_T>U_FU>S4K^SH*K8\"EAO:8CV%SXKE^$ M7CHQM_Q16N]#_P N3U^Q'['D,OA/]EOP<-:ADTE[.P+W"7B^6T0!))8'IQ7N M7E)_<7\J^,?^"FGQGNO GPOL/">DS>3=^()&CN6C;:\<"C/'L3Q7C3Q$L:XT MK6/H:>%AE\95N:^A\Y_M;?MZ>)/'GBF]T#P#J\VC>%[5C";RU;;+=D<,=W]T MU\?1PW>L:@(XTGU"]G8D(N9'=CUX]:GT#0KOQ)K6GZ-I<#7%_>S+;V\"=68G MH*_9/]F3]CWPA\!_#5M*]C%JWB6XB5[O4+R)696P"50'[N#QQZ5Z52=+ P2B MM3QZ5.MF-1RD]#\DK[X'_$#3]-&H7'@G6H[,KO\ --FV OJ?2N?\,^*=9\%Z MS'J>@ZI=Z-J=NV%GM9"C(1VQ7]!LD$M1H1%<+TVL?[X[^M?7S,%4D\ 'O#6G1:?IUJ@0+&HW.1_$Q[D^IK9UZ.6;1;U($?$KXQ:AJ6I2V6B7#V5E Q7SXCAY2.OX5P%GI>L>*+ MIGMX;J_E8X:5>*K>QMK^5K*,$S1S? M,BKZ>Q]*^C&5)HR&"NC=CR#56ST6QT^XEGM;6*WEE #M&@7./I2N!=KR[XD_ M&2'PU)-IFEJ)]44[9&8?)%_B:[/QQX@'ACPO?ZAP9(XSY:DXRQX%?),DD^H7 M;.Q::XG?//+,Q- %W6/$.J>([D27]Y-=2$_(I8X'L!35\.ZLT8E&FWIC/\81 ML?G7T+\-?A78>&]/AO+R!;G4I4!8R+D1YYP!ZUZ$(T5-@10G3;CB@#X^T;Q/ MJ_ANX5K"]FMBC9:/<=K8[,*^@OAG\5K?QHIL[I5M=4C7)7/RRCU7_"J'Q4^% M5GK.GW&IZ; MOJ42[V6,8$B@13W ^T* M^6OBY<3+\0]5"RR*,KPK$#I7TIX=U==>T.RU!!M%Q$'V^F>U?-'Q>_Y*)JOU M7^5) >L_L]R/)X+G+LSG[6_+'/I7I]>7?L\_\B3/_P!?6++L:WES&/]G.5_2OI MGX:>)U\5>$[2Y+;KB,>5-_O#_(I,#JJ^??VB99/^$HTZ,.PC^RD[02!G=7T% M7SU^T3_R-FF_]>A_]"H0'F5K8W=^Y2UAN+EQU6+U>U7=-IU]$OJZ, M*]'_ &>?^1COO^N5>_R1),NV1%=?1AD4P/D?0_'6O>'I(_L>HS+'&<^0[90_ M45]!_#+XD0^.;%HY@L.IPC][$.A'J/:N*^/7@NRL[&WUFRMTMY _ES>6 H8' MIQ7!?"?4I=-\?:4(GV+<2>3)[J>U 'U51114@?.W[0#%O&=LA/RBU! _&H?@ M+$6\<-(.BV[#%7OVA+5D\26=SCAH=F?QS67\#;H6_CI03A9(&7'O7Y;/W<\; ME_,?ID?>R*T?Y3Z5HHHK]2/S,**** "DKPS]L+]H)/V??A)>ZK:3(OB&\(MM M,C90^)3T=E[J,+;_X2Z#?>-[N.\\0WD(N9FCC\L*K@,J;?4 UX!^WY M^UIK/P)M]#T#P;=PP>)KTFXF::(2*EN./SS6$*4JD_9QW.BI6C2I^UEL?8E% M?CYH?[?7Q^\2:UI^D:=K-A/J%].EO!']B'S.QP!7ZS>!;;5[3PCI,>OW0O=9 M^SHUW,J; 9" 6 'L>/PK2OAY8>W,S'#8J&*OR+8WJ2OSU_;6_;K\4_#WXG#P MC\/+VUM_[,7&HW$L0DS,?^6>.V.*\Y^ O[8'Q_\ C-\6-!\+66M61CN9PUU* MNGJPAA'WG(]*UC@ZCI^T>B,I8^DJOLEJS]4*6F0JZQ()&WR!0&8#&3W.*?7 M>F%%%% !4')03D"4@5X]>2_:+NYE_OR,WYFO;/A9;^3X6@; 'F?-Q7\L M>'B]MQ/5K0^&TOQ/T#.O?P<\$^*-*\0:7IFI1ZE MILZW-N\E^S*''0D8YKRI8G#.+2@>U#!XR,DW4T/I8=!2T45XI]$?B7^V\?\ MC*CQW_UWC_\ 0:^B_P#@DC_R,_Q(_P"O>U_F:^=/VWO^3J/'?_7>/_T&OIS_ M ()+1J+CQZ^T;RL +=R,FOI<1_N:^1\AA?\ ?WZL_1BORR_X*J37C?&3P[$Z MM]@&EAD;MYF\Y_2OU-KX4_X*G_"^ZUSP#H?C*QBWIH\Y2^;N(F&%('^\:\C! M24:\6SW,[G&<*/>OV^K^?;P1XM MO/ /C+1?$NG@&]TJZ2ZA#="5/^%?N!\!?CIX>^/'@/3]>T:\B:Y>)?M=EN'F MV\G0JR]N:[=D]6/*Z;W/2J**\S^*G[1G@'X-7%E;>)]=AM+R[D6 M..UC(>09.-S+GA?>O&C%R=DCZ&4HP5Y.QZ92$!@0>0:KZ;J5KK%A!>V-Q'=6 MDZ"2*:)MRNIZ$&K-25Z'@WQ$^"=\FI3:AH2+<6\S%FMFZMU&%AG.5KUKP/\2$*L@.8W M8]AZ5!\2_A#HTNE76J6)73+B%3(W.(V'ICM7@,4SP2QRQ'$B,&4CU!I@?0W[ M0BLW@VW*M@"Z4GWB/@N.&3Q9I(G8+']H0Y/KGBOHGQGHLOBCX:M%Y>^\^ MRI*@_P!L*#_C7S!;7$EES T(#[5HKF/ 'C2V\::%!]=/4@-D4,C!AE2,'-?&6KA%U6_"?<\^3'_ 'T:^EOBIX\@\)Z# M/%%(K:E.NR.('YE!_B_"OF.*&6^NDB4%YIWV\#J2>M4@/ISX,-,? =EYR[?F M8)[KVKP_XN_\E$U7ZK_*OI/PII)T+P[I]@V-\,*JQ'+KJ97+6MMF&$'L!U_6O7O@- MX=.E^%6OI8BEQ>.3N/=!]T_SKYS))Y;+,>I]36G;^*M:M84A@U6^AA086.-R M%4>@%4!ZI^T)X7,OVB? M^1LTW_KT/_H5>V^$=?B\3>'[/4(V#^:@WX[./O#\Z\2_:)_Y&S3?^O0_^A4@ M,SX-^*M,\*ZW(O#>FR7UW;1FWCY&RA@P1:2N8)5$AE/+2$CJ: .@HHHJ0/&/VBK/\ T72K ME5_Y:,K-[8KS#P#??V;XRTF5FV)YP5V/0 U[[\9M+;4_ MYYL#7O">G7@ZO$ 1Z8X_I6_7Z91J*K3C4757/S:I!TYN#W04C,%4DG '))I:^ M=?VYOCM_PI/X*WS64ZQZ]K(:RL4[G(P[ ]BJG-=%.#J245U.>I45*#G+9'Y[ M_M[?'(_&/XV75G93^9H/A_=96V#PTG_+4GU^8<5@_L7?!T_&7X\:+9W$3R:1 MICB_O'0? M);^W5-:\1G[1O9<.EOGY$/XY-?2XB2PN'Y([GQ^%C+&8KGEMN?4GB+7K#P?X M=O\ 5]0E6TT[3X&FED/"HBC-?A7\=OBG>?&;XK:_XKNV^2ZG9;>,,2L<2G"[ M<] 0 :_0/_@IS\=V\*>";+X?Z5Z?UK[_ /VD_C':? WX1ZYXEF:,WD<)CLH) M#CSIFX51[]3^%3_L[?".U^"/PET/PM!&J3P1"2[9.CW# %V_.OSQ_P""EWQS M;QQ\3+;P+I\Y.DZ ]RJME);AN0P_P!T<5QZXS$^1Z&F7X3S?YGQ]K>M7GB+ M6+[5]1G:XO[V5IYYG/+,3GFOTQ_X)A_ H>&O!=[\1-3MPNI:P?)LMX(>*W'W MO^^C@U^?WP+^%=Y\:/BIH'A.SC+K=S!KGG&V!>9#GL<5^ZWAKP_9^%/#^G:/ M81^796,"6\2_[*@ 9]^*[,PK?E5!U)NM+H:=%%%?/'U84444 %8OC# M4(]/\.WTDAP#&5'U(Q6U7G'QDU0PZ;;62$'SG^<>PY%?+<3Y@LLRBOB7TBU] M^AW8&B\1B(4UW/(U'R =SQ7T+X(T]]-\,V,$GWUC&?YUX1HEC_:6L6=K@D2R M!3CM7TC;QB*"-!T50*_$_"7 N4\1C9+31+]3ZKB2JO^/I&7$!AL#4HXCVLMM3TFBBBO'/?"BBB@#\2OVWR/ M^&J/'?/_ "WC_P#0:^GO^"2Q_>>/._RP?S-?1OQ&_8/^&'Q2\;:GXIUNWU%M M4U!@\[0W6U20,<#'%=C\#?V9?!G[/;:F?"<5W&=1VB?[3-YF=O3''%>Q6Q=. MIAU26YX-# U:>*=9[:GK-8OC/PEI_COPMJ>@:I$LUC?P-!(K '&1C(SW'4?2 MMJBO(3L[H]UI-69^)'[2W[*?B?\ 9S\53PRVT^I^&)6+6.K0QEE*_P!U\=&' M?M7EO@[Q[K_@'4AJ/AK6;G2KH'.^VD(4GW&<'\:_?O6M#T_Q%IL^GZG9PW]E M.A26"= R.IZ@@U\T>-?^"<'P>\8:A->)87VBO(=PBTVX\N)?HN.E>Y2S"+CR MUD?-ULKFI.KIH",'9$J,1[DJ7_B+4C/?W M-SJNH2GAIF:61L]E!R?P%?I[I_\ P2I^'D=U<->ZWJT]NQ_ MIY=_P3?\#_$WPG\/[JX\77,D7AB] ETG3+O)GBSU?GHI&,"OKG7);N'1[Q[" M+S[Q8SY4><;F["KRJ%4 # ' I:\&I/VDG*Q]+1IJC!03O8^/+[^VO#^L327 M/VFQO?,+NV2/FSW/0UTFG_&SQ19JRR7J7>>AD4VD-RGI M(H-<]=?"GPO=8_XE<46/^>8Q47-CYXU_XD:_XDM7M;[4-]JYR85 K0^&?@& MZ\7:Y \D+QZ;"V^65A@-CHH^M>]6?PN\,6:@#28)2/XI!N-=-:VL-E"D,$2P MQ*,*B# %%P'1Q+#$L:C"*H4#V%>&_%SX3W"WTNLZ+;^;%)EY[>,[ 5[K1 M2 ^,M/U2^T&Z\ZUGELI_Q7\Q70-\6O%;P^6=98KT^Z,_G7TGJ'@W0]6E,EWI M=M/(>K,@S65-\)_"\TJO_9<:;?X4X!IW ^79)KO6+HR.TU[.QY;ES7MGP?\ MA3/IERNM:S JS;/X5ZAI?A72-#8M8:=;VK$8+1H :U:+@%?*WQ> M/_%Q-5^J_P J^J:R+WPGHVHW3W%UIMO/._WI'0$F@#Y5T3QCK/AN%XM-OWM8 MV.YE49&?6M9?BYXN1<#6&Q[QJ:^CO^$%\/\ _0(M/^_8H_X07P__ - BT_[] MB@#Y[TOXL^+;C5+*%]79DDG1&'EKR"P!%:'QT\4#6O%0L(I ]K8C'R_WS]X5 M[K'X)T&.1732;574[@PC&01WITW@O0KB9Y9=*M9))#N9FC!)/K0!Y-\ _!J7 M1NM;O(5DC_U4"2+D'U8?RKVC^R+'_GRM_P#OTO\ A4EC8V^FVJ6]K"D$"<+' M&, 5/0!4_LBQ_P"?*W_[]+_A7SK\;/"/_".^)C>P1[;*^^88&%5^ZBOI6J6I MZ-8ZS&D=]:Q72(_\ 7*O?[BWCNH9(94#QR*596&00:HZ;X=TS1Y&DL;&&U=A@ MM&N":TJ /EKXH^ 9/!>M$Q(3IEP2T+XX7_9-=M\"_B#M;_A'K^7CK:R,?_'* M]DU'2K/5X1#>VT=S%G.V1VB M7UI-;R#,O!PFM8]=MH_ MWL7R3[1U7L3]*^3XBP3Q.']K!:Q/J>'\:L+B?9RVEI\RC\ O%HAFGT.YDP'_ M 'D!8]3W45[E7QGI6I2Z1J-M>V[E987#@KUQW%?6/A#Q1:^+M%AOK9@=PPZ= MU;N#6'#F8*M1^KS?O1_(WXBP#H5OK$%[LOS-IF"J23@#DFOQP_;\^,K?%;X\ M:A8VLS-HWAXFQA3=E&E'WI%^O3\*_2C]KSXP)\%O@;K^LQS)%JD\1M;!7_CE M;C'Y9K\1)KAYY))I':661B[$G+,Q.?QZU^G9;1NW5?0_+,VKV2HQZGK'[+7P M9F^.GQHT3P^8V;3(I%N]1=>J0*>3^>*_;+4K_3O OA2XNYMMMIFEVK2,%PH5 M$7.!^ KYE_X)Z_LZO\(?AC_PD.L6X3Q%X@"W#!N6AAQ\B@^A&"17'?\ !3KX M[+X5\#6GP]TRY5=4UO\ >W@4D/';@\$'W88K+$2>+Q"A'9&V%@L#A75EN_Z1 M^?OQZ^*UY\:OBOKWBNZD9XKF8QV@88VVZG$:X]<5]*?\$S?@7_PFWQ$N_'NI M6^_2]!_=VA89#W)X((/4!3FOC?1](N_$&KV.DZ=";F^O9E@@A3J[,<8%?N;^ MSE\(K/X)_"/0/#-LBFXA@5[J;&&EE;EBWN,X_"N_&U%1I*E'J>;E]%XBNZL] MD6?C_P#%6U^"_P )]>\4W$BQR6L!6V#=&G8$1K^)K\*M.1PM-(D48W22-M4>I-?S1XG9^\35ADN%=]?>MW['W&08-1B\74^7^9W MWPAT?[5JD]^XRD(V $=SWKV*L#P7H"^']#@M\?O<;G/N:WZ_8.#LG_L7**5" M2M)ZOU9\WF6)^M8F51;;(****^W/+"BBB@ HHHH **** "BBB@ HHHH **** M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH M**** "BBB@ HHHH **** "BBB@ JO?V,.I6JYZ5:^&OCJ7P7K2ER6L)R%F3/3_:%?0?C MCP9:>--'>UG7;,HS#*!RC5\LZUH]SH6I3V%VFV:)BO3AAZCVK\LS+!U;K'4OW++CQ'XGL+Z M_P!4F 4O]K8*JC^%1C@5[C17K1E*#O%V/,E"-16DKH\#\"_L._"7X=^*K#Q% MH^AS)J=BXEMY)K@NJ,.C8(ZU[Y111*W6IZA,T\\GVQ@-Q]!C@>U=%\'_P!E'X=? W7[G6O">ES6NH7$/V=Y M9IS)\FE>P457M9M&^)/$UWXFO#-<-B-2?+B'117Y;QE MQEA\AP\J%"7-7DM%V\V>]EF63QDU*2M!%35=4GUF^EO+I]TCG..P'I7;_"_P M?)>W2:K=)B!/]4K#[Q]:PO!/@V?Q1?*[*4L8VR[G^+V%>[V=I'8V\<,2A(T& M !7YCP'PK7S7%?VUF:;5[J_5]_0]W.,PA0I_5,/\_(EZ4M%%?U ?"!1110 4 M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11 M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% M !7(>/OAU8^-K%@RK!?*/W=PHY'L?:NOHK"M0IXB#IU%=,VHUJE":J4W9H^5 ME^%^N+XEAT>>U=/,?!N%&4V^N:^F/#^B6_AW2;>PMEVQ0KCW)]:T-HSG'-1W M,PMK>25ONHI8UY.!RVAE:G4B_P#@(]/'9G6S%0C4Z?BR&ZU:SL9DBN+F.&1_ MNJ[ 9JRDBR#*G(KYW\6:_+XBUN:Y?*(AVQ*>P'>I-'\::OH;#R+II(^Z2?-7 MY*_%/"TD_9IV4EN_D>G_J_5G1C.$M7T/H:BO+M+^,L8XO[1D]XOFKH MK+XH:'> EI_L_P#UU&*_0L'QED>-2Y,3%-]'N>-5RW%T?BILZ^BL)?&NC,H( MOX2#T^:H6^(&A+G_ (F,/YU[4LZRZ*NZ\?O.3ZO6>T']QT=%<1?_ !:T:S8H MADN#V:-19?%MUU-KI'5GH4;>).8YLWA,HI./-I?=_\ /IL M/D5'#KVF*E>WW#-0U"YU2X:>\F::0_Q,>E=#X0\"WGB2XCDD1H;#.3(>"P]! M77>%OA*EO(EQJK"9QR(5^Z#7I$-O';QK'&BHBC 51@"N[AKP[Q.,K+,,\;[\ MKW?J8X[.H4X^QP:^?^1#INFP:39QVUM&L<:# "U:HHK^DJ5*%&"ITU:*V1\1 M*3D[L****U$%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 % M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44 M44 %%%% !1110 4444 %%%% !2,H8$$9%+10!S6O> =*U[UE<+.@^[&P^;\Z]CHKX;-N#,GSAN=:DE)]5HSU,-F>*PND):=CY MSO\ PKJVE\7%C(O^[\W\JS)+>1/OP.O^\I%?2-]7F7C#_72_[U?SKQ-PA@\D M;>'G)^I]?@=Z#\'X8]LNISF9P?]7'PN/0UW^FZ M/::3 L5K D2+T"BKM%?T;E/#F69+'EPE))]^K/C\1C*^*=ZLKA1117TQQ!11 M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 +%%%% !1110!__]D! end EX-101.SCH 10 ftci-20240331.xsd XBRL TAXONOMY EXTENSION SCHEMA WITH EMBEDDED LINKBASES DOCUMENT 100000 - Document - Document and Entity Information link:presentationLink link:calculationLink link:definitionLink 100010 - Statement - Condensed Consolidated Balance Sheets (Unaudited) link:presentationLink link:calculationLink link:definitionLink 100020 - Disclosure - Leases - Summary of Future Remaining Lease Payments Obligations (Details) 2 link:presentationLink link:calculationLink link:definitionLink 100030 - Statement - Condensed Consolidated Balance Sheets (Parenthetical) (Unaudited) link:presentationLink link:calculationLink link:definitionLink 100040 - Statement - Condensed Consolidated Statements of Comprehensive Loss (Unaudited) link:presentationLink link:calculationLink link:definitionLink 100050 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Deficit) (Unaudited) link:presentationLink link:calculationLink link:definitionLink 100060 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited) link:presentationLink link:calculationLink link:definitionLink 995455 - Disclosure - Description of business link:presentationLink link:calculationLink link:definitionLink 995465 - Disclosure - Summary of significant accounting policies link:presentationLink link:calculationLink link:definitionLink 995475 - Disclosure - Equity method investment link:presentationLink link:calculationLink link:definitionLink 995485 - Disclosure - ATM Program link:presentationLink link:calculationLink link:definitionLink 995495 - Disclosure - Accounts receivable, net link:presentationLink link:calculationLink link:definitionLink 995505 - Disclosure - Inventories, net link:presentationLink link:calculationLink link:definitionLink 995515 - Disclosure - Revenue link:presentationLink link:calculationLink link:definitionLink 995525 - Disclosure - Prepaid and other current assets link:presentationLink link:calculationLink link:definitionLink 995535 - Disclosure - Leases link:presentationLink link:calculationLink link:definitionLink 995545 - Disclosure - Property and equipment, net link:presentationLink link:calculationLink link:definitionLink 995555 - Disclosure - Intangible assets, net and goodwill link:presentationLink link:calculationLink link:definitionLink 995565 - Disclosure - Debt link:presentationLink link:calculationLink link:definitionLink 995575 - Disclosure - Accrued Expenses and Other Current Liabilities link:presentationLink link:calculationLink link:definitionLink 995585 - Disclosure - Stockholders' Equity link:presentationLink link:calculationLink link:definitionLink 995595 - Disclosure - Income Taxes link:presentationLink link:calculationLink link:definitionLink 995605 - Disclosure - Commitments and Contingencies link:presentationLink link:calculationLink link:definitionLink 995615 - Disclosure - Stock-Based Compensation link:presentationLink link:calculationLink link:definitionLink 995625 - Disclosure - Related Party Transactions link:presentationLink link:calculationLink link:definitionLink 995635 - Disclosure - Net Loss Per Share link:presentationLink link:calculationLink link:definitionLink 995645 - Disclosure - Subsequent Events link:presentationLink link:calculationLink link:definitionLink 995655 - Disclosure - Summary of significant accounting policies (Policies) link:presentationLink link:calculationLink link:definitionLink 995665 - Disclosure - Summary of significant accounting policies (Tables) link:presentationLink link:calculationLink link:definitionLink 995675 - Disclosure - Reduction in force (Tables) link:presentationLink link:calculationLink link:definitionLink 995685 - Disclosure - Acquisition (Tables) link:presentationLink link:calculationLink link:definitionLink 995695 - Disclosure - Accounts receivable, net (Tables) link:presentationLink link:calculationLink link:definitionLink 995705 - Disclosure - Inventories, net (Tables) link:presentationLink link:calculationLink link:definitionLink 995715 - Disclosure - Prepaid and other current assets (Tables) link:presentationLink link:calculationLink link:definitionLink 995725 - Disclosure - Leases (Tables) link:presentationLink link:calculationLink link:definitionLink 995735 - Disclosure - Property and equipment, net (Tables) link:presentationLink link:calculationLink link:definitionLink 995745 - Disclosure - Intangible assets, net and goodwill (Tables) link:presentationLink link:calculationLink link:definitionLink 995755 - Disclosure - Accrued Expenses and Other Current Liabilities (Tables) link:presentationLink link:calculationLink link:definitionLink 995765 - Disclosure - Sales of Equity Method Investments (Tables) link:presentationLink link:calculationLink link:definitionLink 995775 - Disclosure - Commitments and Contingencies (Tables) link:presentationLink link:calculationLink link:definitionLink 995785 - Disclosure - Stock-based Compensation (Tables) link:presentationLink link:calculationLink link:definitionLink 995795 - Disclosure - Net Loss Per Share (Tables) link:presentationLink link:calculationLink link:definitionLink 995805 - Disclosure - Description of Business - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995815 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995825 - Disclosure - Equity method investment - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995835 - Disclosure - ATM Program - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995845 - Disclosure - Accounts receivable, net - Schedule of Accounts Receivable, Net (Details) link:presentationLink link:calculationLink link:definitionLink 995855 - Disclosure - Accounts Receivable Allowance For Credit Loss - Details (Details) link:presentationLink link:calculationLink link:definitionLink 995865 - Disclosure - Accounts receivable, net - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995875 - Disclosure - Accounts receivable, net - Schedule of Accounts Receivable Allowance for Credit Loss (Details) link:presentationLink link:calculationLink link:definitionLink 995885 - Disclosure - Inventories, net - Schedule of inventories (Details) link:presentationLink link:calculationLink link:definitionLink 995895 - Disclosure - Prepaid and other current assets - Schedule of Prepaid and other current assets (Details) link:presentationLink link:calculationLink link:definitionLink 995905 - Disclosure - Prepaid and other current assets (Additional Information) (Details) link:presentationLink link:calculationLink link:definitionLink 995915 - Disclosure - Leases - Summary of Lease Expense (Details) link:presentationLink link:calculationLink link:definitionLink 995925 - Disclosure - Leases - Summary of Future Remaining Lease Payments Obligations (Details) link:presentationLink link:calculationLink link:definitionLink 995935 - Disclosure - Property and equipment, net - Schedule of property and equipment (Details) link:presentationLink link:calculationLink link:definitionLink 995945 - Disclosure - Property and equipment, net - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995955 - Disclosure - Intangible assets, net and goodwill - Summary of intangible assets (Details) link:presentationLink link:calculationLink link:definitionLink 995965 - Disclosure - Intangible assets, net and goodwill - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995975 - Disclosure - Intangible assets, net and goodwill - Summary of goodwill activity (Details) link:presentationLink link:calculationLink link:definitionLink 995985 - Disclosure - Debt - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 995995 - Disclosure - Accrued expenses and other current liabilities - Schedule of Accrued Expenses and Other Current Liabilities (Details) link:presentationLink link:calculationLink link:definitionLink 996005 - Disclosure - Accrued expenses and other current liabilities (Additional Information) (Details) link:presentationLink link:calculationLink link:definitionLink 996015 - Disclosure - Accrued expenses and other current liabilities - Schedule of warranty accruals (Details) link:presentationLink link:calculationLink link:definitionLink 996025 - Disclosure - Income Taxes - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 996035 - Disclosure - Commitments and Contingencies - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 996045 - Disclosure - Commitments and Contingencies - Summary of Changes in Product Warranty Reserves (Details) link:presentationLink link:calculationLink link:definitionLink 996055 - Disclosure - Stock-Based Compensation - Additional Information (Details) link:presentationLink link:calculationLink link:definitionLink 996065 - Disclosure - Stock-Based Compensation - Stock compensation expense (Details) link:presentationLink link:calculationLink link:definitionLink 996075 - Disclosure - Related party transactions - Additional Information (Detail) link:presentationLink link:calculationLink link:definitionLink 996085 - Disclosure - Net Loss Per Share (Additional Information) (Details) link:presentationLink link:calculationLink link:definitionLink 996095 - Disclosure - Net Loss Per Share - Schedule of Computation of Basic and Diluted Loss Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 996105 - Disclosure - Net Loss Per Share - Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share (Details) link:presentationLink link:calculationLink link:definitionLink 996115 - Disclosure - Subsequent Events (Additional Information) (Details) link:presentationLink link:calculationLink link:definitionLink Remainder of 2024 Lessee, Operating Lease, Liability, to be Paid, Year One Collaborative Arrangement and Arrangement Other than Collaborative Collaborative Arrangement and Arrangement Other than Collaborative [Domain] Document Transition Report Document Transition Report Purchase of property and equipment included in account payable. Purchase Of Property And Equipment Included In Account Payable Purchases of property and equipment included in ending accounts payable and accruals Stock offering costs paid Payments of Stock Issuance Costs Stock issuance costs Impairment Inventory Impairment, Policy [Policy Text Block] Revision of previously issued financial statements Condensed Financial Statements [Table Text Block] Net Profit Attributable Net profit attributable Net profit attributable Other non-current liabilities Other Liabilities, Noncurrent Other Liabilities, Noncurrent, Total Prepaid and other current assets Increase (Decrease) in Prepaid Expense and Other Assets Increase (Decrease) in Prepaid Expense and Other Assets, Total Restricted Stock Units (RSUs) [Member] Restricted Stock Units (RSU) Unaudited Interim Financial Information Unaudited Interim Financial Information Policy [Text Block] Unaudited interim financial information. Shares issued for legal settlement, shares Shares issued for legal settlement Shares issued for legal settlement Increase (Decrease) in Other Operating Assets and Liabilities, Net Increase (Decrease) in Other Operating Assets and Liabilities, Net, Total Lease payments and other, net 2027 Lessee, Operating Lease, Liability, to be Paid, Year Four Other Long-term Debt, Total Other Long-Term Debt Long-term borrowings or other material obligations Revenues Total revenue Revenue from Contract with Customer, Excluding Assessed Tax Revenue from Contract with Customer, Excluding Assessed Tax, Total Description Of Business [Table] Description Of Business [Table] Description of business. Effective Income Tax Rate Reconciliation, Tax Credit, Investment, Percent Investment tax credit, percentage Summary of Supplemental Information, Operating Lease Lessee, Operating Lease, Disclosure [Table Text Block] Proceeds from Sale of Equity Method Investments Proceeds from disposal of investment in unconsolidated subsidiary Prepaid Expense and Other Assets, Current [Abstract] Equity Method Investments and Joint Ventures [Abstract] Short-Term Debt, Type [Axis] Vendor deposits Vendor deposits Vendor Deposits Deferred revenue Contract with Customer, Liability, Current Interest Income (Expense), Net Interest Income (Expense), Net, Total Interest expense Interest expense, net Title of Individual [Domain] Subsequent events Subsequent Events [Text Block] Stock issued for accrued legal settlement Stock issued for accrued legal settlement Operating Lease, Liability, Noncurrent Operating lease liability, net of current portion Stock Repurchased During Period, Shares Repurchase of treasury stock Repurchase of treasury stock South Lake One LLC [Member] South Lake One LLC [Member] South Lake One LLC [Member] Retire aggregate shares of common stock Retire Aggregate Shares of Common Stock Retire Aggregate Shares of Common Stock. Liability For Unpaid Claims And Claims Adjustment Expense Liability for Unpaid Claims and Claims Adjustment Expense, Net Liability for Unpaid Claims and Claims Adjustment Expense, Net, Ending Balance Liability for Unpaid Claims and Claims Adjustment Expense, Net, Beginning Balance Related Party Transactions [Abstract] Balance Sheet Location Balance Sheet Location [Axis] Total current assets Current assets Assets, Current Deferred Revenue, Revenue Recognized Revenue recognized included in deferred revenue Liabilities and Equity Total liabilities and stockholders' equity Entity Address, State or Province Entity Address, State or Province Sale of shares Stock Issued During Period, Value, New Issues Issuance of common stock, value Taihua New Energy [Member] Taihua New Energy [Member] Reduction in workforce Reduction in workforce Reduction in workforce Comprehensive Income (Loss), Net of Tax, Attributable to Parent Comprehensive loss Comprehensive loss Inventory Disclosure [Text Block] Inventories, net Trading Symbol Trading Symbol Common stock issued for notes purchased Common stock, shares issued Common Stock, Shares, Issued Common Stock, Shares, Issued, Total Retainage provisions included in receivables. Retainage Provisions Included in Receivables Retainage provisions included in receivables Total Prepaid and other current assets Prepaid Expense and Other Assets, Current Prepaid Expenses and Other Current Assets Equity method investments Equity Method Investments [Policy Text Block] Major Customers [Member] Major Customers [Member] Selling and Marketing Expense [Member] Selling and marketing [Member] Debt Instrument [Table] Schedule of Long-Term Debt Instruments [Table] Beginning balance (in shares) Ending balance (in shares) Shares, Outstanding 2026 Lessee, Operating Lease, Liability, to be Paid, Year Three Additional Interest Rate Above Prime Additional Interest Rate Above Prime Additional Interest Rate Above Prime Accumulated Other Comprehensive Loss AOCI Attributable to Parent [Member] Loss from unconsolidated subsidiary Income (Loss) from Equity Method Investments, Net of Dividends or Distributions, Total Income (Loss) from Equity Method Investments, Net of Dividends or Distributions Loss from unconsolidated subsidiary Other comprehensive gain (loss) Other Comprehensive Income (Loss), Net of Tax Other Comprehensive Income (Loss), Net of Tax, Total Summary of Equity Method Investments Equity Method Investments [Table Text Block] Entity Address, City or Town Entity Address, City or Town Related Party Transaction [Line Items] Workforce Activity [Abstract] Workforce Activity [Abstract] Debt and Other Borrowings Debt Disclosure [Text Block] Schedule of property and equipment Property, Plant and Equipment [Table Text Block] Common stock, reserved for future issuance, value Common Stock, Capital Shares Reserved for Future Issuance Value Common Stock, Capital Shares Reserved for Future Issuance Value Subsequent Event Subsequent Event [Member] Subsequent Event Type [Axis] HX Tracker HX Tracker [Member] HX Tracker Member Additional Paid-in Capital Additional Paid-in Capital [Member] Schedule of Operating Leased Assets [Table] Current liabilities Liabilities, Current [Abstract] Current assets Assets, Current [Abstract] Counterparty Name Counterparty Name [Axis] Preferred Stock, Par or Stated Value Per Share Preferred stock, par value Statement of Stockholders' Equity [Abstract] Condensed Consolidated Statement of Stockholders' Equity Reserve Against Revenue Reserve Against Revenue Reserve against revenue Operating lease liabilities, current portion (included in Accrued expenses and other current liabilities) Operating Lease, Liability, Current Current portion of operating lease liability Property and equipment, net Property, Plant and Equipment, Net, Beginning Balance Property, Plant and Equipment, Net, Ending Balance Property, Plant and Equipment, Net Property and equipment, net Requirement to maintain minimum liquidity limit each quarter Requirement to maintain minimum liquidity limit each quarter Warrants recoverable from manufacturer. Warrants Recoverable From Manufacturer Warranty recoverable from manufacturer Warranty recoverable from manufacturer Statutory rate Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent Collaborative Arrangement and Arrangement Other than Collaborative Collaborative Arrangement and Arrangement Other than Collaborative [Axis] Treasury Stock, Shares Treasury Stock, Common, Shares Entity Central Index Key Entity Central Index Key Subsidiary or Equity Method Investee, Sale of Stock by Subsidiary or Equity Investee [Table] Tools, Dies and Molds [Member] Tooling [Member] Surety collateral. Surety Collateral Surety collateral Related Party [Member] Accounts Receivable, Allowance for Credit Loss [Table Text Block] Schedule of Accounts Receivable Allowance for Credit Loss Other assets Increase (Decrease) in Other Operating Assets Increase (Decrease) in Other Operating Assets, Total Schedule of goodwill activity Schedule of Goodwill [Table Text Block] Total current liabilities Current liabilities Liabilities, Current Entity Tax Identification Number Entity Tax Identification Number Loss before income taxes Pre-tax income (loss) from company's operations Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest Loss before income taxes Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table] Increase (Decrease) in Operating Capital [Abstract] Impact on cash from changes in operating assets and liabilities: Investment, Name Investment, Name [Axis] Related and Nonrelated Party Status [Axis] Leases Lessee, Operating Leases [Text Block] Restricted Stock [Member] Restricted Stock Awards [Member] RSUs Total assets Assets Short-term Interest Bearing Loan & Customer dvance Short-term Interest Bearing Loan & Customer dvance Operating Lease, Right-of-Use Asset Operating lease right-of-use assets Related party accruals Related party accruals Related party accrued cost of revenue Vendor deposits with related party Vendor Deposits With Related Party Vendor Deposits With Related Party Entity Registrant Name Entity Registrant Name Sale of common stock Proceeds from Issuance or Sale of Equity Proceeds from Issuance or Sale of Equity, Total Lessee, Lease, Description [Line Items] Related Party Related Party, Type [Domain] Accumulated deficit Retained Earnings (Accumulated Deficit) Retained Earnings (Accumulated Deficit), Total Retained Earnings (Accumulated Deficit), Beginning Balance Retained Earnings (Accumulated Deficit), Ending Balance Translation and other Translation and other Translation and other Supplemental disclosures of cash flow information: Supplemental Cash Flow Information [Abstract] Accumulated Deficit Retained Earnings [Member] Settlement Member Settlement [Member] Settlement Member Deferred income taxes Deferred Income Tax Liabilities, Net Minimum [Member] Minimum [Member] Proceeds from Stock Options Exercised Proceeds from stock option exercises Proceeds from stock option exercises Summary of significant accounting policies Significant Accounting Policies [Text Block] Schedule of prepaid and other current assets Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Table Text Block] Present value of operating lease liabilities Total lease liability Operating Lease, Liability Present value of operating lease liabilities Assessment Type [Axis] Assessment Type [Axis] Revenue recognition Revenue [Policy Text Block] Accrued Income Taxes, Current Non-federal tax obligations Equity Component Equity Component [Domain] Stock Options [Member] ATM Program [Member] ATM Program [Member] Software Development [Member] Capitalized Software [Member] Adjustments to reconcile net loss to cash used in operating activities: Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract] Schedule of allocation of the purchase price Asset Acquisition [Table Text Block] SunEdison Utility Holdings, Inc. [Member] Sun Edison Utility Holdings Inc [Member] SunEdison Utility Holdings Inc. member. Translation Goodwill, Foreign Currency Translation Gain (Loss) Debt Disclosure [Abstract] Entity Current Reporting Status Entity Current Reporting Status Common stock, shares authorized Common Stock, Shares Authorized Research and development Research and Development Expense Research and Development Expense, Total CBP Assessments [Member] CBP Assessments [Member] CBP Assessments [Member] Ayna [Member] Ayna [Member] Ayna Product Warranty Liability [Line Items] Product Warranty Liability [Line Items] Standard Product Warranty Accrual, Decrease for Payments Settlements made during the period Settlements made during the period Asset Purchase Agreement [Member] Asset Purchase Agreement [Member] Asset purchase agreement. ASSETS Assets [Abstract] Proceeds from common stock Sale of common stock Proceeds from Issuance of Common Stock Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block] Goodwill Amortization of Intangible Assets Amortization expense Provision (credit) for obsolete and slow-moving inventory Provision For Inventory Obsolescence Expense charge to establish an inventory obsolesce reserve. Accounts Receivable, after Allowance for Credit Loss [Abstract] Subsidiary, Sale of Stock [Line Items] Stock Repurchased and Retired During Period, Value Repurchase and retirement of common stock Share repurchase and retirement PLC Barclays Bank [Member] PLC Barclays Bank [Member] Barclays Bank PLC [Member] Capital Contribution Capital contributions Capital contributions Common stock par value of $0.0001 per share, 850,000,000 shares authorized; 125,952,253 and 125,445,325 shares issued and outstanding as of March 31, 2024 and December 31, 2023 Common Stock, Value, Issued Common Stock, Value, Issued, Total Common Stock, Value, Issued, Beginning Balance Common Stock, Value, Issued, Ending Balance Common stock, value, issued Description of tariffs classification Description of Tariffs Classification Description of Tariffs classification Other Noncash Income (Expense) Other Noncash Income (Expense), Total Lease expense and other Potential Future Capital Contributions Potential Future Capital Contributions Potential Future Capital Contributions Accrued Liabilities, Current Accrued expenses Total accrued expenses Current Fiscal Year End Date Current Fiscal Year End Date Stock-based compensation expense Stock-based compensation Share-Based Payment Arrangement, Noncash Expense Share-based Payment Arrangement, Noncash Expense, Total Operating Income (Loss) Loss from operations Loss from operations Assessment Type [Domain] Assessment Type [Domain] Entity Ex Transition Period Entity Ex Transition Period Deferred Income Tax Expense (Benefit), Total Deferred Income Tax Expense (Benefit) Deferred income taxes Income tax expense (benefit) Income Tax Expense (Benefit) Income Tax Expense (Benefit), Total (Benefit from) income taxes Income tax expense (benefit) (Provision for) benefit from income taxes Research and Development Expense [Member] Research and development [Member] Shares issued for HX Tracker acquisition, Shares Stock Issued During Period, Shares, Acquisitions Product warranty life Product warranty life. Product Warranty Life Cash, Beginning Balance Cash, Ending Balance Cash Accrued cost of revenue Accrued cost of revenues Accrued cost of revenues Stock based compensation expense Total stock compensation expense Share-Based Payment Arrangement, Expense Equipment [Member] Field Equipment [Member] Taxes Payable, Current, Total Taxes Payable, Current Income taxes payable Finite-Lived Intangible Assets, Net, Beginning Balance Finite-Lived Intangible Assets, Net, Ending Balance Finite-Lived Intangible Assets, Net Intangible assets, net Intangible assets, net Cash paid during the period for taxes, net of refunds Income Taxes Paid Revenue Revenue from Contract with Customer [Text Block] Impairment Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block] Other Comprehensive Income (Loss), Net of Tax [Abstract] Other comprehensive loss: Cash payment Cash Payments Cash Payments Cash payments Effect of exchange rate changes on cash, cash equivalents and restricted cash Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Continuing Operations Shares issued during the period for vested restricted stock awards, shares Stock Issued During Period, Shares, Restricted Stock Award, Gross Shares of common stock issuable upon vesting of restricted stock awards Covid-19 Pandemic Covid-19 Pandemic Policy [Text Block] Covid-19 Pandemic Policy [Text Block] Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table] Other income (expense), net Other income (expense), net Other Nonoperating Income (Expense), Total Other Nonoperating Income (Expense) Revisions of previously issued financial statements Revisions Of Previously Issued Financial Statements [Policy Text Block] Revisions Of Previously Issued Financial Statements. Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract] Operating expenses Operating Expenses [Abstract] Property, Plant and Equipment [Abstract] Depreciation, Depletion and Amortization, Nonproduction Depreciation, Depletion and Amortization, Nonproduction, Total Depreciation and amortization Subsequent Events [Abstract] Available liquidity after considering financial condition Available liquidity after considering financial condition Commitments and Contingencies Disclosure [Abstract] Other Assets, Noncurrent, Total Other assets Other Assets, Noncurrent Other Accrued Liabilities, Current Other accrued expenses Closing bid price Closing bid price Closing bid price Common Stock Equity [Text Block] Depreciation expense Depreciation Depreciation, Total Additional Capital Contributions Additional capital contributions Additional capital contributions Additional Paid in Capital, Ending Balance Additional paid-in capital Additional Paid in Capital Additional Paid in Capital, Total Additional Paid in Capital, Beginning Balance Outstanding capital stock held Outstanding capital stock held Outstanding capital stock held Liquidity Policy [Text Block] Liquidity Policy [Text Block] Liquidity Stockholders' equity Equity, Attributable to Parent [Abstract] Lessee, Operating Lease, Liability, to be Paid, after Year Five Thereafter Fair value of retained equipment Fair Value Of Retained Equipment Fair Value Of Retained Equipment Lease, Cost [Table Text Block] Summary of Lease Expense Developed Technology Rights [Member] Developed Technology [Member] Purchase Obligation Percentage Purchase Obligation Percentage Purchase Obligation Percentage Total cost of revenue Cost of Goods and Services Sold Cost of Goods and Services Sold, Total Cost of Revenue Net loss per share: Earnings Per Share [Abstract] Note 11. Net loss per share Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block] Summary of Future Remaining Lease Payments Obligations Investment, Name Investment, Name [Domain] Accounting Policies [Abstract] Product Warranty Liability [Table] Product Warranty Liability [Table] Additional capital contributions Additional capital contribution Additional capital contribution Concentration of credit risk Concentration Risk, Credit Risk, Policy [Policy Text Block] Sale of Stock, Consideration Received on Transaction Purchase cost of shares Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items] Credit Facility Agreement [Member] Revolving Credit Facility [Member] Trade Accounts Receivable Balance From Major Customer Trade Accounts Receivable Balance From Major Customer Trade Accounts Receivable Balance From Major Customer Trade receivables Trade Accounts Receivable Trade Accounts Receivable Changes in liability for pre-existing warranties Standard and Extended Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties Standard and Extended Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties, Total Basic loss per share Earnings Per Share, Basic Earnings Per Share, Basic, Total Basic Commitments and contingencies (Note 14) Commitments and Contingencies Statement of operations Income Statement [Abstract] Property, Plant and Equipment Disclosure [Text Block] Property and equipment, net Related Party Related Party, Type [Axis] Operating Lease, Cost Operating lease cost Operating lease cost Short-Term Lease, Cost Short-term lease cost Accounts Receivable, Allowance for Credit Loss, Recovery Additions charged to earnings during the period Statistical Measurement [Domain] Statistical Measurement Net cash used in operating activities Net Cash Provided by (Used in) Operating Activities Net cash used in operating activities Net cash used in operating activities Interest expense Financing Interest Expense Vendor Deposits Vendor Deposits 1 Vendor Deposits 1 Document Period End Date Document Period End Date Statistical Measurement Statistical Measurement [Axis] Accounts Receivable, Allowance for Credit Loss, Beginning Balance Accounts Receivable, Allowance for Credit Loss, Ending Balance Accounts Receivable, Allowance for Credit Loss Commitments and Contingencies Commitments and Contingencies Disclosure [Text Block] Stockholders' Equity Note [Abstract] Working Capital Working Capital Working capital Right-of-use asset and lease liability recognition for new leases Right-Of-Use Asset And Lease Liability Recognition For New Leases Right-Of-Use Asset And Lease Liability Recognition For New Leases Diluted loss per share Earnings Per Share, Diluted Earnings Per Share, Diluted, Total Diluted Product and Service Product and Service [Domain] Cost of Sales [Member] Cost of revenue [Member] Revenue from Contract with Customer [Abstract] Fcx Solar Llc [Member] Fcx Solar Llc [Member] Fcx Solar Llc [Member] Balance at end 's period Standard Product Warranty Accrual Balance at beginning of period Balance at end of period Balance at end of period Other non-current liabilities Increase (Decrease) in Other Noncurrent Liabilities Related Party Transaction [Domain] Warranty description Standard Product Warranty Description Inventory, Policy [Policy Text Block] Inventories, net Schedule of Restructuring and Related Costs [Table] Finite-Lived Intangible Assets, Major Class Name [Domain] Issuance of common stock upon exercise of stock options, shares Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period Liabilities and Equity [Abstract] LIABILITIES AND STOCKHOLDERS' EQUITY Operating Lease, Liability, Current, Statement of Financial Position [Extensible List] Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration] Schedule of Severance and Termination Related Costs [Table Text Block] Schedule of Severance and Termination Related Costs [Table Text Block] Schedule Of severance and termination-related costs Shares issued for HX Tracker acquisition, Amount Stock Issued During Period, Value, Acquisitions Entity Address, Postal Zip Code Entity Address, Postal Zip Code Entity Interactive Data Current Entity Interactive Data Current Selling and marketing Selling and Marketing Expense Selling and Marketing Expense, Total Related and Nonrelated Party Status [Domain] Accounts payable Increase (Decrease) in Accounts Payable Increase (Decrease) in Accounts Payable, Total Credit Facility Credit Facility [Domain] Revision of Prior Period, Adjustment [Member] Adjustments Summary of Changes in Product Warranty Reserves Schedule of Product Warranty Liability [Table Text Block] Schedule of warranty accruals Equity [Abstract] Less imputed interest Lessee, Operating Lease, Liability, Undiscounted Excess Amount Less imputed interest Schedule of Indefinite-Lived Intangible Assets [Table] Revision of Prior Period [Axis] Description of Revised Tariffs Classification Description of revised tariffs classification Description of Revised Tariffs classification Cost of assessment Cost of Assessment Cost of Assessment Entity Incorporation, State or Country Code Entity Incorporation, State or Country Code Cash and Cash Equivalents, Policy [Policy Text Block] Cash and cash equivalents Equity Components Equity Components [Axis] Accounts receivable Increase (Decrease) in Accounts Receivable Equity method investments financial information. Equity Method Investments Financial Information Table Text Block Summary of Equity Method Investments Financial Information Inventory Disclosure [Abstract] Board of Directors Chairman [Member] Board of Directors and Chairman Local Phone Number Local Phone Number Property, Plant and Equipment [Line Items] Sale of Stock Sale of Stock [Axis] Investment to acquire ownership interest Investment to acquire ownership interest Investment to acquire ownership interest Deferred revenue Increase (Decrease) in Deferred Revenue Inventory Valuation Reserves, Beginning Balance Inventory Valuation Reserves, Ending Balance Inventory Valuation Reserves Allowance for slow-moving and obsolete inventory Allowance for slow-moving and obsolete inventory Schedule Of Equity Method Investments [Line Items] Schedule of Equity Method Investments [Line Items] Balance at end of period Balance at beginning of period Goodwill Goodwill Goodwill, Total Placing Purchase Orders Placing purchase orders Placing purchase orders Accruals and other current liabilities Increase (Decrease) in Other Accounts Payable and Accrued Liabilities Restricted cash Restricted Cash, Current Statement of Cash Flows [Abstract] Director [Member] Board of Directors Stock Repurchased and Retired During Period, Shares Repurchase and retirement of common stock (shares) Share repurchase and retirement (shares) Share repurchased and retired (Shares) Available borrowing capacity under the Revolving Credit Facility Revolving Credit Facility, Available Remaining Borrowing Capacity Revolving Credit Facility, Available Remaining Borrowing Capacity Organization, Consolidation and Presentation of Financial Statements [Abstract] Accumulated Other Comprehensive Income (Loss), Net of Tax Accumulated Other Comprehensive Income (Loss), Net of Tax, Total Accumulated other comprehensive loss Accrued Expenses and Other Current Liabilities Table Text Block Accrued Expenses and Other Current Liabilities Table Text Block Schedule of Accrued Expenses and Other Current Liabilities Gross loss Gross Profit Gross profit (loss) Common stock, par value Common Stock, Par or Stated Value Per Share Service Service [Member] Long-Lived Tangible Asset [Axis] Fernweh Engaged Operator Company LLC [Member] Fernweh Engaged Operator Company LLC [Member] Fernweh Engaged Operator Company LLC [Member] Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table] DAYV LLC [Member] DAYV LLC [Member] DAYV LLC Maximum [Member] Maximum [Member] Maximum [Member] Common stock value authorized. Common Stock Value Authorized Common stock, value authorized Prepaid and other current assets Prepaid Expenses and Other Current Assets. Prepaid Expenses and Other Current Assets [Text Block] Related Party Transaction [Axis] Income Tax Contingency [Line Items] Stock-based compensation APIC, Share-Based Payment Arrangement, Increase for Cost Recognition APIC, Share-based Payment Arrangement, Increase for Cost Recognition, Total Settlements made during the period Standard and Extended Product Warranty Accrual, Decrease for Payments Standard and Extended Product Warranty Accrual, Decrease for Payments, Total Short-Term Debt, Type [Domain] Decrease in cash, cash equivalents and restricted cash Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect Payables and Accruals [Abstract] Accrued warranty balance reported in: General and Administrative Expense [Member] General and administrative [Member] Long-Term Investments [Abstract] Increase in common stock issued and outstanding. Increase in Common stock Issued and Outstanding Increase in common stock issued and outstanding Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block] Schedule of Inventories Schedule of Inventory, Current [Table Text Block] City Area Code City Area Code Inventories Inventory, Net Total Cash flows from operating activities Net Cash Provided by (Used in) Operating Activities [Abstract] Letter of Credit [Member] Letter of Credit Alpha Steel Alpha Steel [Member] Alpha Steel Customer [Domain] Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Total Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Beginning Balance Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Ending Balance Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment Accumulated depreciation Accumulated depreciation General and administrative General and Administrative Expense General and Administrative Expense, Total General and administrative expense Warranty Standard Product Warranty, Policy [Policy Text Block] Consecutive business days Consecutive business days Consecutive business days Weighted Average Number of Shares Outstanding, Basic Weighted Average Number of Shares Outstanding, Basic, Total Basic weighted-average number of common shares outstanding Basic Prepaid Taxes Prepaid taxes Cash flows from financing activities: Net Cash Provided by (Used in) Financing Activities [Abstract] Statement [Table] Statement [Table] Accrued Bonuses Document Fiscal Period Focus Document Fiscal Period Focus Lessee, Operating Lease, Liability, to be Paid Total lease payments Standard Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties Changes in liability for pre-existing warranties Related party transactions Related Party Transactions Disclosure [Text Block] 2025 Lessee, Operating Lease, Liability, to be Paid, Year Two Statement [Line Items] Statement [Line Items] Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount Potential common shares excluded from diluted net loss per share Lease, Cost Total lease cost Total lease cost Total lease cost Accrued Expenses and Other Current Liabilities Disclosure Text Block Accrued Expenses and Other Current Liabilities Disclosure Text Block Accrued Expenses and Other Current Liabilities Impact of Stock Split Impact of stock split. Accounts receivable, net Accounts Receivable, after Allowance for Credit Loss, Current Accounts receivable, net Accounts and Nontrade Receivable [Text Block] Accounts receivable, net Customer [Axis] Common Stock Common Stock [Member] Debt Instrument [Line Items] Debt Instrument [Line Items] Loss Contingency, Damages Sought, Value Damages sought value Concentrations of credit risk, percentage Percantage of Concentrations of credit risk Percantage of Concentrations of credit risk Schedule of Deferred Compensation Arrangement with Individual, Excluding Share-Based Payments and Postretirement Benefits, by Title of Individual and by Type of Deferred Compensation [Table] Cash and Cash Equivalents, at Carrying Value Cash and Cash Equivalents, at Carrying Value, Total Cash and Cash Equivalents, at Carrying Value, Beginning Balance Cash and Cash Equivalents, at Carrying Value, Ending Balance Cash and cash equivalents Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block] Schedule of Stock compensation expense Other Assets, Current Other current assets Prepaid Expense, Current Prepaid Expense, Current, Total Prepaid expense Entity Common Stock, Shares Outstanding Entity Common Stock, Shares Outstanding Total received Invoices from Alpha Steel Accounts Payable Accounts Payable, Total Inventory, Finished Goods, Gross, Total Inventory, Finished Goods, Gross Finished goods Antidilutive Securities, Name [Domain] Debt Instrument, Unused Borrowing Capacity, Amount Unused borrowing capacity Treasury stock, at cost; 10,762,566 shares as of March 31, 2024 and December 31, 2023 Treasury stock, value Treasury Stock, Value Treasury Stock, Value, Total Treasury Stock, Value, Beginning Balance Treasury Stock, Value, Ending Balance Cover [Abstract] General and administrative expense Selling, General and Administrative Expense Selling, General and Administrative Expense, Total Document Fiscal Year Focus Document Fiscal Year Focus Warranty reserves Product Warranty Accrual, Current Other current liabilities Intangible Assets, Finite-Lived, Policy [Policy Text Block] Intangible assets, net Income tax interest and penalties accrued Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued, Total Sale of Stock Sale of Stock [Domain] Preferred Stock [Member] Preferred Stock Income Tax Contingency [Table] Stock-based compensation Share-Based Payment Arrangement [Policy Text Block] Security Exchange Name Security Exchange Name Accounts Receivable [Policy Text Block] Accounts receivable, net Non-federal tax obligations Deferred Credits and Other Liabilities, Current Recent accounting pronouncements adopted New Accounting Pronouncements, Policy [Policy Text Block] Preferred Stock, Shares Issued, Total Preferred Stock, Shares Issued Preferred stock, shares issued Preferred Stock, Shares Authorized Preferred stock, shares authorized Technology Equipment [Member] Information Technology Equipment [Member] Property, Plant and Equipment, Gross, Total Property, Plant and Equipment, Gross, Beginning Balance Property, Plant and Equipment, Gross, Ending Balance Property, Plant and Equipment, Gross Property and equipment, gross Cost of revenue: Cost of Revenue [Abstract] Weighted Average Number of Shares Outstanding, Diluted [Abstract] Weighted-average common shares outstanding: Stock Issued During Period, Value, Stock Options Exercised Issuance of common stock upon exercise of stock options Accrued Expenses and Other Current Liabilities Abstract. Accrued Expenses and Other Current Liabilities Abstract Entity Emerging Growth Company Entity Emerging Growth Company Deferred offering costs Proceeds From Deferred Offering Costs Proceeds from deferred offering costs. Amendment Flag Amendment Flag Shares issued during the period for vested restricted stock awards Stock Issued During Period, Value, Restricted Stock Award, Gross Schedule of Supplemental Balance Sheet Information of Leases Schedule Of Operating Lease Assets And Liabilities Table [Text Block] Schedule of operating lease assets and liabilities. IPO [Member] Deferred cost of revenue Deferred Cost of Revenue Deferred cost of revenue Basis of presentation and principles of consolidation Basis of Accounting, Policy [Policy Text Block] Ownership percentage Equity Method Investment, Ownership Percentage ATM Program ATM Program Description of closing bid pric of our common stock Description of closing bid pric of our common stock Description of closing bid pric of our common stock Leases [Abstract] Description Of Business [Line Items] Description Of Business [Line Items] Description of business. Variable Rate [Domain] Entity File Number Securities Act File Number Cash paid during the period for interest Cash paid during the period for third party interest Cash paid during the period for third party interest Goodwill and Intangible Assets Disclosure [Abstract] Tariffs on merchandise, percent Tariffs on Merchandise, Percent Tariffs on Merchandise, Percent Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents Total cash and restricted cash Total cash and restricted cash Cash and cash equivalents at beginning of period Cash and cash equivalents at end of period Share-Based Payment Arrangement [Abstract] Warranties issued and remediation added during the period Warranties issued during the period Standard Product Warranty Accrual, Increase for Warranties Issued Accounts payable Accounts Payable, Current Accounts Payable, Current, Total Total operating expenses Operating Expenses Total operating expenses Forward stock split Forward stock split Forward stock split Stockholders' Equity, Reverse Stock Split Stock split Entity Address, Address Line Two Entity Address, Address Line Two Preferred stock par value of $0.0001 per share, 10,000,000 shares authorized; none issued as of March 31, 2024 and December 31, 2023 Preferred Stock, Value, Issued, Ending Balance Preferred Stock, Value, Issued, Beginning Balance Preferred Stock, Value, Issued, Total Preferred Stock, Value, Issued Entity Small Business Entity Small Business Program Rights Obligations [Abstract] Entity Shell Company Entity Shell Company Title of Individual [Axis] Balance at beginning of period Balance at end of period Standard and Extended Product Warranty Accrual Standard and Extended Product Warranty Accrual, Total Net Loss Per Share Earnings Per Share [Text Block] Revenue: Revenues [Abstract] Investment in Alpha Steel Payments to Acquire Other Investments Equity method investment in Alpha Steel Entity Address, Address Line One Entity Address, Address Line One Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items] Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items] Antidilutive Securities [Axis] Other Liabilities, Current Other current liabilities Total other current liabilities Additions charged to earnings during the period Accounts Receivable, Allowance for Credit Loss Expense (Reversal) Accounts Receivable, Allowance for Credit Loss Expense (Reversal) Finite-Lived Intangible Assets, Gross, Total Finite-Lived Intangible Assets, Gross Intangible assets, gross Accrued compensation Accrued compensation. Accrued Compensations Commitment fees rate Line of Credit Facility, Commitment Fee Percentage Subsequent Event Type [Domain] Revenue Recognition, Sales Returns, Reserve for Sales Returns Reserve against revenue Accounts and Other Receivables, Net, Current Other receivables Receivables Collected Stock offering costs Stock issuance costs Adjustments to Additional Paid in Capital, Stock Issued, Issuance Costs Recievables from Related Parties Recievables from Related Parties Related party receivables Income Statement Location [Axis] Credit Facility amount Line of Credit Facility, Fair Value of Amount Outstanding 2028 Lessee, Operating Lease, Liability, to be Paid, Year Five Provision for Other Credit Losses Provision For Credit Losses Product Product [Member] Shares of Common stock purchased Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Issued in Period Equity method investment Equity Method Investments Product and Service Product and Service [Axis] Title of 12(b) Security Title of 12(b) Security Finite-Lived Intangible Assets, Accumulated Amortization Accumulated amortization Accumulated amortization Liquidity ratio amount, minimum limit Liquidity Ratio Amount, Minimum Limit Liquidity Ratio Amount, Minimum Limit Prime Rate [Member] Money Market Funds, at Carrying Value Carrying value of money market fund Summary of intangible assets Schedule of Finite-Lived Intangible Assets [Table Text Block] Cash flows from investing activities: Net Cash Provided by (Used in) Investing Activities [Abstract] Amortization of debt issue cost Amortization of Debt Issuance Costs Amortization of debt issue costs Impairment of goodwill Goodwill, Impairment Loss Long-Lived Tangible Asset [Domain] Restricted Cash Cash and Cash Equivalents, Restricted Cash and Cash Equivalents, Policy [Policy Text Block] JOBS Act Accounting Election Jobs Act Accounting Election Policy [Text Block] Jobs act accounting election policy text block. Inventories Increase (Decrease) in Inventories Increase (Decrease) in Inventories, Total Product Warranties Disclosures [Abstract] Common stock, shares outstanding Common Stock, Shares, Outstanding Common Stock, Shares, Outstanding, Beginning Balance Common Stock, Shares, Outstanding, Ending Balance Stock-Based Compensation Share-Based Payment Arrangement [Text Block] Allowance for credit losses Balance at beginning of period Balance at end of period Allowance for credit losses Accounts and Financing Receivable, Allowance for Credit Loss Schedule of accounts receivable, net Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block] Reclassifications Reclassifications [Text Block] 939 Assessment [Member] 939 Assessment [Member] 939 Assessment [Member] Liquidity Ability to continue as a going concern Ability to continue as a going concern Indefinite-Lived Intangible Assets [Line Items] Aggregate commitments Revolving Credit Facility, Gross Maximum Borrowing Capacity Revolving Credit Facility, Gross Maximum Borrowing Capacity Income Statement Location [Domain] Business Combination and Asset Acquisition [Abstract] Document Type Document Type Net cash provided by (used in) investing activities Net Cash Provided by (Used in) Investing Activities Document Quarterly Report Document Quarterly Report Counterparty Name Counterparty Name [Domain] Intangible assets, net and goodwill Goodwill and Intangible Assets Disclosure [Text Block] Increased stock-based compensation expenses Share-Based Payment Arrangement, Accelerated Cost Warranty and remediation provisions Product Warranty Expense Net cash provided by financing activities Net Cash Provided by (Used in) Financing Activities Entity Filer Category Entity Filer Category Equity method investment Equity Method Investments and Joint Ventures Disclosure [Text Block] Balance Sheet Location Balance Sheet Location [Domain] Foreign currency translation adjustments Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Total Variable Rate [Axis] Warranty reserves Product Warranty Accrual, Noncurrent Other non-current liabilities Deferred Income Taxes Deferred income taxes Total liabilities Liabilities Revenue recognized in excess of billings Revenue recognized in excess of billings Revenue recognized in excess of billings Property, Plant and Equipment [Table] Finite-Lived Intangible Assets, Remaining Amortization Period Amortized period Equity Method Investment, Realized Gain (Loss) on Disposal, Total Equity Method Investment, Realized Gain (Loss) on Disposal Gain from disposal of investment in unconsolidated subsidiary Gain from disposal of investment in unconsolidated subsidiary Intangible assets, estimated useful life Finite-Lived Intangible Asset, Useful Life Accrued Expenses and Other Current Liabilities [Member] Other Current Liabilities [Member] Total stockholders' equity Beginning balance Ending balance Equity, Attributable to Parent Stockholders equity Intangible assets, net Intangible Assets, Net (Excluding Goodwill) Intangible Assets, Net (Excluding Goodwill), Total Net loss Net loss Description of business Business Description and Basis of Presentation [Text Block] Proceeds of IPO Proceeds from Issuance Initial Public Offering Proceeds from IPO Fair Value of Financial Instruments Fair Value Measurement, Policy [Policy Text Block] Balance sheet Statement of Financial Position [Abstract] Potential common shares excluded from diluted net loss per share Weighted Average Number of Shares Outstanding, Diluted Diluted Diluted weighted-average number of common shares outstanding Credit Facility Credit Facility [Axis] Credit loss provision Credit loss provisions Off-Balance-Sheet, Credit Loss, Liability, Credit Loss Expense (Reversal) Subscription revenue contract terms. Subscription Revenue Contract Terms Subscription revenue contract terms Use of estimates Use of Estimates, Policy [Policy Text Block] Income Taxes Income Tax Disclosure [Text Block] Finite-Lived Intangible Assets [Line Items] Treasury Stock -1 [Member] Treasury Stock -1 [Member] Treasury Stock Schedule of Earnings Per Share, Basic and Diluted [Table Text Block] Schedule of Computation of Basic and Diluted Income (Loss) Per Share Leasehold Improvements [Member] Shares issued for legal settlement Shares issued for legal settlement amt Shares issued for legal settlement amt Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items] Receivables, Net, Current Total Forward stock split. Corporate Conversion And Stock Split Policy [Text Block] Forward Stock Split Other Noncurrent Liabilities [Member] Other Noncurrent Liabilities [Member] Purchases of property and equipment Payments to Acquire Property, Plant, and Equipment Payments to Acquire Property, Plant, and Equipment, Total Revision of Prior Period [Domain] Sale of shares, shares Issuance of common stock (in shares) Stock Issued During Period, Shares, New Issues Income Tax Disclosure [Abstract] Finite-Lived Intangible Assets by Major Class [Axis] XML 12 R1.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Document and Entity Information - shares
3 Months Ended
Mar. 31, 2024
Apr. 26, 2024
Cover [Abstract]    
Entity Registrant Name FTC SOLAR, INC.  
Entity Central Index Key 0001828161  
Current Fiscal Year End Date --12-31  
Entity Filer Category Accelerated Filer  
Entity Current Reporting Status Yes  
Entity Interactive Data Current Yes  
Entity Small Business false  
Entity Emerging Growth Company true  
Entity Ex Transition Period false  
Entity Shell Company false  
Document Type 10-Q  
Document Period End Date Mar. 31, 2024  
Document Fiscal Year Focus 2024  
Document Fiscal Period Focus Q1  
Trading Symbol FTCI  
Amendment Flag false  
Title of 12(b) Security Common Stock, $0.0001 par value  
Security Exchange Name NASDAQ  
Entity File Number 001-40350  
Entity Incorporation, State or Country Code DE  
Entity Tax Identification Number 81-4816270  
Entity Address, Address Line One 9020 N Capital of Texas Hwy  
Entity Address, Address Line Two Suite I-260  
Entity Address, City or Town Austin  
Entity Address, State or Province TX  
Entity Address, Postal Zip Code 78759  
City Area Code 737  
Local Phone Number 787-7906  
Entity Common Stock, Shares Outstanding   125,979,165
Document Quarterly Report true  
Document Transition Report false  
XML 13 R2.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Condensed Consolidated Balance Sheets (Unaudited) - USD ($)
$ in Thousands
Mar. 31, 2024
Dec. 31, 2023
Current assets    
Cash and cash equivalents $ 14,041 $ 25,235
Restricted cash 1,896 0
Accounts receivable, net 66,379 65,279
Inventories 3,844 3,905
Prepaid and other current assets 14,069 14,089
Total current assets 100,229 108,508
Operating lease right-of-use assets 1,637 1,819
Property and equipment, net 1,994 1,823
Intangible assets, net 399 542
Goodwill 7,213 7,353
Equity method investment 1,010 240
Other assets 2,548 2,785
Total assets 115,030 123,070
Current liabilities    
Accounts payable 12,059 7,979
Accrued expenses 29,690 34,848
Income taxes payable 27 88
Deferred revenue 4,897 3,612
Other current liabilities 7,859 8,138
Total current liabilities 54,532 54,665
Operating lease liability, net of current portion 934 1,124
Other non-current liabilities 4,406 4,810
Total liabilities 59,872 60,599
Commitments and contingencies (Note 14)
Stockholders' equity    
Preferred stock par value of $0.0001 per share, 10,000,000 shares authorized; none issued as of March 31, 2024 and December 31, 2023 0 0
Common stock par value of $0.0001 per share, 850,000,000 shares authorized; 125,952,253 and 125,445,325 shares issued and outstanding as of March 31, 2024 and December 31, 2023 13 13
Treasury stock, at cost; 10,762,566 shares as of March 31, 2024 and December 31, 2023 0 0
Additional paid-in capital 363,525 361,886
Accumulated other comprehensive loss (474) (293)
Accumulated deficit (307,906) (299,135)
Total stockholders' equity 55,158 62,471
Total liabilities and stockholders' equity $ 115,030 $ 123,070
XML 14 R3.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Condensed Consolidated Balance Sheets (Parenthetical) (Unaudited) - $ / shares
Mar. 31, 2024
Dec. 31, 2023
Statement of Financial Position [Abstract]    
Preferred stock, par value $ 0.0001 $ 0.0001
Preferred stock, shares authorized 10,000,000 10,000,000
Preferred stock, shares issued 0 0
Common stock, par value $ 0.0001 $ 0.0001
Common stock, shares authorized 850,000,000 850,000,000
Common stock, shares issued 125,952,253 125,445,325
Common stock, shares outstanding 125,952,253 125,445,325
Treasury Stock, Shares 10,762,566 10,762,566
XML 15 R4.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Condensed Consolidated Statements of Comprehensive Loss (Unaudited) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Revenue:    
Total revenue $ 12,587 $ 40,894
Cost of revenue:    
Total cost of revenue 14,695 38,859
Gross profit (loss) (2,108) 2,035
Operating expenses    
Research and development 1,439 1,922
Selling and marketing 2,388 1,711
General and administrative 6,567 10,799
Total operating expenses 10,394 14,432
Loss from operations (12,502) (12,397)
Interest expense, net (136) (58)
Gain from disposal of investment in unconsolidated subsidiary 4,085 898
Other income (expense), net 36 (74)
Loss from unconsolidated subsidiary (265) 0
Loss before income taxes (8,782) (11,631)
(Provision for) benefit from income taxes 11 (131)
Net loss (8,771) (11,762)
Other comprehensive loss:    
Foreign currency translation adjustments (181) (5)
Comprehensive loss $ (8,952) $ (11,767)
Net loss per share:    
Basic $ (0.07) $ (0.11)
Diluted $ (0.07) $ (0.11)
Weighted-average common shares outstanding:    
Basic 125,569,375 106,791,198
Diluted 125,569,375 106,791,198
Product    
Revenue:    
Total revenue $ 10,905 $ 32,579
Cost of revenue:    
Total cost of revenue 12,367 31,767
Service    
Revenue:    
Total revenue 1,682 8,315
Cost of revenue:    
Total cost of revenue $ 2,328 $ 7,092
XML 16 R5.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Condensed Consolidated Statements of Stockholders' Equity (Deficit) (Unaudited) - USD ($)
$ in Thousands
Total
Preferred Stock
Common Stock
Treasury Stock
Additional Paid-in Capital
Accumulated Other Comprehensive Loss
Accumulated Deficit
Beginning balance at Dec. 31, 2022 $ 66,450 $ 0 $ 11 $ 0 $ 315,345 $ (61) $ (248,845)
Beginning balance (in shares) at Dec. 31, 2022   0 105,032,588 10,762,566      
Shares issued during the period for vested restricted stock awards 2,775       2,775    
Shares issued during the period for vested restricted stock awards, shares     1,498,987        
Issuance of common stock upon exercise of stock options 51       51    
Issuance of common stock upon exercise of stock options, shares     265,125        
Shares issued for legal settlement 2,000       2,000    
Shares issued for legal settlement, shares     797,396        
Sale of shares 6,292       6,292    
Sale of shares, shares     2,683,000        
Stock offering costs (32)       (32)    
Stock-based compensation 2,472       2,472    
Net loss (11,762)           (11,762)
Other comprehensive gain (loss) (5)         (5)  
Ending balance at Mar. 31, 2023 68,241 $ 0 $ 11 $ 0 328,903 (66) (260,607)
Ending balance (in shares) at Mar. 31, 2023   0 110,277,096 10,762,566      
Beginning balance at Dec. 31, 2023 62,471 $ 0 $ 13 $ 0 361,886 (293) (299,135)
Beginning balance (in shares) at Dec. 31, 2023   0 125,445,325 10,762,566      
Shares issued during the period for vested restricted stock awards, shares     506,928        
Stock-based compensation 1,639       1,639    
Net loss (8,771)           (8,771)
Other comprehensive gain (loss) (181)         (181)  
Ending balance at Mar. 31, 2024 $ 55,158 $ 0 $ 13 $ 0 $ 363,525 $ (474) $ (307,906)
Ending balance (in shares) at Mar. 31, 2024   0 125,952,253 10,762,566      
XML 17 R6.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Condensed Consolidated Statements of Cash Flows (Unaudited) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Cash flows from operating activities    
Net loss $ (8,771) $ (11,762)
Adjustments to reconcile net loss to cash used in operating activities:    
Stock-based compensation 1,639 4,890
Depreciation and amortization 404 334
Amortization of debt issue cost 177 177
Provision (credit) for obsolete and slow-moving inventory 177 1,261
Loss from unconsolidated subsidiary 265 0
Gain from disposal of investment in unconsolidated subsidiary (4,085) (898)
Warranty and remediation provisions 838 1,543
Warranty recoverable from manufacturer 98 (54)
Credit loss provisions 670 0
Deferred income taxes 225 216
Lease expense and other 309 229
Impact on cash from changes in operating assets and liabilities:    
Accounts receivable (1,770) (11,412)
Inventories (116) 5,078
Prepaid and other current assets 45 817
Other assets (226) (882)
Accounts payable 3,989 7,882
Accruals and other current liabilities (6,200) (616)
Deferred revenue 1,285 (2,677)
Other non-current liabilities (523) (2,212)
Lease payments and other, net (287) (230)
Net cash used in operating activities (11,857) (8,316)
Cash flows from investing activities:    
Purchases of property and equipment (432) (28)
Equity method investment in Alpha Steel (1,035) (900)
Proceeds from disposal of investment in unconsolidated subsidiary 4,085 898
Net cash provided by (used in) investing activities 2,618 (30)
Cash flows from financing activities:    
Sale of common stock 0 5,450
Stock offering costs paid 0 (32)
Proceeds from stock option exercises 0 51
Net cash provided by financing activities 0 5,469
Effect of exchange rate changes on cash, cash equivalents and restricted cash (59) (15)
Decrease in cash, cash equivalents and restricted cash (9,298) (2,892)
Cash and cash equivalents at beginning of period 25,235 44,385
Cash and cash equivalents at end of period 15,937 41,493
Supplemental disclosures of cash flow information:    
Purchases of property and equipment included in ending accounts payable and accruals 175 32
Stock issued for accrued legal settlement 0 2,000
Right-of-use asset and lease liability recognition for new leases 0 1,417
Cash paid during the period for interest 140 129
Cash paid during the period for taxes, net of refunds $ 58 $ 6
XML 18 R7.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Pay vs Performance Disclosure - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Pay vs Performance Disclosure    
Net Income (Loss) $ (8,771) $ (11,762)
XML 19 R8.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Insider Trading Arrangements
3 Months Ended
Mar. 31, 2024
Trading Arrangements, by Individual  
Rule 10b5-1 Arrangement Adopted false
Non-Rule 10b5-1 Arrangement Adopted false
Rule 10b5-1 Arrangement Terminated false
Non-Rule 10b5-1 Arrangement Terminated false
XML 20 R9.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Description of business
3 Months Ended
Mar. 31, 2024
Organization, Consolidation and Presentation of Financial Statements [Abstract]  
Description of business

1. Description of business

FTC Solar, Inc. (the “Company”, “we”, “our”, or “us”) was founded in 2017 and is incorporated in the state of Delaware. In April 2021, we completed an initial public offering ("IPO"), and our common stock began trading on the Nasdaq Global Market under the symbol “FTCI”.

We are a global provider of solar tracker systems, supported by proprietary software and value-added engineering services. Solar tracker systems move solar panels throughout the day to maintain an optimal orientation relative to the sun, thereby increasing the amount of solar energy produced at a solar installation. Our original two-panel in-portrait solar tracker system is currently marketed under the Voyager brand name (“Voyager”) and our one module-in-portrait ("1P") solar tracker system, which became certified in 2023, is marketed under the Pioneer brand name ("Pioneer"). We also have a mounting solution to support the installation and use of U.S.-manufactured thin-film modules by project owners. Our primary software offerings include SUNPATH which is intended to help customers optimize solar tracking for increased energy production, our SUNOPS real-time operations management platform and our web-based ATLAS portfolio management software. In addition, we have a team of renewable energy professionals available to assist our U.S. and worldwide clients in site layout, structural design, pile testing and other needs across the solar project development and construction cycle. The Company is headquartered in Austin, Texas, and has international subsidiaries in Australia, China, India, South Africa and Spain.

We are an emerging growth company, as defined in the Jumpstart Our Business Startups (JOBS) Act. Under the JOBS Act, we elected to use the allowed extended transition period to delay adopting new or revised accounting standards until such time as those standards apply to private companies.

XML 21 R10.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Summary of significant accounting policies
3 Months Ended
Mar. 31, 2024
Accounting Policies [Abstract]  
Summary of significant accounting policies

2. Summary of significant accounting policies

Basis of presentation and principles of consolidation

The accompanying unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries and have been prepared in accordance with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial statements and pursuant to Form 10-Q and Article 10 of Regulation S-X. In the opinion of management, all adjustments of a normal recurring nature have been made that are considered necessary for a fair statement of our financial position as of March 31, 2024, and December 31, 2023, our results of operations for the three months ended March 31, 2024 and 2023, and our cash flows for the three months ended March 31, 2024 and 2023. The condensed consolidated balance sheet as of December 31, 2023 has been derived from the Company’s audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America. Operating results for the three months ended March 31, 2024 are not necessarily indicative of the results that may be expected for the year ending December 31, 2024. Intercompany balances and transactions have been eliminated in consolidation.

Certain information and disclosures normally included in the notes to annual financial statements prepared in accordance with U.S. GAAP have been omitted from these interim financial statements pursuant to the rules and regulations of the Securities and Exchange Commission (the “SEC”). Therefore, these unaudited condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and related notes included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2023 (our "2023 Annual Report").

We currently operate in one business segment, the manufacturing and servicing of solar tracker systems.

Liquidity

We have incurred cumulative losses since inception and have a history of cash outflows from operations. As of March 31, 2024, we had $14.0 million of cash on hand, $45.7 million of working capital and approximately $64.9 million of remaining capacity available for future sales of our common stock under our ATM program as defined and described further in Note 4 below. There can be no assurance that we will be able to sell any additional shares of our common stock under the ATM program and no assurance regarding the price at

which we will be able to sell such shares, and any sales of our common stock under the ATM program may be at prices that result in additional dilution to our existing stockholders. On December 22, 2023, we received notification from The Nasdaq Stock Market LLC (“Nasdaq”) that we were not in compliance with the requirement to maintain a minimum closing bid price of $1.00 per share, as set forth in Nasdaq Listing Rule 5450(a)(1), because the closing bid price of the Company’s common stock was below $1.00 per share for 30 consecutive business days. The notification does not impact the listing of our common stock on the Nasdaq Global Market at this time.

In accordance with Nasdaq Listing Rule 5810(c)(3)(A), we have a period of 180 calendar days from the date of notification, or until June 19, 2024, to regain compliance with the minimum bid price requirement. During this period, our common stock will continue to trade on the Nasdaq Global Market. If at any time before June 19, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq will provide written notification that we have achieved compliance with this minimum bid price requirement.

In the event we do not regain compliance by June 19, 2024, we may be eligible for an additional 180 calendar day compliance period to demonstrate compliance with the minimum bid price requirement. To qualify for the additional 180-day period, we may be required to meet the continued listing requirements for market value of publicly held shares and all other initial listing standards (with the exception of the bid price requirement) and transfer our listing to the Nasdaq Capital Market. In addition, we will need to provide written notice to Nasdaq of our intention to cure the deficiency during the second compliance period by effecting a reverse stock split, if necessary. If we do not qualify for the second compliance period or fail to regain compliance during the second 180-day period, then Nasdaq will notify us that our common stock is subject to delisting.

As of March 31, 2024, we were not in compliance with the minimum liquidity covenant in our existing Senior Secured Revolving Credit Facility (the "Credit Facility") which prevented us from borrowing under the Credit Facility prior to its termination on April 30, 2024.

Also, as of March 31, 2024, we had a material contractual obligation that could require us to make additional capital contributions of up to $1.6 million to Alpha Steel, as described further in Note 3, "Equity method investment".

The most notable incentive program impacting our U.S. business has historically been the investment tax credit ("ITC") for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between 30% and 50%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program.

We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" below.

Similar to previous periods, we continue to evaluate our opportunities in 2024 to address existing market challenges, our cost structure and our historical use of cash. Further, in 2023, we introduced a new mounting solution to support the installation and use of U.S.-manufactured thin-film modules, Pioneer, our 1P solar tracker solution became certified, and we introduced SUNOPS, a cloud-based, tracker agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. Additionally, we have seen improvements in the logistics markets and easing of supply chain constraints since 2022. These factors contributed to us having positive gross profit during each quarter in 2023, a first since our IPO in April 2021.

In accordance with Accounting Standards Codification ("ASC") 205-40, Going Concern, we have evaluated whether there are conditions and events, considered in the aggregate, which raise substantial doubt about our ability to continue as a going concern within one year after the date our condensed consolidated financial statements are issued.

Management believes that our existing cash on hand, including cash received in April 2024 as a result of our agreement with a major customer as discussed further in Note 18, "Subsequent events" below, as well as the continuing impact of certain of the actions described above and our expectations of (i) improved market conditions, (ii) the expected timing of customer project activity, including activity related to certain large project awards received in 2023, and (iii) positive results in recent periods from our efforts to increase our direct product margins, will allow us to grow profitably and generate positive cash flow from operations during the next twelve months in amounts that will be sufficient, along with our other available resources such as our existing working capital and, if conditions become more conducive, the remaining capacity available for future sales of our common stock under our ATM program, to fund our operations for at least one year from the date of issuance of the condensed consolidated financial statements.

While there are already many underlying drivers of growth in the solar industry, the expected positive impact on demand for our products, or the timing of construction activity by existing customers and solar project developers, could take longer than expected to occur. In addition, domestic and international market conditions could deteriorate significantly from what we currently expect, and regulatory and international trade policies could become more stringent as a result of (i) findings from an ongoing investigation by the U.S. Department of Commerce (the Solar Circumvention Investigation") in response to a petition by Auxin Solar, Inc. of claims related to alleged circumvention of U.S. antidumping and countervailing duties ("AD/CVD") by solar manufacturers in certain Southeast Asian countries, (ii) enforcement of the Uyghur Forced Labor Prevention Act ("UFLPA") passed by the U.S. Congress and signed into law by President Biden on December 23, 2021, by U.S. Customs and Border Protection ("CBP'), and (iii) other factors, which may result in a need for us to issue additional debt or obtain new equity financing to adequately fund our existing operations beyond the next twelve months. We continue to actively explore options to obtain additional sources of capital through the issuance of new debt, asset financing or other potential measures for our longer-term needs. However, we may be unable to obtain any desired additional financing on terms favorable to us, or at all, depending on market and other conditions, which could result in curtailment of our current operations and our ability to further invest in our products and new technology. The ability to raise additional financing depends on numerous factors, some of which that are outside of our control, including macroeconomic factors such as the impact of inflation, the level of interest rates, supply chain or other effects from the ongoing conflicts in the Ukraine and the Middle East, general market conditions, the health of financial institutions (including recent bankruptcies and financial difficulties involving certain regional banks and related impacts that have occurred and continue to occur in the banking industry), investors' and lenders' assessments of our prospects and the prospects of the solar industry in general and the ability of our common stock to continue to trade in active markets.

Use of estimates

Preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported revenue and expenses during the period. Estimates are used for calculating the measure of progress of our solar tracker projects and deriving the standalone selling prices of the individual performance obligations when determining amounts to recognize for revenue, estimating allowances for credit losses and slow-moving and obsolete inventory, determining useful lives of long-lived assets and the estimated fair value of those assets for impairment assessments, and estimating the fair value of investments, stock compensation awards, warranty liabilities and federal and state taxes, including tax valuation allowances, as well as other contingencies. We base our estimates on historical experience and anticipated results, trends, and various other assumptions that we believe are reasonable under the circumstances, including assumptions as to future events. Actual results could differ from those estimates due to risks and uncertainties.

Concentration of credit risk

Financial instruments that potentially subject the Company to concentrations of credit risk are primarily cash and accounts receivable.

We regularly maintain cash balances with various financial institutions that exceed federally insured amounts, but we have experienced no losses associated with these amounts to date. We also took action in early 2023 to reallocate cash balances between different financial institutions based on our assessment as to the financial health of certain institutions.

We extend credit to customers in the normal course of business, often without requiring collateral. We also perform credit analyses and monitor the financial health of our customers to reduce credit risk.

The Company’s accounts receivables are derived from revenue earned from customers primarily located in the U.S. and Australia. No countries other than the U.S. and Australia accounted for 10% or more of our revenue. Most of our customers are project developers, solar asset owners and engineering, procurement and construction (“EPC”) contractors that design and build solar energy projects. We typically rely on a small number of customers that account for a large portion of our revenue each period and our outstanding receivables at each period end.

Cash and cash equivalents

We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents. Certain of our cash equivalents include deposits in money market funds that invest primarily in short-term securities issued or guaranteed by the U.S. government or its agencies or instrumentalities and contain no restrictions on immediate redemption. These deposits totaled $9.3 million at March 31, 2024 and $13.9 million at December 31, 2023. Interest earned on cash equivalents is included in interest income, which is reported net of interest expense in our condensed consolidated statements of comprehensive loss.

Restricted cash

Cash balances that are legally, contractually or otherwise restricted as to withdrawal or usage are considered restricted cash.

Accounts receivable, net

Trade receivables are recorded at invoiced amounts, net of allowances for credit losses, and do not bear interest. We generally do not require collateral from our customers; however, in certain circumstances, we may require letters of credit, other collateral, additional guarantees or advance payments.

The allowance for credit losses is based on the lifetime expected credit loss of our customer accounts. To assess the lifetime expected credit loss, we utilize a loss rate method that takes into consideration historical experience and certain other factors, as appropriate, such as credit quality and current economic or other conditions that may affect a customer's ability to pay. Provisions for credit losses are included as a component of our selling and marketing expenses.

Receivables arising from revenue recognized in excess of billings represents our unconditional right to consideration before customers are invoiced due to the level of progress obtained as of period end on our contracts to procure and deliver tracker systems and related equipment. Further information may be found below in our revenue recognition policy.

Inventories, net

Inventories are stated at the lower of cost or net realizable value, with costs computed on a first-in, first-out basis. The Company periodically reviews its inventories for excess and obsolete items and adjusts carrying costs to estimated net realizable values when they are determined to be less than cost.

Impairment

We review our long-lived assets that are held for use for impairment whenever events or changes in circumstances indicate that the carrying amount of the asset may not be recoverable or that its useful life may be shorter than previously expected. If such impairment indicators are present or other factors exist that indicate the carrying amount of the asset may not be recoverable, we determine whether an impairment has occurred through the use of an undiscounted cash flow analysis of the asset at the lowest level for which identifiable cash flows exist. If an impairment has occurred, we recognize a loss for the difference between the carrying amount and the fair value of the asset, which in most cases is estimated based upon Level 3 unobservable inputs. If the asset is determined to have a remaining useful life shorter than previously expected, an adjustment for the shorter remaining life will be made for purposes of recognizing future depreciation expense. Assets are classified as held for sale when we have a plan, approved by the appropriate levels of management, for disposal of such assets, as well as other considerations, and those assets are stated at the lower of carrying value or estimated fair value less estimated costs to sell.

Intangible assets, net

Intangible assets are recorded at fair value when acquired in connection with a business combination and consist of developed technology in the form of software tools, licenses, and intellectual property, which are amortized over the period of their estimated useful lives, generally 2.5 - 3.0 years, using the straight-line method. Costs incurred to renew or extend the term of a recognized intangible asset, if any, are expensed as incurred. We evaluate intangible assets for impairment using the method described above under "Impairment".

Goodwill

We recognize goodwill as the excess of the purchase price over the estimated fair value of the identified assets and liabilities acquired in a business combination accounted for using the acquisition method. Goodwill is not amortized but is subject to a periodic assessment for impairment at least annually, or whenever events and circumstances indicate an impairment may exist. Our assessments may include qualitative factors such as current or expected industry and market conditions, our overall financial performance, share price trends, market capitalization and other company-specific events.

We operate in one segment, being the consolidated entity, which we have also determined is the reporting unit for goodwill impairment.

No impairment of goodwill was recognized as of March 31, 2024 or 2023.

Equity method investment

We use the equity method of accounting for investments in which we have the ability to exercise significant influence, but not control, over operating and financial policies of the investee. Our proportionate share of the net income or loss of these investees is included in our condensed consolidated statements of comprehensive loss. Judgment regarding the level of influence over each equity method investment includes considering key factors such as our ownership interest, legal form of the investee, representation on the board of directors or managers, participation in policy-making decisions and material intra-entity transactions.

We account for distributions received from equity method investees under the “nature of the distribution” approach based on the nature of the activity or activities of the investee that generated the distribution as either a return on investment (classified as cash inflows from operating activities) or a return of investment (classified as cash inflows from investing activities).

We evaluate equity method investments for impairment whenever events or changes in circumstances indicate that the carrying amount of the investment might not be recoverable. Factors considered by the Company when reviewing an equity method investment for impairment include the length of time and the extent to which the fair value of the equity method investment has been less than its cost, the investee’s financial condition and near-term prospects and the intent and ability to hold the investment for a period of time sufficient to allow for anticipated recovery. An impairment that is other-than temporary is recognized in the period identified.

We made an accounting policy election that, upon the sale of our equity method investments, we will recognize contractual contingent gains arising from earnout provisions and project escrow releases when such amounts are realizable in periods subsequent to the disposal date.

Warranty

Typically, the sale of solar tracker projects includes parts warranties to customers as part of the overall price of the product. We provide standard assurance type warranties for our products for periods generally ranging from five to ten years. We also accrue for costs relating to remediation efforts involving product issues we believe require correction. We record a provision for estimated warranty and remediation expenses in cost of sales, net of amounts recoverable from manufacturers under their warranty obligations to us. When historical claims information relating to our equipment is not sufficient, we will base our estimates on industry studies involving the nature and frequency of product failure rates for similar parts used by our competitors, as well as other related businesses. We do not maintain general or unspecified reserves; all warranty reserves are related to specific projects. All actual or estimated material costs incurred for warranty or remediation services in subsequent periods are charged to those established reserves.

While we periodically monitor our warranty activities and claims, if actual costs incurred were to be different from our estimates, we would recognize adjustments to our warranty reserves in the period in which those differences arise or are identified.

Stock-based compensation

We recognize compensation expense for all share-based payment awards made, including stock options and restricted stock units ("RSUs"), based on the estimated fair value of the award on the grant date. We calculate the fair value of stock options using the Black-Scholes option pricing model for awards with service-based vesting or through use of a lattice model or a Monte Carlo simulation for stock option and RSU awards with market conditions. The fair value of RSUs with service or performance-based vesting is based on the estimated fair value of the Company's common stock on the date of grant. We consider the closing price of our stock, as reported on the Nasdaq Global Market, to be the fair value of our stock on the grant date.

Forfeitures are accounted for as they occur. For service-based awards, stock-based compensation is recognized using the straight-line attribution approach over the requisite service period. For performance-based awards, stock-based compensation is recognized based on graded vesting over the requisite service period when the performance condition is probable of being achieved. Stock compensation expense for market-based awards is recognized over the derived service period determined in the valuation model, inclusive of any vesting conditions.

Revenue recognition

Product revenue is derived from the sale of solar tracker systems and customized components for those systems, individual part sales for certain specific transactions and the sale of term-based software licenses. Term-based licensed software is deployed on the customers’ own servers and has significant standalone functionality.

Service revenue includes revenue from shipping and handling services, engineering consulting and pile testing services, our subscription-based enterprise licensing model and maintenance and support services in connection with the term-based software licenses. Our subscription-based enterprise licensing model typically has contract terms ranging from one to two years and consists of subscription fees from the licensing of subscription services. Our hosted on-demand service arrangements do not provide customers with the right to take possession of the software supporting the hosted services. Support services include ongoing security updates, upgrades, bug fixes, and maintenance.

We recognize revenue when promised goods or services are transferred to customers in an amount that reflects the consideration to which we expect to be entitled to in exchange for those goods or services by following a five-step process: (1) identify the contract with a customer, (2) identify the performance obligations in the contract, (3) determine the transaction price, (4) allocate the transaction price to the performance obligations in the contract, and (5) recognize revenue when or as the Company satisfies a performance obligation, as further described below.

Identify the contract with a customer: A contract with a customer exists when (i) the Company enters into an enforceable contract with a customer that defines each party’s rights regarding the products and services to be transferred and identifies the payment terms related to these products and services, (ii) the contract has commercial substance, and (iii) the Company determines that collection of substantially all consideration for products and services that are transferred is probable based on the customer’s intent and ability to pay the promised consideration. In assessing the recognition of revenue, we also evaluate whether two or more contracts should be combined and accounted for as one contract and if the combined or single contract should be accounted for as multiple performance obligations which could change the amount of revenue and profit (loss) recorded in a period. Change orders may include changes in specifications or design, manner of performance, equipment, materials, scope of work, and/or the period of completion of the project. We analyze change orders to determine if they should be accounted for as a modification to an existing contract or a new stand-alone contract.

Contracts we enter into with our customers for sale of solar tracker systems are generally under two different types of arrangements: (1) purchase agreements and equipment supply contracts (“Purchase Agreements”), and (2) sale of individual parts for those systems.

Change orders from our customers are generally modifications to existing contracts and are included in the total estimated contract revenue when it is probable that the change order will result in additional value that can be reliably estimated and realized.

Identify the performance obligations in the contract: We enter into contracts that can include various combinations of products and services, which are either capable of being distinct and accounted for as separate performance obligations or as one performance obligation since the majority of tasks and services are part of a single project or capability. However, determining whether products or services are considered distinct performance obligations that should be accounted for separately versus together may sometimes require significant judgment.

Our Purchase Agreements typically include two performance obligations: 1) our solar tracker systems or customized components of those systems, and 2) shipping and handling services. The deliverables included as part of our solar tracker systems are predominantly accounted for as one performance obligation, as these deliverables are part of a combined promise to deliver a project.

The revenue for shipping and handling services will be recognized over time based on progress in meeting shipping terms of the arrangements, as this faithfully depicts the Company’s performance in transferring control. Revenue for stand-alone engineering consulting and pile testing services is recognized at a point in time upon completion of the services performed.

Sales of individual parts of our solar tracker systems for certain specific transactions include multiple performance obligations consisting of individual parts of those systems. Revenue is recognized for parts sales at a point in time when the obligations under the terms of the contract with our customer are satisfied. Generally, this occurs with the transfer of control of the asset, which is in line with shipping terms.

Determine the transaction price: The transaction price is determined based on the consideration to which we will be entitled in exchange for transferring services to the customer. Such amounts are typically stated in the customer contract, and to the extent that we identify variable consideration, we will estimate the variable consideration at the onset of the arrangement as long as it is probable that a significant reversal in the amount of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is subsequently resolved. The majority of our contracts do not contain variable consideration provisions as a continuation of the original contract. None of our contracts contain a significant financing component. Taxes collected from customers and remitted to governmental authorities are not included in revenue.

Allocate the transaction price to performance obligations in the contract: Once we have determined the transaction price, we allocate the total transaction price to each performance obligation in a manner depicting the amount of consideration to which we expect to be entitled in exchange for transferring the good(s) or service(s) to the customer. We allocate the transaction price to each performance obligation identified in the contract on a relative standalone selling price basis.

We use the expected cost-plus margin approach based on hardware, labor, and related overhead cost to estimate the standalone selling price of our solar tracker systems, customized components of those systems, and individual parts for certain specific transactions. We also use the expected cost-plus margin approach based on expected third-party shipping and transportation costs to estimate the standalone selling price of our shipping, handling and logistics performance obligations. We use the adjusted market assessment approach for all other performance obligations.

Recognize revenue when or as the Company satisfies a performance obligation: For each performance obligation identified, we determine at contract inception whether we satisfy the performance obligation over time or at a point in time. The performance obligations in the contracts for our solar tracker systems and customized components of those systems are satisfied over time as work progresses, utilizing an input measure of progress determined by cost-to-cost measures on these projects as this faithfully depicts our performance in transferring control. Additionally, our performance does not create an asset with an alternative use, due to the highly customized nature of the product, and we have an enforceable right to payment for performance completed to date. Our performance obligations for individual part sales for certain specific transactions are recognized at a point in time as and when control transfers based on the Incoterms for the contract. Our performance obligations for engineering consulting and pile testing services are recognized at a point in time upon completion of the services. Our performance obligations for term-based software licenses are recognized at a point in time as and when control transfers, either upon delivery to the customer or the software license start date, whichever is later. Our performance obligations for shipping and handling services are satisfied over time as the services are delivered over the term of the contract. We recognize revenue for subscription and other services on a straight-line basis over the contract period. With regard to support revenue, a time-elapsed method is used to measure progress because we transfer control evenly over the contractual period. Accordingly, the fixed consideration related to support revenue is generally recognized on a straight-line basis over the contract term.

Contract assets and liabilities: The timing of revenue recognition, billing, and cash collection results in the recognition of accounts receivable, unbilled receivables for revenue recognized in excess of billings, and deferred revenue in the condensed consolidated balance sheets. We have elected to use the practical expedient of expensing incremental costs of obtaining a contract as incurred since the majority of the performance obligations in our contracts are satisfied in less than one year. We may receive advances or deposits from our customers before revenue is recognized, resulting in contract liabilities, which are reflected as “deferred revenue” in our condensed consolidated balance sheets. Customer deposits are short term as the related performance obligations are typically fulfilled within 12 months. Changes in deferred revenue relate to fluctuations in the timing of customer deposits and completion of performance obligations. Revenue recognized during the three months ended March 31, 2024 and 2023, from amounts included in deferred revenue at December 31, 2023 and December 31, 2022, totaled $2.4 million and $7.6 million, respectively.

Cost of revenue consists primarily of costs related to raw materials, equipment manufacturing activities, freight and delivery, product warranty, remediation and personnel costs (salaries, bonuses, benefits, and stock-based compensation). Personnel costs in cost of revenue include both direct labor costs, as well as costs attributable to any individuals whose activities relate to the procurement, installment and delivery of the finished product and services. Cost of revenue owed but not yet paid is recorded as accrued cost of revenue in the accompanying condensed consolidated financial statements. Deferred cost of revenue results from the timing differences between the costs incurred in advance of the satisfaction of all revenue recognition criteria consistent with our revenue recognition policy.

Recent accounting and regulatory pronouncements not yet adopted

In November 2023, the Financial Accounting Standards Board ("FASB") issued ASU No. 2023-07 - Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures ("ASU 2023-07"), which will become effective for us for our year end 2024 financial reporting and our interim reporting beginning January 1, 2025. ASU 2023-07 requires public companies to disclose significant segment expenses and other segment items on an annual and interim basis and will require interim disclosures about a reportable segment's profit or loss and assets that are currently required annually. As noted above, we operate in one segment. We are currently evaluating the impact of ASU 2023-07 on our existing disclosures. ASU 2023-07 will be applied retrospectively to all periods when presented in our consolidated financial statements for the year ending December 31, 2024.

In December 2023, the FASB issued ASU No. 2023-09 - Income Taxes (Topic 740): Improvements to Income Tax Disclosures ("ASU 2023-09"). ASU 2023-09 requires companies to disclose (i) additional categories of information about federal, state and foreign income taxes above a quantitative threshold in their rate reconciliation table and (ii) income taxes paid, net of refunds, disaggregated by federal, state and foreign taxes for annual periods, as well as other disclosure changes. As an emerging growth company, we are not required to adopt ASU 2023-09 prior to 2026, although earlier adoption is permitted. We are currently evaluating the impact of ASU 2023-09 on our existing income tax disclosures.

In March 2024, the U.S. Securities and Exchange Commission ("SEC") adopted the final rule under SEC Release No. 33-11275, The Enhancement and Standardization of Climate-Related Disclosures for Investors. This rule would require registrants to disclose certain climate-related information in registration statements and annual reports. In April 2024, the SEC issued a stay of the final rules pending a judicial review of the validity of the rules by the Eighth Circuit Court of Appeals. We are currently evaluating the final rule to determine its impact on our disclosures.

Other standards or regulatory requirements that have been issued but not yet adopted as of March 31, 2024, are either not applicable to us or are not expected to have any material impact upon adoption.

Reclassifications

Certain prior year amounts have been reclassified to conform to the current year presentation. There was no impact on our financial condition or results of operations as a result of the reclassification.

XML 22 R11.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Equity method investment
3 Months Ended
Mar. 31, 2024
Equity Method Investments and Joint Ventures [Abstract]  
Equity method investment

3. Equity method investment

On February 9, 2023, we entered into a limited liability company agreement (the "LLC Agreement") with Taihua New Energy (Thailand) Co., LTD ("Taihua"), a leading steel fabricator and an existing vendor, and DAYV LLC, for the creation of Alpha Steel LLC ("Alpha Steel"), a Delaware limited liability company dedicated to producing steel components, including torque tubes, for utility-scale solar projects. The Alpha Steel facility, which is located outside of Houston in Sealy, Texas, began commercial production late in the fourth quarter of 2023.

We entered into amendment no. 1 to the Alpha Steel LLC Agreement with Taihua and DAYV LLC on July 28, 2023, to allow for members at their option, and with the approval of the Board of Managers, to make payments in respect of Alpha Steel’s contractual obligations in the event that Alpha Steel does not or is not able to make such payments from its own resources (“Credit Support Payments”). Any such Credit Support Payments will be treated as capital contributions by the members to Alpha Steel, with any member funding more than its ratable share of Credit Support Payments being deemed to have loaned such excess to each underfunding member at the U.S. prime rate plus 2%.

Alpha Steel is intended to enhance our domestic supply chain, our ability to support our customers and the growth of the U.S. solar market, with domestic manufacturing utilizing U.S. steel. We have a 45% interest in Alpha Steel, which is accounted for under the equity method of accounting. Taihua has a 51% interest in Alpha Steel and DAYV LLC, an entity owned by members of the Board of Managers of Alpha Steel and a related party with the parent company of Taihua, has a 4% interest in Alpha Steel. The Chief Executive Officer of Taihua is the General Manager of Alpha Steel. We have equal voting representation with Taihua and DAYV LLC, combined, on Alpha Steel's Board of Managers which will be responsible, through majority vote, for making certain "major decisions" involving Alpha Steel, as specified in the LLC Agreement, including, among other things, approval of an annual business plan.

During 2023, we made a required initial capital contribution of $0.9 million to Alpha Steel. For the three months ended March 31, 2024, we also made a required additional capital contribution of $1.0 million. Pursuant to the LLC Agreement, we could be required to make up to $1.6 million in future additional capital contributions as Alpha Steel continues to expand production. For the three months ended March 31, 2024, we recognized a loss of $0.3 million which represents our share of the net operating losses incurred by Alpha Steel during the period.

In connection with the creation of Alpha Steel, we also entered into a three-year equipment supply agreement (the "Supply Agreement") with Alpha Steel, the terms of which will apply to our equipment purchase orders. Pursuant to the Supply Agreement, we have committed to placing a minimum level of purchase orders for torque tubes with Alpha Steel during the year ended December 31, 2024, with such volume commitments increasing in each of the next two annual periods. In the event we fail to meet our minimum required purchase commitments in any annual period, we may be required to make a cash payment for the net profit attributable to any unfilled requirements, calculated as specified in the agreement, in an amount not to exceed $4.0 million in the aggregate. As of March 31, 2024, we had met approximately 6% of our 2024 annual purchase commitments. The Supply Agreement may be terminated early in accordance with its provisions or may be extended beyond the initial term if mutually agreed to by the parties.

At March 31, 2024, in addition to our requirement to meet the remaining minimum purchase obligations for the remainder of the year, as described above, we were contingently liable for unpaid vendor obligations, including issued but unsatisfied purchase orders, of Alpha Steel totaling approximately $5.2 million. We expect Alpha Steel will be able to satisfy these obligations with financial resources available to them in the normal course of operations.

XML 23 R12.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
ATM Program
3 Months Ended
Mar. 31, 2024
Program Rights Obligations [Abstract]  
ATM Program

4. ATM program

On September 14, 2022, we filed a prospectus supplement and entered into an equity distribution agreement (as amended from time to time, the "EDA") under which we may from time to time, in one or more transactions, offer and sell newly issued shares of our common stock having an aggregate offering price of up to $100 million in "at the money" offerings (the "ATM program"). We have and may continue to use the net proceeds from this offering for general corporate purposes, including working capital and operating expenses. We may also use a portion of such proceeds to acquire or invest in businesses, products, services or technologies.

Barclays Capital Inc. ("Barclays") is our sales agent under the EDA. The offering of our common stock under the EDA will terminate upon the earlier of (1) the sale of all common stock subject to the EDA or (2) the termination of the EDA by us or by Barclays as permitted therein. The EDA contains customary representations, covenants and indemnification provisions.

We sold no shares of newly issued common stock under the ATM program during the three months ended March 31, 2024, however, during the three months ended March 31, 2023, we sold 2,683,000 shares of newly issued common stock valued at $6.5 million for proceeds, net of commissions and fees, of approximately $6.3 million, including $0.8 million for shares sold but not yet settled as of March 31, 2023. As of March 31, 2024, approximately $64.9 million of capacity remained for future sales of our common stock under the ATM program.

XML 24 R13.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Accounts receivable, net
3 Months Ended
Mar. 31, 2024
Accounts Receivable, after Allowance for Credit Loss [Abstract]  
Accounts receivable, net

5. Accounts receivable, net

Accounts receivable consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Trade receivables

 

$

49,474

 

 

$

46,152

 

Related party receivables

 

 

1,672

 

 

 

868

 

Revenue recognized in excess of billings

 

 

24,456

 

 

 

26,813

 

Other receivables

 

 

4

 

 

 

3

 

Total

 

 

75,606

 

 

 

73,836

 

Allowance for credit losses

 

 

(9,227

)

 

 

(8,557

)

Accounts receivable, net

 

$

66,379

 

 

$

65,279

 

Information relating to related party receivables at March 31, 2024, may be found below in Note 16, "Related party transactions".

Included in total receivables above are amounts billed under retainage provisions totaling $0.6 million and $0.9 million as of March 31, 2024 and December 31, 2023, respectively, which are due within the next twelve months.

Activity in the allowance for credit losses during the three months ended March 31, 2024 and 2023 was as follows:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Balance at beginning of period

 

$

8,557

 

 

$

1,184

 

Impact of adoption of ASU 2016-13, effective January 1, 2023

 

N/A

 

 

 

 

Additions charged to earnings during the period

 

 

670

 

 

 

 

Balance at end of period

 

$

9,227

 

 

$

1,184

 

 

 

 

 

 

 

 

XML 25 R14.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Inventories, net
3 Months Ended
Mar. 31, 2024
Inventory Disclosure [Abstract]  
Inventories, net

6. Inventories, net

Inventories consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Finished goods

 

$

4,362

 

 

$

4,246

 

Allowance for slow-moving and obsolete inventory

 

 

(518

)

 

 

(341

)

Total

 

$

3,844

 

 

$

3,905

 

XML 26 R15.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Prepaid and other current assets
3 Months Ended
Mar. 31, 2024
Prepaid Expense and Other Assets, Current [Abstract]  
Prepaid and other current assets

7. Prepaid and other current assets

Prepaid and other current assets consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Vendor deposits

 

$

5,894

 

 

$

5,667

 

Vendor deposits with related party

 

 

1,504

 

 

 

520

 

Prepaid expenses

 

 

710

 

 

 

1,251

 

Prepaid taxes

 

 

471

 

 

 

447

 

Deferred cost of revenue

 

 

611

 

 

 

666

 

Surety collateral

 

 

55

 

 

 

 

Other current assets

 

 

4,824

 

 

 

5,538

 

Total

 

$

14,069

 

 

$

14,089

 

At March 31, 2024, other current assets included $2.5 million of (i) a short-term, interest-bearing loan to a customer, as well as (ii) a non-interest-bearing customer advance, both of which are for pre-project construction financing activities. These amounts are secured by customer assets and, additionally in one case by a financial guarantee.

XML 27 R16.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Leases
3 Months Ended
Mar. 31, 2024
Leases [Abstract]  
Leases

8. Leases

We lease office and warehouse space in various locations, including our corporate headquarters in Austin, Texas. Additionally, we lease space for an applications laboratory in Austin, Texas and a research and development facility in Seguin, Texas. All of our manufacturing is outsourced to contract manufacturing partners, and we currently do not own or lease any manufacturing facilities.

Our expense for our operating leases consisted of the following:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Operating lease cost

 

$

309

 

 

$

229

 

Short-term lease cost

 

 

93

 

 

 

92

 

Total lease cost

 

$

402

 

 

$

321

 

 

 

 

 

 

 

 

Reported in:

 

 

 

 

 

 

Cost of revenue

 

$

236

 

 

$

215

 

Research and development

 

 

14

 

 

 

15

 

Selling and marketing

 

 

48

 

 

 

15

 

General and administrative

 

 

104

 

 

 

76

 

Total lease cost

 

$

402

 

 

$

321

 

Future remaining operating lease payment obligations were as follows:

(in thousands)

 

March 31,
2024

 

Remainder of 2024

 

$

607

 

2025

 

 

755

 

2026

 

 

219

 

2027

 

 

192

 

2028

 

 

16

 

Total lease payments

 

 

1,789

 

Less: imputed interest

 

 

(113

)

Present value of operating lease liabilities

 

$

1,676

 

 

 

 

 

Current portion of operating lease liability

 

$

742

 

Operating lease liability, net of current portion

 

 

934

 

Present value of operating lease liabilities

 

$

1,676

 

XML 28 R17.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Property and equipment, net
3 Months Ended
Mar. 31, 2024
Property, Plant and Equipment [Abstract]  
Property and equipment, net

9. Property and equipment, net

Property and equipment consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Leasehold improvements

 

$

162

 

 

$

157

 

Field equipment

 

 

1,062

 

 

 

1,062

 

Information technology equipment

 

 

508

 

 

 

466

 

Tooling

 

 

1,381

 

 

 

1,014

 

Capitalized software

 

 

761

 

 

 

734

 

Total

 

 

3,874

 

 

 

3,433

 

Accumulated depreciation

 

 

(1,880

)

 

 

(1,610

)

Property and equipment, net

 

$

1,994

 

 

$

1,823

 

Depreciation expense recognized for the three months ended March 31, 2024 and 2023, totaled $0.3 million and $0.2 million, respectively.

XML 29 R18.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Intangible assets, net and goodwill
3 Months Ended
Mar. 31, 2024
Goodwill and Intangible Assets Disclosure [Abstract]  
Intangible assets, net and goodwill

10. Intangible assets, net and goodwill

Intangible assets consisted of the following:

(in thousands)

 

Estimated Useful Lives (Years)

 

March 31, 2024

 

 

December 31, 2023

 

Developed technology

 

2.5 3.0

 

$

2,529

 

 

$

2,555

 

Total

 

 

 

 

2,529

 

 

 

2,555

 

Accumulated amortization

 

 

 

 

(2,130

)

 

 

(2,013

)

Intangible assets, net

 

 

 

$

399

 

 

$

542

 

Amortization expense recognized for the three months ended March 31, 2024 and 2023, totaled $0.1 million and $0.1 million, respectively.

During the three months ended March 31, 2024 and 2023, activity in our goodwill balance was as follows:

 

 

 

 

Three months ended March 31,

 

(in thousands)

 

 

 

2024

 

 

2023

 

Balance at beginning of period

 

 

 

$

7,353

 

 

$

7,538

 

Translation

 

 

 

 

(140

)

 

 

(185

)

Balance at end of period

 

 

 

$

7,213

 

 

$

7,353

 

XML 30 R19.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Debt
3 Months Ended
Mar. 31, 2024
Debt Disclosure [Abstract]  
Debt and Other Borrowings

11. Debt

On April 30, 2021, we entered into our Credit Facility with various lenders, including Barclays Bank PLC, as issuing lender, the swingline lender and as administrative agent providing aggregate commitments of up to $100.0 million. We had not made any draws on our Credit Facility as of March 31, 2024. However, as of March 31, 2024, we had $1.9 million in letters of credit outstanding that reduced our unused borrowing capacity to approximately $98.1 million. At March 31, 2024, we have deposited $1.9 million in an escrow account with Barclays related to our outstanding letters of credit, which is reflected as restricted cash in our condensed consolidated balance sheets.

Under the Credit Facility, we were required to maintain a liquidity level (defined as unrestricted cash and cash equivalents plus the available borrowing capacity under the Credit Facility) of no less than $125.0 million at each quarter end in order to utilize the Credit Facility. As of March 31, 2024, we were under the required minimum liquidity level thus not allowing us to continue to access our Credit Facility up to the available borrowing capacity. The Credit Facility provided for payment of commitment fees of 0.50% per annum on our unused borrowing capacity and outstanding letter of credit fees of 3.25% per annum during its term. During the three months ended March 31, 2024 and 2023, we incurred interest expense of $0.3 million in each period, for commitment and letter of credit fees, as well as amortization of costs relating to the establishment of the Credit Facility.

Our Credit Facility expired unused on April 30, 2024.

XML 31 R20.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Accrued Expenses and Other Current Liabilities
3 Months Ended
Mar. 31, 2024
Accrued Expenses and Other Current Liabilities Abstract  
Accrued Expenses and Other Current Liabilities

12. Accrued expenses and other current liabilities

Accrued expenses and other current liabilities consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Accrued cost of revenue

 

$

22,423

 

 

$

26,773

 

Related party accrued cost of revenue

 

 

1,370

 

 

 

1,451

 

Accrued compensation

 

 

3,650

 

 

 

3,858

 

Other accrued expenses

 

 

2,247

 

 

 

2,766

 

Total accrued expenses

 

$

29,690

 

 

$

34,848

 

 

 

 

 

 

 

 

Warranty reserves

 

$

6,992

 

 

$

7,279

 

Current portion of operating lease liability

 

 

742

 

 

 

740

 

Non-federal tax obligations

 

 

125

 

 

 

119

 

Total other current liabilities

 

$

7,859

 

 

$

8,138

 

 

Information relating to our related party accrued cost of revenue at March 31, 2024 and December 31, 2023 may be found below in Note 16, "Related party transactions".

Other accrued expenses primarily include amounts due for (i) legal costs associated with outstanding corporate or legal matters and (ii) other professional services.

Activity by period in the Company's warranty accruals was as follows:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Balance at beginning of period

 

$

11,002

 

 

$

12,426

 

Warranties issued and remediation added during the period

 

 

838

 

 

 

1,543

 

Settlements made during the period

 

 

(849

)

 

 

(1,103

)

Changes in liability for pre-existing warranties

 

 

(519

)

 

 

(309

)

Balance at end of period

 

$

10,472

 

 

$

12,557

 

 

 

 

 

 

 

 

Warranty accruals are reported in:

 

 

 

 

 

 

Other current liabilities

 

$

6,992

 

 

$

8,085

 

Other non-current liabilities

 

 

3,480

 

 

 

4,472

 

Balance at end of period

 

$

10,472

 

 

$

12,557

 

 

 

 

 

 

 

 

XML 32 R21.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Income Taxes
3 Months Ended
Mar. 31, 2024
Income Tax Disclosure [Abstract]  
Income Taxes

13. Income taxes

For the three months ended March 31, 2024 and 2023, we recorded an income tax benefit of $0.01 million and an income tax expense of $0.13 million respectively. These amounts for each period were lower than the statutory rate of 21%, primarily due to a valuation allowance established against the U.S. deferred tax assets.

We have had no material change in our unrecognized tax benefits since December 31, 2023. We recognize accrued interest and penalties related to unrecognized tax benefits as a component of income tax expense. As of March 31, 2024 and December 31, 2023, we had no accrued interest or penalties related to unrecognized tax benefits.

XML 33 R22.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Commitments and Contingencies
3 Months Ended
Mar. 31, 2024
Commitments and Contingencies Disclosure [Abstract]  
Commitments and Contingencies

14. Commitments and contingencies

We may become involved in various claims, lawsuits, investigations, and other proceedings, arising in the normal course of business. We accrue a liability when information available prior to the issuance of our financial statements indicates it is probable a loss has been incurred as of the date of the financial statements and the amount of loss can be reasonably estimated. If the reasonable estimate of the probable loss is a range, we record an accrual for the most likely estimate of the loss, or the low end of the range if there is no one best estimate. We adjust our accruals to reflect the impact of negotiation, settlements, rulings, advice of legal counsel and other information and events pertaining to a particular case. Legal costs are expensed as incurred.

In March of 2023, CBP issued notices of tariff assessment that indicated an action taken at the Import Specialist (i.e., the port) level with respect to merchandise imported from Thailand under entry number 004-1058562-5 (the “625 Assessment”) and entry number 004-1063793-9 (the “Original 939 Assessment”, and collectively with the 625 Assessment, the “Original CBP Assessments”). The Original CBP Assessments related to certain torque beams that are used in our Voyager+ product that were imported in 2022. In the Original CBP Assessments, CPB asserted that Section 301 China tariffs, Section 232 steel & aluminum tariffs, and antidumping and countervailing duties applied to the merchandise. Based on correspondence received to date from CBP and our calculations based on applicable duty and tariff rates, the 625 Assessment is currently for approximately $2.84 million. In September of 2023, CBP informed us (the "Revised 939 Assessment", and together with the 625 Assessment, the "Revised CBP Assessments") that the amount owed under the Original 939 Assessment was being revised downward to approximately $2.01 million. In particular, CBP accepted our position that the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, previously assessed under the Original 939 Assessment are not applicable as they are only applicable to articles that originate in China and that, in this case, the finished goods are products of Thailand.

Upon review of the facts involved, and in consultation with outside legal counsel, we believe that the remaining amounts claimed in the Revised CBP Assessments are incorrect. In particular, the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, are not applicable under the 625 Assessment for the same reason stated above with respect to the Revised 939 Assessment, which has been accepted by CBP. Moreover, with respect to both Revised CBP Assessments, we believe that the goods in question were properly classified as parts of structures at the time of importation and that when properly classified, the beams and other materials are not subject to Section 232 duties applicable to more basic steel products.

CBP has legally finalized both Revised CBP Assessments. We filed a formal protest for the 625 Assessment in September of 2023 and for the Revised 939 Assessment in March of 2024. Based on the above, and under the relevant accounting guidance related to loss contingencies, we have made no accrual for the amounts claimed by CBP as of March 31, 2024, as we do not consider these amounts to be a probable obligation, as such term is defined and interpreted under the relevant accounting guidance, for us at this time. However, because matters of this nature are subject to inherent uncertainties, and unfavorable rulings or developments, including future assessments of additional duties or tariffs owed in respect of other shipments or other materials beyond what is presently included in the Revised CBP Assessments, could occur despite our belief that the tariffs and duties asserted are incorrect, there can be no certainty that the Company may not ultimately incur charges that are not currently recorded as liabilities. Since the outcome of these matters cannot be predicted with certainty, the costs associated with them could have a material adverse effect on our consolidated results of operations, financial position, or liquidity.

XML 34 R23.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Stock-Based Compensation
3 Months Ended
Mar. 31, 2024
Share-Based Payment Arrangement [Abstract]  
Stock-Based Compensation

15. Stock-based compensation

Stock compensation expense for each period was as follows:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Cost of revenue

 

$

216

 

 

$

816

 

Research and development

 

 

81

 

 

 

249

 

Selling and marketing

 

 

44

 

 

 

384

 

General and administrative

 

 

1,298

 

 

 

3,441

 

Total stock compensation expense

 

$

1,639

 

 

$

4,890

 

XML 35 R24.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Related Party Transactions
3 Months Ended
Mar. 31, 2024
Related Party Transactions [Abstract]  
Related party transactions

16. Related party transactions

Transaction with Ayna.AI LLC

In February 2022, we engaged Ayna.AI LLC (as successor in interest to Fernweh Engaged Operator Company LLC) (“Ayna”) to support us with improvements to our processes and performance in various areas including design, sourcing, logistics, pricing, software and standard configuration. The foregoing engagement constituted a related party transaction as South Lake One LLC, an entity affiliated with Isidoro Quiroga Cortés, a member of our board of directors, and a holder of more than 5% of our outstanding capital stock, is an investor in Ayna. In addition, Discrimen LLC is an investor in Ayna, and Isidoro Quiroga Cortés is affiliated with that entity. Isidoro Quiroga Cortés is also on the board of directors of Ayna. On September 13, 2023, we executed a termination of the master services agreement and statement of work (collectively, the "Service Agreement") with Ayna and Fernweh Group LLC, the parent company of Fernweh Engaged Operator Company LLC.

For the three months ended March 31, 2023, we incurred $2.3 million of general and administrative expense, including expense relating to stock-based compensation awards, and made cash payments of $0.8 million associated with our engagement of Ayna.

Related party receivables and payables

We have related party receivables at March 31, 2024 and December 31, 2023, totaling $1.7 million and $0.9 million, respectively, for future material costs discounts contractually owed to us by Alpha Steel in connection with the expected receipt of manufacturing incentives available to Alpha Steel under the Inflation Reduction Act as costs are incurred by Alpha Steel to purchase raw materials and manufacture torque tubes and other products that will be used to fulfill purchase orders we issue to Alpha Steel.

We also have related party liabilities to Alpha Steel at March 31, 2024 and December 31, 2023, totaling $1.4 million and $1.5 million, respectively, for the accrued cost of revenue recognized on certain of our customer projects associated with the cost of products that are being manufactured for us by Alpha Steel.

During the three months ended March 31, 2024, we made vendor deposits of $1.6 million to Alpha Steel and received invoices from Alpha Steel totaling $1.6 million. Our balance of vendor deposits with Alpha Steel as of March 31, 2024 and December 31, 2023 is shown in Note 7, "Prepaids and other current assets" above as "Vendor deposits with related party". After payments and application of vendor deposits to invoices received, we owe $0.4 million to Alpha Steel, which is included in our accounts payable balance at March 31, 2024 (none at December 31, 2023) in our condensed consolidated balance sheets.

XML 36 R25.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Net Loss Per Share
3 Months Ended
Mar. 31, 2024
Earnings Per Share [Abstract]  
Net Loss Per Share

17. Net loss per share

 

 

Three months ended March 31,

 

 

2024

 

 

2023

 

Net loss (in thousands)

 

$

(8,771

)

 

$

(11,762

)

Weighted average shares outstanding for calculating basic and diluted loss per share

 

 

125,569,375

 

 

 

106,791,198

 

Basic and diluted loss per share

 

$

(0.07

)

 

$

(0.11

)

 

 

 

 

 

 

 

For purposes of computing diluted loss per share, weighted average common shares outstanding do not include potentially dilutive securities that are anti-dilutive, as shown below.

 

 

For the three months ended March 31,

 

 

 

2024

 

 

2023

 

Anti-dilutive securities excluded from calculating dilutive loss per share:

 

 

 

 

 

 

Shares of common stock issuable under stock option plans outstanding

 

 

2,427,526

 

 

 

6,544,725

 

Shares of common stock issuable upon vesting of RSUs

 

 

12,178,375

 

 

 

6,612,849

 

Potential common shares excluded from diluted net loss per share calculation

 

 

14,605,901

 

 

 

13,157,574

 

XML 37 R26.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Subsequent Events
3 Months Ended
Mar. 31, 2024
Subsequent Events [Abstract]  
Subsequent events

18. Subsequent events

On April 3, 2024, we entered into a First Amendment (“the Amendment”) to Master Project Supply Agreements dated October 11, 2021 with a customer and major solar project developer. As of March 31, 2024, our customer owed us approximately $30.8 million for project equipment we had previously completed and made available to the customer pursuant to the Master Project Supply Agreements. The Amendment was executed in consideration of and concurrent with the sale of the uncompleted projects by our customer, including the amended Master Project Supply Agreements, to a new third-party developer (“the Purchaser”), who will assume certain obligations to us under the amended Master Project Supply Agreements.

Pursuant to the Amendment, the only completed project equipment that will be provided to the Purchaser are foundation piles. All remaining equipment completed and made available to our customer under the original Master Project Supply Agreements will be retained by us and returned to our inventory in exchange for forgiveness of the associated outstanding receivable balance owed by our customer, to the extent of the current fair value of the retained equipment, which approximated $13.2 million. During the three months ended March 31, 2024, we recorded an additional estimated credit loss provision of $0.7 million to recognize the difference between the receivable balance owed us and the expected cash to be received from the Purchaser plus the current estimated fair value of the equipment that would be added to our inventory pursuant to this Amendment. At March 31, 2024, we had a total credit loss reserve relating to this customer of approximately $9.0 million.

Upon execution of the Amendment, we received a cash payment of $9.0 million from the Purchaser to acquire the foundation piles and we anticipate receiving certain additional amounts for temporary storage and upon final delivery to the project sites, which is expected to occur no later than the fourth quarter of 2024.

XML 38 R27.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Summary of significant accounting policies (Policies)
3 Months Ended
Mar. 31, 2024
Accounting Policies [Abstract]  
Basis of presentation and principles of consolidation

Basis of presentation and principles of consolidation

The accompanying unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries and have been prepared in accordance with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial statements and pursuant to Form 10-Q and Article 10 of Regulation S-X. In the opinion of management, all adjustments of a normal recurring nature have been made that are considered necessary for a fair statement of our financial position as of March 31, 2024, and December 31, 2023, our results of operations for the three months ended March 31, 2024 and 2023, and our cash flows for the three months ended March 31, 2024 and 2023. The condensed consolidated balance sheet as of December 31, 2023 has been derived from the Company’s audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America. Operating results for the three months ended March 31, 2024 are not necessarily indicative of the results that may be expected for the year ending December 31, 2024. Intercompany balances and transactions have been eliminated in consolidation.

Certain information and disclosures normally included in the notes to annual financial statements prepared in accordance with U.S. GAAP have been omitted from these interim financial statements pursuant to the rules and regulations of the Securities and Exchange Commission (the “SEC”). Therefore, these unaudited condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and related notes included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2023 (our "2023 Annual Report").

We currently operate in one business segment, the manufacturing and servicing of solar tracker systems
Liquidity

Liquidity

We have incurred cumulative losses since inception and have a history of cash outflows from operations. As of March 31, 2024, we had $14.0 million of cash on hand, $45.7 million of working capital and approximately $64.9 million of remaining capacity available for future sales of our common stock under our ATM program as defined and described further in Note 4 below. There can be no assurance that we will be able to sell any additional shares of our common stock under the ATM program and no assurance regarding the price at

which we will be able to sell such shares, and any sales of our common stock under the ATM program may be at prices that result in additional dilution to our existing stockholders. On December 22, 2023, we received notification from The Nasdaq Stock Market LLC (“Nasdaq”) that we were not in compliance with the requirement to maintain a minimum closing bid price of $1.00 per share, as set forth in Nasdaq Listing Rule 5450(a)(1), because the closing bid price of the Company’s common stock was below $1.00 per share for 30 consecutive business days. The notification does not impact the listing of our common stock on the Nasdaq Global Market at this time.

In accordance with Nasdaq Listing Rule 5810(c)(3)(A), we have a period of 180 calendar days from the date of notification, or until June 19, 2024, to regain compliance with the minimum bid price requirement. During this period, our common stock will continue to trade on the Nasdaq Global Market. If at any time before June 19, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq will provide written notification that we have achieved compliance with this minimum bid price requirement.

In the event we do not regain compliance by June 19, 2024, we may be eligible for an additional 180 calendar day compliance period to demonstrate compliance with the minimum bid price requirement. To qualify for the additional 180-day period, we may be required to meet the continued listing requirements for market value of publicly held shares and all other initial listing standards (with the exception of the bid price requirement) and transfer our listing to the Nasdaq Capital Market. In addition, we will need to provide written notice to Nasdaq of our intention to cure the deficiency during the second compliance period by effecting a reverse stock split, if necessary. If we do not qualify for the second compliance period or fail to regain compliance during the second 180-day period, then Nasdaq will notify us that our common stock is subject to delisting.

As of March 31, 2024, we were not in compliance with the minimum liquidity covenant in our existing Senior Secured Revolving Credit Facility (the "Credit Facility") which prevented us from borrowing under the Credit Facility prior to its termination on April 30, 2024.

Also, as of March 31, 2024, we had a material contractual obligation that could require us to make additional capital contributions of up to $1.6 million to Alpha Steel, as described further in Note 3, "Equity method investment".

The most notable incentive program impacting our U.S. business has historically been the investment tax credit ("ITC") for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between 30% and 50%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program.

We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" below.

Similar to previous periods, we continue to evaluate our opportunities in 2024 to address existing market challenges, our cost structure and our historical use of cash. Further, in 2023, we introduced a new mounting solution to support the installation and use of U.S.-manufactured thin-film modules, Pioneer, our 1P solar tracker solution became certified, and we introduced SUNOPS, a cloud-based, tracker agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. Additionally, we have seen improvements in the logistics markets and easing of supply chain constraints since 2022. These factors contributed to us having positive gross profit during each quarter in 2023, a first since our IPO in April 2021.

In accordance with Accounting Standards Codification ("ASC") 205-40, Going Concern, we have evaluated whether there are conditions and events, considered in the aggregate, which raise substantial doubt about our ability to continue as a going concern within one year after the date our condensed consolidated financial statements are issued.

Management believes that our existing cash on hand, including cash received in April 2024 as a result of our agreement with a major customer as discussed further in Note 18, "Subsequent events" below, as well as the continuing impact of certain of the actions described above and our expectations of (i) improved market conditions, (ii) the expected timing of customer project activity, including activity related to certain large project awards received in 2023, and (iii) positive results in recent periods from our efforts to increase our direct product margins, will allow us to grow profitably and generate positive cash flow from operations during the next twelve months in amounts that will be sufficient, along with our other available resources such as our existing working capital and, if conditions become more conducive, the remaining capacity available for future sales of our common stock under our ATM program, to fund our operations for at least one year from the date of issuance of the condensed consolidated financial statements.

While there are already many underlying drivers of growth in the solar industry, the expected positive impact on demand for our products, or the timing of construction activity by existing customers and solar project developers, could take longer than expected to occur. In addition, domestic and international market conditions could deteriorate significantly from what we currently expect, and regulatory and international trade policies could become more stringent as a result of (i) findings from an ongoing investigation by the U.S. Department of Commerce (the Solar Circumvention Investigation") in response to a petition by Auxin Solar, Inc. of claims related to alleged circumvention of U.S. antidumping and countervailing duties ("AD/CVD") by solar manufacturers in certain Southeast Asian countries, (ii) enforcement of the Uyghur Forced Labor Prevention Act ("UFLPA") passed by the U.S. Congress and signed into law by President Biden on December 23, 2021, by U.S. Customs and Border Protection ("CBP'), and (iii) other factors, which may result in a need for us to issue additional debt or obtain new equity financing to adequately fund our existing operations beyond the next twelve months. We continue to actively explore options to obtain additional sources of capital through the issuance of new debt, asset financing or other potential measures for our longer-term needs. However, we may be unable to obtain any desired additional financing on terms favorable to us, or at all, depending on market and other conditions, which could result in curtailment of our current operations and our ability to further invest in our products and new technology. The ability to raise additional financing depends on numerous factors, some of which that are outside of our control, including macroeconomic factors such as the impact of inflation, the level of interest rates, supply chain or other effects from the ongoing conflicts in the Ukraine and the Middle East, general market conditions, the health of financial institutions (including recent bankruptcies and financial difficulties involving certain regional banks and related impacts that have occurred and continue to occur in the banking industry), investors' and lenders' assessments of our prospects and the prospects of the solar industry in general and the ability of our common stock to continue to trade in active markets.

Use of estimates

Use of estimates

Preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported revenue and expenses during the period. Estimates are used for calculating the measure of progress of our solar tracker projects and deriving the standalone selling prices of the individual performance obligations when determining amounts to recognize for revenue, estimating allowances for credit losses and slow-moving and obsolete inventory, determining useful lives of long-lived assets and the estimated fair value of those assets for impairment assessments, and estimating the fair value of investments, stock compensation awards, warranty liabilities and federal and state taxes, including tax valuation allowances, as well as other contingencies. We base our estimates on historical experience and anticipated results, trends, and various other assumptions that we believe are reasonable under the circumstances, including assumptions as to future events. Actual results could differ from those estimates due to risks and uncertainties.

Concentration of credit risk

Concentration of credit risk

Financial instruments that potentially subject the Company to concentrations of credit risk are primarily cash and accounts receivable.

We regularly maintain cash balances with various financial institutions that exceed federally insured amounts, but we have experienced no losses associated with these amounts to date. We also took action in early 2023 to reallocate cash balances between different financial institutions based on our assessment as to the financial health of certain institutions.

We extend credit to customers in the normal course of business, often without requiring collateral. We also perform credit analyses and monitor the financial health of our customers to reduce credit risk.

The Company’s accounts receivables are derived from revenue earned from customers primarily located in the U.S. and Australia. No countries other than the U.S. and Australia accounted for 10% or more of our revenue. Most of our customers are project developers, solar asset owners and engineering, procurement and construction (“EPC”) contractors that design and build solar energy projects. We typically rely on a small number of customers that account for a large portion of our revenue each period and our outstanding receivables at each period end.

Cash and cash equivalents

Cash and cash equivalents

We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents. Certain of our cash equivalents include deposits in money market funds that invest primarily in short-term securities issued or guaranteed by the U.S. government or its agencies or instrumentalities and contain no restrictions on immediate redemption. These deposits totaled $9.3 million at March 31, 2024 and $13.9 million at December 31, 2023. Interest earned on cash equivalents is included in interest income, which is reported net of interest expense in our condensed consolidated statements of comprehensive loss
Restricted Cash

Restricted cash

Cash balances that are legally, contractually or otherwise restricted as to withdrawal or usage are considered restricted cash
Accounts receivable, net

Accounts receivable, net

Trade receivables are recorded at invoiced amounts, net of allowances for credit losses, and do not bear interest. We generally do not require collateral from our customers; however, in certain circumstances, we may require letters of credit, other collateral, additional guarantees or advance payments.

The allowance for credit losses is based on the lifetime expected credit loss of our customer accounts. To assess the lifetime expected credit loss, we utilize a loss rate method that takes into consideration historical experience and certain other factors, as appropriate, such as credit quality and current economic or other conditions that may affect a customer's ability to pay. Provisions for credit losses are included as a component of our selling and marketing expenses.

Receivables arising from revenue recognized in excess of billings represents our unconditional right to consideration before customers are invoiced due to the level of progress obtained as of period end on our contracts to procure and deliver tracker systems and related equipment. Further information may be found below in our revenue recognition policy.

Inventories, net

Inventories, net

Inventories are stated at the lower of cost or net realizable value, with costs computed on a first-in, first-out basis. The Company periodically reviews its inventories for excess and obsolete items and adjusts carrying costs to estimated net realizable values when they are determined to be less than cost.

Impairment

Impairment

We review our long-lived assets that are held for use for impairment whenever events or changes in circumstances indicate that the carrying amount of the asset may not be recoverable or that its useful life may be shorter than previously expected. If such impairment indicators are present or other factors exist that indicate the carrying amount of the asset may not be recoverable, we determine whether an impairment has occurred through the use of an undiscounted cash flow analysis of the asset at the lowest level for which identifiable cash flows exist. If an impairment has occurred, we recognize a loss for the difference between the carrying amount and the fair value of the asset, which in most cases is estimated based upon Level 3 unobservable inputs. If the asset is determined to have a remaining useful life shorter than previously expected, an adjustment for the shorter remaining life will be made for purposes of recognizing future depreciation expense. Assets are classified as held for sale when we have a plan, approved by the appropriate levels of management, for disposal of such assets, as well as other considerations, and those assets are stated at the lower of carrying value or estimated fair value less estimated costs to sell.

Intangible assets, net

Intangible assets, net

Intangible assets are recorded at fair value when acquired in connection with a business combination and consist of developed technology in the form of software tools, licenses, and intellectual property, which are amortized over the period of their estimated useful lives, generally 2.5 - 3.0 years, using the straight-line method. Costs incurred to renew or extend the term of a recognized intangible asset, if any, are expensed as incurred. We evaluate intangible assets for impairment using the method described above under "Impairment".

Goodwill

Goodwill

We recognize goodwill as the excess of the purchase price over the estimated fair value of the identified assets and liabilities acquired in a business combination accounted for using the acquisition method. Goodwill is not amortized but is subject to a periodic assessment for impairment at least annually, or whenever events and circumstances indicate an impairment may exist. Our assessments may include qualitative factors such as current or expected industry and market conditions, our overall financial performance, share price trends, market capitalization and other company-specific events.

We operate in one segment, being the consolidated entity, which we have also determined is the reporting unit for goodwill impairment.

No impairment of goodwill was recognized as of March 31, 2024 or 2023.

Equity method investments

Equity method investment

We use the equity method of accounting for investments in which we have the ability to exercise significant influence, but not control, over operating and financial policies of the investee. Our proportionate share of the net income or loss of these investees is included in our condensed consolidated statements of comprehensive loss. Judgment regarding the level of influence over each equity method investment includes considering key factors such as our ownership interest, legal form of the investee, representation on the board of directors or managers, participation in policy-making decisions and material intra-entity transactions.

We account for distributions received from equity method investees under the “nature of the distribution” approach based on the nature of the activity or activities of the investee that generated the distribution as either a return on investment (classified as cash inflows from operating activities) or a return of investment (classified as cash inflows from investing activities).

We evaluate equity method investments for impairment whenever events or changes in circumstances indicate that the carrying amount of the investment might not be recoverable. Factors considered by the Company when reviewing an equity method investment for impairment include the length of time and the extent to which the fair value of the equity method investment has been less than its cost, the investee’s financial condition and near-term prospects and the intent and ability to hold the investment for a period of time sufficient to allow for anticipated recovery. An impairment that is other-than temporary is recognized in the period identified.

We made an accounting policy election that, upon the sale of our equity method investments, we will recognize contractual contingent gains arising from earnout provisions and project escrow releases when such amounts are realizable in periods subsequent to the disposal date.

Warranty

Warranty

Typically, the sale of solar tracker projects includes parts warranties to customers as part of the overall price of the product. We provide standard assurance type warranties for our products for periods generally ranging from five to ten years. We also accrue for costs relating to remediation efforts involving product issues we believe require correction. We record a provision for estimated warranty and remediation expenses in cost of sales, net of amounts recoverable from manufacturers under their warranty obligations to us. When historical claims information relating to our equipment is not sufficient, we will base our estimates on industry studies involving the nature and frequency of product failure rates for similar parts used by our competitors, as well as other related businesses. We do not maintain general or unspecified reserves; all warranty reserves are related to specific projects. All actual or estimated material costs incurred for warranty or remediation services in subsequent periods are charged to those established reserves.

While we periodically monitor our warranty activities and claims, if actual costs incurred were to be different from our estimates, we would recognize adjustments to our warranty reserves in the period in which those differences arise or are identified.

Stock-based compensation

Stock-based compensation

We recognize compensation expense for all share-based payment awards made, including stock options and restricted stock units ("RSUs"), based on the estimated fair value of the award on the grant date. We calculate the fair value of stock options using the Black-Scholes option pricing model for awards with service-based vesting or through use of a lattice model or a Monte Carlo simulation for stock option and RSU awards with market conditions. The fair value of RSUs with service or performance-based vesting is based on the estimated fair value of the Company's common stock on the date of grant. We consider the closing price of our stock, as reported on the Nasdaq Global Market, to be the fair value of our stock on the grant date.

Forfeitures are accounted for as they occur. For service-based awards, stock-based compensation is recognized using the straight-line attribution approach over the requisite service period. For performance-based awards, stock-based compensation is recognized based on graded vesting over the requisite service period when the performance condition is probable of being achieved. Stock compensation expense for market-based awards is recognized over the derived service period determined in the valuation model, inclusive of any vesting conditions.

Revenue recognition

Revenue recognition

Product revenue is derived from the sale of solar tracker systems and customized components for those systems, individual part sales for certain specific transactions and the sale of term-based software licenses. Term-based licensed software is deployed on the customers’ own servers and has significant standalone functionality.

Service revenue includes revenue from shipping and handling services, engineering consulting and pile testing services, our subscription-based enterprise licensing model and maintenance and support services in connection with the term-based software licenses. Our subscription-based enterprise licensing model typically has contract terms ranging from one to two years and consists of subscription fees from the licensing of subscription services. Our hosted on-demand service arrangements do not provide customers with the right to take possession of the software supporting the hosted services. Support services include ongoing security updates, upgrades, bug fixes, and maintenance.

We recognize revenue when promised goods or services are transferred to customers in an amount that reflects the consideration to which we expect to be entitled to in exchange for those goods or services by following a five-step process: (1) identify the contract with a customer, (2) identify the performance obligations in the contract, (3) determine the transaction price, (4) allocate the transaction price to the performance obligations in the contract, and (5) recognize revenue when or as the Company satisfies a performance obligation, as further described below.

Identify the contract with a customer: A contract with a customer exists when (i) the Company enters into an enforceable contract with a customer that defines each party’s rights regarding the products and services to be transferred and identifies the payment terms related to these products and services, (ii) the contract has commercial substance, and (iii) the Company determines that collection of substantially all consideration for products and services that are transferred is probable based on the customer’s intent and ability to pay the promised consideration. In assessing the recognition of revenue, we also evaluate whether two or more contracts should be combined and accounted for as one contract and if the combined or single contract should be accounted for as multiple performance obligations which could change the amount of revenue and profit (loss) recorded in a period. Change orders may include changes in specifications or design, manner of performance, equipment, materials, scope of work, and/or the period of completion of the project. We analyze change orders to determine if they should be accounted for as a modification to an existing contract or a new stand-alone contract.

Contracts we enter into with our customers for sale of solar tracker systems are generally under two different types of arrangements: (1) purchase agreements and equipment supply contracts (“Purchase Agreements”), and (2) sale of individual parts for those systems.

Change orders from our customers are generally modifications to existing contracts and are included in the total estimated contract revenue when it is probable that the change order will result in additional value that can be reliably estimated and realized.

Identify the performance obligations in the contract: We enter into contracts that can include various combinations of products and services, which are either capable of being distinct and accounted for as separate performance obligations or as one performance obligation since the majority of tasks and services are part of a single project or capability. However, determining whether products or services are considered distinct performance obligations that should be accounted for separately versus together may sometimes require significant judgment.

Our Purchase Agreements typically include two performance obligations: 1) our solar tracker systems or customized components of those systems, and 2) shipping and handling services. The deliverables included as part of our solar tracker systems are predominantly accounted for as one performance obligation, as these deliverables are part of a combined promise to deliver a project.

The revenue for shipping and handling services will be recognized over time based on progress in meeting shipping terms of the arrangements, as this faithfully depicts the Company’s performance in transferring control. Revenue for stand-alone engineering consulting and pile testing services is recognized at a point in time upon completion of the services performed.

Sales of individual parts of our solar tracker systems for certain specific transactions include multiple performance obligations consisting of individual parts of those systems. Revenue is recognized for parts sales at a point in time when the obligations under the terms of the contract with our customer are satisfied. Generally, this occurs with the transfer of control of the asset, which is in line with shipping terms.

Determine the transaction price: The transaction price is determined based on the consideration to which we will be entitled in exchange for transferring services to the customer. Such amounts are typically stated in the customer contract, and to the extent that we identify variable consideration, we will estimate the variable consideration at the onset of the arrangement as long as it is probable that a significant reversal in the amount of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is subsequently resolved. The majority of our contracts do not contain variable consideration provisions as a continuation of the original contract. None of our contracts contain a significant financing component. Taxes collected from customers and remitted to governmental authorities are not included in revenue.

Allocate the transaction price to performance obligations in the contract: Once we have determined the transaction price, we allocate the total transaction price to each performance obligation in a manner depicting the amount of consideration to which we expect to be entitled in exchange for transferring the good(s) or service(s) to the customer. We allocate the transaction price to each performance obligation identified in the contract on a relative standalone selling price basis.

We use the expected cost-plus margin approach based on hardware, labor, and related overhead cost to estimate the standalone selling price of our solar tracker systems, customized components of those systems, and individual parts for certain specific transactions. We also use the expected cost-plus margin approach based on expected third-party shipping and transportation costs to estimate the standalone selling price of our shipping, handling and logistics performance obligations. We use the adjusted market assessment approach for all other performance obligations.

Recognize revenue when or as the Company satisfies a performance obligation: For each performance obligation identified, we determine at contract inception whether we satisfy the performance obligation over time or at a point in time. The performance obligations in the contracts for our solar tracker systems and customized components of those systems are satisfied over time as work progresses, utilizing an input measure of progress determined by cost-to-cost measures on these projects as this faithfully depicts our performance in transferring control. Additionally, our performance does not create an asset with an alternative use, due to the highly customized nature of the product, and we have an enforceable right to payment for performance completed to date. Our performance obligations for individual part sales for certain specific transactions are recognized at a point in time as and when control transfers based on the Incoterms for the contract. Our performance obligations for engineering consulting and pile testing services are recognized at a point in time upon completion of the services. Our performance obligations for term-based software licenses are recognized at a point in time as and when control transfers, either upon delivery to the customer or the software license start date, whichever is later. Our performance obligations for shipping and handling services are satisfied over time as the services are delivered over the term of the contract. We recognize revenue for subscription and other services on a straight-line basis over the contract period. With regard to support revenue, a time-elapsed method is used to measure progress because we transfer control evenly over the contractual period. Accordingly, the fixed consideration related to support revenue is generally recognized on a straight-line basis over the contract term.

Contract assets and liabilities: The timing of revenue recognition, billing, and cash collection results in the recognition of accounts receivable, unbilled receivables for revenue recognized in excess of billings, and deferred revenue in the condensed consolidated balance sheets. We have elected to use the practical expedient of expensing incremental costs of obtaining a contract as incurred since the majority of the performance obligations in our contracts are satisfied in less than one year. We may receive advances or deposits from our customers before revenue is recognized, resulting in contract liabilities, which are reflected as “deferred revenue” in our condensed consolidated balance sheets. Customer deposits are short term as the related performance obligations are typically fulfilled within 12 months. Changes in deferred revenue relate to fluctuations in the timing of customer deposits and completion of performance obligations. Revenue recognized during the three months ended March 31, 2024 and 2023, from amounts included in deferred revenue at December 31, 2023 and December 31, 2022, totaled $2.4 million and $7.6 million, respectively.

Cost of revenue consists primarily of costs related to raw materials, equipment manufacturing activities, freight and delivery, product warranty, remediation and personnel costs (salaries, bonuses, benefits, and stock-based compensation). Personnel costs in cost of revenue include both direct labor costs, as well as costs attributable to any individuals whose activities relate to the procurement, installment and delivery of the finished product and services. Cost of revenue owed but not yet paid is recorded as accrued cost of revenue in the accompanying condensed consolidated financial statements. Deferred cost of revenue results from the timing differences between the costs incurred in advance of the satisfaction of all revenue recognition criteria consistent with our revenue recognition policy.

Recent accounting pronouncements adopted

Recent accounting and regulatory pronouncements not yet adopted

In November 2023, the Financial Accounting Standards Board ("FASB") issued ASU No. 2023-07 - Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures ("ASU 2023-07"), which will become effective for us for our year end 2024 financial reporting and our interim reporting beginning January 1, 2025. ASU 2023-07 requires public companies to disclose significant segment expenses and other segment items on an annual and interim basis and will require interim disclosures about a reportable segment's profit or loss and assets that are currently required annually. As noted above, we operate in one segment. We are currently evaluating the impact of ASU 2023-07 on our existing disclosures. ASU 2023-07 will be applied retrospectively to all periods when presented in our consolidated financial statements for the year ending December 31, 2024.

In December 2023, the FASB issued ASU No. 2023-09 - Income Taxes (Topic 740): Improvements to Income Tax Disclosures ("ASU 2023-09"). ASU 2023-09 requires companies to disclose (i) additional categories of information about federal, state and foreign income taxes above a quantitative threshold in their rate reconciliation table and (ii) income taxes paid, net of refunds, disaggregated by federal, state and foreign taxes for annual periods, as well as other disclosure changes. As an emerging growth company, we are not required to adopt ASU 2023-09 prior to 2026, although earlier adoption is permitted. We are currently evaluating the impact of ASU 2023-09 on our existing income tax disclosures.

In March 2024, the U.S. Securities and Exchange Commission ("SEC") adopted the final rule under SEC Release No. 33-11275, The Enhancement and Standardization of Climate-Related Disclosures for Investors. This rule would require registrants to disclose certain climate-related information in registration statements and annual reports. In April 2024, the SEC issued a stay of the final rules pending a judicial review of the validity of the rules by the Eighth Circuit Court of Appeals. We are currently evaluating the final rule to determine its impact on our disclosures.

Other standards or regulatory requirements that have been issued but not yet adopted as of March 31, 2024, are either not applicable to us or are not expected to have any material impact upon adoption.

Reclassifications

Reclassifications

Certain prior year amounts have been reclassified to conform to the current year presentation. There was no impact on our financial condition or results of operations as a result of the reclassification.

XML 39 R28.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Accounts receivable, net (Tables)
3 Months Ended
Mar. 31, 2024
Accounts Receivable, after Allowance for Credit Loss [Abstract]  
Schedule of accounts receivable, net

Accounts receivable consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Trade receivables

 

$

49,474

 

 

$

46,152

 

Related party receivables

 

 

1,672

 

 

 

868

 

Revenue recognized in excess of billings

 

 

24,456

 

 

 

26,813

 

Other receivables

 

 

4

 

 

 

3

 

Total

 

 

75,606

 

 

 

73,836

 

Allowance for credit losses

 

 

(9,227

)

 

 

(8,557

)

Accounts receivable, net

 

$

66,379

 

 

$

65,279

 

Schedule of Accounts Receivable Allowance for Credit Loss

Activity in the allowance for credit losses during the three months ended March 31, 2024 and 2023 was as follows:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Balance at beginning of period

 

$

8,557

 

 

$

1,184

 

Impact of adoption of ASU 2016-13, effective January 1, 2023

 

N/A

 

 

 

 

Additions charged to earnings during the period

 

 

670

 

 

 

 

Balance at end of period

 

$

9,227

 

 

$

1,184

 

 

 

 

 

 

 

 

XML 40 R29.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Inventories, net (Tables)
3 Months Ended
Mar. 31, 2024
Inventory Disclosure [Abstract]  
Schedule of Inventories

Inventories consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Finished goods

 

$

4,362

 

 

$

4,246

 

Allowance for slow-moving and obsolete inventory

 

 

(518

)

 

 

(341

)

Total

 

$

3,844

 

 

$

3,905

 

XML 41 R30.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Prepaid and other current assets (Tables)
3 Months Ended
Mar. 31, 2024
Prepaid Expense and Other Assets, Current [Abstract]  
Schedule of prepaid and other current assets

Prepaid and other current assets consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Vendor deposits

 

$

5,894

 

 

$

5,667

 

Vendor deposits with related party

 

 

1,504

 

 

 

520

 

Prepaid expenses

 

 

710

 

 

 

1,251

 

Prepaid taxes

 

 

471

 

 

 

447

 

Deferred cost of revenue

 

 

611

 

 

 

666

 

Surety collateral

 

 

55

 

 

 

 

Other current assets

 

 

4,824

 

 

 

5,538

 

Total

 

$

14,069

 

 

$

14,089

 

XML 42 R31.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Leases (Tables)
3 Months Ended
Mar. 31, 2024
Leases [Abstract]  
Summary of Lease Expense

Our expense for our operating leases consisted of the following:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Operating lease cost

 

$

309

 

 

$

229

 

Short-term lease cost

 

 

93

 

 

 

92

 

Total lease cost

 

$

402

 

 

$

321

 

 

 

 

 

 

 

 

Reported in:

 

 

 

 

 

 

Cost of revenue

 

$

236

 

 

$

215

 

Research and development

 

 

14

 

 

 

15

 

Selling and marketing

 

 

48

 

 

 

15

 

General and administrative

 

 

104

 

 

 

76

 

Total lease cost

 

$

402

 

 

$

321

 

Summary of Future Remaining Lease Payments Obligations

Future remaining operating lease payment obligations were as follows:

(in thousands)

 

March 31,
2024

 

Remainder of 2024

 

$

607

 

2025

 

 

755

 

2026

 

 

219

 

2027

 

 

192

 

2028

 

 

16

 

Total lease payments

 

 

1,789

 

Less: imputed interest

 

 

(113

)

Present value of operating lease liabilities

 

$

1,676

 

 

 

 

 

Current portion of operating lease liability

 

$

742

 

Operating lease liability, net of current portion

 

 

934

 

Present value of operating lease liabilities

 

$

1,676

 

XML 43 R32.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Property and equipment, net (Tables)
3 Months Ended
Mar. 31, 2024
Property, Plant and Equipment [Abstract]  
Schedule of property and equipment

Property and equipment consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Leasehold improvements

 

$

162

 

 

$

157

 

Field equipment

 

 

1,062

 

 

 

1,062

 

Information technology equipment

 

 

508

 

 

 

466

 

Tooling

 

 

1,381

 

 

 

1,014

 

Capitalized software

 

 

761

 

 

 

734

 

Total

 

 

3,874

 

 

 

3,433

 

Accumulated depreciation

 

 

(1,880

)

 

 

(1,610

)

Property and equipment, net

 

$

1,994

 

 

$

1,823

 

XML 44 R33.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Intangible assets, net and goodwill (Tables)
3 Months Ended
Mar. 31, 2024
Goodwill and Intangible Assets Disclosure [Abstract]  
Summary of intangible assets

Intangible assets consisted of the following:

(in thousands)

 

Estimated Useful Lives (Years)

 

March 31, 2024

 

 

December 31, 2023

 

Developed technology

 

2.5 3.0

 

$

2,529

 

 

$

2,555

 

Total

 

 

 

 

2,529

 

 

 

2,555

 

Accumulated amortization

 

 

 

 

(2,130

)

 

 

(2,013

)

Intangible assets, net

 

 

 

$

399

 

 

$

542

 

Schedule of goodwill activity

During the three months ended March 31, 2024 and 2023, activity in our goodwill balance was as follows:

 

 

 

 

Three months ended March 31,

 

(in thousands)

 

 

 

2024

 

 

2023

 

Balance at beginning of period

 

 

 

$

7,353

 

 

$

7,538

 

Translation

 

 

 

 

(140

)

 

 

(185

)

Balance at end of period

 

 

 

$

7,213

 

 

$

7,353

 

XML 45 R34.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Accrued Expenses and Other Current Liabilities (Tables)
3 Months Ended
Mar. 31, 2024
Accrued Expenses and Other Current Liabilities Abstract  
Schedule of Accrued Expenses and Other Current Liabilities

Accrued expenses and other current liabilities consisted of the following:

(in thousands)

 

March 31, 2024

 

 

December 31, 2023

 

Accrued cost of revenue

 

$

22,423

 

 

$

26,773

 

Related party accrued cost of revenue

 

 

1,370

 

 

 

1,451

 

Accrued compensation

 

 

3,650

 

 

 

3,858

 

Other accrued expenses

 

 

2,247

 

 

 

2,766

 

Total accrued expenses

 

$

29,690

 

 

$

34,848

 

 

 

 

 

 

 

 

Warranty reserves

 

$

6,992

 

 

$

7,279

 

Current portion of operating lease liability

 

 

742

 

 

 

740

 

Non-federal tax obligations

 

 

125

 

 

 

119

 

Total other current liabilities

 

$

7,859

 

 

$

8,138

 

 

Schedule of warranty accruals

Activity by period in the Company's warranty accruals was as follows:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Balance at beginning of period

 

$

11,002

 

 

$

12,426

 

Warranties issued and remediation added during the period

 

 

838

 

 

 

1,543

 

Settlements made during the period

 

 

(849

)

 

 

(1,103

)

Changes in liability for pre-existing warranties

 

 

(519

)

 

 

(309

)

Balance at end of period

 

$

10,472

 

 

$

12,557

 

 

 

 

 

 

 

 

Warranty accruals are reported in:

 

 

 

 

 

 

Other current liabilities

 

$

6,992

 

 

$

8,085

 

Other non-current liabilities

 

 

3,480

 

 

 

4,472

 

Balance at end of period

 

$

10,472

 

 

$

12,557

 

 

 

 

 

 

 

 

XML 46 R35.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Commitments and Contingencies (Tables)
3 Months Ended
Mar. 31, 2024
Commitments and Contingencies Disclosure [Abstract]  
Summary of Changes in Product Warranty Reserves

Activity by period in the Company's warranty accruals was as follows:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Balance at beginning of period

 

$

11,002

 

 

$

12,426

 

Warranties issued and remediation added during the period

 

 

838

 

 

 

1,543

 

Settlements made during the period

 

 

(849

)

 

 

(1,103

)

Changes in liability for pre-existing warranties

 

 

(519

)

 

 

(309

)

Balance at end of period

 

$

10,472

 

 

$

12,557

 

 

 

 

 

 

 

 

Warranty accruals are reported in:

 

 

 

 

 

 

Other current liabilities

 

$

6,992

 

 

$

8,085

 

Other non-current liabilities

 

 

3,480

 

 

 

4,472

 

Balance at end of period

 

$

10,472

 

 

$

12,557

 

 

 

 

 

 

 

 

XML 47 R36.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Stock-based Compensation (Tables)
3 Months Ended
Mar. 31, 2024
Share-Based Payment Arrangement [Abstract]  
Schedule of Stock compensation expense

Stock compensation expense for each period was as follows:

 

 

Three months ended March 31,

 

(in thousands)

 

2024

 

 

2023

 

Cost of revenue

 

$

216

 

 

$

816

 

Research and development

 

 

81

 

 

 

249

 

Selling and marketing

 

 

44

 

 

 

384

 

General and administrative

 

 

1,298

 

 

 

3,441

 

Total stock compensation expense

 

$

1,639

 

 

$

4,890

 

XML 48 R37.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Net Loss Per Share (Tables)
3 Months Ended
Mar. 31, 2024
Earnings Per Share [Abstract]  
Schedule of Computation of Basic and Diluted Income (Loss) Per Share

 

 

Three months ended March 31,

 

 

2024

 

 

2023

 

Net loss (in thousands)

 

$

(8,771

)

 

$

(11,762

)

Weighted average shares outstanding for calculating basic and diluted loss per share

 

 

125,569,375

 

 

 

106,791,198

 

Basic and diluted loss per share

 

$

(0.07

)

 

$

(0.11

)

 

 

 

 

 

 

 

Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share

For purposes of computing diluted loss per share, weighted average common shares outstanding do not include potentially dilutive securities that are anti-dilutive, as shown below.

 

 

For the three months ended March 31,

 

 

 

2024

 

 

2023

 

Anti-dilutive securities excluded from calculating dilutive loss per share:

 

 

 

 

 

 

Shares of common stock issuable under stock option plans outstanding

 

 

2,427,526

 

 

 

6,544,725

 

Shares of common stock issuable upon vesting of RSUs

 

 

12,178,375

 

 

 

6,612,849

 

Potential common shares excluded from diluted net loss per share calculation

 

 

14,605,901

 

 

 

13,157,574

 

XML 49 R38.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Summary of Significant Accounting Policies - Additional Information (Details)
$ / shares in Units, $ in Thousands
3 Months Ended
Dec. 22, 2023
Days
$ / shares
Aug. 16, 2022
Mar. 31, 2024
USD ($)
Days
$ / shares
Mar. 31, 2023
USD ($)
Dec. 31, 2023
USD ($)
$ / shares
Sep. 14, 2022
USD ($)
Accumulated deficit     $ (307,906)   $ (299,135)  
Net cash used in operating activities     11,857 $ 8,316    
Cash     14,000      
Working capital     45,700      
Common stock, reserved for future issuance, value     $ 64,900      
Consecutive business days | Days 30   10      
Description of closing bid pric of our common stock     If at any time before June 19, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq will provide written notification that we have achieved compliance with this minimum bid price requirement.      
Concentrations of credit risk, percentage     10.00%      
Warranty description     We provide standard assurance type warranties for our products for periods generally ranging from five to ten years      
Impairment of goodwill     $ 0 0    
Revenue recognized included in deferred revenue     $ 2,400 7,600    
Common stock, par value | $ / shares     $ 0.0001   $ 0.0001  
Money Market Funds, at Carrying Value     $ 9,300   $ 13,900  
Stock based compensation expense     1,639 4,890    
General and administrative     6,567 $ 10,799    
ATM Program [Member]            
Common stock, reserved for future issuance, value     $ 64,900      
Common Stock Value Authorized           $ 100,000
Minimum [Member]            
Closing bid price | $ / shares $ 1   $ 1      
Investment tax credit, percentage   30.00%        
Intangible assets, estimated useful life     2 years 6 months      
Product warranty life     5 years      
Subscription revenue contract terms     1 year      
Maximum [Member]            
Investment tax credit, percentage   50.00%        
Intangible assets, estimated useful life     3 years      
Product warranty life     10 years      
Subscription revenue contract terms     2 years      
Maximum [Member] | Alpha Steel            
Additional capital contribution     $ 1,600      
XML 50 R39.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Equity method investment - Additional Information (Details) - USD ($)
$ in Thousands
3 Months Ended
Jul. 28, 2023
Mar. 31, 2024
Mar. 31, 2023
Dec. 31, 2023
Feb. 09, 2023
Schedule of Equity Method Investments [Line Items]          
Loss from unconsolidated subsidiary   $ (265) $ 0    
Placing Purchase Orders   Pursuant to the Supply Agreement, we have committed to placing a minimum level of purchase orders for torque tubes with Alpha Steel during the year ended December 31, 2024, with such volume commitments increasing in each of the next two annual periods.      
Net Profit Attributable   $ 4,000      
Purchase Obligation Percentage   6.00%      
Taihua New Energy [Member]          
Schedule of Equity Method Investments [Line Items]          
Ownership percentage         51.00%
DAYV LLC [Member]          
Schedule of Equity Method Investments [Line Items]          
Ownership percentage         4.00%
Alpha Steel          
Schedule of Equity Method Investments [Line Items]          
Additional Interest Rate Above Prime 2.00%        
Ownership percentage         45.00%
Capital Contribution       $ 900  
Additional capital contributions   $ 1,000      
Potential Future Capital Contributions   1,600      
Loss from unconsolidated subsidiary   300      
Liability For Unpaid Claims And Claims Adjustment Expense   $ 5,200      
XML 51 R40.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
ATM Program - Additional Information (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Sep. 14, 2022
Subsidiary, Sale of Stock [Line Items]      
Issuance of common stock, value   $ 6,292  
Proceeds from common stock $ 0 $ 5,450  
Common stock, reserved for future issuance, value 64,900    
ATM Program [Member]      
Subsidiary, Sale of Stock [Line Items]      
Common stock, value authorized     $ 100,000
Issuance of common stock (in shares)   2,683,000  
Issuance of common stock, value   $ 6,500  
Proceeds from common stock   6,300  
Sale of common stock   $ 800  
Common stock, reserved for future issuance, value $ 64,900    
XML 52 R41.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Accounts receivable, net - Schedule of Accounts Receivable, Net (Details) - USD ($)
$ in Thousands
Mar. 31, 2024
Dec. 31, 2023
Mar. 31, 2023
Dec. 31, 2022
Accounts Receivable, after Allowance for Credit Loss [Abstract]        
Trade receivables $ 49,474 $ 46,152    
Related party receivables 1,672 868    
Revenue recognized in excess of billings 24,456 26,813    
Other receivables 4 3    
Total 75,606 73,836    
Allowance for credit losses (9,227) (8,557) $ (1,184) $ (1,184)
Accounts receivable, net $ 66,379 $ 65,279    
XML 53 R42.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Accounts Receivable Allowance For Credit Loss - Details (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Accounts Receivable, after Allowance for Credit Loss [Abstract]    
Balance at beginning of period $ 8,557 $ 1,184
Additions charged to earnings during the period 670 0
Balance at end of period $ 9,227 $ 1,184
XML 54 R43.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Accounts receivable, net - Additional Information (Details) - USD ($)
$ in Millions
Mar. 31, 2024
Dec. 31, 2023
Accounts Receivable, after Allowance for Credit Loss [Abstract]    
Retainage provisions included in receivables $ 0.6 $ 0.9
XML 55 R44.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Inventories, net - Schedule of inventories (Details) - USD ($)
$ in Thousands
Mar. 31, 2024
Dec. 31, 2023
Inventory Disclosure [Abstract]    
Finished goods $ 4,362 $ 4,246
Allowance for slow-moving and obsolete inventory (518) (341)
Total $ 3,844 $ 3,905
XML 56 R45.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Prepaid and other current assets - Schedule of Prepaid and other current assets (Details) - USD ($)
$ in Thousands
Mar. 31, 2024
Dec. 31, 2023
Prepaid Expense and Other Assets, Current [Abstract]    
Vendor deposits $ 5,894 $ 5,667
Vendor deposits with related party 1,504 520
Prepaid expense 710 1,251
Prepaid taxes 471 447
Deferred cost of revenue 611 666
Surety collateral 55 0
Other current assets 4,824 5,538
Total $ 14,069 $ 14,089
XML 57 R46.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Prepaid and other current assets (Additional Information) (Details)
$ in Millions
Mar. 31, 2024
USD ($)
Prepaid Expense and Other Assets, Current [Abstract]  
Short-term Interest Bearing Loan & Customer dvance $ 2.5
XML 58 R47.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Leases - Summary of Lease Expense (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Lessee, Lease, Description [Line Items]    
Operating lease cost $ 309 $ 229
Short-term lease cost 93 92
Total lease cost 402 321
Cost of revenue [Member]    
Lessee, Lease, Description [Line Items]    
Total lease cost 236 215
Research and development [Member]    
Lessee, Lease, Description [Line Items]    
Total lease cost 14 15
Selling and marketing [Member]    
Lessee, Lease, Description [Line Items]    
Total lease cost 48 15
General and administrative [Member]    
Lessee, Lease, Description [Line Items]    
Total lease cost $ 104 $ 76
XML 59 R48.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Leases - Summary of Future Remaining Lease Payments Obligations (Details) - USD ($)
$ in Thousands
Mar. 31, 2024
Dec. 31, 2023
Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]    
Remainder of 2024 $ 607  
2025 755  
2026 219  
2027 192  
2028 16  
Total lease payments 1,789  
Less imputed interest (113)  
Current portion of operating lease liability 742 $ 740
Operating lease liability, net of current portion 934 $ 1,124
Present value of operating lease liabilities $ 1,676  
XML 60 R49.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Property and equipment, net - Schedule of property and equipment (Details) - USD ($)
$ in Thousands
Mar. 31, 2024
Dec. 31, 2023
Property, Plant and Equipment [Line Items]    
Property and equipment, gross $ 3,874 $ 3,433
Accumulated depreciation (1,880) (1,610)
Property and equipment, net 1,994 1,823
Leasehold Improvements [Member]    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross 162 157
Field Equipment [Member]    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross 1,062 1,062
Information Technology Equipment [Member]    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross 508 466
Tooling [Member]    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross 1,381 1,014
Capitalized Software [Member]    
Property, Plant and Equipment [Line Items]    
Property and equipment, gross $ 761 $ 734
XML 61 R50.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Property and equipment, net - Additional Information (Details) - USD ($)
$ in Millions
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Property, Plant and Equipment [Abstract]    
Depreciation expense $ 0.3 $ 0.2
XML 62 R51.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Intangible assets, net and goodwill - Summary of intangible assets (Details) - USD ($)
$ in Thousands
Mar. 31, 2024
Dec. 31, 2023
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, gross $ 2,529 $ 2,555
Accumulated amortization (2,130) (2,013)
Intangible assets, net $ 399 542
Minimum [Member]    
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, estimated useful life 2 years 6 months  
Maximum [Member]    
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, estimated useful life 3 years  
Developed Technology [Member]    
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, gross $ 2,529 $ 2,555
Developed Technology [Member] | Minimum [Member]    
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, estimated useful life 2 years 6 months  
Developed Technology [Member] | Maximum [Member]    
Finite-Lived Intangible Assets [Line Items]    
Intangible assets, estimated useful life 3 years  
XML 63 R52.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Intangible assets, net and goodwill - Additional Information (Details) - USD ($)
$ in Millions
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Indefinite-Lived Intangible Assets [Line Items]    
Amortization expense $ 0.1 $ 0.1
XML 64 R53.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Intangible assets, net and goodwill - Summary of goodwill activity (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Goodwill and Intangible Assets Disclosure [Abstract]    
Balance at beginning of period $ 7,353 $ 7,538
Translation (140) (185)
Balance at end of period $ 7,213 $ 7,353
XML 65 R54.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Debt - Additional Information (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Dec. 31, 2023
Apr. 30, 2021
Debt Instrument [Line Items]        
Restricted cash $ 1,896   $ 0  
Credit Facility Agreement [Member]        
Debt Instrument [Line Items]        
Liquidity ratio amount, minimum limit 125,000      
Interest expense 300 $ 300    
Barclays Bank PLC [Member] | Credit Facility Agreement [Member]        
Debt Instrument [Line Items]        
Available borrowing capacity under the Revolving Credit Facility $ 98,100      
Commitment fees rate 0.50%      
Barclays Bank PLC [Member] | Letter of Credit [Member]        
Debt Instrument [Line Items]        
Restricted cash $ 1,900      
Barclays Bank PLC [Member] | Letter of Credit [Member] | Credit Facility Agreement [Member]        
Debt Instrument [Line Items]        
Aggregate commitments       $ 100,000
Credit Facility amount $ 1,900      
Commitment fees rate 3.25%      
XML 66 R55.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Accrued expenses and other current liabilities - Schedule of Accrued Expenses and Other Current Liabilities (Details) - USD ($)
$ in Thousands
Mar. 31, 2024
Dec. 31, 2023
Mar. 31, 2023
Accrued Expenses and Other Current Liabilities Abstract      
Accrued cost of revenue $ 22,423 $ 26,773  
Related party accrued cost of revenue 1,370 1,451  
Accrued compensation 3,650 3,858  
Other accrued expenses 2,247 2,766  
Total accrued expenses 29,690 34,848  
Warranty reserves 6,992 7,279 $ 8,085
Current portion of operating lease liability $ 742 $ 740  
Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration] Total other current liabilities Total other current liabilities  
Non-federal tax obligations $ 125 $ 119  
Total other current liabilities $ 7,859 $ 8,138  
XML 67 R56.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Accrued expenses and other current liabilities - Schedule of warranty accruals (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Dec. 31, 2023
Accrued Expenses and Other Current Liabilities Abstract      
Balance at beginning of period $ 11,002 $ 12,426  
Warranties issued and remediation added during the period 838 1,543  
Settlements made during the period (849) (1,103)  
Changes in liability for pre-existing warranties (519) (309)  
Balance at end 's period 10,472 12,557  
Accrued warranty balance reported in:      
Other current liabilities 6,992 8,085 $ 7,279
Other non-current liabilities 3,480 4,472  
Balance at end of period $ 10,472 $ 12,557 $ 11,002
XML 68 R57.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Income Taxes - Additional Information (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Dec. 31, 2023
Income Tax Contingency [Line Items]      
Income tax expense (benefit) $ (11) $ 131  
Statutory rate 21.00%    
Income tax interest and penalties accrued $ 0   $ 0
XML 69 R58.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Commitments and Contingencies - Additional Information (Details)
$ in Thousands
3 Months Ended
Mar. 31, 2024
USD ($)
Product Warranty Liability [Line Items]  
Description of tariffs classification In particular, CBP accepted our position that the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, previously assessed under the Original 939 Assessment are not applicable as they are only applicable to articles that originate in China
Description of revised tariffs classification In particular, the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, are not applicable under the 625 Assessment for the same reason stated above with respect to the Revised 939 Assessment, which has been accepted by CBP
Maximum [Member]  
Product Warranty Liability [Line Items]  
Tariffs on merchandise, percent 25.00%
Minimum [Member]  
Product Warranty Liability [Line Items]  
Tariffs on merchandise, percent 7.50%
939 Assessment [Member]  
Product Warranty Liability [Line Items]  
Cost of assessment $ 2,010
CBP Assessments [Member]  
Product Warranty Liability [Line Items]  
Cost of assessment $ 2,840
XML 70 R59.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Stock-Based Compensation - Stock compensation expense (Details) - USD ($)
$ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]    
Stock based compensation expense $ 1,639 $ 4,890
Cost of revenue [Member]    
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]    
Stock based compensation expense 216 816
Research and development [Member]    
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]    
Stock based compensation expense 81 249
Selling and marketing [Member]    
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]    
Stock based compensation expense 44 384
General and administrative [Member]    
Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]    
Stock based compensation expense $ 1,298 $ 3,441
XML 71 R60.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Related party transactions - Additional Information (Detail) - USD ($)
$ in Thousands
1 Months Ended 3 Months Ended
Feb. 28, 2022
Mar. 31, 2024
Mar. 31, 2023
Dec. 31, 2023
Related Party Transaction [Line Items]        
Related party receivables   $ 1,672   $ 868
Related party accrued cost of revenue   1,370   1,451
Accounts payable   12,059   7,979
Alpha Steel [Member]        
Related Party Transaction [Line Items]        
Related party receivables   1,700   900
Related party accrued cost of revenue   1,400   1,500
Vendor Deposits   1,600    
Total received Invoices from Alpha Steel   1,600    
Accounts payable   $ 400   $ 0
South Lake One LLC [Member]        
Related Party Transaction [Line Items]        
Outstanding capital stock held 5.00%      
Related Party [Member] | Fernweh Engaged Operator Company LLC [Member]        
Related Party Transaction [Line Items]        
General and administrative expense     $ 2,300  
Cash payments     $ 800  
XML 72 R61.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Net Loss Per Share - Schedule of Computation of Basic and Diluted Loss Per Share (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Earnings Per Share [Abstract]    
Net loss $ (8,771) $ (11,762)
Basic weighted-average number of common shares outstanding 125,569,375 106,791,198
Diluted weighted-average number of common shares outstanding 125,569,375 106,791,198
Basic loss per share $ (0.07) $ (0.11)
Diluted loss per share $ (0.07) $ (0.11)
XML 73 R62.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Net Loss Per Share - Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share (Details) - shares
3 Months Ended
Mar. 31, 2024
Mar. 31, 2023
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]    
Potential common shares excluded from diluted net loss per share 14,605,901 13,157,574
Stock Options [Member]    
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]    
Potential common shares excluded from diluted net loss per share 2,427,526 6,544,725
Restricted Stock Awards [Member]    
Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]    
Potential common shares excluded from diluted net loss per share 12,178,375 6,612,849
XML 74 R63.htm IDEA: XBRL DOCUMENT v3.24.1.1.u2
Subsequent Events (Additional Information) (Details) - USD ($)
$ in Thousands
3 Months Ended
Apr. 03, 2024
Mar. 31, 2024
Dec. 31, 2023
Mar. 31, 2023
Dec. 31, 2022
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]          
Allowance for credit losses   $ 9,227 $ 8,557 $ 1,184 $ 1,184
Major Customers [Member]          
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]          
Trade Accounts Receivable Balance From Major Customer   30,800      
Provision For Credit Losses   700      
Allowance for credit losses   $ 9,000      
Subsequent Event | Major Customers [Member]          
Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]          
Fair value of retained equipment $ 13,200        
Cash payment $ 9,000        
EXCEL 75 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( /=)JE@'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 " #W2:I8S)\C#^\ K @ $0 &1O8U!R;W!S+V-O&ULS9+! M3L,P#(9?!>7>NFG9#E&7"]-.("$Q"<0M2KPMHFFBQ*C=V].&K1."!^ 8^\_G MSY);'83V$9^C#QC)8KH;7=,1@M(? MZHA05]4:')(RBA3,P"(L1"9;HX6.J,C'"][H!1\^8Y=A1@-VZ+"G!+SDP.0\ M,9S'KH4;8(811I>^"V@68J[^B[7DC^$K4Z_?9]8??3=AY8P_V M'QM?!64+O^Y"?@%02P,$% @ ]TFJ6)E&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" #W2:I8K-3?N 8& "K( & 'AL+W=OV2#37;D@^M9O@3;^+SHT='EE93Q7L@OR89S19ZC,$YN6ANEMF\ZG<3;\(@E MUV++8_AF)63$%-S*=2?92L[\+"@*.]2R^IV(!7%K,LZ>/MT=4#VQN\!WR4EF#PL>,N#T.M!.7X M]R#:*GY3!YY>']7O,WB 6;*$NR+\(_#5YJ8U;!&?KU@:JB>Q?\?[/E0$2DM1P0],7A/'OB+4HEU#>5P\?+J%<-HWA;\JCE/4G)/I.15ZKMAQ2?Z> M+A,EH3'^8ZJA7*%K5M ]]$VR91Z_:4$73+C<\=;DA^_LOO6S">\;B;V"[1:P M74Q]W"O39BH0$/,7H'9JX/I M0H>0+(2.X/-G\BM_,8'B2I9EV4,ZM/NVB1&-;^#Q /& MSYQ)W44)#!_&A.)J[;9-VXX1$@UL"#DH( =U$GD?A-!'72!;"VG,(BXS]3R8 M<"3$^[F6B1.5:,@Y+#B'M1KL(:=/?"ND"N(UF2NF4N.HC0M^-@[U+AK4D'%4 M,([J,,YBQ64^Z^NVRH[0)D9.:\IWX#+L.W]N(R[5NH+^ @MH05T1;%AN[YAE!)5,S)QK6E).6 MG+06YS-9P#R9!)F+>N0R$+X1$E>KSB8:UY2R]#XVZC:*UKH!_XWF$)>IQKN$ MV;%+MV/C-J5PQ8N7K7%2/!-O6^U/1JQ+F!N[=#Z M<5R@*6OIL= \^>.*3=E+DT-Q3W*$A>G?V[!XS2N7R6>$'J;SNZEQ M"L$#FQ*6]H;6LC=Z,40>TFAI7!+=GA&!-+:[EM.SC("7<#:T=#:TEK.9Q9Z0 ML)C*=L&NLN44-&I82XHT5A)67,(WYQ57OWMK1+Z$VZ&EVZ&U-G<6[)G,?!B1 M@E7@Y;M_2(9QR2$D>&CWZ<"7!TOR'MXCWR,S7G% M)4<6M<@#<=DV4# 1P^BWX,\L(>_VIH'/Q=6:5D#IC2AN9] *6.R%L0)PR7D: M0 >9M6G?G/%+&"5:&B5::SNH ';U'?3FA=C'1M@SVT)IH@)3H(L'-N4LS1*M MM1U4PDXYI9URSIB@C%-R5@EV1F#@#(RG"9=P2D[IE!SLC5 M>IF:/M3=36S:&PU&=K\W[NQ,D" MUC2/I3=RZNX$E;MY"",N5KEDP^/^+V3GY#A8;[=FI^0)\;1US4^&BZ?%2?PT M.W_NE*_GQ_@?F-ZM34C(5Q!J70^@',WT:[GE#?RREJIF!F[5_4)O%6=EYU17"Q)% MZ:)FHIFM+KMGG]3J4K:F$@W_I)!NZYJIQ_>\D@]7,SQ[>O!9W&^,?;!876[9 M/;_EYNOVDX*[11^E%#5OM) -4GQ]-7N'WUS3Q#IT%O\1_$$?72.;RIV4W^S- MA_)J%EE$O.*%L2$8_-GQ:UY5-A+@^/,0=-:_TSH>7S]%_V>7/"1SQS2_EM5_ M16DV5[-LADJ^9FUE/LN'?_-#0AW 0E:Z^Q\]'&RC&2I:;61]< 8$M6CV?]GW M0R&.'' \X4 .#N1V1=6C?,L-6ED@](66N(9B^ZVG3>D(UH[##> M&@6_"O SJVO9E# HO$1PI64E2F;@YCVK6%-P=&L#:_3R:\/:4L OK] %^GI[ M@UZ^>(5>(-&@+QO9:M:4^G)A (^-NB@.[WZ_?S>9>/?O3+U&%,\1B4CL<;\. MN]_PHG>GI^X+J$)?"M*7@G3QZ%0I6J5X8Q#3&G+VI;/WC_W^=L&]T5M6\*L9 MK"C-U8[/5G__&TZCM[[D?E&PDU1IGRH-15]=,[U!,&BHL!?\SU;L6 6Y>[/> MATJ[4+8K[%8XCF)\N=@=I^-:D830I+;!>%^D8959T#,W)='$2%CC#ZS M+(DR/\B\!YD'07[<(/489GB@J MC@;JB9Z9!:!&E'GLIH%M0EO0!V9R'1VBG:#(\_%T]5EEEA^\6(]H$C^SD@QK M[@6L\T,MIV%BSX(93P&/41*3"9 #@>$@::S^)67Y(*K*"XLX;UP23,>X/%8T MF:K>0#_P>#".-?<;&0)JF$'?=V.M1* ;'.:; MCUTOFEXLV"42DL39&)O':IE-M$P\4 X.<\Z^"P7 N12"<1)1IW0>.T*CY53U M!K+!Z5D"JA+L3E3"3+ .#G+6C\JH7Q7M-.>!R'"8R7HAL&6/5@5X$_:0$HD2 MIR>X9LM\2@'@@;MPF+P H6I!0/'O6ROT_4/B4A+)T]R9.:X9C;-X@KCPP%PX M3%T?FD+6'!GVG8<+Z?(0&5.5QR:; $@&IB)AIKKA:PYSNP2Y!X*J]8(C+O'$ M63Z&Y[&B*9[H_&2@)Q*FIX\G(NJ9!4A<\H'V-)Z.'JL,TZE2'FVRPAQUJJ6> M0^K241(GE(RA^LS2=*+CDH&V2)BVQI+J">UC1_Y(KOL\ME+94PEO#BY3Y72L M6CQ&&)-X(H&!S\@Y?-;(YN+<@KO4%8/*'J/U6&5X@C_(0'#D'()[#J'+7DF> M+9TIX=E/0-'+/Z3A",>OO,C_ M#Z9"WI.#GP]TFOW =F099/A;(XMO&UF57.E_=)+=/'I3#9+F#Y^4_*)HITD/ M!$K"! J;U4/WUS9]("B%=JQJN6T +Z+7411A!)T"Z0U3?(YP-(=']M_^"4R4 M%G2O$O_CY5N[&#D26EM*9MJ&^)VI8M.?@W6SZH87O+Z#D/[CK4.1738>$W;0 MY+0< UF3,%G;%2";,VL!V]I0,3!)YGE"YB2A7=[V/HZ3.27)D_E3J>Q)06LT M[,)*VY!_LG2>#>UX*Q2V.3UV&X0$#0N)+PJ(I%6/^_+-$3/00;1Y:R?-,B7S M)$W[.OU4AM35&>/)$30YS6_0(32L0]Z5I;!$"'W<'O!K;* M*4U(,D;JL\-9ED[ '<0(#8L1T,9MW5;=D??A'$K6T$0V]CO%#@A?:O^1J"LX M+N+EF-1]5B2?FD-'9[=A57(,NN1K40CO/IJZDN("=GFYP^8^0Y+G>.KPE@[R M@X;EQY[0]9FD05U5D20X&>^N/68IB9=X NR@/N@/JH]NL9T-/G%/R7V;;Y^= M;_.]./JD8[^G01^X%XT&(;H&Q^CU$N*H_2>J_8V1V^XKSYTT1M;=Y88S@&T- MX/>U!&ERN+$?COH/A:N_ %!+ P04 " #W2:I8Q2P3& 0# "@ & M 'AL+W=O2+!.@@ M4DLU;1>34%FWBVD7)CD0JXF=V0ZT^_4[3F@&;:!A&A=@)^=]\YR38^SQ1LA[ ME0)H\I!G7$VL5.OBTK95G$).54\4P/'.4LB<:IS*E:T*"32I1'EF>XX3VCEE MW(K&U;69C,:BU!GC,)-$E7E.Y>,U9&(SL5SKZ<(M6Z7:7+"C<4%7, =]5\PD MSNS&)6$Y<,4$)Q*6$^O*O9RZCA%4$=\8;-3.F)A4%D+G$&EHD@24M,WTK M-I]@FU!@_&*1J>J;;.K8P<@B<:FTR+=B),@9KW_IP[80.P*W?T#@;05>5X&_ M%?A5HC59E=8-U30:2[$ATD2CFQE4M:G4F WCYC7.M<2[#'4ZF@J>X$N!A.!( MB8PE5./DFF:4QT#FQEB1LQF5P'4*FL4T.R=G=YR6"O"4V42E&J+&M MDE]] W,C]?;F-E6C*X37E\"H_ M_X#?7&/ZV*6:B"7YR#@6@=&,S(1B5=?]N%HH+;'W?K:E6GOWV[W-@KQ4!8UA M8N&*4R#78$7OWKBA\Z$M\?]DME<&ORF#?\P]FN%: BFQ$; !X_L+4E!)UC0K MH2WMVFM0>9F_C77D]!S'<C>A5\/V4/L-:O\TU+H3"2UU*B3[#4D;LQR+V(,,&,CP*.15YCDW?I0?" M;CWP:M@>YZ#A')S V:D!!B]J-0S:.Z!+Y![UL*$>GDY]^/T/7W:B%XP"SPO\ M9\2MD?U^X'M!._&H(1Z=3HQG Z4I3QA?M6&/.F.W1A[#=IV_FYQS%/PKGG!4 M*1_)O$:?']ZMG)8%/PB]( R?X7:)K''MG>W9G(UPSULQKD@&2Y0ZO0%ZR/JX M44^T**H=>R$T[O_5,,4C&D@3@/>70NBGB3D$-(>^Z ]02P,$% @ ]TFJ M6+BQ(!=O!@ X!\ !@ !X;"]W;W)KX*L% M#95")?%WRI[$T352KCQR_DW=?$AN)HY"Q#(62V4B@H\=6[ L4Y8 Q[^-T^KO*>7#F,1)LP;.O:2+7-Y-@@A*VC+:9O.=/?[#&(5?9BWDFJO_H MJ9%U)BC>"LGS1AD0Y&E1?T;/S4(<*8 =LP)I%$A783:@0!L%6CE:(ZO<>AO) M:'Y=\B=4*FFPIBZJM:FTP9NT4&%\D"5\FX*>G"]XD4!06(+@2O L32()-P\2 M/B!:4B"^A*]RR)&U"MZ.H3^Y$.CL2Q%MDQ1DS]$%^O+P%IV].D>O4%J@SVN^ M%5&1B.NI!(3J=Z9Q@^:V1D,&T%#TD1=R+=#O@"IIZT_!LX-[9._>+;$:_!B5 MEXCBUX@X9&; LSA=G5K@T,-JT\H>';!WSW:LV+(KT\K4FC.SIMK-5V(3Q>QF M J$0K-RQR?S77[#G_&9R:R1C+2=G!R=G-NOSSUQ&&6SQRE63I[6Z5ZFK,K.; M8^(&_O5T=^Q"7VKF!.'L(-7"YAZPN=8 ++B0*J-+2R#<,0,QDK&6L][!6>^$ M0,1METT>UV;J4AK+6C!FSHQDK.5N M>' WM,;C'BQ&9;Q&4,"!#G? \QO% R:G0T/:T+ 3$X-02(@Y)MC1K.5883X M[ZN8*)30?GQC*D)&OG'Z.0%IVP%ID,(^Q@,HC[@5VY.;%9 \684R2H"]4R%5 M,NV,N[ Q=@S"<[UN631(8<(M ,4@-M*]$L2>PLN>B%R@B0]HY9 M%T'H=K>J24REU0!%$DV19&9-JWW*(V!R)-91:3Z3$2O1OCBA1K+6]EDS+K$S M[FTDTMCH9:T7'*^R<^GX3NNOESU&K:'NE6@N)78N?9MF6]F=PC1 O9\":M0: M!*JYE/C6'/I:S>I8(=G&QG;1KOGB&=U(UMI^:D*G=D*WSB)'Y>^QK+4=U?Q-3SG9 M6L9?C7YK(.F$3C?I#&*4N/[ R9L>S83M0^%39I)TW.GP_S$>IIKSZ2D#XA/F MDK1_X(5S>6\D8A"CP[T)U3Q-[3S] )ZGL1G9J$/BL:RU_=1$3[V?KP36'N'% MCHYDK>VH;A2H_=#]XTK0/SACKW=N-4@%% \T[%13-[5/FD^J Z,.FL>RUG98 M]P+4W@N<7@?"7N4EE'2'N 8IWPF[!]_IT;O2G)6KZA6R !3;0M;O%0]/#Z^I MWU0O9SO/;_'5HG[9K,W4[[X_1N4J+03*V!),.I<^9$I9OTZN;R3?5&]D'[F4 M/*\NURQ*6*D$X/LEYW)_HW[@\%)__A]02P,$% @ ]TFJ6*I<>AY1!P M:C@ !@ !X;"]W;W)KQDD_:S8XO%$V-36RS)OZ]L',"2$+B]^0(VW'NN?.^1 M9!_)=[NR^E*O*&7HZSHOZOO1BK'-V\FD3E9T'==OR@TM^#_+LEK'C)]6SY-Z M4]$X;9W6^808AC-9QUDQFMVUOSU6L[MRR_*LH(\5JK?K=5Q]>Z!YN;L?X='W M'SYDSRO6_#"9W6WB9_I$V:?-8\7/)@>4-%O3HL[* E5T>3]ZA]]&Q&X<6HN_ M,KJK3XY1P?6,7_S;@?F\W+(N5,I"GB1W699VG,^,D3XU^+QNC3TP+=O+I%KU!6 MH(^K]BWC)QIV<>2Q;G";:YW>^38E^LU[U3GO/T+K>8#2+VMOIWU#_3^[U*>2-ZIXQP]QEDZYCF%PE%,>/PR1MDXM>(&(2H&+3'=%K,9I1^F3F.91MW MDY=3PLA6@L5"ML"X;^)?! ED"Q/;IF7WS4+9;.P(P2*%#;$\[P2KEV3SD&1S M8))O.+_J55S1^O:JA&OQFWGV;;V)$WH_XC2K:?5"1[.??\*.\:NJ(^_!;$U= M9 MLV(9);,\3RJ.R=!UB.XY0)<@K""'!(B"P'C.L S,L+3.>6@Z@K*ZWO%NG MVZHA"1\RT(9669DB?I.$7FC=]'ENQZHL:0[K9HQ#\2ZNU .\)16%N*[0'^;: MA@W,X0(2S(<$"Z[)10@9,0("Z_')/O#)_L%\>MV-2RI>:6,/'84@P1:V/ Q9 M4V_JN<)P!1DT@ 0+(<$B(+ >!9T#!1TM!=]S[K5S'+^!3?;W='M^;3?\D'ZE M59+5[;_[G\M-<]^EY)LC5=469NRYMBU#600)YD."!9@1R#P1R M?P2!= .7-N#0@0L2;.'*TY-C8R),4#YDS 2+(0$BX# >K3S#K3S!DR=S429 MTV?^.%A3QO+VF5S%+$^NGV&(#T+:P$,9 PGF0X(%U^0BA(P8 8'U^#(]\&7Z M/_FB&Y&TV$-')$BPQ52JHCMUS:GP/.=#Q@P@P4)(L @(K,=0!G);+(5,B#$#Z,$,9 HKF@Z(%5^4C!(T90:'U27*B).,!)-$-.GJ@ MH:,.*-JB0^O?"7FF-('XH&$#4+00%"V"0NOSZJ@,8[TT_+2_NUXN::LB)&7- MU*PB4N7&IC0":6,-)@LDF@^*%ER3CA T9 2%UB?*4=W&>GF[)V M#2WJN'DD4Y)%%HR)Y4IL@11X%Z!H/BA:<%4^0M"8$11:GRY'R1OK->\_*$.Y M>@GL @Z+YH&@!*%H(BA9=KE:?(D<5&^ME[/VJ:=);-7V. MLP+=-,2Y53)'EH#'XI*'/NI@UD"B^:!H 2A:>$5N(ZB(?<8<16>L5YW](A46 ML7^/J\.:JJEDC"RJ.AZQ1(6Y,],M8RM,I'7LRS"!HD$F\::&*S+:0<58[$LH$K5D4TP-HCK&I*HH3)5+V># M7D4(BA9!H?7Y<=11L5Y(O;BE1$T+63UT^)V0U!N]R[U1-L&F6.B+,(&B0::# M/<\1>Z-L-R934^R.2JLI-L]L+<%'&1+K=*]TQZ",,Y@>H\@B*%H"BA:!HT<5B]0ERU!Z) M7GO\#TH!D26W,?8DVH!*D*!H/BA: (H67I7=""IFGS5'"9+H)4B]6F I66-) M3PRVC6U/I(UL)FUZETVDYY/+,('"Q'1,6[R##A5V8\NUQ((HK$S#G1K.F1YZ MU/*(7LN[7BY0YQUTTRF1E2RI/(J]I,2>VH384I44INJ'$]"K"$'1(BBT/3\F M)^]$-6_A\0+SY],:Y73)X8TW+H]6[5]LVY^PT:@SX M_\NR9-]/FC>O#J\7SOX%4$L#!!0 ( /=)JECGJX)CB@@ 4F 8 M>&PO=V]R:W-H965T&ULM9IM<]NX$<>_"D:]Z20S440"H$2Y MMF<<)]=FYG+G.3>]UQ0)66Q(0@> LMU/WP5(DQ+Q8'OJOK'UL(3^"V#WMPOR M_)Z+'W+'F$(/==7(B]E.J?W98B'S':LS^9'O60/?;+FH,P5OQ=U"[@7+"G-1 M72UP%"T7=58VL\MS\]F-N#SGK:K*AMT()-NZSL3C)U;Q^XM9/'OZX/?R;J?T M!XO+\WUVQVZ9^KZ_$?!N,8Q2E#5K9,D;)-CV8G85GUW3E;[ 6/RK9/?RZ#72 MKFPX_Z'??"TN9I%6Q"J6*SU$!O\.[)I5E1X)=/S9#SH;?E-?>/SZ:?2?C?/@ MS":3[)I7?Y2%VEW,TADJV#9K*_4[O_\'ZQU*]'@YKZ3YB^Y[VVB&\E8J7O<7 M@X*Z;+K_V4,_$4<7P#CN"W!_ 9Y>0#T7D/X"8ASME!FW/F$Z=7G-FP(6A14(7DE>E46FX,VM@G^P6DHBOD77 MF=RAGV'%)7KWOH]^0F6#_KGCKW/N'@@-\R\1&1^ /"$:8./=-2U4RYZQUHU+WJ#K"S^0^ MR]G%#$)8,G%@L\N__B5>1G]SN?Q&@YU, !TF@(9&O_P5$E+%I=/)[LJEN5)G MGM/<[UZK8X1V.6NI3MSN96\Y=J]T6 G<[01>R%7@\A54.1G!I[G9=:QH2E05G.ARO]X ME:YL$1&="+5M"*%NG>F@,PWJO#J2I5-KP38*E5*V#.96*I?2U)[3U6JB-&QS MHG0]*%T'E=X(?B@-K=_E@D'*?X^@:D!\ Y1@BIE)EI#2YC7803B4S0'"B(M' MEP_K%_C@L,'+V.U$'(U\BX)N_**#V"3=MLF/$2?;C2R+,G,+[D<]5H.7R42Q MP\BSC>,C'L=!O7^'TJO36Y1RSV56Z6VB)[?+4SH'O(P2]>I MQQT\NH.#[OR1"9$UZM%L%P$E1=''Z/YI>[G+!6RI24DZE6P;Q0DE'LDCJ^,@ M"4?)F@8'R/8;X(%9D3IKVBVD_58PX51-+$%K2[1M,T\\224>\1J'^7IM(K0C MUC,S2ZW?7ZZBJ4C;R+>Q1]+&04A!AMXR(0Q$@2(,J>S!7?3TXYR$'K:VJ\,H M7GHTCJ2+PZC[A0'E$'O0C.LR'%<[SUK;%"/1E'0.(XS7'I4CZN)5L&CY6@/K M%8(@,I6)V9KY+FONF)Q4*%(R*&RT'U69;TC,> 1N'"?NU)Z:G^(]M(,+O M+J?J;*LD6GGR-AZQB42C&T3J7+*DT]RXQ'!.(P H?=N,\>?5L1VR@CZW2:3AQ6 M*[_ $7@X##P0*-JLDH[%/DH;3MD.F"UQ-(T@IYDO6^,1>C@,O8$H@D$@M>Z) MM4D68ZOX<5C-\=)70>.1>3C,O&Y?-KR9OW1";:S-$TRF'V;P/YLR[W>@LXY<%"1$CQ=.H<5]D"1C% D82A^ 6&@L69JQXM)3W95 M[7<9NE6,5,%?)-&TMBX]+15SJL MO&TE&9E*PDP=8M\T.P5HW3RB=WTB>.^,**<+-E#Q,IZV; ZKN2]]D:,CX=>= M"6_+)FOR%V0!\K:GPO^/8V$R,IR$&7Z;07,-^Q!:PAH:&JG/&IU.ASK2WA/; M)*&);YU&AI,PP\WQ)TB$6D,OCCZETZ5<63AEVF2V9#K@33SH)B.Z21C=IQ$N M.\U[<]+"'IC(2^F) )O-EF#;)/$/\%PKQ*=T<9I22U+,6= 0V#0,[ MZ +3=7E0O,W<.%F3:7WK,*,Q77L.4.D(9XJ#9+MM]_O*W#V&&@.*C;SBLA5= MH9<_40]V6?<0 J0H)^9HL )X+>;>:K33*1EA3\,M]@N*77TN6K5%U\K $G=I M\/3HH+NSU;?KSDFS.^UX96U:V\@'('IT@_<9D!ODF#M9A;E19&3"ZXK=P3:0 M3*EN3SAE/T]WAPF.?)4Q'>E.PW0WSZW,^7;>Z@-??8#4'9>:1/C4K'>W NZ: MTO!4.]>P^\[&O0K/5P$.DYCZ#L+H6 ;0D/J6 M"0"1A%VTA2&CCRN84M$]<]2]47QO'MO9<*5X;5[N6%8PH0W@^RWGZNF-_H'A MR:_+_P)02P,$% @ ]TFJ6,YD!YDSB^E/DJLB<6X9?7"NA;XG&J72%7]!>HA4(^R)8!FA)9$:YK 6@:_2X7J++BRMT M@0A#WPM>2\QR&;M*YS8,;M;EF;=Y@A-Y0G3/F2HD^L1RR%_C75US7WAP*'P> MG"6\QV*$0O\#"KP@&JAG\??P\$PY8=_'T/*%_]+'H7:U=-$PG9G=F:QP!HFC MAU."V(.3OG_G3[R/0UK_$]DKY5&O/#K'GG[3J^:.9;P$=/F52WDUI+:EF%@* MLUCVZ?7-=.K'[OY8QD"4[T\G01_6%N@>/?<2Q,YN 8DR7C/5/J#>VR^:6SM? M;_QSO8#:??&'IMU>^GGL").(PE93>J.I'E_1;H364+RR0[7A2H^H/19ZB8(P M ?I^R[DZ&"9!OY;3WU!+ P04 " #W2:I8)MHO#D0" "*!@ & 'AL M+W=OX_/=>1+W KYK$H C5XJQE7B ME5K72]]760D55G>B!F[>Y$)66)NI+'Q52\#$)57,#X-@[E>8(A CANF=Z+]!GT],\O+!%/N%[5= M;/310UFCM*CZ9&-04=X]\4M_#B<)AG,^(>P30N?=;>0L/V.-TUB*%DD;;6AV MX$IUV4:.!#UC>H6AR@\(@G([PHJ'CM'37<, 38+]['9RJHU61-3Z_T/N=,>!.68*1L1F@]ALE/-=\-LKY,:A M;\G-![GY5:?V!-+<(GS!;9SYEMMB<%M]RP])\ M+$#: /,^%T(?)W:#X?.3_@%02P,$% @ ]TFJ6'O- M=7>^( KBOM3&GR=%"-7K\=BG!972CVQ%!E]RZTH9\.HV8U\YDEDT*O5X-IF\ M&)=2F61^%M>6;GYFZZ"5H:43OBY+Z787I&USGDR3?N&SVA2!%\;SLTIN:$7A MMEHZO(WW7C)5DO'*&N$H/T\6T]<7I[P_;OBBJ/$'SX(S65M[QR]7V7DR84"D M*0WL0>+/EBY):W8$&-\ZG\D^)!L>/O?>W\7KJT^JO*0G&>O$I$1KFL M=?ALF_?4Y?.<_:56^_A;--W>22+2V@=;=L9 4"K3_I7W71W^B\&L,YA%W&V@ MB/*M#')^YFPC'.^&-WZ(J49K@%.&25D%AZ\*=F'^EGSJ5!4K9'.QKCTV>'\V M#G#.6\9IY^BB=33[A:,3\=&:4'CQN\DH^]%^#%![9+,>V<7L28PS/8G^3G[A[]IMI%'?):*M5)EMMF$PL'7DR0?:E>*>, M-*F26JRP2!!B\.*OQ=H'!RG]_5B%6@"GCP/@]GKM*YG2>5)Q++>E9/[LM^F+ MR9LGTCO=IW?ZE/?_0^33CJ8C\0M?XMW-I5A9+=U 7)ET)(Y"0>+9;Z]FL\F; M2UM6TNSBV_3-H%]NZ.<56[O]DG7]:NV[Q6/12"]R6[.,A#*@?_HR$J0\7E/K M*NO 1_S&\3VSPS#?DI:-=#0".+&HG-(L'0BH(9$"G2:VD@:&*C"O5;W6*H5I M3DZ9C3A*KI;7R?$@1@-,MBI1 C1A>B?6!/T(D)_Q7ML&_R1])K^)/[1=PR$D M>X%W#F)]8[W(T4*F*38GX@/PK=0U#67&Y2.S 7-M=BPXE9(?M13^ M[%Z4=DM=9!!)VB,#9^M-@5$>D\GD3@0K>-('_' E+312 KP%DKYU'&C@2' $U",31X1D/?Y,E> X/*9,AMXFY977*9 44J/VD#(C6.L88B6NP M@Z#(#M%#8X<1,C8-N4).JO!H$5E#:>TMI+2WHI!;%E:L;63>ZCI2 T8Z#45_AR6-Z=0^-M+M M:#4:EM+4.09=[8 A%$@M5[KL,O6= O_!V2IL ]9\RPDD6?Z@R+ZY8N_J.B.Q MNOVT7-R\[VH0FSI0;'; *TA7W;$'GZV^U'I1Z"#? 4I&+R7)U#(61I^4.K8FQ$%S-/*$3,O)J QB58H?D(_TQ+VY M :%D")DZZWW;FVV[=T1FM,4EK8KYL5&*2D7?K(]TEVID>P.K;M0S=P7N@=]J MB:'D6OTN:@XZ$#=T+WT[20O9JPN1Y&)Y&@ VWX2PW."^Q-VVQ(;+GRQFFW_Z@^%"7%00/ M\;-2+_I#;<5+=>7%T8?KB]6Q6*1A)&[W3<>+O!:YC9?)5JG<*W&$:=QK683W MO8K1G3[*04!ORL;=&8;B#CIA00,L),%GGZ.M8IW)--WW:D":TH$F7N!2H4FB M>B539CT=;)%5I>-,1MMM^11LLT=51X_=*,8'UT0N6[P,8R!R[/;&N%_=W[<7 M[37S87M[6<=)AZI[H2F'Z63T\GDB7'L!;E^"K>*ECD^LE;(\09\SZT- M_0L'V/\7,O\74$L#!!0 ( /=)JEA3YO(*!BL #V% 9 >&PO=V]R M:W-H965T?)1CP9 6I[9#^,1@>ZJRJRL?)S, M++S:M=W'?NW3ZZ=,OGFSRJCE[_8H_>]>]?M6.0UTU[EV7]>-FDW?[-ZYN=U^? M79W9!^^KU7K !T]>O]KF*W?GAI^W[SKZZXD?I:PVKNFKMLDZM_SZ[.;JY9OG M>)X?^*_*[?KHWQDH6;3M1_SQ7?GUV5,LR-6N&#!"3O]W[VY=76,@6L9O.N:9 MGQ(OQO^VT=\R[43+(N_=;5O_4I7#^NNS+\^RTBWSL1[>M[N_.Z7G!<8KVKKG M_V8[>?;YL[.L&/NAW>C+M()-U)7?Y$/^ M^E77[K(.3]-H^ >3RF_3XJH&FW(W=/1M1>\-K^]D,[)VF?75JJF659$W S&K M:,=FJ)I5MFWKJJA<_^K)0//AK2>%COU&QKX^,?:S[(>V&=9]]FU3NC)]_PFM MTR_VVA;[YOK! 7_(NWGV[&J673^]?O[ >,\\\<]XO&J>4[S^L M'8^VV>;-'N.-33Z6U>!*/%C209=_Z2OTQ[)JYG"D"X8^HPGJL739 M0,/1]'3Z>"[\>2MC\THJ^GBW;NN:*-HU-%@_+OJJK/(.%.")=7[OLH5S#L MS,[__=^^O+Y^^M7/\[MY]K>;FW?\]]57%QFI5GI[H, M941"EI>_DIZ1F>CK/&N@[FIB;C%V'0AO\F'L7,2P39P6YP[IS+MN(^G%0/Y.Q>6@9#?_"B$7>K[,E6:D_,LRD 6L;<7[A(KR5*1^'?M)I9K",S57[XB>0C'YI'#LAB'K&Q) M$)MV\"<'FUY6?5&W/6UK3ZS\;:RP>XO]OTS[-#)]B[O, D6,N7YJDVR? MY,"1$6CZO!"Y"J+OZHK,<*XL2#3'1#'U)57K-$RVTWU3!$LM2[AU5-K&:8QV.M_.B\8O'Z]@X: M@LZO/O'MIV*=-RN6UTW5L]]VCN=4\]U]>VLZCX\+^5]MYV:ZK#]F#?IU.]8E M=AXNJ6[)KV,C/A^S99"#^@IO9)O>NVW;D6IKO%K^SP/A M4;:'8*""IX&WSJ75]TU0(2-W:T1[#R MV8\D6]ES$ECBCIX"6D4#"6[HZ/>D)/A$LU+;X623MJ8O>6UT*"F@ 9&TXK)D MTPDQ7N?=@PN%@"0+;<'.6C M4QQ3:LF.[=@C(4$]6 V?DF=/6:^2$6 EX?52F>][\8<21@<_A*8L!IZ^UL4? MDY=6U*Z2^;>Z)?-L^Y+C=8I!AFKCV,>=VL*CS/GRZNEY<7'^[.+\YD)5#BLO M(JMJ2RSBZDNBB22X*4E;@H[@A,%VX)&8)G)%NPSN4IW]QTBJ^>JOIL]HIW&F M3LB$[7S8CDA*YMDWHL290EG;[) ]?"2)_T3?R&>2E#LY=P]PC1BU!.=P3,$X MVEL8X'3I_'8B)@Y\?*@E1B7I)+$VE/Y?17.*_;^3\W>?UR,*Q'1>2O?)? K52T?)O0B.^5+-KPVJ[JJ*T:TZ U[NP\;, MO#EKG)!_3-P*/E$ZFIX!^,V-V9\"_@&K!3+X1>6:8I^5=FS)P^U($W3(#:!(QS; M_SO75$0PAR.TI^_=?5O?XXM;^K,:LK?DX]48@:.1L\FG9Q?JYVP[U@4TPJAZ M?]%V7;L3K,J9-W;>S$UB'>L"D M-'/$9[DH=R"1" U:.F:K2 ,6'/;HV>!M@6OQ,3G]YA+S.-5B]+';N,7CT-E? M>+>8/KBIM^N<_!_GZIGXLJ?\5_*GSKZEJ8G\C1O6+6*D>R<@TIF8_DW;#]A> M]A@1,C2L]LWM$Q^ 33_M)$>NWB( ")%X@I0^(F6.9,'[,$LVY)^R0K;B_.R[ M#[=G@J-)G .X8H6M:2&19%YD@VDPA"3TZC;?T[EC1W*Y[$7]5;J.I2L!=F#1 M+1E)3$2RN9#=!D22%1KFTVD!7?G*W*D*IX+H7C! 2D\DR[&H:UOGA825$J*) M\2U"1._:Y:*Y;UWY2@Q[4W!.!H)#?FV6W+A!;AA, ;+OVV;50BBBM\QT>?$=?DKHC%K[!_[&8CJN15GWUQ4R'=<0@CEHQAOLT2 C+ MV(UGNTP@*AZ?+HC*)7_L0RD$"L?V0]0XM$_"GG&[I.;;]! KW1D^ZS72?:V-93@$?R01JHX!,&CL;F4L)R(B,6$T1Z'6,D"S?L M0!@YT?^'!WM!_YC+%H98'D**Z'WK"KA RC"HR[81V(*5Z"[X(;!-=5YM0)&) M3+)I/;LI->F81H)[-9VT4N(ZZ6%>OAC_@/B(P2&AAA1Q. *UK1RA&!TA(+&" MHT2\"XREKOZA(L1G5[Q^.2B]2T:/W5@X57 O!#DEJTI*N0: P)QHW$Z9D C3 M(<?EUMHYR& /I. M4.U-6TH\SFX3\*7G,(ECB@;4FBK*MK"YO6XZGR61"VL)#><^ZN+=%^^?,AUV07]2(MT*[DK,7!H5 M8](K4(2"PT6R2?Y.-:CK=4 LL^ @*C-99G(1CA.'[XF;1.')O=G!^]KE'7TZ MB(_:DG.\(0)YE,G33"5QVAO^>C\35KYUBVY$,@;$8)@[8/<"C!@H0EZ!GE.# M/R\A57L.UDB8Y3!W&]:$M.' .D=F*KD;S*L-'&CG=P8KI$_@OVHH0&>7X7 ! M#SWU.9@^4Y@5(Q$SR%R1'J$A@%O. H]G' SP9WV[''90>Y:W*>D1=F^("$E4 M,%O,G9@#EXT\F(#,QZ!7U4\)IIF<$W<'AO'LO8+#PITX.W!F:-X=[1'#K*V7 M8O6H>^;U2;EHF:]C(UBZ2-]S3@64)=MR[^JJ[-*9J"FR7$'MBB].=H_8,+(* M]*P)7I2)'N!4XHAP8Z93B220D\"ZBF4!JFMCF2!2IAYX,QD0=XQ.3%V'/(=. M B-V&:ED&("JN5Q6]08RCY3"+'M'+SFL 0N]>C=%J&U*H%CDA4'?LMH0I#%= M[MW//_[T[FX&SZQNQ_(291H(8G2L?-6T;*9E"KA,@QWEA#S6\QR8\2/(&W?> MOI#Y%H_1[YSD54W>II+N/4*9E5R1NMUOQ!:E9]70C![^0'*VNMB1MNM#3"#Z961?2Y+\R,C2:E9=VR/?U))YLXC1 MY>1X40S*^MC+3H[S OGCV;"=W[W["5]+^$,/71W%Z*+RBSN/"=RR>5 O[?SL MY@Z>_?73%Y?/*8KZ6\M174M#=$U@7/ 72'.*0\JXNB:GA=?*M'OQS:*]=,SH^^I" MP2C-($7/B@H5NY\/:.93UF?:A%H'700OPY MM"QWU?#SQ#HU*9I: Z5+) 58.=%JQ)<1R]AA-G5!0?.J J4'3NT*I4ARU"EP MDP(:-:4NK,072$R3>C&@U%"DEE%H4]_[%#^\0[8E*IN63.K'I6!G7(A"8:O( M%1M$EIT021(3X!0@!XG8#PA*+.!'DH ,HT6'G^P(HOE-JSIA+(BDF69H_E?2 M@9P$6(XJC9,B%1^L>JUPD&C &8\LR>?H"')_VL_1@>)&PPXFBE0VD!K2I!PB9ZSE#PL!!.$ML MH,:H*E.!E:"O]+0IAA&'>U$X.%,0#*%3!O%AI8BJX^BH\+;M-"D1R32-<@PQH>^00')8.58MX(Z.8%& M[YC5MU57C)M[!;N_BT\WF[Z:N\D2%1":AJWR$L*'R1&C-KOUJ3(+_%YV7V/8,^[P0A M-ACN_.SGM]^_NZ$5_&MPN)"V?L9(W-4,#\IH?"1DL#?D13DLANQJH7[2[9MW M?[Z([8=H4'7WS*5!\B=*K4L*!$=6S ![%4G&W2TXR:>@!X(")["O:AW)O) $ M_S9*L877=_XP1XIOX?:MHD&'9N(@V):";3E+-4Y"NY5A @H3UT"H?> 81ZR M 8,J>M#4C*2.$#=[R>VA"5'HPP3YHE,ZT#@^P1PC'*QC=VR3%UV+ M]%:[(5UO@8_Y#RGF51G0+H:NAI&1SVE/0# T/Q831UI>6B2C%]4*F!:FR9>D MV$,D]_-'1&;.@Z(_5&5)&_TM:::955D>\TWQ+.FO&N[1,C+YB,"K03,[YX%V M]107>?.Q&[=#825ZX4V*LI; OA5QL(R9*4RR6;)+&"*MCA.NJ2_'\1<;V4ZQ MWO@(\Q=&.T82TR0^Q<5,I8FVY<^"'P+BYS^ '?6^)%E%#2AXE#P(GZC&3ET6 M3&LD$B_.-V@41YP9)C3;P,6?)[,2NY8C:BWNA M;KLN:@,]I0=NZ5 MS:44[?L*CV'=0F_+P]RJ0.>_ZC8F$WI.98,C4E@2DI%"]H6315Q*U&ZP\8J@ M<50\,^1[G\H9M)=F9ID1 T-P^2>78,C(L0@:Y $]9F>",'AK*;(-[Q\(" MYW"\@)H$$!5BVJ'8PVF](T41U387:>8P':@C;)FPPZ!N#6>GQW3G#+5AT4;@ MWHK?$,H-Q$6&9!8II?%H>2\VFL-405;F\%!';N,0_$ #&5+[S@>;V-E :RF: MKZMZU?ACH^9@8 XQ[H:2!*_J1#SQ0O8VL4G=J/D D.F=J7H?BD2B=AW1O&'H M?CHVF$,'<2.- Q#,/L%/S0UM@7G*6@%J$Y>=U[W9'?: M]J-"6S /CNG@(G%6()#H@FO%$HHLFRS;BZ-Y@BR&QB'5[-_YXZL2E&KOX' 4 MOJ\A#,5+EK2\;1;715GH[KL:N)F(=JH3PVEY&?)KERBW E, J(JY$Z\).05P M/+!%U:W-1!:QWIM.C+-RQU8O7JZMB]F(O$$L8N*M'O39' J8&*&D0\?L&&U5 M8Y^%Z8+?E_5EC;6[7*&4 #5Z M;>?]8EW;Q:A(5@V&^U&*A#2 C=GO7HHT'$@) Y FG- M"9+=TU)4!6#)]5#E%7%'\AI:.6?!#P(,^ /F3OO]'Y+'2?Q),YI*XE,)0;Y' MX2=)SB^A/8Y+(M?5:@U9X**VV"*B\X;"BM[4!+">A'LGV?KLXZPB@ Z(G:5UR?_86@R"<5W9JY!?D&?5+:^*GA,)] MZ 62Y 06MQISSF%/H)%52]%R(T%H)^4V:H;Y;V\_\LCV:_H>BA4!&=EC-15( MF6WH($,ITH%V8A,MW^4I&UH:SJ'#Y*_S9[[JC>@ZTM#WI^SJ6=0Q0@\==N]H MZQA8H@>_;8XP.&TC\N&DU)99E%[UP2MNW) $GNH96\1](KJ(8@KVVC?;SJW1 M.J_-.[3<]\HUIU)ZFQ@0'U?7;B59R:CZ$ =.8]U=Q:4[?BBQ&Y#8LB/_K>:" M^!ZE3I/.T&XR_=S2?[%VG3'Y'SCTFNI<.,\=UZ2Q++95$=MA9=M#_O-,:[:X MZ'3A\LXSF35,Z''TA>!27!G,4%7S5;8V\"2Z%O;MED!EJ,\"-Q0Q69?6FZ6#JN__= >?3\U$9X M(\BUYN(Q/#Y*7%H"Y8N!&3S731%7'5]"#HN\%='ACR*$X$^ON.4@VD<\^./R>E@;0'<^"P]U7O,SN3 MF*US00,P@.]KTGQTJJ&FU!E [7*J72-B'-SX(%2<]$\<#Q]6LHZ!SRK;N*AX M8%8NTJ@O:3-RZXU4Q =<>G6P!]H;DKH*_MQIJ)!@92'J9L13Z,7GWE":WVFJ MI=?R^\)J5E W?N\.^Q1C^ F':"O-#V^/%/4H_KIL 41+\Y*JS@F[^&G.N^Q9 MF4OXS#@(E$GT 9/.&K8TN(.&59^#W:J.7X%W7OV#XS>.>6=BR:4*#=O.U1;L MNG#!Q&75S/1?<("Y:#AQ1)5UWO&YQYTDF=CIL#H(G6YZB@AXUDE!(*V! NN] M>-B],#\$_<<(4#2#"-ZKVRO @B1Q%DZ=CW4N16A@:4Z9 MF+/EB?E#=+#^]=OERV+R)EX7ZNP]=!LG2[2,BYZF0U3UDG\KH_R_A%]5GRXE M.AO]H'H!&ZI.#G)=U;)B-D=W+3#5TIIVTN5[9ZR1W@4N:H;M#&=$K.A(ZCO[GJE[1@RB\X;&LU()+F_$L11E;[M[C-FAA*!L4 MP8Y*6 J@%5".:H)0Q"M((>Q!351)_2ZZ-.SLHC1"RU9#5R6YEC.QR_'">"V?'=JVIK62_6,_8^9K$VK$N"R+;.F-R5,19F&UX M ;:LR'/Z_@$&'M:NONVT'DVPW+-@&\_FV=_:MN2S^4NLUU;VJ>8G@RO'?%: MP#ISC?^G@7OGE6X*]R>X>B1UIZ2L, L@9MKHY5?U_A[;*4]8);W>05Z E*9= M@KGW;V(DO#!"1B$'Z M8Z:98Y\P[T+HXY..P8E/\K<,*-VS^,>W'X40]!I5QRXY!FH@5!>+#=L!:RM M:B9TQLEA;K]!)UZ?U'IQC<#H>*\@RY!N7W7 A['U-QZEJ79?W.6SB%B)G^F'7](V6E^10+ 2^UE*>D8];X$QC?BHM4@OY03DG1^2'XB MPIE]+PH/XNM[.5P_QB?L7\CU*6:NUZTIR?&0"J6+$P7>)[A.^IZOK 1F)/\^ M(H,2;EBM;WDP([;'51(\$#TT ?,ZVN7SU"5DSQYB,KW\)Q1(TS(N>%5^P.5G M#:BUC>F J=4^)9,'UOM_)<*,B)'NN<, ;8X&GO=D M3U%.XBA(&*Y1QJ5DX=R&-#7ZZ:I^ KI%?G!PN5@D.?+*FVQZCR:Y(78S+::: M25C)+C!B*<4&3\IQN,8BN(_Q?0%1X0YN?Y@@A\A8 '+:!NA2;N^43" <6-Q- MZN!Y&0HDREK3UEJN8&B1],)S4T(?6CP4(/2QG":ZK;KC@Z7T9@G9)XIUO#&! M"N^M1J22&_,BE%(>,/DUGRNY\TBK%GE[[/(/NY0DOH%KOW7Q/-/2=HFGE>P0 MW*"]VS-Z:0W6Q$".=;*0TB:)Z$;K_>\'+9#6DEKD54N+P[6](U3I64<'9]KZ MN(XD)"VZ3L1K;C$&B L[+K"A#QU\S8U K='D5IE5-0IV+J41(N1<-CZ-XV$T M)CZMQO9FCG2,GRVNG.)J5W0NN"0#H-7C:>-F8)2=DJTH/HDZXLX2?WO9T>(> M[[CWPUBFI9"1265_KF.Q+O:*=?,&X(X5/,#EH8*$: ^HB.FH5>%:;Z?4[9?L&FX;[K_B)+-GKWVLY]77W_MX(>38 M;[ 8O6LD%HSH-I(D!F=@SV]CE\B,7FLA-V $?6!GA7&D-?+QI>@(+4,BR:GZ M=42-M;'L7(J$6\$'N!H$-_@X' VRV$BT;RHQ(8#OGQ$8.ZJ:\2U5)B0B0%I& M[0'(Z,I%>0*X!S+U5':(LYM]8(\*Z4,H:E0 M*B_,@V3X5)!O0[TS6@O? "7CL&.!B\S),W4G_SRYW$_?M,)=WI1Y4J_"'JY>')C< M!L<#L [S90L/7#LWTU-VN+M^K&.2\;;MEA1Y<.\%(X\)"B4(V=[ZN]#BGVZP M%9/VI\Y0ZL.=0B!)%$(H9%&7A][8VO85XG;=-2M:?GMT^SYS47Z+5ZB(B(3V ML?E]WBXI4PY^=\6-W0O)>"T5$K++]%3OG-8K(M )29.%^P5:H=QD>3&B).L, M-;M\ZE0O]7K;,Z(A(SX^1^^/I'3?J6FV="_G7R87:A_W->-LLWB43$QTVXYD M6Z"_]=E94A(.QU.:1-FITUH%;VR3&Z7]%4BZ%#!$6>HA>L/F26&$;_7#Z#&F M$+<+A'/H'6(-OP"O\"98)1_BMQC"4A E@.+VC7:H00 M)77D*J-HXFP)Q,C+<9AU^IS1*VLGD14E?:EMNG8>V6E9*2:HOJ:%1"&H"G?9 M6JT(]]QNN<2EK\*MC9YURG;3J3I_6-3=X;8(8F&=4UI.N*>PN!0W;-RR%N2: M:]S0\LER5M&6SU//R"24M2&1M:FP:\"@&>CQDW,Z3&^5U/Q24L><6P-[II<3 M+VN]>2Q82W^KD@>6)3E@5UH!/*QE;"G2D:O2@T8Y7-8"]SSZ*TDXEKS$#5%V MO<[+[/SJPAS&O:U&!$VSAD;&+#N_GCQZJH$ENBX)(]&;SRZB4@(^+$&1B6- M#SV_R'QM^M%G# [XW?-R+^N+BU/[Z9T CY?)16T< )R8A7T6:V4,>3J]ON>[ MW\/)E]G-R>\DLZ1XR;G>)F&K8V6AY6Z \J3C6*HA3HVG5=*X4KS7JF/#M%Y_CY# MO4,%>/'2NB 40JJ&5L6F5[#@;@JY8"LZ=(S#'"?:BHQBNF/G)W&B MC>V>O=$X8B^\?>J M!+/FJW9.N\%=7!2M\!U)9D!+@)!*0VGD1HA5\L4*_M(@[2#Q4)VU4OLE6\O( M.WOUQK]J+22J/\B4V=(G[O<1%WTJ3X$;Y/T_U*;J8\:>TB'&E1JS<]7REQTHFAP[%/0K(BOG?>TKBOU\U\2_Q MPI$C&$4T/KNX:T^M]&5&.N"P]=I4B[\U;!I@^WYC'U]C-W#>'XPO!5'3ZG&I ME(^+[FT#3R](ZW++%K=W\P4^1\WJ U[EH.U&T1)2V?'F5_T&NR?]GE/KWJ)\ M6 <_EW?U0<)]@>C2_-1W&KDP8#/[ X>P;41II=T^7( MS3%N6UGL,^V7G%STZ9TNKSO;.F V@IT&*_:Y",$$5!L'H=Y[*P\ZD5IQ*^Q_+%E3*S:^X!O16Q@7YC?$"#J M"%L\-AA/'XI0$G%((Y.T+XAO1).("X5_9C]G(C(,S$;00?C5AJ7)PO'R:Q92 MQEX%#D_$%-=7/1B)ON0#=!A\IE78J=M_,H*WP^6#]X/(/9;P.-2*PPF@'9/4 M>="E6IE\ESPQ)O*K%EPX-0D%HM\4.]*]9+\TH??&>$$-]Q#LC[73GZ*I MBJL1N(&&3C$#W!\FAC]M2E(UTY(7Q=?'I/'JL9W\ 87_4?HNH,I M;:Z4C^&&)&\B:>VX\L(B9'?0;Z[Y>_G5/USMZ'MM<7'&2$K$?K'/__Q&<&%M M3S@=_ B6\[N]R)_XPEG;[2Q M9K.X?M:W<;;]<+FMQUXO##U2;;C.NW+'OP+ /X9@UQP*7 2!PQWR4BX2-9EI M>NW$BAXRM+///QH0/FNE0E/-'N!'NFUQ7G5V?GOAMQVYL_WS.Z(BSX 9R M,;^_'/K$B4QVV?\V@%T>%UT!8H19[8!>A7=JU/?_.ESV)>=+?Y_$3UK;\B'( M?OAE2HNZ=L[_?,?IR#?RF/6JO=1C$GOQ._5=J!/[W.3B5)A3#RM:)&J'VNZC M]^HY.\*]UEHFRGUH1R_$BGV@OJ1%Q-:V$UM#;WQPOG0TI!.\S M6P:!+],$OL418E2E0N&G\>3IT(Z#/Y@:[MPCD4VN/S:QEA_58V?:V#ZI#/FN M*5J]5U*!S>"+/$; 9X=DCZ_\D9CL\34]E*C]9SDW,SR*5ZG!^7YJO^U&X^GT M\O,A+!L:S'!A.?]FS@"S_QAICX3Z#ZB#)*R53FU>>UR*8=UQJ0@C,\_OK5 M-E^Y'^3:\ZQV2WKUZ?PO+\[DN-L?0[O%D-FB'6B#^9_P7UR'!^C[98L3)']@ M BA?7M[K_P]02P,$% @ ]TFJ6*>EW":N" )Q4 !D !X;"]W;W)K M&ULE5AK<]LV%OTKM.C,J9SL[ >(!$4T(, H&3UU^^Y%R1-R8^=?K%%\N(^SSWWDJ=KY[^$2JDH M[FMCP]FDBK%Y.YN%O%*U#)EKE,63TOE:1ESZY2PT7LF"#]5F-M_?/YG54MO) M^2G?N_'GIZZ-1EMUXT5HZUKZS:4R;GTV.9CT-W[3RRK2C=GY:2.7ZE;%WYL; MCZO9H*70M;)!.RN\*L\F%P=O+X](G@4^:[4.H]^"(EDX]X4N?B[.)OODD#(J MCZ1!XM]*72EC2!'<^-KIG PFZ>#X=Z_] \>.6!8RJ"MG_M!%K,XF;R:B4*5L M3?S-K7]273S'I"]W)O!?L4ZRQR<3D;=_E873@S?XS!^;= M@3G[G0RQE]3R=16@GF5G>:;I,FN;/:#H4GYR-51#O;:&*[?,S>#6X-N]=NYR_ MJ/"3])DX/)B*^?[\Z 5]AT.HAZSO\.50/Z50?QY"#4+:0OSBM(WB,ZY;KX+X MS\4B1 _,_/>I3"1#1T\;HCYZ&QJ9J[,)&B4HOU*3\^^^.3C9?_="&$=#&$J58U5ZLE)A\_'@E+OI[D]> >:S$G=15*\6_T+SOK?++C=B[ MJZ0V*,AK<>6RJ?AX=RWV)DEN\GI*)D$]VBY%B$H94G?/_ZXM^?!5R8"O"8((=R4!CS@BO%A6DJ*6Y9(?FY-QG=25:OE9%K MZ=4+$0/UY F>(36-=T6;/_A)0LX2VJ;(76Y:C@%N?VV5B.U"A>1:&UGI]R&7 M1HG@C/2DZT^06,C$'1P?.UO*G,51FDKGE=!!&)=\ $'72@*[R='/&)A5]PJ M:2!]I^XE#"[4$@F#:[7RN9:F\YK38J"%3E"N2M=Z5.LKT(#JDTK"0R;^V,4# M:EMPS:W+Q 'E(>YXO 6#+1",RR3@P"^MV8CYFQY[I-Y@A'"6:E4OE$?C1C*@ MX5)#3J=:LU*R*QO$LT)8<)BN+YWT!5U\DA8#QP?66LLO2C1RDZA TZ@)#=*] M XSOOGDS/_CA74"Z+!-#2XH71B\91J'/E5I18+&":^.X"P=2L0Y:/56)?LD% M*MP[$%J4;_"B]*X6&C_.G!^]> M9^("<&2-ST@B1\:@_")2%Z!\$G')1D=I4GQZT::H%AN.JD\XW!U%-4VY)O G M 5&VEH%=.[0*DF Y"H_)1,&&BCH(>7W.K86BPP6A@[NHDBMTG),6EQR/ND<> MV TE<0EKR@\VDPL)$^+W[#8#GK% D'E4V+1!S,6WV599--4M*II8K-3"Y1PN MMAX5JT&&.H?AI@$43I]/.U:/G/4WL>55I58KW]RIO:1T4 MOY:ESA.G=3$C963IGPH#">W0N;GCY4,=D$9(K1R/'*]XX-N81LMS]#:E !:8 MQL64F&ZD]Q_AB02E4O8M2_2$SM1H*/!7Y5V[K("_,BF2V@(,\$O_I4C.M#;'_P M(1,WK0^M)/IW3Z4-EM!AIDA5[,ST Z!MZ"=I/!DT(OME2_OH_W,F4-7&340/ MM6U5HLK[AM#W,-S_;GZ\RMW2ZK\H*Z#C$/H"' ZN)HP.^ ],B /?DRF+-TR\ M2X*,J>ZD11'YYJWWB2BVQF5"![>\\MH5&19VBLIV;W,#(SRSQSW4=6=CY8B_ MWRB0,)6@X3VDH_C=G?4VW7ZTMF[9X30J7W-21JTJ^2QL4B8>3#48Y> JI,6# MB<-CT.P:Y4B8:FA1T[%?,(WD]5+26Z&NVQJ+\4IQS^V82"OO:--\%,0XW2DS MC(1KE:>1.@(#G>1)#.YHZ]ZG?G>B8@32!.3R@!YJ?X_XUJ[G@E33P$5]6)H0 M9XGEGUN"OD=0XOK@AGX9@MNVS$O(EO:.539/=IM$&X5AX1I>"@BC:),2NXF, MJ;OZ+8WTM[9$9:&FTU>G?1ZK>MZ:?H]Z1)YR3)Q,B#7-6=X!N3MS!>%7XFC$ M)<-1G,6"J;"UA#03'C5G)0L:XHEU[W4-:<#G!(,0\I1"DAQ2\T3VTF#FB0T?[> M8R")%VGD]QW!8[%0(0+I[IH4'88 $\!6W5^)XVP^&DGTBG;/KS/CP_TN MT8,[F>6L[V2%ZUL" )9?$!_>1>2*WM.[\SA7]YBU]+&,)A!XC2=^QAKO#5\"+]/'K03Q]0@1(EAI.&U7BZ'[VP_%$ M^/19+EU$U_"GL(6+V-3Y9Z4P]ST)X'GIL#YU%V1@^#9Z_C]02P,$% @ M]TFJ6'%"2+"T! H0H !D !X;"]W;W)K&UL ME5;;;N,V$/V5@1H4"6#XGC1-$P-)=HON0[#!9MM]*/I 2V.+#45J2+2]=$HRW?>PI-52F_NV'CME?9 M)-L+/NEU&44P6ES6:LT/''^O[SUVHQZET!7;H)TESZNK['IR<3,7_:3PA^9M M.%B3>+)T[E$V'XJK;"R$V' >!4'AL^%;-D: 0.-KAYGU1XKAX7J/_FOR';XL M5>!;9[[H(I97V7E&!:]48^(GM_V-.W].!2]W)J1?VK:Z,RCG38BNZHS!H-*V M_:JG+@X'!N?C5PRFG<$T\6X/2BS?J:@6E]YMR8LVT&217$W6(*>M).4A>ORK M81<7UY_OZ-Z[M5?5Y2@"4,2CO#.^:8VGKQC/Z,[96 9Z;PLNGMN/0*1G,]VS MN9F^"7BG_)!FDP%-Q]/Y&WBSWKM9PIN]@M=Y1JG6 GU<&KU64@V!_KQ>ANA1 M%'^]Y'<+.W\95AKE(M0JYZL,G1#8;SA;_/C#Y&S\RQNDYSWI^5OH_Y:2MXWG M0Q+[NG/\HZ4'KB-72_8TF:? 3@>T95IIPP4IT0PU6J0):,RZ-HR.BZ1L0?BR MAXZVT4% _+71<4>%1MSTLFF;:NVYM3A6@116* 1:>5=11.\2+.4[H%@R9>_? M762E$*K5[R4!;:J,^ DVF8K)"\#Q+NOM ATGWPZBGIT,Z0O+:9PXBH:JUA': M01*^D!A"^(;N2\M,ZXM98C;Y3/C=H%NNVX?;#YD(ZSO1P%(3XC M54$9 . F0#6U-2)!0LT,Z7-YD*B7,OM,'R,418'BQ;R4B#4U].0_5MYHZ 'A M>'*21'*H[)4QSQ%#L_P;;9$*LH.%;\?3UFP/WH5NK['<(:RBAT7O.!JC%O48 M49W0]*QMZY*82&'@[@S=L,?%B+LN317(NW+/W8:MLIA@DE@-7RNK5SIOST<6 M-EHNR3;!P9F"K#OH@V?M\4K8#H=&T:0X)S]+]+>4O$SYMKDQHU$G^R$]H-)M M><-^\'_,9FD$):;3P=GY;#!&K_T7PAME1(96/**SX6G?G](J^](=I,8"C%@" M)(U["=R*.5W)7 6#51,;SUVSO-T*!SD= MOG0OC0Z>#17[=7HD1LG0159Z6)=Z0[$4!_Z^!B0EQ-U]_"YYXY'S79*?S$EHH6'2D@S#TIKZVD4F;S$BIF^JE'2 MF[72%;/TJ#>1J36RP@=5(DH&@RRJ&)?!8N;7;O5BIAHKN,1;#::I*J8?KU"H MW3R(@Z>%.[XIK5N(%K.:;? >[>?Z5M-3M$(72<"5!XWH>+./I5>K\O<.? M''?FP :7R4JI+^[AII@' T<(!>;6(3#ZM\5K%,(!$8VO'6:PW](%'MI/Z+_X MW"F7%3-XK<1?O+#E/)@$4.":-<+>J=VOV.4S4 M>ZOI+:F^S",0T@&27H&;[A/=>CQAO^5ZMU!JFQM4<-2 M4',RF2-0F\.UQH);^%T9 W\O5\9JZIU_3BG2;IB>WM"=IZFI68[S@ Z,0;W% M8/'Z59P-WIU))]VGDYY#_U^5.X\TZL-+8*=>0*[H3!J+!:@UV-*)YO3C&2EE1CF"S,6Z :YN6^B/">0*H5"=ZM#'N?-"OP -S !:2783I.G9&%\2CI MW:%@;K>::?MXY!N'V3B!238AGRW*QB.IC>3?R)V8X$..5$2BN>*"TMX82-(P M'6609.$D'O;^(/KZ"#(%(J4L$S >A=D@@_$PG RSWG&+Y&V+"&H1BGD#EV&2 MC.$M69-P-"*K]Z*B%Y!EX7!\Z8Q1F)!Q(]OAVLXYRI6(@E6M?3)O9I\I&]), M>(25(]?(@@PBZP3XJ"Q"G(40'(M(+2T-\X/1!'UBD(NF:#6S/OFCW59JB\ T M_59M3DY-\J:MO'J6AC]-<*BUVG(WKDV+XO*X@$$_H\E%\KLA3.3 M9WWBW/[5*R'M9&KT8UP\AK K.<4X6@45?L=MZ7L/2>4'"W:'@EA7?B:Y!J

,X M:_&DJ#8N^]B-812=K"<&];/_0U=LT ?A-5X8IR-0O,T3NUIAXBZ/']@=Z[5@3&_1,#VGODQ+HUD5!XGLZ]2+F]2+7TO81H$^ M6Q?SP5>?2NF]ZA?%' 2@,UQ$[XLT)PZ[JF[FN.&P<*.5.RO9FEZI>9(R#(3: M"&K5/[^S,1ZYVL,!]3F^IGK>T:_)][/I1M'#/G]G*FV3(AT]Z#Z5MK^]C@'H M3O;>ZU<_?SY]]>:Y(^*]A7(7=;RYCN1H2W72UBBJTBJ5_>'X3E0O';BF J@N M8+/^+GQ,OV^Z!=;K\LV@]QP"RVN;':TU@C>#XQ0HH%^7Y1MC4F-$ /W>TQ:L M$WBF_@Z^%!*6C9NRF\M;IO@H6O;3+]H-27 MT*A.'T)';]UBF3:U18,&.L*>NH,\FKX\DZWPW*\W7MTT MIIT'J#AK6[-UUY:U0[?MV_IZ"LGFYC#>(#ZZNLBX0[M7V>S@'I;8;AANNJG; MT!_)L1314]D;(ZVP.)'!$'L(H\1^QE>/MU6[-J?;@?$J.Y;+$E&P-9O[A=Z# M 02:@T4F)= 424/8QIMM-HPH*YTBIB]OA\U=G[TF>3_S/3N0< MAKUT/HD^0R%+6ZG%&AKL"A!.MP3?77UZ-"P__4=?_/IN1:^[LM.7PW,F\JJK M<&?(NLNB-P6[35F8W20"-'"0NK/4%H[9WA'W][ -E,8'/GJA$OY9LWH&9QL.]>)V5CGRCA?==(IBHD) M>D6:UI9Y:77-6)Q"YQ58)^6.,9;NO['WBTG7-2<%!U)+M[XP=1S7U*ZU=5H= MMBX&N2DA80&LC-SHFF!%KBW8U^7U=J>P3#)2E]5UQXVU722P );VEFK6[\Z? M:,)I]2DQ8%^UJ#2/:4^YK6&NE] B[9-P7 I7'PK/_63AO#]%>7_&LY7T#13W ME&R]61C.,#IA8Z3?:A'_H5CHA>$@"_"ZU@IF*%?U8CB"!H\:UB:VH9UHK\8_,F8->_)I2^(VMT"_[='-31!]T9!S/H"#91C%]76FK M;/6EMN?)6Y?_X?(_]I'_$;G\C\?(_S!E*.S[[7!UBS:ZF-<_VN7 $>'JP 3P MCZV:_P_3" ?D?1 M=V+2C]]V]]N+X"K1KY%^79B.BSCYP>[VE@N"<7[=M]=]%X_C-/*7_UQ[L1O" MH0WA__S'O%DG+C[(?LO MO8CH5)29KKM5"J^3B8>P[7<)?.P^1H4%P4S5+\\X@_KJH7>CE6O6T'"C'QW$ M*NZ)PAPD.4BZ!R2E#I$V6CJ'L4.>O?#(L4W6<\OIF*GU\(;=/ MFGRMCR[4BQ9S=?$4H2[9:L.W]D2=#?X*.J=O]DZ_3[:*#P)ZH0.]ZP/?#O^< MUN 8Z$X,U(71' LY%G(LY&208R#'0$X&'3!576/&ZE#RIAW+80D4WV'';HG% M;AOGVM+#\CQ%*'V?U/>QSQB7S3()YB82_)[%N=9/_?BI!O=#Z>$CI_5A37>5 M'';-\U_WN*=;F?PAIZU3*^[ !CL],_DHRX+CW_0;74K/;M,=;SO>=KSM>-OQ M]K/=YOOP=A",LC0\_EW?)W,[#?PP]M1QLN/D.WLO'B *?[C>BUUK^<4>YUD> M.27[3)Y[-I#XW=[4PX")I_":N^D^Q^DZPG;3/)0+)G/WUM.S?F!GI%'8'\S>P'NG^>\ MT2Y"X_C9\?/*BN1A$+K-?CZ;[5CYF'?W'JP<1,]:-#_:1CMU^FBV\MGS[(L4 MOWL.HCI'Q?;FLUOJN#L4/6K&>JDH&D2IV^AGL]&.C8]Y=YTR]((VV['R,>_N M/5@YR=T^.R7Z *;K6-9)7YN<'S[HOCVQ8E?ES7Q"*Z*]UL:W#L M/6J^>JD &F:^V^AGL]&.C8]Y=YW]\H(VV['R,>_N?4R:XL;^<6ZCG19]3%OY M['GV18I?ES7Q!%D3Y71.IV*I4'D])_GL]&.C8]Y=QT;OY"- M=FQ\S+M['S:.77S :="',%W'LXYG75+$TWDB3NM2\]6)!=)1&A=OJ9[/5CI&/>7<=([^8K7:,?,R[>P]&CD=Y\<(,&Z='O_2M M=%S[_+;:)48\@COBK[2[E>Z3B#BV! )3I'WC:RHO/R0NYN MI4!=L]CCAH.7BOROXY&?)\]YKUV?$,?2CJ4=2Q_!ICN6=BR]G:7SXEE7Z7Q\ MAG8ZMN->Q[U/SKTNZ>,1O"P?ZRF!-9R74^E5\HQ6GI++DR>'X#YA#MJ?$\,[ M:/_>O8XBM\_/9I\=%Q_S[CHN?AG[[+CXF'?W/CED_K.VLESBB>-9Q[/'OM$N M[>0Q3L%(F""=7?O$^8- MGK4;T>5H..9US/M,-_J04S3NXH$X'!^#?MNE60]65V)W$5#QCT6+)U@P'>.O M)R>?/3J!59N[$J#K$V9 )[(Q0QTG_S][;]K<-K*D"W\^_P+ATSTCWPNQN6BU MWWDCU&Z[CV:Z;8_EGK[WDZ,(%$D<@P ;BR2>7W]SJ2H 7+12$I<\$3-MD6"A MELRL7)[,G!0>9?]XBX[A1CXSXYB5=%M='"M,RWZLW6 O3E3+MNJ'%>[2+51S MEWW: @'>]H\.;X6]+]M5EFGMWHJHSPVWMO0GZ'F15"*I7DI2G1S?JFZ*I!)) M)9)*)-5+2JICOW/8%4$EOC&12B*5UD@J]0YOA0V)5+JOT^^>T*.%9S;O_5L/ M1]\3R+:ME-MP\/C-?[SJOKIYG>LA19[M6&6Y&[Y<(6Q9[E8N5PA;EBMZQ[8> MZU8M=\5(@XTR0%:)-/BC=='R"&&0Z,*+TSSW)AIV=*0R_4;$Q\[PTXZ)CUU< MKA"V+'%#B6"?H-H>6P@N!E67K"6 MI]RO2@ZLB&(^_G2V0FJY:<-W+_T8"C*DXF8 M#86:M%OMXV>AG W%D8@4D>M:KNOUO:XW7 F6NUGNYAONYDY'[N;'8CRW)\0J M3DMQ6HK37*X0MR]W*Y0IARW)%[]C68]VJY:XX6+I1!LC35I.:QWIZ>^ZI M]Y\O7@OTDRBXN5PA;EKN5RQ7"EN6*WK&MQ[I5RY7VQ0+]7 O1(E@2 MP9*\-)9DJR2[P$L$7G(K]/-4X"4"_93K6J[K3;RN-UP)EKM9[F9)RUC[\IZS M#HQ-\%6(B_/I7)Q;==O*:G=$7]^5I-QFC Z-/?2LL@+E811,A1LJ%P1LMK-EYQR1\IRMW>Y M(J]EM;NHIBMZPQ5?N8_E/IZ]C]M'_O%IQ^^M/X.TWOO"NZ\;ET4(7N3Y46:3V:'$J M& V%R>/C^[&:IF4!PU_K\"V_JM-NM]H_VA\ A<9JDNLWN9ZH3!7:[@+1,X_] M:M83=!GE43^*HV+ZQOY^@8N'7]?[\>VKGY9\=WKLOKS!X82[^*BX^$2%&")F M"FBU.U&RR+-DG^*%F^<6,\/)>OJ3]M2M>4R[LA6?RLR#-ZJA'L,'GKX.XC*$ MN10C[0U5E'B#+!VC,AOKH(C2)/?2@8<_AV7C#_"?F0J*4L6>&J=E4N2>RH#L MDR'_% ?*%3 DC-5M=SOX^Q1>&B67.B_HI? -K*5,8"R2L0KK6.5E/X_"2&73 MUCW]KL(&=V6#_E.RP:(K_PGW9LG%\Q@#)07A#I="E&@OUD,@\(&&V60:?IDC MW=8^5$GHI4#J&3!$#BP0)4&994#&@Q3(QN9/1RQVC]9@UMZR\ZK'H Y:ASU0 M?Y[F"!\N&%:P_*_ L@.X/-,KO!##* _*/(=$7",+ ]N49G4OUF+. _8TL$ 9!$ID?P7'2IJ2QDZS''_T2GO37:(YI15(V""@RG,@^5V^]89G6:$VOB M10\\#.N -X?$?95 +D9IKMVC$>H*03I,Z,D4]":O@(GYGLH]4$>_>Y,L'8(J MD>O<]^#:CZ-_H9" 38B225EX8ZWR,J/YV"=!;( " =15MNBEK=TPX'4HLLH1"L" MK.MB=O- 75+>)(W86,!=Q$W$=UR!Y'.SL5/,O;Y"LBL]B94!D?19,+G''HC M^'\Q_I'K[!+>LI1HJ@4Y4H"-&&M=T*_MF(V5J@SFQG9=/C,'Q((# \*Q>#H! MUM3:GBIJ$W9VDRC&S7 -3NBY MC&?HPYE&P0C?$\*T+E&)QA,BGJP];TZ)?)83L#CM.>%DQVFH8Y\6D9>329H5 MMXZ>#%->)G!35$QA%%NBV#482VCD-F$[@"(+G6,1A!(2);'"L0EB+"K M!!_'LWG_^9W;R]3:5J!=PU,>P/L6Y2R"7KS MA<:2/S2B-P :N$1[--0333DC2-IXS)9V[?'@;]6EBF+%3D[\_A(OM+AN$<,] MQO:KG5@+[!B>+K^,Q!2*CTL5N\M!6YLW+7,8BRXI^R%06&R-XA#]JMDZ*;U M24[MC?7U?AAE[#M#'W Y3MZ"&3")U?0-?NM\)Y8S6X<1O\JB".%/PZ'VG?3# M?3B:M_WT&B>/CFP7LKA>H[#F"G9W/K2QEE'N%:RT>]#PZ0 9$3F-LLH9-]3L MU-Q7 YCF&Q5?J6EN(@-UNFNZ[190U(L0SIV#PT]"-FY#=_"&-4B51K%^B>-(DN<\N/B^P@TA!,O>&NY1PH.8UB .8L6 ,U*Q)4CM] MVEUO^&!=_[0JXN)[#GTIB^FSR:0F:E?WRKS(=Q"USYH@J".J\D(O;O1M9V;VPL?%4)8(JH* M[*L!G1CUE'_[^TFW<_S6#9;"L> >P"\*E46# 6<@._!5J-_R-ECR M&:LIJ"0X*V5)* \0K(CIEIE[.#1<8S_Q09NO)S\1V&VZ(QR:(&-['TM=H(![%1+-75163; M$O8<-"OV%AH"4U<8V0:YJF(B+I!1[@=YY>FJSQ#9EYT])(P+K6/684!? R$S M?ENYC7DR]<,4I+QU10:TOVM9R5H M35:#-(Z =SP-"TC'D5%B W049]KZ23%PEU[I;':^+0\.+TPIP%_)[)$.A["G M"*R!O9M1O\EA-+>AO@=W*4G^FOP%D0_TA_@ U ]+N%0M$<"_ANC%QP&S*/]. MDP:!JM$?QA,)ID:>C\=IB&L=Q"5ZCAAG4(RRM!R.^+!SF@_-FK?9CJ2O>?(4 MM>0X))QY5+2\BW1L_41T]G1VL#3@,2!]%.^@+R;DG37X!T>3=5KC.Y7U=]$$ M7U C=0E*OZA=N1J1,=(JS! P!?2+YP@DCZJ/SFK/_ IT"+YR(EG,%Y"O[,( M%J0G'U@XT^;7:&W0BQ3U,N1;'[0&8ZX@477;W:Y1,4!Q',)3^%&/9Y #_^5L M@3##57Y*8U)X,>HM1M8U[D*T;,CGR3HMG-J^\9Y:HZ;BU<;B?31)_:;@])LF MHI6QLP8C""?ZQ$5OQKH8@3[M5PYA(X)VIYO*G[VJ,CTL@0+3;%J+F!FG7@TFJH=$PG"9 MLO.-@G+.";KTGH/I@PJ9PB4>.IR9OM9!2?P08B8#:N,YO$!E,]/OM;SS!$UV M<@;Z,U3/_$+*05_KI.$3W(M>T],TBR9G\P2-LIIF$1RZ0A]&W:&@DQ%9_TT' M[%YD1F7-<$8"#. ,"JMYU!PB=3%2>SD>'NTT1SR-SP7.,@[9$0QO@]>1K](= M-\-]R49DQ9 L#K8JJON\#A96>9X&$8DA,O%( M8&DP7^I:1T._L;X3XT%"H&!4.'EBPJX,-I[5%B0Z*=')!T4G#R4Z^:S1R97= MID>VXL_:0=H7@M>]?>_K*-/:^QV>&^7>>] Q0N]WNC]Z'1^OI@,"PBL#>KSM MZ=YVY <>=%N=[@TY@IW6P8U?W_3=C5\^Q7>=UN&#)[N5Z[PEG^U9ZB#?J\C@ MJO*VUK+&X%,F[#U)D9'.P2TU!IL9[7#K/K">R-,>^RI+8O.U,.9K03>OA8?1 MR@U[>,\2(QO!/"*21"0]0B0=B42:-:':,Q!/D3Q/6PAYR4,:=:7*/(!LF,P41>(&&%4YTA@>LACJ_M;#&YNS;BY1$WSTQ=\;% M;ERN$+_8UF/=JN7>WR"Y,81VU1C(O^TO;H>@1O1;FBC MSWK'6'K'3O<1G'QRU#K:Y).^F_#^<>N.?,<86N[H>W-VK^L?'I]N\J'OF!3? M,9;>L=-]!"C!O])4L D,$QM,)C%[KUHS(39<7XGP1P2&"8]4>6;_7 M65UH94TEAV@:(C!$8*Q&8'3;K5NSR#==7CRK"^DQR)?#5;B0#C?0A?25VO'> M,4=$'$EKM-P=NXL?8]-U_<.3C7;%[]A9"R=O\^D^"L#6;K4W^:C%]2(<+1Q= MVY&#MG]RNCJ/JYRU<+*AM.-W'%!#H^,=R-6_060LG;_/I/J: P+$4$) " E) 8(V= M%)*EL^U9.GZO>[+M:3H[=B6+P!"!\72>T9/6UJW[[5$H5 MB< 0@2$"XVZ:QK$4$) " B_M0N(" D$3R2\.)9':(K472^T#_^ATZRU$T?-$ M8HC$6)'$Z!RM, ZXI@)#7$HB.41RK!H*=.*?'*ZNE\B:B@[1-41BB,18$1KX M<(4U'-947FP*+*F["EA2=YUA2?2V*]Z_?AJ'2P_CURS-A@ML]Z:.^.4LA(:12E"Q7"%M.>H>7*X0MR]W*Y0IA[\!RI1[$LU@W7W2N M51:,/)6$7J@O=9Q.QO"5!%LWR"D@WI\[(VO]@][JX'%RU!MRF&%H9NW,RGW=450Y"C%D:6TWV9_IX[ 7UZ^?H#.^NRN-!QC.%8 M]%C 6[]K#,Z*OV*#>$R$Z3V*49YL-#9\QXY:&'F;3_1M/MU'^2LVVNVX*;GMN^NO^%4G.E,Q^2M4"$]%>8&( M\DLIFBAE2:0LR>(]._(/5]C2;$WKDNS8)2T"0P3&T^7U=5>HQZVIO! GC @. M$1RK=N2T_>-3*9DH$D,DADB,NP5ECU:(/5U3>;$Q,)@=;\.1WKLZ@3B51'#O MJ. &5:]WNO6B6U0]D1@B,58C,4ZZK:-MEQ?B51+!(8)C]4V_#GI;[Y 654,D MADB,U4B,WJ$T=UT7L)(TXG"'\1OVX1ADZ=BZFM)$7$R;!!#P?0H%*W7WAZDT[W,3Q]>KI"M6IM.5I:<0A+;]3I/O*:[IWN0)$)X6GAZ4TZ MWXZ3V]U M<>@79W-1>(2AM^%T'\70K8VN'B%N">%HX>@&1Q]N=*$VN:&%GX6?Z_SUT7PL:2["T,+0]=RV MTXUV6.S800L;;_/I/J8:B=2O%=S$?0CF4S'2F1>$I3?I=!_#TD>GK8T& M\(N'1EA:6+I9%*CC'_5VH.J \+3P]":=[J-B+2@&_K(]P[=@>+M!!I\81!JJT7%Y)_ M)')#Y,;JZ[*+X!"7C@@.$1SW3I:2;K\OV1-'<#$+3^.C+KPXS<6SM")F[+:Z MR(UA6O9C_9+"^V[,^,.32?'%&['YNCX:'4@WPV7)2)*=D"4B"ZR:JS2ZB#% M&RX_;O9+P7\5+(3^>8?Y=[KP]PN[?&9F=]-L^%%\U9NH@%D$2W?IB[[42:GM M5JWE'+W:03;.J^ZM.V@=]GH_WN"RN^<1'EEO(!_B/\N\B ;3AY[CW;9DV0;\ MJ;VA3G2F"NVE9>9E?&C8CJJX2F$NF5;CW*/D[LY;[W.6AF50N,=4$GH7.KN, M FT_:\T]%.4><'MTJ4.&J14C[>4*6#T=H"]:95Z1J>"[SKQ\FA<:7H?#!K M MZ1@6!_],QY,T@0GG"'J#WZ>YML_Z,-4PNHS"4L7>1&4%#T Z6P,Y;LZM$K%U"A8\BK(H@G.V\R0+I%)%N5VCOBK<1KJF 8;P[+AA%42\!GEY622XMZ8Z+0.NC=]?=-WG5;[X3_>S/>V'_SCA[_TL'NWE]X0 M*CJY?Z1HH0R>)[-;[01[:R]0#DY6I-M42N836PGWB>NL:G%/'=8!6L!O_N-5 MY^#5S>N\5S3ZQ8Y]E4' KZ-,:[AHDF*4PR44PD7QN\J"D=?K^ ^CE;M$J-=A M%U=$86LDDAZ*)'E*/EXEK>ZA$CM*RQPTH/Q6G\_F[-&3R+JNB+K9[DGM[JW9 M62+2=E+Y$:ZYB6MN1:\)UPC7"-NY%*AEHX1^Q/X9/E?/*C\,E*3$U) ML5^^H29\(3#GAT9W7_RXGP,WM/$1_4[;/VVOKDG$-B,\UN.LA:6%I6]I9MOU M#X]/-_G0A:6%I86E&[B[CG\DW3!%WUZOY>Z8G'Y4$L]1:Z.U[#NR[\NT,-A. M#X3!&HI$7 V^7&ID;%V-#%"*5MBS8$V+9.S8)2L"0P3&DPF,$[_7V?J.N"(P M1&"(P%B5W>8?]:0.E_AF1$Z(G+A)3AROLM?29HN)%?F [HE"J:?J'JZ@6M_A M&A?K6YJ6DQ8JMJFH(JU7PWYK4\I"JN(\C1.IZQ^>[$"!+3$+18"( 'D" 7+0 M]D].5Q>;%P&R'A0A D0$R+-5U?)[[1U00<3/M)MR0XKPK=8G?=J2(IYW\C8M M+,+WE$7=&JMZ9$FW>B8EYS3\W_(2.!X6C? ]E5/-.I7!=T5ZIU_U?.\* M?C;)(M@?F+87PBOAMZJ:4SKPCKL_4FD^&%"-TS(I\,.Q'JHK512YF3(,#2-A MF;O+J)C2L"H$&9!K&#:":04%/-*?FA)[.L/?_5/#4D,=JRE7QJ/W(IWA^TA2 M>#%L1)S#Q*A\'P7@9 M+!O6$N>I-U+PU@0+Z[GE=MNTW+.+S_?C:Y-%-L<=/W;;5R M*9^I1/GD"J<:;131&GH1_U400 M/AIA[C&!5\6F;KRQO!'!KH@ M%G7^JXPF8Q@1/DS* :A[K"$;O8^NLD%&!T['8*ZXJ>],#+B^,I44\$FFQSJ, M2*7BJM"@MF.=YMC,8B]7L>+;L9\F94[_T(F&=9E[#U3ZX+NIX8PWG$YR&NYU MR_L\,Q@5@6[N@"EK#8,7(X_O,]#R^UA,&W]"*L25CF.^/W$0, &RJ%]R-6@T M6))IK20W/$W5NJN],!MI+UW8@J#$52<%EO+.@:ICVLOZ3EFE>A E43Z"A=F- MHP6;FM;N=GY^.MKY,O*_UB7+6$V]2P6G1EHBVWVPP'UC >*917464X.!MB8I MECL']:QB#4-VE:)H:\6;!RRC5$SEK-IQ=.U[0YT.89$C]'_Q)ZY&^U@7HS3T M0<,< M-'06Y?9MG1_HWD3)Q W(*KSM+8TP/0O(O2Z5*R3DJF2\GT=6:>-1))ZU@.7$JFOY"LD_*<4C)=BC\+UTC) M=.$:X9KGYAHIF2[VI_")E$Q_+E-32J9+R?1M*N$HQ5CO3>:=KM\[6EVVQC;C M\=?CK(6EA:5O*9G>\8^%I3?HK(6EA:5OR9+JG/H'[?;VG[JD2V[2F>Z8G'Y4 MFF.GU=GDHY:2Z5(R?=,DHA0JW/)"A5V_U]WZ0H4[=LF*P!"!\60"X]AOGTJ/ M!1$8(C!$8-S-;COPCX^>JAS>VD@,\'IR) M1("( !$!\A CLGO@=Y[,V[1&$D3\3;LI-Z1T^FI]3ETIG?["R*.ZAXA&?*S; MB0995[_3G1/T?KVQ*J,(\^U ^PE$NZ&\^9WVZL!(:WOHJV3D]3ATX6WA[=MP MANW>ZCS#VZQXK\=1"T<+1]^*Z^D.44,M$)O-9#P1LG?/.C]J;70=B;O)V!_%I2$LO4FG M^PB6/FSM0!&)A3K31I_X$]>5W.G]D#W803U5F$"88-M:K*^V)>]L%[WG;A6> M1?!>;)^VH"4O=PS__4_7'-STU5W8N=?U1L.F9E5?--=+'#[V36==>!MV\K4] MV&",@[;K_DL; N9__;VXU!@.%+N0UWL UW/8^QV9PH<[AN/&O2Q7# MQ_6N:_S+/?6ZT3;1-&W;Z[_VTGZ>QKK@[I5$"&U:DV11GAVW1 MTB0WBPM>>\M:*'KZ&O^MZRW0@S++8"C3YF[7>A"N#TM^ EKA_J8\P\7.I[MS M)K&8\A(]A*._U!Z:]S_.L:OR)FD>T0-@+?QXY^%[0B@O12A_:F^DPNI@&T1S M=_(@ >PZ4%YBOV^-K5$S[25IX>7E8! %$4H&(),@!;W "T W4/ 2:H *KP8Y M2 T>/?QVI%5H.ZJ"L$+1-]OH'2ER?NQ!&<=3\P;\E>U3:T6YCQTSDWP"4K-J M*XO]TK'-$[=3AY?.=JW<3:)PS/P@HNC9>PMOX6B,-TN]52T<$ JC7,CY;VY$:E=JFU VNB*:NY0'(PZK=YV7?*][=;(J\L]O+R1VA9? M_7/==6<)Y&FH8:U[:W_1N::#Y\:SP,DI]7_>]2[ R_;%ZDVY;;#=[*]=M;36 MXTF<3H')JI;6M^IB^"Z0\L#".RQA*@J?)^$/$L$TW";A DA;$TH)86A _*Q]+"^(7C\B(J-/2@EB:J0K7/)1KI 6Q<(UPS;VX M1EH0B_TI?"(MB)_+U)06Q,LW] XQF1V'\=T7LKRF=9&DGMJ3@-T[_D%/ZC$* MY%/DA\B/A\F/T^X.%%@3^2'R0^3'4^3/'IRLKL3(VHH/*42RFT)#BKFNMJ#) MX0H;1&^XL%B>NE)9B"L:Z*@H8>VS:/%Z\A:#W /:IK-R"*?& M>'9"C?=?T_)4/]<$>1WP],P;AIE**&/+943=GCN!^QPE*'L0AUY?X,*-C?*\ M5/;5)1X@OCF_81@/#CJ! >XQJUX#>Y_#4"'^%,:*5;^&RJVHJ,()SYQ'/4N. MAYNH:9;&<>/X.O;QEG<[;IIRD19G-%'*2:?3.KA[]M$\_1ZTCN^3O.0A;\'6 M.]XR*0QV>DM9C3< 7OB 3,FHGCXX*!.7=XB_YWV.\56US9D%/X?1I9/AL;[> MYZP*& 8!R.4X>1M&^216TS?X[=N)"I$&:I&'B*6-=]8RBA9ORPNE$,+[)TZEFA'_U,9U2YWGCPH-+,4^31,?U[*!XZKLTP"4K MJ]*&*",TS],@HDE<1<6(RNS!FSC5:*#-=/)R@EF>-K^([E:7#Y27_3S(HDEA M4]T]($9Z%R6(PJOR47K%W\"V8GH\/KE&>SZO9/5-1)>6RB@I!V(_!#Y\21I2\>='8 2 MB_P0^2'RXPGDQ]'QZIK^B?004V4=1(4D*ZU20O1.5]A[>6U%Q".:#4JJTO\_ MFTYQ"SCTA?.41L A.JMW3L()P>S#J/"P\[-+B3EV*3$60SM640)#4NL>>%I^(\M9,F>17KH8K]6J,.'F0.:^][U/"-(/0DL.W<)MS? MB0043P^;.OU5JJS YB/ 'Y"M<(-%ZX M1KA&H/'K1DR[8'\*GP@T7J#QSPV-OU-$1D GVP Z$7S:T^#3_,,C0:@)OE7D MA\B/A\B/3ML_/I6^0") 1("( 'F( -D[\+N]'6@,))T]=E-L"%A^I=*B=]H2 M82&=/>[7V6-X!WCJ"V/F?^A6#1\(;'ISGX]9N&LUL.D34C7VP-%,0XP(&X0D M";^]^M)X'@X!%D2SR5_A@Y_A8^_<]\YA M/E['4_WT4IN^&W==$,)J[]:XQ&&#ZRMN="H9I+@&SR!T\;U5UQ/JWK&H[XDY MKB6-1\S$[Y.G\#"":WGG\#934MSGWS26Z0Z*=AGWD2F2W]'L2V+)C;,V3AVA MWBO= K?MRB1/6++GU^"9S2*;^U-\U4F]9PH]1RCLQC.UOBH/VJ>[@-=O2P8Y M[-XGH6,F&:1[=)_F++VY=CYW[V^R^NR-F2R$M<[?.$>-1^>N;8[O);J8V:$- M1LKWCF]!CC\"Q=T^.'@$9'TC7]P^:%?_>Q)P_"W ^?;!:>U_ J(7$(. Z 5$ MOVG,LT8B:1T!X@*B%\#6FH@Z =$+'%BX1D#TPC7"-0*B7S=BV@7[4_A$0/0" MHG]N$/UM;G'!H6P##D7@:T^#?^WM0/%& ;^*]!#I\032XU!:4XCP$.$APN,A MPN-8A(<8*=LE*00LOUK;Y*!UN/TR0DK+/P8K/^O]\8JT4#'"@B>3++V.QJI MJ.D/[59O%O:K53"R"/&[P7\9OLI5DRU@W918AA]0C>7"(*U-N7@J<)R.QU%! ML'.LK^RE";WR'3_Q004$DH1QXQ1FQ=&C32>=E/X_"2&73[0'U2OGKU;U7 MRE_O9!A^%R*G@MP5Y*X@=Y^5CP6Y*RB1-1%U@MP5#*)PC2!WA6N$:P2YNV[$ MM OVI_")('-#:@2X<3P7U M?4DQL (,[QS/X.+"Z-(M+];7^V&4<9UD!!Z6X^0M.HQB-7V#W[Z=8*G@9%CS M.$;\/NN&@S\-3MF^F'ZXKY,0Z.4:5X#H248G:BA9I_KOAK --^H^$I-ZF+VO=^@>&3'-'U[Q.=#:?>;[^]\_9> MN8]?O?81KO^?9:(]K*S=;7<[K=JO(BS=C2D$91(54YR"RKP0"V6G$YUYMEJ[ M=U;$*BF4[_VJ4]A"Y14C57B3++V,0EA?IA-]13ARS=. @4HNI8Z5N^,TH++D M_)I(4VUZQ/__ 7_""RX*6%C>\K U0:YB+"G>K*5?FW 2Q"7"%>& ,!TA+:%7R;#/%5E&P!?.:J^Y<3_-%, M2D/GH-5V.0W%*$O+(4P0!K9- F";>=_@^VKB*AA%^A(3( )0*S P 1L,FS.F MLNXP'AQXFBS;!17GJ5T[55O/TG_"A95[6*@^O<)6 ]3/@3< 3S6YTR)K>_+# ML5O5_/3_[>\GW<[Q6RXA'VN[078I.&B1F;8";FX1_1O6D,-\"D[X@ %M\@>N ML>4!X8]5J&G"09"6-%$XM3@*IAZL*K#S--^Z4O"U-0UA#CD'>O";>;K@I)K% M6Y8F<*I7(TT@0_A;C?$UN=?7E/,"HCR._D6T;8@6SBU*PYSX4/]5X@1,G7D7 M94)&!3:[;P, TPM#VS,)W5*H)4-SWA,U'5/:#?8=.*@UR,!GZXT(?/A)/L&- M!+:>^LRZ5)@?7I,.$Y!;Q..XP5E(Y.B:1.\RZ(MXS5W4;*$ZG?*;VENN&('./.V2MKD:RQ>676[^>J%)#3-H"6J2' M2(^'2 \*]'>?B7I$@H@$$0FR91)$] _)QQ >N7G7/OYTME85M]<)"8OPQ_AV M=X## =X*K4/\&TPP9[!#L20+4*SBFWZ*_2CB)8DHPO7=J@F T[XO.88<#G6_] MOMP#AF=W:MF>[$8M?4:.,EHTT).B@1 =1 D"3QG_;M@1T>-5)7P+^&1D-# O M<3']"X'E*:XF#;[[!B6-;(ICG7_^1/AU&"@F]+M/Y>X)Y0H_I?KWA ZVP%*2 M.E3>'C8K'>LL;WF?X$_%8$2$^@X1Y [BR)ND>82H6BZ%/XC3*_/S:@%1#N^8 M:#I<1%3C?F0J*.P+/;B]QKE/P&BJ]Q\;J.VBF=!,"7M;9#H9%B.+OQUF*##Y MY',GDY[_C+W=)O$_#36[ZR,HQV6LB$3,S9(3%S@.H!.EWRAO%,$QP\6&%(WT ME)8%DE0^2U,M[XS(?O:6(UX*9Q(4W& )?)F$OO?#P6'KN/[U59I]I[0$(\)Q M1C,I#T<'%9H9%$?_AJ4&9 ]2@[O8PJ,=V"Q^ G\E2-/ MPB&$V*$C]!KZ LL5S/[(,<>$61Q^^UEEA7?N>^?PF==A70!8];]+^%QGL.8O M>I)F!25C9,C?B=?'MV'OC#)3C($G&+UW!?N"7]+B82:YCG$3I_7\BTI6+=D) M7$MC)V#YC;=E>JBRT"D?602?X?LIWV/9+/(2ON1WYADG&<#$T?2IJ06!22?1.-R[ 7 O+B,?A2:K<<$!FR:@&H@ M[["/U)MKRD^!@9%2>;J_F3WX4L+)'!X8 M,)Q:/?^F.C!LN-+7>.W,3(:8L-R]XO==[O7?VNM*+E+$S\ 0Z)W"@V&HGQ!P].,0JXPF%'3Y2/U#?2S%UL "] MA]+_.J?VHJ"DKZ%:P@Z6Z"M2K#%(+:D)CI?GYL_3!DDCSN@I21R!SA/JFTBF MY9T/D&Q00E&26%\##>OFU.G7#1:9>S,RDJ9TLQ1UMA03VQ;P1L7;R&$F9I\!7 M*4G$>6[I3V>9ZDK;FU+#.B*K"37S,&=9N#ZD871@EE"/*9\2F?H!'/HU]?XJ M83,'E8^D.85]?+/EW6K>9A":PECKHI9E6<*G]BZHO8NS>\3&3C]0N"5A[NVY5>IKJR.;JW#A_B(V#TB0F=%J>8^)U7@"5'E)&H,. M&T0Z":9UAQ&(ES0)%YPXT)(>#-#J@R<5+.X2M"1MY%D.#Q=@LX)L!^4HSU4V M)5%9$>?L62]]#^KEH*0O%O_S$YTEE )39.NRD&3?U"N-1C@GBB-*D<6<6R9J M5)2E6=Q)BK)L$!(R8HZKJ M2%J/2OGL-UOF*^OYWJOW\&80S6-=C-*P5@#]U7/YT<2B><%HZA@[^\()FR(F M**K1S+4./O;WV(#)'ZV+5F4!CX"TV"^-D?H8[03-%'/^]1VIG%PRR)3]L356 M?*-!P$_0@5VHZXF:8@ #'8.#0<[&163>-M!8CR:V78;A:5!R;+P%M&-5+YF# MLP=Q;HR"*..^Q7V51T20C>GDTQSH,O= :0BXQDFNLTO4Y''FJ*S">$C49:[9 M(W:>#&)FW"\Z-/5LSD"!A;A6L M-%97^.!G^#*B^,_/^!_2@\HA$(77.?+-L!HV* F-WQM(A^/8%-Z&W>!VS_P" M-J#PTSZL!8%]$2DPF6?K)&G(+=0\A'B7,PH]',:!%5?"V' M7^1@6=A3A[61)1V"R0-4#R-XAL ;QJCOZ+)&)NBYSS!9 U957.'">NT?::S# M]H\M/D#@GW* HCM#$L70XD0'Z-8QVX7:>)J0R%.DHU]5-CZ*S%A%8UR/)9C& MD7$IIABD8<*!(&.6PCQAS[&8$DZ>#>MA&:NJ:A9)4J0A\BZC56"K+:D<'?JP M$>3SQ]^B?(ZID(\]:>/%93;)=6/TNF<.'19HNI.8!VIUQ;]H)Q(0,+P)#5*: MW[&9C>*8:;/31K-;>-CQ9@.J!K]83VF*6/T*K'JZ Z92K)!;P+/-U2J$AT/B0U:J'5$[7D*MKYYZSSK&^'JJ$W2! MDHK<.R@+84SX"=X!5 FMSICC-(D*X].96RQMP9R7W3(R5PW,Z9*\A-V$%2X] M&ZI\=J4R^+1@YUB&( = FV9]FJ,GCGM M3H9*E&4I.L:,C[%>5 ]^9U>O<-/KV!#8#.!'$*((5X(/_&J/??(RTF=Y.BBN M4.;3S0LO"^$1TLYA$08&0@7SC+[4\CY0]-MJX#05>J(>OXWRV07#F[1F=1UU M@E=?>'<\WATZ \6H$-'8MUU*7P#SX65*;F@63[;D(#'14H9/B6%J%38Y9):B ME4GZJ?,/&J$$PBZ.->A&N0WA@2['=1S+&LU7^K^5*8@H 5)G,O?-JYC%0?&E M&YB8'"_DL2WI:$N"UIF;+H,$"#0V6C>^T[P$5;/]FJ*!:@ULV2"*QRC,RABG M_1E^I'$..-'.9Z.'H"'^76?5*S'4#I8%:A%T'S :HCG=BS\^?OI\X:.U$:=E MN$]%,'TWEAHF*:F>_ HT PHKHQO+(^V%7/GT2'J56.06+ 944K:"W,GA%CAL MSYP(@>R*3U@C$<%85:[UPT;MWI&\9BV_OU=G%NU>OX>@.]P_:OO=K2B&(%(;( M:M#/ROH 582-6\);:&+=OT%. <#O&&+;3U/ #MHI)5 M]C&T2+%&S"$H$!)0U.-C(\.Y!KH@N3F MW6]@7!4"4'4HU/Q2U/P[R6$R2_M@R -5U4*8[I)LPB8KS9$^=TBUNH ZF+5* MB8&>"Y=$!R+%\1G#&O@P&, M)FY,.&N:FRB]T5-K#FE&X5AM JQ-'13*N;?WHM?VN@J=8N+8WH?OH]<&#X _ MQ)L&%"2^LMPF.F<2%CD&IJZ?E_W,FART7\ZSE UU]>LK$F+ULS5W$\P=Y@$3 M<1<;'S+M)CX/9V/+0CO8MAX@%)#.!V;#5A_;$!C6M)X*B]KVYWT?0ZQ\S'>G MZL><:'$?['DMII\ ZWD%G.6E2Y5!.]J4NF;@DD&0YN6 X0MX_G$* [AJT.Q[ MK-R-FARIL#XP4JF!'%4R#)XL,91@ R7$S#2%*.W@J1>O]X) M# 3FN-N@D8/1<(G67*:^"?6AA\U#WB%5@9Q25GBE7AH$938#0'*.;7*')\9; M3('!.9EHWA%JC#RF) S0ET&*5U* G"":O3)@1,I$H(]Y#BS-C#<8TPWFW\A@ M32K]CI8DOZ[.J>@#X5+M,Q<>"G.@?)2[1A J5)U8H[J@37L794$YOC2PJ7/R M$-M@*0G3?()03+);0:86$1MP4^^LO(;O:1"XN9*@10>'OO>\+MK1I!TB-S;> M X^>_?+3N__Y!4?BTVOZL&L^Y@O0$$X9+66U-Y@54^0 M,9QSB?A$*R28:?<1MT3[!Q/_1WJ%D+PZ5+),;+C-3C69DDL139+:M&OO3CC3 M"\[L$GC6_+ID882XYSB>B9X9OJ]B?G6MB _"*A-4V4-6 MVFL+JNQ9465;J/)6\I]%>XZ"/2E!CT2OOKN^\Y2[(K%4)VN,*A24!2H'E6V# MSNJX;MN.59"E"-=.QZ [6K>L-<::H=;(0EM8<8Y1:>7/3>\>U"1Q,G4_L+LR M&:%>2SFR6AV\? "*8N5G_N,[^HVU R+\'H4AW';O0:'RC?FZ0*GE28':%7-6 M;J]:NS&[^RKYGI63@E154O?=+\,(+5D,LU$\Q(*@K9X'.C#? MTCA$;M1BUB-YUXQA3%Y*4MHS@Z^HZS'TA5T[CL0Q7;917OOF2H5C^7<.6R.H MAO[ D&7N.CB9^Y;Z-%5PG>H3VS.K80+A:^V.VI_8.WF105QW=;JDK,A8/-H% MTJ5V0Q6,J_QF-I.::, MYJ=U#FY^X=);"HZ,L[?MS78TL#HZ;/4.>S=V5;JQO=7-_9:.NKUV];\'=X5Z M[BFL46.:=:A@+;7*[[0T5]/_2&KZ/[(SE-3YEU99TBIK T2=M"^15EG2]$>X M1EIEO;PB\'Q=7EZN0O!C*M^BUP_= V7.")LJ,"55DQ]:)OO%2> YBJ=O?-'G MO4['/SD\WOY3OU5=W[A3%^86YKZ%N4_\7N=H^P]](6_?7QVZT3&RB^J0J3A& MZ+$]HQN]7A@B$35I@YAJQ[H,/:9MC'_4.9&CWIBC%D;>YM-]C"8T YS;L(-^ M5C5(O$(WJ$&+8""B_&P0*XG,?*FNFW+8HO[(Z;X(*Q_Z!T>GNW74XOYY*+&\ M)U0]0HOU=3"B,H5<]9_^3=D"J!;YK!QA2[P)U>'$I)*$YD1LB-U80LG^J7N;;(#>> MW-]5SZ:"[5I\=K=K,/4\H$.;1&6&;=^0G[4N6N(OMF9L).K@\XOUQ2WHUY93 M5XG*N,M&;+Z,/_6[IZN+/-ZX9QLJZ$5!%$DBDN1V2=+U3TZ[(DGNH#+"?S'U M>HWK"] (H0Y21J>_X0)U4:)7D3[_:4%"_&X7!_REJE59W)"F6K7?(HS<3)_Z MDU9GKO&]K?:H/"QI:KZI5\8RW3&Q.AX6(W'5P+">7YHDFDMK#+B](14NB/70 M%-S XIPZSTVQ+\U5#4S+=A\5JV3N?/#GNYT('20N,4+RJBZ-KIL&.;W.? #ZF\!.Q1A2=EF_<9:]QQ7 M!=,6EEE0=I4I0]:O;DMNNNF/&AQL\O8B&(X M3WI9G=\ 0GY^%MKQVN7WOB>IRU:S"[DI\EGKS@5T_T.GU7:" MXNK07U4T*A6U N$B9EC=/XWQ.CDX_-'5&&MYG\L,2W46MGO/3'GTQENIV0G7 MGFTV)\?JN@O:8L++34WH6_MJ@FBHMQVS5;'J_; J<4&U2TDFYQ.<:0*W.LJF M=NO OMOWL%AU;+IPIVE,[&+*9N(-7F+7 /S@_"OM/RL"]Q';\RW+7:'R.46 MED,%>F&J"78\L/*,NTN#6L."T'67IF[V6&V6ZFG;N]]1BBD1!S_^!0@U08UG MQZ_R>]]NEA$C;-"SE O;K=,E7&A\O/;(9QZL';D[:JJ]A?I7>K7LV.]ZV/=1 MY=;ML)_T6I:LKI\[Q#2'O1F V'V-G*(T%\;&G M;?](XS^"?;;:?7MK7Q M@8O)66P+ZR/CO>.NKQ_89S/EZ\ZRK*G 6B^C^S-(AEA-<_A'\MW[_-L[ZGR# M@H#(@W[ !6ISK'=)],*?TJ6,=F8(4\;>D-SC5_%%3,D,=#?8]E2-!KBUYNY8 M;K+!^]A=/DD+JS5,O3!35P0(7+3 14WJ:X7K;^QA#RIT0Y.(=5&8]ANF>R[6 M(<867RQ;%79=YI9YU&8T(;.]GV89%P-UW5KF_56G-0?=CJN/?Q#U($G-G"6= MRQ7V2&F:/%'"C09 6L''(6XPEW#>"_4@PKX2"N^>&1 ERN>10M,XI*K0U<- M=1:<7[ELBJ_ITDKA_7G.[4U^Z'0/:^:C*II-_G3"I5XR&C"U?6!K8Z^/RB3M M J1=P$-6VNM(NP!I%_!(8]((6&IEOOC&IIL!%0,RZ$'ICZJ6G-3$#_60<3FN M71,!&.N),F$G^CWUX!JDF?9KG6RL4":OW WWPHY?W)\6J%_Z>D(7M=&%TADM M]6 S@@B/L6"6[=:[+")D0[U=[&?;6 SI\2)RG%3\<\8% MYRN_[GW:?&)KCC0;.PN(.I+]>G;VV:J6N6E)35MN'>O:;KVQ;?)R;#MS46,2 M3EGB#HT8*D;-T_21A"E2SRW^*8BFOHN94PO%* _B%/MMS3BI%_\(UQ616;4;\5%7(%@ VR/9Q\W7<*,UX4; MNAG'4+/AN.D(F)N(?\8.'].V( FQG:9V[B80$::E&;=!AQLN"DM86J,!>#\V MW?%R[(^<<-N_,3?&=/T[R4V4 B?]BUMCFO7[]C#I8>S6@&-RX-[8=G >N3GJ M'+[?'Z>7-G21]F%Q\#9R42?8*]!OO!VV:U#&<&*7O ILG;8?DZ^J=J#4I-%L M,\(H(L0,Q*4YT12;AO'#."GLNQ)E8TL3IC\*'W!M*40)C9$J+SIVL"&O%]Z. M G@ X][5;LV[[2=C3:Y MKE4;TW9 .(X_L3.,Z?Y:L1?V%HZP-0P)2"33+-)XYL1W,$ 03113,_6:Q5[T MV$/(7X ?F6-3$1 MRSW3)95W51/?]G5QI74R0T=$+HT#\>D)+ M7G&W=ZLLH#9*3CKK M=<+EU'B%&)975Y.5ONEYE==ZEW)#)VIV-++-2VL:AT*^J+6&JJY#JLAP_#;W M_EF&P['+L7"[WO*<:K-H>8UG:7',$98W;0=[,RV,MHWQ[C*1<;JCX,],355L MKYH%QV3S/A:<5%\'JJ0WZJF][VD8>IMKC87]OOIX9Z';,LW8IM#7U;*!EL!: M36;!--SELQ:/KZVVCP%GHFC3- R>AZ_(J^B:FT4)DC@UIG6RH+4^;J =$T%W M9EL7 V:V9=:!9QML%6I$=>"Q6S(R;=.(MMC A<$SY.UXZM'8<0W;#N:H7$1YS^F<)%W M?>_513D&8J .AXV[?%Y&=^]XY?.9U^+J+E'+^LZ$@U4R'W98+7RM4,>U+Y2*I.R<"O.!JG]78KV%6XN=9:"#* MMDLI0T/0J+,.![ 4LLK] 29=#FKS>(=ZUU:YG8 AJ!H M'B$HL9FL;2!>J7S]:?4M>PAU@\) S; @#K[2 M9ATD8%F\,VU;FVJUT5[)1C7M;Q>WS66]!H6*;8F+WAOL=1NA7FI=%<,X[:,\ MJ#7!)6\\D(^^5CC'&G"(P:+6;*^ YQ'2&D+VC(N'G JC:#*QU!"G0[!FHB"G MS6EZ$$)-4(0(73WH30SV-5,#]&]1AZE M0F5@B]"NL F$OX(1DWH?8S2=R)RAPI#49?C#;Y_/W*E=D!?N'?DST$6!9&1@ MZTS%W,37=.F=4"MB_"V20ZTCKF^]FQ0#J9K;IWU:GZ55I+X,;HW]/AB0 M#9>3/>FHZD0-ESZ2*Z@(UBD)DR(_M_4L3?T%OI&FL\H>):Z*.M6635]:T^87 MJ(! !58!%>@*5$"@ D]NJIN0:U[3$WT0[<5NZ^6+[76^W?"R9 3IG/%N?I)_ MJS9S/0UY-7_J? O:>-5\]$\,_?4R]->KRH3&,O!\G++^YJ:@/CMHW JM0%S*1Z8BLJ.-1A2H?'OJ^]DIY** MSZ$H8RTF1G]!:JW3;2V%1> 1)-T' 48 M;W+Q BOX3J1W,B@\YXS!U3"W/ ?VK7T[3H=4^I,;C)2R%-G0%/, M==EW3??_(FS7'=+BK0,59HFPJ\#PDTNU0QQ;;:W5\D"-J!;(0<@)\JEU[EXA M!.(?BP[$9_26[7H[5E2]@H5E=>R^8R++.59F&M:I!MR8X,/S&#M_&F#7;DN0 M!QHW%A6WGA:-P^S5@A)BLJR7R2*QR4T2$XM<]:&WB,^\AJL>-@:F#>0-)*H: M8H7@8(J5/ 3G(> ,;JEIK>X2(G9C?""S&C#=B8CA@QL_(N]4>H-NZB^ FA&, M/&=U284A!1:-KAG$*AI3#37=0*(NPYYY0[CZD]E01S["B!3/A[E:Q=H@<*T. M9*1J;=*I"_K4M[6I9L]J\LMV>8F),?-R]Q($=F:7K)D13)IV Q0Q%[HS@*OY MG;Q"RXNWLP;(LA!/$PZD&1J(KZY5!3(9P\TPI0$[$@P1YCD8Y)IC:W4*,RMP M"NB.&P%_CJ(8H[$F'H;T!'0(ZFQ4I%GSK.N5]I >B>)]+QI4IF5.EX:Q9SGW M*Z60F;%0B\H"<+3 >684):NR"E33-KF1YDPDS]6"XOAMW2A66903%Q W&B0" MZLX7,PIQ50#*43ZY+)JHB>B&2.C,I#B,78V/$\ <^XVY+Y]'G;[ %(I]MOOJ MB12[S9L/5*\I'^4;;>:W^F:NI[J=WW;THG*OA>Y4SU+%(Q[;97+4MHV**%C-E=6Q;W8F191;&PP6>'!K*9<7-5:XR40B; M43G$^]NJR'78"X.'])O=.+:[7XOO;1#AJ\[&;[R72U?YVL!TP60P]Y63NO*F MNF.2.=YAD".9NK2FNI3GY$A2A:HQ24VL5_XAA%[N(.BE.%FB[$17+(RQD@!J@">880*07IN0,I1!(7F+*4H0Z:\,^- Q! MQA*ZG;F#-"4KN9Q'>!M,O9RD3B5-G;X[@X_#O<0XGBF:QCR"JNG711/U0JW' MO WT2]ZV!;N"L1C@AOWZME .9FUK,*S7W$6V7Q<^!!1G=MK;TPBBL+B.%)1_H M6JSY!B/R5]34+0<80$7L_/,G3@2@D2GR-SM&7O9S;7EVYS<5BJ4&&CP/5+JW;!\DK<[R+V%>986!!S/,I^ M3%@ W"/\#@'8QN,RJW(XOR8I)5'AD">YN389B&'S#W W^R7L%E7;H$P$AQ%W MM>PJO7AF_5QSHZI^RO?XKC@7[\YV7Z+\^_Z'3.O]?\+*$4OK=M:INM3 M/@W!>7"B PSMNP+5A&HR*B0I9G#^TTACU7GG3(>OJ>S-UXQJN$R]?^DLA9>1 M+DBE?IEF25_$*HODR$$BNH7(A)*6"?!?L(X-*(+K0D.8:$,5T[BP,\MRGB*Y M=U#06 E,:72IYA_P>9,LPI_6?L7P*H/$FU'9.;)5*[&&[Z^B;%P(B0"DN)7G8(A"#>E]W.67B41O.#W MM#"X)<5"*]%E@7?E(%-CC7UK/+S5AF"JM7W8S?JX$X6@): 'E]+$]&+N:0RS M1 :.:0U)OA)WY6*[R3./849[\\_9Z72LS0I23IPWZAN3_E!6]C^E]W&R6,V] M;//%FL#&RCM'U4X2%Q(U.@AV1,$(9ZWNF)4=-TW!U4QIZGSW>ZD_$TF.TRON MX&31> 9+U_+.8AS&1,!]$UF;?C$V7%KVRFAIG[MGUY&F:D/Q4L[!8 M$S7?<6*^ &T_QI8 O/F&KE5=>7?.*R>?;E7947N&7<>&W!,B$4)>SRGP-]-[ MC>X,Z=F\U7 M'LS8DG37.AKQ#2"!X3<+"A'6Y;;):5>F7":CA%U;C@4A5D>V5[:693TU6B * MS;9TKE;D;M/\(E""*WUG8 ESD(2JT.9Z@A"B^<-]&=B!8>GYVJ9XBY%6"==S MO=H"]FE(AA&E7=*3#!:$<>8.89BF(<+KUO,([.QNN'W<[QR='!:;=W?'#9>-JH3&US]&JE20.595.DWX;>/7]) MPZB6(+TQZJ,HT)G"'=K8E@VKI4+7:9=\AE79;\PXJ.9)I8U18HP25[%B89^=8Y_WE>O2YK=45;AO(G_Z%SM] M\F7BNTK?=N5\YPK 4[ CO<*P&[<=JVQKJO1?F%%JTT)?SU GE)(?UE5DLP*8 MU%7!'_4-^'E,,_W:&?(OT*E0I5#DGY!=3 M5L-V9)=]K6;&4OH1P*< /N\.^#P0P*< /E>^$^?)S0V5O7.G8#!ER::IN#\RR"454!74Q M+H@G9KBGK7@E,0=7Q"X9.'!)IMY2@'(RIFVW$KSYTVRAM_B/J6- MR/[!ZF02*VQZB3_]?(%-R^H^>FVJKNT\Y:J,G5P@QX:X,<:PKB012AUN,6Y< M7G8[6U[5QMQ^YB\9"$.2@4I,J7058I WK^]^]7NMO__W' MV<>OYU_/OI[_SWOO[.,O'GSPF_W[E_.+=[]]NOCCRWM@]I\__?'5^_WLRW^] M_^I].;_X+Y&DG$&;YK8O'FF8Z-RTDI.:N&#L&*1'EKO(A8TAM*Q62K^92>FE MSZC/:EXKDUKK9E)%DV$*+,E,WTW;.:(6NJ@>MAZOJE=)QAT./U4:-[V;EH:N MU0B1FJ#+9Z@CU[L"NLJ>U,,#DU8K)-1LP2/JD *W2XQ(ZG+<[(OR$TECZHC( M$IDF1[+.252X4X#;':E)F>#"[T<]M&8U^:-A<"S=M MMYGX4X.-ZK1$L4$N.X0Q#I\C'5624$XM4S$5@*Q7>F1!+7:?2XKM$[;09C+M M][4B)3].56*+ YN?3M04?]?RWCWBK0N'Y/Y)!>="% :CW8RLVM@057B^-B[S MFN%NQ M![JE2&NEGL^E2-(])06713,5?M/$W7EW:6"H'*8J=AW[H'+3:KORN M(>RJQ6^-R@A@;O.:X.QSO'O^F68&]9P&1$_FNOLCH;35B\($\A*T MD<$$Z!?-TA)D'<^Z8?[4)IZ.@"=,S:.\'YI:7\4,#:"T'UL\I*IX;?7#$;P- M)HQ';-*GZD,)([X87KW9.6V.[2P&)=2DT9'>-$X3/;5ZV:#$=$1.J*9^9S7% M#'6LZJ[)=5!FG QB$B'1R50JRI^K]57#9-DA)F\DC '+*#]2F5[V]+>[%55< MJSZ8,G\FJ;N1; '1:#S6(?(-?!-J#K6:PB9-' _I:\143XX:\R M+;A:/X.'N$ZB!02P5E@FD<7P[OU&>(8.UD_,<]<1\367:,%.AC#8#Z>MGI.4 MO2'3J]U6G_F%[CVQGU0ALUCRYURNT'L?QKA"A1B>D@L5+06709(=G/; MZ9MA*(]L7B^ZFYYEY6&2)OM 9X%M;TAEUX,I_]2XPDS1GB@+]Q$>,)UKP&D4 M*P>IF6U0F6:@SF.6!]MA_FPJ>\/W9T&A(:G2_!'L]QC5'AW5R -\.X,>D0X$6Z&&MZ(C8$OM2 M8)E7%5=:E.E*:]^D@#NGN>$W6Q5WF;+3;&Q!6E=8!MJ.A5PF,KF83DR1X0PK M7G.J^QB[OB8ER=N:7\?F(K,ER0YR[DKBH:_&F!&<,>NM/6T/X+KJWQ"A M,)27FSE7@23,N%V!"A\S)K@0/V7**6^Q2B'W& M=6F8USU?XQCF?].@ENC&P*.U+<+,Q:"1."8IKH3JE3>[+G%;55A#!-=VA%V: M.,N6?]HP;=B-X-#7-_:^DAZM H-:$0SJ4&!0TJ-UY4KM>)R&Z#3[3% B++[U M&-_+BJ>WX\Z8/\E8LTHQWH+6L>@^:_2[0"LOK7_$U:,T@GMJ73 <\&NNT07< MHXU"42:R!;\,N$_*U4RK^<#0#U[S=EB?7)L35L8(V8U%H_D6Q]>A6RC!C"16 MJ9L6*696X3 5!XS]3?X A?W2JV?=#J M_4)P+[*T'(YLQNS"/5=D[F U-Y>"E>O:A,QD&;-OGS0CW8AZ^>10F,;B. LQ+ J T/5\VS.XDT+?:QT+3N6Y<2H'WX@5TC@GC HR"9 6 M'.(:H5,.6G][]^GCUR^??KM 9,H37)T/G9[W^E7+/L60^V#:K2[0I"'H:B0G%!29&0%"OIZ^RU\\B\&T5ZX'UPDOP3 M/^ [TY[K5FJZ\;!/FJZZ58?5*0?U4ZXDB+?7A)!^*=%UT>FI_<[AGN99= Y# M\U?I(*475_C0J_I7KUZ;\ '-ELNNU+HAT,UG8UV+ MZFEX/U=M"= ;YU*U<1M@8S)T*Y7]<534 MSJEQ.!$YJ-",#7U>1I[C/W,JFD)ETE@[P,%-)-UXC$DG,O4L;?O="DM0HP9R M8-N7HE$5Y=@K^-_AU:6-Q>!*C>I""S#Z3K4!F,<1!.78-K,P^G691(%M#IS. M,&BEW59,\]YQE3WF&TA@OETZ@O,0B4R+I];. ?4]QETN?PX5_HLM:W%-PDI?91IDA7EJ3"\JR8!4CGF^:'T M:;G2/%@;,T]]&PFQD2D,#39+1#0%955.T!+WC!GFT)T%MV T@H#MC #3B6#. MIJLZ?F*77J^8X=+\3TE/%Y%\L/>TV;WZEIJYT;25IG4;9'7%7 MGN0[,C"]*^_7X)U^2V #:R\C4-G8Z[YM/.DNRBG(C>^:731S/_#O-^\',,M& MF[,28)$ RX,"+$<28%F3 ,M]EH@%1E9&0?6K^DY5 GL/W)_/9U^^>N?GWK[W MZ>L_WG_QSC]^^/3E][.OYY\^;H9WKO,M!G,@9K>N1V0QW[,!MN,.W?:[8%%20@0]M%O$PO\5A=Y67$2>K4 M<6)HC2MR'7$)^8HF?>KLS65P;P:!">;\!2MQL+H,I\$PVG<_?[:8<#""7>0+ MCG(PJ&<6&!]2:!PD*K'9#87ZKA.30^2=CZEP^07Z;V"Y>>'M12W=\HW!F16O M304YLD+!W+1-=L8Z0V,AQ(81T=BXAR@<]76$[9R X-CGA+C0J46GM=L'^YWV MX^B=N=G3AYVW[&U<,,)1[_BTMW_:&.%3%@VIUMQI M[W1^*!L7BV.V]<%B<(9U\]V\]ME!<=NK9W([04;&+WN*RWJS>\I&8XLT^PL! M\%J-:\U"ZB'6_TFGH$UE_]O&6JU/+ZOM-#P*Y-!M@9E+TUTV Z"7SS\3662% M=65>L,KO]=H=='TERE //&R_ZO:Z)B;\;VH\>5OE?;HG*5:<%%%8CB=5Y]@2 M%0QLYX4?A27[_R;<[,NX3FJ$4_/@@B:!Q$6%EP-M4'/\(^I_3)2%:[-.<-O9 MMIE=0^\*R)L*;S<8<&8-4YYP_KRI3RXAR*EQ!IJ;5=("?/)#MW5R8%,%:,,O M]*30%FU9XTKR5VHL/F>\W5],_8$F1;XRCLYTR$55;Z1#-\;,P;YZ7;F-;*\" MK)!0.7J7\ -E?O4UNRIYZ#"]2JA_$OHW9]<.1%)?>]6-@1>M L0SF(H_+I/9 M3:U.:X9V:-,.?T2[_KB%_QUXC3[8,T3B8S*)9OPI22\ZS6;Z1Z/J).W(72C3 M)P\BWJ#H/J -NM,&*O*5%'5BX]=.Z:LTP>&J[W!3<<_0U\UN$AZWH J%S(#6 M\>WS54R=FW/&FZ#;(LI',#,L,L/>2 =7@>VRXG;'?.J[:#-)"3E MJPI\+&%7.K8H(3&'I5AF.&G]664!T5><,B-0#0C&R]78^NU=.?XAZWO-_33*-[SY\;%6ATM.P\%I\N[59R.W4\0.ZO6F0E09YRJU:1!L_UV5U5!!?PU49HZ@%HNHW]?UZ]9)GC'L#C54#\Q];D7'CHL+) >D*6)YO/91T%.\\R:J M(50>1E;A_"EFJ6A#"TP*LT0_JUPL4!=LR/,&NL??U17_@T:T6S,?L4BKV!"T M37TYT]QB6$:A8I7*J:)4DX1S DRFJ.^2J<I!0O(WGF:FNKVCV!$@6H/D4077@Z%*-;&KFW_;]64[:5&$!S//)I')("$9.JA$J)TGH6N- M1++61^,.-&!:*C/6Y^"3VJ;SKLM6H=P^'R#TP-2)/-;*@ )H:#]:GG:,@U.^B*AJOOPW%G5PJS7D]S(1S37U SB,)C%)NG_'Q M#:@^"2DO+'",@'%!\1D,.!>D'1H+.*5[9#$TW%\LB*JJ,]0[ J1I)4!9XZQW MVN*I\NU8NS )I*88/$_YT*9*9(4\@ZLEO6('6VZ:>-%'>(-QQ^^1PA.ZY%P. M^)1J]9%ZWD?93R59 E?B:%""U4.9U0.30F$P_O@9: C%B' CU,7KK.6]PH0? M[X-A6.N<(_WM+,%D2H=#_!Q3VD( YX7OF%8J#R;FFGUIH-F2Q9!&Y]V:?TM= M;5BTF#NNPL! %XUOS&-*3C 5'UB!),G"X M&AJNO"G'4UHE;$JKA!7#M+X0P=8LDKJ FL;V>>6^PY7:/"97FJV1^VW]'PC459,H1.&" M&"WKK6&'#Z$@$^/5I1ZU141RL<(.TPP,;F?2"(7DK&8P2FAKL\MBZ MM>IYH@M2%&TAR@IL2E:LOIY$F05E^[4MH=(6B%V*+FTUBFLL/(N:D+HV%27J M+M,^R#68,B+ G2L%/\[=/W[K,TT<,4*X9@M>!EE*5^8C/&XAF^T(L>"+)2C=PV7-O\:@78F,:ZZK-D9PUHKAVB/*P!@ZC[5J\HO=@J)LBK*ZIV5U:K&A[5" M34$-8%7@TK6PUFOZ*5;AU=IU,DNT#ETZ])Q.RB:>T;27V8[IXF(GM813$CY1 MPW)-^P3_:Y8%P7JW7.JDEC.,\HSS2^$%BR<.,I MHS0"DRL\T,[#N&AY)J6?_\AP@YWV4=68,NH#?F$*ZA/@02Y4X;('<%D5&@(J M'24PKR'38:@*Q6W2@ND+>GSF;E8]*1G6IF);W%<7J+KRG3^)T MJE&3KQ7!N@06MQ4^2,T6CA2.O$<\BFIOCZ*)4Q2Q9!U.,PT>501R17R(,7'L MJ670:K,S9"95S29DD55*:Q';B*(T1O>=[?F%H]9[Z6(UE'K[,!N',A7SZD4M M,!AFP&V8J\3-4@@I"\-QCK[YN@9IXMKA#-CC%643*FEA?. .9LNXJ[SL8V%J M*D9)?FBWUDJJJC*R=6\W=KM(C?+A- _V M4KAN%KZ!:-FN%B*+1!;=61:9"OEZ M?G. KR-1 _30-[IBVB5<*=OXE]8E77 M&A=1'5@A<(5A<9BI0K6\((]Y;BUM-22-&_,;%*:,?:!0D8);W\B!=Y_^Y_R7 M_UM6&ZI0Z_UQ\1Z_-,4H MGKDV[*)@ZPNI('_4J,V[0&I#T?6>"*Y6V7&W,\@^ILESU]I;)Q+A B&?N9J( MD,)NEUT\QWHDF?>YQ%3D7,3%'6E$@&<"/'L0\.Q$@&?/6HU/^EV\L 74^Q;J M@4*4_;=RDB9@]211FGVKVB2OD?W3:_WME_L:V4 7WA^?/WT$@^?C M^:D$3R9Y>5_8_^ :KT-]R-=#%]%NML/X:L?U!ZV^_GW]\[UVL M$=>??7C_]?]ZOYQ?O/OMT\5-[6Z$W>6V7Q]V/_Q&D(UO-5S,&C'Z8>MOKB[Q M&O'ZDA+)$E)>54AY3[U>_VR)\[LT#2+4,?= 0*CR!^S8?K+_7_6V#4MZ,-&C MG?;^?_M>ORP(]6![ ]T:MJR3WVFK?72\0G%"CZ_/-9/HE7!A6WAPE@?[&\"# M'\H,L?AS53\Z[U&?^D7ETKD70 O[N&%??RVVSUMP6,N M-!V,U*3 9G#";<)M3\YMP79QVPEPX=>W^LR,P93TX8Z M/CC=2AOJEWNT=GHY+(L/JDFBJZ:7MN$CHCQJ>#'0G4">Z^\I+U!AFJ(/P M#;;D[+3[AYVS+#L+4RR'^R%6PU=GG0Z1YU> MN'^@3D[W#SJ!WC\Y#/O[_6ZOKWJ=@W:W'SYVJB"='S#;YR<8Q1-S;-_8KP5_ MOQQAP]82JP$I/Q$%G_;#7O?@=#\\Z<,1!X>'^_U^V-UOM[N'W6#0#8+C[BHI M^&LV3HH'$?#IH'M\K/KM_:!]?+)_<-P.]ON=P?'^:2\XZO<& [CN3U9,P'>; M[//3!1;*I9KRZT_"8'N^PBWU<$_W.X25)\!PEF&F/W5(H*9_WBN8[_XMC_JO M$!NJU8)BP;8,'MSI\[>^Q.(E%K^26/RIQ.)?+!;_\J[JHV_Z>A3UHV*=0E%' MK;^]_S__6"/?]/G/YU]?)/9TM$:."LS9&Z38/ARO,$LV5%?2M!3@EA+.U\.> MU3?+]JW!W.O*P)LYXX+R^!:8^JHLTK=&]N)<4!3#U/'Q?5 .TM)H@F^=DZ35 M_M'^ )N/J4FNW^0:SAET-;L'5&. QWZ%[X<)N.NC5N/)_MX\!$^%39_,Z8_F M5EGP7>^&[TY.W)?_WT]%-CL%>P/A%E_!4O@V>\-W&GZPF&7F#W3V[77./VXA M9U]J[(FC8O,[)HZW[K*SRM:D\*A6?N/N:UP,/%SC6N"/UD[]J(O:I1D,+"P6 MZE-;O.R/5'*GH0X4X1P5W9-FO+\/Z'_MWAJIW/=0B!Z_ R^S[E42QB^4"D@9 MG(OV9H5"[ %""_9NT66VP0R[U/9I=>Y)FK@W+V"O/&*-_^M_/6")M>G0W?[4 M:Z[IMCI&A7%)'_STT]75U>M7 >M87KYTUD6C+"&[D\Z'*KL)RRG\A-L M2.>D>](YZM _.P?MWE&GVVEW#@^[1S\E10>_/STYONZ@J=/;[[1&Q7CY]@X& M-R@#"QN&+\6N&3\GIM=^T:9]W#O<:VIE1\[]\\36B# %$C]\?>==I-12#[YK M[3G%VMR@'I!LU7 .<]PRE13_GGOON&JX3?BMHR)XC*H)@L,7W.!2FQ5 M-(YR:G^08N^NJ=>C*$C')!N[:A:AAWV/HJ31HZ(6<5(BS%Y&F'4WB]-%P#V) M@.N^J(#[>4JU9>\FRKHBRD24+11EO&?O>[A M3X,BB/:11=N]7@?$V+?>U@B<%I_V \ @I&*LAH9=C%?N=A(NQLDD6QUST5 M(;8Y0JS3WE4IMEFKMD*,E"U]W6E_>UYO&#?9)#;^SQ+T'H;9=GT4,.^I##(] M<3;,-&.CS,/&X_NXX([UW+A$^<.H=U'K&G0X%BX^+] M.X]3-'KJW_Y^NJ=!82)[;;;79$D+RY)Q!3Y?^U=76^;,!1]WZ_PXR9%!!+*1E55 M:DFW(D79E+3:WBHGN*5J U)#I>;?CVL;"DU*"%_!P4^1@DFXYM[CC^M[C@!6 M;R))8TN1#"3Y&6N]2"3I/)(,Y)Q$!*L_(LE @#F)]@/=*C/%4F)(T(8G*L4- M7H">!A[>R%2-W;@A#[<<'CCD%$0 JS>!H_U3$ D<1PPA:-I:$ZHPAO[IP _L I>LIP3Q^''->+[WQ\I^B]EVXN0"- < M LRL:XD G;$Z&8(W^,WW_.4Z7#P$("D-YZX6+EEB]!>.6%U%$3Q^])Z XB]& MCY6,V4/&K-Y)S^UFO%K -XS^X(?/1M^O>0?:;UE!&WX"94->H:XFN7-,R6-Q MJF=P59A&'JX*LRP"I[F85&!?VA)P42MF.&^W/>C,=DZ;=\),5SJ"E9W Z6@ MECU'?.ENE94M=*4G[!V'\@\V?*6PW# 4PZB>R+KH(/=1HEJ2-DK2QB*6ZJHD M;6R4M+%&_Z%TDJ2*YT \$ Q"$>PCX)>?$Q<_W3,&'(.K$O %H;)%7+[R)_EZX;G/]E]!> MIX"6M;A.*>@:^43-6"0G+F:L6E3E>]EU2_ZT47%WT=(!G=MA*N74$]RR6G>K M&\D=MMT+ZC6M2O)$6J_Q>WPQ[2%[8N5.2$H7:;>+U(@4\M5W]M4?W2!18LMN M%$[C3EGAG)H6N-K#09IDY:VW._JK/K)PX*[1)7$]TCP3;UMW/LN)$G^O]^"MS>C>O3<4M]'MUM3WO&LZ%G6S,ZIS22CMNS MC@T'1:*JZ$:199(EJ?SI+Q(/$GR311 @96WLN'4D(!,)@$ B'[_\M__]LB7H M"4>Q'P9_^.;C=Q^^03AP0\\/UG_XYNO]R>G]^?7U-__[W__'O_T_)R?HXNKZ M"_J"G]&IF_A/^,*/71+&^PBC=_>?OT5_/KN[0??N!F\==!&Z^RT.$G2"-DFR M^_W[]\_/S]]Y*S^(0[)/*+OX.S?80=^#VZ/+AIX>/O_O]IW_Y_0\_???#;S]]_/\^?/C]AP]*MW!WB/SU)D'OW&\1]**\ M@P 3/Z8=&(<8N]^MPZ?WXH_0Z7NE M0VWC7$,ZC[EA/'_/1O[IPX>/[__\^89O$]F8^,&OU9+2]M^_AS\_.C%.9P?[ MU8.@?\@/@O[12_)M!=4?W_,_JDW]AC'0C9O0S92. 0?[[:WNS!*$-_H-Z'+!M@@/?SK1$[!"?SJY.,GNNN^ MH\2^04'E)U(S?^^'#4+NA:,&D6ZD8P0N^4C.&XRY!$C#Z;N$Y([R?HQK_SFWF.2Q/(WC<.H_F2/ M6Y>*4Y_].^[T 53=&1K6H<\:#)I_>3CRN:?_ZC;OZ9F:L76"($P8+_B5_.5N MYP>KD/^&_@Z.BM]'(<$/=,X0_/#U[KK]8GV?."]A$&X/[Z'+^SOZ/W^5NI#\ M[VG@70:)GQRN*<-HRT;R#?+I?=F]N1RG'*F'J6KE,YD^?H#_1Q4O10=+?W0" M#W%J2"'W;^^+1 KD]S'VEL&_LY]W$=68 CZ!-_07HK-HTM#1=8B[)_W[9<.J M[29^*==+\RK>4V&9TG8>!AX]U+!'?Z"]?(_^WCMS"%QL]QN,D_AKX.P]/P%- M#A;TJ)XM:_L1UC8EC$ %%K212AP)ZHB31^]2!M^^+7?C/A)_S:^X"YPX/HD_\2V@C5K+MOC$ M/OGL27:".#_8+)PE"E>(,T4I5]X(2;Y(88S>"=;T6?6V8W0=$+=.1-MM<.)3 M:8\_+6K(M.R1[X\\.G+_S0<7MDW.!(R?%#P/!M@XRP0>Z3T/UU$Q(/1_'EW_=4@[N@@W?]Y.B-TH%B MRX;Y\:@-H_+]#>*7)'P><"I4J;0LCE^>]QI0OD@QNAM M(QRAL5[@V(W\'8QEN3K;QWZ X_AC41.M:=6PH#_]].,//_Y8U# 5.K!VCX+2 MVVIU7*WT+7#OKP.?GG\.?>Z[;KBG+_1@?4L_$=?'Y>7KVJUE/7];6D_EH1!G MI)&3TD8[0?QMB3LN,;_>/N-D$WK7P1..$SCJBBM:TZIE 7]76D!QF6X9(>2G ME-Z6J^-RG2;;VRA<1\ZVN$3*7UJ6Y5]*RW+Z\!F)SF\KT74E^*$3WV$7^T_. M(\%?<.F[J6[4LCX_E=='D$%12F>! OSVV71=+#BS@B2,Z,U0L4J%OS8OSX\? M2LNC]'];EJY.AW0"[S"=O3U6/0REO[4LRN6?4)*[]NVYBUK6+939 3%H<>6CZWH M6E!]6\O.%J;'I,*@!+]L69>RO0&ZO4U\]P=1M,?>Y#Z-+4J49&NKEC4K6S,8 MG9,SA_LF,TIOR]5QN>XP 5_NK4,?2@^10Z?/93%D)46QOF'+HI4-&X(48K20 M2NQMV3HN&WU80;S.+8[N-TZ$2ZM5^GO+(I6-&Y0"#PFB-! C\K8XG9W#CS'^ M^YZ*?PGF[Y):7_I[R^*431L9!<1)O*V-5L>]_.]Q_ONT=\NZELT=W=WXZ)WD M\A9BHW?M'\")>.3*B[XMZSXD? .]XSS>5KV[AN/MF79Q'5R%D8NKU[>F5 O*V5S@B$ZI7KT*-E'W5L6O6S0Z>=F?UO_WB8=AT[7-6-6E:M;/PI.R3?UNNH [4RA_C4\]@0':*@2PD8 MF M+2M>MJ0IV=MOBSRR^P]PH;T]P$'Y;67-%A/06DN@;3_4!@ . M+R7PMEN&A0ZJVD&Y0>U-,8!6RU[I%WB85RYVE2W?-HNNS=)/F^A/HF5K],+2 M>K.'F(I632^-8K/:Y^L@:BV;Y"BPKOQ%Y!<[O&T9S5NFST$R@%++5BD;5[MM ME;=SQ>RYDJXU5 EF546&G"MUU%HV2]F.VOM<27_K"-9O6^8HM, ^IT=K^Y9E M+UM(@>+;(6 A5R+G(NG6I=X#,SK+EGU5F47,CY*SIE=#Q MMDO'VJ4]W<4:B#;NM-]^*)M?>^ZT-V.LS;/N%R>*G("^HZ&KTQ2,HHMRRWXJ M&W<'G5S/8A2 *L.&\;:M!F.']HZ)[MJW96N4[;PJYNB;TF0N!:WW#CB65LN. M*%MSF]/5WK:(L2V2/HC/-_09B^/KX#8* 25*W@MW=.ZBIX(2/2+]EJU4MOZV M;27EZ2W& .A78A1(#@/)<;SM,4W)DGU4X",HM.R3"OC"&C3>M]-F[)W ?JO^ MHCGRX#@B+?NA(B>^?C^P/R%7_25^"U#0#.+<\'5WA7=N(M&R'ZK $3GP\XX! M/R<*F]83XFTS')F3W>>.Z-.U9?'+YMRJ_.TW@\=(JYX9'^#R[ M5'^\\,F>?HAJCVY;XGBZ+?NE4[Y_WJ"AC("EA\,8F'HJ1E':;6^;2M>F.J7Z MOP>S[#_A>^SN(V9PNGQQR=[#WE44;G/;0RP()-JT^]/U>CZ0^?5NV3Q4X00&U_Y_^ H3_ M@6<(6P82_%J:4R=RH><=7B'QH[HY7AXC\ET8K=_[0?+>\[?O19OW#J$*[@NC ML(GP*K>;TDZ?/GSXD9'PDA/X^;N7V/N?2L^$#OY(<.&#SI$99\R,QWKP8# 2GH>!!R]Y,%/27KX'C[XSAT ^X_T& MXR3^&CA[>O!A+R\CY>*?2.I,F"$TQY564T3_I[89T,W'YAY(_QKS]T.$-[!! MGS H59KV1#\>DYD-)]Y.6[?C*"?MN=U[BS M4XC8.0)FMWE&=-$W.@LZL&5[38L^AJ9.GF/04[N>,,?3-G;N=D0,[7RF]J(W M#9U&C^3#>9B:C?;ZV#K2=6HQ$<'2/>:@8%<3.WN8V(U MN^[WXVG;E;XU/G'8!'0D;VH.CHK'ZSH# XB;DM]8W$C7.3,\(&/?6J]0A\Z? MV!%4CY-XY<2/S)&YCT_6CK/C\F'L;=]?OB3@MJ'*S&6PW^)(Q";$24$0H!1+ MQVJ)'I7P^_>8)#'\!HC'(/3W3&!@8_*R#-T],ZJ)_X*AC6Z^Y*!,:K?[L >A MR3A\Z6E%VVUP0M]C9 SO;S,# ]] M7-M[0!_S2)Z$*WB@D]>N^_98%ZV5A]H=ID/8XYX/KT*O*3B.]?B"K:P!=T_V M7()\)\O.R<%^QVF9WWK<9!T)F32D]5(OE.:3S8OS(N:)Z6C8J^]HR M7AYOH)R:$5*?H7$:YK2A]K*I&,1ZG%VM)"P9MWJ(4-?3EKGH>)/0-%^D\K^Z M'Z9%NM.26A9=UBMSGJJY"GW_WZZ M4YO<>_2(4^\8PL:T"8U*;R"CSJ@.E,S^Z+L/?Z=:!BZ475 M5Y3&[O;TIFZ5CH]7J?K0MZH]:HKK/);T9),<6VK9CI;WV(GO%+1;/1MG* ?+ MVJ2N23B:^#0TS_8:)9K3OEKX3$Y;U7;*ZF,W%;VO/P"O+@WQ6,Z6-"\]>^@( MHM8#4WNCY V./#V2X_$SI:+&_,0G)L!K\*G<.(^X UX2B:)<-X"<^>GDXZ>3 MC[]E0E=1&V.X#SB*L=XQETF.,O P<8CF@9=(-@^<0-,;^I-H#2QJ1_\]'P$T M3*G["71(R>2Y8@C:];"GP'BEC$,WUY3^VTG""ERFCL&\\)LLEE?\XJ\WF%[I M>+EC\<(BU5]>6@>9\W^QIU_E2_+PC,D3_DR/ZTWZ=3&Y_O#-8'+O;4W *5PK M:RPOHR_TV,U^H[I-/^<@K0IR]Z6B1=P8N]^MPZ?W'O:YI/2'3$#ZCS3RF8V MW2EW>!=&24&*QJ;'#K5\QL-O_GJ[C]P-W175 K7 <\CN [$*XSN&7B!%08\ MA)*UG98B:/#\Z^LXWL.;\CQ40O0+VZJQBS5!I(_G<+VE[\0(1LBK; MZQ4ACA)E^/1?V=#I/_ZJ:A(B./[*#^A\^@[)LN.9,>R!'D]GE/.O!8F.)J/Y M(Z(Z$MWS*S\Y39+(?Z1:4SE5$\^=G4^UZ"O=U M'TMO,I8/\S!8T[?@%@*E&\]PM9W%TXNE9? LU2")J%+^BY]LSO=Q$FYQQ+-8 MZ:S#*4O_O_?@O-2>:?TI:3X?*E/?'NHT@8;6UI;CY]0[C./ 7(0OO[,&%9W1QU!P-Z[)PI=C+T8 MOA4(@JB-@:A[!'7N;U%$IK-5ZFK2??88LU.B5LCN%.Q]K]7S3D?['Z$?)'^B M_Z!;+FX1M2\5:^+>;\(HD9<60/&?OOAUF[2ZK>83GTZ-%T87>!?&?NESJ6IA M;>JJ[L14BSEO?/)UZFI1E:7/ ;IE^14C/M>#(#SW^P*[;2NT==>^I M<)]L;IQ?\3+ -\2M-,(T--0\FCN<^!$^7:\CYFGC(C.W[5;@354-K4,O>T]Z MN2_IE_F> MU3=R13N++TFE(A%_1M&+<;FJ-\TV];#O,^]NVVOL8NC; M.B=GXFR,;VGNHWE7?7;^%D;2+E8=E%;?SM[5C0D!;UC@?7:B7S&\_,7Z-T8. MM':SJ.(^)M:LXOM9N%7?Z \Z]:A M/QW-7ZX:UL^MPN">/'T,G^@I[V\K=;'6/O:>HZZ[W^[9:Y\GO)2UKN:(V<[] M;8:MT%% :@&X'FM.>:9:7H!5' =>O(RHLL8C[>#.K@]G&4K8;M1'Q6*!-"V* M>:>N4[OYV[3TUFXV7OCG],=E]! ^%WTY32VG9FN\\0-\G>!MW5?4VDWS^9T^ MAF6"8XTMM*6Q596E^^NSKK7-,!(6Y']+' [A+B/]VR3IT%'S3E$>F"(RD>M3 M(G<1''F\Q*8,Z&=FJ*IM="2EJ;A?FY7[RK93&7I;O$=-:\T[Z8\O]&1S?\51 M_4.OV,2>1ICJJK?T>7\=B W;K 4V]K&W%](N4W!C=(M+ M:^@P#4]8R_A-1-"U1-^<0_89CG:@IWQQME6G2FTSF^8][HMC=P_5L981\P-Q MCXE,M:ZW\'7I;-&1)-*TJDJAMFRH;GVUFY+9=7^Z=OP@3@K%!?)VXZJ&4PL/ M:K8/MW2:G@):'_31V$7['J'$(YYP''ZFZP\>A,]^X&_WVQN?_HW>M(<;?^LG MEXZ[^:\]/6>J%8KC".E^;'&X#P!A"I_H?J"W)MA*/CO!?D4_,*KQ5HZ]2[=) MISN<)E>8GB<\E73/DF;5Q@,R']HH6YL6T)V7*R6#OD'MKFYK;^B0C;:/#K*: M(KS5FD($Z]L;M1*=8PBQ)M>!AU_^$Q?=6O7MK+[-Z+$#P$!1V>"&,4\+8;-Z M=B@WELT:]7:=+.QMR# D\06/-OI,-9-FU(JZUKK#5.FQ2S=32,!>1_=3981J MLS=2=>C:HUQ9G0?0F[[L*\Z ]O83\5IR<+T]W;#R/,#>J,QWPDD8D >5LCB+Z3ON9,[4R_'"7QW/2L>7SI10"7(HRNW?JI: MF$SI!"Y ,[1857H0L(095.WGK=(4&VQ\@\C9UH@XKEFD:#WL)1DW/->Z])Q4 M8%&KN[^ETU1P>?K@\5C779O4LX'J5RVTCLC6EO?,&78@*> F= (9,WGQY)23 M(_KVGHCE]$J3 JT M<],2P=36R_:-SS9S)29 0T.+@P9'!?:D;JQ$F%Y@^CKSZY-66SOJ3@R#<#4. MGB#S'ZI.F:IF%FVPNQV'&W#(N1-OKDCXK(#AM;E-._:>S.YIT: J&^O64E* MAX;,_F(;ZTF_Z2M?A>VLU3G:>AE][0DG9^5LE_\^B1N4:?!+=F_$ER\X/2+ M!]&>GL.0&K?UH9]UK6RC60I\A'9@V^[];/JQ -](L12W %[4MK><1P+6VC"@ M VE4GZO;VAOZ=D?" \;*Y="H!M6WU_UM)EMZ>:TCI_INKFYC[S(+5\DS*T3S MA$FXJU7@VMM;C.668$3Q0RCCB !&(?/U/(2@Q[/\= ][9X>O,7R'F=^4Y[WX MK7"0H["R:\PLUB1O=;@W=](>CA%<>GXKFOP@A339!? .Y!>3S_3$]5V$SF8L1>$[D%88H7#T2 MEZ$^&:-+YQ%>BHFL/G6ZCG"+C:ZQO66W:Z?T*?MJ5:7OIP%:M'L_ZVH+/6:+ M!7;EGQI1A[KWM[?%MG"9_T/$+!5'6;?EFCMI_I93?"VJ_*6 :\O'."0X=G%- M $![IPD% D.UYI:/O+'/!(+^E=C[MINNI=-D4*7I5\N1C\MPE+5W77<*NC\2 MXIY1C9 XA_C,":J#BQH:ZE89N:F;U0FH =JI;S>%!T73*I>::9Z\7!F@!R?R M5ZOXG#AQG,8O5TUEAUYV 8D@>MB)-[DR"W7NA-KVNK^:,(&X<(=PA(ZNV[9+ M-]OV^<[1_/7M#1DC!+LK/W8= M!NE_156TZD;&QJ%ZWO# Y[6HSKU*GTQ].Z-VL\N7K (SO])K;6853:W[N%-/G#A4SW" M5[615VV]+"?1=!5CQEOT, R*US !-&LUY:U=+:L*_\P$_PC?^$2Y:\^L#)ED[V;TZ8 M7[_.659L93N&JJZ.;\=0JO;N]M9CNW/\B %6 83P+HP=LEQ!.6:V=_B.Z18W M=A2I20,5\_N_F'S:8B[50%B[12S>U'C*RG^W#'^T7%V^N!N [P'4H64 8X/_ M@TODR2&8V:%E?B+\@=DYU5\H+>LNI!$X35/I+:1RGCX[D?=S5/_4/I*8=GS< M)]_[^-.M$WAXZ[O-IT^7'A- "4AC(7'TY+NX6J$3^AXSHV9ES?@:L##N;F ! M.GE9M]N&>>M/-^-M32?M.:JB]LYR=1O1G\-]3 ZB%JL?.('K=0X5>!EFT1H'D#'6.FRG_G>+=6=JXLX%)K8?4KD *N_A GNGG'8O?\D[HH.EX/VPS2M M9]#5W=_28VK5'.H,V36M-4^O4I!.ED.!+?E'3(J&QM;FFD>67GH=7@&U;2=T M,+2BX&N'OC=6*)"I)1#?<>4_#2T6F*>E>4]=.7[$@L#@ 2\ )Z167K6O&MM; M7!8Z=V!PZ)0*5]?:XH7"O.#8>\#N)@A)N#XP9*QF@)"V7KK]RR(H=/E(_+4C MXD%< %M95SN:F]I;U,G!I0O!ZZ!/"^-6?!^6#O<.'>Q9N0O(G"T':6WS:1ZC MGYT$H$D/';_E_I2,XKW4P6U6QH=UZ& [ZE^!/>D6\E_587+);4TV\>8^)I7[ MWKJ]S7,V<%EE!QC&G1__RB'=X:?:@[:^ASVE-4OPD$8F/CZ6QH*]9:!4!:W3 M8WO1F%@@L%(&Y>R0-1'J*7/?W;2ERPPG;#-T(R1/\+9CF_'*V-1' M/\J?A\O)56<.8:446%VBOX61#!:I.D'ZDC C08^13N8ZD3G!$<8O?BQ.S0PYONA79O@L!^][LU*C2R3G/&EI4=02X>MN@*QI:#0*7]9$NPOUC MLMJ3\ETHBA+6'VF]R1A]+=^!3EB+C:K^U=HZ?,%)1Z2PFA7H0$SVMXF?%%KJC/_,%4.ARYBW8 M"GXNW=%?\#,O!E09]WDDJ9M*=Q-3L"YUKZ93[3&T#*I! _3:AVM'B1A2H;1TS'^N:3R#QB&5M MT?EEZ5PLA8UMHQ[I1.T4II@:S1T? $)5Z[(_ELHT<_WZE'HY@I"]@)/LP 9] MK&\H8N?N$['#IDJ_"$A/S?_+59H@<1MR()++EP0RC%E214?K[0#RNG'FTP/F MGJIZ$;S\Z0*!Q9:.@SO9"^=,8]3L$')3^Z!9E.;Q@#7E[D8AJDX]CYXB,=U% M]-7]?_S=>>C5EYVL;&QTN,SN";K4$[YP$J:2UN;TMA%E%=+K7/SO1KUC) M-JS;-/4=;.O#=86@N^C%+7TG]*:11DV!+]/Y(5/L9\\6D0N.:5R94 M>Y4.]+243+V;JJ'U!)3YQGC&UO2LOF2LXDJU*G934=\:PYB_!IX?L\\6>YVAV8F(M<.CQNM6:#$F'C.#A\#><;#, MC9VU [B $3H#2ZT:7*F-8:7/#:-=R*-YV1OH'#ZEZ-"HK#;WL@K%"-[$/"11 M-]-5M[XVK8O\XRJ40HP;8J^:^TQ0$6QUC7?JJOD;+N>R,*]U:B10JG.W/\Z/ M)V;?!-P9[Z&IA]%;ZRQT(F^YNO C[%**\?D&K$#2EZBA-)VUM>\V'479F/(3,L!7AY7. HWCC M[V3<6M6YTZG?A&X$"7@NG-^=KX-B/_NG)M@@A=DUQM%3@[^VML,$GC4U]U;; M-]Z#@#4A91&P&A'2/^M.12<.!)NF&>81>&*J/MWJAA/Z5B6.D&J3 S"Q$K)0 MOTB%3A1M5@Y0 %";@9:JV]I_2BQ7,)XK$CZW8JPU=3&JTDG5K%:%*S2PZ]%J M+4/&'E8E@*;@=7<8+-B UA5&4?C,HTMIHZ18AG$H-7O>Z&CM M! (,$7*>0^)[$BCQELXXH(!PBU(%)&D;'J86VC9A%/;;/7,P=0'YKHMS[TEE MG$(:*2)I($91BHYK?]4?2\J>S@-HU?0!5E^J1VUA-=- %/F[=:)EQ+X![M67 M(=0-Z05M/2UZJEDH=6/X*$QR:XYB[]9S 0ZP5B"*N0Z+HYGH:2E^WV\(2CK M1/!WE9)KUE2(>'2V4P.&J:Z?T[&3?;B$"_Q87]NTK;55S_;1-7FJBRS1?Y.] MQX(>L^H_O")0@XO_YIA[V'GDXH'HL@3%Y6S_P8X9+ M]X2[E#?MUM=>J%D8K.'S5#P);=D/#3VT^^CDWE;4+AZ<#MI,AK5=[:CKVGD" MCY%3>O][D,-,=\8]=@&GU,VE+:N8_MP]3E,;HPE,6NKH M$RIMSY#5ENZ&0A3.P7I+-VI-E%CNS_9]L/7507--9@#'TW+*'4'(8KAPDN!H MN>(N@<;;J+*I;G,PV6V<^P1C4F]L*+4Q:F^ Q,OE*H=C60O<4-]V"DX#M;(( M_9G@BOI3M?;#=F_",/)3U=>.T]0FEP_/(VKK_&K6EJ;7)_P8"40W5"R/!.AC'Z MKOP8(H"94>6*_J[X:32WG6:.F%(OJ%81[-A]:K?>T:C:Q].;FFND!SA@'PJ3 MW\I0]>KA.1RXHR45^P=]FWNHHJ&] W^8W:@Q154/;8O;MQDV>CA:]-"XJ_;S M8C@]W:;?[8X>52+_XWY'2N%5=:ULJD2%_#G0/MN4H?HNU@7A6ED"53:R ;9= M.!T[&PXO48PW56F>-8VF$*W7@LQ9;&=MR.#>O0X U:W+S5;7VJ(;+(Z5((P+ M9TO?\?%]N*?O^J:8A?9^NJ."<.0ZK&KBAUX].'N4<6=JPET_DNQ=' & 0A4Q"+]6< D#O#*A\"[!S\1\!""#&W+ MPRFKV7<+^9OLP">&(W":G-/7UX'*WO1M=>L[@?UZN=V1\(!E]%%-X"=APQ# M&2PRZ1]TQ9DI@0/(=79Q0,1F1:FBH6TKJM"2F\==W=8H+(FB M(Y3LT166K@Z=K"NF(D:HG]6QM:=]YSJ QL;T(V?EA=O<[/G&$[,+M.+CMG:; MB"+[%"-3$?P+2YCPY9)'N--!4-347&0,VI&@=/^>^VT3*/ M\SEW[&S%)0*&TFX.D:SEQ$*L)28958U:[NENO2W>$7G@.@5?O#$,H+V?-9&^ M!E&JECXX+_*)D^9$W.+ (0)C6P*K" MEC;!#*-H[/C*8&QYJU+5X0X>.-G5D M_A1MMV%5-IU4%D_3V[^^O<7\C*KG( ??9QL?+#_T (!XK;@YAN@(2H9N*J$S M'F2R WP!%==493.+.A<4K!9>E;+MOW$MNO6UJ#4+TQ,S)*:N(\5GU'P!=^]O M,2CI6/6_J9-%/!X## B&O)12QNNWDPUY; MI.I-9I)U4334.6J@8ROJHV;ICB1BU&A]N<71&NPB4?B<; 1Z2*VUNKJU=CB& MT,78BR$<26HKRQ7]+QCUP)]2Z7-M[61H6D_I:>DQ@PUQJLS^^;]/\B/-\J$Y M)BP@I31=&L?1TKQK,J==/C"16V.@*F\?=*P!U.R]J&^7C3I*]G?M=0ZD-URY M>*MFM;JAM0F#))%XN5(>"3U>%QT[6R[#4@2O30&4(48%LQB5&OFZ]]=]ZR9; M>IBO(V=;>9UF?QVS6LVNJ]W;V[W0#:5MB!?*,Q MIUDFIMW41+%UZ6%M,O_D1#X# G629A=L14.C.MZ53^I1^4M-=&H5K64Q3%$^MJ2YI"Y*L=1.-RQK&,%+M3DGIMS([G,^5QH; M7E=1C&LEZ-/3J+8BB@J+_X">]ZE6;:EJ.Q$'2%.D5U5+HW-\OW4(D:IT[>SF M6]ET9,![[P[LW_'RD?AKGDS1AF_7ULWLC&\P(6WFU5PCHXE;Y62'ZMRMZG83 MBT7K%7IFT4+3$UIN@@AQPH37]BF6FMF$R92PMZ*B&#AC%(#%NKW3VL_R'?FQ MQQWYT>*>UY)04VY4)H M&>S(9R=P,7U8\/ L2'H53QRNE9D9^>6S+16%:M N^#SVZJ*XQ;?3]]*-A[\NX?8_SW/1W&)21JM>.CU[:W MK3XI\/D0:DX_XV0?!;&HI4F_8/6WS2I6/U+6C50R&B8[N.+.4![-?:==TB$+ MF(#_A7.Z*K!%"TG-1R*=;1_SV09E0$&]*A?+[-#! M+=K4Q[:UIB5)26TSL=0>!6&DKJ*8&HM_'?#79)U"HI7'Q *-:I_F-:V-6CO% M)EM&PD!08^RL;&8X[>KCIT=FR-MS/88 /GYWH5YQ< M[0.O(WI16Z\)X!8U[.N>I52Z4YH:IC@_[35@BC<1LO?L4\ZDM )V=;Y"IR[6 M(]D \-./^$NGUB!7TWAZ.6^MUJ$N/2>&[5:*0RM6KVO* MDRR4_I)@!J[0'(G?KZ]-2T.A?*!$EBI;3+KUL?V RX+=LHC #M$8[5VG /; M!MW6JXO88+CF] ):B3H M4=BP-T6+#A97($NYE=Z[^G:Z/8E@>8MK802JV^@> [=N/H0<06=/GPVG/X=, MXZ0;-RIJ1MWZ6+Q6/;RJ?PR='3C,."SK36MQ\"-(:?>K/(7D"28V9X1G;NW/ MS@O8$DK(AM7NEB/H3,T+TZBI-_>QETPJXF3I_?A(ST)9O@]V$ L9BYG7KD5+ MZDG$,%@A/(4J[)"Y/\_ ZC#8VF!ZWO]K[T0)CLCA#N_"J J@LZZE4:LZY;F' M9+ 8GZXCS#[. 1V=TYVR#J/Z](M\JZDY5+L? M,CT(6,3>(/! M;0+VOWK'5J="2RW=IQAR-'$UF@NM-51]B[C7 ,N4:L MQEX;*%]_0C;5R12Q5*9L7$/JCD-N]X\$8.,X?&F]7MFQO[U#6Z80?&:5C9@U MIP_&8O?^-K&%N!\BC>"BTQ]V,O9WZCHUV.H+2.W%7M_1 MBH;V=(?52C6+9($':2I+US1B'11U _KN']-#7+RUSEF=:S=YP%$U5&1K'VM+ M157-Y>HR3OPM_>CK]E:AD66W[(/STMWFV-AE@J^&UJ" 3EUU@S"J%0 _UD>* M5+:;@*VAA 9!%2^7*F#BN.\9ZMZ/FEU,77C,7&]W4?C$"\PT/M^:>N@^1)54 ML:LPNL%KA]SC)"&,Z>FV,I^EO=-< 5':/GIMY&U&O'7.I->;.=\52;$QG+NA MM5T+36:O[V6D:>HV'1"L6B-OW=.S.P'#$2BQ?%,U1)H4VTRM!@<_?K_@9_:G MGD4WBIVGI$.VO(>;>DQ1@U3C0AL>C'TH5(D)U-#+EM"?@O4?OL'!R=?[;W*2 MTP4/]Y$[%.O@"SUJ'YXQ><*?Z9MI$_^5/*;/Q"@DF,\FG/D_U&"0L0=]"0)3X/"64>\O+9 M2&&,G,#+_9O=A"C9. '*=9KY9!!=\X#^PF^B_SO6A.2B=$%NGQM(($9TR!:0 M-%%&%'&J-=ISY=Z]@0L2BIQ.Q7"')#E%^*&6()$?Z Q(\ MD6#Z"N9!_8PEQ[CCML#,5B]W1RRW!^OA\/"F>.RS75[IHBY[#O.L\US\Q.C1F>#.,^0"12JB[\U"I,(V%R1A8;EZE'-?6R%O!1AKUN.+P:/R_I/\)]3 YL/](3HPZC.7N:BN<";HG63W+3QEY!P(5FPN^'XX?45SH.[V(R?"T'=0*!?^-?"3 M^.[^ZR #7493O($85?2.THV_17_AM$?35$:1+*^,UHKW[:@W_]? V7M^PMP: M]*V\357"ZV 51ENG H5KB)PI.R3X*3JHPG'N(I->TJ8/+E,ZMX$9*"B#V4SX M8B:R!Y:?,1W7.-D<$C/(E,$HIV_',$($B*,XI;Y ,6LS(P%)5]EF)%-A6]J3 MK5YW8!=VZI(4E2'H8TJOSL35@LSSR14$IC'DE6@\XRGHH#+UF =KKXC!TU'Y M]5NH$2&G(X?_KPZ7=SEX?(-3LB8@'XF7G4A\$: M(O0O\*..MSRE=D+7<8N GJ&/;[ O\O307[QD\WY/D["+8[2I$V.P BAY2]])^ )1X^A MZB!@!4]?@6#JRK+O"$616"ZTH*R1YH6?*#$EN"Y3R0Y(AHAQ?P22H MQ^> F1CYE!68)6EVUW(E1L])4 M_/\(_2#Y$_V'6JCCV/NM;FNS.6"=-R^,+O . $0&?:*<$O($J0F/NJ ESF?@)#?3%R,/.$4N MJ7A 9K >PP.=9,B"*0/!&/*(E:E[^BJVTG,S(4_,S4K/2:YIBSMCB$N'DY,O MC'>"XK>&W#5ZA,D[9YHD,N9X&2A8I9LE%0US@I.7HO+9EI=A5!<11$.S4KC+ MU77@^4^^MW<(' ^L4!58FC?^[B'D:-\\Y^[([XAQ ;4UXS-Z%E^JKU!E&/]] M3P^?RZ=-..T%NA\U8FL\^?*!I9(P+%TB M,,=0#$QG)%FE:F5#-GZ4AOMD<^/\BI&_Q;,3:"(@"A 3Z.;F?/2H M9GVRR"]JSC+D%"E+@MSAQ(_PZ7H=L8TNH%572IG:86.)"]"4MF9SC@8 M^'3T2TARPJ64Q>D-PG'B/+!^9L(5#HF.0H[N4TUU#JI)?@W $GY.''\+MF;Q M0UJC1L\+-&6(*$?$62+.BB$^R!]3MM(R_RIF@A0G856:!*=I$HS8A8S,Q(XI M#Y>!5]H7QTS) EUR% P!E_R*IN@^<:)$TR2=X;4?! ;G290DOX6JD2K$TT#7 ME2"+&%VD$C;HJ*HJ@7:,KTH]'05-Q(@B274NDI F(49VNZ4H8ZIO>(@EFT=7 MFLW!'39X%0UN/L,6FZ;@;1][R-([EI8-*U0/^WATP)_PN@F*"_D#RFC/3K8" MV H3)TK)Y<"H/,->1R6UA]Z]Y4I& Q4T2I9=K)S8W(0I'V>D(%>L\/@-PQ<; M3\JLLNNIY]$V,8.J64:L/"V]+X;L2DX7"<(+CH(#60Z2^%R$(I;E:<$S9N5_ M4CCC0889$6 W;C+MJ.+DK,^<>-'PS!B \OW,&\Q3T'PV38I95[ V+= 3^N8>']H%%C5\O)2$RKMG 3)P9F;%B1%T-272)&!U0GDW0TV1LY1AESNI%V\UA'$(WG) M6E,B9RAB7D,I2!HKHDH/FAG@V9J,S^$5#422YY8G>?KF\I>U2D1RPE1DK!JL M<,#N UXH3B2B#2M8Q4BE26VQ&/&PX:M CY!Q*>F,# M[&B40NXW438$[))YM#E%K-&!@[(D?!;PND_BQ&&!=<-CU[+8LT<1'_2.ZK3\ M[3P:,K9F>;)P11%N.$=1Y(83KV.%TI2P-1\V$1YT(GSZ\.FWLQ=(K-51:*&, MX:A:Q*GGL0*- #?.\XH!>.KT,7RB[V1_.VCY,MHH35IFX%N,/&+T9R4<>:5R M%=1 F_*E\8@N'=*>A0BSQUR%CVJX^J0PD4_&G,_JQH#/:C1!Y69=GE_7.$B- M*8I<#)A-@,*J>58RE^,%I/[CP(N7T84?\T&#$6T8>FXLT+&L86!9F( \VGKF M.>'N_) MKLE81'\!THC1'M?FGT:(G@)8-"S7D4F8A1=?2A=)P@:2,/5*)!;)BB2J*5ES MF!ZS'F,,7>M$FHFBFYQZ_<=CG'TQKO8 ="QS M6UB^C+X(P4CP8>&/*\:)A0L"*Q-I,V;D)SG111">X"?Q3>[4F> \49I0]*=7 M,A&%"W*B$U(#_:C!L5S ?IR% *1Z[.8\_7DAA@*?%\4P!7S^QQ>JV[J_XFCX M-OKCGY&@->41D^)@S03P#!QUX8121L_IC>ZX2+U$X+"\#L2AJ,$KD[F?@/*) M'\@#=U8BE9V%!6G,G4M"15VN\FYNCP=&Z@IY*7BV/5F^U5"\BX*\,+"L2!4* MBX*Z,!]!Q"+E:N>:+X6BI=3+1)!Q!JZ$^7HT .!^'N[!C;\#N]479WN44I)_ M&&7T$!"<^N!)S;@-X5G=1@)1AST?;IUH&3$P$ [I<(LC]HXX/M)?P/6(QPFE M#X96SH$_/P#+@C]6YBEJ(6=#R"L>YG0YQWU^9[@<5!#0N):K,J[/P(,AI%<(00AE#-:B)*-62MU14%8.I=H1X 1#5GV8>B MSH2L'!-7)+XIQ,:/:] Z1:0X.^7X6D,Y;WKE*B3D%]:7'I5A79$(:XZ'@06H M;BO=**.B5(PA4CE_HM&A8@O?5[_(68I%%X'-HC[KE+:+F\P(VK?6#S%?6];T MARAT ,HK8KK@0_B97MN05?_9#_SM?GOCT[]Y]'2[\;=^*Z-Z. 0&77HA@ M4(1HU\].L%_1U\@^&KS^D@-#Q14L>%CK5F$R+A3'"%**A4VE4T@CH(U4XG,3 M3CVK!/E#\_K-1L+*4&N[,J8AG:L5AM@J$9W[X+Q Z9ZNZR?:F?/D/84CB"UY#X7-(O&'P/(S: EW( MB@F,HK'H"TVRY(Y)2M($T NOYTAU2OHYPA63@(XQ\)W%R2$WI3?NDVKHZ-./ MB8TZHS/I0> MGT"R(#L(AT;82V8*".8"I?Q8/#'GR* (#(;=:@U^$+ MS/]['3 -/'7V\-B>80]\KM.;B6O2+$\IAYX11>\D^6_! @]^X1H_S[7@C!R1*[=C&0B97$D30OG;#GF#N*6"(/X#%/-)K,WX_CR)8F<,/+\@+[*69;YEQ"@5A(J%[P# M)4C7D".#Z9>/C#, EH/I. '>_TS3D8\R/:'RRZG@."_/,BG:[O;3<5B,GG9C M4D92+9XA1Z8P,YX&'CW9(\5XR7SI\0"!I $3]F9&6]@S.75#,E:!'.O!&..D MYC5^^42K1F2.C8+3W&$ 8G03D3$UT& N:0EWGBF;N18A\AI129;39R7^JZ%4U>&6(Y.)M8,R:'*. MJ!!?=(D"HY,$BD6D>-N"%P)FZ/]UMKM_3>NR(.]IS$CYD6672O^D9*[.W+GS MUYMDN?H:8[;;="4D,;(GX>J$$N8N@5F)U92*%DG1]E!S;/Q/5/4UL^0VAPPO MS,BU-)XE[@BBDY>BH'+.;/3Y?,V2"/1?;ABSO."1LS>91'_"@1=&%W@7QGX2 M_^(G&U7&(;)QRL@3I-$SI8TB5> 9"49R,DFJ",BB7.S&C&0J' ;V9,O<'W=X M#6#M3I# HUB#*R:X* XC+ED^-[F3E(:"/+@-XX;;8V,W\GB$P(#E% _,/R9_8D_X5 MI531!5[YKC_H[: 67_(XN?D)E*X2)YRYHMZIX@GBHP-JC+!@RM'744A#)Y]^ M603TD<+ 8'A"\6346R7RPHZB,M M6#S)S>2-X23ANT(+ MOG5&;F1\:RV#EU]&-NA9S'F^MKRA"<\JSG!@SS3Z3HFA'@AD)$D;#:[3+ \I MB*( /.2"S4?$FX+ (($\-'Q_"4*C?QB#!TW,CK?*CL5B$);, A-?ON#(]6/L M:;'3\> *01JEM&+N=AG,0B MFM?_!_9N([QS?$^^^WCPC>9*=_E":HQ?!3ZMF= DT_-0O-L9W[3.%'!>(,%[ MH50#% 4V,$<8;?**C/3AZ2%^4OG)QA4!*("5.R](;E:DM8_'R.HB&P>&W" MJ/OL2QB7A#Y"A%P94BN%^>P%!EE*NS&7/>7 MVQT)#Q@K3T\=61EY:X$1D^9ILJ7/W77D'&F]*5XJ#Y^1H#>/\G0A?T*.>A+OAUG!!#RD$YR=,#J$D>Z"A5#IC2&7>W_8\7S)^""4F,/Z" MDRS-_2$$=QS=-T^^A[VSP]<8;IH,^(C#]@ VH0:WIS(> (^/Y(B@7 " 7X M+?-_[F->CT;)XDU',KHO= K31BIG+!T,V/!1'F&!_IEY5N6@ *KSW5<^C]^J M$%/IV$Q7>#QUZ647,PUS'#0XAU!J:=)_LL%H1\>T@??9+O+'C[G1*Z7R4 .[ M7TK5H E'8$T&EYX?A\'7A+VD_Q@2B.>)Z?;3449<$$>".I+D%["_OS.%8*I9 M1))*AVK$ ^EF*EP)K[5N"?D*;AF3T4!@K-@LA^IGJ MU7!6:HH(FZ] 8G=*!@LD6"#) ZF!5\!%7#+C6]4?D\Q6/?#N!&(YR_?HMYV" M3856$+UAS+00?.NO!RI)0%3,1<1")6I9'[3$#XPUN50^Z?[I--&(&6 M/JP019:ELT QHXR8I\S+2LQ*(5,BBOIL%V5G)E,\F:!9LY#0"ICN=/^XR)X.&2-'SLUND$#2C M .H0@LQ\_ 6=U8H362MMM1%?7-L M4F8A\@N(H[027$K>:&:F=AG)I,2C:FK@.9%7$%.@6]PZ!W:L'&LU$,1125A! M'Q)N!>HCE#B0[.8I='5$>8RVCH>1MV=X/\R4Q]+/9B9C90T'>U*F81C)K3", MGJXCK"D=@!LJ)6&44C9T VB4BKPV@2KB9I+,-NY(XJ/;Z'@XHA97TOW]YK;B.3SI9*?(N58AT8&@NGQI9;1R89(M@DH5:&"$2JEBC#(%DAU:)CRH!] M&GC7].P)UCY4AV)?@_P3#PT;:+]F!H*,0UI$)[-OBP@T"Y%HH\U!_IN4M$8_ M$+=@I_V'P'@O2G3L :D0A3U:6LIY296[IE31\+@&.:8U,.]_3+E=A1' 90=0 MZGGY&-.!Q2X^ HVS\+;DQ-$[EY55^Y:]/T)&/L'L.XQ)^'RRI>VH0NO+ J8:5V1%7.:>GL_(M49W4XY[(Q#US(IQ8ZKR'F&*D$)R\ MR8_=56E-?O!%[Z))(2JB/P:?L6H@"Z!.9WF/_^O#=Q\^?/@(=FH>X+) __+C MAP7]'?Q?.>;E7]''3S\N?OKQT^+3C]^SHQK^_<,//RZ^__2C;.['\5Y$^ MB<$$SPLW !$_FH5GQ,GCM-BLN:,^U0804+R MFH4K6CJL"EF 4U 0$?5@0^0@%LU"0PR7I8!FRP02I\=\%J2B3*$A42!+1@SZ MRH]=A_PW=B*J5U_0(WG0.USDQW"B"*B"NHZ [AQD(?;$2*W28&(X WLT8&S0 M77"4BE8AB70" ;$31DW&Q*)3B-]<8U$S M6NAZAC)C-"V3!P@S"52K!P(T,J:1M_&[S=R')DN;Z7+RP!G(/!,5NBAM3E MRQ>4417.^#F(0JQ)48L3+X[W,QS@U;"2355@\3(NZ)V@;\H6HEE,TD/"F8EF MO7*!)CGR:O5U*D!JN7KW:&B!].XYFUMMA$-B F?#"!^.%(&I.=_.ZO/)VWP? M%*'F_ U56K+?96&XJS#Z%CTJBV9TS1IQ#@:67VH&.C"&%SB"B%U0-\PA/(*5 M@[N]U9!$ 9:2(:P-RV'-Q;1 //$?_PPJH_LKCI"3,9%X*K,56EI=6) 09U", MM.5,%BIZWU[7 W$M1<6:X$K/VP MM##AEW(I18@1B3C-Z0M1M%!5RS&RI5"'(*1Q(<;W>7*D6NQ5^P@T0)SQ:]F> MCVH<"?,& ^[DY5'*KT=&J5>U>;,,>;&@0L%P9/>4BC%E?^"XU6_IRL?$0^9% M8,4^Z-I#JJ*.F @@AP2]-$;%D %'@RRD28P9C#^IM--067:<[-@B7/F!G^ ; M_PF7L B.J#9;UG@Y_1/&H J/@3*QH!"/(76F*G>2V:PFK5=@TEG.>1PA3S [>7+V>AOR* 6J;AU_&) RQ+"P^IXE:#1F44MX 2XH&\*4]M4^\,P9 M[8^3K^0:8I>8;P!$F3UI &*(Q=DZ;O*+GVS.]U1OWN)(9]6ZN8I"[VEGT $&N3A3+ X''8X0W]%5'1Y7%<='; #*57KA5G?Z>07]* M"-"!J"@\"R;'.1][Q^YVGLCT8A .Q?R$J)\"GQ4W-RM0H&JTVE,B%3W>' NC M6LB+Y!?H871$C"%#+F7-0_6JD;%L!P]:L3E/?[ 5.I49J.#+U0J[]".]?'$W M8+&Z_ '!AFC_D)I.2@"D0T'#C$L!H0B M.B+$?XY1&+"R? YG3 6XC!P2^_L_P=R1XK3)L2 8#$P7=Q&Q/:7P6:!L M"*()QV'*_3+? Q0M/]B#EK\T%BW=Z!3/ALN:G3X[D?=S-# F/!\64/VL>:*, M<6Z_<=NV R.(9469US$WTLK=(7I V3Z\.>.Z0(SOZYB-0GX1WRL%_"ZV=UCE MO_V._@XV"\P6>P!7;IAQKR6H,OGQIUOZ?>.M[VI\AC#*)Q]_0I+VC.0@-2*D M+PM311OUBE74U&R*EWZ8HO GO2AE*6L %.MT"**6HZ6GF5?4E#,)\MI &?S-_,8F S'DN$*/,5$0EULB8?!>87AGTTV?:0HP2E"H:>+ADYQ.D9^/AX1/.3XQ-X_]WX]+OWZ%5S"F4)SNDM[7L8 MC$[IM4Q_Y_D:0 I3EHA(GJ(6@IMQ531&5_*=_42(Q9[ X*V8_<*0L5>\=Z<\W/I7ZZBJ$5?Q/:Y&4PU>'WQR1M0" M<+)>B8KOM$PRUWAI'+V2Y1*@+8F59FZF_,'<>QT(^89F REB 5WD!W(_FDX" MTB1@S9I!:L:)'\BUFXDPY<.BL$@SD4,]OIMVG)%WKM8O2,!:;H$$IMM_H+D *,E3?-O3AV.997J;UCX_)PDR3V7%^@TX6HH\PTD(;U\ M(K-^6!ZJ4!T3<5 C(L!; 0$*5_[3L1:HOF$1W$/"HB* ZZN8"G4G/VQPA)F0 MHYXA5XX?L>IW$(N:.'Z LVB"04 EE&Y6JS,2I-D7N1L]%4RG4$21A]&$:"5) M-8N.F(T\A6O8EES9=T4_)(AZ9E''@^]B?F0 /1'';#)S5I,LN?MLO]TZT8$E M";-":H:@E@3H*B#ZNIL@).'Z<.>O-TD\"'HII8HRLHC3-89DI%FRO*VX0CPS M]572%%%5K4B5Q8@ ]N'/ M8>A!C(C(>XGOPV'/70ZG9PB34K\H8K^=B_$SDBRZ11)%0'4^\N1+;C<*9:SL MMB[9BE67+/E]!?YT]/'C=ZB\.E9?KC*A0)/VW>\)GV4S6%#51Y^4&C5> M%)R]PU! *YVC%,!#N<5'#KC\X224CB"1%LUDJ>>Q]\7D=E=Y<50M! M@>(7I$TE+VL5C=B6JCW"8HX!%OJE(IT$FH\\_0)\QE?I WBS;N"] P@8S!DFLV2XW-C% M &VX#%BU2L<=4E>9\H U9%P88%/&!TE& JEL)JUW)7&.&D7,03"5 UBDF&* MG!VR)D*-9?!#-WZ KQ.\/1J028$R45FK>";H\8 J(4]@ .@O, 3$QF"@8ME3 M2)X@[(-]CE>.R]\2@ZW*XO.6!-'I.L+8*/B_5M'$XJ8T45$^(P9S^DEZ6*C' M,?]20<42,5P Z_O9^5L82;#=0;9,8(4D+Y0QDQ%C"-@AQB]%]YVS\.2?5.Z" M.C4;^8=O[BBE-:XVKTF M@TZ!QFZ;C;#+V&6#NB06WI%O?BQ@%'*82(/N@H% M2*H?()(^C@&N-1A=>:D(0^@D*#0/D>$EPX(&N4S08"/X+ M)-FB=Y+QMVR:E)')7J]AEE3WU+A39N43I2+5B. MIIGZ-"ELFY[ ;D$,#!^A,71N39*DGB6&_9C),@'(,'U9WLWH82J4BT&KY)AR M%WQ2C ^3.HUR-H+.>H<)P,3>.I2]8FJ,SP[J7TZI-C,,T9/10HS8?$4B%=+0 MBY<.BGZ,E)XY/,4T6G@P J$2]3S]T5?#0!(L#=L3EJ :EMF"#/>;,$H><+0= MNH<8H1.@9'(3#1]^OIP%R)" #.96 ##QQ:^*'XBA1DZTIH=V$B(L'U&E\B5C MAAO=@?EID-L#5#^P*@"B[V>Z6ZGZP17!D4.,!HZ^J(E7B##VEON"$U9_*H** M#]@[.WR-H5II>OR>4@WAB0&0#7F<0W@FJ[RT!V^B'\BG!MUB3LI@OJ*23$I> M-DRP #?JNZ]>E"X#C14.!#DC*% MQZ5+!O'UI>10*LC(67W,\?0G''CTML:[,/:3^..0!>"DD*0UY6&3RA&CCU,> M<\&W9VSL'O;_>B%XWTH\J0MZH@Q*BA0$12TU )]"0'/R0A [XT\UM:$&&\-Z MVJ!QMVG'1BPSW1XU&N"D>C[JC$%,F9@(!:&NYS081JT;90Z.>M9/ N9=&Z:M M-:?4N&*2#A+:\H%4P_L.+5&10UH2"+_,7VJH5,4O8?1KAK(V4,<2Q,:&7]0P M<#']\QFP>@#(48^,ULE+FP&JQW)%']<,\9]^\_DL3U%Z$]:?GO%?\#/[\S ? M&; \"5\;T48J0HY,CQ?7L:F*E JLY"!U [? M6,(\1X&!!+QAN&02]851,I96-7CT^:=5#BO)9&X8\(-4%I:*3-7^7_QD(_-9 M!CXR!'6T@DP921\]4P9IQHRIY\:5^W(?$B>Z(>YQJU4$7G1?$".(*$4S26^# M19 .C!D./8=-:G3\V2N<9R94IT,,M:;)G#(G09B>Q+^)1PZ'&$>JS [,DSCJ M\C;F)579!*RLUF-JW85*Z3-$ 8G@FYJIS"3)S":D.(HJ!E].8G4>OU=F%..D Y"Y(PTE0%(R5G$X)&ETQ% M.#N@R;(_#61SW+L;[.T)@WJG[QJZ/5B$*WVNBV\<7GKQ$* QR8'CG"H\V!M> MGB2,C2D\M2L_\!-\ W YU_2%%*Q]RI47ZN60#,2)X\' ?IS+"6.#,CYI16 ! MQ0"\S +_,5_:=1SOL7?!5H+'FC#+6,S^N&1G0GSY@B/7CX<9RH 1TVD #(M7 M&>6EA/8[5N.2LV 0^S7(>>],(4W-/IDR.]@*+X0()V*J9%C8=@$MT8T1$5C M 5N>[B(T"ODTDP_0>OWPWV83DE(OD"BCG>:*+E(X0B[\74E M8I41>\]EL?I<"FXZ&"1'@_Z2C0?!@ RGTIF;.3+2I%T&^ZU(;![7FI;I&/?X MB7*DEP']Q" CBPZ08]<55 U=5=]4W2/ES9KH-\QH6%B/SQS_"H M=W_%$7(R)@MTNH5 PKG*G+Z'054N(P9.7X9)*!:>!YM M$]-#.G'(__%WYZ$W* :>4T6"++R0@3"BE!&0GH= 9"*RL*09EL"$+YS$$3>M MAN51"$.$OR,O\;F(1*Q*DYX5F!!NK_CL1+]BT(\TI'P)JNSHWTJZ\Q&%E*5( M29HJZ:9Q852\M2:1# 43"=V#2O8E#"+%N@[*]WY8>(O4ND"^C+JPLW/ZQLQ$ M97>)3"2X=0Y#D3S3G(0=IS4[89H=/JEXMS,53_WH.LIHJA97#A5Z>$!< 1!Z M#L,GE2,W@^J XQ2=S/O;GA>N&0K-355M7BSAEFKA4:J,9PQ&CYK1+%H>4$32 M&O^QF#Z;&RO&Z*XQI>#DEER,=%)Q]&3 C#^RZ!6VD]8*.D;+88PL?S[&7IV& M9RF^P\-?QL\:T%?T?BK%[;\&GA^SVQ1[ER\N;"/Y[ M?W@1/YJ%;.8!'_EN\Z L".%OBAQ"QR0 M8('R/.8I:;X:>T[<2(B;"''=5R!NP;G6LL &)>:I+?#QQ_%VH'569K8X*;5) M#YWD1WTZCU$7=I*YT:M&<#>,=B'W?S.W^3GW$NQKP7 M&J4L6OSM"9@:4YQX ^@:]#^@T#\Y!)[9>D),&6(A ]6 'Q3R-D-.1Q$X=_Q) MJ1F4'\YX& A_YNH4?YE!A%P8,/24@N8A/PWRADBA:,2B*?P1$4;X>N8C!H;<<_),9:ZD6%D#2ZV(BCF M8+=&-R^"+>(L=")ON;KPZ1%*1Q"?;QR?SF,PR"W#B,+*I621I&O$&Z-7J%S6 M:%DRIN8)!F,JY3>AZY#;#;W"O^R'BL%H(48,<6I3'CDQ/>C6BCPW ^M%-]3T]:I3CX8#Q7M?;Y;"0@%8,W84S-+K2'D 6/1GCY'-#IW/@[ M";L]-"U0N,*3D,?DTNLEE"Q&M_:/)B1YY?(5%&3;$*SA.!TD?W @RJ&(X-D6FM*/ W9L %K5O4#+"F M65"S8,_ZI"R]/87-!4#ITZIO\XV89/,O(W?(QIAP0S"P-C/@,IJZU? M$Y,S\^;7& R.UIKK\JSJ#0-&5>C1Y"8%D1MM(29%_CD,O6>?Z(8",P99-&S\ MTX''.E8.]8.2-*8Z5C*/8:I![Y+&R%'M[.%Q2QPHT'1+_[ZA6N8R MB!02"O MG""2%!$G.7TA2'[\.SG^<";C+SSW#,O1 G162 DY#3R&6$>5$3W@;@+_CIM3 M0P9Y-AV4MS&$;WXG"Z* K@!PO>8%0->9ZD!V60ITD2,>)6&C;B9C>2 M$5R$.RPO$X^!M"64>P5RU2!L!(6' &EC7(I@"??F +IT2UWY&,^8,*DCQD5^ M6SGHLG<AP!"!:Z3_S7(6\A@*DCL*2)[Z-W]N/+RHC#X*21@Z\FG MA)X^.3[A]/DBS41V)TT3Z@ZBFK;IX. M#AG*CS4\):DF4"/F F43E7)%*5LD^;Z2Z2A6#IKJM*18;-':"?Q_L.&>AT$< M$M]C_Z GQBWM*T51P-A236FHRJ7R7J <=W:(J/SS,&S9$ PF'M*WQGZ[9S@2 M[$4",:01W@ *W!.&(.XMAK*/7S#52A^$B'CXY/H@S0N^ U;<+!,7" MZ=10?C,77S49'3T'AI 3QIZ*O"D@G0IA"51_13O(W" ME3_(&L3(C/I9:Q@P4*0#,?) M&!]A\0O'H3!FL!;?"0 S8P$@X$R2X(,D&"3[HYN;<4*&W4<05"_G:Q)"?';(VHAR"ZS:@BZXDBYE'^+&N@]CPYEPT CG\*1E M(UR<_O>?S&WL0<,FLQMQ$8%#C'Q,A]EGY\7?[K?'C3=ODC/CY!@U;W<^S M&30Q.UZ! Y)JTQR=?9]LPLC_1_\B.25$$,7;QAX&R$EICYLVK$^FBH>!> ED M-&(QA51#(YC,E\I2Q&J E!&XQ1G.&X M']VH(I/\FK:*2A4N4Y!X'*U1;G-(49$F[Q@_,"%=1]JN(&[N%F8/B\ M<)U0HDBA:C1>7L'Q?0A//8]5!W'(+=U2U\&YL_,3AS =_K'XW+C#O)H(%C8* M'L5PA]UP'3 J[' >9*>!L_B$,6:.%LGYGVU.I//A]OI\4?V@RAY="Y3&;:[8 M.S5.D,+_GVWJCYP_0S[-ZA+<8K@#X\'N<9(0\4#?.AY&'H]_@_@8 M,[DAFJ0KA8SR>L ,L0#JP7FXHCBP8+9 ,JB9+;/D/2_)X]5EG$9!OT=_7HO5RM\1)E.98>D*^X'++1]40+#$\&"1@/@ISU_\JW+ MP^E+B(FEB'L>5IS[90%CD0,A5^16L(N'CQO)@2,8.>)#'_UHXHD(5.,C6)FCS9P8J?C92G!_K%/8M!4Z"DW&'-&NN(-A>D_9V6%*:'1D?B'C)B8'&P)[(B>>D-!"PU] M 4.&3/*C/;#,C"D/6+55&#%#T3'" _TV"I]\>L:?';[&4-\I+6YU"G6?V3V@ MX]G(; $KEL7.+I,PK>_EI'SF+['8=:!8,($E*P@%>P?)9@(/>RIP40RG@*87&7HT:9,C7U_KRV^)H6%%A0<287T!) M%;S NPB[/IM ^C/!(J/W=!M&B&T1MG$HUCT-J=T Q7<9SI-(MT:VLNR7A3^%JGK"Y[VU,&\>ID MKZM(947Z%A?..,Z;F0G5V?$V,[ERN;ZMPAE2+33+F$\&:? G8C-+* .!"J%& MO)CBD*]-4IJ5 -+6*Z.CB@%1-JI>BB0&NA=07] OVUQMZSY_2L\E9B])6(FLT5ART9T[LNT[F#4H9VO$&I?"%1V$CY/.5)&KUR-@&>H9.+(U:!-"> MA<$^QK%,A@R\+V'@#@) EY&Y@O*8T0\70M6[\F.H(,J,G%?T=P/Q>R59Q.G* M<'%&>1;B$'MR9)[1.,8X=3'?0!BA1)X[R$R7BZ.S\#CYA>+#9AP6*;H=?5,F M(7K$")+>YBIL*1@#$1:.N3.4*%5C!) )4Q'&+WX,$A>3/W0;"+*,J:IZ&"QY M*AN,[&4B.,[4!.74%I:5$D-0KBQ]IXHC&8L(,G+5DJKCW,5WPU&M'8]TOX;.]'#$/#+,_W4*AIV,UC2B8I-)&^P0P4P$8X^IMBA!!0F M.U1U/535UYWTH&OT]6D..A^@\&!A[/T0TS6H6\,@]155;&IH\OI4T;44IX 1K&G.0A!5'N%%&<%>0WY"O3BYP- M* ]CK%JFUO7+!WM;73]NP$\BQ\.9:!JN!"X4G'B2O+*L1@T3XTAJ\QODZ+Q* MCD4\ * Q2[$P@L>H@ \,3R)2P6PG/W!2'K.QM#- V+H.XB3::S/J $F4T31J M&]$D#K$O"=QA"H;HA;-UUCB^#_?K33($=!+HJN"D"R1((TY[P;&?9R=>;@<* MB6)&;MR*/1P7&$>N0_7(-5ZNJ%0N#EB0(6IWEI7A.07/]EFIF59F/L,!7OE0Q>3!3S@ B"1#V_)21-7L==4W MD;1KBYN@9RH=RL:U0*F 51"]7(/-2XFDF N(AV*21 MN9Q*VT]RXRFR(\Y"EO_:;P[,YK6.L_6+8:\@?!%YUMR==;G=D?" )CVQ51AN.HQ!>D*M(HU9GL,Z:#+^ M$E8+!9C*N6.V>%YE8YCEDAOU.25C%LGAHU=79&FPKDPAXT!\-,.6H%!/Q=@J M:)%!U3/J!#%6PD"'/!7I("-_TQ .?1DD?G)0#'6ES*$A@G#JZ#Q76;><-S8O M 0P@)(TH9M'Q(DC/4))*YYB@ M;^@,3.$0KP (@&HJ/X>A-ZC,AP+G*&DB1G2!6#'U60E&NLDT#V%R98.E&&N@ M9"=J$1#4!D&FU<1N+A!0-H:CEO?0?(7$+N\LC*+PF5XC]&'DN(!#.R1&M>"U M62#.!*55[@$24?73(2G@.NHP%-5FZTTE8 MY."_HH\?%K_[[:?%C[_]K0RC=9BM_+,3N1OT_<<%^O3ATP_LA7U!KW*6M2Y^ M^_WTIR"?.%BK1#!T&P^7I&RKK9''N%%6 MEVR9!;9&,C.F5H:<'M)O=V!*/:-A,DD>$_KKM14P-V/(6:/(*"V^G#A5::V# MO(VTEFHQPN["CGQ$EI/;(?/MJ-3V7,1((;^=I=,9SM(_6A!B2X;F*ICGQ(EC M?^5C3X.Q,$W?ID/!T9,)T)M19$J-TG59Z<:LTZ.(EU=B\ZX#,GY*0V8!2&A/ M_Y%@[@:!]WN";\"X-PAV,*.;^G0XZ1-&VP;XX&@BYTNDI'([0FX#D>A?@RCU M,SXX+S*Z)BW6QT!S'95*Q@P>B\-(<9/UP. ,'+:"@EQ4D!XI3EX#8&'QFKW0\+#/#R[F> M@W9;15ZKC:?#*").(14Y32A@R11I?K^26Z_!,O$E#$Y6V&-F,7@SA(_$7SM& MT,1&DT]:E-+\!,Y P2E0>!BS67S!SV(GT6OV-@H#^J/+SF5QZ//_U001Y[)P MQY0?VN48(L<+=\GXKYVQ918K3=F@C _*,[)IULBKFSSPC-8PA=A;RT4UHL\EV>B4FW06=EV#YVX)39F+A M3*RU";$@9PTRV9YPL,=::H!0@F!2CCC)T@@#TK M/%T(1-;7,P^Y8(IBB:?:PDZC;V*F@?)GPL4^@CQG(*?[43X,+4^IYL7$WN]8=BUGD4$@ MAKM1#5G]4#B/W?K#H%HEU]& (,U,0F9R/D;X\7,7+[$$%":[)")R=%V44CN,+T/?#<1IL/39R?R!C\#[U63+O*X6J M6!I(1"0CRC6GPCT8PU4V/"6%VTG=)&$Z-;SR! ]:9KJN$H4^.K3[]>URD.^! M]A_=&,\6+4->5$Q* ]VL&T?DTV=)GW3IRMD.M:@^?D: TT0'+QY2A@5[@V(W\'0=,/"=A3+_6 M,]^[I8H[U8WVD0+6->Q\3]FPPXXS0H\^.P9=I@WMHYRQ=ZYBDW\ZB4LJU60D MS]6*&VJ4YD0,.-O*ZW6VIU.(X_A&3^6+;'WH TW2-E(W8@31*KZW5R!5\S?U M*,B/_C;\DQ/Y\/R]R9?Z-*Y\(+[4&+PT0$R[Y*8]<6F&R MPK>G;F)B\.P[ +1MJ/;,C8(/&\S-@E=A]+#Q(UY47*:<#D;U9M"LU;98F14] M6V$+1T";O DP%,7B9R\[Z;;&)F661R+ -#[[A/#$[1R:05: ZQ"Z5"?^G$+NAC$ZQB@I GSZFD?M@Z69]7^%T5-33 MJ9H,''CFIB'3!: .7(8[<(<)5+EG$34L=.$Q5_MLF'[2"D!@#B$20H =JFU6 M(H6)?_HZ561(3.=@I_X% 1X#?NH=A)>B[C%\!;. M!-5#X%T';L3<]O 04>;%3!YK=>4"+? '.YNU%S05CC!>5WW@.C06C3!;02<- MB)'!U\,UIBS016#JCJX9#Q9"[*LL>NER+B,OZ^GFII\]1:_"" +]>-;VCOA# M'Z""G@BEC('BM,X$$=1&>>C]3$4O89^,N5N:A./4\VB86_[GQ _Q)@Y-%D%O('Q 01@_/X2P$ M(G9EJ<;.&%SLI "8 19W7NL#WKG_Z\-W'SY\^ CJ/\_-7$ -%/HK^+\RM,:_ MHB"DDR#?4).IC:)ARLH 4,%1$9+P%\3*?^:Q(P#^S0+*(%2(?A.[\)@ZD@ MW__/WILV1XXJV]_9#&YB(3$*- M!%(X2*9^_<:%.RZ/CM%FHP]6EYHP9G? [[='!\/PN. M&."QH.OEP1[ ]^];V'JI/ :))7PD*?7QIBC^U],0R)<]8^N>E1:>P 98.I97 MY/O#9>/2Y:;+P>VS>W_ZC<=1\NNSEY#DF5O\@+UY;NKXYQ]>U_M UR)20+$: M)AZ\WA2EG00FQ/Z/8I;P9<"(4%R&^\\ M0*MT0&H%WT32R[43D0L0/Z"(^HT&2:NY1\G978@U*KPJJXTS&S RELW7*R"8 M)/TQ XI)=5WSWYENU.(*/E5YW[7Y_!\^Z_4BQ M9E+DU/22 MA8MESKQ@RD;@@T.5295\W;,D/.,K\^HOI;7G YS0D\JSJPXLN\J;^@A51J\O MHUGQ-L&H9?P' \C$BC5LD;C!Q[N/W@K6:V#WFS7]8 M+"Z-_KCKF5FA"?;X+G.-,:GCTCEZ6*@@>\@:5T^2@P$$9XV*(;P1"7S$B?NY M7W]L_10+D:1:#\%@FG"TU<6ABY-X@1Z*H:05_$3*X;!-"NSU(QBAF82UCHE# MP=*,4)@:HJR<7JV+"6%,[T3/O@DCULZ"*#F<3S!/80<-L1SEX^(UJ7UNBV_M M'O,>+&.A3!69+)AK2O S;M)L8X/Y;/9!&L7%/LGT2O[1L]]GG_W#$G#1+#() M$R?9A2_U!ZTGV_0NOU[NB=I,LIFV_OK0DP"+]IL=8Z\WSI;(&R=2A,&C M9H ;E*5O]:Q,4RQYMD-8>(Z<9'2]=430^(E1O2C<9:]3]I'OSDK@XN],4)\F M#^Q*7V+TKQ1_[/H-_\\SGM.O]6N^WAE=\(RL.%D+6&XBY;HQN0^D%2V63I(T M"DB>#>ENCP63\K_VL\:>E;[UW1E=]XPO3!/OR >I0%+Y:0EXJ%K2&:#.'I]R MG$Q5!BV3 [."WH4X&-^C9*#0_**&=VGY[\[P!R:/UA\4SJ9F7#20')U 1X&H M&@A<6A*S5]]'VPDZ"IZ[_TRYG?TYS)16QR?U!FX#;BHKU;O-.@:T*R!=-B3ON(.EAO^==Y_,ES[(U)[+@B]20&\>+:,SK9L=\+*6F M1;W4K*HB<.H4[;(M]B(<2TWBMS6I6^-WY=OSA&J%K".W,/G#('_E6* M_C=RHAOOK9>4+@=ZO7]GJ9(UG):$+10#!Q:D8PID#;;%1[FI]&["HA@$ZGY 'H-R, M[9B2:E!3])ZSB0B_A ,>!%/>1:7LR5/J<$WWC89( :G&9\'[) M-Y+8M9F XE>@:-0W'XUYDL0)SD0V$8]/ZB)>"_@G-:[Q):%OWY?N?&2]@(0( M\C"BTY2:_J"EGBRI4JKY8 MCQW)[UWZVEGY<_-'0,VOG$/I+ -*82CUU'!2 ]"=AY\/E]1O(-]B MJN]7#/@A/=QYAWY5'/*UB;?6"[DQX;NS UO_S"@59L[ZGNX%5XN?:)-)ZO88!.7YWH-Y37 M3A2=O&#?)^>=KGK&ECVCZWY'LABSI9G]:F:@50NA_\\)U[>KSL,V=._IW1LP_'!YD? M/,EMI1!GGR*&A=^3KV' _W"6?_"L^.*$J8QEN8U> B?8#M%EN[PN(7D7O22L M2A!U2<\)+%\,T16!:!IO\AA05:-"-,X;+'OSDK W$T0XXTYU1%%R>D!+Y"=Y3YJ6BU(1DW?590JC_\(7V+\ M]A;]3:])4!QFA /VC?W'YN*)]FTJOG*6?6:6P/$S)\O+X,K/<^X'63-W4)@= M8NLN8$89S$<&+MQH2+K\"$B]'R5;];LH8LB%A$G3-T8%GH43J\!"7 M&N/HX9VVZJUQ?YQR]$@\C)F2($$0,[(PD#-SI:XGT(36R5)63&[ST&76]_1! M5I+FMRP6SY\D%F]48('6N)P.9OL5,*> M6*(738I9\;90H&:8]ZKD<'(R]$0EA 1H_/X8TX$N<+-EW_SNC'[UNS/Z72F) M6/"[X8_[3AQ[.V_;O_!$8S'PN_\__OG'LV*]T<,L M!MF_/]^MUZQR5D!@Z37/X65(S( I.H_/?PJI1PZ_,U&O<+\\]FA6$&3/,5N6 MI!UM^<*D-XQSM@]9 C9=?%:0U2OD6(6PL"^Z:"M8- M+3XECUNY&[^^)4_7?0O]-W*6E5Q)6G_JJ_-!8O,NPB@*W\D0YXA_3GKY[L[W M^XCJAZ0@$B](,W9"\O@0YJ\O_U0S(91^[HQ_[RS_X%GVQ=FCH)%4#PX5FGSN M7LYX14;W1,[XK%_.97AXP1(Y300+7,I.:)GNF!9UZ.E'R#YR5OH*50)8X$'I M0Q-UN;GB5$>B*?JPI6P=6DP*ZH;]"??:/K:OCP^.!/;1AO'':\R M,^9D5/IJIQTA,H?F2-'FQ\.4OR7>[-&%&PW>4>$^OB[ #@FHFS MA9=H&G&6=2BZ\?!EO\2W?1]&0_0_I>N=90L"W[]O8>N:@B0#BT3 RJT,)P-) M*[!0KO^/T,/OVL_X[S1ZTY)$Q*,^GEX1ZFE#*Q]I%DM"E\VM:/.!Q5>!,9E6 MPJJI89DJ0J_X,?7>$#-0DAB-FS!"WCY@%9"WIV?\ZL;.EML+Z=]\)L#E96$Q M:]_LGIV//N?*O\H["9&P_N)+9TY1@78=F.%4PFONE7=SQBW)OR<;^L-W9QG> MLDV=E79%F4%I7V?%QFCUW#I26I:YI\#I16L#/3N218!I2<*)'5:EL M&5ZXPF(;\?LPV/8O*)_K"Q'K##"UUM,;&)G^D_>@+I:>&VC5A&AV&X,P^'[J M-G)7:(?P%UUV]_&5[5TK/%LQ8R=T3>@P9+;L;.\>VWLRYMZ+0LSY4?=O1CAA M0\4>^^;HOIN(R*N=6/Y-*.7Z8XOB>+.[\'R?M"_L[\NGC6BB_!,D00[1CY"W M\(5_9FY@\H-:*GB"1O368&Q&,E#RZU*,H M?_2(B/I'S&VE(B&LVFW75MRZBH[Y)ROU'"'R*A;T@#GW/I4ZO.'V)/==S;)F ![P8I4L/ M&A%R)O@M1KO4O_-VO3R"@L $CETH&"F]!-8=+RRS2%"(8"HDA(YH449K/_BECSW=EYDD3> M2YI0Y]KPU7/0)3;3E+ M5[E"\3;RCMSM>.'$7DP,4"C.;)R#1*.4OD)-:OSC\P>2LXL\^:<,*)%2Z;<( MR.6O31J+\A"%6X1BVD)=YKF=>/AP3:M@OS5(4"1>3$+(Y M N-GFD"6$UNAS6SU"8M/_H*\_2MIL(2YNK-']RFQ-6QV5YZ?XG_M7X^R))0] MA F&F,"YY94I64E*1.5-Y&;&2OIEFL=#Y"'BLF C9XX*?O395\[X9\[8=P@A M\)Z/E?J'_.LSA[TB$BX"HJH0Q%<]>^Y[_LGOZ3>_*Y<9K/1C+_U[YCPY^WWV^=$,5S1HYRE] MR35A'F%#2B018>891>WK ]7BKLK+GT4\@F?+/W"6D"^,5A)_%/@RB; ,5Q:9 ME"U\1E>>%5C5#FS:,QO[MGZ+T69WS3W O8#!*Y'G//,F ]^Y7]ETOHQ-'3$/ MVAV\%L#XT<=CP.#7MV\K>4T1F';7L[J;KB/AW425W9XC:B"*,R&I0D\RV-,D[##8Q4DEV*Y W>M($ MJ4A"G/ZW!Z*<4*M?OU"A?,6S\I+37%IF-R&N".3>A-$=VCO^$TH2GV[B_-#+ MNLOM7[0OI$O+J/MD_;,X_\"\8/--P3IS#C,#K:Z5604Q;P@0)!XU'V,QXPEM MTX@&T%US\S+QH9681)--]15RRI\_*[Y_=EVQ;]?X5).;3R(-E6JL\_+T)+SD MLE?69FDM&DGR71;.. L@&L&+HUY(? E)M2?65NGH>\E0W0/YPBSR\BPF2X]K M#QD.DLQ2&T;'D%2C(N8/8K&BV>;X(6?B*?W&Y+T?AX.R5@""'E8)LDEBEXLL MYD'#M5D,<[&XO>#L 0'T <&6=]\*:57A"$D3!OOET#SPPI0TJ.?(OT&%:91] M8(:@U@)]^ =(,#'_Q%DM5?*[:J[D?$&N>.%;PSUR\">KA1IG$1&]2@P](N;] M88%W'I9#6?;D9$6&*"=G9?'R/WNE/_8SI#M-W8]XMD?UWGG!5 M?99YL%W)6TX?QM][F=]\])CK<>#,%$$*#5O]C"W/Z;-H?HF_P4;8L&'WC&J2 MF+ GBV52&+#+K4IZ1!%H[-@OIS/ZF3/Z'?,8@_-H6X'3B;;9YO ?-?OC(_Y$ M>\(,?%10U+N-AJL4W6/A]OD=^6_H:Q@D MKW%^"F'_M2CF_V09$:7ZMZ11'!;KG.)?2E6ON,PH@K_E$E;!KC19(%OSF)N7 M%&TOPZ8:9Q4 JH-E4FE1)Z,L$V'F0ZTLMP'ORX=ID)@$RO#U6 8$V6;7:K/+ MWRGR8-(>O2(:58T' 5#64/YT>S@Z7E0$2(N@D0ZV"@H17PO7QV48N"3:QLV# M>O-0W[CJ]RA#V'4-^W?R'B7X%NV\I)R?V;ARPE$@")"J]255OE#P110H'PT" MF*S^_15B_[T-'B*$KXJ;53GCH6"8WU%(F-0BOFI=5@*!!*)*1MZ6Q/@2GO<- M"VSQX],W^4.NG&#_AGT+G-3%0B<1:;&N<,B9PFVP"Z,#*Q%432=IW+\.:]@' M7.VS:L"H'@Z"-)NWBEZ>7(:^=(Y>XOB86YK=2=EL$,":Z@?_&SG1#=;J^N@8 MV1H@ &>/1!CL2=SD%7I1O"2E02"VS@,_F:>4A6?^XB6OEVF<8,4^RA/#62-< M$LGQ(>:HK9>QSVY*";R;79;6^RP49^1#09SB]6Z'2#\)E%MX2'EC4D4Q(,D/ M+._9^6 QXG%1ADITE%W7 H&(*N/ 6A#C)X*83>$5-9X- MARJC"Q$6]VDHX, M0D71=#(04*DL*I1!N?<_LSF*@36>#@)/&6< 4G%;/-:ZL>G92PB#O@U<[\US4\1:RB\NJ&6L768!*(4Y+H M:1J3FFX2"-#H&10-6P6^82$E:F7-'B 8K\!B7X*"(+++P*^\M\"(JY>^HYW(!(;_T/>?D?] MC'5:" 0*Z)M$FJ-&2;E'DE+.U6R85)'03[3_'SX[WFCIX0]W?(,"3&*WE 6+*"?:)DD4@<_NH(+)4.@C$:3PAV@T-D\M7 M)_H-$9,-IR!Y:(UN#@C B->@* K;\/@JAH'8?J.2H=A%(BIW:'OK;<([GE\C M)#R7UHO89P181:&!U23^BCD9:!_CE_ -/SO>H2EVZB: .,WS[38]I-3^(NM^ MK8BF-YT, M12+V_\[Y)GAPK45\3)@@(WWD18-&7!KT2H$ NQ?5<%@1Q5ZW.5 M3F(R#P2 DI-1*BBZ.=:5E(KQY!+_<1,]A^\5[Z%B&(ASD1A_[[*R'BT,QG>5 M4B!6'XO2.@/CH=?>$[Z"H%7-0$$2$5"6E6Y'&N)"KMDJ3:HNA(Y+![Y]!@6K(Q('#_$'$',7WU ML"RYB:C[D3GHLO)R$E.LP4P00):ZX33]Q"J",YIH_]7A\LGYWO&"..$^?H%_ M0# *Q/E(+& */X!Z!@B@I'*S)-I)-1X"B=%R2U3N#[]B"B*^IJ]>X!W2PYV' M?\,BP>G..WC)M;-]_9\4,SJ!^--I%?O _T++8R0Q"9LAS7&P%$#,7%^=(-UA M!H 5@B:H!G- D*E)EM1Y+#0:]5\6!'J(:K'9E0JFR%02 MX4 8()2+E7,55QKW*QT,Q,IWB4B^AG\;N.CC?Z&**U4Z",0I$)45LS!L.^'[X3:]U-&!5]K>05 M;?JM! ()NGH+;:JGB&:" +(PUF2]WM6Y5?+A(,!I&FG,3#E 'F8LM-VZ>#O> MSF.A_JQKI?B!E@P&<0Y55S;)#_6"%%,^OP)A$%^@71@5@BTITX_%C3!RO0"_ MJ-3W1G+ 2&9I2(.(LL@'O>=\T,^!0&=Q[7JV.# PV@[Q!1!($W#A6JD-8IGD:3 ,!GBC:31UY MHIX! JA:!3;C4FV0)&:I, A V./UT7B5C.QENT .226Z"YT@BS>^>G,"0=:+ M^5009U&E]4?2D7NS^Q:S2M!Z0WAM@OV3*RN)-/W?\46)"\U!]K=>+7*25YK@ M^VP H1X.1$A_1'L2<^D$"7GXQ+)Y=0R(6U$N\92%WFRB9 @*L,O4WJ[G(1P'9/'%,(3?3$$HAWE<(ZZR>)(-?-\L^ M5Z.!HJQ@3I8]U6!E@C$@3N4I/1Y9S1C'OW3BUQL_?"]5@54Z\LVF@@"S3D8J MF5(TTCZ1%<5]9#59:@- X#TKE9!;6LK5LL72EV:*=?6:N]:;I]#X$<0)5$HY M$BUI0Q^V^/H#15LO%B?R:B>! .W)VP?4VADDW*] 2B&0[$Y/HP2;S00!9'8= M:),&;FHB149XUFXU7=$2L^0 M7'B3#@9PU9,#?E7WD2.0'(0#0&#_*=PE[TZ$5>(WY(='L?BI'0P"E**P7?P< M9D%SI,Q-X2U\#HD>0TM]N,B].'V+RXSLP$$C$ =HBE/4! M,XCV4,ZP?R>?TN#:]>(P^)90@>"_0Y\40R E7F1*EFX&B)/*@C%NP@AA29>] M2-M3R0;Q$V;OA!)%IV8^&P2PU>Q0UCV)PL'@OB M-!HEH,[3Y#6,B'8A.A+%3T[X\D@0#T_$.'DWSPNL+YA(2DJ9]AG#7D-2"P9YQ5& M-R\QGAMOD2A21CL#QDDU@O*QMJKD&:H)($ JDG%*.3K*]U<] P90M?X1F ^P M]@7-*M#B%]AX.H"[YF\O\%C?.<473B"( 92/LK]Y[E(A@>?""F_202#(K/1F M2FFI/L8^SBM-&)^=R-OMXDO?B>,\'Z)Q OHI(,Z#^N)(-H(3OU:Z3PE=7;+! M]D_H(4Q(>HKCLWI/1I?$8 Z(,\K:,!GE&TD'6S=%\7W<>/'6\4F%U.O O:IE MHZO&@3@+:DBZ("\<\6=AVF_OU!;=W,04V%(K$9MCD.!.DT JCX"W"! K031UEJIH JP4XD,%0&HB5 MJ2ZZ:2# D[2FX<;]PA78IJ]-<[)]'M,20(BQ*- H%=4M!@2^+3Q=*%0G8WFPD"R+R0EB(6ISH$Q+9I@-:# M4Y6 M8*#>[]HD#E([%P2@MX>CXT6T8"/I+G ,8\??[.["8$_)BA&30?!GEW5 (,"D M$0$35.I% E0V]/ZKVG^J:12;P.?;^!'$.;+R>9O=]\-_!@3ZE,)Y+1/__-V)W)\BB=&BVTH MR)W$:W[Y\<$)7'3PM@J>9S 5%NUMV>C27 MQ*">S( ? H'"S. >5BUQ!B9Z\0S[9(ZE$];I<+-[B/"?PS3V3^RZ8G'2";8> MJRZ*2MWTY+>@UVHP3EB8/>11#2'K)J9\Z5O,AP4P)TEE_)!T, A0I 6@52!I M)X$ [0IAT7'K92GEY> 9L8E7.AP$.+7V(TJ:DXVUSSO/WQS/)V]37GG[?)<0 M.1]+^"XBLD[.]/"_L98?3=M6AT5 G"&)"O!8Z@LF,59W;X\"DE1K%J'?:@$0 M()<298G775%=7S00$ AM'-CJ&?9OX24F%$PX%Y[[@%4)04^JZN\@3J'9"^,^ M3)!A0K?Q9!"@EI\BW5-EGYB*SDQ&$2OJX2#P+^DU)71)B(?:/Y52[^*LK1RY M _^-?+=Q)(JQ]@')WWB=(B4;"(*DVK8 MGWIUH*3-]"FDIE)/KIQGOKU8NZ MLI!]DKQQO(A&=1+C"Z^&E*E #;)4#09RFACKQ&BDSU>6# 4!!H_Z0.XSVKX& MH1_N3[0RI:*4E6:*?4++,J/7OP; MZTY#_B3FY]+A(, I9;5EAD2V59K#A]Q-4.IW+Q3:VRP V2Q;[%H)W=Q*H9P M<9SZF^^4B8*]5P6!G$?T%OIO1"6F='KC;-E3IHA 5DRPSWXP\;FHF9AZX?BT MN51$VD3^,XRR&*L&0VHY'RS IH"!($)),8@(H0\OYJ[Q2NR3P;NH7P0$Z'6A M&;,+;RL"3S@0! @*;TU+YPX(<%@81AZ+H.D&)!H* @RI]]K0E]!F/@B R_7N M2R)(?'&J-,%0=_HQF T"V*H&2HP(^I 3,@K$YO/&,!V'RY4>55F+XD MN]1O/JN\-;6$!;9=P[H)X9$(M>)2YZ6?0)S//4H,JVJ*3L9\-@A@>0!(T9=0 M$6\H&VM?A*WV]_G2$%UKOUM/#[X*MREY"5D@JB0W7C@(QD46=?C+?P!!UV8, MLCMK!0&D49234D9KMP((H,4A*NV\Q.49]KG7+V'T6Q%2T&!>U9_M;[?6QP[3 M3=6)4:K*CZ_0/7IGK2$;<'5Z\V65T!LC0)R-NLJL M^)51S0 !E*#W=%;EBT76E3DS1PR5@0@!1IBC0-%:.8RT0 M%".YT32ZN6/ILL95B^BDEC.>A1I M17CU1! @-M6IS,[,2X:9Z6"U22! JX9VR0]+-,ZZ98S(W%E 1MZ#3^*[E \% M<0[%2ZH,^E7GA+9< P3@>AD4H*2IS WX%KA>3&\Z4KJ3+K")K$ZT=;?P[NPJWC/[QBGG"? MUK.MBZ>9I"D61ZN_ M L&^29=8%N4@=80:SK?/_21)[7D%UD=$7!ND5F081>$[B^?&@Y)3@T5V7PK$ MN6^BO1/P@L"DOD/H>VY6+/@!GQ4IM,1L@(*RW$/W-Y<>^ [[L1.*JQEW1S ]. MM(GH;6*1*%DR@]#LJI\& CR>S"#/&J@, +%EJ:WCXO2,/RPS)QA,L\\@;E 4 MO*/7ZV#O[#%3H[[+D/(U)S@IT@>,IH$XO5)8FZ[T3RRK_6/@]NRYN'U*N'). M;_(#K_QJ72S_ZGQXA_0@ELHK/]K':XDQLW#"-'D-(](01^#?E VU#P:6]8Z. M)Y, N&]?*C^TF@V";4AR4EK6(;'.Y*LE;[!,6F0;GY36.N4$$" 5H5_Q/J$",/(W02!64I%+T"G0; 8(H/*R-%?H M1=+87C,4!!B]&A&*&U+BO_NI2P.1BY:'K VB++YCNAV 0#HW&\>9W=CQE283 MQ7 0X/R$ BRO^V1[[L$+O)B6/7U#VB[V1A-!@$CZTI(;7/(N*3.CY,/M2U[9 M;<$/3"$?LEP5(D<5W3$$#F##F2#.K-"ESK'$X9*"#9BVGM"6%.?V4(R9 ^82 MR&7I]X=CFAD>Z[4>#..JA_H*,.3E/F0N7+<)-5?/M1Y?.K\Y0@ MY$O,-_4!UBTX)*=\LZO49!;7P9$.!$$V)8=0N>T9_K./!*TZI29AC;.IU]H@ M$*41'3M(FR# DE3X8-'NDF@'^03[C(1X>+$H1-!\D<9>@.+XRCDU XHDXT"< MR2^(E#C#(BY)8M_S4%MNH(]+0J^T9'>K!4" S,VKS\Z'.*JC_#N(#4NDA+S6 M:2]90[$*".#S^ BY6ZDR L2F>03 11BD<=XKEJ5[*]KFZF=95RJR@J\W7DRB M\ZF!Z@;_6^4B*0>".!_39H5BH=9L+@A U17?6C:?Z+P8"%3(BM\;EJ%M,1T$ MN*9D2EIQ/K^'?2B=+P$"[/PQN%-&US=&@=A\3R.;/-E^D(5!H$C930%&$X5V M,8 :]M-[,?NHN#T<,:_D&6)/1]\3)%\UAH @MF9:+Q&BE0*<=#PH@)A0F9!N M6<5>E<^?V4SKEK**Z:N1FBX> >)D2CXG58WHVB 06R>._]N U #5OKN2H2# M(+'HI?"=*^?@[$F3XG3_FDA#7+23[+-?TCG:H9VC-[M+,C9KW!EGAOEZF\\6 MTT"<7.&2RY):)5&EI/[X;>!Z;YZ+%18F_N"3:T2:$BY'B@!&-)F'1B&C .T\ M$I;Z["6\< ]?!H]E,$)9V)LD3-K'3ZV3U2BB(7'_QD1 32RLW*B9_WK@CX% )4M@I1&R"CFM M.0K$YJMQOXK]"P=:MPVR8DTE&:7A Z@;"?4S0)Q++2&ZA3E7-PT$>'EL!:EO M'F/N0!+VU147*B-! "&V<*CKN>OF@ "L*C)_(ZX!MY%5*[?\M)@. MQG8C!. MHU.1UR&"JCG*.O>[)&TL1?ZWQH\@\,Q+*W>(-#";:?T\J@XH8J(V\%/EPT"< MD=C/DA6BQ'*:2D(PF@H"S'K1TU*;#7EHB'82"-"^!5$N,S\['YD^EJ<+/:# M\7F+B:S(%#?VBH#NL1P(=)0JA;%(-:.&1_I9((##0CG3HS5&/-$X$ "(DMBD MU@OI8!"@B'59UJ.&W@UBSL*\@H3_Q8KXL_;+6'_WN"![RK*#R)6I/WJB,2#. M[9GX%3+W5M.;(C\IHXD@0,RM;=2&FOOR2DX\Q;-N/!D$J/?HG1\%J844A0'^ MXY:E][,#,2B0W'8-$(!763PS:K!,(OV#4!X-%AAQ6K[9#!! /:/M:Q#ZX?Z4 M1W[+7VSI8!"@2$/9::T>B7*@F $"*%:\GM" ,$T,%H%7=LU0 "N M:@_6M^.@?!'[CE;C*!W1B7=;P;JTR2SXUP<4[8E-* K?DU=>V$AL[!<.M7]V MF"5N$7)C$@J7"5F;'?XOL9(2-U?3/ZZ;8?ULSC%+=ZEMRW<:KI?*C^#91E$B M@949)Y6@I,];IX7LDV#AF*U&W#+[%N8%Y@4(NR\%@A)N'S9R82S_T?Z)%8$3 M)1FD<1C"42#P3%*RXLVNI%^9:F5F,T$ *2Z?GI?V)V%.B(8YB> TGFR?&,^3 M WZ2]I%S:(H5^4_VMUGIL'7IAS%)#?3K4CM)(I(@.8HZ](;$Y=O/%_2'J?^NWWB MH=FECL>%KN=7E&7]1<^O7L0RIZ3M5]I,!D%865<+YFJK^"+-&DVU6L#^Z?(V MB)O@*R+5[DF#3L3?O\9A*L:".+M>5=F$5J@^"X) 24%R)-R[7(FQ:&-?U&K, M(XX5]-UO11!(42>\\K]Z*MM^NQ5 "T.6Q0!)QX) HA<[\UL::+]-P;9Y[+X MO2,F"46J7&,$"'S3[;R&/FF5Q)0FHNA&,1)#TF(:$$'LW'4CTH::_8?(N#^( M)3+!0! G5'7*22,K!<. G,#3P?']3,D0X[XR! C6J=[]2-PX\>;%]_8LATI9 M$54S!\IYO"+?5]KZRR.L9X8V,Z $R:'"05 (22! 2,A',!($$*UJC\(N(+Z2O]!<3I#).3)[38C?0) M$&CK6=_DXB1>0-:_8L3/@4!GBXA$B/&'62Q%+0B4T/2[@V=A%8H%4)+L?:[[ M,;VC^J+V60?$.9:2(NHF1JGW7#<'Q,F2*)DRNVJZ)D2#0)P)89Q9!86L;R9Q M7'GT(;U!2.V1;#$=!+BD33SZ5XIW=$UR1S6]1&2#08#"Q;E2%QJ2F8(90Y)& M04/Y7A5C8:AT0""C5 *)LOV")L5E=).5$&"":M"PJXHO(_Y*7H!$B M-L1Z]CDM/B+ MJ-5NLV-9W9+R"UW7@ %XB\*4-UB2$8=>M%L#!."T>'.,:1 _#RPT.)<_9;6L M%1.@@$3,5:I\R=( $%O6=B^5-2\MY_;8=T$$.?Y$'D'&EZG8O25(2"V_34, MT.FK$_V&DILT<$WJSFFF@ "K2!!0W) VO=",EP$!OJ05!GMM^C;44*P" O@R MMZ,'Q]I_R%58Q7@0 &6!E*2(M!0Y_U[#_Q_PA?L/R1%.DSUSZBY6P4J3>M)H(X\V;CXJQ^H"=65I43 M0(!4C:VH%-S7A?1HYX$ T+1ZI\EX$ 91R%7*BDKI9Z>2X) 2\DBG[_H.@^G MQK)OO X(!)0Z&W,0[L,$Q7>A$TB ,6V4W'8Y$.C ^^*U ;=-AZITD/V7E*@8 M<2PNWR(< &#+S,3\'++*:2E6D\Y_"JE$C2=&01,$S000!'0;N&@G5P(O3JSO M!J&?.U5T4I=U[)_I(WH+_3=R)!5'"@V8^.I\$%-,H^BNP'_6?A$@9R_TD\FU M%N4$$"!E0>3X?7_!O#OK($QHD$9 QM21JQ+YVJU@W4BF/=0%S^#<3I MF%M>^MEMP)S*_Z1.E*#(/SVB8Q@URDM+AEEWF>!MI"0!-$;G^PC1NWY)A",4 M'4D^K[@Z>ZN)(,C1*)-7*3ZV6P$$T)U]E%A 1C[QNE=GRGKZC?$=$ BLY6DH M*JZ+1X( PKRI= M.+)AMG1,7Y1:B2TQ2^S"2)#U5AH X(XE#W9 UF<\& >R% MXQ.#P],K0@:"J'PT"&!8Q YF7A%ZQ5<>*T1,?VQQ0KI9G?AT0XNH@A>[1P0 MYU!86^7^3WW;1?5<$( JPBH>$7FFB)!4\L^SB+\O(K@[+@4"#6(9Y!$Y/B'2 MG_#FR3NU";!0<@QC<5ITVS5 "X_-"PI[U+_SML)B=QD'@@ )?6-Y4%BR@D@ M0&K6-!&RH<8H$)NOLP8LR>4-9S,CA=BBJY\' D"\L4*RE>BDQ0 06\XLR:5J MBZ1[+RO!^A"AF*3[T::]RI*MK5=O.5-C>DQBWCBKS&DT& FKM^\H!"?"*AWJEB,@\$@)+,X.R/:@(6,G3PHRJ!@RPG'WMD61B9\\$UPI) M] &Y7\\H$I0"UDT <<)8^-WLKN/$.V V(B3-Z@@0F\Z-((8&6]5X$ I--$[ M56B(R3S[-Z?2FOB+)"I)- C$V136D4;1&BPI;K'$R-^?-LDAK98"@0::#4RT ML]O#,0K?6+\YN5*J&&Z?(,LYH3=A=(?VCO^$DL2GVSP_-!/*M#- G%'/(DQ* M5C/4VB 095RF UY9#G'%6WE^A'PHB).@QJO"&6-N\%+, 0%8HSZ@U+8N5-.- M9P.(:(HS%506N50; .)\)"VQ&*._1^_TIS;-M&HS00 I$'Q5M@3%_A=Y4PPUTUPCM&! QAH(>7HRV?]R';W]RD4>@ M^#/YP_?D#W_\B-W_BT3^7&*9+ZK3&D4?BPRJ_BXBK!$VQ3#XB/8>^6Z0E!N! ME_8F'#;I%B\1L1/X)/+_XW^ADW2/]7$3;9++03>82S@^J09TC347S.)%YRP; M.BD^A4%J#6Q61TU[X Q-+$@9/RG$JIO&\G,7#Y]TR[3U$ EZ>D/X0)V:$-W8 MLF3XI%L6ULMO[+0Z:M(-*KO&-C8J'CWMAC]HM)M7A$?(=]L<.NWA"XKS-\^^ M/&BB[8GR3$H;J_P\\9;8.RT;:66C61_LZ71X"7W!!JN_3[0I8=_FTJ:JOT^T*5D1L=*^&D,FWMKU!^DUMT<2 M05=YEM%I\O0E6L-ZEF3 H#U^%L7 MWXD\.5V#:-GX23>M:%?1V+!HK.7-_M!BLS]8V>PE_N,F>@[? ]U62R-M;)1> MGDU$,Z&"K?S&28;;V/)#&">._W^\HY)%" =/I;F3[T?(D6RP\O-$6R))1O[# M:QC('X+&D&EU'V"R^W[YZ?J[G%OF00I-G-1.R;GH,(Q=%__6[__SQC__QN[,CEO6)-/9? MO\.O2!KC#85'5AN?_,;S?^X8*J1;I?M,2+](.G(>:&F8.SE>_O(?:\6+W,*: MH>;+6E$CM.AF6/EAW5B1F9$S]/QYW>B1F:PS]/SGNM%3,X]G6/G+NK$BLN@PEJY5OQ5[" M#"TK%VS+GLD,)2L7:#4>T0Q+JY5P-6[7##^K%7D5'EZ.F[^M5NQ5.)0SW*Q6 M\)7ZKS/,K-SJ*W.89^A9K0RLYJV:(5\\UMK6Q9TH)7V$:Z"8S;5\ M*D;'8?\%IAZ)/4@-[MO M,2OC( %!/,U@H5LH7KSX,".[SFHW-]@M*_(OF60.)-E(PDO]$(ZU+KD5Y MJF89*XG\*IQB\?66E#6ZE]YFY11[A%0N7ZBZSH*!UC;=:"I2>J3D!Z";996A M>JP7$U$1:&O8/<+B ZIG6IO,L @&*Q+[BY?@]S9.,)*CHD"N\I(;3;4&6-:Z M_B2GKH9)- MRT9;M!PECA<@-ROO7.(G6"WPMI[9AB D+^JL&3H_5L1TI0T)4;K*K"C]XI5.YL)'(&K MP%-;7Z*D0>]:B:Q;W[7ZU5T%LEJ_AS)/*!I#[OH(%O>Q4X[/H;:O8UFT3 <<7]> M-.*,'\MJH,V*<*-&BDE0SRJ0U8[?2X.&5H&K7DJE(EYI%?:5FE MQ1;-J 9GXJ/:1'3#+G6Z/:"(EI:3@&8X&0APK$C>>8IEALC[=T&!2J :DT ! MA7X3$< (/2 M2[MLO\5@F*O=V&5;N0;#FJB<^-)-8-U0IY#71C$"S:.<=OYKO-E5'+'$!3M3 M.Y")5YDU ,3_3J@"72'V7XV5:("%[99ID.S])HR0MP^8_VI[HB7G2:-G?*$" ME_[-9S?<_6?*G#B:0CDC?_:*K42T?;[-J+<),EA0/N$)OR ]I:@/? MGP0,]1Q[56"XCRR3436'(1T.!H +)_:VAKMG8RT6]R/W.'\U-*B7C;9?5_N9 M)$'IG %LT+";C:.DM%'\MV*3^"\D"1FRS:VBYFJ-IO0QX@%7"0;LU;#.#&ZS'BQ+2\D0B$I2!_\^5*Q9=5K+' MN)'OD[T$[EE0%(= XTAB\IL;_*+MD "P-!"BL?D>(SXXP#[^T"[<((Y<4Y4'S]@5^8,,)OI1.= MJ%)-@LZ)[!E282V[MT;8&O:+EM&(-\NI_ (_RO)W3S;:VO8Q<6J?DNH8F]%R M=1^*QO6BF@'#@3N<>ZZ1%3*"?VL586M:_U:MWJ;*D[0*A.E<4)4T.+&W9Q5X MTKB+JLE*5=?,HO%CY.JI%:[+61=B[NH>H2J?KKM@5H$< MI2.G&DLG=YNL E-=72YE)+;T8JP"KS+?I^!RMG.)+!I[.O]\C>^+GLU%XZ>3 MK*YR0:TBIZ2/H)Z[NA:-J=:B:,VEMFCDZ$51E4RV+M0HA5&)5+8*#(TH9\F= MPZO ;*NW4.MP7E>NH/*Z5KS9H^ %6LF85J0D\**/DB8)#4EFQ*- Y;J22%0-$4W"T?GW3W2. M&X?"\?SCYQLB#U3)M*-A3(4_,B0%:$]2JN>'IEI 3(:<877'>5+0$,$J&3X_ M%4M-0%.&J$\E2F6XSK"TDKHR2BRU-ZUEV)M >P!=[*-9&YC7F9YIT8]261A] MD61Y]5?%7/L)P-:2UEMG#1 V'P9X-\+D=?58(,5;-3GL@J'V":2&T%B0WVXV MQQXHZ4OLN1[6<9X<'_'[J )#.MX>",5&[IT#_F,IWEAY'0PFVB>QQG,,N B! MJ/Z]9-.-@?:2*QXV2M93_ ZAAJ]RJ\UQ]DC!,'UVN 19+*YYWV=B&MT+^9=J M&;HO0O3)Q]F]2:Q"XU4:8;0PG9>6"GU$Q,RW3?AC>/[N1"[U'ZHN6^NUK($N M:>"I)'SU'&BGR&A^H&/4+6;O'/5MY]1G:CS?[OD^HF,:;5^=6'0NJK-43[18 M/*3:&4EY2)+!T&XK&TKD;[=:"!S,AH )A5"PW\5I<+ M$]^$T1W:._X32A*?)3,=ZO8$PTF3[K+]%H&2SOD6"^:LS&^G)ZDR'QJ(]")W MA[ Y?6 :NSTP(6WVR1:4@RQ2/GT.)M%^"@?POZ;4F(M%! ME@0CWX0 MSP]A\#RB;;@/Z"HJ(AC]LY_%1H:IFR^!P&CJ'.W O_[P989&RU]_^ &:&]_$ M+;O:8OI; M!UD9!617IK0;,2,[? MQ\ 0).HQY$'39$8#94':&Z8(25A7-G27N@XK08W^C6\?&+(*#!J_;YH0D\^D MZ;Y!)^M H3F]F8?"K*N'L9[V--$UJT"7,9W)0G<^$_A[!/9\8J]7B-!G 03C M.*7/ @AF\5*?E0VZA&"-4Z=@45@31(4-6[A@GEB31J2-4KA@/C8OTPBYSWH$ M;8/H1JI,L"B4-0+[/NL4#!3<-W#-@FJUFN=Y(K15W&&&OS7+_-TB&3/,K5D% MF"XT,L/VIR(AK4DUJ+;PAJ*7<([(,8O4S)PL:]85U)&=.8I&< 9?!S.L!">, M),VQ-*C"(,<2Z+I)ET[\>N.'[_%,ZR35R]3=!GDA8OZ&:8HEM5C 9H/2VA[/ MM]LPQ0>('UWDO2GJ*!E-M5@>YWAD5D?'SRCQ-MB%T8'Q$DV=*\/90R?M<5ES MLWN(2*W=Y(2%3L*$:>-(C' _Q3B:4VSF+@U#G!T6^DS8ZGP^-U[@X-O?_WQ4"UFLTE<8N#,[&;XU18BP M!$;]/&CGR$JK#W".JH7LG:-SRFPIQ,,5H>Q)?_"=("F_Z[(#-5\ D"!*SB+ M'_*DB<+J.4,7#RF,SC=AA.6F"/_)I(2(R3QK:+]"6 O;>DRJ#=SS0Q@EWK]5 M,H1JAO4KPKV<)E4$E%.L Y)?56K *K6.,+WBC7F ;O9#A(Z.YV9.5]YR !,3 MW31IY"J%L^-B _."1U)+>[/#;P9='W_LCFSFSG->/-]+3B6#-;[S]^B=_BPL MN=)U*7N:6NG";W:YX*,LV*&: DV6$(C:O65U&#)@FY)B^GDP0**Y7)(N.R:@ M*><#8IF4F164U8Y%"B3'CL)D$>=J\Q*&/XBW"0H'0PJ:=9*^R_&Z'2,37]2#D!^K@+O]#::2$UL;X$K0'0:#;]S8.@ -2H/CV MUIPA\<_,-2$VF9O/LPE2UN",L$DY )51EK?;KPV> L)>"]NK!M^'+XI[9S%/ M#NT@6W!@QI4E")QX$X!X %,(JQ>:6#"X289K7&W,3>8K6NXRTZ;OJ?BA;[O, M/"_9&'<&TA7(K"2/" NLTAJ#^GDVE3\WW2:_.%'D!,DI[T KT_1$@S]),QOY MZU\A$6?697B;1A$-O^K(D,5+#*PS,34__3*\*Z#.9J7D(>K]SD6OP3YQB$ MZT7RM['/BA8=/XRC2QO_2IP_ZEEV*[*2BX\97*TYN?C,I.-A!*&V#SZL=7,V MB.H;M&H:X,[.[2(!B_S CL%XJZAK.&:\7B/,6A#>M@HDFX3'U3)!6J-\%8CL M'IZG3[09%', \VRZA\Y5RS!K8]'63(D& 6P5;+:("%O)*S^TP%2)/ANT$"9< M'':5E,Q"XY9>9G4JD4@9LK>N:K_]Y"(ETUT%(H>1B\8A_#4?0%OA2AG]NI+' M:R3)JAE_NQ)\#BU0F07]#EKN&"YRNTI:G0./5U%&>BH)3!T"O0I4#R2"*1^Z M52!R,-.4<2S[*&@-,2.; 5I[6*W417)72:1M92OSP/U58'5H"4N<(S!H0?_E M253M\A96T1UA;#'*-.=B%Q7D.JZOIYR8.6B+ M1;CD.)4\T"M==!7M+J>+>]9DK*ZB3>9D="]/J!VVL^8GBVGS-HS2N%-,Y!:: MRUQY\=8/8RQ77:%X&WE'%F%WD<9>@.+X2XZ]6320V41[)^!A@D63'):U\5#: M>AY"2#H;9OUS-/7+AUG;6KI^=J*E8\8;OW!B+R;IUL7^G_$I7OCR6O4=%H+! M7 8ECC(WZ8+:Z5(OK3*5I_1P<*+39O?D[0-OYVU)LB2SP9-^CO@(MIA5SXS+ M- '0];^13[#7"$9U(#H>8#@9QKW7'U=%B3;$RTHNL-A[,Z_[*O%U8Q[]C] + MDI_Q7S"DNDO<=A5@]0?CXDQUM[O% C!N>,<#UGLIQ4A;R=4_3PY8S=I'SF%> MUYUOFB9NQ9L7W]O3G>KNMW;:P.7LFN@M5ZTK_0KCCIEB-;?DE^$;X\8T"A'8 MO2R-:E^EFGWSN#="$,PD6\D<>QU3^+;P"W ?!G@S+BIVJ'O^#"?#N)9&AU;) MI#1$S4H>N5+1F=E=V#R)H\2&=/V1Y3,LUD!M;$IW19538%Q,@\.I6J152%CT M97S$__-K 7:M4/8\KB+?- E5N*1<=9O\XB6OEVFX

:$\(H%M2_?&:B;!N)'B8R@_H#K8%WW1RL]FL_[Y[/13:8E!(K9"/L-F M?]GZIO2Q%8HI,*ZCP>$(Z\JM_CJ2[F]>'AQ-/-1>L$?!=FH!N#==*P QOK#M MUK#7PMQDF[I+W7(1&->\TR%7BN6T1-VB64%-5'YI=GB=$P,HH*$]+7,H'I%/ MDMII8Q#:R9;"F?48TMFL^BUJS[9ENN^+\KZU-K">J\)@(L,02L6FUA?;*V$S M'!^TGO]SY& L;6G&R,RLWC(PM#&=FFD6@SG%.S.7)MJL (,+F!YB-9:S!9Y6 M!C74G<@E0Q= M.>PKN7Q/Z4N,_I7BA:])LLC,5/;Z[C673SK/$.V"Q.98@NC;(HE458XLD:%'-W8M_8S5% MR9^D)E3Y#'M@L(K?]98B1C1O-A<8:(UBY\+MMX+8<$EKB'@F.?IY]E(CWU\) ML=E<^ZG?9A0K'6X?@-O#T?$B8NE3GH=\O#T0\IW0=D^T!\MF=Q<&^SOO#;DL M4M?P?+HL9?'LJM'(-U[@)8CN5'.&NGD0P]2SGY2@F<^'5MU,"99ZCL4H*B=P MG8P^4W-]1]HALLEJHMU1TPC>$) .ISZK+2K;K(I!*U5@I)%LT M8Y3Z>=9 ND?O)2THPKIPBE%>NB]F$+9>QN(9;GTGCJE*3^W[TC.KCQM8&[SS M,)O"&H4&P^JQ ^_I)HS>,;>A$0-/1ZQX*G>E&#WPOBY)^?%N3'MB\ZJ=;]Y81K[I]LX3I$KJ 1N<&S]%AP8NG^$+_'YMF2K MO/;1UI#^C.?"L&BWJ_1L:C"T/12SAG!&J\'!G2/M4' M4\](CK)/#:*?KR5'Y*="T<:?DZ/M4VWHX23*L?BI0J@<4SF:/I4'G;\L1]7" M.X:;HTKE\LN0]:DBF'D5!\C"#;*%G8AR?6:[09L@NZK4(D&'6'C8 )HZ2$EKPWPJ4X+_\^K1] M16[JTU(0^%R"6,A"GE5]!SLO X-/#$H0A*5T1^M*4A$?$3%PX25O RRL;Y$% M-B*)-?HEC'[;D2WAU\![D]>SU P>. *J(*8G](8B3$7$5_F,H@,FJ7KE%N55 M[;T<@'JTVC/*G_5>>%O)73S?_BO%LB19=(ZO^44:>P&*X\OP\,(/%1\Q]=24 M(-,\VRT7L=<5N+8CY54WG 3C#>YVC)6VP!K_,.WWU6M-[3O-C4N>^'[^15QE(@BY4DM9G,N%JWQ6!P MN]8]SWM1T)K"O]NWD6]+C=.%A@-J*S_'!V0AS>6+JY]OC_?-,.*3QM-A7..6 M3>?-D;,2\>]!T:UZCI?X818]J_O7/^9D1PT1E\[12QS?^S=R:\?9ME]?[V5A M,(4.1%!M(=87N8MF'H^AH#GV''G%S%IDXWT0BC1ZQ66C1[,S5_M7LZN!+TJI M55<;,W/KU:P=2ZUO]V;'VGF;L]P6"X!JSYZ=Q>FKDZ2$PQG29?N58+PI)HW< M)3=T%?JT'#^].<4JDJOU]-6&U:PBV=KD2G9@7-,E7EO6_%BW^G*C^IE:;C)0 M2-9&4H9'J^KIYEE[@4 Z)60&\K<JY] MM7S<#)"EG%#KM9/(Y/+$N28AQS5"HD MH&#*^4?H!V4EWI=K3DR ^->]R_E7O<:[M!S40#LXOIP],,30D\H>O.V2%Q'C03$;WGJ M,Z\,1L+F$*9\GC)IS%>&_AX,!C0,<8DYTN GM!+656OP/D>>-?LN[R4JKNV- MM*S8XL?ZRO-3?$-:2B?M5@, _CD625RR.>\-7^0MB4_!PLGUQ]9/,8'=8&9" M;G.:U9=0=(C78&:P#\%@K+H;(&&9[8AM'2IT)TP.1[=KTJ.O4+R-O"/#29;1 M?NZZ'@.S9&VX0HGC^3-[ELZ);K1'F;YUCV$J_N49_REV:%&7^"LZO*!(PK/: MKC*T%X^XFQ_2:/M*HE7W$:+?%>Y8/W[@O0GIAW(MTG>.8A0+ATV MZ48?T;%^D^J;$N*[W5Q[?<[QVOCM+-B9@O;%8ZU2/G[QG>A$7(:;'34 ::ZN M>+P]$(J-$&+8[$J/B?H6ZR?:RT=:6;'"%JBY?=@H!8WB]RF>:2ROH5N,F_J% M,9EAL7\WIGE6-O8*R_C!GEF.J P?WZ-W^I.4!9A-AO*8*VE%/';H[,HTN':] M. R^)=2W\-^A[Q*MZ3;8RN5/_22;.0U;A-R8J(/DL$GIE%O2/,+Q'](7W]MN M=EBIPYN5IS88SH?PIA .Z;F(-W>D16.0NPE*;X7^>3%8PRXO>,74A95KYC[)IKIL&.@#6"73JT)6R%]+)W".IF@BY(G M>O5]T0RLHP8@>7/'\ M#H+&.7*R%+671Y7-:$)E4$57U&S-B(F"G% MC I3!)O_BI BLJ;7I!NK_CX]QB2LJOC- M&L6QWBHWSI::493/A7"HM8UC.3;TW_#MK6Y+&5FBGC-Q]&6<76,9<=1&V-J> M(@BT/N8S8O(S8E+!710'(AAH_Q%N:-:RA_@.2/3@E!%#O23+Y/ 0A?O($;_8 MXC%0U*H)8Q=[ORSN/U.F],A%-L7H:44XYT,MPE5^'Y@@;X-M1.J7WP:DC$48 ME/R8I Q:FF D!6XS>K+E9'O*T;L3N1IS1G6,O=LFSJTOA=%W'Z%I/ZO7G7 =YUW),&QK=8P%Y=N:RZ!&$<&VI#5CXR\O'V!#V, M8YEH1WZR>"OB)/*VF)8IMKX%7A(_/GW3J(FJ.0,_/;^$T6]$(V6MT$3O2VW$ MP-\OO5G\"RQ:!R,!16_(O0FCFY14=LL\X3\[?BK,@>VXTM#P^&&,L77AN0_X M#,4;K0T9'*-!C+8T73_S'UTY)V$NDFSHF$E25>@WNTT:E4Y.M,LVTX?6%'+? M$BKO0=B MD)8PI38K#'P(CUBC\2)F<@Z_8EF!R O?[%\QW^3!:(@;&9A]#B?V/4)*2T+NO8RUTEI9SOPF#_ MC*(#H24)F37'V1.+=CM$I#.L6&W# WIV/AZQ3$HJ:P7$3,2KX'TPTU%<./AD M4E/7Y0:_3:2X(?[8;4!>]ET8B5\IX;B!]_* (N+3=_:T9AI^DC&OI(B(\=\I M(AZ]6/@F&,ZT1CSR=A]8 =BE_IVWD_G7C*;:M$X&+M8^:T4R2V^TW%JIFS@T M==7K>#90+AUF#;U9+Y/;P]'Q(FK<#6.9!$FXC:W%VJ.60%KF1ZI\',P9/*7_++Q)%(Q4]GFY#G5*@":.=8 M0_W7,$"GKT[T&TINTL"-SY-+?$5/6+ 1J8"FL^S90%EY3N2*S7Z\[87,.&HV MV1[;0@&*'-+,Z=P]X/6 SD3ZSH(-R+M(048A9)H0NL&_) M>#0+:BRJ.#2"#!>=MV4>K5B-XJ^&!2X:19(PP^QNU4+]UH$*84F&,HX6C0:3 M6,7R==&$!BZ9^TK""HLR'HVPOJ5BPS@T\+/41 UAPACT,I9$47VKP;ON:XVX.+J@I@]ZFTC@Y>.+6$0<86.1@G=S:I?_'%QS$I_0VL&@$47 FDG M:9M$.Z\+75+V7KNW8U3[ 'F;E/33)K!\4(S]R# 6H#VA55"4-&+F1:6?MCS< M/2NN,BROG]&=[>^)&J,^S?RN-\M'6#PN)KJQFB0*CN:_K%9"JQO=,X0L'AUR MO:F>UC(&2F;$UPV\$1Q#?UTQT73-11H#=7,D+@&&.6K^M@[4*$BKGA;VB1AU M"EJ&H+^O'4&MDN7N9J73Y J-22VF5%9CA;"7>"CEM=4Q'S/ W MJ#EP/C37(_DRS53.$K5FV;Y<'FV%LS<)^FP3;#%^KE_.%*;Z9WW4E3APE-H9LM8LMVL3Y3,D#2JJS^<"MDC8SS U@9!NH553T:5)'"6TG*Y,8OA( M-^U_A%Z0_(S_@K&@:_?2=A5[!9[R\"\:=H.U*]I)%V_T$='XULLP3F)E@Y@6 M*WQV>IH"<."=GIX=[S5U[M'[-6:B>W$/%<5 %=%10'6"O4*3P['*)@)B-$34;MWH: M1//GW&%-5I2IZ9\7ERH6C9NRVJ]P5YH90Q9BW MCA@E2;MK"1N\1\EF=^615(G C3?1%5'>)" /N/#0Q^<[6U)QA_>GFH"4K:I'V^-F.\\YX5F@-^$ MT;?@Z'CNI>]X!R+E\S_DF=#2?A>&L M%(:3Z"1+Q5 /[7_0O+$5(-945Q0$L\ITM467].EP>6N:X](K(W2\M%U(C^+(C5_T^LF3ZF2OPM/&ZE._Z,;%!C)+XO!(E# MVKW6D=3<@U;%!K=UI.MV1YO$,KB.C-4>U*8T8:XCG;472^QH/9TNY]5JF$U1 MGG8YH35%.8I-)-(72D4J+D[-P=DP93#*D)^P%VF@JR(NA;H^WK*7G$2IA@&J M%XT5>L3K8X?NEH42?$?*56F;;J;&&%@4T&"G)F1P-U9,B?7^2OV1W*B??A\2 M2ZLRLD\SR6:G1A;(6KM-L8IO*.?8 \6XFGL='OW$H6-(&E7D!5$C]3%V"9Z5 M$[ZB-F,LLGHARRK VN<[_4E.+$:3H0%'N4U'V&ISK8&&R6>+D$MM!UDQ*I*4 M+.NC;CX/%D@1N\",&[6!J3IQO(>N59TPY2/89B4@VMX(TGN[8G6+]18KA>4B MM[ AP2[:$=Q.%&Z3S;1P?!E)M>*;-\3-7OIE-1*TFV[BQNU>/)X^6Z&U1-AG M$RL 4HCZ=B\^(,;XL6VK4XZ!N3<4O83 7E\;4O)=(V)KN64'AR+0NEU@#,2! MID]3_!D8'\:(HEDN[FI6CG5$SW16XKJ49I\@1,:N.:[@.$3&/]G0@7>$5_8079ER'1X2_N!$K+M4 M$%7-EA1)UAV2^E'7 M*_S/C J%4V ($$8O09'.)V/+J[ M\.5YL%8=.9*5XP9/&*KR,PPQEO+MW(5 M:1FMD:=&UK *9(AUKEDCJ]O[/Z@"";?Y:F=LBH6*45(LA!0(3.T6DQ%7M3\U M;KL1D7/5 &2AAH;4QY,EB) 2Q>3>-=7IKDL-;SP)8I_Q/2X/2 PGC6%K):I? M_SSW%Z33>SRHOG9D#LH$:SBS?)/[<8-/?4YD+6CRH4_];:A;C'G6* H=N\?7 M05.R!B8E$IPN)HD/CH H=3&0#HW.'CU$X9L7D]SYVV#KIRZQTY14:+&?P7"N M18M\V?9$:(0X5#%FDS0*,O\HOG[E?Y4:[#LL-?AAT:^<[S':XX3O2'PRHH$V MTQ<8?6#\T >C8'?2)!/UG)D]""VOVJ?=76S0ZW*9/R4X 2$*V#BP&40:=^A]NL,+!E_V>, M.RP;HF,8>XG0V5(;,>KW?_&2UU)D<[VXD,D,B[Z&\B&J(_G%8VUO_=GY4'A% M2D.&;BG)^1YIB$&Z94B]2^*!(^V&U0(7X40Z;.A:F)BGDMH&/B'O2!PCUAAC MC8B:/$M"2H*!MBE?Q7F[\VP@HDN']RGWV-2?AU5(Q\,AK/F>K<).U1&!FI=T M%6["85#'7ZU5Y.?TN:T2R6,5M1Z&P%M%1AJCJ@.DFC9]$-84Y5;1[Z0G-Q,) M8ZMH>#+H RJ1:D?I?3(OH]1RPGUG;8-Z>@VCY!E%AZR3Z@5R2 6PN] )+M,X MP4],=/5&W)A"#=A\]JPO=VM435)CTNK=OD-.C.*G]' @M?EV]*\%ZH9UL"X0QB9C.JN M4+R-O",G)&6_%]TL>Q:["J40'4AFL6L.M'@&Y,YK'K/:(&ATK^R.HIYC#12F M(M,0=V$/%?DX>ZU&LL=21]^"@18SAV+\I&]?L5QPA=Z0'QY+K?64F#>9:??: M*HX .:?$"T*A-'WU8E^0X3?F:!=.\T:0#^A@-@:\,[.W0.)6(5#2"QS5*I7&Y'@TFG*0,PWN']K M:21A)!R6\240P59Q_;KR=RV+6WJ;B X\7B0SK\)GW?HV&@GJJT!=!S)K4M<$ MP;%SHBZ],K**<(C6>#/4>5:2/5TSD+-F#(^(("][1!^<$\%LO'GQO3W]_#RC ML*NBP9WGO'B^1VHC9P!>I;ITJ%9+6#9"B_=Z*NWT'A_)\SORW]#7,$A>U=;I M#LN!1\#_QL_S\WO8$^YLE7F B[\I\Q"U7V<6(-^$J0",7[,A ";+ M@ ?X?(=?U8&@KJX%'O2>T (%\%O@8NF$)* CEU7C/S^0OW6!5KH6$(]JOE%- M/H1Z$C1@[L-@VP6>TCQH(+4#!(AJU$7@;5K'NLB1JS Z3H7>7$I=A:EH4JPR M87@5=I(I\SA&X1N-T5"GAZAFV.P6EQY26J;E"N%G9^OQ3."CCZCX$;A8,(\2[]_TWZ5' M(H%YL.6M(2C?@O)LZZ/@W39Y05/E%&N /*/M:Q#ZX?YD=@+R\?9 "$,_OL(R M- EEP_=>S1YDH^V)1.$N><>*0RG$4YT-)!T/0\4QEEK%V0TZN7#I,?OF F2M ME8M20EN%0ZV%9&>$N[+DM%JR:XJ/C2AKF7BV=)RU56:-B*Y,JTM'8#=>-YPL MO9+*XAWO=D,@7$7\P"B7^FX]&6$#RR\35[>'B#CU+54H<*N(2^F*-IG2N(JH MDXY(4ZBJTT650'0^+:G,W^)\3F4A4;+[RA#@5U1E1JF".IW2;[G;6N($>X]T M9J79^N0^!K39TKOG^WEJ8GT8G.L91TF)CO'?"AK&?_GU$6];7$JG_NNP5TRS MK:]>X!W2@W1CU=\GW1K%B<"15_W-&D,B_< 2=.>]D?+65:+\ZOPSC"Y])X[O MG8/:;==V%8O\ETH+R"U$U4=O_ZIQX^EF 0AAN,6L8"<_!;- !J-%()+JQ:D@ M,X73O,T*]NJ8\<<"OQN-9\*TU66[-2">:$-#-S_*._M!*HK=J<)4M-.F?52= M#_6C6OD=(JY+UMFR%;8]]F4+001:[O773 ((S+<8[5+_SMO)WBZCJ7:5*(G8 M3%0E@>BZ:.>H4![.$%'!T=*]31W%[JI^K1%E%TU*_23@,AY;B95+I\M.PJ,;L/):.T#8BKB%5KBF,IH/.9XA%,9M=*CGJA)"JJ+\RYWK;EZ,FQBS=BSX" M"Y,J9BN)@AE5:KEK!'@,ZG5?.&FN)\AC>.25U?65U!Q5._R6XXL_CR+RXM&8 M6@S@/8:I^)=G_*<8*P2DG*K2D=)VE8%;[]$C>DBC[:L3H_-]A) TPT$_WEZ. M"5Y[LRNA4N'Q$(\%:.G[]#9^>AL_O8W3@[DB;Z.&WLIGTI!_:A!W6LI>PF]) MQ6K&'LF>:O6D@5_F__[ K__V-Q3)'^/Z$(B<(2\V7TGZ0%@ =K^TYQ+*U6#H M$!W%PKS#KUHB6ZHUSDB2JZ09M47STC'WZ3^;@R7JTW_VZ3_KB= ^0EN%@VID MH%5<]D]O&IA72"SU+MV5U/^UD8A,2T?<4&RPL^[RZ1(V(L]NYS2)FPZPFR3/ MB\K%)ZS-O&$TS-)5LB*36K9-#13V-W@31LC;!ZQ4\O9$56:?$M!/F.G=R4/R M6RQ@'4@-"+_^ (3-]E:2"H#'D#"/],U[2IPH@?0X#88UD[NPBN=^,(SBFS7* M&\XH\3IHQBY9?THW>:RT1;=XR_);8"O M5ZJKM2T::6W;CX@&+C[@]^%4MKU?G,J_**BHQ0(@@%12E6#@P+[!!W][@9FZ M[YSB"R?X3>XA% ^T2M[& K]DL+7-7^(WRDMNG"WMZ:"D .%0BX3[%OIO7K"O M;DL9<:.>8['>>()EILV.[4I3:%PP% AC;QBDE,S]KG>\A(2-2 Z99M/P_(>+ M,(K"=S+$.>*?&ZTRNZ\#Y!XK'B7!0'N$CVD@H^5L1S>.%_WL^"FQ_M*V49LT MB;'0[F(TRRY%VV6FH;CS-RPD$Q$FM[CVH3N3U2PR8WRMO2V6#RZ=^%7=&%@\ M=N CN?/^E7H8>Z='HHXP"N 9V'?>P:OOS6P.J'MR&1[PG@@GO4'H 45;HGKM MI?VU6ZQ@,^#*";:8H+&6CK RF5Q_'%$0*VH"B(?#L#HH]!H_:V#=F-')-9@4.;2ENN M(DBIG*X"5QJC9;6C@T@!7M?SU]">3:%=!8W)M=XR>8EO[;K(2RI=2<34 MI0=:&5R^[E:*57A5#>E+=$677JZ@)V) MIM*EU)L.I^L[ 1M=GSNC),?77A5=6.=]NHQ2Y'&R2]KA)7E'$ MF=.=Y[P0@O)07$1M&T^Q$:@DJTEBNF=) $''18:NK,(V9 SH;2EAHQY7'67"Z4?/B62N2C]N!I)MEL M>-X*#H @/$2AFVZ37VC:=TZL-(_$VWF8;)0 F&*";?Y@VO,8LSGVWT"VO%^L^U/*'?WD["**B5BZ6;1IO2! M4"<6Q19M"!V:Z"J"XZ+->_TQ9RJ_+MJR-1P:]1@CKR_?R)/'HQGK&IQ9/[X MR4/UPI$"?U^&U6B$C_H\7 M@LIR7X3P8RG)T$0:8)#.Z904QMR8F)-7$I=QN M$QQ-$N,VCRM>> ]K,CJ@INQM' 7.B43#$( S.#29QZH9G_Z.3VZL*#]! AN= MR!6C6W(VFDG *$[[L&BG 3T=_E=,1[=QC.FMTVDU%@$*;"?@Q.6R(("#.3:M M!-X)K'PR5. BA#Z\.*&13]N(&">N$/MO-W@5ZP%%03=R_4\@,6X&$D@? ^F@ M,NLB+7LZXEI1S;Q!:%&@. WJN%PA$3:ECT5[A#N2HU8^67:?RJF(L1"G!D4G MO.ZSDR%4)<)]>MX'P# 6]D9QP,L+CLX:F4J^.YWCW8)!]!'_SZ_E,NRY!Q*, M:T.L3,514E*D\-\*)4K2RYYK2_5?A]7Q--OB:??2C55_GW1KI8;U8GS9+?F6 M4^9E&)"'@U2FOM-V853-L0\*9UH7*$"[1FDQW6C[VR]A556;5S[>/@C&Y5=5 M,ZR!<;W;(=((HV#;CUB4?$1;K)#B5X^]P5;$.&-[@/OW\C%F^$7)LYW]X#PHT9% EK7G29/T6K#(LECM7!SJ_%K5R&C=32Q-'@^A2341.%J M,&5ZW09YTE=A*S6ZF(;GL/2B5:W)L)<(-5T*DGV#25&NA*"B0"^DV-#> O6% MXSO!%CV](I3;T\^Q5S0_C MN/107CD'9X_BIS#=OR:T=J,$)/V\T2A&WO.H,08B#AZYV_E][LY"!I"VS>Z R6H*-MJB<<"8;&DCEVN MJ&BS/$RFVJTUT_3I*\]&/6?@N\I*OQ2/K>BJ-L8,O8>78[&X&#?R<=,^6JPL MJOS1JOQNE^J*Z,Y6A*>:-O"Y/SN1M]O%F^ KBK:OI)9XG%5.%1V_:OC .[M" M\3;RJ,EGL^/?S2*WF5(MVJ#!K#'W^8C>,$;<;MM53H9A#-19<\IV0)7A9-'5 MK0R-+I6(/+F!8ZEN#HW]I"A5)31M+!4KK4TCE9K8>N/#HB^>UA0F(*JU..^- M+"@Z]KV"?G>?02^?02\&3>LD?$5@=EGT;6EAOC'HKKF6QUWKSE*(AFNY=VW, M48HTR_H[MXK;J'=9-RIVR>UCJ\!8*W%;8K1;=.24N6@MMB0N&CF=96RIA6"I M064ZZ;IJVUTJ%GKP::5%>=673,ZJE3;N1=<\[\R8E/+\TCMIMJ#DYT MVNPN7PD]Q;=!#7>/>%?1FYW>CY^1/X91H^H*>/.H&:HISPBU+.-0Y1AG5(9Q M .+[]<\@GY;.QMA55@D<%'6-_'F/Y'NL 84#/612N:3#+:NJ!YWI837ER2,<) MNAU-DJ=XO#T0BHW<.P?\1]/4&H.)]H#*>X!H;T$LNP:J-+?AUK=74NMAHPR* M+WZWUY,Y?P3H=<^QRPWEQ!L<4]R^E'"KTYY[+FJ/I+NR+M\;$!O&-CFC;6R2M6T0J9?.H*&T0TJU#8<*2\=^<,^0>-J.*N(SQN5 M#=<4J*4'B KUQ59TVDE+RSPA?_SD&NVX1BO5;PQ_$\ BR..*90.F'Z>WMJ%DG(S/=YB@F)(LX*-+/[1U44,R?3D-^RW,.%E$"GU\Z@+K%JQJ=3"H)3 M:AC";+QY->P,_15[KBBV1^2*0>",4>:C,IL,[7XKO5#J.=9 87G&Q :G+AS7 M'&?3VX&P4/2*994K](;\\$@0RHE"Y_/0SK3G[T(^7FZ/]_;5B7Y#)(C0!";M M-&L _80"T@F$-*YT#U[@$0Y.VH>80&4V%XC8/::@U.P4(A$KEFZ('=,*/NBY M+?T@1A*$*F980^%A%8Y: V7"@$FLQ4MK))J5\240@%9!5I.]6H/SBU6XN5K3 ML9%4_(DZH2"@E;Q7D;O3&F^& OYTMG>K)F%)31-5KS4 !F%--?QGLK/-[C9P MO3?/31W_%R]YI9 2T%Z]XW-X'>#MGX2VCRXK3%KL_\J+T!8O):WV7QL K7^) MSMBJG08@;>6*WWN)SXJ02T$\UQ];/W4Q@V[XL4A1A0+^; M-(D34E,UV%\Z1R]Q?!ID]=_(K^?T:8=_IN5^IN6VI+ZG,$U>[YS?T"9 RLLA M'CAX49&MA]Z(BA??1.&A]!QXC5Q?@PE#/].GP%$\T,6O@V.E]"JRND$29 C& M+3MEMP]:?T:!&T97Z!C&^#-?1!BM#[''8+?;,,4, S,)0NR\V033!W@YQ0;*T5.'N"6XO\J\)8._U'9\M>>HV*-G*UP+J^Z(C' M#D^SJ?U_T7A;Q!MD)&M\-FWG>^OXVZ:7W&>W ($1N^E5T%%U77:Y/)M." MR4C,:4OO)=N:>S2B4:;K'/M)S\/8)^[&;?L[5_)N%<>WZ/D+HSC!Q31*[^=K*@TI!M5O,3D"4P37JH$OZW>EE3<\/R4=+8MS?B\ M;C8 P,?&REB0HY#LNCK&VE9_0=[^E<028/IW]N@^)5H:KV(>E]P4E,8DH+1; M QJH_-8T=ML.6.DJ]DK%UJZ%Z@3%8\%LG2/74S-Q,,M617 M8SB>EXE!.1=<20>/-CB4L-8QK.T+PU3.R<>P+T!/:IA@' M'HJ9U0RYQ'U9$?(YYO(G8M82?F2CE)_L;"ZM4IREA*!L-:?OJBH32\5! T-7[ MEPX'4.=_H/;L4E-SW_7AUMPT;J#>ML*F?N&!X^:>(\=%6:SF(]HBCZ:,73B^ M$VP1$9*^.O\,H\LT3L*#N)!DVR566_55\T@1>6NSJ^!*^MK*QPY,'Y5/B!O2 MRL=-BK[J#B2EL 6#K)'CST[DD8ORZ"3J5U PT-JF'R+O0#>B--'61ZVV+'IW MP4+=8E@X%@0E*WAK8]@B.TO) M2Q O&SXZ>(M%/$6F& 7)*O2GL""F/55>/A M2D8+K48^ -\,W[P8 W 31IOD%467$7(]&@[3J!1N-L=Z$62,W1LOP#*>%^P+ ML8_T#7VG@E]8VJ],VNJRU!Q[/\RC.ODBZ[ MW(RN-@A5')IRX\O2G3XZHXW8 M[]O;/K)XM YF)\DSW%K;(]9QRX>VV>D+*2V.:(U,+#D=BNT>2\:-W'Z2/;@* M["T5,7I;3?DF-8PC2T7+9]WA >4U.3U)3$*K>/)D-J4R?D2W1E6;\M:!U3$%4JE.N_@XK,]"P'-@ H8VW975#AZ!$31E@*57^1V'4+M9 M[%=6!7= ^I6ITTLO03N"K"7L'3))ICQD/,ZY/.UZ6,!*2\F.JQL,P&(F*79J MF)S@HIT7>+74A%HB /_73@D+I L:Q^!4Z*A0&;I3&R[37>AWJL2'.@O1"9;"_*(.GJ(&N;96I+^>2+HEOW M*-GLGIV/!X1OB8O_/4+X4ETA]E]-W/L "X-$"I:1D;[<_6?*NA)DT'9 5(^/V4,>;6"&%0S>*UF7("$?;S/6!N'G[I64$45OR ^I M92_O_2R+M5',^2STLI3*C9H@TX&7C[49I4BVI(GM M+H^Q@=U-Q/$E">P6#K/(3=Y0D&KY8&.8M0U?AG%"/!MT/YI=B\=:WOI/8>B6 M;]536*@JPOT+)T"KS=LH1ZDYFM;+@ =X 767^4UAQ0<"BG?BP\WLA'F?D'/B M0L#*FEQN[++2_)["7[%^[*2^S8P'Y/L$C8'[U8E^0R5)5:;:R2> D:(&*R(] MU1E0FE"G1%7&0.-E2RVL_A,*\ Y)8Z)S]^ %'GE*2!41]171S;('3D3*TT;A MKM$_1#0"CHYMJEL#V+*V&81HI+5MWP8)PG>-UQGF:+Q',NJ0#K?'^86=,A^1 MXWO_1NY/^(DE"-X$5UY\#&-B]Q8_"6V7L6N\NP^#L$I&:H:DF621_')3();S MQ(? S*E7Q,6$ C?>1%>$GWHO*0T*E!)J[X6!((4(OUZ0XC/CC /O[0+MPHC; M4;'<2XI^X1_?I=$*2K^$1,G M^DBN?>J7PGH9VI=ST^L>XMP'Z@7)GUSOD#N('3]_1&I^8:DWK^+@K;G/%"[: MSICXCP8F=HY?/ [&H+I41_W^4-%+JD /YV K(VDL#]7GIFC M8H 6+C/%@)'MJ1;&6W9Z0 ;[%:\<;=,7]#W^5W+QPT##:X6!26(_"F3 #2C> M['EI>F-F#K;26U.&7.4;F3D.NGI,>G13FSG&9$Y)P55IYZL C9>,9W[O5AZ# MQKLA=##7F*?H;9D)\-RE,BSTN:=F%"PT=1<80J3*.S1S/ S2VFZF.&@M0]8\ M5#,%NYTH)9$\9@[[B+*$W DX!LY^ ,HRM2[#F2/#[/)4/(UC0/QGH,16('9_F5^KM' 1^PCOZRB8 M B>>*F,41D$!. E5;O :!7YP/"V%\1KZ^)1B)I%< MX;UMO>0S'W[Y^?#LP DS# .\&V6#"O%8B[F;O%Z%OH.Z<*A] JDA5-3#R6S. M?,D'0+Y3^A)[KH=UAB>'UG A)*+I,2D>;P^$8B.L9'4I!D[=-@?8"J!\V2BY;_&XS\O@0!OH'H3G.;H@ZT4V0T/] QZA:SV5\L/:0^T2ZJLU1/M%C;@-="YW8436\RX6!H-X[R.OK;AEHVXNL/%&V]6)H[ MWWX=:" S,AH 9M5" [_5[%-L"S=A=(?VCO^$DH3E,IT?A!TV]9,FW67[+0(E MG?,M%LQC3Y5^:CX?&HCT(G>'L#E]8!J[/1RQ:L?UO:>CWTCHE(T:>!\/4;A% MR*7NRBMN;=KL\'\Q*DC@H+#5IGX22'*X1^_TERZT4,R%!AJ[C!UAJT^VJ!1D M68[Q1AQ T],J,O58.Q&9(:@-C,\&$*'UO6%2,F\LW,7'H_)D5SF#@ M9)L)2I14,BQ.YD$N ]1.,+QED+$P6+28R&4[=\"-7>R5N.+"#3SSU$=C04+@ M5H8,^I W7\XY(6-@N%N_N-Q5+=$K@@%F#GH+1M\^HF#F29W&O% 3=3!S-/0B M$6VXPLP37\UIQ#RB8>8H:4$OFO"'F:<&&].&+&IBYO#W?ULD$0BKR)GN$IJQ MZ*QITRB/16=-&P61K"(=ND7\R3J2F\VC59:=[2R-@5EVOK-IR,TZ,3_\^N5%___[7UKD^.XD>!?V?!WAW?69^_MQ/DB5*^9 MNJAJ::NJ/7&?+E@D),%-D1J05+7FUQ\ ODF\2)%$0ET1CG&7E*"0R40BW\GH MFQ%TAQ*?8+[9]?8F2R@MDJ0^)(_1-B8'?ACNF/\G3,;VE)"D7PM_O_=&FKG7 MFA43IX<+?TW4($(';2__DA OVN5-0^AU\(6^UOJ31N!8708U]"D3OP;6NCW= M%+?::D<0_UUYK:L2WFK+ GJEL'R,$R,;_2E-PP(1-*3MJPOZI?#NHS!3*P+- MJ.+;.&/-\(X>2<\L\T,R5UX(MNA&:Q6T.GS=34EG+)NOO3Z4['>X8"R^WC;$ MO4)"B6%_K)O._AO[;(0#LQ&. VU7KKJBKG-WJX>R"V&G+JO.HOL )W'T-<4A MM19_C4.6F990BU*NR>H766SD5OOQ2P?D([-=O7"3O8?8+YWZ$J*;KX<@F%@; M1AP478Q?D(_P"07KJ"%P]#+*X!F 6ENQB2DD0=(*[2$KG:O4&N"=J );*F>! MXRGG(W6KBC1J QXR<;1)V89^HFYVMM 1 )D0YF5,"A^'A@I75KMT*2'<*%C2 MCRM4^2W*@7T#[&M'B"$;7S@I-:Z!18Q\#ZV0WM#;R!':J.3)7,2Y)@;ZL6IH M'2T47 #_@:4/"+7=2%38(9K99@3$7(EYAPB1*+80B;#3*J'SOOJ;IK9:W8XT#N" MG@*\B_ 6^QY]S;[/A -3LV(J'S&:)>_L?O<+;+&B.?!O&[L27FVZ10-/==G.N M83;>F2LS;.\U E&P";U(^L9F_:E/PHW[J8L/B2RI.3SNO5=Z'L6C7\0PR^8\ M,JH)-]?]=M%M/5/5]9 =I!MK?V]OR-[A&,9GU&P0H4Q"DL,O_](EMWS]'4P^ MM'^?W1)$C9@'S^<>0J6L$H):G(ISBL,3*\%N;4LS'$>U9N'T[*0T9V2\VX&P MM3U%EG@7!OX6[1^XS_1GF.G/;9&@>"$"P!\G"?(B_3$];$B\(YY8$Q+#0'&3 M+)B.;?M.MU,KUKSNJ@IXN0ZE@%Y6M_>^JW7[UO<6M:56L\BO$4Z3E]>O&FU) MM6;J^5J1SUK!HL>HT00YSVV@!JY\;.W Q6"&.#9:5]ZA+?:E@MI@H MLJ<2^X0#%-R(S61QXQC'8K>K.?<(JE-3D#'F!/FM(-RJ0G^VKB@_!; M3+XQ"R5O]"'B]@[$Q+_?.$'-9B.LW2PB)]X;[R%+,X+*K '15*-+GC0U/F&< M4&K=X&!#A9EXHQV0R2D:)C,K9ZYYV%S2)DH'-VB6ACO]ZN,])XR8H:#)88$VHW*'W]#&B]VO&%)>O44;EWDU,2/R1 MGVRJD%';XL "SA+9,^0)$[\$WF>(Y*'8^)G>3NR&*IR83YA^1TE^?L('G-Y[ M_OZ_,X^D8FU_W(.F9JF3AT,64:Y^<;5-61.=//6%4O,!1U0\8M]BPM.EY&,L)< 6M8R\6RUS[45LJDCQ?[PAX!\H^$FJ6^C6V;/&:MURXY$U MX4EA>=-,*H*X@2$SU@Q63MY!X;TZ3 41N?KI^2F[3H4F@':--=(_QQ$Z/WOD M&TH?LBA(5M1V)^1,%1O58%O=*GN9/"%_+@K$.1CWW]D_I>-ZS1;;$ULH0L0+ M5U&P"@[T_DKX;7Q":JQTJ^9S->0-U;-T'Q,F8#3NA"[TY+[(4M=[BWF3=X+6 M'Y0RR1X?'UEY /U6[(8T6.=<9PE]8K&S,X _.P08%L1/D7Q;EMCH4D(=H92L M6GXY4EU3);0PK;8W(''RG$Q'"*>JL[=".4=83UU8:Y:;7K<$ZJ6_.HR[($.Q M%#J=;%5'D5PBE[LU[UV>/ N:@MJKOY=>6[5\:;*0(SC*+FT3))V7>2;I0>T) MBLH,6]!4T+.U./^V[F?42RYU!%\IBP]$V!%V_^RS,^-4=E%.+&34IYU+-$UY M.UQ*#&JV),G@=9T&U]Y:R$@\RE/?Y<+ !4EH:$&/1]^1.U+77TI21R-0#?J9 MV8YV3=+9P.VL;D>17-H&UB290Z;BA$K3HLV2@0T(-D_BA]Q2:P)FZ#@5(&,[ MF=)L4N( N4O6A#*@XY2'C/64\S:-BT'F(,A4$Z(G.OV7Q0$A$V@RCLDK:^9 M=:KYV%/=!%W?&V2YD =S/#QX>5ULUB%8!SJ)D5[LU C&$\JN)O%I* ,1@O*2*< MA3)@;*D+"A)G(0PXDT%0MC@+XF"4ZA#RS%4UQ".0OBL/1*TWK-64@! M1M\<5N,Y"RW **!#RD)G\4K#4CV%):>SX U.X915KLZ"/1C=I(D:]Z=R=;NZF#_ 7LN::H\\8XSJYWQZ M*94^+XBGB]S&29HH1T$->,+GE*(E$(XAW7@Z5B4P]OC9F?L/?. MBW,>8O(U.GHXN T]?$BH5EC\HZI>*>Q:2EP)_XY[EKN]G0:;':U8PQ!]'G2E MU&,#C=VX::0+QG<&R62#,TK1TNQ1ARMCAGG*.+3W%,# M3$5'"[; MK5:,CX\7G"(;3K7J[>F$*3+46;)J/%XRA@Y URO\KE(V$[A6G"] M9.8"_A)[*UROE!E/$(G#Q/4ZF@LX1.FS<;W(YB+1,](1Y&1LNV[)!#.>+:J' M[+T\DY''3P#BUM6^UD2D93=V>W/N Y=@RL#VE#\!@%#.SKC.Z[_E8<+>S#7-K!ABFE)>2)4YYTE*NY4KK&'"L I[-9AM!MW< M8F.7!0-M2DVW+I_IJ9^.HVU^ZJQ4!RS<(-U$+>Z'TGI,L!Z&IIT#$C7P]2C M%;D9FA0"BPX]L6[MB-#3RA)4+[!1E.2WGOKYF5K5@&H M::P:'O-=!KS_C&$QHV*IY1*1NH"8_0@[_')_N6J%-33:I&4YMY+="P"AT5[I MW5>ON1Y4JMDKUE!BO$&O&WKI),*PAAS.GI3:QX2W.]&= @&@M4VSFYGJ _M5 M%-RA$PKC8R-S0TEYDY7VRI4TKP Y5]1&.:U"GG#&/IO$[)KEUE#2-/G1(F5 MV5IGHQ"&^IBX[DNE\T!V@(VHXM&K=_TL6(GV!)DR!H;7"(X1:6&@J6#D,S90 MD0UXP@F'L=E$O2D)XOR,O4$:<+MS7T^_=-P)/.:.$6BLCE-A,",8*<".N\%' ML,;,'+$@\H,Y0J^8.^[]'TP10\W>22_NAL14;TK/%#GFL^>G_PM*:YU4!&#; MOUONB8T-39L;T[EX#18"\/)*=VGFZ=4LMYEP*-[7+X0WCQ[VQO)%\)"Y.=>S M&8=AU%@)#RVV-:5#U63E=:)EWUO,M95]' :/AR.)3_G<9:7#2;7"&AJMH:Y' M@GQ6\LY1)K MB+PA?Q_%8;P[F[T!.;P]%.(X3.XP8H6JS_3^*+ M?4 [%O=(HN8,A1GCN$M_+$%D1I'CN?PCR:$PLIR,;70&=;*.<)08Y>S"*G.] M"V8[NB$?-:J=T&.T%$"$XS$JN$"\5[,XA]%#%AU4\T(W($[TZWZ[Z+:*R>?2 MC;6_7YYBD@%%]7?6.%9QGIZ]?\7D-O221#J*:.Q3K*%;"'X4U)K""][M-;$$ MW2J(;^_F7%->$:L;\@2(:*HBJ]IE$!&:[]3-%,73B6;ONUHTM[Z'^$8:YGK3 M+!_^4F0/@HBT/("E6000F>;\^H$H-98Z&U89HFV+ RMFRBQDCZ>FZ[] K2W' MB'142]!(:@?P])31$LL6 4#CJ/<-C+QK(T3^R'/F7JEOV,DN6,H=6.(,WH M"26\O8QJ^NSUMD%*11Q!# O0&?@9UOH,:P$):S55SWZ2ADRRJ1=-+,A^_4Z% MI?\-$;GLZH) Y)H7Q,XGJ_ENYE7RQJ\_#><@Y=.<#1-<@";3#Q.T@.&&UV3OTGH+TO;*-/48)M4A,FA#)H"WZ1YH; M4KE)19#V&TZS76F:[HAAX6Q=/515 NWV]NVWS7E!/,:Y\4AZ;II0-^?F-PJN M&O $$@J7Y, <&)WV2;T;^@E&7KGY,:+OLF=9F) %TEHG\EO":(WYH/GXQ!K MMB\$M4CU4QR>J +3WI:F*;]JC<7^7&F*R'J;[TK3F$L .O$YE%")Y]L5J4(W M,2'Q!P/QCO3KWBS@\<\!_^;V+F2Z&#A8Y29;Y7&76*.@$3>2 M$,/=&C(FN2*),351W) @!B=%Y1]HDT!ICCM.!8U'L]W74&3,.XZ_@5YU@>L M-'&,9*K<>=":JB0\2Y!CE5.K&!+%##()ICD=XQTVD(NJIF8/T3&"C/_\DM/( M!>9X@=F XR-QDSG>C]&41_0^N3D(\3=0A!CET9N#+'\'21:Y!]"AE)X7^I__ MUZRV9 /9WKSO* &9WE/M[S:.V#@\%/GGWDL2SI>7K;'F0!9M2Y7P(X?_;*QI MMWN;VXTU*[XJQ-<-BJC,D07$9-#V!C%MM\AG(R"KG=$;FZIP?ARQFRJ?2$PO MJ8#-C623)C.ZAW,+6(+J%$^V1I:O$:$;W47X#Q30S12O*:EVMT%4L*=YO^WR M_EKY/LGJ^Z1#CDN>Z&R0R^B^Z0^Y%DIUT*X7R UM/MO.S3!T=PQ/=V\(R(0P M]I=H];#K:U0TF ,FN60=]RX-)MI%5["[)F3M&6"(U<3"0$W*#8F#S$]_XT6\ M*7VEWCOW<.C,2OTZF],^A5M3F9?J-=90N?%"+_+1ZQZA:CR\(F%4"@X* 67J MMV+!-2!A/PW_-7M/T.\9%5#WIV(0CZI<20(-:?OJFA\I_ R]I)+D(">I#&K6 M?0AI(X<#M!?[)^4I3I*&MG/G';P=2E[C;+=/>115PG+Z=;.16=VZK 7SZ3;] M=)M.7K%H7)367S/QF7CPO[\RU?TI].6'H@\$C:##:SZOC"_L7P,=#4(][5T( M:VWKZW2/2)&[4)HTU!!5HJ!>,_$IO8V3=+VM[R;1(>W!3+V']V/]<#%MY' _ MS/B\H5SW)8[\$8RG6C;Q>W_S"-YNDW7TC%A7MRC 29G*(7K]*O")=W:'$I_@ M8][2J?A=WH(%;[$O&FIENFK.?;Z@$Z5(,&Z[RL7.AL^,?6N=>=$J[Q7DH(-9 M!K/.I]4DALKSX@@E5+4@TY#"D0H0LZ)"M7>JE>$M]P2Y2P>-*ZG5CK3O67$$ M;]&1N 1Q1PZ T;CTX1>&@9O*4;)H?8@"KG A2\$X.&\4R=)=$DZ7T7ZFWUQ9 M^HV1@Z@ZUP(O'FC\+RF+-BGY%5#,$7J,*(D>19"KT06T@4Z%+NS$6=&30!]W M;]) X^QT/&EMD&HH\:TZ2@)S-5#LRH6,]GRJH-22ADP.T/._%SSM(R2?TN'N M>/+I<.&G=.Y#IL9\ D&I93E>V#V<04QB+)"),CV?2#UPCM>\7\@;ZK@69-I, MSR*CZD! 9.G7"?JO:>Q_>_03>]K=8C2&[.-"7JLW6N$?_&#[:7C5)-^GQ[ ROY'M2)W6T8BP,< MQM*X1B *-E1;UDZ)G>6G)F]/G6*"5KL=03NJK/'M).LM*RJ*(RZY1*D4!JL MM)OF&_E*A7SR\OI5TSQ?M<9J(B .L$?.KQZ7#VQSFMH),;P]%.J-,":FFJ]A MCJ;!0GLM'#9K)3O5W\,5#5 M@$K@7-H%=QG!T2Z?(Y9+/!E!ACS"/0[)-_Z8)!D;O98C,S5K"'_#V;2\Z=1J M\3SEB_52T&$;HQ"G4 -MM^><0^\#33B3WK]3,J:Q0GGM5+O A!!WA!1JLJ"I M:)Q[J=1O6P?80).$3)(1DV,G\C=T@W02DD,FGLFI-+8T6KUV:E7>\0C>3$K& M+'8$9%+#.*<=?09R -$>;PXRU2#'UMP[WF(C\(KB,_S3Y@=%,S;;(9K[PS&, MSPB](G+"/I*\P# L;RLF, O%;4(\1-%P,[1TI/>OJ-?:&U/+L4:;%JZNV M^W V0TV(7N%[JGCM+O*2RYS"&3TL T6H"'394(T)0T\LD::'T&?.6"0]:X![%&O6I-^>HK,9!] M77.0P$@II7*I1D$W<5.;_6_$F2O>H<1-IE #P^ M=VB+")&Z-G_#Z?XQ"O )!YD7WG_WPXR-I>SY.UE;]0V5ZX3[EKE3M&@M?W-^ MPRG[I?HQ%)9^2M$3_[R9^PCLQA=M/M?;(L.;\QT[2WM\?(OOH[0WN;G1GF[H M$Q9%[XZ^$Y\^2MIZCX/'Z(02/D>A M_RE"+*0L:8Y[T>,615RV$^D!TBRPW?25LM.7."*-JXC/0DGT/6R5*Z&B9=+3 M5K/V>E&SW[;WLPA&> % *H*95%LV;C$-:=.:J$0/<.K! >%Q[[W26R14# [H MPH @7-..NSDWOQG>,5WT@,]ZJ8FL!(F6)H:[;H-FICM1@^9-3.4VM2(+\R6Y MW7N8'+Q(:NAH%DS=?=U+]J6!+!(_K>^GGA&!2/2!]O?1SMNA8'UD^9$Q81>C M%YW5@R/,5DZ\WW66)BGK91+M;KTC3MFP07K>?T5AM^)'"S[QSE[C+-T_>=_0 M.D)*PHD!)Z^B]3$Z,1=)\D#B0T.XXUZ5F,&"J2_=<^0IKMOZV\FITKCCV*!% M+Y000P W\5[^B:(@)G?H&"?TKOI)M(TNB#U#PO?CC$H?*H48AQ0=YG+SI^BX M)#,O#%8"0VL0)N[F69BZV<6)$V =PJX&>"]0Q\JV-%W_K:.4N(A!#3W#H$FC M[9(\A;NX9!J=!]9=2HUPS0IZQ>G\@X[0QZ#W\"P$5RK;CG8[_"&/:)CGY(KB_)"I<,6L*[%^YW@;?P/,D[U\CSD(\'>8 M!!B41S('7?[31;HX6FOZA] M$!>SVM1)?L1>#MIEN[\YBQ^@JOB9\1>!D5%;"Z1=9@VAJH4,D9++Y_S#3M;V30D+:O[F8CA?]L._39=DA&.$E-^AOQ E0&HUZ0CS!/ M?[GQZ*_ZB*ENS]Z_8G*;)6E\$!?O#WT$%$^5:UUF\HER+5I*+QXY[,3\T_H) M\= ,.=RBY&OO0-*A1P#DWCNV[R[_IT$'S@&U$*A"[4 M#]MH:KR&HY[@(H0%PG59=2_4@EK7#HC;,/[TP0VPD1TJI M@ *667EL1HI:3;!4\!9E5WS"S+GZ$)-UND?DEJ \ZR<7O,GLS766_10U?B7@D)LG M4H0+7O<(I;K,[_?_S[O_^U.OQ)=LB+-?Y, M?_ @B351I2SMOH?F+@-C'(=U]DG?B$A&AL<915!5O6-;"QAT\,@SLG9[22M8Z",N':?8T_P<=PC"2E.N4!IV7W.GI- MIO0.0=1V:TA6!U"72YR\AS5%Z@E1_?B%H;'>?DT07^$2BN;O,XX$)]0!#,?P MKPBJ=D(YA+%:(2 9"A1WC .HRD_HAL3TC*9GEJ?".AA6KO OR"D,-2I"6Q"5 MP.=FOT9W<#4[G&^$HIJ1LT <-7#\,U0DS4[GF_<=R73UO\)_D_)S^1BE7K1C M3I<P.IIKS67;AS5MDTK?:@&]*(@KT_611^BJ[I_1_P$?43!0Q]9TY%%F\O@P:5!>-@UC+95-/_CB MC4X_Z'A7!8J! T@:BA[?SPX9[^Z<1Z3CPY&@/?/QGU N@%ETD)[5]99*8I<( MH!5);*9 E,;DW+Q4_@8?,3,1)(THN(.H7.J(!T8D+B%G=CZKK*2BHUCCO%(U M"?O8P1>J8-H-04>J A4SS:D)RKE8[*O^NROX2D]GH!J"U4MBIZ>=UZ MU!:,M:T:AN:$*)BMM8::J6M.'O,6+X. D'[O(+:I/@+JL+R=2O.N4T1\=L7 MEN6-4M!8;/AA>O @'35AW%"X:Q$D@*Y6K7"@<.-B6'L7D2JH)[Y^%"OL92>I M0W="1-1KK+Z1=EA.^AI:8#9EN"SF)!/C$GB;O5L4<26) %(L 7(.A)$C@[,@ M6F<-)5%D2(B# -#>ID61'O&N!9#6MFT6QQ'B8;34&F+:B(T0)]TJ>R)7%H\1 M"UP)M'6M7QQJ4>K^PB46[VJ3*(KD_C98:@TQS6&W?Z!5(1#Q#2=?8/,<#(MM MR([&H*=8O%V:X0S)+=( <-<%]61R%G-?;ARRE'[X@ M5K=8FDIE+>'Z/<2[O.M!,5_E/X"4"3TA2G(D,?#*[=]EPG)FY=JO44 IQ;0R M>N2^^Q2TG"+D3J;_)<21K!J;1KU0E& @PMW8@>ERF C*678XMM)G07/^#'/Y M !3(ZAK-ZMMDO6VIODSIA5:S*=#-N]I]4\148]CS!@CNR-5ZU_GH.18DR"BO M%4Q'7]\-VL8$59X5-JN.VL,40QS1RY87[S,M@5G)<4A_8?=(#QJAVJE2%+M) M+>'V%5@6NJ 01[ I\K\0BM:&Q%LL?(6W<4+/ 7,L\/@_(B=,9>IK' 9.82EX M1WU<7U""Z$-9%L<=.J$PYHH5+C-N13WU,9Y4#[M!IH-A7N7$>*+7P+LHM M/__\1KPH\7R.313POPK<@G]EN2G?2XUUH+YOX?NC_"Y_7'$0O[A5]&EXB;3$ ML#O8:6Z/%RI&HPR5S-)UK%>1*.9^H/\+'#L.1K?**^)\3L7 LT>^H0:X2Z@: M7BGT!1;(W: (29@9K):PL'@3NWA?D!?B/U#PBX38YPTZKH<*"\U M.AJ_4!XA7DB/QBHXX BS9DIL1G3W?#B [^(W8_/G)+$"KF'TFU[UT$:7_;W7M.MND*SEX225]G[^:1-" L2C*YYTDBR*0+ M;*:@JUQ*DGBY:HW=F/(,W@]Y4'KZ'[.9P2GQ9$@DO 3<(B./L.0E[#W\2?;* M=13&NQ [Q0++&HK -%=H%WUH8'E3*C-9B-?@Q]B[H'5FL?C2UJP"HB"/LU4- M].!1#[9[FRIL3/FM*%_D=(J E^P?PO@#7&H RV=GS>G9" Y*CIOSUX15'E3Z M_(IJ'B=I2QAG,P5X%62[E+U=(DGE3/N#!N0&$GHO.7G3'Q M> 67@BM@#YN0+=VAZ\2'C5^_HJY!+L2V)+2HYOR8T6*]Y66Q_)OUM@F]CB[:ETN-52\3=$W)MMY6#-R6]PY$CB_4 M )HGTF-#MW3] ]TEB2%CK+?;YO2E>@Y@721=?53X)9C#ES335QQH.#B.2'R4 M77-89U4WNWY/Z$\G/J*$E&T]GU4!D]H8O7YKM P'^/01XA2UGUP8TG&I2=YI!B3+/[YZG;UO+_6[ M\]3D^-O5W:'(]>L9 M&.SH$8?[@7@O-VF7G;FQR-)5*\5)D?-6T<#=T=!G'U/UU MA"SB@%MW7C%;=$!L30W\ZT!1NUA]PD Z](L73!_P681A-KAA^7"#8 +$@IN MQOP*I[H9\XL>8*\SW(!4&R&2 QY@+[U9DCHC1$@"#.<-]?,SS%Y,;QVTDZ7P M()N=+-$#K+\W<2Z)\I4)EUCL7JW(!A'BH5IAL\N^+N] _%*TZ^R5#,P1^Q<2 M88Y?LM?X6!GU%^*O7 *#I=6!>SUK*]?;*R"X)! O1/J2)XXE POK_+DL'N#X MF<;06R@8+OHL@8%4 F,0\-8>3O&ZSU*U!=^A,!PM>W$BX(EEAU&0N"\]3)99 MKQ831'K%HEP*#V?4BU$QJFZ538EN$&R5R6S]4D"(M:*FAA@UUP!"Q2SN:8BC MT<, (2\.:1HB*UP,"+E>='+@T2O7 4)I0)!QR$LT>B(@,O2BB(;(=M3R("\.MB.@F0HG>327#M M/J\E7-($=*$!]BM/&(:X6QINARR8-[FQJGJ/"W27>XO53DU=P_,*_T5ES')5,K5X+69EH6-(M+:+Q.2S=031.LIT$5GS_ MP)I4471XQT:7E 5C#-FT:_XPUM*1G,0Z J"L-FOJ MV=!V1D]@= ![\;*NI>" C33FK9>.MKS_8X:XFMVKT;^V9I!V+6W^_?5KK]]%8 >>U# M7O1,KU9R)?0I*@:<:33:U!T3F4.^:%$K77?4S2-T0.?=0&ZM#+')0>,KV!Y>7W M]N?4Z/8J +18GM3G ^&F!8 .":"'C*47OJ"#AZ.2\%7%RWN(=WQ3P+PA3VPX M!Y),JR]W?U??^LWS;;KV"Z7[VP<*3^@YCM*]4_Z3)>CS?Y%'WCYBEQPKBY&% MBB"G!D@N19B'.",N.6<6HPL^(9<\.$O09;6E%DB/. /=/4NI8,/(T=/0#)># M1[!_9UZ$<.]QX E078H7X5T^Q0UT\\ON)Y)4&2D\'T'KDKTW%/.5 M[V>'C$DN MID1PKP+1_$4WU4*?D*X$6E:D3[9J $?N*T.LG5U]J4 M!N@ITQ.670 M4)I_R6]AF6_$:/7D%;*BV[//*D(X(.E;_8M0S##J17,=PM:]I3B#33C;,DUT M ZEDF@#>4[6("5_ M9O]*?@YBEJ7\2(_Q&_W[3_^69.])BE/>2_@7$F?'?_R)D1G_7)QT_N\CGVWR MEC\J(X6C,L)AR#IQ_.-/*6&)61Y]$O'\M/C[+_+M?XV\+* _P'R9]-&'HNVX M%SY22I!/OT??_)YHW05ZNU2PI]*-'L?@T$I0.]JC)[P[QFF6)]?V"^L#JSO MSC..\"$[/.$#Z_";HZB' X.S_C6^(";AZ<,?H]]B\HV*D/H4BK\3'$6?/M+R M2L@FW@D'L"W\ MG[U_Q=3J25)JB9*D?9&+OP-YF==6VBN;)L%>+C7I6#$7O9K9PPM/#!\I\L9^ MHW>I7_0(L)=[SH9LP@$*'F+R1'DS?$5IFL-5N&N@X/&M>22V,OE[;_RR9X!] MY0V)PWH]H566[F/"&O+5 ED.,;%H-KY7AE^;MVP\V4__M:'6+#I@7Z*KZZ# MOL9*Q9$@)O\>+$HO*)^MD_".72<<9TEX+J1.:4*]4K.3+TLD>%_X$+#$,1A7 ME!/ - =_>J->(&@UW4Q0RJWSAI:2$F#P-Q[KRE" M8<=_UOL<- 'S^?AV]7)P_R7JH81-S$A\4<^'X$" ML=Y5U7T[^@E0I*Z>3O6$M'JB[T=$S=X]/G(O+THJL6L&"]-'L\F(O_<25+<$ MV>3[\G:U@J&$@8F7A$MYZO6S]YTY!H=RN&:M.[Q='=7*9.#EC$Q"XP"QJ[!2 MG.EG]/OMNK4,"4KW@YJ%?SDF:A@PLD1KOK 33U@J@HZ=CZ%(B"TZ*RS ME#TZJ#?/#\NO**P.RLG0^LRA,_;",@G7VZ])7C])J=]. MKRZ&**6YE_<+^LB[/586R]CE#I&H[]U=A6'\P?V[,G\*.QB[X J1V**ZC**URT7=0M"<3\ZK;IKNTIKJ?0\%) MJQ&N@MS IT9OW_:M#IX:R*'C]7@XTO7K+;\F7X]AG7XF^@8,8B8Y3?3H>SM4 M11*36G%M#+=K9#89PKO#R>)BOU9>2/=+*,@9W LQ^?!(T.=;P1=-K([91=F\ MDZAYPCD+I98N^ K*6]&S7*Z:O<5,'F+*4JMD]4O,+.>8/H#4\E,+!S:%P3BA M2IR!-WHY6(+\G_@]6?EIH8O2=W@?(E]16& .#Q;E57J@U\2.>(=.5+OW.4B- MM##^U]$S8HX>:@TGJ(A^5:YC%0A4IU=K8$_W:.4]?'K<.' 16):L!CN4P=D; MY#'_S5/L166&T-W):Z18#5GAS 4DF:?4OEL[7SJ#''/!IN=GE.[CH([/)Z+* M+/'E<\$#P#+^)O1\RK65SYI5LM;13/&7\-R-NS*Y_^ L7E;8])[J;J)@H-6P/&@6#@FSU'7D>]:WP"DBT;$8\R5,G#&L44 M;/92\K0.%@]A=. 1:4'%Q*#54.Y/DT1!CLEJY[$?Z6@'DB\=XM@O**67Q1:G MJS1W1C:#NI(O'4*O=KJ6\N3%2]'J/3ZA#<&'"E,]'% #IA6A;9>FK[?KC @* M,@6K7W!2FZB&T--S M]11)JY(J%DV1"YQ;15_=X^%]YGU!'_<1(KMS)P5/_"5([>$%\33O/.?[F>Z' M142JA@-%9BSO/'#O^?O_SJAF5R,Z)55-38.#&X&:)5 SIRKN@5#N^MDT6,^"K0AI$N> -;UH,RH2/JJ_2*%"3/F M)[S&6;I_\KZA=81ZOC')ER ED>IUN5X]0@UF'Z& "YPR>+#>;GE)$&^1TO#1 MZ@#=8M]#O.I;*!2FCZ4U336*K4!J#-'<1/Z-Q[Q0^^0NS=S1GK9*X\7TG'[7UG3/,=^>= M3STUOO.A56;+6QXGU'0\>/_[_P-02P,$% @ ]TFJ6"86W53P!P C2D M \ !F=&-I+65X,3!?,2YH=&WM6FUOW#82_MY?P4MP10KL^SEIJG4#N(F+ MNP*7'NP4N,/A/E#2:)>-1.I(RKOJK^\SY$J[:^^VKIVD2=T @5?+X M1/MTZ:ORQ6?B=$DRQT]QZI4OZ<7YOX?3R6AZ.HZ/$!AO)$Y3D[?"^;:DKQ]5 MTBZ43H1LO/F+JFICO=1^7LL\5WJ1B.?U>OXHJ,W55;])Z>&2U&+IDZG26#\= M8S5(U9U,8;0?.O43)=-)[>?1SM";.IG,PUHA*U6VR1M5D1.O:24N3"5U)Y@: M[TT%64]K/Y2E6NC$LD6VQOL[.YDIC4T>3\*_^6JI/ U=+3-*:DO#E95U-+>* M_J:FS.<[OLW@VR^Z U]6*O?+I%!^F$&2-/MPOEZJ5'D1,68- *&^+02_;O8X M"B45=P;A?F?^KBE;,1V(V60V>RAGOJ!$G%6D<_SWPAMQ7M6E:! MR*6G7$@G3"&^:S2)Z4G Z;^S_XDG?DGB\\?KV62:S0]MCVOY_(N!2,FOB+3X M]LU+<6E*:0?B'SH;[>MX::I:ZK;?)J3.Q:5T4L-5I6O36/&D$VY-TPL^E*"] M(FDC(,E#.?*9$[ER6>,<>-BQ"+$/W&#R;$@S"%^ J+*NK;EBX;9?)^VD5T;S M0Z6\)V(^\^HW1MJ<'UXI2YDWUG4K&[T"NP+QOXSU81"-6Q*2:8Y>PLE3&$L+ MPTM69-(MA9/@>"N>&*BRT <*L](+\E)I./>2A2Z#T("]SJD(WZ=4FM47K"_( MUV25R45A325VJY1HM%>E>$4952D,_&WS_0A9)6B=P=Z"HJLK598"9R-U1>)D M-CC![@MRWJJ,4_O2F^RM^$$K[[:Y=7'Y@]MF(;SW40U"PDTWZ,6I.ZT[<,5= M7\U=@!K81?W7T[Q?V5I16L@L,S:7.B.8\\O#>NG_C?*MJ$M RB%/)3/#1'QS M*N$0@/=D*T;595:E6$<42.F.-/QY)/[#T>*C"K>4.%U*F:E(7 $# P?7L-Z""P[W$<96R,%G1&E ?/@2\=&)KWBT48X MLE11J7*9%I&0%@Q"XW$ MM^'P_"Q! .F,#D*R,N!D2!X8$++P%"G<[=ZD5<#[2=IXH7$(Z;OL^*>TL#I] MVLFU7.J*WE: F!U +]D]5(R< M;J+.[HT>2FU]@\/'RA4@#E!JXT/LVPV<]EC- C&/+L1>C MVR:[P]"> 3W@"DSB8H"W3=\A#HNT%!MT;,+Q>,GOH8?A;(5Y8.^\].:LH;; M^F!;]WD-A1J:JQ"P4$UZ#W*:;'AU&XC:K/@[RR>DO.TU28M6U>@Q&8DWNQXV,(:.AI#(P'?% M#EA4*_Q<61Y>=-08<@.)ZP;=A 27'8O)3K6+#,]"+V/(7)/^R$!7,AC;1^?! M,'D7[PJM.>VX!*Z%?$'5^[1;H1TQIJF@[_@29(5Z<]ZZ' MEK8S4 /,88K)Z.TP#$&)+%>R=3! C1/58[9K]O8AT+\Z7""&<)+\M[)>)WPJXOP?'< MHZ<8AITI5?Z)H3IV8W&)UR+Q]T:_+_]7 +P&+GUR]'UA/NWT+>SIY?RUL=K+7P6X*?/GL [0XN(DM^NM' MLT?7Y^G0\P' $L\ROJNA M/+EM>;I72?K$D/]-U>K *\H!YC],!-YKG_O$(+U'0_RF/9BF=P#C^(CZ!X I MS*U[?PSP)R??&]BO944]*]^13O$'JZ+W>8.X-8\_YE'WG5W[_?8[VHX#?:D[ M=']Z].;V(5^LWNZF^G3,?TSYXK/3#$P7S(N:'1M[5OK<]0V$/\,?X4*4R;,W#EW M22#@2YE):3IM/U!(0A\?97M]5I$E5Y)SY_[UW97L>Y$'"0'R.&9"?):T+^W^ M=E>Z[!6NE*\>LKT">(:_V9X33L*K@[_ZPT&TM;<9/N*$S7;&7J*SAEG72/CA M4.X#T;=5F,A?U0L^3_O]>EQ;W//='ML:;)VY[^?H M' TO8GTYO=?[_"6T/X28[9>@,OQQS&EV4%92-_[3_M@ T%./9=Q!QKAE.F>_ MU0K8<"NQ7E4;+ M-%[KLN*JF2UC7&7LB%NN4%"A*ET;MM%-;G0]FW@5'QT\6SOIS7?2GX";X +Q M%39YO;_GZ-M^-J'HB7:&2/M&[/F^99FP:6TM D\''!CN'@X(+UJSO'OB PK4>K4,'K":*"';E3)<(7I58M_55P MG8W,N:#6/$VUR;A* =FYXG2Z\&\M7,,JB5A,VY!PVARD1[,SD"B0:9@#4^+F M@4V-2' <+0U"=?M&SQ$[Q@5C@Q6YSRRT7I,<.KVXY(6\3;-,(0,=T*KV&.<1+FNPU;8.(O, ^L5I;L&&;Q) MMP?]C#?L1,NZA+8W)LLC5O$QL K!&-C&'W_NOWU*!CT5^*HZP6U!&'&&DU(! M 4(Y[+&/0 R? ^BL8_^>U"B8Z>D\B8*G=UIMXE,?5A:^,@FYG-ZN%B2TDD)\ M-<"W&:;%=SN7KT%8B0[/I=6$-A47'CI:5"IGT+64O2W'/!HR-RF!.@:]+'FY M!4=+L2S@B3Z!B.VC%@@.+O!M8>A,:%WAC2$K)E1X@;K M_H _9]KF*M$2#=<',+8WN8WA!7T9E0&'R8 M)8&,/(?B EU.H)I<]EA28_S@\&RVTV.@QK%=MN#P6K5=?SBDI)A9Z@M#-%*; M/,'^C%DT6!N%;9R%T.^$6\PR- D]'5,=)0/J]&@U=[6!D#+GRD\*;3&?E51- M!O8%%IE'94C@RBD]:1BNL[R7F(=\-+$;OW AS7KU%:7TXIKH28%?Q M(&D6R'="L! M*]TN\8;\-4.-KE_WA2V%$84>M>T4=UB"UL9_6HRU=D6+%*M1LG"=G$N8]C-A M"(.PO4ZI U4CK&TKR9N81D>+-\[1]G]4%E2Y?1A>E85 @Z M_<0 _]#W)UPQEQ/>V(^OMMN+[]:1MX5:9CUX@6\2/253T_UXH@WF>MQ9NB6_ M<9$_N*[ ..5^_X:H^+7!;3?:OG.5V,ZS"^'MVB\ OT[M=22P)S @F]XZ1]\U MY58\^,7.3--NLB/ .OB76GV08!Y<4Y#?POA>L,)U(=V%LIS7>&YM M1R]WMVY(Y_FZ$)"S@W!J@E7;[WDN$ Y7OU9R+]%CK=P=5.[2L7LC%;RUC>>5 MO\*2?E!Z(B$;MZ=.^RF=/$-V/[_%=*>5NYQSW]*VX\O-\&%[A]N_^&EQ"?O_>7._SJSJ1:-8?1SO/5KBWZ?^:YG]02P,$% @ ]TFJ6'_LQFFQ!P T2D \ !F=&-I M+65X,3!?,RYH=&WM6E%SVS82?N^O0)-IQYX194EVDI9R,^.FOKF[F%J\JG7['S M GB&O]FY$ZZ$IY?_B>:SZ>GY2?B( B>=Q'FBLI99UY;PPX.*FY60,>.U4U^+ M2BOCN'1+S;-,R%7,OM/KY0.O-A-OAD5"1@6(5>'BN9#X_/P$GWHIW]8**<4Q7*.EB[B)=B M)6-#%LD:K>_MI*I4)GXX\_^632$<1%;S%&)M(&H,U\%<$_Q-5)DM1[XMT+>W MNH.^-")S19P+%Z4H"9)\N%P7(A&.A1B3!@R"OFT(WFWVYBB4D']P$.ZVYW_P MELWG$[:8+0YFSR\A9A<5R Q_''.*75:Z5*W_=+$R '0U81EWD#%NFN%6U8/@H:3L)^ F!"0^E"U?6)8)F];6 M(@I[%&'N/38(/!UH)N&F <8)?LCP!.E<&5@I>F18RFW!$B5K>P3V&-=RQQK" M-6HQC;# ,+J2K+1>EY#,@-60.H+^BSG]3_S :IF!&=L../Q^:8-ZIE4I4@%V MBAAGL$X++E<0'&Q$6:+:%,0;8"_!.B-2JJ\KI]+7[!(F>W5[/<(;E9*=_MUJ&YYLK."N>9HJDW&9 IISQ7Z]\-]:N);I M$HN34I%P2A#J(^D,2G3(M,R!J3"!8%,C$GR.D08A^]S1]92]P@4K@ZW94PVE MC-DZ+1AON,G"AA-@GJ&?!(:>LE\IH10>9@ON!5)5 7N# 44K:"&O\6ZMT1^O M>LJN"NS_9G@.9T=U1*OT]6DDYWG#+DAA=G0VZ/ M\"/I\ P^UK2]EF2/;\_:K$* \-(JPJ/FPH.KPVTU@!M-![,=$0;^0Q;2("VG M*! B1G#N -@9G[(+=#R#5%@2Q!IEI41W*!TDI23Q+*,7+O*%J/-MZXX/ID0NUREH M1[C01HUH25A6@D.D3,*DLF^6[E)JH.)"#AT.<8%\1;F#/*=DT26JZVK-(!IR M0?PF"2 R%Z:";)-L6$-:A_P/+9N>:3"$.#\">%(;/.S<($R@/FRBKD:RXSA( MT6H2)O#X[=F0_(G'*VHD5L2M[\KZ5]\)HJ6A>X9V"/@2WVOB!A$>:O?&V!P, M@%Z-$D$%FO0I#!TP535*&HJ9G2"+8I%A&-$9O!@8(:.8$2(PV *WR$M\.ZL1 M.?AXD'9J!9YBPK)1JI7L)NSP=DAHV1K! @YI'&UP%&(6 ];AKT-8 'WOW)AR M2 ASC-1(S$!#%:WFKC80!LO-YIM"X;PN*NK9P7R!+1Q]0)/8E:6MA*.@> 8S M2N+<4"(I^2ECC-M-$#:V)F-O/1!3I078W4I(VI'ZWJKUJ-^U,U:V5>XT[)+W M.")IW-&U<7%T,I67L(XR82BZ2L8I33!RB12.(W@;T]/ESN'5;S7:S]L>/UXF MPO?]K5.MPO0&- 8S2@SPUY$?DF->-KRUU\_(NA.T<.(U/?M>R%W+B5H3TNF8 M+<%7"3!81W38]DG/T/:5Y;L*O3^C?U;>H1M[3/8$XX. F_H.*07ITQ&+=TG#C/>"V28W;^[O"T#^)LZS('UW=NW MV=,GGZ[-+LZFIXNSK4Y[7>C)H^GC)X\_0SM&=W&)_.'!XL&PF>M5^,?F-+74C4E9*ON/?4BI5,:R.+;TM2=J.E^!/2].&;/R\\>K'Y1&_NDW>E^ M1.H.3>?'=F^MO&./-T^6?ZS=^R%RZTL*?R+H?6/XG%#,Q7S$N:'1M M[5M=4^,X%GV?7Z'MJ=ZAJ^*0!$)W.VQ7I2&]0]4LS$*HZGU4+#G18EL>R4[( M_OH]5[:3D(0F#L(#8/M*NKHZYW[%.1YE+RXAL%]*' ^TF#*;32/YMS-]/'=R:245ZB3SK/J/])N--.L4 M*WF93OU&QST+>:RBJ=]7L;3L7$[8I8YY4@D.=);I&+*9O,T\'JEAXAM:DU:C M\=4Z@8ZT\7]NN)_.9*0RZ=F4!])/C?0FAJ?%\W#/?Z. M=<]/6;,MRJOK\]/>)>O_VF-7O9/KR[/^&81[7T]^[9[_O<>Z)WUV\84U/QX< MUG9G^?(;[UZQ[NG%[_W>Z2++Z.@<\PX:+3HN=YK=R\_=\]Z5=_'UM]Z_JH-L M-1JM1_BIUN/]5"3#1SOKI]GJK,:N1OQ&&G;%!;=JS.,:"Z3)5#AEV8AG_I(E M%H*;4#:-^-0/(WF[8HE_YY;FJ)9R0I[-N,DZ;L\>]A-;?\"MC%0B5ZPS5_BP MWCYX__:ES%6N7NU5):2MY[;\C2V^^=2L5X9;L%@Q9;/16)[PA0Z?C?A8,B/' M2DZDP'DKR_[(L0%IHBGN4Y+#=,*^:!.S9L/[)],A^](_859R25TY3A#3$7HX2S&E5$\8B$/<,LP'2,YS'0AMR*0R$!:R\V41&*X*JR[ M,*?%/0%EL&1$4836((% F2"/(99@.#01<'&P3S!B-J=?\_$3:60Y"6T@5C9" M^H^1X6";R2!9J!+ C9 [ MAU<-3( X'IN%YRH)X5)YIC"/2H(H%Y@3$%[ 4@WP5^2&H;PE\A"IHFC.CA*8 M=FEI:"H435PCB3R" "BA@5NWG'7Z!-R.6!CIB:WX8N10V&D+_,($JZ,:^_)0@M7QM%5<:FH4DD*HM#\C#SY G\*/),N M&R\4WED(5[3-95)!@+(M_V&BE-@FV"[CZ0?GSOMVZZAU=/2^U6P>?&@9#*%T92,"W7*E(@'1N, %\^5A9%R$@ M)1,W#]5Z\]BR&)^,C+CC0YD!S4%=*V,7/52(,]#%ZD@)GCE%!U8)Q8VB#:@B M3W,1,Z&9@V%$D=$M M)J+X;R!)$ >&\5)L$)EVA'L"X09;1[B-(\ *[S:/'1O3#Y0=*T&LXE8GG((D MMV DU2U$-6Y$!7L04?&!BE0VI:QMW;+D!!Q#'/@+_MX17:A[7"R^+3>4YB8% M^:S+,H- &^$4_ACEER0-AD "52:U(URQR-9O'0!>,X[91!M6U M;?9=*K9K!3@N(.,*#9QO#4S"A^7GEZ:, M+S).(SV5>#H9Z2*B\#L4 R6>F-+5[P'K[%44AQ25"#H'#^=W^/%M]3;B'+\X MQV=XW6<=,A\ZL =?C[GGP/[Z<_.HT5EZ"R5SC9(UG*6W,SL#. EIG"[T:B94 M)W$/T$-QB.EOI>C,8%D',,L!0&#$4RM]6W1/9G1U;U,6<[M7/*& J5:G7D[A MH?QJ?"D$*7&7!8?M.NCUUKT%FHE[A-KU1OOC S('&\@<'M6/WM]=#/^89?W+ MUU,=-@8\N!D:G2?"*]D8NI_U;)S :MX 7OW&=[\]NK%F[Q4H'>3JC:9*.F/* MSU!6E'@J,#9#KRE?F'6B4/\YWUQ[I).]M](#:GSV#SYES4:-M1JMPP7DKCVL M/Y-UV-.-@2<_@B4^3_W_&3!*[U5I76^U4ZA('\2P2K>U%ENSNU?YCNA]-MRW M^RLO+ZXSZL[K;0&O=\98,$:LA(CD-AG#K;;X'O<+065;?-K&]MHYN!^$TSMC M;+4Q=@[NF>QU,N+*0(NJ ?ZYZGF?SGK>BU\ZJ+EO'7S+"^(OE?LO];V=YVI< MK>V#+/397"NN^)Q Z81Z$7F5H":50KTC=25KZBN[?')1*#.N*4]4$ME M5G+#,Q7S(N:'1M M[5MM4^,X$OZ^OT(W6W/+5,4A"829<=BIRD#8I6H/]B!4S7V4+3G6(DM>24[( M_OKKENTDA#!DX#C(;/@ V&Y)K=;S]%N[\-S+Y;54HI4+K/B+A^U6[GKE2H'3 M>=CJ^6<)S82OJ@.Z3 1S:9@(%\0@ MR17J,+A)120<*:V,,X 1\G5-T/[PT++W6R$&!;AY)68@LY^CP<7P].3TJ#\\ M/3\COU]=7%[USX9D>%Y;YS5H^^TG]6BPOJICNKCZ;7!)VGLT:._OT'>D?W9, MVEU675V='0\NR/#7 ;D<'%U=G Y/07CPY>C7_MDO ](_&I+S$]+^N+??V)[E MRV^\?TGZQ^>_#P?'BRS#H_/,VVMU\+C\:?8O/O?/!I?!^9??!O^I#[+3:CW& M8W4>[[$D3Q[MMI]FJ],&.:(NG9+//%5<-4C,C1/)E+B4NG#)"@LAC@F;2SH- M$\EO[ECAC\+B'/4R7BBPCAK7\_L-8"^9#2-JN12*W[',7-G]9G?O_=N7,E6U M>KU7H5#;P&_Y*UM\\ZG=K VW8+%RRG:KM3SA"QT\2>F8$\/'@D\X@_,6EOQ9 MP :XD5.XCZD.T8J<:).1=BOX-]$).1D>D4LMJ2&G*F[V9OC Y&:>XFQQLAY. M.AN D\]@?(8XR*;D6NF)Y&S$&R5<*I P#3,I[0B.HD(1JJ:D4,X4''2E<(8P M%:*'D@RNC*"2)#2&6X;H#%)$ITNY.P**Q]Q::J8HDM%K#NLNS&GA'@-E8$F) M$0370(%8F+C(0$S!<-"$<4/ /G%*;(&_YN,GW/!J$MQ )JR$(@ R>S(1+H4- MVIS'7D&<-P?5-(-MCF$8(]%TT0Q;,CR-#'N;3 9.$J$ ;HC<.;P:P 00A\=F MX;E0";A4Z@3,(U0L"P9S H07L-0 ^ MTPZ"\1?(@J:2*+FU$%SA M-I=)!0*8;84/$Z7"-L)V&4_?.7?>=SL'G8.#]YUV>^]#:^\1/()*_?43Z9A; ML"V@RJB7D.!B/*C&XQ$87_(HZ" M<& PGK,U(M.6<$\@7+1QA%L[ MSAW?JQ8VWZ 67'@B&KJ-6*8I"D%AB)=0M2 MC1I6PQZ(*&@DI'!3S-I6+8M.P#/$@[_D[RW1A;K'Q^*;:D-Y87(@G_599AQK MP[P"O@(:<07)HP0.PA.>([E1!*J[DF?@!$0.X7#+M.=E6KP!3!N,J2R\_T<8 M\B2!"D6, 4!V1:4!*>0:D:R\7%UV>$K!0(A"MBQN(EVX^]=>)];2F33'RBUY MN.PG45T3>B_!2QN /CVPNPM?[))5585_LL2.;X@WF+[I M."X,PG,A5[HU7Z:M@SOX20W,8F.8HFKWDIT[P@EP"[S_DERE9@S8\NT\[/2I M8J;+NU*3E-I9,HEQPW.1,Q]0_>ZK8#;":D8VY\\98LLB0N1]'I']#UGBG4 *]*)1)3AL[2]'\#9@LRX1S MG*^,CI&&] ^?, $Z^>$[P" (1A:#'?S%,JVF.O^S$*"R)W>A8M_M>[?M-VS[ M#7T)B3]85P 3L!>%3:U8<,!ME5[-ZOX)I]>8+Y6%@,^8? GC/Z:I6\C?Q(:J M1"\;@2N\/F4PT/*9TU_!G*KD 6$@ 50FC3)=LY"KV2(#=(%Q_#:JH+JRS;Y- MQ;:M ,\%R+@2 \ZW HMB0(DGIG3->\ Z>PW%(T4HAN<0P/GM?WQ;OY,XQR^)\HV0%9_$=S5X$3H(;KPN^H FJHW@ MT(/B$*:_X:PW@V43@%D- 1*FEL>VK)[,J.K?Z>RG-N_Z D*F'IU[.64'BJL MQU="(,5NLV"_VP1ZO?7O@CIVCU"WV>I^?$!F;PV9_8/FP?O;B\$_9EG_ZB55 MCXV(QM%-1_SK?6'NED[ZWT #4A^1>=DG:K03JMSOX"UM_) M.N3IQH GWX,E/D_#_QDP*N]5:]WL='-0$3^((;5N*RVV8G>O\OW0^VRX:W=O MO;BXRJ!;C[VU=6[? 9^WQMAH M8VR=VW,YMU3PA)S,&A_G99_^:WX._F(A_^S?9'I,>^.Q_:B5[8V%]IGOL)7M M?Z$5MAB*3-WN2=9XF14 ^'73.]\_7=FZXXI!^7"#>\!.R:R2N'D9?/W?C#QO MIZ5FSL\1+^-?0!-0+J1R0J?61\##7?Q"\*U:;6_;-A#^WE_! MI4B1 I8L^2V)[ 5P'0<+L"5M[ +=1UJD+:X4J9)T;._7[TA)MIO82>>V2],Y M".(7'LF'#Y\[\D[I)";E9R]0)Z&8P"OJ&&8X/>M_\.HU/^Q4\X]@4"TL.B-) M%DB;!:>_'J1839B($)X:^0M+,ZD,%J:=84*8F$3H))NW#]RPA-TN.S'A)91- M$A,%?I,)L.A4H=W99:756 KC:?8WC<(@,^U\)L_(+ K:KFV,4\87T9"E5*,K M.D,W,L6B-!Q)8V0*MH;.C8*1Y*1]!]N#< #+C!&31&-FO!@LJ; 8^O.$C9A!.][O#R^@J]?7\S>-^]&J+A];_G9&=9 M_%"$A"?HO3_P>SX:]'N.E+#>#"JH.T#=\^NWP_[YGJ6#LY*;TZ"%KB_0\+<^ M&G1OWG2O^@/O^L/O_3]1MS>T+;4@J&TCR2V."0)#1@V_6:\?WH6V[G&UW3V. MT_'.8>?K>+H4"#X(&ALF!9HQDR"34/1NBA5L)E^@&VIC-I)C=#'LH8'D6%70 MI8A]=&0-7[VL-]H]F698+-S[UPC&N9 J16'@O4-CJ=R GY8#9E0Q21 %6@GZ M ZLX0?6P OM0:U00UFC,.#0LD0QH/%7,,%@-%@3UYW&"Q80BF#-E6EO4\&LM M"384)511P+K"EN//H0%P%%-EV'A10=E4Z2F<1MG7:X*JP"GL>/# M-F$ZXW@1C3F=WU/87U-M\9=;Z(P\;8#=MM.2!SI)=33"FG(FZ#W5K810S/9$ M,FSXQ\U:J]9J'=?"L'X2U%?K9L(B]]SR'UCNP=E1^+HD=HW1?/PP".Z.^#0> M-@1]%$XTGG)P@!B\A5L]+S6NZ*BFWE M$4MO*!07GH+,K9\L]69O3:N[TUYWWT9WM6>B.R8@_J;8BH,!*DKKM>8"2QB^ST,2)@;V@9FL)KR7+X2 M0KR;4Y>2+0X(?XLL-QZX'NQ4X_2P3!562GWP%-[Y]K))@X]MS:,G_I:ML0=( MT+YS)A@\XG23=]K4J3V2BE#EL-B\":!;@3C:GI+T4H \2+#J UCC. M-(TTS3#LRM(Q7:J3C^WR+P"@RMEOF8;4@S.SB,K^A1%8D<_UWFCZX$B'+D4S M9(M1TP^:IX_8U+_ IM'R6\>?3P9OU%W\1>[HM#'"\<>)DE-!O,+OQNYGL]_- M@#5OI"C^&+F_GOUBP]I+43K)^4$(.>JMO5C$F!=ZRC6V5*\JLEEG"O"_YT5\ MQW"Z3:WGH)H(;FH+N-'E][0UY6[;=Q6-55-$CP1ZH@IR!8LUN<;B)U'_6>@5_OR5@C M(V6$D,]_:$H"*\VW?_NCW!V*8+L6I_:6 19*Z>YBAMQA#$I;"%B MFHK/:Y2EFI9I@GU6?._A\<92'A4$DHRY78.MIRSSC?G3J.\_(WE5=$O4RGLG M-#\=/3P&U9:V_;-A3]WE_!I4B1 I8L M^95$\@*XCH,%V.(V=H'N(RU2%E>*4BFZMO;K=TD]["9VDJ7MTG0V@OC!2_+P M\-Q+WJM^I&)^]@+U(XH)O*.^8HK3L]$'J]VR6_UF\14,FJ5%?Y:0'&4JY_37 M@QC+.1,>P@N5_,+B-)$*"^6GF! FYAXZ25?^@1F6L,]U)R:LB+)YI#S'[C(! M%OTFM!N[M+(*$Z&LC/U-/==)E5_,9*DD]1S?M(4X9CSWIBRF&;JB2W2=Q%A4 MAK-$J20&6T57RL*"*]EXYY^)9PHE_ ]N=< #+DA$5>2%35@"65&@,HU7$9DRA@F4] I"0/I0"]^2^ M:7>S$ *G\0&H:CZ^GEQ>5P,+T<7Z&W[Z\G[P=74S0=_WM.'BV+'XH0]P2] MMR?VT$:3T="0XK:[3@,-)FAP/GX['9WO63HXJ[@Y=7IH?(&FOXW09'#]9G U MFECC#[^/_D2#X52WM!QGIWN9Q3%!8$BO8W?;[<.;T#8]KO5XC^,T?'38^3J> M+@6"+X(&BB4"+9F*D(HH>K? $C:3Y^B:ZIB-DA!=3(=HDG L&^A2!#8ZTH:O M7K8[_C")4RQR\_DU@G$N$ADCU['>H3"19L!/]8 IE2PAB *M!/V!91"AMMN M?6AU&@AG*&0<&FHD$QHL)%,,5H,%0:-5$&$QIPCFC%F6:=3PIRT)5A1%5%+ MNL96X"^@ 7 44*E8F#=0NI#9 LXBI!*T]JE7+]W>L5^Z%*#!)$D5X-FT+FVT MM& J Q++&18TL\8K3G,T" QA6EH-:,?*NZ&PS;.N4(56@-'8\:%/6)9RG'LA MIZM;"OMKD6G\U18:(RM3P*YOM&2!3N+,F^&,L=MURW?>*TU^MF0B.WS/+O6.[!V9'[NB)V@]%B?-=Q;H[X-!XV!7V43A0N M.#A -["M9YKC4OZ:<$DC:%#IH63E>[HMH\P^)-$;O>(O*[%MO:(VAM*Q;FG M('/M)[7>]*UI?7?:Z^[;Z*[U3'3'!,3?&!LQZ18,: C\:G14B1(S$Y8ES;3^ M&KH9NG*G MWF/3?H!-IV?WCK^<##[(F_C+W-%H8X:#CW.9+ 2Q2K\+S1%_9#C=I=9S M4(T'-[4<;G3%/6U#N5LWZ__$#OIZ,J#E9V#B3>Y],V&4T:M";;>Z*4!,.".H MPK:5L2VK^R%3WET<-K,F&F(5Y>@-C005VPC=1[QGX--[,C;(B!DAG#XG,FZ5 MI)Y(*L\EGCV8KWUP^PG\>4_&LR9C']R^5W"+& W115TA&8Q:>M%8Z-6IDIIQ$FBT*GKC(L8O%E ;*23)T#Z ?!MYX,;ZW3 M44$@@UCI->AB29U,K)Y&8O\9R>N*6B37+CJGQ;EHX1# >9@O<9Z90[#?U(_J MSU[TF^8A_S]02P,$% @ ]TFJ6)!Z_>;],@ 7#8 !( !I;6UNF=84UT7-AA 1%"D1CI1>A'I15IL=!$!(0A"! 2DB?06 MB(* A"8@\(A*Z!T"4J4D=*1WHO2.](0:2$B&Y_W*S(_Y,3/7O"MGY<_9.6?? MU]YKW?=:V93?E 4 L[ZVGC: BHH*T'+Q 5"F 0\!--34_UX7=NGBHKU"2WOI M$BT#'=WE*]<8KEV[RG#U*N-U5F;&ZRS7KUYEOL',PL8.! *O,7%PWF#G9&4' MLO_[$"J:B]]X>K%@!IF #45#0WU)9I_9WUQ-^3B/N 2"RWK M+=G[E]F,;>D$/-GEWB=F71%\4-D*-!G!"871,]S@X.3B%A81%1.74%!4 M4E:YJ_KPD9:VCJZ>ONDS,W.(Q7-+^U<.CDZOG5V\?7S]_ ,"@\(_1$1&?8Q& M)"5_3DE-^^=+>G9.;EY^06%1\8^JZIK:NOJ?#6WM'9U=W;]Z>D?'QBW_[P"62[2W9"^SWC>FL_5D$Y![?X7]06)692N]H+P)#FCG-<)P0TAA41C_ M+[3_(/M_!BSL_Q.R_PWL_\0U!;A&0W6Q>#0L ##@W#0;(0;XCVCFQS. !HU[U1P1&!D#?'A@XQ700[ANNV[ [=.C19M9 M= ME"W+6C/VEPRB]8BC2IZ'1=5E=,98(7%;!\7)Z_1Q>C1;4+J/2[SF(B_^L?@3 M*CIK2PB^&IF@>0<"]U(-L5IFBJ[1[IV-N35V@P11#EF2,C6].3MO<)GZ(XAE'ZO:Y^WVIL8FX6?= M<:IQN%]N"M;A+(-.:$C>83IP(]FDO?#%=(KLXU^0?#7("#V.IZT7HR!?>73P ML7"50+>8/Y1:55"P1]\)/O+@XC.%,!VET4OQ6B>P_L"O?U2@ (ZX2_$H7[IP M:[]H_)95Q2N#WW9-[WQMVR_FP;/W9U)$3B._&$\!^"G=@U_#,I61;N+OQ)92 M X:F&G%(3^502I[__$,L3!I?\@B[8N$D53 CVZ*7 M /H>=,E4"%_2M?FW_=;G%6X">FG.P)E;?/EUK@W7BY>($Z9W-\ZJ)T\@$ YY MI6^:NG:?5EA5E\> >ZMW)V!F9E%EC,$4P)>%M3]2UZ2D2XTSOF-^':N*9:-G M""W_>PO\E[T4SA908H3+^"J\>MB+P/BIDP:# 6)X2'0I231G !XH,F&\C_)[ MTP+ITY3 :ZW'^#Z7]N#[*'KBZ?0!JG_:/Z\<#^6WV%(*N6SZ>4@6J5 =-H/% M8SOB=+KJ:)^G3[4:]5#S.LV6?!OUL9KUVG&O)D)^IC3>7 @Q= \ M01%Q=70 M(FA?NW-\>6,!RPQB,H4:!$#;@N ?#@]K*B.>4AW=2;7O@>01$?GC5\3PK3V;R@)G\_3' MDL"\IK?:.9Q:U&4CT*S%MYPPWD!GG?5Q$A$8AXI-4W2&[C.(93?3?!#+1@#^ M]58\W?M#*)O.#W+772-'&KH#8%[NAM*4")+Q>ZZ=BH!U<7:YL457G$I?AJQ> M>D.-,)!.U&%X5?-F0$6 A[ZF,:.OD&S9\8U0I9B25Y^<9?%[T6G70 Q;T>2-;YUL[! M*%;6J'ERH-DNT?82'^#T! I:"I&]UN/)W<-S69OKTK.4I3EJ/*GA]HB%C6S2 MR/356V!O"J#,9H W1L'EK[_DM7!HQ5LLJVU PI428[\D0IHC;$Z-UI3&-"G8 MQ_YO-H)(,WB!^MU_S>,#DZ8X4K7IN:]5\;?EHD0(>\N7QQ1^5<<\UQ_R[8\P M>K3+-%GO65^X\%>_NH'OG\<*E;XYVGQ&BH2=LFV;.VZG+-#-A-C;8&<)4*A4/&[RN)JM>S&6L]O&29I12HE_I80 MN]T?!%!-]X5M$;UA/B!:3?I-1B>5!)M)JLI*KA5YIB\?#Z?3Z^^/)R$VG4RR M\^CNNL6OK1]G$HR=O*6:YM1'EM-%Q/XZKK!,Y_G:T!&^+T*CS4],"= 7U=A; M-9Z\0Z^)8;)< .P"C;_C3'^WT$J2GB)1D4@'X_7X *;RJ6FJ(2I5E=J13[ZM M).[#EW,A.8BVATR7]DK4O_&KYDOD)$@E:;Z;.(J1HC.L'U?D*=S>+AONN7V@ M-*'%IZ>X5D(T@PDZ_,*38W7._<"+4#EXZU--54:ZME30=86^=])')G>DVY+X M5>AF6D]N8M?V(DC2PQ0%>)C73=XV?\A27RM4OCCNQ(Z6P\]'D?E?4P!3 M:*&)LFIWM:#.XYB"J<:$^T>ETF&@J]NAUTG2P^J2+S%2<3]*?[ -3/+HU.-(R<[ MY_^^5SMI7GE;IIVS+?O].]K TS6C#UU/ QX_6#.Q#N)(M=\:(+[ZZ0:;]W85 MSNM(/2C2LU>SX#[U+-?[G>8)04"A0NM/HWK[KT' M% #KV;EKGY2T4&4#8HVMUN*W# 7 0-98[22$=-!#3]Q)W^ +H)*Y#-\P\CZ) MZW 'F+@8X@5F?CULG=5C&\D?-U>S=79R-;H@-NN:EFA CS7HZR!K@2C]FS"$ M6'DV-4(L\[_A5\K?L$[.Z>6JZ(Y7@6RA0H0^F[2.#!$T.K%.\J[NN=+UE$.G M3FOG:O"E^7[D%A^L0K.)^]3V&:E8-3EA$*.^%/OP9LRCBP@-%OUT\0T0E#$3^D;5@^KRF*Y:3B0, MX7\<2THF*-\;KG)PJB#]8 [U$\3Z:85&A\X@>9,74*T:>F6.?\I=EK>5],NB MK%LB/\$;SUWQ"!U_::$/??*LVSH0.R^C\?03N2G5AM+3IFD65^.$_A/0;^Q" M$P7 '7KW=:TAB[O@XT_0>=V>!KFB7W&8.=0?#*OKE/][F&1(\9P>,/5K_C07 MUS\[C\QXF=ZTH=]0 &&!) 9H!/CRXN1>IAFV22NF"'F)Y;H\ZZ<@9OJ!P#T2 M.W&Y"+?^P4V3S]E?6-HW<1VZ?3.A*CPN[J]>:ZEKSQ*>X:I]#B/P?5M#TBP2 M.<^#%H?"' @YJ( ?1]^N]D42U>],-_WSOBWS>!D<%^) 5QJ(P I 'J.&$6F MCV=YM5M2TN<@(]8")MF57P7G&3K+4#:"4[L_^@[^\I>LC4(;XM-Z@]?W+BW^ ML\ 6WX;Q)=/!I"H)RCC, UQ9K 'KGQ:TITV<+%2Y:>@K&0GB("DA=I !&!=[GU,3RRO>VNRQC+ZWC4.V&]A:-V!K7 M'.$QVJ3I/TNK\2;!>)&16/Z[XV7'+G.W0/52[3HN3 PZQ';%X^\F(]5?0^CTJL;* M!"W*RNPL[,T @&( J+<<^]X\IT19*<2003]"T=!'X&>=52&_*)J+ *YJ"IT7H8$$'6=$9S2G'8<^>9& M*[9P6I0"8+,L-N,?<;S>+-R4-A?<"5Q XF8QU)B_6<[S)_U(DJ&1$]&#Q(QV M9";=&[,H[%GL/K#42#%:M3U"0/O1![-B*/E)N#,X$@W"D1/+-OEO_Z@9K?&1 MLYA![U05J@@'E$H3W##AX$--9\R%O"&8/%L[CN$I,_00"C8$+LWC_L OP__" MQN 7&AN70^:17A@Z9TKW((/)[.<7+[$[/L1\"5FO'K&Y#7<;"K_)"@O.7R;3 MD8&;-NQXQ^3E..HQJ^$]^W&?QIIYVO[G4UN;\J9B^F#62L\B^D:M&6SVIXJG M>BHT12A9/'9''M>]6-93AV>*]9FF[[8@#

'SF-H[-RS7K%N]BV/?3T$2< MHKO)#(PX_5UG$Z,;.BZ%1',]>_=2<).,*@0%TR"T+PPA&ESF R =2I:=C;+& M*SV1ORB 5POD%*\\E2VA1ZZF7ZM???ECK 5,K##6@H0\F%22.)$IN9[UC>;> M#;%BYU(+W0ZIG9^"HV87*:(Z_H>8P\O>(.!==L#FOYI(0GPWLZ8U_?72D.$V MW4&Q+"%9/]4_PO>JM\ 15.;IY>] 7F66%]1VB4*@;1E%80"[\=.>P$MN9NMQ MG+[7%K@!Z8A7WCIRNW&36ALI=]G/ /]#KV8G;7):N25KQ_WMI\JD?UVX7(]P M._7*_8>\16/RE$H+R(Y].KT\D*YR<'Y,_4XXNP3N_(<"&)H!G>#A70D[:N!3 M8CB9+$T8IDT7K_R55+[BX'MDFOCD/^F>B?\\VX-;0_IQW;5[2>8SZ-\H 5P( M8C-#8K3,VE]':),S& (G/ICY-7>S\EW=;JI4:\@6VT)>L77 /O-68U_TMV"6 M.IV!+QW\I 7^8V6PP.?/89/Q1_MGT(9,*J-LQ+F>I*3@ 7,V0OR= MZ2O?.*X_8<6QJ>H #>>)90J@!HI0-UW$A >-$N2U&B9)6B$L-761$\K :S+] M(3*Y9$7C!(4D :^5F#3[ ]%C'&%EGBM4V<;J>3_T 8ZHF%*\GB#C*9CPU- ; M64D!M-X-O0MS&_7Y*> X4GULM?- 2^4WPBL'_Y+6MFZ[$1]Q(D\"8X42XY^G MR^B)_ES#/,780O_LH"^3!,.LS?NG PHL* #=\1M:/(L:.4/Y,G#N,]6)K*BL M'KJB?1^9(UF+--48PZ%@_.6Z? )'6UU#WJ*5M?3C6N?<*17=$>]WFF&8JYHJ M,.,F0A_>"(IW6-[E2$X$0!LJ4/3OIU<[0],O)OBPO E>1E+]@;M@$.7"+=#4 MZ!MT0P5HT_[) Y C:M *]$=G:>=HM09%DCRW8T_7BOUE!Q!(HGK3' 6.\%[% M1RAL&F[ZK"45F>A_OO'QS(!,'WZ1"UF-..9).N-E)Q;.5F4^^_.^:^IW!<\3 M8R%SX&J/SBUH&/C*T1#;X-\[MA^[G=@H@+[GOV$E) I H.37G1(:T5%G'%$ MN$UX.U%'KYH!^L1!\D@O> K,B@*@Y1Q%B\$L\/%?%Z'7"&KFXS#%O,P,JYB M V#_P"_!C)+1G[SHFH]-&5&PE[@ ZW@^:+3C5)7#M7=HI#B339UK+]7]7[/ MK3Z':'6DVS(.->Y!$(&W( D/0GEG",O/:O:/0@(Q;W\4# ;< Q(G2T"I'/^ M"@5@#XVVN0B=S W+^0^*?#PZ20L:LZLK+[4KB_K$-9<%,(X*&MQC[0T:J6FV MS&&]@\ PSFXM+4Z:_?+^4 %UQ&>P;IR(:3_4UMFP<71ZH/(-Z&(*>2*]KY0CRI"8]'?H2QWL MYU\=Q4/I,(^O3W$3L?U>EK+II^1-6;Z)-GNJ%[&06I)D8BZN%/ M0@6D3WZ- M:\BM.&V&2?M0 #2[]6'JA-?/MOT4XDX,I01#QJ 3.NO])+[S[,^@! QS,'(G ML &9YT7FPX$^DNQYAS(#_(VQK&RUYA6USH]>':ML6!OM7%"Z\,$2W7FD"#GE M^(3$JI= $@P%\^X0W42GU22WBLU\Q+QS88JJ5UFB?5:V8;(R M4P +/RF ML0+:M>:FL=[D+3&:C,H@$4H^C,D[;P(O*I3=9Y@=/KG5!!_L-@= M\P;C"'\_R4R FJ>>#79I_:PQ,)=[X)_!ZZ=XD$:2 //!AU/*+Q[)AMT;$WN3 M"2K,/]4[[R25J 9^*.J:R4^1*QQ/4Y8E[6]:6L\E!$ME9#DKQJWHL%K-B.L8 M%6I(K(4O2GET2LG]35<\KAA^YV E9FG*J7'5/B]H;Z>)FCS!K];23F8EZP6K49_0!Z"M'E$)I=(5 '=M3.">< G"!1DX MXS.V6I!7M]5%XH7@;Y[DIU2)SZH\IRA3+[O\Z+MFE=9C]1 M60?('7=B4$!R=X9X\[ Z3D)FH +'UWZGOC;9. M-9]R;O%50H?=/NDH2+$GEB;*3!E_!@J. 0]TNO=^<6J!,!)#'YT0(.]DNEM*( MTE?I)[IF+%O&62POI U+X6BU,RRVO_59<@MO^IHF+TP1=]*&9/@3$-QNZ6,9 M^MWE/757CGRS@])":4)F%E=;>NSL MGT40*UK6A3LU3RHU^NVQ^5-9J*9@U.=X3,3;&T$VE4LQ^<$!;U"K]I$I7MHA M XY/KI]&:<^TXWM0^60@(?G^3]QL2M[G"JO9TI>&3%1]UW//UC)G3HG/<#;- M.2]G-K#Z];/--$"0J36\=<"U Y(A45=9BTDIS;DTP#LO)W$6#-(_DTT1B8UD M^#N;<'/"2N-&MU%]:K"51=GJ9\ .-^V@YN=RVJG]O6@PURW<>+)SNF7TD9;: M*T>0$'3)M0K?_9$N4ET:7OCV5;S\:I%*'S\M+%DH>9/#;=O2-7I>?;^_8YAV MUKY#M>#C[J.TDV1K7:-?>?%T%>P3N-W2D6CMKT'VX"Z6RE/L,(8Q%/@[P,,H M<[T*X[::X^^IBA;WW>S4@)(FH3J,(\Z!!I&?11H44.H]U MSR'VI6ZFE^P6%+PQ]>%,,XMVY?:(T9O%^DV90/83FAV&4]>EU8X^/)/9U=L( MN29)9E7(: ;?!-9F>+OF$H]6Q_WC,Z<:V @^F*PO4G($7=6CV@)7S22(AJW? MZ5_?\>CC/8,48--"A\#[0D,4 -0+KG_$S4G+;JQ[I;R<=7#J^BH; M4$%"5<>)IA >N$,!?+\9K\>4VIC0FY.)\B3L+"5LPZ_!G1ZT[W!TVW*U7]K5 M6;;1P VUPG'IA#AWAVNWLZT/&HX/07$FU'MM4 Z]Q3T.J](#V9J&\_ZOT[>\ M1THVW.IH;#UR-N=-5ER:;<.R=Q. M42:VDQ"/KQ>C0\ZS'9+)K'&J,MN"1'&U^S>=?$-H+^J1$?"^DC/FZ"_\4(*9 MW\'5WC]T53>LO:@- M',S\5Z?PN%QR&1NV7;KM?O15TJ?N$SA-.94Z\B*#M<)$Q_/&8"%Y5Y!V,WHK M/;L%-8 0,RWV9^\/ZG8 G4U.;A](V>/,8.ZHA=M:36]'K\>\:0<&'W^H>847 M_CZH\MK/"3_@0&)LN$%6??KDABZ7YQXT=6AVB"?M )2O,_>K#+2JF9*-D#P2 M/)#YMS^$CX?^MELR@Z$>E[4<0;+ MI5_-%!NY1-[<4*Q\4<7_#N+.*Z4_LA;?C?S8;=+>EV2%_,%>LPZNVNF.\2"S M_E6>4VZ,/^A0_A3S)5V%5%&\()<__Y0Q@&[GE&CI"J9V/]2@::U[V[KD.OI& MQ#F;5<(J'JP^R9PGD7SL.?.WR%*AB/C<+21:*U3S-;P.V[W'ZFH9FEC@JL2V MR3&6U\1R_A$VV V ;"F_=Z\)-KJR(;MU\N#D.5%5<:;W*]6G=Q94VP$D27U" MH.U.?__;WX5VJ%^URD62!]CCR?,&DBGN9.DM+J&];]H*OMW9E>-Y^\'C?OAJ MAIH]X@#Y#E-+=Z%K8^=O*("N/GYQ&9I@L'PEL<5*SP-[?\^1ADMC4/RH)UX-??"S4DK[P_0V!2"04YJD^7:",('J/E?R6+?YB0N)"?!Z^N3>Y_"EOCVNY]:S2E_] M>6_LN'O9 N18[W=;GIT.LO\5-[0&T3_YKE^?QOVF?W^(\ 8\PA_00<]^I" MEEC.L?RG:<*+,T(HH)B=@QSS^//R!^N4]H2)EQ/C'90)^ M]2B;/MRP'389T0HH& %%PVLOBL[80OS\N7\"!7 ?E7VA5)+ ^_(D70H %0Q= MJ5KW^W(J%T_=EZ;U0]3X%,&4S(#$H;=>X*Y'+4MR MUN4GW#58VQ6PC;@);W+]U:JGW62E,=-V/@H:.HFF)+WJN(,Z% M8P(&U[G:$H+.T:CUZ59^J28<4VPUE'5C@6=68N-.%N-P"G@16@^B"E4-"%[N M?G=X'JS=%%UN(TRT3EU_)$@F3^B88$0K*?+!$Z MDD%%4/1T<%\*\>,QZ/MY0V7'_M8*E\I,7P;'7-/KSIX_@G\=Q%IMGG3GFS!S M,@=>+MEH2"FOM*7=B>OP-T_.3!+/=N_=#&)V&="SB0J'/2*(PM(_3T5^B/'T MD+_A^F(A:R_!9;^Q6?3IZ"MXM>6+J105Z9K/H;['?.5%3L&>"LPO.A6&O_\0 MD!$VRBJ8LYC>9#Z%/-7Q!)V\>MKVO>74M1T#5-=:G(VAW6BH,XZ(]$Y!6>+ MW9)2H6L\?$] %7.Z#TK?K2G;_PYZ!F(E,_\=W8!8YD5;RRT!Y915XJ+RU2#O M.N5;;WMU> K(. B.<[\,820^D%0.=^^M!328A'0Q!B2$+4<:W7 6\+L*FF)> M.5M'G(EV!=U&BQ%<1@*#]S1[DS(I #AD7'Z2C_3UC6/&.%Q; M<8>_RAK:G=!XH?G9S,Y0^[GOCN!_ULF/OE 6[M&&S8Y-M9$=0K@5S+X/*3G M7'+\]4OV#PNO<.*N<82R)0?<4/CNBGEGQW)/+,V@$1=(_UZ L13>V3W0PQ=)XF ME%C61-P*-T-'LG-:+'L!=3*!]X(*=N@7O7DGTU=D;7E.Y'_$ZY%9X0S=!*8E MU#:2I2?_,:&N"9KLV0(!+;^@78]6=-=G8YS+"?1E@MXQORV1ES>>JOQTIKVC MHCXQ-'/MG>8X*@/S&GG*HS!_=@@^ P9[?/ E-!DN$C4>*#&M9<['#VKB2%L= M_]E!V]82>1;77[4KY98F?@/0B:#\< MYH,OB--:SST_U^.VO7=@W'O$!#:4/2"F/<@M#>LW\C7@U)MM5T+#^7T9WG3I M0ZB*A=MV=H!;EE?GMX-_RR<4#MH^5!XP.K=074H! MC/B4I$!/7_<.[" .F #S<$="GU[*5[O 5NN$>XS!>UWN4C5@ZKE S]/D1P_+ MZ03ID*-H^VL05_$5WC"-DOWM?6G&?[KJ#+G.WFA)EZZ.Y6"?A1261.ZP'%IYGZFI^E,42?/K5[B1N%])B&AMITOR9WS=$9=T 1NJ>\=1B*) M^2J8)A^0MVTOS;:%7=,=/:'$##WK_"\]3GYWG>S'D5ZN1U5D^F[<(Y@R035# M&%/W;+)).W2D.>UZZNDI,_FNXF%]].T[H"0U)"@BMO*?\D#WGT>B'VNVF.@( M?A0 9%S8RE#-Z'U^ZL.V;+&!4"#)CU 0B/^Z5(M9:JP]O5/@4!YB9"C4,)H@/=?OA"L+,!V[21IS$E=PJ>.$.G#)\F/-S&$$2<6C $0\V; MLX03T]KYO-?A?56L=TR>_PY9W$5.HBF \URR[!2,D:!3'I#J&#NG0Q_?2W]= M?>-KA/'>.!D(WM[!Q6,7$MJLF=J&M8O46>CO_%'5: =88U1)%TP5E@;S]N"% M/:[%W4'>57WRCF:FN-;$*G)%A@+P\7P1M"RKJ9.5#_UP /^"/ZXKLPF(L4!/ M''%-+9&/S3,"O^WW/PE$C8$((J"6K$44[1SIT?A.VZ9EZ[Y;71B_I.<)9B\G M'(J7WW&I]%'H343TUAZBMN,FSU94%9X)Q(;=A$.M;&=05"O3.TW@.?+0:D>Z+7&FVS50)L/86_H??ZKX MZY*_43$1^OP#;P(XW1CU51);Z>H$:J@,M#M4G:Y^%D3I@)OK9@Z?N;>6-WTZ3?#X3JPS&:XR6 07/ M=XJV%&.6P?3.9#5<;4&F2^+M266< JLDP#,Q-O:$3V>TMA!U2TTM9]99T3%4 M*'1T_@G 'SQ(U&A$ZOHZ_A=S *?KHLF M]^0;GY),;_34 W:DYS=0%R;TJ(S)"'_CJR:RZ$\[W$&5/95^6$XU(S,7C4\S%RI^]R2?Z[6+Y$"5G^%6\;C:+--++ >.S)B;)J>9;X8KYCJO:0 YTH M#G@67'"QA!*A_#J^;[$-#M)!5C2M;B!FNTV!:;9%:N9I684I,%;E4E,>.4V.--NN;JU MMY -9S.UM>CCQIZ,VT>A0>*<+:ARWYXWBR-[_&W2FGA[S6>!76O;$ON%9H!K M5"W4J4W>^MD3<8^Z6I.+<'FK68^).D-\(9 MZ/KK-A4P"S_626.)?UJ!N'=<*PB2/AF: ^Y6$D3OQVOYC+J;C>]>$^2ZY%]@ MN-#,L.24:BTQJ2>D]B5=1D^SFFIE'D#B3M/>LFJ*>)5P_HQ>8 5D#NIMSB$* M=)-A913 WN@%?#U[>X_\J;SF4O%+]&W=G"U #< S\J]*"@ I"2<>8A:AJB0W M7 ))$"VB7*%3VTM$GW3D-G^1D%\+I0%R_R5=JC"D@!=)=,N:O?ROX](W1\YM D M?ZNW0>1*B6I&>(&KE>:L$^/D4.-:N><]?H[_",3N8 K@1*_+L[*ZR3F5E9&3OQ^6>T:YJK_3M.2D+/ I-]P[M6ZU <*U6J:R$>)4M#O94$M#CYO]7EG:9RR(4[:.*34"'(JN\)'] MF*M&15ZWA]I"XDA!N+?IDQI^4^"YSGVC:E^;CG/)%4+,);P*W)6VU*AHD>32 MMA3RK385*9?0(GWCHR/RX<]D*@H@D,I^_,389A7*M6'YN4$[QSWXS:I#1'M8 ML^<,9%*3&:^%BJFV\"C[AZ_]^O>)QG"+MVLO2XS/FN:;0;_F/U9HN-Y2JY%_/\8MTL<]^=M:92PQM!C.-Y"K>'MN%*EK3[9"":MO9$\=,2PB]8$K2:G:=SJ^5)05A M-_ZX\]29'8)O#Y3\D9#=#.K>KL$Y>L0CN16,F/[Y4_TKUZI9"UM\KR#Y= GC M5B-YKM:"9J]O_.I>^R5OJCJ6@P'(XOV>P'":1J;?(JIBVD"18-RGK1N+ZEI+ M@+IK/*F1O# $4Q:G$(2/ J!5)6RC@3C%@O99N57(LTD*(#B _1-^.KR5;C92 M\O:C#&GF++[$VAM7:2)\'1K)B:=$_-92S7H7"G%V@MC-=4*LV?-EVL;5;GIR M+V.!AP4D-N4%*$EDGN4.*;C(:F_T$#0[=8.+R2O@9O@X[5U4W&&(P%X'=W-\ MB54C(]27!87=X-\>;6>YM--]N\E)]V<\LJ M)$D,C[%Q;I%.T=KJH8U 8XE&HM,%779:0<,H /JC/?89W5RJKE[/T M,=&HMC)ORP;\C4IX*;118_9PSUM>=I KVDXS7/$$1 +R+#L=8Q'5J"A5W[Z0 M-"-HS29#*8/^MJ:6YM:YZPKJ/05P=2]4CF0ZK"YNI])4;ZK>J&>137?;BN_C MI5"%"H4)[B>E#9$.9DN2Q3(;I\A,,.XQ^+W4(I(.2GHPX8YPX>[9=TM]!I)J MH #ZM, [<'UB\8\FZ<5&$!W!_\F(SZ\;4VU=M&&X+.,=SN# M:0 ?)(5=Z/Y*U7__2+UL(-#.H\8K$9ML0[4< B>S@I@-)7BGNXGUIYMT08=0 M1*@8MV/:,2=O2/9R>'QQ\T# RMOJ42'CN%'=Z6=!R= !?E&G/39SKCO >6C0 M+!'D^>GEN!W>5Q.ZYC]_Q0=>XY(\7]_[0 F@XSW7C*A0Y\B4CCI4D<(39]YX M[[J&8EXN;".)'&)Y#_1'@S#FL#F'Z+-)$;,;TS>S$9([0[?_U[G'_[]=HOD\ M5C7EV^189A+7LQ+Q74:+[,_9N>G!C$K?1_;A'4R7!Q::0ZWLE"UU_5M%B]?S M+ FNRT4PCC)Q+\LVKQNOAHR.(T+HEA,N6P:,Z00_Q[KURE_+](J#WMZRU!B, M*#*R]?OJ&(TX7(PJ/$;UR=_F>Y'#7JF@R7%N<0Z6ZC(9P*&N0I<,SIPP,$L" MS\+0%(_6F#O)E+&3C'RSM'1E\5M78V4[KZ\Z]ML&'&>$##M[4N0$OQ[N-6;9 M6R70X_/<0/S7KV[!J6R"$_[! -"0:P#W?'(?5-K@F._V05U:@F]T%R*)- M_4X&@&(EI!&Y20J$GTM]"2R$C+8S"N#9/[32Q[4,Q> (;17@K@*DC$O_.MY/ MO>>!(C"W/($&)[VMADM;G$>4JFOE_/46*;!;L@H4J;]3V)[S,KYF[[/QHP+Q MQIZ9IP4,+L/FFB'XJ&U)W-?N4+'QIONE&Y ZRXPL>2-UI-M+9=#]>+H:'R@= M!> BH+2^!*_N[8%O9ALB.@ .P4Z?NO9=U+AVK!IU8+4?'W1-,5<.&JR9@RY MV,0_E/]SI+,3#XF^B9M,$^XHD(X5\+?7B8:9.2V6**4OW<<0!.G6[#=L>):, MV*P)Z;B!M[_C]/:7^-@AJTT.71:P*"8)=N$!&P.MZ8&,X^>I1ER*XI+W@8K6 M)B&.9U9]!;."WY8K^%.F2=(X6%J=7O&LR$VC(_WV/9!E&\XHW FOM=\H;L Y M?6>=T!P1W/P]UT\)W\[Z(>XR 'B:0(4K@V&!YS5?\B=V41,GAQHSRS(1#/!G M[212=)#)B!;\*>C*O\?#_IL._!5 7)Q(B"NUD"OEZ 7[O\U)W XI0657E#W( M$+C^7]=G#Q%: %@3'NAU]JX!7 MQC<(/WC*+ >[7B&6UE1>P1O*6QQ+^W_+A6Y30$P7P('ULKM%JZ_.$G!1 ="_X>;#+XXV]) YXX:%0R M&7S_O%M'RY.# KA1[:HD%FD0_B?G!6*EQB-F*F+PL.J]>V3H'6OJFNOKE*4CWCD9]*"O_ZBQ67NJ2^.$+5=RXX ')^9G(ZN M7S8GEI 5URSCRP)+=$>M9YHZ?]Y$INWGCOF4-%MZ,GYO[*< MN-I0Y6_!B3_ MLS:P*(=XHC[U;Y4(.'/3U-*YWIPO :F;D7\Z?L?7(#)CWS'](>EQ$.3A(A/U M7$#2TETA[?$VNO*\+$3) M;4#Y+C=NCRVVM.H:'DU"^6_:QP]F/='LOHR&KSS,WZAP5O*?KL+XO&S!%_0"SB=]4J+G*R,>V_I?5_VP7%7M[G8J]^2J>("J#3Q]8I M5%S)!^]/RH:_N%Z&"SN;#W[^XO9?S6TW38_!YG@$P6TZ7 ZV^',R]S/2+$?C ML9(3HFV#WOGWZ2 %T-90F];9&1M#WAL@E<@9!++MM6R1]Q.ANO.0+P'MYSZ8 M/<@!BNUM)).0^^*ZZ&9(*)UR"2(I=BE!I4O-+JP8_"'43!%+@FEHD0R.4#W" M=P^\#N0WD\R;H[I=Y2F DKI$S.P#5P]#W)VZ$@EU\]A$6>*N9T);(XJ& BBB M -XA#GG 1[Y$* /N"8UJ-5X^[1>!Y.=KQ:3,X&G)[Y]) D5J_-CT_O(-=.2) MJS]4G-]HT,A/INYTI7X4,RQ64@TY?&/:_L71@/^%L! RM)1 TI9#B\^5EE\$ M=HALQW\[=?SK<,J?_P-02P$"% ,4 " #W2:I8YVS#S4O4 0#/KAD $0 M @ $ 9G1C:2TR,#(T,#,S,2YH=&U02P$"% ,4 " #W M2:I8 9/57C G 0!+DA$ $0 @ %ZU $ 9G1C:2TR,#(T,#,S M,2YX#$P7S$N:'1M4$L! A0#% @ ]TFJ6,K.Q-]2!P M5#, \ ( !]@,# &9T8VDM97@Q,%\R+FAT;5!+ 0(4 Q0 M ( /=)JEA_[,9IL0< -$I / " 74+ P!F=&-I+65X M,3!?,RYH=&U02P$"% ,4 " #W2:I8-!L?C\H( !T/ #P M @ %3$P, 9G1C:2UE>#,Q7S$N:'1M4$L! A0#% @ ]TFJ6*HQ6=N_ M" 43P \ ( !2AP# &9T8VDM97@S,5\R+FAT;5!+ 0(4 M Q0 ( /=)JEBT0Q, 0 4 X@ / " 38E P!F=&-I M+65X,S)?,2YH=&U02P$"% ,4 " #W2:I8#HT;7C(% #K'P #P M @ &C*@, 9G1C:2UE>#,R7S(N:'1M4$L! A0#% @ ]TFJ6)!Z M_>;],@ 7#8 !( ( ! C # &EM9S$T-C(Q.#$S.%\P+FIP 79U!+!08 "@ * &D" O8P, ! end XML 85 ftci-20240331_htm.xml IDEA: XBRL DOCUMENT 0001828161 us-gaap:SoftwareDevelopmentMember 2023-12-31 0001828161 srt:MaximumMember us-gaap:DevelopedTechnologyRightsMember 2024-03-31 0001828161 us-gaap:CommonStockMember 2024-01-01 2024-03-31 0001828161 us-gaap:EquipmentMember 2024-03-31 0001828161 2024-01-01 2024-03-31 0001828161 us-gaap:CommonStockMember 2024-03-31 0001828161 ftci:AlphaSteelMember 2023-07-28 2023-07-28 0001828161 us-gaap:RetainedEarningsMember 2024-03-31 0001828161 us-gaap:AdditionalPaidInCapitalMember 2023-12-31 0001828161 us-gaap:GeneralAndAdministrativeExpenseMember 2023-01-01 2023-03-31 0001828161 ftci:AlphaSteelMember 2024-01-01 2024-03-31 0001828161 us-gaap:LeaseholdImprovementsMember 2023-12-31 0001828161 ftci:PlcBarclaysBankMember us-gaap:LetterOfCreditMember 2024-03-31 0001828161 us-gaap:GeneralAndAdministrativeExpenseMember 2024-01-01 2024-03-31 0001828161 ftci:TreasuryStock1Member 2023-12-31 0001828161 srt:MinimumMember us-gaap:DevelopedTechnologyRightsMember 2024-03-31 0001828161 us-gaap:TechnologyEquipmentMember 2024-03-31 0001828161 us-gaap:RestrictedStockMember 2024-01-01 2024-03-31 0001828161 ftci:SouthLakeOneLlcMember 2022-02-01 2022-02-28 0001828161 us-gaap:SellingAndMarketingExpenseMember 2024-01-01 2024-03-31 0001828161 us-gaap:CommonStockMember 2023-03-31 0001828161 us-gaap:RevolvingCreditFacilityMember ftci:PlcBarclaysBankMember us-gaap:LetterOfCreditMember 2024-03-31 0001828161 us-gaap:PreferredStockMember 2022-12-31 0001828161 2023-12-22 2023-12-22 0001828161 us-gaap:RevolvingCreditFacilityMember ftci:PlcBarclaysBankMember us-gaap:LetterOfCreditMember 2021-04-30 0001828161 us-gaap:PreferredStockMember 2023-03-31 0001828161 us-gaap:RevolvingCreditFacilityMember ftci:PlcBarclaysBankMember us-gaap:LetterOfCreditMember 2024-01-01 2024-03-31 0001828161 us-gaap:AdditionalPaidInCapitalMember 2024-01-01 2024-03-31 0001828161 us-gaap:AdditionalPaidInCapitalMember 2023-03-31 0001828161 us-gaap:AdditionalPaidInCapitalMember 2022-12-31 0001828161 ftci:DayvLlcMember 2023-02-09 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-01-01 2024-03-31 0001828161 us-gaap:ServiceMember 2024-01-01 2024-03-31 0001828161 ftci:TreasuryStock1Member 2022-12-31 0001828161 us-gaap:RevolvingCreditFacilityMember ftci:PlcBarclaysBankMember 2024-01-01 2024-03-31 0001828161 us-gaap:CommonStockMember 2022-12-31 0001828161 ftci:MajorCustomersMember 2024-03-31 0001828161 us-gaap:CostOfSalesMember 2024-01-01 2024-03-31 0001828161 us-gaap:TechnologyEquipmentMember 2023-12-31 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-01-01 2023-03-31 0001828161 us-gaap:SoftwareDevelopmentMember 2024-03-31 0001828161 us-gaap:EquipmentMember 2023-12-31 0001828161 us-gaap:ServiceMember 2023-01-01 2023-03-31 0001828161 us-gaap:SellingAndMarketingExpenseMember 2023-01-01 2023-03-31 0001828161 ftci:AtmProgramMember 2023-01-01 2023-03-31 0001828161 ftci:AssessmentMember 2024-01-01 2024-03-31 0001828161 ftci:CbpAssessmentsMember 2024-01-01 2024-03-31 0001828161 srt:MinimumMember 2022-08-16 2022-08-16 0001828161 us-gaap:ToolsDiesAndMoldsMember 2024-03-31 0001828161 us-gaap:ProductMember 2023-01-01 2023-03-31 0001828161 us-gaap:PreferredStockMember 2023-12-31 0001828161 ftci:FernwehEngagedOperatorCompanyLlcMember us-gaap:RelatedPartyMember 2023-01-01 2023-03-31 0001828161 us-gaap:DevelopedTechnologyRightsMember 2024-03-31 0001828161 ftci:MajorCustomersMember 2024-01-01 2024-03-31 0001828161 us-gaap:RetainedEarningsMember 2022-12-31 0001828161 us-gaap:RetainedEarningsMember 2024-01-01 2024-03-31 0001828161 srt:MaximumMember 2022-08-16 2022-08-16 0001828161 us-gaap:PreferredStockMember 2024-03-31 0001828161 us-gaap:LeaseholdImprovementsMember 2024-03-31 0001828161 us-gaap:RestrictedStockMember 2023-01-01 2023-03-31 0001828161 us-gaap:RevolvingCreditFacilityMember ftci:PlcBarclaysBankMember 2024-03-31 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2022-12-31 0001828161 ftci:TreasuryStock1Member 2023-03-31 0001828161 us-gaap:ProductMember 2024-01-01 2024-03-31 0001828161 us-gaap:AdditionalPaidInCapitalMember 2024-03-31 0001828161 us-gaap:CommonStockMember 2023-01-01 2023-03-31 0001828161 us-gaap:EmployeeStockOptionMember 2024-01-01 2024-03-31 0001828161 2023-12-31 0001828161 ftci:TreasuryStock1Member 2024-03-31 0001828161 us-gaap:AdditionalPaidInCapitalMember 2023-01-01 2023-03-31 0001828161 us-gaap:RevolvingCreditFacilityMember 2024-01-01 2024-03-31 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-03-31 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2024-03-31 0001828161 srt:MinimumMember 2024-01-01 2024-03-31 0001828161 ftci:AtmProgramMember 2022-09-14 0001828161 2024-04-26 0001828161 ftci:AlphaSteelMember 2024-03-31 0001828161 us-gaap:RetainedEarningsMember 2023-03-31 0001828161 us-gaap:RetainedEarningsMember 2023-01-01 2023-03-31 0001828161 ftci:MajorCustomersMember us-gaap:SubsequentEventMember 2024-04-03 2024-04-03 0001828161 us-gaap:AccumulatedOtherComprehensiveIncomeMember 2023-12-31 0001828161 ftci:AlphaSteelMember 2023-12-31 0001828161 srt:MaximumMember 2024-03-31 0001828161 us-gaap:ResearchAndDevelopmentExpenseMember 2024-01-01 2024-03-31 0001828161 us-gaap:ResearchAndDevelopmentExpenseMember 2023-01-01 2023-03-31 0001828161 us-gaap:DevelopedTechnologyRightsMember 2023-12-31 0001828161 ftci:TaihuaNewEnergyMember 2023-02-09 0001828161 us-gaap:EmployeeStockOptionMember 2023-01-01 2023-03-31 0001828161 us-gaap:CommonStockMember 2023-12-31 0001828161 2023-01-01 2023-03-31 0001828161 ftci:AlphaSteelMember 2023-02-09 0001828161 2024-03-31 0001828161 us-gaap:RevolvingCreditFacilityMember 2023-01-01 2023-03-31 0001828161 us-gaap:CostOfSalesMember 2023-01-01 2023-03-31 0001828161 2022-12-31 0001828161 srt:MinimumMember 2024-03-31 0001828161 srt:MinimumMember 2023-12-22 0001828161 us-gaap:RetainedEarningsMember 2023-12-31 0001828161 srt:MaximumMember ftci:AlphaSteelMember 2024-01-01 2024-03-31 0001828161 2023-03-31 0001828161 srt:MaximumMember 2024-01-01 2024-03-31 0001828161 us-gaap:ToolsDiesAndMoldsMember 2023-12-31 0001828161 ftci:AtmProgramMember 2024-03-31 ftci:Days pure shares iso4217:USD iso4217:USD shares 0001828161 false --12-31 Q1 P5Y P1Y http://fasb.org/us-gaap/2023#OtherLiabilitiesCurrent http://fasb.org/us-gaap/2023#OtherLiabilitiesCurrent 10-Q true 2024-03-31 2024 false 001-40350 FTC SOLAR, INC. DE 81-4816270 9020 N Capital of Texas Hwy Suite I-260 Austin TX 78759 737 787-7906 Common Stock, $0.0001 par value FTCI NASDAQ Yes Yes Accelerated Filer false true false false 125979165 14041000 25235000 1896000 0 66379000 65279000 3844000 3905000 14069000 14089000 100229000 108508000 1637000 1819000 1994000 1823000 399000 542000 7213000 7353000 1010000 240000 2548000 2785000 115030000 123070000 12059000 7979000 29690000 34848000 27000 88000 4897000 3612000 7859000 8138000 54532000 54665000 934000 1124000 4406000 4810000 59872000 60599000 0.0001 0.0001 10000000 10000000 0 0 0 0 0.0001 0.0001 850000000 850000000 125952253 125952253 125445325 125445325 13000 13000 10762566 10762566 0 0 363525000 361886000 -474000 -293000 -307906000 -299135000 55158000 62471000 115030000 123070000 10905000 32579000 1682000 8315000 12587000 40894000 12367000 31767000 2328000 7092000 14695000 38859000 -2108000 2035000 1439000 1922000 2388000 1711000 6567000 10799000 10394000 14432000 -12502000 -12397000 -136000 -58000 4085000 898000 36000 -74000 -265000 0 -8782000 -11631000 -11000 131000 -8771000 -11762000 -181000 -5000 -8952000 -11767000 -0.07 -0.07 -0.11 -0.11 125569375 125569375 106791198 106791198 0 0 125445325 13000 10762566 0 361886000 -293000 -299135000 62471000 506928 1639000 1639000 -8771000 -8771000 -181000 -181000 0 0 125952253 13000 10762566 0 363525000 -474000 -307906000 55158000 0 0 105032588 11000 10762566 0 315345000 -61000 -248845000 66450000 1498987 2775000 2775000 265125 51000 51000 797396 2000000 2000000 2683000 6292000 6292000 32000 32000 2472000 2472000 -11762000 -11762000 -5000 -5000 0 0 110277096 11000 10762566 0 328903000 -66000 -260607000 68241000 -8771000 -11762000 1639000 4890000 404000 334000 177000 177000 177000 1261000 -265000 0 4085000 898000 838000 1543000 -98000 54000 670000 0 225000 216000 -309000 -229000 1770000 11412000 116000 -5078000 -45000 -817000 226000 882000 3989000 7882000 -6200000 -616000 1285000 -2677000 -523000 -2212000 287000 230000 -11857000 -8316000 432000 28000 1035000 900000 4085000 898000 2618000 -30000 0 5450000 0 32000 0 51000 0 5469000 -59000 -15000 -9298000 -2892000 25235000 44385000 15937000 41493000 175000 32000 0 2000000 0 1417000 140000 129000 58000 6000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">1. Description of business</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">FTC Solar, Inc. (the “Company”, “we”, “our”, or “us”) was founded in 2017 and is incorporated in the state of Delaware. In April 2021, we completed an initial public offering ("IPO"), and our common stock began trading on the Nasdaq Global Market under the symbol “FTCI”.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We are a global provider of solar tracker systems, supported by proprietary software and value-added engineering services. Solar tracker systems move solar panels throughout the day to maintain an optimal orientation relative to the sun, thereby increasing the amount of solar energy produced at a solar installation. Our original two-panel in-portrait solar tracker system is currently marketed under the Voyager brand name (“Voyager”) and our one module-in-portrait ("1P") solar tracker system, which became certified in 2023, is marketed under the Pioneer brand name ("Pioneer"). We also have a mounting solution to support the installation and use of U.S.-manufactured thin-film modules by project owners. Our primary software offerings include SUNPATH which is intended to help customers optimize solar tracking for increased energy production, our SUNOPS real-time operations management platform and our web-based ATLAS portfolio management software. In addition, we have a team of renewable energy professionals available to assist our U.S. and worldwide clients in site layout, structural design, pile testing and other needs across the solar project development and construction cycle. The Company is headquartered in Austin, Texas, and has international subsidiaries in Australia, China, India, South Africa and Spain.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We are an emerging growth company, as defined in the Jumpstart Our Business Startups (JOBS) Act. Under the JOBS Act, we elected to use the allowed extended transition period to delay adopting new or revised accounting standards until such time as those standards apply to private companies.</span></p> <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2. Summary of significant accounting policies</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Basis of presentation and principles of consolidation</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries and have been prepared in accordance with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial statements and pursuant to Form 10-Q and Article 10 of Regulation S-X. In the opinion of management, all adjustments of a normal recurring nature have been made that are considered necessary for a fair statement of our financial position as of March 31, 2024, and December 31, 2023, our results of operations for the three months ended March 31, 2024 and 2023, and our cash flows for the three months ended March 31, 2024 and 2023. The condensed consolidated balance sheet as of December 31, 2023 has been derived from the Company’s audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America. Operating results for the three months ended March 31, 2024 are not necessarily indicative of the results that may be expected for the year ending December 31, 2024. Intercompany balances and transactions have been eliminated in consolidation.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certain information and disclosures normally included in the notes to annual financial statements prepared in accordance with U.S. GAAP have been omitted from these interim financial statements pursuant to the rules and regulations of the Securities and Exchange Commission (the “SEC”). Therefore, these unaudited condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and related notes included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2023 (our "2023 Annual Report").</span></p></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We currently operate in one business segment, the manufacturing and servicing of solar tracker systems</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Liquidity</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We have incurred cumulative losses since inception and have a history of cash outflows from operations. As of March 31, 2024, we had </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">14.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of cash on hand, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">45.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of working capital and approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">64.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of remaining capacity available for future sales of our common stock under our ATM program as defined and described further in Note 4 below. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">There </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">can be no assurance that we will be able to sell any additional shares of our common stock under the ATM program and no assurance regarding the price at</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">which </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">we will be able to sell such shares, and any sales of our common stock under the ATM program may be at prices that result in additional dilution to our existing stockholders. On December 22, 2023, we received notification from The Nasdaq Stock Market LLC (“Nasdaq”) that we were not in compliance with the requirement to maintain a minimum closing bid price of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> per share, as set forth in Nasdaq Listing Rule 5450(a)(1), because the closing bid price of the Company’s common stock was below $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> per share for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> consecutive business days. The notification does not impact the listing of our common stock on the Nasdaq Global Market at this time.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In accordance with Nasdaq Listing Rule 5810(c)(3)(A), we have a period of 180 calendar days from the date of notification, or until June 19, 2024, to regain compliance with the minimum bid price requirement. During this period, our common stock will continue to trade on the Nasdaq Global Market. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">If at any time before June 19, 2024 the bid price of our common stock closes at or above $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> per share for a minimum of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">ten</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> consecutive business days, Nasdaq will provide written notification that we have achieved compliance with this minimum bid price requirement.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></span><span style="font-size:10pt;font-family:Times New Roman;"></span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In the event we do not regain compliance by June 19, 2024, we may be eligible for an additional 180 calendar day compliance period to demonstrate compliance with the minimum bid price requirement. To qualify for the additional 180-day period, we may be required to meet the continued listing requirements for market value of publicly held shares and all other initial listing standards (with the exception of the bid price requirement) and transfer our listing to the Nasdaq Capital Market. In addition, we will need to provide written notice to Nasdaq of our intention to cure the deficiency during the second compliance period by effecting a reverse stock split, if necessary. If we do not qualify for the second compliance period or fail to regain compliance during the second 180-day period, then Nasdaq will notify us that our common stock is subject to delisting.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As of March 31, 2024, we were not in compliance with the minimum liquidity covenant in our existing Senior Secured Revolving Credit Facility (the "Credit Facility") which prevented us from borrowing under the Credit Facility prior to its termination on April 30, 2024.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Also, as of March 31, 2024, we had a material contractual obligation that could require us to make additional capital contributions of up to </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to Alpha Steel, as described further in Note 3, "Equity method investment".</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The most notable incentive program impacting our U.S. business has historically been the investment tax credit ("ITC") </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">50</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" below.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Similar to previous periods, we continue to evaluate our opportunities in 2024 to address existing market challenges, our cost structure and our historical use of cash. Further, in 2023, we introduced a new mounting solution to support the installation and use of U.S.-manufactured thin-film modules, Pioneer, our 1P solar tracker solution became certified, and we introduced SUNOPS, a cloud-based, tracker agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. Additionally, we have seen improvements in the logistics markets and easing of supply chain constraints since 2022. These factors contributed to us having positive gross profit during each quarter in 2023, a first since our IPO in April 2021.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In accordance with Accounting Standards Codification ("ASC") 205-40, Going Concern, we have evaluated whether there are conditions and events, considered in the aggregate, which raise substantial doubt about our ability to continue as a going concern within one year after the date our condensed consolidated financial statements are issued.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Management believes that our existing cash on hand, including cash received in April 2024 as a result of our agreement with a major customer as discussed further in Note 18, "Subsequent events" below, as well as the continuing impact of certain of the actions described above and our expectations of (i) improved market conditions, (ii) the expected timing of customer project activity, including activity related to certain large project awards received in 2023, and (iii) positive results in recent periods from our efforts to increase our direct product margins, will allow us to grow profitably and generate positive cash flow from operations during the next twelve months in amounts that will be sufficient, along with our other available resources such as our existing working capital and, if conditions become more conducive, the remaining capacity available for future sales of our common stock under our ATM program, to fund our operations for at least one year from the date of issuance of the condensed consolidated financial statements.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">While there are already many underlying drivers of growth in the solar industry, the expected positive impact on demand for our products, or the timing of construction activity by existing customers and solar project developers, could take longer than expected to occur. In addition, domestic and international market conditions could deteriorate significantly from what we currently expect, and regulatory and international trade policies could become more stringent as a result of (i) findings from an ongoing investigation by the U.S. Department of Commerce (the Solar Circumvention Investigation") in response to a petition by Auxin Solar, Inc. of claims related to alleged circumvention of U.S. antidumping and countervailing duties ("AD/CVD") by solar manufacturers in certain Southeast Asian countries, (ii) enforcement of the Uyghur Forced Labor Prevention Act ("UFLPA") passed by the U.S. Congress and signed into law by President Biden on December 23, 2021, by U.S. Customs and Border Protection ("CBP'), and (iii) other factors, which may result in a need for us to issue additional debt or obtain new equity financing to adequately fund our existing operations beyond the next twelve months. We continue to actively explore options to obtain additional sources of capital through the issuance of new debt, asset financing or other potential measures for our longer-term needs. However, we may be unable to obtain any desired additional financing on terms favorable to us, or at all, depending on market and other conditions, which could result in curtailment of our current operations and our ability to further invest in our products and new technology. The ability to raise additional financing depends on numerous factors, some of which that are outside of our control, including macroeconomic factors such as the impact of inflation, the level of interest rates, supply chain or other effects from the ongoing conflicts in the Ukraine and the Middle East, general market conditions, the health of financial institutions (including recent bankruptcies and financial difficulties involving certain regional banks and related impacts that have occurred and continue to occur in the banking industry), investors' and lenders' assessments of our prospects and the prospects of the solar industry in general and the ability of our common stock to continue to trade in active markets.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Use of estimates</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported revenue and expenses during the period. Estimates are used for calculating the measure of progress of our solar tracker projects and deriving the standalone selling prices of the individual performance obligations when determining amounts to recognize for revenue, estimating allowances for credit losses and slow-moving and obsolete inventory, determining useful lives of long-lived assets and the estimated fair value of those assets for impairment assessments, and estimating the fair value of investments, stock compensation awards, warranty liabilities and federal and state taxes, including tax valuation allowances, as well as other contingencies. We base our estimates on historical experience and anticipated results, trends, and various other assumptions that we believe are reasonable under the circumstances, including assumptions as to future events. Actual results could differ from those estimates due to risks and uncertainties.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:1pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Concentration of credit risk</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Financial instruments that potentially subject the Company to concentrations of credit risk are primarily cash and accounts receivable.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We regularly maintain cash balances with various financial institutions that exceed federally insured amounts, but we have experienced no losses associated with these amounts to date. We also took action in early 2023 to reallocate cash balances between different financial institutions based on our assessment as to the financial health of certain institutions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We extend credit to customers in the normal course of business, often without requiring collateral. We also perform credit analyses and monitor the financial health of our customers to reduce credit risk.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company’s accounts receivables are derived from revenue earned from customers primarily located in the U.S. and Australia. No countries other than the U.S. and Australia accou</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">nted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">10</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">or more of our revenue. Most of our customers are project developers, solar asset owners and engineering, procurement and construction (“EPC”) contractors that design and build solar energy projects. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We typically rely on a small number of customers that account for a large portion of our revenue each period and our outstanding receivables at each period end.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Cash and cash equivalents</span></p></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents. Certain of our cash equivalents include deposits in money market funds that invest primarily in short-term securities issued or guaranteed by the U.S. government or its agencies or instrumentalities and contain no restrictions on immediate redemption. These deposits totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">9.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at March 31, 2024 and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Interest earned on cash equivalents is included in interest income, which is reported net of interest expense in our condensed consolidated statements of comprehensive loss</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Restricted cash</span></p></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Cash balances that are legally, contractually or otherwise restricted as to withdrawal or usage are considered restricted cash</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p id="accounts_receivable_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable, net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Trade receivables are recorded at invoiced amounts, net of allowances for credit losses, and do not bear interest. We generally do not require collateral from our customers; however, in certain circumstances, we may require letters of credit, other collateral, additional guarantees or advance payments.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The allowance for credit losses is based on the lifetime expected credit loss of our customer accounts. To assess the lifetime expected credit loss, we utilize a loss rate method that takes into consideration historical experience and certain other factors, as appropriate, such as credit quality and current economic or other conditions that may affect a customer's ability to pay. Provisions for credit losses are included as a component of our selling and marketing expenses.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Receivables arising from revenue recognized in excess of billings represents our unconditional right to consideration before customers are invoiced due to the level of progress obtained as of period end on our contracts to procure and deliver tracker systems and related equipment. Further information may be found below in our </span><a href="#revenue_policy"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">revenue recognition policy</span></a><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories, net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories are stated at the lower of cost or net realizable value, with costs computed on a first-in, first-out basis. The Company periodically reviews its inventories for excess and obsolete items and adjusts carrying costs to estimated net realizable values when they are determined to be less than cost.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p id="impairment_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Impairment</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We review our long-lived assets that are held for use for impairment whenever events or changes in circumstances indicate that the carrying amount of the asset may not be recoverable or that its useful life may be shorter than previously expected. If such impairment indicators are present or other factors exist that indicate the carrying amount of the asset may not be recoverable, we determine whether an impairment has occurred through the use of an undiscounted cash flow analysis of the asset at the lowest level for which identifiable cash flows exist. If an impairment has occurred, we recognize a loss for the difference between the carrying amount and the fair value of the asset, which in most cases is estimated based upon Level 3 unobservable inputs. If the asset is determined to have a remaining useful life shorter than previously expected, an adjustment for the shorter remaining life will be made for purposes of recognizing future depreciation expense. Assets are classified as held for sale when we have a plan, approved by the appropriate levels of management, for disposal of such assets, as well as other considerations, and those assets are stated at the lower of carrying value or estimated fair value less estimated costs to sell.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Intangible assets, net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Intangible assets are recorded at fair value when acquired in connection with a business combination and consist of developed technology in the form of software tools, licenses, and intellectual property, which are amortized over the period of their estimated useful lives, generally </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2.5</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> - </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3.0 </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">years, using the straight-line method. Costs incurred to renew or extend the term of a recognized intangible asset, if any, are expensed as incurred. We evaluate intangible assets for impairment using the method described above under "Impairment".</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p id="goodwill_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Goodwill</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We recognize goodwill as the excess of the purchase price over the estimated fair value of the identified assets and liabilities acquired in a business combination accounted for using the acquisition method. Goodwill is not amortized but is subject to a periodic assessment for impairment at least annually, or whenever events and circumstances indicate an impairment may exist. Our assessments may include qualitative factors such as current or expected industry and market conditions, our overall financial performance, share price trends, market capitalization and other company-specific events.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We operate in one segment, being the consolidated entity, which we have also determined is the reporting unit for goodwill impairment.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">No</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> impairment</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of goodwill was recognized as of March 31, 2024 or 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Equity method investment</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We use the equity method of accounting for investments in which we have the ability to exercise significant influence, but not control, over operating and financial policies of the investee. Our proportionate share of the net income or loss of these investees is included in our condensed consolidated statements of comprehensive loss. Judgment regarding the level of influence over each equity method investment includes considering key factors such as our ownership interest, legal form of the investee, representation on the board of directors or managers, participation in policy-making decisions and material intra-entity transactions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We account for distributions received from equity method investees under the “nature of the distribution” approach based on the nature of the activity or activities of the investee that generated the distribution as either a return on investment (classified as cash inflows from operating activities) or a return of investment (classified as cash inflows from investing activities).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We evaluate equity method investments for impairment whenever events or changes in circumstances indicate that the carrying amount of the investment might not be recoverable. Factors considered by the Company when reviewing an equity method investment for impairment include the length of time and the extent to which the fair value of the equity method investment has been less than its cost, the investee’s financial condition and near-term prospects and the intent and ability to hold the investment for a period of time sufficient to allow for anticipated recovery. An impairment that is other-than temporary is recognized in the period identified.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We made an accounting policy election that, upon the sale of our equity method investments, we will recognize contractual contingent gains arising from earnout provisions and project escrow releases when such amounts are realizable in periods subsequent to the disposal date.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p id="warranty_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Warranty</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Typically, the sale of solar tracker projects includes parts warranties to customers as part of the overall price of the product. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We provide standard assurance type warranties for our products for periods generally ranging from </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_f403bf63-1344-412b-9ebf-1b6cd4396447;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">five</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ten years</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. We also accrue for costs relating to remediation efforts involving product issues we believe require correction. We record a provision for estimated warranty and remediation expenses in cost of sales, net of amounts recoverable from manufacturers under their warranty obligations to us. When historical claims information relating to our equipment is not sufficient, we will base our estimates on industry studies involving the nature and frequency of product failure rates for similar parts used by our competitors, as well as other related businesses. We do not maintain general or unspecified reserves; all warranty reserves are related to specific projects. All actual or estimated material costs incurred for warranty or remediation services in subsequent periods are charged to those established reserves.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">While we periodically monitor our warranty activities and claims, if actual costs incurred were to be different from our estimates, we would recognize adjustments to our warranty reserves in the period in which those differences arise or are identified.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p id="stock_based_compensation_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Stock-based compensation</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We recognize compensation expense for all share-based payment awards made, including stock options and restricted stock units ("RSUs"), based on the estimated fair value of the award on the grant date. We calculate the fair value of stock options using the Black-Scholes option pricing model for awards with service-based vesting or through use of a lattice model or a Monte Carlo simulation for stock option and RSU awards with market conditions. The fair value of RSUs with service or performance-based vesting is based on the estimated fair value of the Company's common stock on the date of grant. We consider the closing price of our stock, as reported on the Nasdaq Global Market, to be the fair value of our stock on the grant date.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Forfeitures are accounted for as they occur. For service-based awards, stock-based compensation is recognized using the straight-line attribution approach over the requisite service period. For performance-based awards, stock-based compensation is recognized based on graded vesting over the requisite service period when the performance condition is probable of being achieved. Stock compensation expense for market-based awards is recognized over the derived service period determined in the valuation model, inclusive of any vesting conditions.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p id="revenue_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Revenue recognition</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Product revenue is derived from the sale of solar tracker systems and customized components for those systems, individual part sales for certain specific transactions and the sale of term-based software licenses. Term-based licensed software is deployed on the customers’ own servers and has significant standalone functionality.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Service revenue includes revenue from shipping and handling services, engineering consulting and pile testing services, our subscription-based enterprise licensing model and maintenance and support services in connection with the term-based software licenses.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> Our subscription-based enterprise licensing model typically has contract terms ranging from </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_243672f3-dbaf-4062-a997-dfe9c99cf631;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">one</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">two years</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and consists of subscription fees from the licensing of subscription services. Our hosted on-demand service arrangements do not provide customers with the right to take possession of the software supporting the hosted services. Support services include ongoing security updates, upgrades, bug fixes, and maintenance.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We recognize revenue when promised goods or services are transferred to customers in an amount that reflects the consideration to which we expect to be entitled to in exchange for those goods or services by following a five-step process: (1) identify the contract with a customer, (2) identify the performance obligations in the contract, (3) determine the transaction price, (4) allocate the transaction price to the performance obligations in the contract, and (5) recognize revenue when or as the Company satisfies a performance obligation, as further described below.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Identify the contract with a customer:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> A contract with a customer exists when (i) the Company enters into an enforceable contract with a customer that defines each party’s rights regarding the products and services to be transferred and identifies the payment terms related to these products and services, (ii) the contract has commercial substance, and (iii) the Company determines that collection of substantially all consideration for products and services that are transferred is probable based on the customer’s intent and ability to pay the promised consideration. In assessing the recognition of revenue, we also evaluate whether two or more contracts should be combined and accounted for as one contract and if the combined or single contract should be accounted for as multiple performance obligations which could change the amount of revenue and profit (loss) recorded in a period. Change orders may include changes in specifications or design, manner of performance, equipment, materials, scope of work, and/or the period of completion of the project. We analyze change orders to determine if they should be accounted for as a modification to an existing contract or a new stand-alone contract.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Contracts we enter into with our customers for sale of solar tracker systems are generally under two different types of arrangements: (1) purchase agreements and equipment supply contracts (“Purchase Agreements”), and (2) sale of individual parts for those systems.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Change orders from our customers are generally modifications to existing contracts and are included in the total estimated contract revenue when it is probable that the change order will result in additional value that can be reliably estimated and realized.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Identify the performance obligations in the contract: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We enter into contracts that can include various combinations of products and services, which are either capable of being distinct and accounted for as separate performance obligations or as one performance obligation since the majority of tasks and services are part of a single project or capability. However, determining whether products or services are considered distinct performance obligations that should be accounted for separately versus together may sometimes require significant judgment.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Purchase Agreements typically include two performance obligations: 1) our solar tracker systems or customized components of those systems, and 2) shipping and handling services. The deliverables included as part of our solar tracker systems are predominantly accounted for as one performance obligation, as these deliverables are part of a combined promise to deliver a project.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The revenue for shipping and handling services will be recognized over time based on progress in meeting shipping terms of the arrangements, as this faithfully depicts the Company’s performance in transferring control. Revenue for stand-alone engineering consulting and pile testing services is recognized at a point in time upon completion of the services performed.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Sales of individual parts of our solar tracker systems for certain specific transactions include multiple performance obligations consisting of individual parts of those systems. Revenue is recognized for parts sales at a point in time when the obligations under the terms of the contract with our customer are satisfied. Generally, this occurs with the transfer of control of the asset, which is in line with shipping terms.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Determine the transaction price: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The transaction price is determined based on the consideration to which we will be entitled in exchange for transferring services to the customer. Such amounts are typically stated in the customer contract, and to the extent that we identify variable consideration, we will estimate the variable consideration at the onset of the arrangement as long as it is probable that a significant reversal in the amount of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is subsequently resolved. The majority of our contracts do not contain variable consideration provisions as a continuation of the original contract. None of our contracts contain a significant financing component. Taxes collected from customers and remitted to governmental authorities are not included in revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Allocate the transaction price to performance obligations in the contract: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Once we have determined the transaction price, we allocate the total transaction price to each performance obligation in a manner depicting the amount of consideration to which we expect to be entitled in exchange for transferring the good(s) or service(s) to the customer. We allocate the transaction price to each performance obligation identified in the contract on a relative standalone selling price basis.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We use the expected cost-plus margin approach based on hardware, labor, and related overhead cost to estimate the standalone selling price of our solar tracker systems, customized components of those systems, and individual parts for certain specific transactions. We also use the expected cost-plus margin approach based on expected third-party shipping and transportation costs to estimate the standalone selling price of our shipping, handling and logistics performance obligations. We use the adjusted market assessment approach for all other performance obligations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Recognize revenue when or as the Company satisfies a performance obligation: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For each performance obligation identified, we determine at contract inception whether we satisfy the performance obligation over time or at a point in time. The performance obligations in the contracts for our solar tracker systems and customized components of those systems are satisfied over time as work progresses, utilizing an input measure of progress determined by cost-to-cost measures on these projects as this faithfully depicts our performance in transferring control. Additionally, our performance does not create an asset with an alternative use, due to the highly customized nature of the product, and we have an enforceable right to payment for performance completed to date. Our performance obligations for individual part sales for certain specific transactions are recognized at a point in time as and when control transfers based on the Incoterms for the contract. Our performance obligations for engineering consulting and pile testing services are recognized at a point in time upon completion of the services. Our performance obligations for term-based software licenses are recognized at a point in time as and when control transfers, either upon delivery to the customer or the software license start date, whichever is later. Our performance obligations for shipping and handling services are satisfied over time as the services are delivered over the term of the contract. We recognize revenue for subscription and other services on a straight-line basis over the contract period. With regard to support revenue, a time-elapsed method is used to measure progress because we transfer control evenly over the contractual period. Accordingly, the fixed consideration related to support revenue is generally recognized on a straight-line basis over the contract term.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Contract assets and liabilities: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The timing of revenue recognition, billing, and cash collection results in the recognition of accounts receivable, unbilled receivables for revenue recognized in excess of billings, and deferred revenue in the condensed consolidated balance sheets. We have elected to use the practical expedient of expensing incremental costs of obtaining a contract as incurred since the majority of the performance obligations in our contracts are satisfied in less than one year. We may receive advances or deposits from our customers before revenue is recognized, resulting in contract liabilities, which are reflected as “deferred revenue” in our condensed consolidated balance sheets. Customer deposits are short term as the related performance obligations are typically fulfilled within 12 months. Changes in deferred revenue relate to fluctuations in the timing of customer deposits and completion of performance obligations. Revenue recognized during the three months ended March 31, 2024 and 2023, from amounts included in deferred revenue at December 31, 2023 and December 31, 2022, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">7.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Cost of revenue consists primarily of costs related to raw materials, equipment manufacturing activities, freight and delivery, product warranty, remediation and personnel costs (salaries, bonuses, benefits, and stock-based compensation). Personnel costs in cost of revenue include both direct labor costs, as well as costs attributable to any individuals whose activities relate to the procurement, installment and delivery of the finished product and services.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> Cost of revenue owed but not yet paid is recorded as accrued cost of revenue in the accompanying condensed consolidated financial statements. Deferred cost of revenue results from the timing differences between the costs incurred in advance of the satisfaction of all revenue recognition criteria consistent with our revenue recognition policy.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Recent accounting and regulatory pronouncements not yet adopted</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In November 2023, the Financial Accounting Standards Board ("FASB") issued ASU No. 2023-07 - Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures ("ASU 2023-07"), which will become effective for us for our year end 2024 financial reporting and our interim reporting beginning January 1, 2025. ASU 2023-07 requires public companies to disclose significant segment expenses and other segment items on an annual and interim basis and will require interim disclosures about a reportable segment's profit or loss and assets that are currently required annually. As noted above, we operate in one segment. We are currently evaluating the impact of ASU 2023-07 on our existing disclosures. ASU 2023-07 will be applied retrospectively to all periods when presented in our consolidated financial statements for the year ending December 31, 2024.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In December 2023, the FASB issued ASU No. 2023-09 - Income Taxes (Topic 740): Improvements to Income Tax Disclosures ("ASU 2023-09"). ASU 2023-09 requires companies to disclose (i) additional categories of information about federal, state and foreign income taxes above a quantitative threshold in their rate reconciliation table and (ii) income taxes paid, net of refunds, disaggregated by federal, state and foreign taxes for annual periods, as well as other disclosure changes. As an emerging growth company, we are not required to adopt ASU 2023-09 prior to 2026, although earlier adoption is permitted. We are currently evaluating the impact of ASU 2023-09 on our existing income tax disclosures.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In March 2024, the U.S. Securities and Exchange Commission ("SEC") adopted the final rule under SEC Release No. 33-11275, The Enhancement and Standardization of Climate-Related Disclosures for Investors. This rule would require registrants to disclose certain climate-related information in registration statements and annual reports. In April 2024, the SEC issued a stay of the final rules pending a judicial review of the validity of the rules by the Eighth Circuit Court of Appeals. We are currently evaluating the final rule to determine its impact on our disclosures.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Other standards or regulatory requirements that have been issued but not yet adopted as of March 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, are either not applicable to us or are not expected to have any material impact upon adoption.</span></p></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Reclassifications</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certain prior year amounts have been reclassified to conform to the current year presentation. There was no impact on our financial condition or results of operations as a result of the reclassification.</span></p></div> <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Basis of presentation and principles of consolidation</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The accompanying unaudited condensed consolidated financial statements include the results of the Company and its wholly owned subsidiaries and have been prepared in accordance with accounting principles generally accepted in the United States of America (“U.S. GAAP”) for interim financial statements and pursuant to Form 10-Q and Article 10 of Regulation S-X. In the opinion of management, all adjustments of a normal recurring nature have been made that are considered necessary for a fair statement of our financial position as of March 31, 2024, and December 31, 2023, our results of operations for the three months ended March 31, 2024 and 2023, and our cash flows for the three months ended March 31, 2024 and 2023. The condensed consolidated balance sheet as of December 31, 2023 has been derived from the Company’s audited consolidated financial statements but does not include all disclosures required by accounting principles generally accepted in the United States of America. Operating results for the three months ended March 31, 2024 are not necessarily indicative of the results that may be expected for the year ending December 31, 2024. Intercompany balances and transactions have been eliminated in consolidation.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certain information and disclosures normally included in the notes to annual financial statements prepared in accordance with U.S. GAAP have been omitted from these interim financial statements pursuant to the rules and regulations of the Securities and Exchange Commission (the “SEC”). Therefore, these unaudited condensed consolidated financial statements should be read in conjunction with the consolidated financial statements and related notes included in the Company’s Annual Report on Form 10-K for the year ended December 31, 2023 (our "2023 Annual Report").</span></p><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We currently operate in one business segment, the manufacturing and servicing of solar tracker systems</span> <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Liquidity</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We have incurred cumulative losses since inception and have a history of cash outflows from operations. As of March 31, 2024, we had </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">14.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of cash on hand, </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">45.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of working capital and approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">64.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of remaining capacity available for future sales of our common stock under our ATM program as defined and described further in Note 4 below. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">There </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">can be no assurance that we will be able to sell any additional shares of our common stock under the ATM program and no assurance regarding the price at</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">which </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">we will be able to sell such shares, and any sales of our common stock under the ATM program may be at prices that result in additional dilution to our existing stockholders. On December 22, 2023, we received notification from The Nasdaq Stock Market LLC (“Nasdaq”) that we were not in compliance with the requirement to maintain a minimum closing bid price of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> per share, as set forth in Nasdaq Listing Rule 5450(a)(1), because the closing bid price of the Company’s common stock was below $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> per share for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> consecutive business days. The notification does not impact the listing of our common stock on the Nasdaq Global Market at this time.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In accordance with Nasdaq Listing Rule 5810(c)(3)(A), we have a period of 180 calendar days from the date of notification, or until June 19, 2024, to regain compliance with the minimum bid price requirement. During this period, our common stock will continue to trade on the Nasdaq Global Market. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">If at any time before June 19, 2024 the bid price of our common stock closes at or above $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.00</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> per share for a minimum of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">ten</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> consecutive business days, Nasdaq will provide written notification that we have achieved compliance with this minimum bid price requirement.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></span><span style="font-size:10pt;font-family:Times New Roman;"></span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In the event we do not regain compliance by June 19, 2024, we may be eligible for an additional 180 calendar day compliance period to demonstrate compliance with the minimum bid price requirement. To qualify for the additional 180-day period, we may be required to meet the continued listing requirements for market value of publicly held shares and all other initial listing standards (with the exception of the bid price requirement) and transfer our listing to the Nasdaq Capital Market. In addition, we will need to provide written notice to Nasdaq of our intention to cure the deficiency during the second compliance period by effecting a reverse stock split, if necessary. If we do not qualify for the second compliance period or fail to regain compliance during the second 180-day period, then Nasdaq will notify us that our common stock is subject to delisting.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">As of March 31, 2024, we were not in compliance with the minimum liquidity covenant in our existing Senior Secured Revolving Credit Facility (the "Credit Facility") which prevented us from borrowing under the Credit Facility prior to its termination on April 30, 2024.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Also, as of March 31, 2024, we had a material contractual obligation that could require us to make additional capital contributions of up to </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to Alpha Steel, as described further in Note 3, "Equity method investment".</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The most notable incentive program impacting our U.S. business has historically been the investment tax credit ("ITC") </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">for solar energy projects, which allows taxpayers to offset their U.S. federal income tax liability by a certain percentage of their cost basis in solar energy systems placed in service for commercial use. The Inflation Reduction Act of 2022, passed by the U.S. Congress and signed into law by President Biden on August 16, 2022, expanded and extended the tax credits and other tax benefits available to solar energy projects and the solar energy supply chain. ITCs have been extended for such projects through at least 2032 and, depending on the location of a particular project and its ability to satisfy certain labor and domestic content requirements, the ITC percentage can range between </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">30</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% and </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">50</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%. U.S. manufacturers of specific solar components are now eligible to claim production tax credits as an alternative to the ITC. Implementing regulations for this law are, in certain cases, still being finalized and the impact of these regulations continue to be evaluated by developers of new solar projects and manufacturers of solar components. Our investment in and commitments made to Alpha Steel will allow us to obtain certain benefits as a result of this new production tax credit program.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We have taken steps to expand and diversify our manufacturing partnerships and have adjusted our modes of transportation to mitigate the impact of headwinds that might arise in the global supply chain and logistics markets. As an example, we modified our ocean freight from previously using charter shipments to now using containerized shipments as costs in the container market began to decrease starting in 2022. We continue to monitor the logistics markets and will continue to evaluate our use of various modes of transportation when warranted to optimize our transportation costs. Additionally, from February 2022 to September 2023, we utilized a related-party consulting firm to support us in making improvements to our processes and performance in various areas, including design, sourcing, logistics, pricing, software and our distributed generation business. For further information regarding this consulting firm, see Note 16, "Related party transactions" below.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Similar to previous periods, we continue to evaluate our opportunities in 2024 to address existing market challenges, our cost structure and our historical use of cash. Further, in 2023, we introduced a new mounting solution to support the installation and use of U.S.-manufactured thin-film modules, Pioneer, our 1P solar tracker solution became certified, and we introduced SUNOPS, a cloud-based, tracker agnostic solar asset monitoring solution allowing asset owners and managers to evaluate the operation and performance of their solar deployments. Additionally, we have seen improvements in the logistics markets and easing of supply chain constraints since 2022. These factors contributed to us having positive gross profit during each quarter in 2023, a first since our IPO in April 2021.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In accordance with Accounting Standards Codification ("ASC") 205-40, Going Concern, we have evaluated whether there are conditions and events, considered in the aggregate, which raise substantial doubt about our ability to continue as a going concern within one year after the date our condensed consolidated financial statements are issued.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Management believes that our existing cash on hand, including cash received in April 2024 as a result of our agreement with a major customer as discussed further in Note 18, "Subsequent events" below, as well as the continuing impact of certain of the actions described above and our expectations of (i) improved market conditions, (ii) the expected timing of customer project activity, including activity related to certain large project awards received in 2023, and (iii) positive results in recent periods from our efforts to increase our direct product margins, will allow us to grow profitably and generate positive cash flow from operations during the next twelve months in amounts that will be sufficient, along with our other available resources such as our existing working capital and, if conditions become more conducive, the remaining capacity available for future sales of our common stock under our ATM program, to fund our operations for at least one year from the date of issuance of the condensed consolidated financial statements.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">While there are already many underlying drivers of growth in the solar industry, the expected positive impact on demand for our products, or the timing of construction activity by existing customers and solar project developers, could take longer than expected to occur. In addition, domestic and international market conditions could deteriorate significantly from what we currently expect, and regulatory and international trade policies could become more stringent as a result of (i) findings from an ongoing investigation by the U.S. Department of Commerce (the Solar Circumvention Investigation") in response to a petition by Auxin Solar, Inc. of claims related to alleged circumvention of U.S. antidumping and countervailing duties ("AD/CVD") by solar manufacturers in certain Southeast Asian countries, (ii) enforcement of the Uyghur Forced Labor Prevention Act ("UFLPA") passed by the U.S. Congress and signed into law by President Biden on December 23, 2021, by U.S. Customs and Border Protection ("CBP'), and (iii) other factors, which may result in a need for us to issue additional debt or obtain new equity financing to adequately fund our existing operations beyond the next twelve months. We continue to actively explore options to obtain additional sources of capital through the issuance of new debt, asset financing or other potential measures for our longer-term needs. However, we may be unable to obtain any desired additional financing on terms favorable to us, or at all, depending on market and other conditions, which could result in curtailment of our current operations and our ability to further invest in our products and new technology. The ability to raise additional financing depends on numerous factors, some of which that are outside of our control, including macroeconomic factors such as the impact of inflation, the level of interest rates, supply chain or other effects from the ongoing conflicts in the Ukraine and the Middle East, general market conditions, the health of financial institutions (including recent bankruptcies and financial difficulties involving certain regional banks and related impacts that have occurred and continue to occur in the banking industry), investors' and lenders' assessments of our prospects and the prospects of the solar industry in general and the ability of our common stock to continue to trade in active markets.</span></p> 14000000 45700000 64900000 1 1 30 If at any time before June 19, 2024 the bid price of our common stock closes at or above $1.00 per share for a minimum of ten consecutive business days, Nasdaq will provide written notification that we have achieved compliance with this minimum bid price requirement. 1 10 1600000 0.30 0.50 <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Use of estimates</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Preparation of condensed consolidated financial statements in conformity with U.S. GAAP requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities at the date of the financial statements, and the reported revenue and expenses during the period. Estimates are used for calculating the measure of progress of our solar tracker projects and deriving the standalone selling prices of the individual performance obligations when determining amounts to recognize for revenue, estimating allowances for credit losses and slow-moving and obsolete inventory, determining useful lives of long-lived assets and the estimated fair value of those assets for impairment assessments, and estimating the fair value of investments, stock compensation awards, warranty liabilities and federal and state taxes, including tax valuation allowances, as well as other contingencies. We base our estimates on historical experience and anticipated results, trends, and various other assumptions that we believe are reasonable under the circumstances, including assumptions as to future events. Actual results could differ from those estimates due to risks and uncertainties.</span></p> <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:1pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Concentration of credit risk</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Financial instruments that potentially subject the Company to concentrations of credit risk are primarily cash and accounts receivable.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We regularly maintain cash balances with various financial institutions that exceed federally insured amounts, but we have experienced no losses associated with these amounts to date. We also took action in early 2023 to reallocate cash balances between different financial institutions based on our assessment as to the financial health of certain institutions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We extend credit to customers in the normal course of business, often without requiring collateral. We also perform credit analyses and monitor the financial health of our customers to reduce credit risk.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company’s accounts receivables are derived from revenue earned from customers primarily located in the U.S. and Australia. No countries other than the U.S. and Australia accou</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">nted for </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">10</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">or more of our revenue. Most of our customers are project developers, solar asset owners and engineering, procurement and construction (“EPC”) contractors that design and build solar energy projects. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We typically rely on a small number of customers that account for a large portion of our revenue each period and our outstanding receivables at each period end.</span></p> 0.10 <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Cash and cash equivalents</span></p><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We consider all highly liquid investments purchased with an original maturity of three months or less to be cash equivalents. Certain of our cash equivalents include deposits in money market funds that invest primarily in short-term securities issued or guaranteed by the U.S. government or its agencies or instrumentalities and contain no restrictions on immediate redemption. These deposits totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">9.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at March 31, 2024 and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Interest earned on cash equivalents is included in interest income, which is reported net of interest expense in our condensed consolidated statements of comprehensive loss</span> 9300000 13900000 <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Restricted cash</span></p><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Cash balances that are legally, contractually or otherwise restricted as to withdrawal or usage are considered restricted cash</span> <p id="accounts_receivable_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable, net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Trade receivables are recorded at invoiced amounts, net of allowances for credit losses, and do not bear interest. We generally do not require collateral from our customers; however, in certain circumstances, we may require letters of credit, other collateral, additional guarantees or advance payments.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The allowance for credit losses is based on the lifetime expected credit loss of our customer accounts. To assess the lifetime expected credit loss, we utilize a loss rate method that takes into consideration historical experience and certain other factors, as appropriate, such as credit quality and current economic or other conditions that may affect a customer's ability to pay. Provisions for credit losses are included as a component of our selling and marketing expenses.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Receivables arising from revenue recognized in excess of billings represents our unconditional right to consideration before customers are invoiced due to the level of progress obtained as of period end on our contracts to procure and deliver tracker systems and related equipment. Further information may be found below in our </span><a href="#revenue_policy"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">revenue recognition policy</span></a><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p> <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories, net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories are stated at the lower of cost or net realizable value, with costs computed on a first-in, first-out basis. The Company periodically reviews its inventories for excess and obsolete items and adjusts carrying costs to estimated net realizable values when they are determined to be less than cost.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p> <p id="impairment_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Impairment</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We review our long-lived assets that are held for use for impairment whenever events or changes in circumstances indicate that the carrying amount of the asset may not be recoverable or that its useful life may be shorter than previously expected. If such impairment indicators are present or other factors exist that indicate the carrying amount of the asset may not be recoverable, we determine whether an impairment has occurred through the use of an undiscounted cash flow analysis of the asset at the lowest level for which identifiable cash flows exist. If an impairment has occurred, we recognize a loss for the difference between the carrying amount and the fair value of the asset, which in most cases is estimated based upon Level 3 unobservable inputs. If the asset is determined to have a remaining useful life shorter than previously expected, an adjustment for the shorter remaining life will be made for purposes of recognizing future depreciation expense. Assets are classified as held for sale when we have a plan, approved by the appropriate levels of management, for disposal of such assets, as well as other considerations, and those assets are stated at the lower of carrying value or estimated fair value less estimated costs to sell.</span></p> <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Intangible assets, net</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Intangible assets are recorded at fair value when acquired in connection with a business combination and consist of developed technology in the form of software tools, licenses, and intellectual property, which are amortized over the period of their estimated useful lives, generally </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2.5</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> - </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3.0 </span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">years, using the straight-line method. Costs incurred to renew or extend the term of a recognized intangible asset, if any, are expensed as incurred. We evaluate intangible assets for impairment using the method described above under "Impairment".</span></p> P2Y6M P3Y <p id="goodwill_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Goodwill</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We recognize goodwill as the excess of the purchase price over the estimated fair value of the identified assets and liabilities acquired in a business combination accounted for using the acquisition method. Goodwill is not amortized but is subject to a periodic assessment for impairment at least annually, or whenever events and circumstances indicate an impairment may exist. Our assessments may include qualitative factors such as current or expected industry and market conditions, our overall financial performance, share price trends, market capitalization and other company-specific events.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We operate in one segment, being the consolidated entity, which we have also determined is the reporting unit for goodwill impairment.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">No</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> impairment</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of goodwill was recognized as of March 31, 2024 or 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span></p> 0 0 <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Equity method investment</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We use the equity method of accounting for investments in which we have the ability to exercise significant influence, but not control, over operating and financial policies of the investee. Our proportionate share of the net income or loss of these investees is included in our condensed consolidated statements of comprehensive loss. Judgment regarding the level of influence over each equity method investment includes considering key factors such as our ownership interest, legal form of the investee, representation on the board of directors or managers, participation in policy-making decisions and material intra-entity transactions.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We account for distributions received from equity method investees under the “nature of the distribution” approach based on the nature of the activity or activities of the investee that generated the distribution as either a return on investment (classified as cash inflows from operating activities) or a return of investment (classified as cash inflows from investing activities).</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We evaluate equity method investments for impairment whenever events or changes in circumstances indicate that the carrying amount of the investment might not be recoverable. Factors considered by the Company when reviewing an equity method investment for impairment include the length of time and the extent to which the fair value of the equity method investment has been less than its cost, the investee’s financial condition and near-term prospects and the intent and ability to hold the investment for a period of time sufficient to allow for anticipated recovery. An impairment that is other-than temporary is recognized in the period identified.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We made an accounting policy election that, upon the sale of our equity method investments, we will recognize contractual contingent gains arising from earnout provisions and project escrow releases when such amounts are realizable in periods subsequent to the disposal date.</span></p> <p id="warranty_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Warranty</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Typically, the sale of solar tracker projects includes parts warranties to customers as part of the overall price of the product. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We provide standard assurance type warranties for our products for periods generally ranging from </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_f403bf63-1344-412b-9ebf-1b6cd4396447;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">five</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ten years</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. We also accrue for costs relating to remediation efforts involving product issues we believe require correction. We record a provision for estimated warranty and remediation expenses in cost of sales, net of amounts recoverable from manufacturers under their warranty obligations to us. When historical claims information relating to our equipment is not sufficient, we will base our estimates on industry studies involving the nature and frequency of product failure rates for similar parts used by our competitors, as well as other related businesses. We do not maintain general or unspecified reserves; all warranty reserves are related to specific projects. All actual or estimated material costs incurred for warranty or remediation services in subsequent periods are charged to those established reserves.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">While we periodically monitor our warranty activities and claims, if actual costs incurred were to be different from our estimates, we would recognize adjustments to our warranty reserves in the period in which those differences arise or are identified.</span></p> We provide standard assurance type warranties for our products for periods generally ranging from five to ten years P10Y <p id="stock_based_compensation_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Stock-based compensation</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We recognize compensation expense for all share-based payment awards made, including stock options and restricted stock units ("RSUs"), based on the estimated fair value of the award on the grant date. We calculate the fair value of stock options using the Black-Scholes option pricing model for awards with service-based vesting or through use of a lattice model or a Monte Carlo simulation for stock option and RSU awards with market conditions. The fair value of RSUs with service or performance-based vesting is based on the estimated fair value of the Company's common stock on the date of grant. We consider the closing price of our stock, as reported on the Nasdaq Global Market, to be the fair value of our stock on the grant date.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Forfeitures are accounted for as they occur. For service-based awards, stock-based compensation is recognized using the straight-line attribution approach over the requisite service period. For performance-based awards, stock-based compensation is recognized based on graded vesting over the requisite service period when the performance condition is probable of being achieved. Stock compensation expense for market-based awards is recognized over the derived service period determined in the valuation model, inclusive of any vesting conditions.</span></p> <p id="revenue_policy" style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Revenue recognition</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Product revenue is derived from the sale of solar tracker systems and customized components for those systems, individual part sales for certain specific transactions and the sale of term-based software licenses. Term-based licensed software is deployed on the customers’ own servers and has significant standalone functionality.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Service revenue includes revenue from shipping and handling services, engineering consulting and pile testing services, our subscription-based enterprise licensing model and maintenance and support services in connection with the term-based software licenses.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> Our subscription-based enterprise licensing model typically has contract terms ranging from </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="-sec-ix-hidden:F_243672f3-dbaf-4062-a997-dfe9c99cf631;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">one</span></span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">two years</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and consists of subscription fees from the licensing of subscription services. Our hosted on-demand service arrangements do not provide customers with the right to take possession of the software supporting the hosted services. Support services include ongoing security updates, upgrades, bug fixes, and maintenance.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We recognize revenue when promised goods or services are transferred to customers in an amount that reflects the consideration to which we expect to be entitled to in exchange for those goods or services by following a five-step process: (1) identify the contract with a customer, (2) identify the performance obligations in the contract, (3) determine the transaction price, (4) allocate the transaction price to the performance obligations in the contract, and (5) recognize revenue when or as the Company satisfies a performance obligation, as further described below.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Identify the contract with a customer:</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> A contract with a customer exists when (i) the Company enters into an enforceable contract with a customer that defines each party’s rights regarding the products and services to be transferred and identifies the payment terms related to these products and services, (ii) the contract has commercial substance, and (iii) the Company determines that collection of substantially all consideration for products and services that are transferred is probable based on the customer’s intent and ability to pay the promised consideration. In assessing the recognition of revenue, we also evaluate whether two or more contracts should be combined and accounted for as one contract and if the combined or single contract should be accounted for as multiple performance obligations which could change the amount of revenue and profit (loss) recorded in a period. Change orders may include changes in specifications or design, manner of performance, equipment, materials, scope of work, and/or the period of completion of the project. We analyze change orders to determine if they should be accounted for as a modification to an existing contract or a new stand-alone contract.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Contracts we enter into with our customers for sale of solar tracker systems are generally under two different types of arrangements: (1) purchase agreements and equipment supply contracts (“Purchase Agreements”), and (2) sale of individual parts for those systems.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Change orders from our customers are generally modifications to existing contracts and are included in the total estimated contract revenue when it is probable that the change order will result in additional value that can be reliably estimated and realized.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Identify the performance obligations in the contract: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We enter into contracts that can include various combinations of products and services, which are either capable of being distinct and accounted for as separate performance obligations or as one performance obligation since the majority of tasks and services are part of a single project or capability. However, determining whether products or services are considered distinct performance obligations that should be accounted for separately versus together may sometimes require significant judgment.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Purchase Agreements typically include two performance obligations: 1) our solar tracker systems or customized components of those systems, and 2) shipping and handling services. The deliverables included as part of our solar tracker systems are predominantly accounted for as one performance obligation, as these deliverables are part of a combined promise to deliver a project.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The revenue for shipping and handling services will be recognized over time based on progress in meeting shipping terms of the arrangements, as this faithfully depicts the Company’s performance in transferring control. Revenue for stand-alone engineering consulting and pile testing services is recognized at a point in time upon completion of the services performed.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Sales of individual parts of our solar tracker systems for certain specific transactions include multiple performance obligations consisting of individual parts of those systems. Revenue is recognized for parts sales at a point in time when the obligations under the terms of the contract with our customer are satisfied. Generally, this occurs with the transfer of control of the asset, which is in line with shipping terms.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Determine the transaction price: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The transaction price is determined based on the consideration to which we will be entitled in exchange for transferring services to the customer. Such amounts are typically stated in the customer contract, and to the extent that we identify variable consideration, we will estimate the variable consideration at the onset of the arrangement as long as it is probable that a significant reversal in the amount of cumulative revenue recognized will not occur when the uncertainty associated with the variable consideration is subsequently resolved. The majority of our contracts do not contain variable consideration provisions as a continuation of the original contract. None of our contracts contain a significant financing component. Taxes collected from customers and remitted to governmental authorities are not included in revenue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Allocate the transaction price to performance obligations in the contract: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Once we have determined the transaction price, we allocate the total transaction price to each performance obligation in a manner depicting the amount of consideration to which we expect to be entitled in exchange for transferring the good(s) or service(s) to the customer. We allocate the transaction price to each performance obligation identified in the contract on a relative standalone selling price basis.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We use the expected cost-plus margin approach based on hardware, labor, and related overhead cost to estimate the standalone selling price of our solar tracker systems, customized components of those systems, and individual parts for certain specific transactions. We also use the expected cost-plus margin approach based on expected third-party shipping and transportation costs to estimate the standalone selling price of our shipping, handling and logistics performance obligations. We use the adjusted market assessment approach for all other performance obligations.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Recognize revenue when or as the Company satisfies a performance obligation: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For each performance obligation identified, we determine at contract inception whether we satisfy the performance obligation over time or at a point in time. The performance obligations in the contracts for our solar tracker systems and customized components of those systems are satisfied over time as work progresses, utilizing an input measure of progress determined by cost-to-cost measures on these projects as this faithfully depicts our performance in transferring control. Additionally, our performance does not create an asset with an alternative use, due to the highly customized nature of the product, and we have an enforceable right to payment for performance completed to date. Our performance obligations for individual part sales for certain specific transactions are recognized at a point in time as and when control transfers based on the Incoterms for the contract. Our performance obligations for engineering consulting and pile testing services are recognized at a point in time upon completion of the services. Our performance obligations for term-based software licenses are recognized at a point in time as and when control transfers, either upon delivery to the customer or the software license start date, whichever is later. Our performance obligations for shipping and handling services are satisfied over time as the services are delivered over the term of the contract. We recognize revenue for subscription and other services on a straight-line basis over the contract period. With regard to support revenue, a time-elapsed method is used to measure progress because we transfer control evenly over the contractual period. Accordingly, the fixed consideration related to support revenue is generally recognized on a straight-line basis over the contract term.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Contract assets and liabilities: </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The timing of revenue recognition, billing, and cash collection results in the recognition of accounts receivable, unbilled receivables for revenue recognized in excess of billings, and deferred revenue in the condensed consolidated balance sheets. We have elected to use the practical expedient of expensing incremental costs of obtaining a contract as incurred since the majority of the performance obligations in our contracts are satisfied in less than one year. We may receive advances or deposits from our customers before revenue is recognized, resulting in contract liabilities, which are reflected as “deferred revenue” in our condensed consolidated balance sheets. Customer deposits are short term as the related performance obligations are typically fulfilled within 12 months. Changes in deferred revenue relate to fluctuations in the timing of customer deposits and completion of performance obligations. Revenue recognized during the three months ended March 31, 2024 and 2023, from amounts included in deferred revenue at December 31, 2023 and December 31, 2022, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">7.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Cost of revenue consists primarily of costs related to raw materials, equipment manufacturing activities, freight and delivery, product warranty, remediation and personnel costs (salaries, bonuses, benefits, and stock-based compensation). Personnel costs in cost of revenue include both direct labor costs, as well as costs attributable to any individuals whose activities relate to the procurement, installment and delivery of the finished product and services.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> Cost of revenue owed but not yet paid is recorded as accrued cost of revenue in the accompanying condensed consolidated financial statements. Deferred cost of revenue results from the timing differences between the costs incurred in advance of the satisfaction of all revenue recognition criteria consistent with our revenue recognition policy.</span></p> P2Y 2400000 7600000 <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Recent accounting and regulatory pronouncements not yet adopted</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In November 2023, the Financial Accounting Standards Board ("FASB") issued ASU No. 2023-07 - Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures ("ASU 2023-07"), which will become effective for us for our year end 2024 financial reporting and our interim reporting beginning January 1, 2025. ASU 2023-07 requires public companies to disclose significant segment expenses and other segment items on an annual and interim basis and will require interim disclosures about a reportable segment's profit or loss and assets that are currently required annually. As noted above, we operate in one segment. We are currently evaluating the impact of ASU 2023-07 on our existing disclosures. ASU 2023-07 will be applied retrospectively to all periods when presented in our consolidated financial statements for the year ending December 31, 2024.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In December 2023, the FASB issued ASU No. 2023-09 - Income Taxes (Topic 740): Improvements to Income Tax Disclosures ("ASU 2023-09"). ASU 2023-09 requires companies to disclose (i) additional categories of information about federal, state and foreign income taxes above a quantitative threshold in their rate reconciliation table and (ii) income taxes paid, net of refunds, disaggregated by federal, state and foreign taxes for annual periods, as well as other disclosure changes. As an emerging growth company, we are not required to adopt ASU 2023-09 prior to 2026, although earlier adoption is permitted. We are currently evaluating the impact of ASU 2023-09 on our existing income tax disclosures.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In March 2024, the U.S. Securities and Exchange Commission ("SEC") adopted the final rule under SEC Release No. 33-11275, The Enhancement and Standardization of Climate-Related Disclosures for Investors. This rule would require registrants to disclose certain climate-related information in registration statements and annual reports. In April 2024, the SEC issued a stay of the final rules pending a judicial review of the validity of the rules by the Eighth Circuit Court of Appeals. We are currently evaluating the final rule to determine its impact on our disclosures.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Other standards or regulatory requirements that have been issued but not yet adopted as of March 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, are either not applicable to us or are not expected to have any material impact upon adoption.</span></p> <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Reclassifications</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Certain prior year amounts have been reclassified to conform to the current year presentation. There was no impact on our financial condition or results of operations as a result of the reclassification.</span></p> <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3. Equity method investment</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On February 9, 2023, we entered into a limited liability company agreement (the "LLC Agreement") with Taihua New Energy (Thailand) Co., LTD ("Taihua"), a leading steel fabricator and an existing vendor, and DAYV LLC, for the creation of Alpha Steel LLC ("Alpha Steel"), a Delaware limited liability company dedicated to producing steel components, including torque tubes, for utility-scale solar projects. The Alpha Steel facility, which is located outside of Houston in Sealy, Texas, began commercial production late in the fourth quarter of 2023.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We entered into amendment no. 1 to the Alpha Steel LLC Agreement with Taihua and DAYV LLC on July 28, 2023, to allow for members at their option, and with the approval of the Board of Managers, to make payments in respect of Alpha Steel’s contractual obligations in the event that Alpha Steel does not or is not able to make such payments from its own resources (“Credit Support Payments”). Any such Credit Support Payments will be treated as capital contributions by the members to Alpha Steel, with any member funding more than its ratable share of Credit Support Payments being deemed to have loaned such excess to each underfunding member at the U.S. prime rate plus </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Alpha Steel is intended to enhance our domestic supply chain, our ability to support our customers and the growth of the U.S. solar market, with domestic manufacturing utilizing U.S. steel. We have a </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">45</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% interest in Alpha Steel, which is accounted for under the equity method of accounting. Taihua has a </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">51</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% interest in Alpha Steel and DAYV LLC, an entity owned by members of the Board of Managers of Alpha Steel and a related party with the parent company of Taihua, has a </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% interest in Alpha Steel. The Chief Executive Officer of Taihua is the General Manager of Alpha Steel. We have equal voting representation with Taihua and DAYV LLC, combined, on Alpha Steel's Board of Managers which will be responsible, through majority vote, for making certain "major decisions" involving Alpha Steel, as specified in the LLC Agreement, including, among other things, approval of an annual business plan.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During 2023, we made a required initial capital contribution of $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million to Alpha Steel. For the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">three months ended March 31, 2024, we also made a required additional capital contribution of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Pursuant to the LLC Agreement, we could be required to make up to </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> in future additional capital contributions as Alpha Steel continues to expand production. For the three months ended March 31, 2024, we recognized a loss of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> which represents our share of the net operating losses incurred by Alpha Steel during the period.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In connection with the creation of Alpha Steel, we also entered into a three-year equipment supply agreement (the "Supply Agreement") with Alpha Steel, the terms of which will apply to our equipment purchase orders. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Pursuant to the Supply Agreement, we have committed to placing a minimum level of purchase orders for torque tubes with Alpha Steel during the year ended December 31, 2024, with such volume commitments increasing in each of the next two annual periods.</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> In the event we fail to meet our minimum required purchase commitments in any annual period, we may be required to make a cash payment for the net profit attributable to any unfilled requirements, calculated as specified in the agreement, in an amount not to exceed $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">4.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in the aggregate. As of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">March 31, 2024, we had met approximately </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of our 2024 annual purchase commitments. The Supply Agreement may be terminated early in accordance with its provisions or may be extended beyond the initial term if mutually agreed to by the parties.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">At March 31, 2024, in addition to our requirement to meet the remaining minimum purchase obligations for the remainder of the year, as described above, we were contingently liable for unpaid vendor obligations, including issued but unsatisfied purchase orders, of Alpha Steel totaling approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">5.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. We expect Alpha Steel will be able to satisfy these obligations with financial resources available to them in the normal course of operations.</span></p> 0.02 0.45 0.51 0.04 900000 1000000 1600000 300000 Pursuant to the Supply Agreement, we have committed to placing a minimum level of purchase orders for torque tubes with Alpha Steel during the year ended December 31, 2024, with such volume commitments increasing in each of the next two annual periods. 4000000 0.06 5200000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">4. ATM program</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On September 14, 2022, we filed a prospectus supplement and entered into an equity distribution agreement (as amended from time to time, the "EDA") under which we may from time to time, in one or more transactions, offer and sell newly issued shares of our common stock having an aggregate offering price of up to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">100</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in "at the money" offerings (the "ATM program"). We have and may continue to use the net proceeds from this offering for general corporate purposes, including working capital and operating expenses. We may also use a portion of such proceeds to acquire or invest in businesses, products, services or technologies.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Barclays Capital Inc. ("Barclays") is our sales agent under the EDA. The offering of our common stock under the EDA will terminate upon the earlier of (1) the sale of all common stock subject to the EDA or (2) the termination of the EDA by us or by Barclays as permitted therein. The EDA contains customary representations, covenants and indemnification provisions.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We sold no shares of newly issued common stock under the ATM program during the three months ended March 31, 2024, however, during the three months ended March 31, 2023, we sold </span><span style="font-size:10pt;font-family:Times New Roman;white-space:pre-wrap;min-width:fit-content;color:#000000;">2,683,000</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> shares of newly issued common stock valued at </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">6.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> for proceeds, net of commissions and fees, of approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">6.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, including $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million for shares sold but not yet settled as of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">March 31, 2023. As of March 31, 2024, approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">64.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of capacity remained for future sales of our common stock under the ATM program.</span></p> 100000000 2683000 6500000 6300000 800000 64900000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">5. Accounts receivable, net</span></p><div style="font-size:11pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Trade receivables</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">49,474</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">46,152</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Related party receivables</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,672</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">868</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Revenue recognized in excess of billings</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">24,456</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26,813</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other receivables</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">75,606</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">73,836</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Allowance for credit losses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,227</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accounts receivable, net</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">66,379</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">65,279</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Information relating to related party receivables at March 31, 2024, may be found below in Note 16, "Related party transactions".</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Included in total receivables above are amounts billed under retainage provisions totaling </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> as of March 31, 2024 and December 31, 2023, respectively, which are due within the next twelve months.</span></p><div style="font-size:11pt;font-family:'Calibri',sans-serif;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Activity in the allowance for credit losses during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">three months ended March 31, 2024 and 2023 was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:65.353%;"></td> <td style="width:1.7%;"></td> <td style="width:1%;"></td> <td style="width:13.623000000000001%;"></td> <td style="width:1%;"></td> <td style="width:1.7%;"></td> <td style="width:1%;"></td> <td style="width:13.623000000000001%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,184</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Impact of adoption of ASU 2016-13, effective January 1, 2023</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">N/A</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Additions charged to earnings during the period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">670</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,227</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,184</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> </table></div> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accounts receivable consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Trade receivables</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">49,474</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">46,152</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Related party receivables</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,672</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">868</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Revenue recognized in excess of billings</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">24,456</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26,813</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other receivables</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">75,606</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">73,836</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Allowance for credit losses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,227</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accounts receivable, net</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">66,379</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">65,279</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 49474000 46152000 1672000 868000 24456000 26813000 4000 3000 75606000 73836000 9227000 8557000 66379000 65279000 600000 900000 <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Activity in the allowance for credit losses during the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">three months ended March 31, 2024 and 2023 was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:65.353%;"></td> <td style="width:1.7%;"></td> <td style="width:1%;"></td> <td style="width:13.623000000000001%;"></td> <td style="width:1%;"></td> <td style="width:1.7%;"></td> <td style="width:1%;"></td> <td style="width:13.623000000000001%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,184</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Impact of adoption of ASU 2016-13, effective January 1, 2023</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">N/A</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Additions charged to earnings during the period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">670</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">9,227</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,184</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="text-indent:10pt;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> </table> 8557000 1184000 670000 0 9227000 1184000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">6. Inventories, net</span></p><div style="font-size:11pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Finished goods</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,362</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,246</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Allowance for slow-moving and obsolete inventory</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">518</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">341</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,844</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,905</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Inventories consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Finished goods</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,362</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,246</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Allowance for slow-moving and obsolete inventory</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">518</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">341</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,844</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,905</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 4362000 4246000 518000 341000 3844000 3905000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">7. Prepaid and other current assets</span></p><div style="font-size:11pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Prepaid and other current assets consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Vendor deposits</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,894</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,667</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Vendor deposits with related party</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,504</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">520</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Prepaid expenses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">710</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,251</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Prepaid taxes</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">471</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">447</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">611</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">666</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Surety collateral</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">55</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other current assets</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,824</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,538</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:11pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,069</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,089</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">At March 31, 2024, other current assets included </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of (i) a short-term, interest-bearing loan to a customer, as well as (ii) a non-interest-bearing customer advance, both of which are for pre-project construction financing activities. These amounts are secured by customer assets and, additionally in one case by a financial guarantee.</span></p> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Prepaid and other current assets consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Vendor deposits</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,894</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,667</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Vendor deposits with related party</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,504</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">520</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Prepaid expenses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">710</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,251</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Prepaid taxes</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">471</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">447</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Deferred cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">611</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">666</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Surety collateral</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">55</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">—</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other current assets</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,824</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">5,538</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:11pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:7pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:7pt;text-indent:0;font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,069</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,089</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 5894000 5667000 1504000 520000 710000 1251000 471000 447000 611000 666000 55000 0 4824000 5538000 14069000 14089000 2500000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">8. Leases</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We lease office and warehouse space in various locations, including our corporate headquarters in Austin, Texas. Additionally, we lease space for an applications laboratory in Austin, Texas and a research and development facility in Seguin, Texas. All of our manufacturing is outsourced to contract manufacturing partners, and we currently do not own or lease any manufacturing facilities.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our expense for our operating leases consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Operating lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">309</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">229</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Short-term lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">93</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">92</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">402</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">321</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Reported in:</span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">236</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">215</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Research and development</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Selling and marketing</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">48</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">General and administrative</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">104</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">76</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">402</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">321</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Future remaining operating lease payment obligations were as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:84.6%;"></td> <td style="width:1.52%;"></td> <td style="width:1%;"></td> <td style="width:11.88%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31,<br/>2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Remainder of 2024</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">607</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2025</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">755</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2026</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">219</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2027</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">192</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2028</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total lease payments</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,789</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Less: imputed interest</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">113</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Present value of operating lease liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,676</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;"> <td style="text-indent:5pt;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current portion of operating lease liability</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">742</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Operating lease liability, net of current portion</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">934</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Present value of operating lease liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,676</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our expense for our operating leases consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Operating lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">309</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">229</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Short-term lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">93</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">92</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">402</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">321</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Reported in:</span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">236</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">215</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Research and development</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Selling and marketing</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">48</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">15</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">General and administrative</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">104</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">76</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total lease cost</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">402</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">321</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 309000 229000 93000 92000 402000 321000 236000 215000 14000 15000 48000 15000 104000 76000 402000 321000 <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Future remaining operating lease payment obligations were as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:84.6%;"></td> <td style="width:1.52%;"></td> <td style="width:1%;"></td> <td style="width:11.88%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31,<br/>2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Remainder of 2024</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">607</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2025</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">755</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2026</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">219</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2027</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">192</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2028</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">16</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total lease payments</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,789</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Less: imputed interest</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">113</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Present value of operating lease liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,676</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;"> <td style="text-indent:5pt;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current portion of operating lease liability</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">742</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Operating lease liability, net of current portion</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">934</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Present value of operating lease liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,676</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 607000 755000 219000 192000 16000 1789000 113000 1676000 742000 934000 1676000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">9. Property and equipment, net</span></p><div style="font-size:11pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Property and equipment consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Leasehold improvements</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">162</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">157</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Field equipment</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,062</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,062</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Information technology equipment</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">508</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">466</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Tooling</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,381</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,014</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Capitalized software</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">761</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">734</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,874</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,433</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accumulated depreciation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,880</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,610</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment, net</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,994</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,823</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Depreciation expense recognized for the three months ended March 31, 2024 and 2023, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively.</span></p> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Property and equipment consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Leasehold improvements</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">162</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">157</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Field equipment</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,062</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,062</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Information technology equipment</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">508</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">466</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Tooling</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,381</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,014</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Capitalized software</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">761</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">734</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,874</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,433</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accumulated depreciation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,880</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,610</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Property and equipment, net</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,994</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,823</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 162000 157000 1062000 1062000 508000 466000 1381000 1014000 761000 734000 3874000 3433000 1880000 1610000 1994000 1823000 300000 200000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">10. Intangible assets, net and goodwill</span></p><div style="font-size:11pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Intangible assets consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:48.499%;"></td> <td style="width:1.461%;"></td> <td style="width:20.268%;"></td> <td style="width:1.461%;"></td> <td style="width:1%;"></td> <td style="width:11.425%;"></td> <td style="width:1%;"></td> <td style="width:1.461%;"></td> <td style="width:1%;"></td> <td style="width:11.425%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Estimated Useful Lives (Years)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Developed technology</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2.5</span></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">–</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span><span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3.0</span></span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,529</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,555</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,529</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,555</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accumulated amortization</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,130</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,013</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible assets, net</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">399</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">542</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Amortization expense recognized for the three months ended March 31, 2024 and 2023, totaled </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively.</span></p><div style="font-size:11pt;font-family:'Calibri',sans-serif;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">three months ended March 31, 2024 and 2023, activity in our goodwill balance was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:55.331%;"></td> <td style="width:1.46%;"></td> <td style="width:13.443%;"></td> <td style="width:1.46%;"></td> <td style="width:1%;"></td> <td style="width:11.422%;"></td> <td style="width:1%;"></td> <td style="width:1.46%;"></td> <td style="width:1%;"></td> <td style="width:11.422%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,353</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,538</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Translation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">140</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">185</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,213</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,353</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Intangible assets consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:48.499%;"></td> <td style="width:1.461%;"></td> <td style="width:20.268%;"></td> <td style="width:1.461%;"></td> <td style="width:1%;"></td> <td style="width:11.425%;"></td> <td style="width:1%;"></td> <td style="width:1.461%;"></td> <td style="width:1%;"></td> <td style="width:11.425%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Estimated Useful Lives (Years)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Developed technology</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2.5</span></span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span><span style="color:#000000;white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;">–</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span><span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3.0</span></span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,529</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,555</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total</span></p></td> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,529</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,555</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accumulated amortization</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,130</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,013</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Intangible assets, net</span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">399</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">542</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> P2Y6M P3Y 2529000 2555000 2529000 2555000 2130000 2013000 399000 542000 100000 100000 <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">three months ended March 31, 2024 and 2023, activity in our goodwill balance was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:55.331%;"></td> <td style="width:1.46%;"></td> <td style="width:13.443%;"></td> <td style="width:1.46%;"></td> <td style="width:1%;"></td> <td style="width:11.422%;"></td> <td style="width:1%;"></td> <td style="width:1.46%;"></td> <td style="width:1%;"></td> <td style="width:11.422%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:11pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-family:'Calibri',sans-serif;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,353</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,538</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Translation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">140</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">185</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,213</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,353</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 7353000 7538000 -140000 -185000 7213000 7353000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">11. Debt</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On April 30, 2021, we entered into our Credit Facility with various lenders, including Barclays Bank PLC, as issuing lender, the swingline lender and as administrative agent providing aggregate commitments of up to $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">100.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million. </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We had not made any draws on our Credit Facility as of March 31, 2024. However, as of March 31, 2024, we had </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> in letters of credit outstanding that reduced our unused borrowing capacity to approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">98.1</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. At March 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, we have deposited $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million in an escrow account with Barclays related to our outstanding letters of credit, which is reflected as restricted cash in our condensed consolidated balance sheets.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Under the Credit Facility, we were required to maintain a liquidity level (defined as unrestricted cash and cash equivalents plus the available borrowing capacity under the Credit Facility) of no less than </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">125.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> at each quarter end in order to utilize the Credit Facility. As of March 31, 2024, we were under the required minimum liquidity level thus not allowing us to continue</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to access our Credit Facility up to the available borrowing capacity. The Credit Facility provided for payment of commitment fees of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.50</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% per annum on our unused borrowing capacity and outstanding letter of credit fees of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">3.25</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% per annum during its term. During the </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">three months ended March 31, 2024 and 2023, we incurred interest expense of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> in each period, for commitment and letter of credit fees, as well as amortization of costs relating to the establishment of the Credit Facility.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Our Credit Facility expired unused on April 30, 2024.</span></p> 100000000 1900000 98100000 1900000 125000000 0.005 0.0325 300000 300000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">12. Accrued expenses and other current liabilities</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accrued expenses and other current liabilities consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">22,423</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26,773</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Related party accrued cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,370</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,451</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued compensation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,650</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,858</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other accrued expenses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,247</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,766</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total accrued expenses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">29,690</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,848</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Warranty reserves</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,992</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,279</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current portion of operating lease </span><span><span style="-sec-ix-hidden:F_2680f1ae-f4f7-43c3-b842-e1ddc7c9e281;"><span style="-sec-ix-hidden:F_2e20a740-857d-4793-a86f-539f72729e62;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">liability</span></span></span></span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">742</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">740</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Non-federal tax obligations</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">125</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">119</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total other current liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,859</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,138</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p></div><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Information relating to our related party accrued cost of revenue at March 31, 2024 and December 31, 2023 may be found below in Note 16, "Related party transactions".</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Other accrued expenses primarily include amounts due for (i) legal costs associated with outstanding corporate or legal matters and (ii) other professional services.</span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Activity by period in the Company's warranty accruals was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,002</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,426</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Warranties issued and remediation added during the period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">838</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,543</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Settlements made during the period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">849</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,103</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Changes in liability for pre-existing warranties</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">519</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">309</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,472</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Warranty accruals are reported in:</span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other current liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,992</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,085</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other non-current liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,480</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,472</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,472</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> </table></div> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Accrued expenses and other current liabilities consisted of the following:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">March 31, 2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">December 31, 2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">22,423</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">26,773</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Related party accrued cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,370</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,451</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Accrued compensation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,650</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,858</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other accrued expenses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,247</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,766</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total accrued expenses</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">29,690</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">34,848</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Warranty reserves</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,992</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,279</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Current portion of operating lease </span><span><span style="-sec-ix-hidden:F_2680f1ae-f4f7-43c3-b842-e1ddc7c9e281;"><span style="-sec-ix-hidden:F_2e20a740-857d-4793-a86f-539f72729e62;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">liability</span></span></span></span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">742</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">740</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Non-federal tax obligations</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">125</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">119</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:bottom;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total other current liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">7,859</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="border-top:0.5pt solid #000000;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="border-top:0.5pt solid #000000;white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,138</span></p></td> <td style="border-top:0.5pt solid #ffffff03;white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p> 22423000 26773000 1370000 1451000 3650000 3858000 2247000 2766000 29690000 34848000 6992000 7279000 742000 740000 125000 119000 7859000 8138000 <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Activity by period in the Company's warranty accruals was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at beginning of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,002</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,426</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Warranties issued and remediation added during the period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">838</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,543</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Settlements made during the period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">849</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,103</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Changes in liability for pre-existing warranties</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">519</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">309</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,472</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Warranty accruals are reported in:</span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other current liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,992</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,085</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Other non-current liabilities</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,480</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,472</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Balance at end of period</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">10,472</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,557</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> </table> 11002000 12426000 838000 1543000 849000 1103000 -519000 -309000 10472000 12557000 6992000 8085000 3480000 4472000 10472000 12557000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">13. Income taxes</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For the three months ended March 31, 2024 and 2023, we recorded an income tax benefit of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.01</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and an income tax expense of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.13</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> respectively. These amounts for each period were lower than the statutory rate of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">21</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">%, primarily due to a valuation allowance established against the U.S. deferred tax assets.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We have had no material change in our unrecognized tax benefits since December 31, 2023. We recognize accrued interest and penalties related to unrecognized tax benefits as a component of income tax expense. As of March 31, 2024 and December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, we had </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> accrued interest or penalties related to unrecognized tax benefits.</span></p> -10000.00 130000 0.21 0 0 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">14. Commitments and contingencies</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We may become involved in various claims, lawsuits, investigations, and other proceedings, arising in the normal course of business. We accrue a liability when information available prior to the issuance of our financial statements indicates it is probable a loss has been incurred as of the date of the financial statements and the amount of loss can be reasonably estimated. If the reasonable estimate of the probable loss is a range, we record an accrual for the most likely estimate of the loss, or the low end of the range if there is no one best estimate. We adjust our accruals to reflect the impact of negotiation, settlements, rulings, advice of legal counsel and other information and events pertaining to a particular case. Legal costs are expensed as incurred.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In March of 2023, CBP issued notices of tariff assessment that indicated an action taken at the Import Specialist (i.e., the port) level with respect to merchandise imported from Thailand under entry number 004-1058562-5 (the “625 Assessment”) and entry number 004-1063793-9 (the “Original 939 Assessment”, and collectively with the 625 Assessment, the “Original CBP Assessments”). The Original CBP Assessments related to certain torque beams that are used in our Voyager+ product that were imported in 2022. In the Original CBP Assessments, CPB asserted that Section 301 China tariffs, Section 232 steel &amp; aluminum tariffs, and antidumping and countervailing duties applied to the merchandise. Based on correspondence received to date from CBP and our calculations based on applicable duty and tariff rates, the 625 Assessment is currently for approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.84</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million. In September of 2023, CBP informed us (the "Revised 939 Assessment", and together with the 625 Assessment, the "Revised CBP Assessments") that the amount owed under the Original 939 Assessment was being revised downward to approximately $</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.01</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In particular, CBP accepted our position that the Section 301 tariffs of </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">25</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% or </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">7.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, previously assessed under the Original 939 Assessment are not applicable as they are only applicable to articles that originate in China</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and that, in this case, the finished goods are products of Thailand.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Upon review of the facts involved, and in consultation with outside legal counsel, we believe that the remaining amounts claimed in the Revised CBP Assessments are incorrect. </span><span style="font-size:10pt;font-family:Times New Roman;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In particular, the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, are not applicable under the 625 Assessment for the same reason stated above with respect to the Revised 939 Assessment, which has been accepted by CBP</span></span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Moreover, with respect to both Revised CBP Assessments, we believe that the goods in question were properly classified as parts of structures at the time of importation and that when properly classified, the beams and other materials are not subject to Section 232 duties applicable to more basic steel products.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CBP has legally finalized both Revised CBP Assessments. We filed a formal protest for the 625 Assessment in September of 2023 and for the Revised 939 Assessment in March of 2024. Based on the above, and under the relevant accounting guidance related to loss contingencies, we have made no accrual for the amounts claimed by CBP as of March 31, 2024, as we do not consider these amounts to be a probable obligation, as such term is defined and interpreted under the relevant accounting guidance, for us at this time. However, because matters of this nature are subject to inherent uncertainties, and unfavorable rulings or developments, including future assessments of additional duties or tariffs owed in respect of other shipments or other materials beyond what is presently included in the Revised CBP Assessments, could occur despite our belief that the tariffs and duties asserted are incorrect, there can be no certainty that the Company may not ultimately incur charges that are not currently recorded as liabilities. Since the outcome of these matters cannot be predicted with certainty, the costs associated with them could have a material adverse effect on our consolidated results of operations, financial position, or liquidity.</span></p> 2840000 2010000.00 In particular, CBP accepted our position that the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, previously assessed under the Original 939 Assessment are not applicable as they are only applicable to articles that originate in China 0.25 0.075 In particular, the Section 301 tariffs of 25% or 7.5% of the value of the merchandise, depending on tariff classification, as well as the antidumping and countervailing duties, are not applicable under the 625 Assessment for the same reason stated above with respect to the Revised 939 Assessment, which has been accepted by CBP <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">15. Stock-based compensation</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Stock compensation expense for each period was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">216</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">816</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Research and development</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">81</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">249</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Selling and marketing</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">44</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">384</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">General and administrative</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,298</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,441</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total stock compensation expense</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,639</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,890</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div> <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Stock compensation expense for each period was as follows:</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> <td style="width:1.48%;"></td> <td style="width:1%;"></td> <td style="width:11.6%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(in thousands)</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cost of revenue</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">216</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">816</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Research and development</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">81</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">249</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Selling and marketing</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">44</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">384</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">General and administrative</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,298</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">3,441</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Total stock compensation expense</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">1,639</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">4,890</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 216000 816000 81000 249000 44000 384000 1298000 3441000 1639000 4890000 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">16. Related party transactions</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Transaction with Ayna.AI LLC</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In February 2022, we engaged Ayna.AI LLC (as successor in interest to Fernweh Engaged Operator Company LLC) (“Ayna”) to support us with improvements to our processes and performance in various areas including design, sourcing, logistics, pricing, software and standard configuration. The foregoing engagement constituted a related party transaction as South Lake One LLC, an entity affiliated with Isidoro Quiroga Cortés, a member of our board of directors, and a holder of more than </span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">% of our outstanding capital stock, is an investor in Ayna. In addition, Discrimen LLC is an investor in Ayna, and Isidoro Quiroga Cortés is affiliated with that entity. Isidoro Quiroga Cortés is also on the board of directors of Ayna. On Septemb</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">er 13, 2023, we executed a termination of the master services agreement and statement of work (collectively, the "Service Agreement") with Ayna and Fernweh Group LLC, the parent company of Fernweh Engaged Operator Company LLC.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For the three months ended March 31, 2023, we incurred </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">2.3</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> of general and administrative expense, including expense relating to stock-based compensation awards, and made cash payments of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> associated with our engagement of Ayna.</span></p><p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Related party receivables and payables</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We have related party receivables at March 31, 2024 and December 31, 2023, totaling </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.9</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, for future material costs discounts contractually owed to us by Alpha Steel in connection with the expected receipt of manufacturing incentives available to Alpha Steel under the Inflation Reduction Act as costs are incurred by Alpha Steel to purchase raw materials and manufacture torque tubes and other products that will be used to fulfill purchase orders we issue to Alpha Steel.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">We also have related party liabilities to Alpha Steel at March 31, 2024 and December 31, 2023, totaling </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> and </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.5</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, respectively, for the accrued cost of revenue recognized on certain of our customer projects associated with the cost of products that are being manufactured for us by Alpha Steel.</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">During the three months ended March 31, 2024, we made vendor deposits of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to Alpha Steel and received invoices from Alpha Steel totaling </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">1.6</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. Our balance of vendor deposits with Alpha Steel as of March 31, 2024 and December 31, 2023 is shown in Note 7, "Prepaids and other current assets" above as "Vendor deposits with related party". After payments and application of vendor deposits to invoices received, we owe </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.4</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to Alpha Steel, which is included in our accounts payable balance at March 31, 2024</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> (</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">no</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ne at </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">December 31, 2023</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">) in our condensed consolidated balance sheets.</span></p> 0.05 2300000 800000 1700000 900000 1400000 1500000 1600000 1600000 400000 0 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">17. Net loss per share</span></p><div style="font-size:10pt;font-family:Times New Roman;"> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:65.727%;"></td> <td style="width:1.6%;"></td> <td style="width:1%;"></td> <td style="width:13.537%;"></td> <td style="width:1%;"></td> <td style="width:1.6%;"></td> <td style="width:1%;"></td> <td style="width:13.537%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net loss (in thousands)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,771</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,762</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Weighted average shares outstanding for calculating basic and diluted loss per share</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">125,569,375</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">106,791,198</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic and diluted loss per share</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.07</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.11</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> </table></div><div style="font-size:10pt;font-family:Times New Roman;"><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For purposes of computing diluted loss per share, weighted average common shares outstanding do not include potentially dilutive securities that are anti-dilutive, as shown below.</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.02%;"></td> <td style="width:1%;"></td> <td style="width:12.06%;"></td> <td style="width:1%;"></td> <td style="width:1.02%;"></td> <td style="width:1%;"></td> <td style="width:12.06%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">For the three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Anti-dilutive securities excluded from calculating dilutive loss per share:</span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Shares of common stock issuable under stock option plans outstanding</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,427,526</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,544,725</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Shares of common stock issuable upon vesting of RSUs</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,178,375</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,612,849</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Potential common shares excluded from diluted net loss per share calculation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,605,901</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">13,157,574</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table></div> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:65.727%;"></td> <td style="width:1.6%;"></td> <td style="width:1%;"></td> <td style="width:13.537%;"></td> <td style="width:1%;"></td> <td style="width:1.6%;"></td> <td style="width:1%;"></td> <td style="width:13.537%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Net loss (in thousands)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">8,771</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">11,762</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Weighted average shares outstanding for calculating basic and diluted loss per share</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">125,569,375</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">106,791,198</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Basic and diluted loss per share</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.07</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">$</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">(</span><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">0.11</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;min-width:fit-content;">)</span></p></td> </tr> <tr style="background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> </table> -8771000 -11762000 125569375 125569375 106791198 106791198 -0.07 -0.07 -0.11 -0.11 <p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For purposes of computing diluted loss per share, weighted average common shares outstanding do not include potentially dilutive securities that are anti-dilutive, as shown below.</span></p> <table style="margin-left:auto;border-spacing:0;table-layout:fixed;width:100.0%;border-collapse:separate;margin-right:auto;"> <tr style="visibility:collapse;"> <td style="width:69.84%;"></td> <td style="width:1.02%;"></td> <td style="width:1%;"></td> <td style="width:12.06%;"></td> <td style="width:1%;"></td> <td style="width:1.02%;"></td> <td style="width:1%;"></td> <td style="width:12.06%;"></td> <td style="width:1%;"></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="6" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">For the three months ended March 31,</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:8pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2024</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">2023</span></p></td> <td style="vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;white-space:pre-wrap;"> <td style="vertical-align:top;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Anti-dilutive securities excluded from calculating dilutive loss per share:</span></p></td> <td style="vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td colspan="2" style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Shares of common stock issuable under stock option plans outstanding</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">2,427,526</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,544,725</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#ffffff;word-break:break-word;"> <td style="text-indent:5pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:5pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Shares of common stock issuable upon vesting of RSUs</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">12,178,375</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:0.5pt solid #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">6,612,849</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:0.5pt solid #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> <tr style="height:10pt;background-color:#cff0fc;word-break:break-word;"> <td style="text-indent:10pt;white-space:pre-wrap;vertical-align:top;"><p style="margin-left:10pt;text-indent:0;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Potential common shares excluded from diluted net loss per share calculation</span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">14,605,901</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="white-space:pre-wrap;min-width:fit-content;"> </span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> <td style="white-space:pre-wrap;vertical-align:bottom;border-bottom:2.25pt double #000000;text-align:center;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:right;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">13,157,574</span></p></td> <td style="white-space:nowrap;vertical-align:bottom;border-bottom:2.25pt double #ffffff03;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="min-width:fit-content;"> </span></p></td> </tr> </table> 2427526 6544725 12178375 6612849 14605901 13157574 <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">18. Subsequent events</span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On April 3, 2024, we entered into a First Amendment (“the Amendment”) to Master Project Supply Agreements dated October 11, 2021 with a customer and major solar project developer. As of March 31, 2024, our customer owed us approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">30.8</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> for project equipment we had previously completed and made available to the customer pursuant to the Master Project Supply Agreements. The Amendment was executed in consideration of and concurrent with the sale of the uncompleted projects by our customer, including the amended Master Project Supply Agreements, to a new third-party developer (“the Purchaser”), who will assume certain obligations to us under the amended Master Project Supply Agreements.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:6pt;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Pursuant to the Amendment, the only completed project equipment that will be provided to the Purchaser are foundation piles. All remaining equipment completed and made available to our customer under the original Master Project Supply Agreements will be retained by us and returned to our inventory in exchange for forgiveness of the associated outstanding receivable balance owed by our customer, to the extent of the current fair value of the retained equipment, which approximated </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">13.2</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">. During the three months ended March 31, 2024, we recorded an additional estimated credit loss provision of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">0.7</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> to recognize the difference between the receivable balance owed us and the expected cash to be received from the Purchaser plus the current estimated fair value of the equipment that would be added to our inventory pursuant to this Amendment. At March 31, 2024, we had a total credit loss reserve relating to this customer of approximately </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">9.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p><p style="text-indent:4.533%;font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Upon execution of the Amendment, we received a cash payment of </span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">$</span><span style="font-size:10pt;font-family:Times New Roman;color:#000000;white-space:pre-wrap;min-width:fit-content;">9.0</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> million</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> from the Purchaser to acquire the foundation piles and we anticipate receiving certain additional amounts for temporary storage and upon final delivery to the project sites, which is expected to occur no later than the fourth quarter of 2024.</span></p> 30800000 13200000 700000 9000000 9000000 false false false false

M9O ;DPU=O-#I"1^C);Q^-4GBY%UO69 OG)YR?2&R%(#(M/2'YH# M13HBV7BPCSW@3'D>L6W/1_L!0>J28 8$KBETT!^/ M#MI=P^6%7[BW"E+%VKWBSI.P:U#@N)>KPGE'.!VOQ0H?T'U9WQFVPH:2RQ*UE:3! MX'(2S'JC>>KCJX"O$G?V: Z^D@71HS=N\DD0>4&H,'.>('C8XB4JY4$LX^>> M&31;^L3C^8%^7=7.M2R$Q4M2WV3NBDDP#"#'I=@H=T^[3[BOI^]Y&2E;?6%7 MQR9Q -G&.BKWR:R@E+H>Q=/^'(X2AM$+"?$^(:YTUQM5*J^$$].QH1T8'\TT M/ZE*K;)9G-3^4AZ6YZH[>H'1F)M@,:W3AT3/5K8;8GS&M"_ (A@5O2 MKK#P4>>8_YD?LII&4GR0-(_/ F^%Z4+2ZT D97M*4F%2\Y!\E/L.5M)DB MNS$(WV<+ZPS_$S].55P#T]- WR(/IP1F[:R$W/ MT?_K1LX23NL;=.%O\K$#,N)&LPYSH"6X F%)BCM6ZM6H=2$UNVACA#ULR#A<[\'OP^L/&V MI"WO!,P'6EA2Z!!DOT]<]4IJ"PJ7G!IUW_4#,'7/UX:C==5G M"W+&PO=V]R:W-H965TR@:-%WW,.R!ELX65XK42"I._OL=*5EU5]W&N:10-+R6N4ABL)&K?+8)UHA".B,+XI^<,!I<.>/Q_8/_%:R&FK M93 /H,0M:X7]I/:_8J\G=WR%$L9_8=_9YI, BM985?=@BJ#FLAO94W\.1X!Y M_!- V@-2'W?GR$=YQRQ;+;3:@W;6Q.9^O%2/IN"X=$EYL)IV.>'LZEYCPW@) M3):@;(6:G&J-T@(S!JU91):\.-NHZ!EO.L;T)XP3^*"DK0R\ER66W^,CBFX( M,3V$>).>)?S ]!@F20AIG&9G^":#Y(GGF[P@^?T3W6R#7OI'+WWM)8=PVQ_! MG^N-L9HNSE^GCJ'SDIWVXHKIVC2LP&5 U6)0/V*P>O,JF<;OSFC(!@W9.?;_ ME;;SC+,QO$3ZLD&AJ%J-1=K> AG 5@DJ>RYWUZ,++FE)M8;0YBU05HMJ2"O< M88'UAAC[E?E27$:TBR M,)Y>]3_S*UC;_QQ,>/J@N2Q$2^5%R'2<4V,0PO4XBO."OP4&IE+:7E)<=4BV M-**QEQMDFE(!0C%*A2*SKL&@#HD7]M0:W7C!/854\O('Z $ K'QDLL 0-A2? M\[NO.(7-M,NY!KKREXU6?U/O]9?"ZK;KPELN">>H?#_FEJ,9P^<*72'6JI4D MSI$8),6D;_-\Y+/33O>'XBU+[@B9$,^D$)1$**@[.P [>*$CWK5,,U*!XU-5 M%QTU3O*P\\^#N\841]=#A]7A!5IWC?>;>?=\4=IV7!H0N"5H/)[E >CN2>@F M5C6^#=.!D1S_6]$KBMH9T/Y6*7N8. ?#N[SZ%U!+ P04 " #W2:I89%,' MN X$ K"0 &0 'AL+W=O MQ(=>9'[,&[XW,QQZOC7VP96('IXJI=TB*KVO9X.!RTNLA#LS-6K:61M;"4]3 MNQFXVJ(H JA2@S2.QX-*2!TMYV'MQB[GIO%*:KRQX)JJ$G9WB6&PG-=B@W?H_ZIO+,T&>R^%K% [:3187"^BBV1VF;%],/A;XM8=C(&5 MK(QYX,F?Q2**F1 JS#U[$/3SB%>H%#LB&M\ZG]'^2 8>CI^]?PK:2>-\Z;JP,2@DKK]%4]= M' X Y_$;@+0#I(%W>U!@^9OP8CFW9@N6K$:Z-]Z>"C+K!XB1\0ASV1])G(97K2X;6P9S!, M^I#&:7;"WW O;!C\#4\*@W\N5LY;ROV_KVEL762ON^#[,'.UR'$14<$[M(\8 M+7_^*1G'OYX@F.T)9J>\GXC\2=SKK,[/H!/\%4'Q",QZ+7,$H0O8"HNE:6@Q M $%J>!16T@HHDPN^'JY/J[EJ"JDW8!H+N;&UL<(CE'37OS7">K2.H1=4E5+W MX1Z?J#W 15%(]B"4VO5A^WQ\>Q)U#6( HJZ5[ X")5;LV-C=#]X"6P$L2]B\ M#-,"'ZEUU-0(/*Q%+I7T 7B'F^:0AE(D.5"OA&[(TC>6Q4A'B][11HX%>$/* M=*B(([N:%&J2V&]#AG3[K*5#U0X* ]IX,%L-I*?5)_3NR$%'3B*Q^4(T\(DZ MIVMCP+2HD9)LME1MJHB(D\X3*R+N2[94U"3)8M:[+RTB5.T=0[YCD M]Y[D>TXH,74?PHWAS[#WY>41=(+S\ Z&\92^:3KMW97&^E\HD]6AQ70(T[1W M;[Q0+X%9G#(\37JW2-7 5*6>]:YXESA;2HUND'T/Q_Q-1F3X1NZ2#&C[COHO M\^-=>@4>,+#-SGGO=Z3X$X50! 4U.\E7E[LV)'$&D_%)BO"IH40@D>*W*)3Q M431JL0M,S$K)35>,6R0(%5X;>C<[CNWWH-\&OP5:5AY"_@[&\:1'PQ%,1B,> MC"D$4QY,(*&(TH"$O:3=D7"0]"?GT]YG=&X&LJJ;-KB4&B1=[R%)AO"A=\-7 M@2@_"M5@J.\C34J*55=UQ"?ICRE*5VWA F>,7[X3L!V!)EGZ0^'L]_N@,>0Z M/W(Z'6;_BQV\UCH'!P]8A783GFF^((WV[5NV7]W_$[AH'\#OYNW?"$K81G*7 MP35!X[/)* +;/LWMQ)LZ/(&ULE57;;MLP#'W/5Q!>,:Q $%^;I%T2H)<-&[ "0;O+P[ 'Q69LH;+D M2G+3[NM'R8F7#6V&O>A"D8<\DGD\VRA]9RI$"X^UD&8>5-8V9V%H\@IK9D:J M04DG:Z5K9FFKR] T&EGA@VH1)E$T#FO&9;"8>=M2+V:JM8)+7&HP;5TS_72! M0FWF01SL##>\K*PSA(M9PTJ\1?NE66K:A3U*P6N4ABL)&M?SX#P^N\B]@>0D"R#4A\W5TB7^45LVPQTVH#VGD3FEMXJCZ:BN/2/5]LG8+( O&]Y0S=NAR#1SD)+"9Q;F&_!+CJPY 6P%*Z5M)6! M=[+ XL_XD KKJTMVU5TD!P&OF1Y!&@\AB9+L %[:LTT]7OH/MD-8"B:M)_UN M1QJ^GZ^,U?2=_'B.>H>N?,-"S'>4#-85 _8+!X_2H>1V\/U)WU=6>' MT/_WE0Z#G8[@ -X+9Y K:D1CL0"U!ELAK)6@CN:R/!N\X9),JC448HZ!7BVO M^F>#*\RQ7J'>6=+!)Z0^JI0H@->-5@_H,A@X@GBRGCX<1G?EQ M\%%V8N2ZVF)>2254^;3G?!)-(1N/!Y^5(O(EA:73V 7'V>"2-=PRP7\2$Z/6 M=L,TPF0E]+4117_-MM*(4'=]A:ZO_KY? ME\Q=ZQ"L*Y\(%:*4MRYY<5 M_5]0.P&PO=V]R:W-H965T(W2<"5!XWX9K./Y9NKTO<+O' _F9 ^.R4ZIK^[POE@&D0L( M!>;6(3!:;O$-"N& *(R_>\Q@<.D,3_=']%\\=^*R8P;?*/&%%[9:!K, "MRS M5MB/ZO .>SZ9P\N5,/X+ATXW2P/(6V-5W1M3!#67W.?)1;9MEJH=4!M-,F-+?Q5+TU!<>E*\HGJ^DO)SN[>B\MDR7?"01F#%HS M!DE7@R@*+?]J'%. 097*, M Q)E$S/X*4#Z]3CI4_@_=I3\SQ/4K#V*8 M-[E0IM4(?ZYW MQFJZ.W\]EH;.R_1Q+ZZ?YJ9A.2X#:AB#^A:#U?-G\8OH]1D.TX'#]!SZ_ZW< M6=#'0XZC"?R$MW_K0*ZH>XW% M0>;(6P5X+& )?E?'3))8E4:PC#7,%;8SDU M&:E^-KAO!?Q&W6K@\@]DFG[3#03B*X@&2<):^Z-U^^@)L>C5G88K7+)V-;C231AQK$T^[RL2SC.IR D7N'X D<3J /=:& MXP MJO&C>:AE1>T4Z/]>*7L\. ?#6[WZ#E!+ P04 " #W2:I83!T/ M<:D$ #J"@ &0 'AL+W=O^]*1 \/E=)ND93>UY>CD54+J9#F/S^[L<'H^6\%EO\C/Y+?6=I-^J]%+)"[:318'&S2*[&EZL9GX\'_I;8N*,U,).U M,?>\^5 LDHP!H<++P^>'\7N1.7M7!X;=17 M6?ARD5PD4.!&!.4_F>8]=GS.V5]NE(N_T+1G)V\2R(/SINJ,"4$E=?LO'KH\ M'!E<9"\83#J#2<3=!HHH;X07R[DU#5@^3=YX$:E&:P(G-1?EL[?T5I*=7][@ MVL]'GCSQ?I1W5JO6:O*"U10^&NU+!W_H HL?[4>$H(R$OVE/:QK]34_0@AOIGO+=(A2[@UI=H864L.9!ZZX: GG8U'J<0 MW=UJN*JM5##-8D8IKPT":H\6"Y#:&S#!PC7MI(=W(I=*^CTISY>P$U::X$ A ME=:Z,SJ>JU 0(E@)FRNQ=[30]W#WY_49" ?2NNVAMF8G8P"QW5K<"H^0FZJ2GIK?.S ;"#40YE''W'(>=4\Y?$&+/RB*K/ M#[=6%:IGF?$ET>0>$4JUW)BVX<)XJ0-&_>4YLQCJF;;W_B]-*?SUG$37VH2- M;@]0BSTW=)14W]ZP08Q$L_0\@Y^ACL-"$XVNA5]N&Z[I<\D>M>/!]32=G/_@ MN@B6#21I@"PJFIKM R;I2XL(5?MYX^%5/&T]CDN+:2P&3<=@NZF*K#K AYJ% MSX%?$:OI<4-&-1 .:8JSF).C1+#;00IQ+C5T;XD3M#+6R^\B7FEB)IWO&CDR M:"M%.*A.TI6'A \J[':@VH0^BJE+NWGR)9FE0Y^\T=']HT*[C;1 M_FE_D;MJ[R^/Q]M;(.5Z*S5_?C9DFJ5OSA.P[&[!MTPBSN\1:;V=!'.PW;N1J[7AC.)]NQ J_H/M[ M85TS$-'XM\<,#B99\7B^1__@?2=?%L+BE:Z_R-Z= M(<_RG7!B/C5Z"X:E"8TGWE6O3>2DXJ1\<8:^2M)S\XNR-"U6\/Z.TFS1@E 5 M_.76:."J-0:5@S^E6,A:.HEV.G1DDS6'98]_V>$G+^"G\$DKM[;P7E58/=0? M$M<#X61/^#)Y%?"3,&>0QB$D49*]@I<> I!ZO/2G! N%M89*J7G(M$9RIXW MQ-UU;C>BQ%E [6/1W&(P__67>!3]_HH;V<&-[#7TGY#'U_'CY SV-O#8AO8V MRMY&?1RJ'Q,O-76Z=:2@ET!2L-0U'1E2KQ-E]HZAC-XBZI%> -)$F9)RI-1.!ZG@QNL!=O<".-V=$8\KQ>' MZ3BB_RR/C[ ;]DOXPR4-1WE$_T5>#+JHB\?>)V&2C>E_/!H-OFHGZJG6_QMEX1YGEBOF27;I^-O!@NNCI<\+OE> ZN.S M=I2H40C!PYQ2NU*6_!U@@S-X(3L;(^E2DO6.H,JZK8A-0_C.0M6R*0,G\I3B MN:*8,&^J9FMU*;VAK71K\M-91X39[5(;R@=] U+LE"@R#DW7!">2L+K(;HQ> MHN4KCF0XQ;)$RZU&EQ5G;+$#RJ;4%?@60+BBLA-J]YN%[;XVO#.BYAVFU3>. M/1]\71M$:+H#&/D O@_PXY[R\?;-5G3388"6[>A 5VZY:XVN"O.BQ"JJ;.,RS=$"WOZM)@R/> M" K_4^$3*+()G-(8AW&4PNG@:BW4BJVJHQKG7-$!^Q;OZ#1AB.T]O1/(XPXB MC6@\=A55]=#)*,S&O9-Y/K[OQ$.TA4%RDOL..3OG?>,_WRO[IBW"J,A[245= M^)QT&F9%!!G;_P&&SUTBPZ.'08-FY9\_?-1297=OA,/NX85UT3TL[L6[YQD5 M#M6"I6I>DFIT-LX#,-V3IULXO?'/C(5V]&CQTS6]$M&P 'U?:FK0?L$&#N_. M^7]02P,$% @ ]TFJ6+<$"VX@ P )@< !D !X;"]W;W)K&ULE57);MLP$/V5@;J< JU.&J2V 3MIT1X"!%F:0]$#+8TE M(A2IDI27?GV'E*RZC>.@@"%SF??X9H8S'*^5?C(5HH5-+:29!)6US444F;S" MFIE0-2AI9ZETS2Q-=1F91B,K/*@641K'9U'-N RF8[]VHZ=CU5K!)=YH,&U= M,[V=HU#K29 $NX5;7E;6+433<<-*O$/[T-QHFD4#2\%KE(8K"1J7DV"67,Q' MSMX;?..X-GMC<)XLE'IRDZ_%)(B=(!286\? Z&^%ERB$(R(9/WO.8#C2 ??' M._;/WG?R9<$,7BKQR M;38+S IMW=05[E%;-L.M9J#=I9$YL;>%<]FL1Q MZ9)R9S7M9JQKAGFW0C"-+C&X]RGOTO$.G+Z SN%;25@8^R0*+O_$1 M*1GDI#LY\_0HX373(63)":1Q.CK"EPWN99XO>]4]N.(F%\JT&N'[;&&LI@OQ MXY#+'>/H,*,KD@O3L!PG 56!0;W"8/K^37(6?SRB=S3H'1UC?S4=Q]%)%D+/ M8!T#T,4%6]<HA0=[E"ERN@2.?5$&I@LG"#[ 362,66*^V,F 0^\,$")2ZY M!;6$MQ"'<4(74@A?6_)?6]Q0VS"XLTVRP9:"UJ"O1;$-X;ZB& *K52NM 6HR M@(QT-:BY*D@+98OZ!CHWZ #GB[',ME;I+6AF_0%I N].H-&C*&;6F'><",P:IX<$C0L56 M[E. 5%1\EL0Q 3DI*I&1\N X>[<*\RQ7I C?<@S3SQ@ MJ#WENB4HET1/(GU,*89,6$Z9U"CHW,+Y]?))C'Y *6B41.GS]#PC(^/>?>" MD$LEY1,$+@D:AQ]. ]!=5^XF5C6^$RZ4I;[JAQ4]9*B= >TOE;*[B3M@>!JG MOP%02P,$% @ ]TFJ6-@F&ULQ5AM<]LV$OXK&/4NT\PIDBS9CI/8GHG=NVEFVJDGOK8? M;NX#1"XE-"3! * 4]=?WV05(4;;L2_OEODA\ 1;[\NRSN[S<6O?)KXF"^E*5 MM;\:K4-HWDZG/EM3I?W$-E3C36%=I0-NW6KJ&T3A_75Z&*D] MXT&BY7'ZUE:5"?!R\$K7N;JU M=3#UBNK,D+^^96 N)U:4F8K4J;>V')#.2[41CMC6Z^R4IO*CU6IM[XU 5=813Z8E>;< MPSU+M6%-3C7.9D0YQ/-C9SRN6!9>JIH3K<3QK?.D;*&6+5Z3]Q-60F>9:_&G M2J.7IC1AI[9KJK$YDI-D^4:;4B]+PCG&.A6L"#;>M[K.1":$J\+4N#4XRP<= M*%INZMQDN,-5P [6="FB<*+U7JVUAQ/DP*QU#B[ PCD W+LZZZ/"F<'\$M= MV;8.O%1D9KJ&3-";]K;&83O%;H,QE$_4ARBO?TG]R^ZH7D41!IVU@5,@1<45-*QN,1'"L/(501J^-E6O+ MA)1\8V+\2EI%C-0@]P&P#F" I[01QS?D HH3HPSG:]5H%TS6EMK!^1[*_I#D M>8X2K*(OJ'@^1K>+-&)1*W!1MF8-P$6+L;J]N1-<864-[3.*8 "DBP)[/6#+ M1L!4'7ILI7"(DD%_ IAT=,:'JK$NJ/N&&#D&KOO63&@RCF'&JY/(J5.*1PME+_7G,NP!,MR-@ACL'M5-U62]S,9J>O3F9G M%V?G\U=GZEL^Y,4W%_/Y[-WY_$R][[67AR?O7D://I9POGC]9O'JS8&$GYQ9 M(05*]6;QYK&H<6*84@KSAB$H)K& P[.C[0^%LMOW:WRGX 3FDGIJ%1Q6BO?A ML"P" I?N<\O0U96/0>+HMSY2&P/W%[M#8^+^P6F6MUD*Y5:@WWD:2P&'N0 D M/*,!\')W(["0;2+I/K4FB]F)NEUC5T(/%G>OYHLY6(00]Q>Z:MXI7;;H MIJ MOY*]J4'7>5LU#/+H77 ,R@[BSX_R-C"/ZZ8I3?2!D, >.!-UH]EN' C*8'!9 M0(;Y$AQ"9A,W"<<)LM@V2;R6DZCD;!*>EP9)Q,A9F5 33M]%^HNIX9ABQT?B MS7PBZ58'@(*Y"E*<_2*D@B=_4_/)Q2FZH++$8>+Q>VI L S'P[04*H FJ$V" MS-%'VAA6[1"2H^B^8%AFC.63W+759=X")P]/55@H*1\@E MT;G=UEOMQ-V/C0=,AL;OF2Q:#9YE=\2P--:;R#*=;D.T)?2(U\[4WYGN7T_D M(A+]!CCK*\( *&-TO&!'KMY*&$PBBO+OO2F8X(3!8=86?3;_BU.^!IUC)!F< M@&X"QD;V_"H? B\?NY)6M6=S^'?N5O592RGD;Y09N;%(2QE*MPSBV M)8Q*S::GVF[0;>=J96T>ZT4B!W%F1[D3]7,C4\N&!Y.N+]"9=!FQ?XK0,YQQ MM<<,$0N7(!##DSE+0@9O:!]41U4J;A%ZJ1>+Q,0+G@"M:([JQMF> MA4=P>A8O'5S^KV@Y$O<]6![P2M?V>%UUW51LS<"<2PMW/JRI0\<=X@U16!MT M 7TOV"?=Q M6^$(2HPPN0"1&&-\UUZ@,Y,(Q;JU;Y)B1>,N^HC,B(-8(/=]%A.2,]S/=3'P M[?*W9.*P;@W+3I]]%;S#9<)DJ:YUZ3,1C[!?!?9< 3C?S>_LVV<<)]UF84IV M@2KB &9@3O2+O /Z\R1PB$&=NN/QY[W#7O TT'9%.0REF):[Z&(QH,VFHDJ M$R0SAE>MR76LKGU7$J>!X=PEB%CK#4]?.3OZ41O_,.43!.-4$C7M1N>49B@P M$C'F')-4]'M!C%$>=_JQPB[+-,.) -]")*)?<:G."0&2AI;)!D]!X(&^UO:Q M6-$F@$(<(W2BOD?IE-S!M*G1BS':(#K-63QP:,:U0&\ .U/S0(*3VCJU=XDE M)!:%WE@G]J1Q@@DLYV[:-BGY0(5E*T15M/& 5?B;)WG4D[A_01KCD''BMO( MMUVJ\Y IJ>+7IDDBW*/L6=(.71:23Z=I$Y&0SB?J\C\I?,S46 )]&9HFF.,; MPU,8IOI%>%,EITE>Z3X:/%X2?W.@HI (Q@& T\26 M)A<1B ],%30P4W9?-O;3?M=RR?17TV4BY^BXPWP3;R_0\D&FPEEVL" MHSA>@/>%!5FF&SZ@_R!\_0=02P,$% @ ]TFJ6.+$RS:Y @ _ 4 !D M !X;"]W;W)K&ULE51;K]HP#'[G5UC=T;1)C%X/ M P9(P*X/1T*'L^UAVD-H#8UHDRX)E_/OYZ30<21 FE2E=F)__AS''NZEVN@< MT<"A+(0>>;DQU<#W=9ICR71'5BCH9"55R0RI:NWK2B'+G%-9^%$0=/V2<>&- MAVYOKL9#N34%%SA7H+=ER=3S% NY'WFA=]IXY.OG8E!R47]9X?C/9PY]((K#M'1(7*\ZT".Y4=F MV'BHY!Z4M28T*[A4G3>1X\(696$4G7+R,^.%D>GFW93RRF F2ZJU9O:ZAKXA M=&OCIT>D:8T474&*X4$*DVOX)#+,7OK[Q*JA%IVH3:.;@ ],=2 .VQ %47(# M+VY2C1U>?"W5G"D\ICIGS_2R#$R48F*-3OXU66JCZ)G\OI1\C9UFWKL9VB5LSJ0W(%77\#L46X0ZBL$MK+^RV'HFR0R GZKT=S93*U:X7 M0I3T6POJ;B[6[IAFS :-U9($XE[2^H("%2O<(Z#J65,K1E:NOY?2T+1P8D[C&94UH/.5E.:DV #- MP!__!5!+ P04 " #W2:I8IC'IP7 & "(#P &0 'AL+W=OC^^KX%*%I6;#?MC,S#[L/;!_)L9]UG7S,'^K)I MC#_/ZA#:U^.Q+VK>*)_;E@V>5-9M5,"M6X]]ZUB5,6C3C&>3R8OQ1FF379S% ML2MW<6:[T&C#5XY\M]DHMW_+C=V=9]/L,/!)K^L@ ^.+LU:M^9K#?]HKA[OQ M@%+J#1NOK2''U7FVG+Y^NY#Y<<+/FG?^Z)JDDI6UG^7FLCS/)I(0-UP$05#X MV?([;AH!0AJ_]9C9L*0$'E\?T+^/M:.6E?+\SC:_Z#+4Y]FKC$JN5->$3W;W M+^[K>2YXA6U\_$^[-'>.R47G@]WTP!75QYNR.G,P&FES$4F,TDM-&-N4Z.#S5B L7G[A1@4NZ4B[LZ2>GC%>1 M+W\V#L"76>.BQWJ;L&;W8,WI!VM"[>D?IN3R=OP8>0W)S0[)O9T]"/B#3- TDOAJ07#Z$/2;.M(&?X'!2Z!@ >', MCFM() 5^;-FI@'GO[*959B\(S^CIDT>O9K/)&X&-E],WSR3:=VUK7:#.I_ST MIG5VRS")X.6Y[1QA1)9F3\J@2G;1N4S!DLI6.6T1K6!@'@-%TY7:K-''7J_- MB#P0"@R,J+%K[8,N_ B(.HUY6X4=0B.R#_BO7$F%-95>=R@#O.7T4\V$)7EM M!3@1) G*/ "&3LA7,+1[MH&0V#7LLZ8/ZC/31\/"R0AK @SQ>U)5I1L=HR,+ MEUZ7UEGZ=Z>=72M0Z<*31[/Y_ V25[3AS8H=V2K2L[*2,VY*[>",ULD<(QG5 MMBG3O W2IU!CQ>?TW2$0*<62I:I"M3JH!AS8XO.(M' --K?8Y+3E40\B&566 M6JH:T7OM"R=^'D5R=TA*Y8%Z8MQ)^4@T]-3D?QC;>*C$((;O8$)N4N8?#5US M&\ <@9+I/%K0/$G^"Q?]'D+6L.2X[Q(JH#@Q,4IB KH0#:X=I^WO-1/2':;+ M<45/8>#QA-IRLQ]%B.PZ!=/R$)L]NVG'B'/HHG\ZV[5)'A()+26AI5;"&M_2 M;CGA?(OQH<:"V/UHXBPF3K#@HCYX<"( 7=,YAV>/:9;/<2@U34_ F@W@FZ2G M$M1H\52I#:SA-<+SZ*CG^J'4"3(@#2Z"^ILJM6S<$]U#[=_,)4JRV? M=.VMZ>$V5XL(\!XS8O?=,!@L.D?*?4S3_.5-PJ:,)?Q]&!D!W[V35MM*Q5NE&RE>EC@&[XSXB.!=FJI) M^_>)RRXMMBR"6%S*7,QTT--)CD!MX<:U$HVHW5"T[T5P2$O6=[]U^.E6_;Y9 M+!Y/ EG4)X?8@59:,,1-9_V,AZ[1S!/H >9M1V;P52\I'FU'&?+Y27$[ODX"^Q6<6T6=BFZ,$ M^#G.Y]9Z?6CT:?YB8..4;M.+=PM0'"\VNG#E[.9$6T=DWX#!^.6(5$U\7\!: MI\LG&SY>+Z;T+3LLQX^O[4Y./?K1!J:7(\JN'+=*E\>RC=T@!P9>8H+/2*WP MBB,+93_?EM+B'K8Q MJ=8H7!]>I2+G45<08W*DWD('4K_NAZ=D+)GXY&O2GAT 85>E'!?Q?Q MZ@-L_ +R^5WOV^.CKR,H?1V_ <6 D%_Z4!I&A\_,9?JZNIF>OE&1^5KC1;GA M"J&3_.7SC%SZ[DLWP;;Q6VME ]HJ7M;X5&8G$_"\LMCX_D86&#Z^+WX'4$L# M!!0 ( /=)JEAD4GFY:0, .P' 9 >&PO=V]R:W-H965T4K-BIU\F#+5[F')Z9X0P71ZD>=4VI@>>&"[WT:F/:NR#094T; MHJ>RI0)W]E(UQ.!4'0+=*DHJ!VIX$(=A'C2$"6^U<&L;M5K(SG FZ$:![IJ& MJ,]KRN5QZ47>:>&!'6IC%X+5HB4'NJ7F8[M1. M&EHHU5&@F!2BZ7WKWT=TZ MM?;.X"]&C_IL#-:3G92/=O)'M?1"*XAR6AK+0/#S1-]0SBT1ROAWX/3&(RWP M?'QB_\WYCK[LB*9O)/_$*E,OO9D'%=V3CIL'>?R=#OYDEJ^47+M_./:V2>A! MV6DCFP&,"AHF^B]Y'N)P!IB]!(@'0.QT]P# MBHI6E_@ ]8RBXI.H=7R3\#U14T@B'^(P3F_P):.3B>-+7N![2Y1@XG#F)/Q] MO]-&X9WXYYJ_/5UZG<[6R9UN24F7'A:"INJ)>JN??HCR\)<;8M-1;'J+_3LS M)J/1K^!%>P=.LVFIOC[ MKKS=G[.=GT>?G:X*]DHV%UD8K2^=OYML!R?WH]=&EH_ M.[(CE/H4(4:%F7K MNF[+B;@,2^RG<>%G<0ZYGZ6I7\39MXE;7'NBVLE#JX?M1XUWP8^*F;L*N9_C M;);.)YM3E+]*S*6WI^R*_Y7#ET @-DK]/,S\>1A!E/A1AK*+%*[5>'#6@1NJ M#NZ=T:BA$Z9OQN/J^)3=]QW\BWG_#F(2#PQCQND>H>&TR#Q0_=O23XQL73_? M28.O@QO6^!Q390UP?R\Q!L/$'C ^\*O_ %!+ P04 " #W2:I8"G7^7"(% M "/# &0 'AL+W=OE\K>7;-SV8C 9= N?]+J( MLC":GU=JS9\Y?JFN/9Y&/4JN2[9!.TN>5Q>#Q>35Y:F<3P?^T+P->]])(EDZ M]TT>?LLO!F,AQ(:S* @*'QM^P\8($&A\;S$'O4LQW/_>H;]/L2.6I0K\QID_ M=1Z+B\'9@')>J=K$3V[[@=MXG@M>YDQ(_VG;G)V^'%!6A^C*UA@,2FV;3W73 MZK!G<#;^@<&T-9@FWHVCQ/*MBFI^[MV6O)P&FGQ)H29KD--6DO(Y>NQJV,7Y MYWH9^'O--M*[#?Z'\U$$K&R.LA;BLH&8_@!B1E?.QB+0.YMS?F@_ IV>T[3C M=#E]$/!*^2'-)B\ M"I7*^&* -@CL-SR8/WLR>3%^_0#7TY[KZ4/H^USYA_EX&&)R-J1[,/31TJ+R MVM"LT?6$MDS88<\Y:1L=*7JO?8BT0,_EI9C^].S)V70Z?AT+WJVFMJ,K>T6'OF,GG-503\QRRZ)E@$(;>,4;& .98#P^%=)4BA1:%RK'!&^WJ +/,E95A8=^0RYG41FFCEH8E M=-&D]US5/M0*..W&8[H,Z?=]26FK O$-9W5,R8!S3+V'FAT O3,U+FVZV2CA +./T;XA%*!6$S96&B? M_U(I'V]W^3DHE>L:2<*D]%VIH-8*!]+&D H8_U".?<0;@]S2Z'6*,H@')*\& M'_^_N W%X8'\O; GZ='9@WS>SWXL5&SH+5FV-UK\MF!]-*0\HWQ L$E+I0W# M^0)FGN7])Z+N0!\KH(/2W47MO%YKJ\SCO=41]BQ2P@]R+=4/;UBJO6UB$#_: MRA!P_E:*BV\0CUUS:@7\K?%:M!Q"5T=(DR7RBB; M<=-P]RJLU8UOHLC0@G:5NU+:TT:9NB_;GGXOG92+1IOO]7&.-I[,AM.^C8?T MMO9=%<<"HE#9O(6ZHCD<%%MQE#F?IWR0RG,M283.'&+K(L,HU)&,@Q:I"D+; M?4]I//RU=XWX!&IM]3^))IN=NW5D"H!@):4CHI<5L[C M@DL(UN-BF\!J"6B5&CMG ]K8;QNEFT=!1PY=[>NP*PY)58:,DW4$1=.@4+8C M[O$J^%YC'#>Z2G:&QRXBH[U+(G*P3E=AY$28-_?%?K6_;2^:2^;N>'-51RU@ M1@4RO((I>N/Y@'QS_6T>HJO2E7/I(A*>OA;XQ#F!_Y5SL'L1!_QMD_B]0 M2P,$% @ ]TFJ6-9/<6D',@ T* !D !X;"]W;W)K&ULM7WI<]M6EN^_@M+TFY:J*%J2[2S.4B4K3H][LG@L9_*J7KT/ M$'%)(@8!!HMD]E\_YW>6NX @97NZOR06 =SEW+-O]]N'IGW?K9WKLP^;JNZ^ M.UGW_?;%DR?=8NTV>3=OMJZF)\NFW>0]_=FNGG3;UN4%?[2IGEQ=7'SQ9).7 M]N; MC7Y,*]B4M?P__Z" B#[XZN+ !U?ZP16O6R;B5?Z0]_GWW[;-0];B;1H-_^"M M\M>TN++&J=SV+3TMZ;O^^ULYC:Q99EVYJLMEN:E3'-U8)JGV<]-W:^[[%5=N"+]_@DMV:_[RM;] M\NKH@#_G[3Q[>CG+KBZNGAT9[ZF'PU,>[^F!\:[#AFV;V?^[ONOZEO#F_T]M M6,9[-CT>B.E%M\T7[KL3HI;.M??NY/M__[?++RZ^.;+:9WZUSXZ-_OW+O"L[ MG!F/7?>Y8'A=T ]EO2BWE>/'BZ;N:#<%/Y_:Q+]@FNS=VC'^;+9YO0- ASH? MBK)W!5XLB*+E7_H)_;$LZYR&RZNLHSD<$7W?931!-10NZVDXFIZHC.?"GSY?=.5=C&]N\I7?*FE?8%C2M M(XKKUPG&A\VM7.W:'(/3<[?MY5NLX;>:=W2+!?/"KC>N)>+)3O_]W[ZZNKKX MYK?Y[3S[V_7U&_[[\INSC'@H?=W3:YOI+3-DA[8;0()]DX'O9)<7Y__%3Z[; MOEQ4CG[ =&_=:J@$X+?G_W>>O99E-=NRQF_TQB:OB:]BY%E&6\CRX@_B)S(3 M/?&>\O1]HR,V=:^WGIS,>(SIZ$D4M[[CC M6;'=?MTZEVV$MSCPEM'8/+2,AG]AQ$7>K;,EB://&6;.Z'T C^_RBA%*Y*EL M=6];!-Y.H$N@)(E$Z-\VFQBO@3"77WY#^!#(YA%BN1OZK&@($>NF]Y2#0R_* M;E$U'1UK1Z#\G>[?QJZS[-?Y51H(#NJ3X J8156;.A4TLQE7="XD-5& M[C8N(^(FWQ'T,O=A2W(=X-#)=BYO,0D6,H;Y,Y 'T9WR)#LG(3CB\'67+P2O M NJ[JB1QFRL($@XWSVY.LYJ8S3",ATKAT7K&XOGM+3@$T:^^\>K#8IW7 M*\;73=FQ@G:*]Y3SW;ZZ,9['Y$)Z5M.ZF2[K\Z1!MVZ&JL#)0_?4(_ECJ$6W M8[#T0IB/#"1;K/@%.8GQ^8RI\%J.Z:W;-BVQMMJSY?_<0SXWP<:R4S"=$_YG M,M0)0>=W6C(Q7UH9Y!=3$@Z.9J%S'3J2QQWMW:V$BV,JXNK#DM!U8(Z-W4"Y M((6%_H(2UU2T%&@M[VD-W:ZC?7='-([G7N-X?E05^*DDWD''MIO2(C[R4^R6 M,98@CDW3N0\;QC7ZC(^1E7\39ZM2]*&155E%DXVAG)QX'P0 M#O/L>E+(/&#V(OM+=OEL?D&Z=%6IH)31:GI:%S-Z_NSY_,OX.>P*@'>1;\N> MC@]KRK?;MOE0$NT[.KF_9%\\FW\=?],ZF$3Z5;[ [O/[O*SR.Y+@0)OEP+*V MRU6'8LE$]$2?TS87[XE.2#[PS]?O?B9^T*S:? .A0C9'"46'&8[K%FUY!V0? M6D(/*!C9+X36V3.B%8*.$B"MH@;QU,1U.N)/S$R8GSZ J9"@H(>\-N('9#-A MD[3BHF"I#0I:Y^W1A0(WDX7613H;\96\9?:,5TGHT&^8?UW2*1U:13?00YE; M!#B6]1C,QDM1D4&3\:PJ2$2J,'\-VRS*:F"\HP5@=/>!D YKYO%)S:3Q"<%^ MK0.=7UV9NO* 32X6!DB1-U;#5/)TPMFZ21_F$EXEECDNTY4L030006B*1<] M3U_IXJ?PI1&.K]O\6]609F#GDN-S,G_Z5RY_6== GG MF-F0**S;FQM@23"(5$%C;"H\749SB>FP$?J[SZN!D6,[W%5D^.ZRM2,-4 41 MRP(ZR$:%'BV'%E-Y;IT#)$67G?I=N@^F4RA?FMSN6; )EBI^;5#5E!6-;E09 M\'@?#F;FQ5GM9/M3Z+9@BM+1E :@LM[++"R)8T!P?] M>>+$"9?<<@FO)Q1$VMP]R2RGA-71RZ1)ELM@PC/-!N0:#$D$8SS8?V M%SI&%'I4)S3)-+C+!I7/>SR!R*T;[OYPBUZ06L_EB+KWF-PTQ*^\AKH@3E/# M+((.'LO_6U>7M&&VA.A,W[K[IKK'@QOZL^RS'TG'JS "&T(GHU]/SE3/V;;, M"VB$0?G^7=.2*BYN,E->QF,2EN(P&G9VD5''ABEC#-QN' M+5X'S_["J\7TPW6U7>>D_SA7S427/:2_DCYU\HJFINUO7+]N8)[=._%?G8CH MWS1=C^-EC1$F0\ULW]0^T0%8]--)LM'L)0)\,&)/$-.'DJAOQK2L&,:>O%^S"(Z0AW79+*KSXC-@/ MA.7?-/6J!1C9_"Q7-4]%.ZWR![SXAAX2NR,0OL3_&$V'U4"KOOQBIL,Z A ; MS!C#?>C%>F:WD0>[3" L'K_>T2Z7_+,WI6 H3)V'L'%PGP0\PW9+A[U8$VB) M[;V[23P^M@@^Y(&I50?KUVTSK-;01RJ7TSZN+IY>96PN%FZK7B=5BZI&U0CV ML6YS>&T'K$%'\UYK.V]L@;[HB/?9J=/>6-:3@4?X01QHP10&B,;B4CP"M(T8 M36#IM>R>N7/] S9&2O3_X<&>TS_F-@ZQ90@11@8)=-+1X39J(/ M00^!;*KRV*UB^$TKED]%B-A5(%]4*F)=T.6NBW/(@2H;DNH"!"^X)2IAPD( M3,33K9[4)KJW<=!C:.&2*&QW/VN4%R;S"?+H(G=*1 ME^RUY'=78E7$!,NS5\T*$GG1J9HHWIXNUMED&P9Y49+O-V88X3A.\) MFK3#@V?S .WK(6_IUUYTU(:4XPUMD$<9O@ZLVK&Q1L@LQ-QNF!/2@Q8R*N@55F]H$Q(C8;"8.C&'2SC28$)0('9ZE=UXPS23O%6_ MM$ G#DR17C EC7QH)0 MQ$R]X\UP0-0QHIBJ"B$6G01"[#QBR1 97V^+*L-OEF M[!RW*>'%(BT,_);9AG@:T^7>_O;+KV]N9]#,JF8HSI$) B-&Q\I7=<-B6J: MRM0;*2?;8S[/AAF_@I!UZ^4+B6_1&/W)24C7\&V,Z5XCE%E)%:F:W49D44JK MYLWHH \DY%361U@-48_%%6)&O!!W0LF!&7;8"RM[QU(7)]*T7; )A+\,K&M) M1@F"P;2:5=MT"'4U)-[,8G0Y*5YD@S(_]KB3@UZ ?SP;CO/UFU_Q6,P?>NER MTD<7I77<>I_ #8L'U=).3ZYOH=E?73P_?T96U-\:MNH:&J*M ^""OD"<4Q12 M]JMK7%Q@K4"[%]TL"I*QX?V+.Q/L/;)0#)7)*40=CX!PP73H0"G74<8QW8)!F; MC)=?$0^])6"2BHPAY""4=;*Y^<"1C2[V1*E\4<7$="YU$5E8.)BIXHLTYB=1 MZ! L/2W/C+H*ST<]=LSH>7FFSB@-7T/F"H7Y/7H[ 0EK=/8Q..TW'\($7GBC MH5VY\/4#XWH,^I &0>N@A7@ZM ![6?/[!#H5*1I:PTZ7" HP!!B1%\(@C(;K2( M^$F.P)K?-,H3A@5M::81FG]).)"# ,M!L7&4'^.-5<\5]@(-H/%(DGP*CR#% M=5U6+F*#>870_ Z";"?+K3C]JVC9O, <0 *)+ 73G,P POQV-TL)PZ.$$2?R M93; &NQ--4#@7,<1$G89@S-U@L%TRH ^ MS%39VC#Z)6UTL1C:D0/8F^UL[-=J";/+;(\MZ!R%@T^N87J(4C&)5/C8'C0H M$=(%9 VS.&D#X?']&25JX_,X%YI)$9 5RBWMK>['+!G\;%FR>T-Y00XA([)' M+%US&<;^H1^0N]);)MB->)V5T!D9.95'/,(&V+8;.U' K6$EP+ MDF24'5A+)MW@AR7-,*_CE^N!"V?LJ>N,L9 M7I31F"1DL)>D13DLAN3J0O6DFY=O_GH6RP_AH*KNF4J#X$\46I<0"$A6Q !K M%4G$W=UQD$^='C *G+A]E>M(Y(4P^,]!DBT\O_/$'#&^.[=KU!NT+R;VC&W) M"1=:JD )S5:&"5Z8. ="Y0/;."(%S#'(IDK$3+$-[&RF>G[82V.29]MPK << M@;"&4\:,LPFG.8>GG^%'"_^/Y@%QG#B^-M3F ;6EUCLV<*%Q1LN.YJXY>D 3 MY??$:/3K03@HHK95-7)H*K,*;MA8FY$#MS"!'3DQ*%I-%>>!*L^*S\DTJ$B_ M#>HC#&_+YKD30()\@CF$.5K$ZMLD7;8/P5K,A7F^&C^D/J<^K-$>["+H*0D9^ MIS/!AL'YL9C8TO+8(A&]*%? N#!-OB3&'BRYW][#,G/>*?IS611TT*^(,\TL MP7-*-\6[Q+\JJ$?+2.3# B][C>R'3];XXFG/WFWA)(%41Z^NFLO8^;00($Y+J/K3Q::G\C*9-NP%D1CFL M&M#HHGQU'VD,L[.KFACLQA@T$RD3A2K8@:BV/6@'VF MKFZF]QK0U$>2#1049_Q[:JLSCP=^02S/!Z=QKBU@EE@S8FK-LU=AKQQN5;&Y MR*L%!S'T=1464I71B/A77$O=6TGP@E/-?4">/2$5S (DV6D.N$HV<;H5]':! MH'#B;O(!XD[\QZRR;L2N\>87L@$6#>FO_Q#+1O<_L\/DEV$82@HV[U$B%IH" MRLH,/3_?-/>FGS5WM#G72WBVAIX[2V8G<"T'Y'_O7AL MF<_,^[Y+\0P<5*/##(B>W8#Y!Y?XL1'G$8^4=RHR.!,OAY?8@MO@T*P!W9GQ M'L@+GIO@R 6:MD@X<9IS299,N>(41O. M@T9TEY#R(&HZ,'.1[C0>+>]$3V!36;P[QB ]#C2D2/(K'",TM!<$PYQ8D_?[3LQT1.MX/& M2 !VKV!6NY X$U5/B30*0W?CL7%8Q!@V4I?!KAE&!_&IFF\)!\EH)38H&?TA M 96_\=46S/@-5PXH&+QRI&HY3P=<0M&QCU^9S(SK7;QKUF,K9QP;%^FZAH9G MCZWF^X"^ Y<"*^=UYU5'LKAIWJN[#^+*\3XX9Y\9&BALP?ESR8XLPB[H!E9Q M8%L<+@"5L<[KV8EB="I-@A*V\&4F82A>LJ0JV&%QKIBY,WR1"==VT4FU(L@M M5D6Z_A(I: *G,PB?D631)P%$ ]@4?9O,Y&$KG;&H^-(Y=3J1?.W=3$8$4N) M44PT^+VRIWT$$Z&8%$R97*6CJNVW,%W 6SFX4,@DYG^174.%RXGWSK-?FF"M M6[H)O#S3[\OZLMJJCRZ17H&\Q:;UMH(N;I[]C*C9'C"$LO:]37'T* H-N7I5 M(I#%P4D$/@=-]E9E./BZ+)'\U1M?@N-SO&":,'E)$)0_OAO*JIC.H&$DZ'=; M39!J829#UF0=RII@1<&-$#FN32F3T]/T7'5*DRJDS"N"CL1Z-)O0#$(87=!/ MS,3PY]\GKQ/Z'^/47WE._=5QWFI,C>D:I'"/=-I^4F'^S*'4Z<"Q(,Y979>K M-1"3LPYC=0%5663W=<:SX&QKRU4I;D,D9(AAD136$9@K*(&2US*>/-2J&1*. M5V?5@F0AP^4J<7?2#7=F),+?HF>KIGD@+B28K>EPQ5?1A3HQB1YA<:LAYR2# MD>]JU=R[MA8O02OY4*JC\-]>F.618J3Y%>#RL)A)65&YA9CFAK@*.#1Q%R<* M@P4D_<[ZAH9S* 'Z>O[4IR72OB:*/?^273Z-2GKHI?W*+BTK!$B4"S7U!(#3 M$C-O[TORG[E1RBZ8#+7K$\^ F@WF$CE@>D4&%YLTFVWKUNB?H-551\CE:T\N M7Q_%\;<*=9H-Z#Y%)!\] ,/I)A&GWO-2N97$K:/\5+ ?]88\E)SB0##W'N68^8=J8%^W(+G 05,( 4(O M!;[)UN:KC//W4OU>O9@V()EVO8:(9($S;[S83+/8K^=Y"C.+O+B7O/3-R%1_7B=X?BV^OGW!IA"ASCX\29T)!+F)@CO5H=C/C M/N),G;CP#6M%ZS]LG/F(=>J,1R ')8K$JCG?P'R2NB).\N\E6&3>6>_']$[' M*$;E:Z_5YY)[;? JE=V2H5T+28B"$ M.#-$G2?S[&U"""7GJ"0ZH?= ,,>%.2''>%?RP,QJI:6%1'G) K2MPI3D3,&] M,]!2IE2+\W2G5F7BV@T.&G;0RW[QN]=AS"0P/M=IM'6*ZD2?DTL?H6#DVC*&F\H,J<*;-GB3!S_-,7<;^:S]L'2R2.,SW'+ZWA=*)KQ<9@X M\JDYF?0VL9BRDV!Z$27SB-^@[-*E1-39]\6]ED(DKE" 9A&H5'2,@81; M]A/O[BD!B"@>B092LT1,IN.]!*B4W8ARM8(XI!#%>/88@LVD8M0Z_X2J/OTN MC,K#6=X4URG@7;)(MUR*RST-!* L;L4)6T".PLT&T:$"&AGYXG*'M*QH5Y*, MCY(KHUWD.6D.>BB1)BM@)EK+?3 6(RU&4*0;]S;">(1UM,R\DE155G6PA&EW M>)#I/EX3^?Z/B0_#$,6&=CJ:P'PV//'L&VK-4;D:FI5='NTN1O*/F)@4X]A& M#TG7SQDHV_MYS]Z(MLO'F"^TV%=B?;6+&K/DH>Z.Y.J=%2^:\ZH4#YGYP8HH MPF].._9!*K3[X\!5"Y\:LB>U,*]E[V_;LU;8 MW&O<(=3E2R9U.+8XI#2+;*&K^?/L/'LZO^"<.GHD-2(26&MSZ([G +,J]LC2 MD1(18YQP7B"1@14!]N-R\IJ3+>:I\IJ> V<Y&ML'8U0\:9KA*A.0F"^N0H!H<&=I?'6\O]K6D*,)M)G/VX3T5E,!Z_LE\U M\2(H_7S,ZEBSE@-V_(>C@/S)$HMJ44_HU38GPF4!N,9)]-$P3W.PN$Z1Y0\=TE2+2=C#8YQ M![0%:O/I7*8PD!US=,4=.AQ=5>?U)PSWGBS-,84S MM3YHQ:CW)\[$I>L%>0RZ6?#&^*X&G,S5T*I9,^ : TS"W4&D3&JFI=7(2]"@ MK;@NSK5HL""R[GRNH>]X@)JN_%PH-BFQDZ!G%+SR17\\B"^D8$?3%)QP?B&A M00-QVE)3MQP/J?$Y47 !^\0CF7[G4]CA[91_3^"@F()65%'LS8CC<:48=K0? MFH!A'9WR::JNL]4%-!EW60N5*&@'S*OR RX_:4!-(D\'3)680SBYI\S\2ZS_ M:#-2IKQO/,_1J<-*WBS4H.:+^898218'AS"5PZ0VVE7;GYIJVO)]+*;UMQ,,5 MN#-:JHWA+)'C2#/'7D,ECV;WHT:(FR3$R4E\)CNR0!/%15PD:@&>2VC?;8A3 MHW"Y[$;NXL@L""H@HR1;Q7F=C;MCDUID7<8QU4Q,?K8(8.>J5_L@'H=^04&= MC1NS1-F):+,S\GDC\@B'Y#8XW:5#LZ070)^'N'?0!,U'*,Q:3S3]7=/@)E6)C_LT>V=I"K,$Z@<2(KTL M@P3I+ ^OE*:LD7M?7C#R,14TZ6VGV>F,'=;DR9I/Q9T6=UL7SS,N81)7BT(] MF)IHX^'/>6F--.C\V/+,0IH.(60[6(^7KM="&"V=0*Y(82X:+>,+V=A6N<H\0HHLDM^[6LU1._E(*W$*S<^/BG M][#RYM.J&R]EB<7YV>+L5*YJ0(6:2T)G6B64%N@'0!F1;H7OBA$65Q#Z+I63 M"93>CNGZH4A3WB.)SNIDRU2UV&F0B \ O;3P IM_M&LO<7U"M((F1(\C2?<.Y*AZ\]K.R"U]GYT?9%T.@KLR&B%78QKY!@5PJ(TU9,P MI^S6T6ZL7/'!I6$:2V(#5 /B!A6+C6-&&_&]&$=.-L!]QB3&$F4"^M)90Q)! M("V7\;[IJ"N[XN ^S$=2J?9R'ML-[NQ.>ZA ++:Q ^,HIPY9K9?'$U&Y;:ET M/D@RFB6!,-"O]*.M#J$1OZMZ!ER.LXAUF:?ED5<)XD@5EX+ ME>?TY.WM;]T).IO&RO@Q+Q%/:2^N<&XAL]1R]]V$1I:N*3B&7E8DK8_T1(9:@2<9.(]9XW$0].- J+).C.1=>:]&2U[G)IQ#/:J7/]U MU%-6O[1:#3Z4>9*%Q_J^]JM-FI#R ,Q2?3+6D6ZG,R7Z_=/U8TUAQH]-NR0[ MC$O^V"V=^ C%?[FSLF)TEDD/V.H'ND,TE&JTA]S3A K!,#0;U#M&6?AW);P8 M>FI6I_+CY/%]XJ+\$:^0V10A[6/S^QAW4ID2K)"2^XG<26QVJ0X[Z^$ZU\[+ M!_F*('2RI='"_0(M%WFTO-C?)^L,91I,=10D^+#.8@DD'+,<768QK83'^2NB:C-8HW9S$J&$8--W9TD] M$C1RZ9+ VJYF/WDM)+G-P?< U*7@:/1P?23)0DC$NL)3_3%ZC7>(]CJ!(WA+ M0G,!9V$16BH2>7B:A6(_,%3A4?,5ZVBTPDE2 MIB'-XC3QN-,46X/][7R?389>/K M*Z*N!!Z95!N,L)S3$LP,$TB:K:)L*EC2$@N:'#GJ'.7W(3S/-_35)F+ D]"A M(X:-1R_-I4-JM7)H96S:@PS-F:3#9$1T[*":WK0EYL7[CM6P1)TWL'OP3KN% M"4@&9V$HR6JDV8XP1CV06#OA5"4M.GY0#YF/)OCV;20+K&@K9-^&:X8DB*]' MN*>A0Z#XD^!#M@9*^A6[;^I5C'AA[+WA-A#5V^HPX<:M-I2KL?'I0Q5QE;DV MU#M%&/ L9.UPDH)I\3*7;/6!;^S3:_^I MU0LJ_R!19DL?J=\3*OH8G_:K0D8[C0]"NQ&/CD%SH>-B 95>7,65Y-?IP26B MJ^P3)A3"?-%"+>@R<1&06/+"*.7J).+4)7>N"S.+)TF:4(]$VT=*X!<"PP0M:;AGS1>"ZQB@N&N/*O/6+II-O'X9T$1CC] MAO;JY-PR-'&TVL7C]J7X]K0>16IOXC(>.\## M"])<]J+!]17<\N ERKMUT'/Y5(]N MW"=%[[F!^((CTVY\L0\2PIV4+/F!1=DSEW'$R75?);I1$9TN!RZW<]O2;)]Q M'M!]#ELN_- M>EONR9.C:/.XF\=HY5$M2BU^M>6GEC&2:F^#?RL" ^O"_(4XHB; XKV4\?0A M.2A!A]0R22L-N26H6%Q($#7Y.1.481=QY#H(UQ8M#1>F2Q882=D++([Y!$W1 MO_&H)?J""6C?^$PK%U*U_Z %;\3EC?<]RSW&\-C4BLT)>#M&*0V!EVHV?YE: M(",K6 >T5!KM6^.M>4A?LR/#3D)(V)0"=?E.O6SE!&AKV4_P G ";E&+=.X) M[25/A(ETJY:TL9I'E%#$YS=5.^40WLJXRP1+GLC*F97 M^[N1X$_+'-4/9A7]!T:/U,.$[^B"_GH[7( M7[GCN2; QN5#TYZD!S=R)+%*/;D$:[HQI>')%9-B"HK,\NGM 1L_T7=WE/PY MDM8TQ:DD'2HWP%][_.#W\18_>7,A_7\$;BD*E? M;ZNATX[9$UF@Z[PM'O@:'+X-R/K\BKL("(=+5"2/)BH-U4#?@14=$[2S3U(7 M)VW"HV(Z9"M]#C1"P^5UV=K](8G>-G5ER:=#1D>T_SR_[@B.W'X?QHW+0O ^X'ZYF-JOKP?G[JPY; MOI'&K+UF4XU)Y,5'\KN00/>IP<4Q,J<:5K1()%4U[7NOU7-TA+LW:/HNUVY. M=F.,=:"=X';?G#.A^DZ_HA9UWLSMCID!G"GX,6I_>N?'^#-_.2[:]TMQCU2< M6J^A^,8NPN59W-- >Q9%4$TSU-7T]E>G2 5,ZH+WD2US@2_35 *S(T2H2J[$ MK\-!ZM!*D,\,#;?N$M%H8V5U; 9=Y+$-?+)) M]OC*'[')'E_3L4#M_Q9R,_-'\2K5.-^-Y;>U]!]/+_=G,6ZH,<,)_WQI7 ^Q M_]C6'C'UC["#Q*R5_@J\]C@IQ(HX4Q28C)?R8N)HN??03 M>K9L?OW?0^=L3;D)H< _C9!;NSUOA MBKA4!QK]>S:(&@U?S9Z%W(+<3_#*Z"9EQ" 8-WSXA+0)BGN-3DT*G1>U>E&0, MM/E#'&<-<;_T"L^0SC[S]V!&O:5V,U^#8)GGLR0'GW41(@ND=!F1GY*BE4O_ MI;NF'E@_MHM*9]JY>CH3]&R>O1D-%M6#C#+@:'"29WK)E-R*RY\D50\RB.6S MVK46L(J"=H@0.C?Y"*G] 6-5@;6VJD@XY%L'?8]5KZ8TOO6[E!<8X.)XUOYQ M-@^N\'7&.]*XMWE9&%=IK0\:U_ 4$Y 0HW*A!>N6*?K1]S3]8!@]'MGDE4]U M4RJ-"PJ2!CEIU0,'3._CZZ.$'><^J23GZ.I^^BCI/(RTAN>NCIS?AYN2'W4H3 M ^*AEC5X^JXAKI]=?75Q]@+7,B=WK,IK3$SVY0_^S@2^&HEFT-%1,*%N/?'F ML^%F$M*$S@C4#YO+Q3'(A/:T1(_O?LA#NU+%AN79)"7E_,I2FDW G Q?T/'KE>Q(QNPRNL:2RX,O8A1TTG;Y,[TS@@L-&XC[VAI/\#42=H4E^K3 Z:XWM)/NU'$QMLB;LI7N MI.#"!/!*50'!54TP/$O'A5#SE9RD]@[-JAB4X(>&H_Q5,,WBQ'S38YEBVOX\(A^^ +W1J)3 M_FK-EP*4B,H66A-5LC]8XD"?1TQ?[Q%3 &E*5X2]HLP"F05UN8_V;>BY#5"^ MLM@);MTK)7'\].3V%:ZX-3&C&@PX[N OX:!7B.=SD3C3P-.GYY>75U\^G[%9 M_*I>YRJV>!H3/]96AS9U4[&;_=PNL8ZI $?ZVBYB@JL7N@_FMFI(896X$0H6 MO=W08(3@FPCK%/Z:J(@&]$*ISN[)B&^SK8T]*L,5<(:;: 6<@( R C@6\EC; M4UCAO(6_Y,CF*55L2=O*I<9)B5=%]JQ\IMT@7D'W7LOMA\3B;^CD!2&V6T*4,VYB!=Z_"'?-67$JGL6W:*K#>!=U:I']L)_02.Z8"G@56G9?'>^S M37J:MB71#,0I7>]3Q_"-]H5]R#7,:F &>+8NZH@B"7_<$\?[/Z4_%G\=-\7A M^$CKN/=3W8S.>JH=!Q^QZ/=PR$0W[Z57?*JG*MG+))2?L-_AA[S/O_\6+-;= M$$/F^W9J A!: OM?P?VAB+^XOCIY0E^&U[__=INOW,]R2W!6N25]>C'_\OF) M! ?LC[[98DA8?WVSX7\BVNE:O$#/EPW\[?(')D"HAI?W_?\ 4$L#!!0 ( M /=)JEA)9!MLG0, 'T( 9 >&PO=V]R:W-H965TK7CV@;L=,,ZM%N0I-N'81]HZ6P)I4B-I.)T MO[Y'2M'LPO$&&/:1NGONN>-#G>=[J;[H$M' <\V%7GBE,8LWTM6Q0 MT).M5#4SM%2[0#<*6>&":AY$XW$6U*P2WG+N]N[428&XO Z.<);Y%S"T0T_NXQO2&E#3RT7]!_ MJBR9RE;"' M\F 4/:THSBQ7>2Y;830U.,?JB6TX^B!(#)>/UM97\\!0&NLW%FNF&Y;CP MZ.9H5$_H+=^^";/QNS/E)$,YR3GTY0-=U*+E"')+(C]]G*4-?[G7CTJ%B! M!^ :+B"Y\9-)8HW,#]-H=(^/1;T1?'4$F0*2D81PFJ9^-,YC$_C3. M1L@@W$DCL#.-*5I%37=NIE2(4'?O";3OB>_%08IQ MFH ]TT"?3E5Z-GH\$_J]X!R24]::<<>*&=C@KA+",J'V-*@J65#WNY.Z(!&% MTV3TH2;I&W>C"MFX^6%[^?"9T,+LAS#V ;=;=",%?F&BI8$&O8KAUV %;]], MHS!Z-UH5U *UY"73.V(K)& 3 DGOX..]$2RR7B(/>!,=1ZQ[136LSVEF.!@ M)-1(B>W@(Q)6"]UT&':'V;KJ1LJ_[MU@INY2PS1PW%+H^'I"BE#=L.L61C9N MP&RDH7'ES)+^'Z"R#O1\*Z5Y6=@$PS^.Y3=02P,$% @ ]TFJ6)C>1@V( M @ @ 4 !D !X;"]W;W)K&ULA511;]HP$'[G M5YRR:2H2:T(2&&,0"=95ZT.EJNVVAVD/3G(0JX[-; ?:?[^S QF3*'N)?>>[ M[[Z+_=ULI_23J1 M/-="FGE06;N9AJ$I*JR9N50;E'2R4KIFEDR]#LU&(RM] M4BW".(K&8#(.#XYZO*^L<83;; ML#4^H/VVN=-DA1U*R6N4ABL)&E?S8#&<+E,7[P.^<]R9HSVX3G*EGIQQ4\Z# MR!%"@85U"(R6+7Y&(1P0T?B]QPRZDB[Q>'] O_:]4R\Y,_A9B1^\M-4\F 10 MXHHUPMZKW5?<]S-R>(42QG]AU\8F<0!%8ZRJ]\G$H.:R7=GS_C\<)4RB5Q+B M?4+L>;>%/,LK9EDVTVH'VD43FMOX5GTVD>/27&2Y0-.?A9;@75!8[*&6+53\"E0"MTK:RL 766+Y;WY(M#IN\8';,CX+ M>,OT)23# <11G)[!2[I>$X^7_*?7%[CBIA#*-!KAYR(W5M/C^'6JXQ8P/0WH M!#,U&U;@/"!%&-1;#+)W;X;CZ-,9NFE'-SV'GCV0 ,M&(*@5'%W3*9IG@4[3 M/$*$0I'(C,72E;(5PDH)4BN7ZVGO@DMRJ<8P69H^T)T457P@$S6;@:-!O(>%^K+54"P@>5&R70(O#N MJBY@-)Q G]8D'4*_]Z@L$P27#"9IZM>/T0A._>[P2!4UZK77OFNVD;852.?M MQLNB5=7?\'8V4==K+@T(7%%J=/EA%(!N]=X:5FV\QG)E2;%^6]&(1.T"Z'RE ME#T8KD W=+,_4$L#!!0 ( /=)JEB!Z<*MWP( $X& 9 >&PO=V]R M:W-H965TZZ*LFQ8NI4U,CI)!.R8IJVBE6NC<&=3VNVPD?4W^N%I)W;HZ1%A5P5 M@H/$;.9<^N=7H?&W#L\%KM6[-1@E2R%>S.9;.G,\0PA+3+1!8/1YQ6LL2P-$ M-'YWF$Z?T@2^7V_1OUCMI&7)%%Z+\D>1ZGSF3!Q(,6--J1_$^BMV>B*#EXA2 MV5]8M[[1R(&D45I473 QJ K>?MFFJ\.[@(GW04#0!026=YO(LKQAFLVG4JQ! M&F]",PLKU483N8*;2WG4DDX+BM/SA<2:%2DPGH+0.4I**B5R#4PIU J.G]BR M1'4R=36E,T%NTD%?M=#!!] CN!-8KIO_$NT>RY!ENN5\%>P#LF3V'D M#R'P@G /WJC7/K)XHT^TWV[HB2NT-;BW-;BTVH=PW=7BY^52:4DOZ->N,K19 MPMU93%>=JYHE.'.H;13*5W3F1P=^[%WLT1#V&L)]Z/-'ZM*T*1%$!O4G=[F+ M^U[TW=P_?3*)H)Y5&E-#BAP@$R4U?\%7YX/C@I-)-(JBU0G0E29Y?Z=P@PE6 M2T+L+*/!,_)42.JS6JB"L \A&D[.0ON-X_%_Y^M"YS0L2F;2UTSJ-_"'D1=" M%'B#+7-L+US!V/?H.(C\_DBS#=G#L0]A.![<8(8D+25)2ALU$E^1-PBQ[T,< MQX/'1B*EH"XT&24K(8K@Z& 2^,'%X'Y7<<+AA(1&PV@T&3P)31&'X(=#+S[K M%I,SV/4NW'<]7J%1 M [*=7NU&B]I.C*70-'_L,J>!C](XT'DFA-YN3(+^+V3^!U!+ P04 " #W M2:I8V:YPF(H# !V" &0 'AL+W=OO(+QB:(&N_DS29$F MKMW&W O&C3=]C#L08F96*AM>9*'IJ'8J9[I9],CFCAN2PJ,_-S:^M)$)AUCJ4P5ZK&BDXV M2I?"TE9O U-K%)ES*HL@#L-A4 I9^?.I>[?0\ZEJ;"$K7&@P35D*_7*+A=K/ M_,@_OGB0V]SRBV ^K<46EVA_JQ>:=D&'DLD2*R-5!1HW,_\FFMP.V-X9_"YQ M;]ZL@3-9*?7$FU^SF1\R(2QP;1E!T,\.[[ H&(AH_'W ]+N0[/AV?43_['*G M7%;"X)TJ_I"9S6?^M0\9;D13V >U_P4/^3B":U48]X1]:SL8^+!NC%7EP9D8 ME+)J?\7SX3N\<;@.O^$0'QQBQ[L-Y%C^)*R83[7:@V9K0N.%2]5Y$SE9<5&6 M5M.I)#\[_X*4DH'S1[$JT%Q, TN@?!2L#P"W+4#\#8 $OJK*Y@8^51EF[_T# M(M,QBH^,;N->P*]"7T$274([?AZ (QL(9).&8GG$\]I:YTO8' MB[I\:S%.8!Q[C\J*XKUC&L;L'D?> ];D22QD-?'N^)0X:]QAU2!C)T-^1@,R M-.B($C?JU!W=0#7=)Q:B%.AX25*P7]5Q>?&-AKA ?F298ZM3!;BA;,Q<+\JY%;P)6=. M::8WSFG-'"+J+N('P4#=Q@;U&AKV2"["'*1C)A^U\2J:-I,,-6?G)',&PW#D MT7( H\& %T,JX9@7(XA($;2@PKS_[/7Q T27H^NQ]P6-F8 LZZ85!TD+J2[G M$$4)7'@+SHXH[T1!.J' 'W,JI%C)0EI)_7!&F$.J\EVC-3NQXGB(]+B]D-,H MC?\E_.[\$BIT6EU_ !TGZ?]B=U)FP9M94*+>NHG'#=Y4MAT+W=MNJ-ZTL^35 MO)W(5+"MI,(6N"'7\&I$2M+ME&LW5M5NLJR4I3GEECG],4#-!G2^4-QR@ M^ZLQ_P=02P,$% @ ]TFJ6,&ULA57;;MLP#'W/5Q#>,+1 4%]S:9<$Z!4KL )!VVT/ MPQX4FXF%RI(KR4V[KQ\E)UX&I-F++$H\ASR22$_62C^9$M'":R6DF0:EM?59 M&)J\Q(J9$U6CI)VETA6S9.I5:&J-K/"@2H1)% W#BG$9S"9^;:YG$]58P27. M-9BFJIA^NT"AUM,@#K8+]WQ56K<0SB8U6^$#VF_U7),5=BP%KU :KB1H7$Z# M\_CL(G/^WN$[Q[79F8-3LE#JR1FWQ32(7$(H,+>.@='G!2]1"$=$:3QO.(,N MI /NSK?L-UX[:5DP@Y=*_."%+:?!.( "EZP1]EZMO^!&S\#QY4H8/\*Z]$TG;OL@Z3T^8/H$T[D,2)=D!OK23 MG7J^]#^R^S 73%JO_GJK'GZ>+XS5]&!^[9/>,F?[F5T1G9F:Y3@-J$H,ZA<, M9I\^Q,/H\X&\LR[O[!#[[(&*LF@$@EI"O??J]F5\D'-_QOO?!>2*RM%8+%P" MMD18*D%US>7JK'?$)2VIQA#$' -=65YV=P97F&.U0+U=27M?D:JI5*( 7I&6 M%W01#'R$>)BX<3#JW7 4N^'C?D1[?NS=RK8EN=JVF)=2";5ZVW$>1&/(AL/> MHU(D>46P=!P[<)SU+EG-+1/\-RDQ:FG73".,AC&,THP M 5I?SS*:,S2M'>> MYTW5".:$%TBGE/,V\!'QC<<1'/O9,*99[U!)D:S^Z6GFO^,DA7U/(MRIY@KU MRO&UL?55MC],X$/[>7S$* M".U*5?/60"EMI99R=T@@K=CE3@CQP4VFB85C%]O9LO?K&3MIZ.UU\R6QQS// MO#R>\>*H]'=3(5KX60MIED%E[6$>AB:OL&9FH@XHZ62O=,TL;749FH-&5GBC M6H1)%+T,:\9EL%IXV8U>+51C!9=XH\$T=(W2<"5!XWX9K./Y)G/Z7N%OCD=SM@:7R4ZI[V[SOE@& MD0L(!>;6(3#ZW>-;%,(!41@_.LR@=^D,S]-<)^4L>_L,O'!Y@K8?P7CJUNE@:0-\:JNC.F"&HNVS_[V=7AS& 6/6&0 M= :)C[MUY*/<,LM6"ZV.H)TVH;F%3]5;4W!<.E)NK:933G9V]5Y:)DN^$PC, M&+1F#)*N I,%E$H51RX$7-TQ.C?7B]"21V<7YAWZID5/GD!/X:.2MC+P3A98 M_-<^I$C[<)-3N)MD$/ CTQ-(XS$D43(=P$O[]%./ESZ!]^MZ9ZRF2_3M4AE:+]/+7EQCSQ2^C-P,Y M3/LOVGV6C.V69Z&2M9)WG M3=T('PBKE;;\7^8'PQ4IQ&D$UWX5Q2E0OG8^LFD" \QE/7/9,',T M8HN&?% -^V[SAN /SQC?"^/+>;#HU9V&')I72Q4C4.J+DJ MJ-*OQFF6^G^6SD9WFDDC3K3%TY:T>)8196=0Y/X12!*G/=@EXL*S"5JC+OT[ MX6YY(VT[3'MI_Q2MVPG\6[U]QRAK2L2 P#V91I-71)INWX9V8]7!S^.=LC3= M_;*BYQ2U4Z#SO5+VM'$.^@=Z]0M02P,$% @ ]TFJ6$?1DF )! OPD M !D !X;"]W;W)K&ULK59;;]LV%'[WKSC0BBT! MU.INR9YM($D[;,"Z!4FV/M/2L264(CV2BI-_OT-*5MS6,59@#Q(IZER^[_#C M9;&7ZK.N$0T\M5SHI5<;LYL'@2YK;)E^)WS1_[6X5?05CE*II4>A&"E"X67I7T?PZL_;.X.\&]_JH#Y;)6LK/]N.W:NF% M%A!R+(V-P*AYQ!ODW 8B&/\,,;TQI74\[A^B_^*X$YF,O72*SRH M<,,Z;N[D_E<<^#B I>3:O6'?VV8S#\I.&]D.SH2@;43?LJ>A#D<.1?B*0SPX MQ YWG\BA?,\,6RV4W(.RUA3-=AQ5YTW@&F$GY=XH^MN0GUE=E:7JL((/3S3- M&C4P4<&?ID8%-YU2* S\WK!UPQO3T-^+![;FJ"\7@:'D-D10#HFN^T3Q*XD2 M^"B%J35\$!567_H'!'I$'A^07\=G WYDZATDD0]Q&*=GXB5C)1(7+_E_*G&U MUD:1IDY5HD^4GDYDE]E<[UB)2X_6D4;UB-[JQQ^B:?CS&1KI2",]%WUU3\NV MZCB"W,#W43K%Y&RNTTP.2?$XJ71)RR$I/ZIC*6F!:T,.!)BL8",Y[12-V,XG M%XV@(=EI"J$O@6:\K,3.Z0,YMSQY1YIJWAM%_D)WE([S2+CF*WEA=S>TKB3[.0WD563/JZLJ_9 MQWZ;!T3 M#5&<013-!HROSY<%4&0S:@L_2@HX(]ELE&SVGR6[/S!W56+\I"K/A[NR&[VE MO7X&*DDC*W Z0KBAN6/B^2?];1H:(:7J07UZ/GFH%2*T_9Z%=L]ZT=_7PG1R M= J\9IR)$H$96..V$<).!]$:<+RA$OMA:*%+59- MKS%6V=Q5IVPHRV*(55#Q(S]+DPF=G(:3AS":CH8*3QA?0)'.X)+:R(_"!"XG M-S436YM5' F%#GF@E?P6GVA)VA#[%W@7D$5]B"2D]I@JBNI+DJ&?Y@/)+,M? MY#Q6FRDDDE:\:&=G/JR>TX([*+_PPR(;+ 5)^91UXJ=%"*G-_QT(3XDX.#I4 M6U1;=W6P^U4G3'^^CJ/C[>2J/Y1?S/NK#0F'M*!I76[(-7R7DX!5?UWH/XS< MN2-Z+0T=^*Y;TPT+E36@_QLIS>'#)ACO;*M_ 5!+ P04 " #W2:I8 C?F M #8# )!P &0 'AL+W=O]W)\F:B[D& MUA>)I.Z^^[Z[XVF^-_:K*Q$]/%=*NT50>E_/PM#E)5;"79D:-7W9&EL)3UN[ M"UUM412M4Z7")(JNPTI('2SG[=F]7&_!-54E[,L*E=DO@C@X'#S( M7>GY(%S.:['#1_1_U?>6=N& 4L@*M9-&@\7M(KB+9ZN,[5N#3Q+W[F@-K&1C MS%?>_%DL@H@)H<+<,X*@US=H>DY=T%:EF^%5XLY];LP;(UH?&BE=IZ$SFIN2B/WM)727Y^N395 M)3UEV3L0NH"UT5[J'>I]Q5AYO\ #>%]X14.GBG M"RR^]P^)XT T.1!=)6'>FJ+)/3P):X7V+_#0!7:GZ)\/<,=71A+$Y@5JM-(4',"7 M2-FJ:J%??G6P/X01>6X;H?B$,NI@:Q3=>#<;?2PM(E1=.R"W U Q\Y*K.;IH M 4WCJ ;NLBTN/]+12BBA9.F(9I!7V#5%)0H\87P!T^P6 M+ND=C^,HAZ5%!NI.&,T+H%*_@:?I>.^.N2IO54PB3N(-*+WL51*S_U)&-@Q'%?P_7X]I;1IN-H M.NDMM=%O3EFGXVP:0<;Q_P?#4VT='HVG"NVN'<(./O7 MO/M)4.-0+SA0N"77Z.IF$H#M!F^W\:9NA]W&>!J=[;*D?Q5:-J#O6V/\8<,! MAK_?\A]02P,$% @ ]TFJ6#OD8O;! @ ]@4 !D !X;"]W;W)K&UL?53;CMHP$'WG*T;IJNI*[.:Z%"A$ GI]6 DMV_:A MZH-)!A*1V*GMD-V_[]B!E$J %#EC>^;X'(]G)HV0.Y4A:G@I"ZZF3J9U-79= ME618,G4O*N2TLQ&R9)JF.)J'619V*&E>(E>YX"!Q,W5F M_G@>&7_K\"/'1IW88)2LA=B9R;=TZGB&$!:8:(/ Z+?'!1:% 2(:?PZ83G>D M"3RUC^B?K7;2LF8*%Z+XF:Y!E^9%I%D^D:$ :;T(SAI5J MHXESNC*X4%J*D7"MFK^O=,UL7J&XGKJ9CC+.;'"#G M+61P 3*$1\%UIN 33S']/]XE>AW'X,AQ'EP%?&3R'D*_#X$71%?PPDYS:/'" M2YHS)O%N;C4OV2L],0TS*1G?HK5_S=9*2WHOO\^);[&C\]BFAL:J8@E.'2H2 MA7*/3OSVC3_P/EQA'G7,HVOH\8IJ,JT+!+$!FSE(3G.&+\;& 5 2R9^RV'N7<]"9J!7C MJ;JU235#V%L(I8TRB7OD-<(-!/Z QJ$_Z#T1*XM 051U>^HFE4W6T(<@&O56 M5-Q'D=][%IJ< MU&79-^0^"$?TC_K#D0?G,NJ>U&*)&PO=V]R:W-H965TS4=H;9?]]K)V1@Q++S ,3.OQ$L)C59$\WU'RIUPI'08]2L(H*S:0 17=S M;QG=K1(;[P+^9O2@3Y[!*ME*^60''XNY%UI"E-/<6 2"/\_TGG)N@9#&?QVF MUR]I$T^?C^B_.^VH94LTO9?\*RM,.?KPGH2X2X@=[W8AQ_(#,60Q4_( RD8CFGUP4ETV MDF/"FK(Q"M\RS#.+O]#W/Z76L*8*-B51%&X^DRVG^G86&%S A@5Y![9JP>+O M@(W@DQ2FU/ @"EJGG[ M*N^2INNK?BX5I5"U/E+K(Z +>6EM&%@;K!>C@>T;;OOFA@DPI6PTLL&5?X8; MF/A9%D'['$5^EL9P._CJ]@>BD6>J<+N#MOPTX$&A#>:B+8!G#.2$YPU'I3C> M]C*+3J9;LD9U+ANB./&3=.J/L@2B,/6S:>1'T\E@]:-$2RT5!P-9>&\.!Y6Q*BI]W=>?R%.UT/7I6^]-> MZZ//Q=\--IW(7:_:R/P)F-:-/2>A01:JFY2U\['F1)R7)?;'<>8G<0JIGXS' M?A8G/P:N<>Z9:D#M;'*K\QYESMT5UQW+JO MVZ$O!.9&8S\-$W\:1A"-_"A!VMD8+NV-X.3:J:C:N\M5(X=&F/8&ZF?[^WO9 M7ENOX>WECR;N&=:,TQVFAL,,^UJU%VH[,+)VE]A6&KP2W6.)_T&HL@'X?B>Q M!MW +M#_JUG\#U!+ P04 " #W2:I8E3*'^4<) W1P &0 'AL+W=O M[XDOHC/(?4>\?)2UO66 M\6]B38A$;UF:BYO!6LK-Y^%0Q&N287')-B17WRP9S[!4;_EJ*#::[>Y*R[2'RZ^:9JW?#/26A&(]V4!6/? M])O'Y&;@Z!J1E,12([#Z]TH>2)IJDJK']PHZV,?4!0]?O]-#TWC5F 46Y(&E M?])$KF\&5P.4D"4N4OF%;?]-J@:--2]FJ3!_T;8ZUAF@N!"2955A58.,YN5_ M_%:=B(,"_JD"7E7 :Q5P1R<*^%4!OU7@9)5&58%1JX#GG2@PK@J,VVWP3Q28 M5 4F'XTPK0I,C5CEV372!%CBVVO.MHCKHQ5-OS#ZFM)*$9KK5'R17'U+53EY M^U*F(&)+]$)7.5W2&.<2W<4Q*W))\Q5Z9BF-*1'H%W27)%0G$$[18UY>!CJ= M?@J(Q#05/Z-/:(C$&G-U-,W1UYQ*<:$^5*]_7[-"X#P1UT.IJJV##^.JBD%9 M1>]$%7WTQ'*Y%FB>)R1IEA^JYN[;[+VW^=ZS @,27R+/NT">X_DHP#MQ4/&. M^CW8<7?%ZA*Y$X/SNIIG+_Z$^27R75-\A+Z^!.BG3S]_H%;SCV/]=VP')OS MN6IC[!6+[,07LE&G:U2>KNZ*-53U]YGL&^[HE QQ7&1%BB5)=%^D M"M$=_V>QP3&Y&:B>71#^2@:W__R'.W'^U948D+"@A$T,3(\@K[>_^,YTYDRN MAZ^'ND,N">K.9ZX^;02.@H UE1WME1U9E?U,CL5 <$:,H_W M,H^M,C\HB;M4M);JJR(D+!@?JSAR'*>E(F3($!(6 <$::D_V:D^L:O^I9JCZ M"H[QADJ<=@EO!?05'A(63(Z$'XVG1\)#A@PA81$0K"'\="_\U'Z9LRQ3DT8U MLXV_7:"*GR UG43+0A:<("I$@?.87*!7G!:D*S6L(?JF!B0LF![UV9/1["@U M($.&D+ ("-9(C:M]:ER=28U7HM\Z MV0_6H'WU/8[GML6%C!="PB(@6$/3>^DX2$V3RV6:Z5VQ]@]H5F0:(DFN M("[, M5?4V*=5]N$+(M3J*BGWTNC&FNO\:KSK'3SNY["8'2@HHV.^A>G4NWU;^" MA@Q!:1$4K9D8!VZ>:Y]58\YQ+G$H'6*H&A-86N'U;5;K%_4X)X7>MR. MV2JG_S-N7)P626G+)61)N!J'U/?FN$[%0?U74%K@'INAWNAHZ58==2CZ=-(^ M*@2M601%:^I>^Z^NW8!M+MDWF)<+<[4JLVX$W-NQO<4&=6 KVK0QTW SML:@#BH4 MK:EQ[:&Z=A/U[O>)9 O"_]NI+J2S^ !*"T!I-+79$[Q0 M1=!:7-06@A*BZ!HS42I;4#/;@,^M';XSOL%WK'EUEH8/]AC M]LZ%LP'GH %#4%H$16L*7-N!GMT.?,Q?B9#&YY7XK=J".K?[9&?V[AK\COTB MOREA !IR#DH+06D1%*V9$+5/Z-E]PD>E>KZBBY3H'1FB;_Y6"4(SH5@M*",\WVRETB-$&9N5&],VM ;4106@1%:V9-;39Z=K/QN=R: M>]^UVYU.$5!S$906G&GC^/1&(F@]0E!:!$5K9D;M2WIG?,EB4=\S5&TJZ;M6 M),Z*^W1/]P8FJG=H[44!MTC,M]BQY M FJ)@M(B*%HS3VI+U+=;HNV9*OH+W:6;-48ODI#..R3MP-XI NJ>@M+FH+00 ME!9!T9II<_#+]C,_;:^?NU#]7++L7.BB.'6#MYW8.V]@?^A^?)^E>W0'Y1PT M9@A*BZ!H93X,#Q[?D1&^,D]F$<@\@:-\JL7^T_W37^[,,T]:GP?NYWGY#)<: M4SY2Y@GS%/F4EO*-9!OSD) %DY)EYN6:X(1P?8#Z?LF8 M?'^C ^R?E7/[-U!+ P04 " #W2:I8*G^F[2X& !X*@ &0 'AL+W=O MD'NHH/>;%EHM_ M90R@R'V:9/*R%RN5G_?[,HPAI?*$YY#I;U9SSQB:UC94[TIQI"RK_M/[^D+L!3BC M9P+<.L!]$O!LAF$=,'QIAE$=,'IIP+@.&+\T8%('3,IK7UVL\DI[5-'IA>!; M(DQK33,?2KG*:'V!669FUIT2^ENFX]34_UXP]4!24#&/",LV()6>.(J\([,H M8D9]FI#KK)K#9BZ\]D!1EL@WNLF7.X^\?O6&O-*1Y'/,"TFS2%[TE>Z9X??# MNA?SJA?N,[T8DEN>J5@2/XL@:L?W]8B:8;F/P[IRK< _BN2$N*=OB3MPAUW] ML8??4G%"ADX9/NH(]UX>WI7=MX=[$%K# WMX ,L3,CCK"F]=RV$S188E;_@, M[TY7LZA(@/ 5J:?+;35=KIOI(LFW&QU&KA6D\N^./E]5.4;=.4S]/)&R MIPND!+&!WO377YS)X+%*DCWVJ:AC+0OUT)@U)KV= =2O=&P/-X%Z/;\L)S;)" M+X@Y",8C>=)53S OO8\)"Y!@K;D[:>;NQ#I+/NBGY(7@*Z;(3"G!EH6BRP2Z MYJX5=.S)@9?4Q8@ 1K2?:^D>S]CV[LNLPL$[:NGOX6($)] MK^B7CB[EK+QCE:M@9_N%_60P>:(<9D8?$Q8@P5K*G3;*G5J5^TQ97%#R0;_8 M^1F(]0/Y=EM6PLY',ROK6-4P81XFS,>$!4BPEKIGC;IG/^&!_ Q3=4R8APGS M,6$!$JRENC/8O:H/K'?UQZV^EV7,E^H- ^5YJ/2@IKVY U@]$P]WAE; MCMW9VO,-.M5"M;!0:1XJS4>E!5BTMJH[:\P9_XQ*C.J;H=(\5)J/2@NP:&WQ M=]Z28S>76C]5*= I%/E$%9#9DF^ + 1+NROSI*O"N&V/86Y/?K2,J&83*BW MHK5EW/E-CMUP>O&"BNHSH=(\5)J/2@N<+DMM-'YF0=V938[=;9K3G"E]Z\UY M5AF[^D[LE W5:$*E>:@TOZ;MN\YG3TWG "ME6[6=B>18W8K]FAG6 H9[ G;^ MJF1''JW@V<%5<@Z]>=2KZ!RH.#P4$=4+ M0J4%6+2VB#LOR+7:#=,;1I 1?D2Y93%I%Y0EDJR2S;?8S^*>H]5OY] M#IGL?,2QYSI:6O>@TH[=0VU1K1Y46H!%J[3M[VV82T&LRZV-4J]_1::J36;- MV6;[Y*S<-/CD_-PY]ZI-D#M,M2?SEHHURR1)8*61@Y/W^KX2U3;'ZD#QO-R6 MM^1*\;3\& .-0)@&^OL5U]6]/C )FLVFT_\ 4$L#!!0 ( /=)JEA1/4," MT , )<2 9 >&PO=V]R:W-H965TI" MS8M8I'C_X_U$GDZ<[1E_%2F 1%]HEHNYE4JYO;=M$:= L;AE6\C5G37C%$O5 MY!M;;#G@I#2BF>TYSMBFF.16."O[7G@X8X7,2 XO'(F"4LS_?82,[>>6:QTZ M/I!-*G6'' -+D)^V+URU[$8E(11R05B..*SGUH-['[F!-BA'_$E@+UK7 M2(>R8NQ5-YZ2N>7H&4$&L=026/WL8 %9II74//ZI1:W&IS9L7Q_4?R^#5\&L ML( %R_XBB4SGUL1"":QQD0088G#&6=[Q/5H MI:8O2IBEM0J?Y/JY+R57=XFRD^'#QV?TPMF&8XI^00])0O3CP!EZRJM%I1_. M5002DTQG>-WB&2HX\I*P3.$S&SI9J,EK3CVO%CY=A[P[&/GEDN M4X%^RQ-(NO:V"J*)Q#M$\N@9!9\QOT6^>X,\QPMZYK/X=G._QSPRFR]A>XO< MH#3W#-'XS7/Q2SW_+;UB)4A"U%:\04N< 6)KM)0L?D6?WZNAZ$D"%7_W8:]T M@WY=G4;NQ1;',+=4GA# =V"%/__DCIU?^Y@-*18-)-;A&30\ Y-Z^"1$@?.X MY!@S2M6J%AKG#=KAK( ^D$;!2T%68N-23.?B73CVIFJA[-J !O+8 31J (V, M@%02B $2@=:'&14N73K#"D6#236H3=IZ$U^4$Z?#,ES2+%H(+$.SVG#BJM7:>=(;3WSG-%-&0[GMTFH5P^[058)9\6)0[GF=,#JG-)#/+B7O M2,D;L%0PBUT,R#M_X_KG@ ;RV05TK-U=8RD;'I+[_Z(9M%:OU=IK9W).YD<4 MX>ZQ"G?-9?@@19?;4TSW5%WFJ5R:H(=2J\#9K2]V"GQ3GGP(M6"*7%:?O$UO M<[KR4)XIG/0_NO>+ZHSD*%,=V:@/V@W)!&ULK9=KCZ,V%(;_BD57 MU:ZT,X0[F29(LV%6K=3+:&:W_5#U@P,G"5J#4]M)9OOK>PP, L*01,J7!,-Y M7Y_S^ *>';CX)C< BKSDK)!S8Z/4]LXT9;*!G,I;OH4"GZRXR*G"IEB;$$$K.;&O77W,-7Q9<"?&1QDZYKH2I:< M?].-7]*Y,=$) 8-$:0>*?WM8 &/:"-/XM_8TFBZUL'W]ZOZYK!UK65()"\[^ MRE*UF1NA05)8T1U33_SP,]3U>-HOX4R6O^10QTX,DNRDXGDMQ@SRK*C^Z4O- MH26PW#<$=BVPSQ4XM< Y5^#6 O=<@5<+RM+-JO827$P5C6:"'XC0T>BF+TKZ MI1IY986>)\]*X-,,=2JZ3Q*^*Y3$,4\@V],E@X^DP/EY0YYQ3J8[!H2O2!/V MU K['QZ!HQN0'%'Q]CLG[=Q_(.Y(5Y,N&[R0M4CDS%>:I>S.3.J=/54[V M&SG]1L4M<:R/Q)[8[H!\,2Z/(6GDSH \/K_W(?G#^;W;7;F)8],,D-T,D%WZ M.:<&J$V>KA0(C.C''RQ_\M/06%S3++ZFV<.5S#JCYC2CYHRY1U\$3:&U MI@97067AEQ9Z/]]'[M0-<,;OVX 'HGS+L[M1\6@ZEY*[DEF'G-N0%?MC#-YK3I?BN9-;!YS7XO!/X]E#LRJG' MUT7V'Y+$S1A>$L!M 3?R9<90LAZDZ1V!LEW7\WLX!Z+\T')Z0$>SO!3HEB0L_K1<7AT9OEQK+"WLQ].!75J7K:5#T=K_J-S\ZADJ='"?B^$TQ[ M)0]$>78_*A[-ZM)I% $H0/P^8IS]=K0)X7FZ!G]#U!+ P04 " #W2:I8U-#V MO\ " !/!P &0 'AL+W=OVZ!"E)-VW2*E7MNCU,>W#@$JP:F]E.TOW]KH&R-*%1'_82 M;'//\3F'^'J\4?K!%(@6'DLAS<0KK*TN?=^D!9;,G*D*);W)E2Z9I:E>^J;2 MR+(:5 H_#(+8+QF77C*NUVYT,E8K*[C$&PUF599,_YFA4)N)-_">%F[YLK!N MP4_&%5OB'=K[ZD;3S.]8,EZB-%Q)T)A/O.G@-V1J#<[)0ZL%- MOF03+W""4&!J'0.CQQKG*(0C(AF_6TZOV](!M\=/[)]J[^1EP0S.E?C!,UM, MO L/,LS92MA;M?F,K9^1XTN5,/4O;-K:P(-T9:PJ6S I*+ELGNRQS6$+0#S] M@+ %A+N X0N J 5$M=%&66WKBEF6C+7:@';5Q.8&=38UFMQPZ;[BG=7TEA/. M)M,T52MI#=QBBGS-%@)A*NC;,IDB4%(PUYAQ"U^5,? .KM R+@PT1'"MI"T,?)099L_Q/OGJ MS(5/YF;A0<)KIL\@&IQ"&(3#'CWSU\.C W*B+NNHYHM>G_4IL-RBWHH\WXG\ MYW1AK*9_^Z^^0)L-A_T;N@YP:2J6XL2C(VY0K]%+WKX9Q,&'OC3^$]FS;(9= M-L-#[,F,B=H^L[# )9>2RR6H'"K47&5]UAN^N.9SO6J=7(Q&YV-_O6UIOV@P MN!AV1<^DCCJIHX-2IQE]'&I!!M*"Z25F8!4@TTZR@6REG71;X 'MS0:C+5GQ M>; C?;\FZ-<==[KCUT:,,CL<;KR7V_LPW UWOZ@G7'^K-Y5(<;F63=&YD]"< MY&ZUNQ6F=3/<69_1;=$T]W\TS55#YY3^,08$YD09G)U3:+IIW\W$JJKN@ ME MJ9_6PX)N/-2N@-[G2MFGB=N@NT.3OU!+ P04 " #W2:I8QD?!Q%," !5 M!0 &0 'AL+W=OYWNM7FT&P!'GFJI;$8WSC77C-EB S6W ]V PIU*FYH[G)HULXT!7@90+5D< M16-6I10U*"NT(@:JC$Z&U]/$QX> KP+V]FA,?"8KK1_]Y*[,:.0%@83" M>0:.OQU,04I/A#)^=IRT/](#C\<']L\A=\QEQ2U,M?PF2K?)Z =*2JCX5KJ% MWM]"E\^5YRNTM.%+]EUL1$FQM4[7'1@5U$*U?_[4^7 $&(Y> ,0=(/Y70-(! M@G.L51;2FG''\]3H/3$^&MG\('@3T)B-4/X6E\[@KD"8,C#0YG:$?O2=Q[$@>^ MY&^>+(X\X94#0R82RYZK @@:0J8&T"+R15M+OD]6UAFLRA^G\F\/')T^T'?J MM6UX 1G%5K1@=D#SMV^&X^C3*3?^$]DS;Y+>F^0U]GSA+U]A?Y/&Z)WPS6SQ M\@NY+:'T5?"GCDX60LL^C *]?V)V>308IVQWG.#)H(]]4"N<'16]?W"PB-8" MQ4BH$!4-WE]18MHF;B=.-Z$/5MIA5X7A!M\],#X ]RNMW6'B6ZM_2?/?4$L# M!!0 ( /=)JEB? %OR@@( & & 9 >&PO=V]R:W-H965T= 5@R&/-A9YZE3'-A>_KHH*:ZE/9 M@,"5E50U-1BJM:\;!;1TH)K[41!,_)HRX>69F[M1>29;PYF &T5T6]=4/5T! ME]NI%WK/$[=L71D[X>=90]>P '/?W"B,_(&E9#4(S:0@"E93[S*\F*4VWR5\ M9;#5.V-BG2RE?+#!=3GU BL(.!3&,E!\;6 &G%LBE/&SY_2&+2UP=_S,_LEY M1R]+JF$F^3=6FFKJG7NDA!5MN;F5V\_0^W$""\FU>Y)MEWN&R46KC:Q[,"JH MF>C>]+&OPPX@3-X 1#T@^E= W -B9[13YFS-J:%YIN26*)N-;';@:N/0Z(8) M^Q471N$J0YS)K\4&A)&*@3XF D_-"5G@22E;#D2N"/N]3 [G8"CC^@AS[A=S MR%]WCP'N]CSS\QP? 6&B37! M4T?D4DL.!H;#^C0FOMLAW=%UDH;GK\2/),5)."X^'<2G>\7?24/YF*+TCTK% MYTGR2M%(TH<@?:7(W[G_MO?BK5HSH0F'%<*"TS-D45T_ZP(C&]<2EM)@@W'# M"G\!H&P"KJ^D-,^![3+#3R7_!5!+ P04 " #W2:I8APIL-!H# "C"0 M&0 'AL+W=O2,6!'E:U&^\:PIQ(+#=(P*G$3AO M%0P:P4 E6I.IM&:8XW!,R191:2V\R8:JC5*+;-)"#N."4_$W%3H>SBF4.(T1 M+F)$> )4!*44"HXP8\ 9^H@68NK$50:(K-"KYN^80HQ)3 M_JS#K7UZ!R2V9W5Q^T:>8^EIO9;6.TF[GUI03RT=FM>+.K2M#EG?QG8\6X_F MMVC^F] XWH%VB/U>4'=H=\ T-NZ1 1ZV7,.37#-8@5AM,8H(XW*+HK"!HM+6 M;M@+[]M=1(V-[^L1@Q8Q.(FXJ"CP9P&8R6E'<:9C"_JSR>N@]4V.3+=1"S8Z M"7:KV<%U;*/^L 5.=SGTC3QO$.@!;>OO\62=1+PG7%^O1G>X6]BNY8\Z5'JS M8-3A,@].4'E]$4?..BT8RF E=-;E4.1%ZQM!W>&D5(?JDG!Q1*MF(FY10*6! M^+\BA.\[\IQN[V7A'U!+ P04 " #W2:I8YB3QG3H" !X! &0 'AL M+W=O?L?&O=DZ\1"7:- M-GXL:J+V*DE\66,C_<"V:'AG:5TCB4.W2GSK4%81U.@D2]/+I)'*B"*/:S-7 MY'9-6AF<.?#KII'NSQ2UW8[%4#PO/*A536$A*?)6KG".]-C.'$?)GJ52#1JO MK &'R[&8#*^FHY ?$[XKW/J#.00G"VN?0G!7C44:!*'&D@*#Y&&#-ZAU(&(9 MOWM.L2\9@(?S9_;/T3M[64B/-U;_4!758_%10(5+N=;T8+=?L/=S$?A*JWW\ MPK;/3064:T^VZ<&LH%&F&^6N/X<#0):] LAZ0!9U=X6BREM)LLB=W8(+VL^3XAE!?*D["5,.PG9*Q+NI1O :'@&69J= MP^/\%DZ.3O^E2=C5WEJVMY9%WM%_K'W:<0=[C!:_18N3:.T,;GJK/R<+3XX; MY-=+ZKLJYR]7"9?FRK>RQ+'@6^'1;5 4Q^^&E^GU&QY&>P^CM]B+>6T=O2=T M#1\^#^@)IBB=,BOX:J6!8]FTUVPD- H[JS;2E/B2BZ[.,(V%PE7=%-G@(D\V MA^J2@T8*=Y)_S4H9#QJ7C$H''RX$N*[/NX!L&WMK88D%Q&G-3P.ZD,#[2VOI M.0CMNG]LBK]02P,$% @ ]TFJ6 D+F]?% P >Q$ !D !X;"]W;W)K M&ULM5A=;YM(%/TK([:J6BD-G\9V:B,U3K^D1AO% M[>Y#M0\33$POO?,N8<#4HF7?&.*G ,-=5*:F(YE^69*X\P(9GKL MA@"SFC@I8L.3O.)31W)@8)(0UW2;RENV_ M0%G02.&M6"+T+]D7L?[4(*NMD"PMDY%!&F?%D3Z40APD($YW@E,F.,<)WHD$ MMTQP=:$%,UW6%94TF'&V)UQ%(YHZT=KH;*PFSM1M7$J._\:8)X-O@!H(\HXL MB_M(V)KH,?+Q :V"QS=7(&FDM>D3@CWR.V%30+Q2SCTND%O*;\G+CV&7$LQ^O@ MLWAZNMM#QZU4=36>>U)5(0#."B7/R!6(%8]S[=N?WS"6?)60BG^ZA"N O6Y@ M]5!?B)RN8&[@4RN [\ (7O]A^];[KJH' FMHX%4:>'WHP9\Y<"KC;$,2[:<5 M$[*KX +%URCJI;,+7&LZ,W>'=;1C'*>.:= ;5?1&O?26$>/RG02>_H)? 3,Z MF'OJ'M'K"'&ZV?D5.[^7W7ZDMD(YZ M2W#80;8%\O,:TCO@G6;N17JNF0<":Q0]J8J>O-0#/1E2@X' &AI,*PVFO^W) M:;(CQAYU>]*VZF7,ZB5WB^52OHH(+DBXC.^P/\FQVY"]]NS'?.Z] M&0JMJ<#!0FZ_E$5+Y*%T& BMJ8-3Z^#\MDU+B$,/VMZ13;MB3MFT[@OLWB4W M6&*_JI9$Y5)LM^Y!+Y"]'AVT(1@*K5E^W1+8WHMYM+?;>+8. Z$U=:A[#[N_ M^7B21]M=A3_UO>C/OL& M#836U*#N<>SQBQEUT*9G*+2F#G7;8_=V%$\SZJ35G=M6ZVW:#AK[1TXU#[:Q M*?"-WMT+G'>;R6(K6(U67Q ^Z'WST?BE^K*@M\2Y7JS?,&ULK9=OCZ,V$,:_BD5/U9V46_XED&P3I-NL5E?I3AOMWK6JJKYP8))89S"U M37+[[3L&PB5 V#;JFX#!\_CWC(T]F1^$_*9V )I\3WFF%M9.Z_S6ME6\@Y2J M&Y%#AF\V0J948U-N;95+H$D9E'+;/EO):"X*S5D&*TE4D:94 MOMP!%X>%Y5K'!T]LN]/F@1W-<[J%9]!?\Y7$EMVH)"R%3#&1$0F;A?7!O5VZ MG@DH>_S&X*!.[HFQLA;BFVG\FBPLQQ !AU@;"8J7/2R!H#4V,7BRX*G_)H>[K6"0N ME!9I'8P$*)^(DP!U?"/#J ._?!OAU@%\:KOGE'WA"6D2\[42B:)6IN:^0T MH]EQS717,7D7F#Y3>4-\=T0\QQOWA"^'P^\A;L+]\W ;L].DR&M2Y)5Z_L44 M*04P(H\Y2'1]S,>(?&)TS3C3+R.B!5F;#+%D1!Z8BBDG?P"5Y#/%5&(/\N>' MM=(2%^U???FH ,;] .9+OE4YC6%AX:>J0.[!BG[^R0V<7_JR\S^)G>7*;W+E M#ZE'U9I)0)IU=&'Z[BJ)H)0PV\P^"IQP;N]/30P.DP^VYLQ;WH/*5W$'#';S&'?9Q!QUN=^:U MN >5K^0.&^[P->YI'W?8Y0Y:V(/"5V)/&^SI(/87H7%[XN6>GM=[>I^-:==& M.&VOF\&AKC0R:XS,!HV8C9FP-"\T)'CD:, A=)^36]?U6TX&Q[K2B>O\ M.(:=02_+0DJ<")(+698WN'V*YKRIYHH?CYO>$]7I;D[C]L=2=PK..CE-IW/T MDPK"'41_O,0Y(AG6H>@D/C?7R^]V^&?^N,WO=OA=UQM?,/#C?'<'C\1H9284 M\?:4%S"4>0;]U8S7Q0K"]B<_#/%?%YA]4O*9>AMKIBW#>HS#!N6=FQ S*:L2 MMFIHD9=5X%IHK"G+VQV6_2!-!WR_$4(?&Z:P;/Y(1/\ 4$L#!!0 ( /=) MJE@X],;]V0, H4 9 >&PO=V]R:W-H965T'CWL.YQ\?FXLF6\>]B#2#1SY1F8FJMIH]O9JZC$\J( MOQ/8BKUCI$MY9.R[/KF+IY:C&0&%2&H(HOXV, -*-9+B\:,"M>IGZL3]XV?T M3V7QJIA'(F#&Z#])+-=3*[!0#$M24/F%;?^"JJ"AQHL8%>4OVE:QCH6B0DB6 M5LF*09IDNW_RLQ)B+P$/3B2X58+[NPE>E>"5A>Z8E67=$DG""6=;Q'6T0M,' MI39EMJHFR?0P+B17=Q.5)\,Y5X[@\@F1+$;PHTAR-4;R"F7*06_10KDF+B@@ MMD1Y9R1Z?0N2)%2\4>%?%[?H]5D$WK!2(WG9K^BCJ"!Y]5!+::#FNG R/1] M%!5I08F$6$UI)464$+UH=)'<(0WWGO\6!X%SP+(KRL=.-\UA37/X1X*JN=?% M='C$ 8_'AW)V! 7N"3G]FJ=OY/D9U#JY9C1&=ZE:!3:@:0KT[1[21^"=IC<" MGFOZGL!:M8_JVD<7G/NC/F7H":PE0U#+$/0[]X-C'_KN@5<[8H:C;JN.:YYC M(\]/"=#6 !D\:D0Z=W!Z FL5C9WF)>Y$]*](76EF*OG\'].K7":]G0 M.?+JKZ+:;)O. AO?V.%=MNO$=4?[ -$Z8Y2MGG[3P&;LL\?M$KT%;IH+[%W2 MPL;6Y6PI>D)K2]%T+]C/V9.@$APX^#AKX_@D#-RT,-O"/N7]&FOC5%?:&TIFM8(&UN./_#IZ'@1]0)\:-2.* %@MJT1[^RQZ@FM77W3%^'Q)6W;:Z_4 M%UK[8[YIEEQC!W*^;2N\_6_4D7_HVJX@[]"T]MY&C=XENR=\E60"45BJ+.=Z MI$S/=QM/NQ/)\G+OYI%)R=+R< TD!JX#U/TE8_+Y1&\'U=M_X?]02P,$% M @ ]TFJ6/'!XS9J @ S04 !D !X;"]W;W)K&ULK51-;]LP#/TK@E<,+9#%CIUU0Y88R$>']1 @:-#M,.R@V$PL5)9<28G3 M?S]*^)CR(YKJ5ZT 6 (<>2"ST)"F.J41CJK("2ZKZL0.#) M5JJ2&C35+M25 IH[4,G#.(JNPY(R$:1CM[=2Z5CN#6<"5HKH?5E2]30#+NM) M, A.&W=L5QB[$:;CBNY@#>:^6BFTPI8E9R4(S:0@"K:38#H8S8?6WSE\9U#K MLS6Q2C92/ECC-I\$D0T(.&3&,E#\'6 .G%LB#..QX0S:*RWP?'UB_^JTHY8- MU3"7_ ?+33$)/@ ^"5@^ H@:0")$^HC<[(6U-!TK&1-E/5&-KMPN7%H5,.$ M?<6U47C*$&?2E<*"4.:)4)$3>-RS"I_(](C OI IGG.;+8I)[?"EXS-_>4" M#&5<7Z'+_7I!+B^NR 5A@BP9Y^B@QZ'!V.P-8=;$,?-QQ*_$D9"E%*;0Y$;D MD#_'AZBI%1:?A,WB-PF75/5),NB1.(J''?',_QV>O!%.TN8Y<7S)7_+<(RM. MA7'IOCFEF_R<;K116-*_NC+GF8?=S+;-1[JB&4P"[&,-Z@!!^O[=X#KZTB7[ M/Y$]2\*P3<+P+?9T 4B:,5]$<,1)I*%+L&<91([&SJ%#&O7Q%0[G0CJ=XM;) M!QB>=48):N<&AB:9W OC:ZG=;6?2U+7BB_T9SBH_6O[0^$&'E;)C0A,.6Z2, M^I^PTY4?'MXPLG+]MY$&N]DM"YRWH*P#GF^E-"?#7M!.\/0W4$L#!!0 ( M /=)JEBCJU9/U , $45 9 >&PO=V]R:W-H965TN*Z,U,"+/ M^092_67)!2-*#\7*E1L!),Z36.+ZGC=T&:&I,YOD[^[$;,(SE= 4[@22&6-$ M/'Z A.^F#G:>7GRAJ[4R+]S99$-6< _JV^9.Z)%;H<2402HI3Y& Y=2YPI=S MWS,)><2?%'9R[QF94A:<_S"#FWCJ>(81)! I T'TSQ;FD"0&2?/XIP1UJCE- MXO[S$_K'O'A=S()(F//D+QJK]=2Y<% ,2Y(EZ@O??8*RH-#@13R1^5^T*V,] M!T695)R5R9H!HVGQ2QY*(?82\.A @E\F^,\3!@<2@C(AR LMF.5E71-%9A/! M=TB8:(UF'G)M\FQ=#4W-,MXKH;]2G:=F-ZDBZ8HN$D!$2E#R/4IU\Y T1BO. MXQU-$G2&[HM%1GR)Z/,$]/8:%*&)?*<#O]U?H[=OWJ$W.@Y]7?-,:B0Y<96F M:B9THY+6AX*6?X#6+1'G*,#OD>_Y@Y;TN3W]&J(J/6BFNUJ@2B6_4LG/\8(# M>!]I2A6ZZ5G&T/=;8 L0 MK9UM1>C:V3V!-8H=5<6.3KG#1WWJT!-80X>+2H>+KET)4E&6[Z9,PC)+4$*7 MT":"'=E'CT"$1$/$>*K6;6?&W(KPRLK'5>5C>[N3AZ/M;D7HNLP]@36*Q5[] M?]\[9<.7Z#U)T1=:4XL]#X1/UO1'H(.BZUN+MF:^MNC:TF"K4] >::M-_$97 M^!6B=VQA%HB[^Q9W8MVMV[XS(7C+=$K&@J40)+#>^=C_1) M+(H[NV*@^":_]EIPI3C+']= 8A F0']?!N8FK;HYG?T/4$L#!!0 ( M /=)JEB3:JO6=0( -P% 9 >&PO=V]R:W-H965TU 5-JD:=/@ ?'@)M?$FF,'VVT&OYZS MDX9NZ@8/O"0^^[[/]YWO+FV5OC<5HH6'6D@S#2IKF_,P-'F%-3,CU:"DD[72 M-;-DZC(TC496>% MPCB*SL*:<1EDJ=^[UEFJ-E9PB=<:S*:NF?XY1Z'::3 . M=ALWO*RLVPBSM&$EWJ*]:ZXU6>' 4O :I>%*@L;U-)B-SQ<3Y^\=OG!LS=X: MG)*54O?.6!;3('(!H<#<.@9&ORTN4 A'1&'\Z#F#X4H'W%_OV#]Y[:1EQ0PN ME/C*"UM-@_SUO'5^NA/%?:'O?*(!\8ZRJ>S!%4'/9_=E# MGX<] /$V\BP''1V_@"+B$*X*1@TE#2S&ZF\*\CV?>Q1,_$T\"5TK:RL!' M66#Q&!^2MD%@O!,XCU\DO&)Z!,GX!.(HGAR(9_'O\.2%<)(AWXGG2Y[--]48 ME]SBZ275;P%[#S#S#P#?+@D#2XNU^7XH@=T%D\,7N*X_-PW+<1I06QO46PRR MUZ_&9]&'0^K_$]FC7$R&7$Q>8L]FM=*6_^IJ"1]H,!D\)+AC&4>>QHVE;1:- MQFFXW1?R%ZFFWM4 M,"67!@2NB3(:O:/&U]TLZ0RK&M^.*V6IN?VRHO&+VCG0^5HINS/O ( "\' 9 >&PO=V]R:W-H965TNB MH.IE"EQNQU[/VPW#K6ZUB63[=RD8R^P@H!#8BP#Q=\&9L"Y)4(9?VI.KUG2 MOM M'?LWESOFLJ0:9I+_9*G)Q]ZE1U)8T34W]W+['>I\!I8OD5R[+]G6L8%'DK4V MLJC!J*!@HOK3Y]J'%@!YN@%A#0CW ?UW %$-B%RBE3*7UIP:&H^4W!)EHY'- M-IPW#HW9,&%W<6$4SC+$F?A&&"HRMN1 J-9@]"D1>':H2$DF9;IEG),SLJCV MF,C5ZZC; &9>R/$<#&57B]4J_>Y5; 6X MTB5-8.SA%=>@-N#%GS_UAL&7+@O^$]D;0_J-(?U#[/&4-6@F(R[4J]XALZ/ENK-O%%-,"]V;13Z@@:1)=-T!NI@T;JX*#4!T6%YM16 MH2Y=%7C06O*LUP_V='4%70ZZ=0T;7<./6@AXJ@Z:-_S7E["W;UY'4-OA2J3? MJCT%J,R59$T2N1:FNI[-:%/U)Z[8[8U/\36HBOP"S1L9_P502P,$% @ M]TFJ6#KQO?S4! 0R !D !X;"]W;W)K&UL MK9IM;^(X$,>_BI5;G7:EO>:!AT(/D"C)ZBJU4M7>WKTXW0N3#& UB5G;0"O= MAS\[20.!K 75O"EYFM_8_XG'GKBC'1047G% MUY#K.PLN,JKTJ5BZ$X$+,;.U+^) M L\8%$_\Q6 G#XZ)Z,'<^T"%*(E4%0_;.%&:2I(>EV_*B@3NW3 M&!X>O]._%9W7G9E3"3.>_LT2M1H[ X#%/9?&7[*IG M/8?$&ZEX5AGK%F0L+W_I:R7$@8'FM!L$E4%P;-#]B4&G,NB<:]"M#+KG&O0J M@Z+K;MGW0KB0*CH9";XCPCRM:>:@4+^PUGJQW+PHSTKHNTS;J4D(?GZF3!^#D%1ELHO^I'OSR'Y_.D+^4183OY<\8VD>2)'KM*M,"PW MKCS>EAZ#GWCLD >>JY4D49Y TK1W=>OK+@3O7;@-K, '*JY(Q_]* B_HMK1G M=KYYI\4\M)N'$%O-([OY=&V\>X6Y;Q&C4\>S4_ ZMGC>Y5*)C1[.BOQSKQ\@ M=PHR^6];K$I:MYUFLM2-7-,8QHY.0Q+$%IS)K[_X?>_W-J$Q82$F+$*"-4+2 MK4/2M=$G3Z"CP6(%"8FI7+5%H03T"X!)[=N)/QCV1^[V4%VKETO5/?7H-=U% M2.X:DO5JR7I6R68"=#XBWVC,4J;>R'0I ,KW^0&R.8C6=]G*O/1=QH2%F+ ( M"=8(3+\.3!\UO?0Q0X()"S%A$1*L$9+K.B37UK%RSWYL6&)&B3"3-J$9W^3J MJUDLL&R3D91E3+7%IL3V#I-.T/.\HSPPLWJ_5'5,6(0$:Z@^J%4?6%6_RQ5H MJB+PJM?L$MH$'IP(W#E1=W"2AT^>":TMN50T)%A#M&$MVM JVBT5<4K?)+FE M^0MYO)_5Z9S\1SZ6\ZT.+TTPF+ 0$Q8AP1I1\[U]C>"A9OT*AQ055%J(2HNP M:,W '!1OOG5 3;>Z.J/S%,B<"VW-\J5>8VJ'9@!M='TEB%H!>8(M3[?FYM$@ M:PV>?Y*2A@/_)''96W9Q5#!I$1:M&95@'Y7 OGKEF9YRBY&R )!F7FZ='RJ, M[Q^NPJ\\KWQW<2<3S+IWADH+46D1%JT9F'W-[=N+[C.^4U2$QH>* MX>G4@%H[H](B+%I3XWWY[%M+P0_FJP^OCNVMN7CLH!;@J+0(B]:,Z[X&]Z]Q MDQIF(3Q#I86HM B+U@S,ODSW[77Z=*D'RE(OP$AAWM=QTK*_6.^'3 M8O_WZ/JM?S,K][/WF')[_8&*)&PO=V]R:W-H965T1>(+FI*BR>;DC)=Q/'=PX_/-#E2ND? MW.EXC9?DD:AOZWL!=V[G94XKPB3E# FRF#C7_E7N!UI06_Q)R4X>72.-,N/\ MA[[Y?3YQ/!T1*4FAM L,_[;DEI2E]@1Q_-,Z=;IW:N'Q]<'[AQH>8&98DEM> M?J=SM9HXF8/F9($WI7K@NX^D!8JUOX*7LOZ+=JVMYZ!B(Q6O6C%$4%'6_,?[ M-A%'@C!X01"T@N!40=@*0D/@1R\(HE80U9EI4.H\Y%CAZ5CP'1+:&KSIBSJ9 MM1KP*=-U?U0"GE+0J>EU48@-F2.RAY4DB428S1%7*R+@[4(0IE!)\8R65%%X M^AX]PLJ;;TJ"^ (=Q'?'XC]J\6TK_G0D?IL3A6DIWX&;;X\Y>OOF'7J#*$-? M5WPC02O'K@(F'9E;M/'?-/$'+\3_&8M+%/H7*/"":$!^:Y?GI.CDX8 \/_WM MAMR%0G35"+IJ!+6_\#^J<6)"KV=2"=@Y0VEK7A0-OTAWDRNYQ@69.- N)!%; MXDQ__<5/O-^&DOB:SO)77N,HM@W\*T!GHD?=_CQB16O])["^FLS1!OW0,(D-FD'C+(X,VBM\9Q) MFW2TB96VZ178:.I#O$D/!99W:O .&*5)8O!:(SJ3-^UX4ROO5ZYP>1)OVD<9 M)2.SP'VK,,HBL\+6F,XDSCKBS$K\'0N!&>SDUO4@;-;#2$:CP&#M&Z5!.C)0 MLUY_R[PL[HR>(8PZA)$5X? I6W-1SW[0AF".%; UV1*5!*:X;N9X&J(;]6)* M(Q-NR,8H=FZ-\LPR^M[/P MSZW)T3#L6R/^PMG[!9E#%DND\![Q64F7=4:'1U._M\K\(#96XI"1;VXS>USG M:'9C^U1_=_Z=VCTY ^N\*0OJ1,0F=9 M@'OO,H66)YKC8'.C^+H^(,VX@N-6?;F"(S01V@">+SA7AQM]YNH.Y=-_ 5!+ M P04 " #W2:I8MQSK)ND# (#P &0 'AL+W=O M2WO/<\>5F!R&_JPQ DZV",FXM9N6[>[F8B;W.&8=[2=2^ M**A\7D(N#G/+M5Y>?&';3)L7]F*VHUMX /UU=R]Q9#8O'_W@;PCC)._,[%7B*UFML:PS>1V4H>XK$+TW@C1)Y\$UYDB'WD*Z;&_ MC70;SMX+YZ4W"/B)REOBN[\2S_&"GGA6Y[O[/>[QL'L,R5ON1VS\)H-^B>?_ M((,?VQG\7&9P56?PKU8&[]9*2UQM?7FH)@KZ)S([T%3M: )S"[<8!?(1K,7/ M/[FA\UN?B-<$BZ\$=B1PT @<#*$OEC2G/ %"-5G#EG'.^-94_PXD$VF?CA5> M6.*9C?=QX;J.X\WLQ[9 /59>X(7'5O%@;!DQB^, M3_L$F%SS5+DF6'PEL",Y7>?UYN4,%M'GMVY9O51T.9U:!2?K)QZ.[=)<>J_< MO?^S(0S>#FJH\ <[0I]9SY;09W9TV:@8V:T6H0"Y+5LM11*QY[JZ.3=OFW;N MKFQB.N^7[G15-66O,%6/B/=BO!TIDL,&(9W;,:9,5FU7-=!B5S8B:Z&QK2D? M,VQ501H#_+X10K\,S 1-\[OX#U!+ P04 " #W2:I8PSU00M4" #7" M&0 'AL+W=OXYU^?8NI?A M1LA?*@5 LLTSKD96BK@:V+:*4\BIZHD5XX3 MV#EEW J'Y=J-#(>BP(QQN)%$%7E.Y<,8,K$96:ZU6[AERQ3-@AT.5W0),\#[ MU8W4,[MA25@.7#'!B83%R+IR!U%@XLN ;PPV:F],C)*Y$+_,9)J,+,=L"#*( MT3!0_5K#!++,$.EM_*XYK2:E >Z/=^R?2^U:RYPJF(CL.TLP'5GO+9+ @A89 MWHK-%ZCU7!B^6&2J?))-%7OI6R0N%(J\!NL=Y(Q7;[JM?=@#:)YV@%<#O&- M_PF 7P/\YP+Z-:!?.E-)*7V(*-)P*,6&2!.MV%NK:*1X.RECKY/PFLH> M\=UWQ'.\?LM^)L^'^RWPJ!L>0?P4_$"-WQR,7_+Y_SP8,M$^,;X$'C^0'U]U M')DBY.IGF^<5:;^=U-20@5K1&$:6+A(*Y!JL\.T;-W ^MAGVFF31*Y$=F-EO MS.QWL>_,1&TF;'7%5$!.Y\!AP?"LS<6*+2C93.%N.[37^^8\CG']HYBH M*_DY MR&79.A6)1<&Q*IG-:M.=K\JF=+0^=@>3JLG^I:E:OBZ(2\85R6"A*9W>I3X] M6;71:H)B53:6N4#=ILIAJO\\0)H _7TA!.XF)D'S+Q/^ 5!+ P04 " #W M2:I8O?H;]3X$ "[#P &0 'AL+W=O'-M)9AN(G0X+T&!!TJX?BGV@I;-%5"(UDK*3?[\C M)4M.ZFA94 ,##(L4>8^>N^?X>9'03#R<\:%-YNX=S=J-I&ER;C &P6ZS'.F'N:8 MR>W4"[W=BUN^3HU]X<\F!5OC'9K/Q8VBGM^@)#Q'H;D4H' U]2["\WDXM@9N MQI\>F'3JG7J0X(J5F;F5V]^Q=FAH\6*9:?U8<N);XB4A?;CFL"\(A ]0V U_3)5,,'D6#RV-XG9QJ/HIU' M\Z@3\)JI/@S"'D1!= *?[R[A[9MW';B#)E(#ASMX!O=&R:2,#7QA2C%A'N C M9TN><6I]_4ASXK"8 MW] "B[$PF( L%112N[P!DS)#?PAW]3HHJ+K+"-6@7T2*E9H?BPT;QX7]1W#IF MO7FY\MWP3Y3__TM[0*16V5$TW!>4=CCW6K,<*7),$QEMF,UJMI0;I-W9I#2@ M"W+9ZFDGW]81?IP=4ERS>YZ7.7R] MQGR)ZN#>TXGPRKUGW/ ;'VO+'!^!]FE#^[0SK)]V*2P>IVA!'1+V$-T*\,P! MVHO09A;TH^'$WQR@<=;0..M6EXM_5;<3X95A"H/V[A <2]\:^0P,*CW8%"H]Q!PK;2U#8?5U9 M2&WLL<.:.!\D68&,]A2.@C!X1N#V/ Z[3TQ[.6H%UMT*=T*]-D[M@1*.CJ;P M,4Z:L#UJPLXCX:4*C[]7^/3DJ<+^7CU%V\/:58VZNE]4I57SMJE,+ZIZK)U> ME;54C= -3T.&*S(-^F/25U658M4QLG#5V5(:JO5<,Z7J&I6=0.,K*&ULQ5AM;]LV$/XKA%8,+9!$KU;LS#80.^U6H &"I-T^ M%/M 2V>+B"1J)&VG^_4[4HHLV8JP% +RQ2:INT=WSST2[C3=<_$H$P!%GK(T MES,K4:JXLFT9)9!1><$+R/'*FHN,*MR*C2T+ 30V3EEJ>XX3VAEEN36?FK,[ M,9_RK4I9#G>"R&V64?%C 2G?SRS7>CZX9YM$Z0-[/BWH!AY ?2ON!.[L&B5F M&>22\9P(6,^L:_=JZ8;:P5C\R6 O&VNB4UEQ_J@WG^.9Y>B(((5(:0B*?SM8 M0IIJ)(SCGPK4JN^I'9OK9_1/)GE,9D4E+'GZ%XM5,K/&%HEA3;>INN?[/Z!* M:*3Q(IY*\TOVE:UCD6@K%<\J9XP@8WGY3Y\J(AH.B-/MX%4.WK%#\(*#7SGX M)M$R,I/6#55T/A5\3X2V1C2],-P8;\R&Y;J,#TK@589^:OZ@>/1XOD B8K+D M&:I#4L/O.3&72-0\A">]!O+^!A1EJ?R 9M\>;LC[=Q_(.\)R\C7A6TGS6$YM MA='I>]A1%T8\ MQPLZXEG^?W>_)QR_9MHW>/Y+3"=4P/G*,'U'?^"CH,BU$#3?@%Z?D8\EN3%! M_LB2%DS1E/T+\1FYSO@6K;]_04CR64$F_^[BM[Q_T'U__3ZXD@6-8&;A R]! M[,":__J+&SJ_=9$S$%B+JJ"F*NA#+T5)2JJZ]->5?(D8&D3][MK-W="?3.U= M,ZE3HV \<6JC5K"C.MA1;[!++A7A:WRG[2#? OE^"]D*1&>%>I%>6Z&!P%I) MAW72X1N+.1R2JH' 6E1=UE1=#B[F$G'4T*GGAD=:/K49-VQ:H8[K4,>]H=YC M\E1$B2E:C'I.>6%*VZ?I7LC7%FH@L%;VDSK[R1MK>C(D50.!M:ARG4/;X RN MZ@JR+=DC57?8>,&D6]9NH\EQ^Z/%-I'E&U,X[%8?0>E=GZK[ 5];JZ'0VNE[ MA_2]-U9V%C?H'WHKZZ8@.AM3DXM&#NZ*T%/FCK-A1:FZY#\^;V M-CP_)_#PM,'V)N-CB9]:^4'@'FG<;LRK&8B-&>,EAH*5*.>[^K3^5'!M!N2C M\X7^A&#FX -,^?T!I[<-RR5)88V0SL4E,B[*D;[<*%Z8J7C%%<[89ID C4%H M [R^YEP];_0-Z@\K\_\ 4$L#!!0 ( /=)JE@4A=9@^P0 &8? 9 M>&PO=V]R:W-H965TXY5F:0M_@>P8$WKE$VE#6E3]G-=; P MK*Q'$(,O,@267WM801QG)-F/?TNH4?G,#)O7K_2K?/!R,&O,847COZ- A MC M:J -G@7BP=Z^ O* 8TRGD]CGG^B0]G6,I"_XX(FI;'L01*1XAL_ET(T#"2G MV\ I#9SW&@Q*@\&QP? -@V%I,'ROP:@TR(=N%F//A7.QP,LYHP?$LM:2EEWD MZN?64J^(9!/E43#Y:R3MQ/(!8BP@0"EFX@4)A@G'>0@Y^AU=!$&47>,879-B M4F;!_>R"P%'\1;;X]NBBSY^^H$\H(NAK2'<Z M8:-;2D3(D4<""#KL5VK[@<+>E))4NCBONEPZ2N 5K,^0,_T-.9;C=/5';7Z+ MV1D:V+GYL,/3Y&L]2="/&]D4 M70M(^#]=42^XPVYNM@F>\Q3[L##D+L>![<%8_OJ+/;;^Z))<)\S5"?,TP5K! M&5;!&:KH1RN8@0_1'J]CZ%R%2E3?>!2P<0[+7DC[I3V>R,6R;^JLTZ-WZG$Z MGE8.6_*-*OE&/>3#OL]V\LZG7""ZD7+N@>R@2THEMJ^4!6S4E'(PL8ZDU.G1 MZ_ X'-G=6HXK+<=*+2]\G^Z(X%+,EVP*=LFF)/25;7PZ",<:S8YTT^G2.W4Y MF4UFW;I-*MTF:MWB-,3H40#$Z,)E@K.+,J.#-]KSHEJF\\9J<;S<0ZWI]U>O1./?CF-\JIU.GYXN6EMCI];846K\E0I9@1;+74[7:[*GD0\<;1A-4./= MV2F^$MU;?.==XNOTZ>FBM<6O2S];6;R\*Z=3(WJ+/#C)\CLV!ZWU6X?+MW:& MNBRSU779(]V)$-W@)T!W,G&XN5DI&.FFN5IJGB]:.2UWOV:,/RO!L MK26?5IJKE>;IHK5#5)>1MKJ.O-L)+C )(K)%/DZC;/OG@OI/*(2XZ]_!RQ(X M:R[@,VO4WC16:K>])==:5^JBM26O*U!;78*V5\7K1H7^0U? R %"Y)$MWLH& M=RDP+&3*LZ))BLG+SS;IHK5#6%>N]D>5KK;6VE4KS=5*\W31 MVB&JZU=;7<#^"42NGAC)O0WA((E(Q(5<33*M1?"< N'=Z9764E8KS2UISEH=%E_D1Z1'SU?VN5L<^=:8X@3Z%K-M1#B*82.1 MUME$9ARL.-0M;@1-\U/+-16")OEE"#@ EC60OV\H%:\WF8/J:'WY/U!+ P04 M " #W2:I8J5]1;PX# #U" &0 'AL+W=O=4_AI# M)C9#QW>V _=LE6HSX(X&!5W!#/1#,978YE3!1&3?6*+3H=-W2 )+6F;Z7FP^0.VG9_@6(E/VGVSJ6,\ABU)ID==@ M5) S7CWI4[T..P#D:0<$-2 X!'2? 80U(+1&*V76U@W5=#208D.DB48VT[!K M8]'HAG&SBS,M<98A3H\^8Z)\$DJ1*4@R2ZD$5%J:M<< MNV.JV()0GI ;EI4:DD/TZ0UHRC)UACP/LQMR>G)&3HA+E)E5A''RP)E6YSB( M[2^I*!6RJ8&KT8W1Y"YJY>-*>?",\I#<":Y316YY LD^WL55:)8BV"[%.#A* M>$=EAX3^.0F\H-NB9_)R>'A$3MCL3&CYPF?X;JGDC*]VU_;[]5QIB9G_HVVY M*KIN.YVY#:Y401:&6H\N^G'L#]SUKOJ6*-^/HZ )V]/5:W3UCNJJC%EEHBCUN*&TOQ"_;(9 \IT('5W2:U8NGO9HC7 M\6)O[W>85JT@WV]7W&\4]U^T"?_6W/\?S:V@OS2[.Q4D![FRA57A[I=<5S=H M,]K4[FM;L@[&QUC3JQ+\AZ;Z(,#[<<6X(ADLD=+KQ+C[LBJR54>+PM:IN=!8 M]6PSQ>\2D"8 YY="Z&W'O*#YTAG]!E!+ P04 " #W2:I8VGTH^L!(:YL():HD%>?^_2TI1;5[82\5UL 31Y+7JFYL]6Z/G==E6^AI.I,U%#AF[60)=4XE!M7U1)H M89-*[@:>E[@E9963S>S<4F8ST6C.*EA*HIJRI/+?2^!B-W=\YVGBEFVVVDRX MV:RF&UB!_E@O)8[<'J5@)52*B8I(6,^="_]\X7LFP4;\PV"G]IZ)D7(GQ+T9 M7!=SQS.,@$.N#03%KP=8 .<&"7E\[4"=?DV3N/_\A/[6BD,#$I6M=_TL3-B+P%Q MQA."+B$X3(B>20B[A- *;9E965=4TVPFQ8Y($XUHYL%Z8[-1#:O,-JZTQ+<, M\W3V'BOEG5"*+$&2U99*('^1%19+T7 @8DTN*LT*QAOC-EE!WDBF&2CRYC'G M30$%64M1DH4HZT93NS.8=&42\)U!OZYR4<(>_A]7H"GCZD]<29D9-7,U2C&$ MW+RC?=G2#IZA'9(;4>DMTJB0PS#?10MZ'X(G'RZ#HX W5)Z1T']% B^(1O@L M_G]Z>(1.V&]+:/'"9_!^RO4W5%:LVNSOY>=W"$RN-93JRYC++8MHG(6Y0LY5 M37.8.WA'*) /X&0O7_B)]WK,HA.!#0R+>L.B8^C94FA SR@G6&TE^M%6%H&! M8457EQ76)3=57Z-3-G+,G';%V*YHKL.'S(\2+YYZ_LQ]V!<^$ACZ<1JG41\X M$!7WHN*CHE9:Y/?D0VTV6)'/-U#>@1S=QZ,X/[J/)P(;2$YZR"8V=I7W<8O,/T@3@ M^[5 +[N!6:#_.Y']!U!+ P04 " #W2:I8]R:SAD $ !7&0 &0 'AL M+W=ODK8W0!^^)*4H5BRK-D!@;VP=^'\C\A\-)6JX MI^P;7R,*^)&E.1]9:R$V=[;-HS5FA-_0#>;RS)*RC BYRU8VWS DL19EJ>TY M3L_.2));XZ$^]LC&0[H5:9+C(P.^S3+"7J:8TOW(AZRN!;O%G@GM^L VJ*PM*OZF=^WAD M.>J*,,5(* 21?SN<89HJDKR.[R74JF(JX>'V*SW4G9>=61".,YK^E<1B/;(& M%L2X)-M4/-']'UAVJ*MX$4VY_H5]T;9_:T&TY8)FI5A>09;DQ3_Y40[$@<#M MG!!XI$/BEP#\W0J<4=,X5=$M!]UQ!KQ3T]-@7@Z5'>DX$&0\9W0-3 MK25-;6B[M%H.<)*KS'H63)Y-I$Z,G[<+CM^WF L(=O*7P]4DCA/E.DGA/B]R M5^Y=P]4R?" M^_! <['F$.0QQG6]+;M2]<=[[<_4:P5.-NP&'/\W\!ROTW0][?('(N6^>U(^ M;Y?/,:KD?H,\.#]ZDSP\/[K7,I9^E1N^YOFGGK;!+[2U@/0U3\^5N?.MY_:&].[3MN-&@VWW7*#ANY+J# M3KU1^#^-:L/7K8:OVSI\#^0?.6PS7=61.MT4JZ=.Q,PN8F88%) M6&@(5O.V5WG;^\G%LF%)J,;PUSJ?$%K'M0UWQGX#COZJC)D(%)6&@( M5G-T4#DZ:'7TD=%=HM^I0F59,?U].CG]M<(N]6UPY%O_R#63 0.3L- 0K.;: M;>7:KVF8P8F(2%AF UVUSG[=74:37N_;LI_ N7/$&U MTR]UTBAM;I06&*6%IFAUUP\6)-R?_"!57H"IQ#!)FQNE!49IH2E:/3&\M\3P M6LM!2!(&.Y)N$>@2F%J,RJ7WLD(D&^5^H]7>\6N<[[VOP+/VR!=[:)(6&*6% MIFAU#]]6E-S6Y8GQC/ U;(J[M=$O_XP)<]8>Y&*[C*[U&*6%IFB%7?;!.K&< M/E=Z19^#?D$IEHRKH]57@XE>*[??FA>?'!X(6R4YAQ274NK<].63*2M6\8L= M03=ZU7E!A9RK]>8:Y0L14PWD^26EXG5'!:B^I8S_ U!+ P04 " #W2:I8 M]5J/QS8# !*$P #0 'AL+W-T>6QE>^R[ M$,.@-BO![N:,F6A9"ED/R=R8ZD,SM[^ M6"AS_2;R]Y-W)R>=A_/K??^9 \Y)'"2]/(#THF,OE-FA&'UZ&/USY!CUU2ZU MFWYJB7S@*1;6/TC1,X(PXBR@Q\K?2 +#!<=-O4>#0LE-V1/B'9:=EBQZI&)( MQE3PB>805="2BY5W]\ Q54+IR-A^L^FZX*E_>;CK+6C%AJ?D4FF7VV?PWY-F M^AZPMD @%Z(5V"/>,1I4U!BFY8TUW&3G? )%S?A^55F%,TU7W=XEV02XFTTR M43IGNDW3)6O7:"!8 7(TG\WA;E05 VB,*NT@YW2F)'4:UA'-P-).F1!W\)Q^ M+W:XE\56W3I0-=D.K:!FZ&F\ ?S;;)Y[F[;W(MZHXH_*?%K8Y4AG0Z.Q6\T* MOG3VLF@%8.Q=G)U6E5A]%'PF2^87?W#"T8"NXZ*YTOR7S0:M,K4.IDGTR+3A MTVW/3TVK>[8TZW9:%KCFWA%J_KO[/&.2:2JV1=O>?\V[_&+%R=6_DNQ^J^P+ M#FIL7KZO7>3E,8A,CT'D4?1D_QA$9J]29-R\P+=."3MGA-8;P5EL2+[!R4YL MDD:3!1>&R\::\SQG\LE1P=(;.K%_*.SPV_DY*^A"F/L6')+-^"O+^:+,VEFW ML!'-K,WX"RROF[8'09N+RYPM63YN3#V;N&%D!S9K;;Q#GN\#K*;/=0BV4KP3L97B>PU( M>-\@(LO"U<;R0 16!:QW('\X#_14."9)H*J8-NP)QI$LPQ#HQ7"/IBFR.RE\ MPO7!GI(DR;(P EA809)@"#R-.((I T8DB3N/;CW/HK7[ZEX\]^ST6]02P,$ M% @ ]TFJ6)>*NQS $P( L !?3T\$MP>:4#M.*2V MBZD8_1!2:5K5N %(MB6/:(7->=I3W;+T]!;X"O.DQQ0FE(2S,.\,W2?S+W\PPU1>5*(Y5;&GC3Y?YV MX$G1H2)8%II%R=.B':5_'88C?7ZR[F%A[8-XKBOC)X-U")OSX= 7:U5+ M_YO=* -[EM;5,L"F6PW]QBE9^K52H:Z&R=G9>%A+;09?/N_JFKDAWK!!%4%; M X6QX(=63_YU?]P4C]KKA:YT>)D,VO^5&HA:&UWKGZJ<#,X&PJ_MTQ_6Z9_6 M!%G-"V>K:C(8=3M^*!=TL5<\CY#W6%-J8Q7I8!_WE:Z!(Y2?)65-(42"#(A(),C0OZ5(,B4 M@$R/ CF/.' J@LP(R.R(D+V6S G(_)B0*8(<$Y!C7LB9?!&/7LR4:T^/@^52 M^Z*ROG$*(7X@$#_P(MX8KTOEQ+V3)4R"8NJ<-*OX, :/"#\2A!]Y"2^5+YS> MQ')AEV+1>&V4QW"?"+A/O'#SIJZE>XE@7J^,AM-DG,V+PC8PF^/Y^XR:P,]X M,:_^;J)9:A76MA3:/"H?XBF8CQ0,LV&F]W\*B"563M88B=+)B-DGTZX+O7"J M4/I1PM5_%4;UFHPRR8A9)3?0B29 S*3\'A-_'I/0Q8O;'K9)>X4ED1'EBQ"T*!V<[&*&QU10,UDT\8:]?*4^,V$41 M0 SQHEU'=D]="[RRML28E"Q&[+98])J,@$@H(23L2XZZUJVBNE:#("] >*),H?N0 MY(J#61'S8(N'TZ^RBT+KV,EO5VT)I8B$61%WL1#89C).+1#A 5^[6.^U("6+ MA%D6WZ#>6^O;$%G,U[(7%2>4'Q)F/\R;A8>).'KKZO%-,)Q0JDB854%&G+W5 M64+I(F'6Q7OADSBYERW)*R:EBX19%V^CJ"V>_P4#4@Y)F!U"AE/]M ;ED)39 M(5TX=:CU4DHC*;-&B+@JLF),2B0ILTC(V*K?R63RBMDG9#S3QZ2DDK+GKXC8 M09Q@3,HP*;=AVNAAL1<][,^0*>6;E-DW^XH^.,HIUZ3,KD%*G",E=@KJY0)3 MRC4ILVO>2\*(4S$M2YPK2BGCI-RKEM=8Y N48^; >A-21ADH8S80C9EA3,I &;.!MK$E=/7K/-^6=8$(QJ0L ME#%;Z!#F=1,:$.8=5(XQ*0MES!:B0F)@QYB4A3+V=0^%.<4O(2D+Y>RY,RIR MQR,]IRR4,UN(QL0C/:\\F9:&/@+X*Q/*0F-F"QU8H^/ &&-2%AHS M6XC$[.6/QI2%QMRO==ZF_L4)'NT8D[+0N+70)N\\IO_P#4$L#!!0 ( /=)JE@G M9=6E# ( (0E : >&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'/-V3MN MVT 4A>&M"%R 1_0"^D0*=(8/!4Q)'CY M%\0'8OCTJQS:<=^=ZF[?U\7'\7"JJV8WCOV/E.IZ5XYMO>OZ00I#.'V009/,' M.03Y_$$!03%_4(:@/'_0/03=SQ_T $$/\P<]0M#C_$&R1!F7!$D3K FT%N1: M"+P6!%L(Q!8D6PC,%D1;"-069%L(W!:$6PCD%J1;".P6Q%L(]%;46PGT5M1; M"?36R<BN!WHIZ*X'>BGHK@=Z*>BN!WHIZ*X'>BGHK@=Z*>BN!WH9Z M&X'>AGH;@=Z&>AN!WC;9+"'0VU!O(]#;4&\CT-M0;R/0VU!O(]#;4&\CT-M0 M;R/0VU%O)]#;46\GT-M1;R?0VU%O)]#;)YO=!'H[ZNT$>COJ[01Z.^KM!'H[ MZNT$>COJ[01Z!^H=!'H'ZAT$>@?J'01Z!^H=!'H'ZAT$>L?D9R6!WH%Z!X'> M@7H'@=Z!>@>!WH%Z!X'>&?7.!'IGU#L3Z)U1[TR@=T:]\W?J7[L!)AHE&DQ\;UB@[7G/>I+GBNNGK:,PVK1- M%Z;9(D9WQ5@H%]2:D%M'75J96]^:F+[Z%^9,N30OQ,1D4K#2=I&Z.(Y]C6QV M?4MSLVKBZ&Z3?@ZU[::9IR9DHYO=QCYKFAGGFKHT,:VS=5=]2AGO$_)T^#]B?>UB3]W5%HT?CX[UITRZV:5B(VX9"?KS$%SW:^;PN MJ;+EJDU'\N \F2HLB&+;Y+NB9\>38[IAVGWRD_.',L<"T\Y';UU($_/T^[C# M2/K38Y<*D8_U\5=\3TRE3WX_ZJ==4?7#['2]K]8OAWD$-CQ.O^./,WZO_\L^ M!$@?$J0/!=*'!NFC .GC'*2/"Y ^+D'ZX!.41E!$Y2BD&UL4$L! A0#% @ ]TFJ M6*S4W[@&!@ JR !@ ("!#@@ 'AL+W=O&PO=V]R:W-H M965T&UL4$L! A0#% @ ]TFJ6+BQ(!=O!@ X!\ !@ M ("!8A@ 'AL+W=O40< &HX 8 " @0&PO=V]R:W-H965T&UL M4$L! A0#% @ ]TFJ6,]S8$>D% "1# & M@(%&- >&PO=V]R:W-H965T&UL4$L! A0#% @ ]TFJ M6%/F\@H&*P /84 !D ("!93H 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]TFJ6)^+Z+(3! )0D M !D ("!&PO=V]R:W-H965T&UL4$L! A0#% @ ]TFJ6&13![@.! *PD !D M ("!)7X 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ ]TFJ6$P=#W&I! Z@H !D ("!.(D 'AL+W=O M&PO=V]R:W-H965T&UL4$L! A0#% @ ]TFJ6-@F M&PO=V]R:W-H965TG!< 8 (@/ 9 " @1:B !X;"]W;W)K&UL4$L! A0#% @ ]TFJ6&12>;EI P [ < !D M ("!O:@ 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ ]TFJ6$ED&VR= P ?0@ !D ("! M]., 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ ]TFJ6-FN<)B* P =@@ !D ("!G>T 'AL+W=O&UL4$L! A0#% @ ]TFJ6$?1DF ) M! OPD !D ("![O< 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]TFJ6'FGR1"Q P X0@ !D M ("!DP(! 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ ]TFJ6%$]0P+0 P EQ( !D ("!7A8! M 'AL+W=O#SU M8'\# "&#@ &0 @(%E&@$ >&PO=V]R:W-H965T 0!X;"]W;W)K&UL4$L! A0#% @ M]TFJ6,9'P<13 @ 504 !D ("!$B$! 'AL+W=O&UL4$L! A0#% @ ]TFJ6.8D\9TZ @ M> 0 !D ("!IBD! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]TFJ6#CTQOW9 P "A0 !D M ("!OS,! 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ ]TFJ6)-JJ]9U @ W 4 !D ("!>SX! 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]TFJ M6/]!6+?J P H \ !D ("!)4D! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ ]TFJ6+WZ&_4^! NP\ M !D ("!&PO=V]R:W-H965T&UL4$L! A0#% @ ]TFJ6*E?46\. P ]0@ !D M ("! 6(! 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ ]TFJ6/5:C\6QE&PO=V]R:V)O;VLN>&UL4$L! A0#% M @ ]TFJ6"=EU:4, @ A"4 !H ( !XG8! 'AL+U]R96QS M+W=O XML 76 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 77 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 79 FilingSummary.xml IDEA: XBRL DOCUMENT 3.24.1.1.u2 html 103 290 1 false 36 0 false 5 false false R1.htm 100000 - Document - Document and Entity Information Sheet http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation Document and Entity Information Cover 1 false false R2.htm 100010 - Statement - Condensed Consolidated Balance Sheets (Unaudited) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited Condensed Consolidated Balance Sheets (Unaudited) Statements 2 false false R3.htm 100030 - Statement - Condensed Consolidated Balance Sheets (Parenthetical) (Unaudited) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited Condensed Consolidated Balance Sheets (Parenthetical) (Unaudited) Statements 3 false false R4.htm 100040 - Statement - Condensed Consolidated Statements of Comprehensive Loss (Unaudited) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited Condensed Consolidated Statements of Comprehensive Loss (Unaudited) Statements 4 false false R5.htm 100050 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Deficit) (Unaudited) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited Condensed Consolidated Statements of Stockholders' Equity (Deficit) (Unaudited) Statements 5 false false R6.htm 100060 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited Condensed Consolidated Statements of Cash Flows (Unaudited) Statements 6 false false R7.htm 995410 - Disclosure - Pay vs Performance Disclosure Sheet http://xbrl.sec.gov/ecd/role/PvpDisclosure Pay vs Performance Disclosure Notes 7 false false R8.htm 995445 - Disclosure - Insider Trading Arrangements Sheet http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements Insider Trading Arrangements Notes 8 false false R9.htm 995455 - Disclosure - Description of business Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDescriptionOfBusiness1 Description of business Notes 9 false false R10.htm 995465 - Disclosure - Summary of significant accounting policies Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPolicies1 Summary of significant accounting policies Notes 10 false false R11.htm 995475 - Disclosure - Equity method investment Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestment Equity method investment Notes 11 false false R12.htm 995485 - Disclosure - ATM Program Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgram ATM Program Notes 12 false false R13.htm 995495 - Disclosure - Accounts receivable, net Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNet Accounts receivable, net Notes 13 false false R14.htm 995505 - Disclosure - Inventories, net Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNet Inventories, net Notes 14 false false R15.htm 995525 - Disclosure - Prepaid and other current assets Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssets Prepaid and other current assets Notes 15 false false R16.htm 995535 - Disclosure - Leases Sheet http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureLeases Leases Notes 16 false false R17.htm 995545 - Disclosure - Property and equipment, net Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNet Property and equipment, net Notes 17 false false R18.htm 995555 - Disclosure - Intangible assets, net and goodwill Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwill1 Intangible assets, net and goodwill Notes 18 false false R19.htm 995565 - Disclosure - Debt Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebt1 Debt Notes 19 false false R20.htm 995575 - Disclosure - Accrued Expenses and Other Current Liabilities Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilities Accrued Expenses and Other Current Liabilities Notes 20 false false R21.htm 995595 - Disclosure - Income Taxes Sheet http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxes Income Taxes Notes 21 false false R22.htm 995605 - Disclosure - Commitments and Contingencies Sheet http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingencies Commitments and Contingencies Notes 22 false false R23.htm 995615 - Disclosure - Stock-Based Compensation Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensation Stock-Based Compensation Notes 23 false false R24.htm 995625 - Disclosure - Related Party Transactions Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactions1 Related Party Transactions Notes 24 false false R25.htm 995635 - Disclosure - Net Loss Per Share Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShare1 Net Loss Per Share Notes 25 false false R26.htm 995645 - Disclosure - Subsequent Events Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEvents Subsequent Events Notes 26 false false R27.htm 995655 - Disclosure - Summary of significant accounting policies (Policies) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies Summary of significant accounting policies (Policies) Policies 27 false false R28.htm 995695 - Disclosure - Accounts receivable, net (Tables) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetTables Accounts receivable, net (Tables) Tables http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNet 28 false false R29.htm 995705 - Disclosure - Inventories, net (Tables) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNetTables Inventories, net (Tables) Tables http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNet 29 false false R30.htm 995715 - Disclosure - Prepaid and other current assets (Tables) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsTables Prepaid and other current assets (Tables) Tables http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssets 30 false false R31.htm 995725 - Disclosure - Leases (Tables) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureLeasesTables Leases (Tables) Tables http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureLeases 31 false false R32.htm 995735 - Disclosure - Property and equipment, net (Tables) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetTables Property and equipment, net (Tables) Tables http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNet 32 false false R33.htm 995745 - Disclosure - Intangible assets, net and goodwill (Tables) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillTables Intangible assets, net and goodwill (Tables) Tables http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwill1 33 false false R34.htm 995755 - Disclosure - Accrued Expenses and Other Current Liabilities (Tables) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesTables Accrued Expenses and Other Current Liabilities (Tables) Tables http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilities 34 false false R35.htm 995775 - Disclosure - Commitments and Contingencies (Tables) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesTables Commitments and Contingencies (Tables) Tables http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingencies 35 false false R36.htm 995785 - Disclosure - Stock-based Compensation (Tables) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationTables Stock-based Compensation (Tables) Tables 36 false false R37.htm 995795 - Disclosure - Net Loss Per Share (Tables) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareTables Net Loss Per Share (Tables) Tables http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShare1 37 false false R38.htm 995815 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails Summary of Significant Accounting Policies - Additional Information (Details) Details 38 false false R39.htm 995825 - Disclosure - Equity method investment - Additional Information (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails Equity method investment - Additional Information (Details) Details 39 false false R40.htm 995835 - Disclosure - ATM Program - Additional Information (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails ATM Program - Additional Information (Details) Details 40 false false R41.htm 995845 - Disclosure - Accounts receivable, net - Schedule of Accounts Receivable, Net (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails Accounts receivable, net - Schedule of Accounts Receivable, Net (Details) Details 41 false false R42.htm 995855 - Disclosure - Accounts Receivable Allowance For Credit Loss - Details (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableAllowanceForCreditLossDetailsDetails Accounts Receivable Allowance For Credit Loss - Details (Details) Details 42 false false R43.htm 995865 - Disclosure - Accounts receivable, net - Additional Information (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails Accounts receivable, net - Additional Information (Details) Details 43 false false R44.htm 995885 - Disclosure - Inventories, net - Schedule of inventories (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails Inventories, net - Schedule of inventories (Details) Details 44 false false R45.htm 995895 - Disclosure - Prepaid and other current assets - Schedule of Prepaid and other current assets (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails Prepaid and other current assets - Schedule of Prepaid and other current assets (Details) Details 45 false false R46.htm 995905 - Disclosure - Prepaid and other current assets (Additional Information) (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsAdditionalInformationDetails Prepaid and other current assets (Additional Information) (Details) Details http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsTables 46 false false R47.htm 995915 - Disclosure - Leases - Summary of Lease Expense (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails Leases - Summary of Lease Expense (Details) Details 47 false false R48.htm 995925 - Disclosure - Leases - Summary of Future Remaining Lease Payments Obligations (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails Leases - Summary of Future Remaining Lease Payments Obligations (Details) Details 48 false false R49.htm 995935 - Disclosure - Property and equipment, net - Schedule of property and equipment (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails Property and equipment, net - Schedule of property and equipment (Details) Details 49 false false R50.htm 995945 - Disclosure - Property and equipment, net - Additional Information (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetAdditionalInformationDetails Property and equipment, net - Additional Information (Details) Details 50 false false R51.htm 995955 - Disclosure - Intangible assets, net and goodwill - Summary of intangible assets (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails Intangible assets, net and goodwill - Summary of intangible assets (Details) Details 51 false false R52.htm 995965 - Disclosure - Intangible assets, net and goodwill - Additional Information (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails Intangible assets, net and goodwill - Additional Information (Details) Details 52 false false R53.htm 995975 - Disclosure - Intangible assets, net and goodwill - Summary of goodwill activity (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfGoodwillActivityDetails Intangible assets, net and goodwill - Summary of goodwill activity (Details) Details 53 false false R54.htm 995985 - Disclosure - Debt - Additional Information (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails Debt - Additional Information (Details) Details 54 false false R55.htm 995995 - Disclosure - Accrued expenses and other current liabilities - Schedule of Accrued Expenses and Other Current Liabilities (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails Accrued expenses and other current liabilities - Schedule of Accrued Expenses and Other Current Liabilities (Details) Details 55 false false R56.htm 996015 - Disclosure - Accrued expenses and other current liabilities - Schedule of warranty accruals (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails Accrued expenses and other current liabilities - Schedule of warranty accruals (Details) Details 56 false false R57.htm 996025 - Disclosure - Income Taxes - Additional Information (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails Income Taxes - Additional Information (Details) Details 57 false false R58.htm 996035 - Disclosure - Commitments and Contingencies - Additional Information (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails Commitments and Contingencies - Additional Information (Details) Details 58 false false R59.htm 996065 - Disclosure - Stock-Based Compensation - Stock compensation expense (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails Stock-Based Compensation - Stock compensation expense (Details) Details 59 false false R60.htm 996075 - Disclosure - Related party transactions - Additional Information (Detail) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail Related party transactions - Additional Information (Detail) Details 60 false false R61.htm 996095 - Disclosure - Net Loss Per Share - Schedule of Computation of Basic and Diluted Loss Per Share (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails Net Loss Per Share - Schedule of Computation of Basic and Diluted Loss Per Share (Details) Details 61 false false R62.htm 996105 - Disclosure - Net Loss Per Share - Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails Net Loss Per Share - Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share (Details) Details 62 false false R63.htm 996115 - Disclosure - Subsequent Events (Additional Information) (Details) Sheet http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails Subsequent Events (Additional Information) (Details) Details http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEvents 63 false false All Reports Book All Reports [ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 2 fact(s) appearing in ix:hidden were eligible for transformation: ftci:ProductWarrantyLife, ftci:SubscriptionRevenueContractTerms - ftci-20240331.htm 8 ftci-20240331.htm ftci-20240331.xsd img146218138_0.jpg http://fasb.org/us-gaap/2023 http://xbrl.sec.gov/dei/2023 http://xbrl.sec.gov/ecd/2023 false false JSON 82 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "ftci-20240331.htm": { "nsprefix": "ftci", "nsuri": "http://www.ftcsolar.com/20240331", "dts": { "inline": { "local": [ "ftci-20240331.htm" ] }, "schema": { "local": [ "ftci-20240331.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/role/negated-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://www.xbrl.org/dtr/type/2022-03-31/types.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-roles-2023.xsd", "https://xbrl.fasb.org/srt/2023/elts/srt-types-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd", "https://xbrl.fasb.org/us-gaap/2023/elts/us-types-2023.xsd", "https://xbrl.sec.gov/country/2023/country-2023.xsd", "https://xbrl.sec.gov/dei/2023/dei-2023.xsd", "https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd", "https://xbrl.sec.gov/ecd/2023/ecd-sub-2023.xsd" ] } }, "keyStandard": 235, "keyCustom": 55, "axisStandard": 14, "axisCustom": 1, "memberStandard": 25, "memberCustom": 11, "hidden": { "total": 10, "http://xbrl.sec.gov/dei/2023": 4, "http://fasb.org/us-gaap/2023": 4, "http://www.ftcsolar.com/20240331": 2 }, "contextCount": 103, "entityCount": 1, "segmentCount": 36, "elementCount": 602, "unitCount": 5, "baseTaxonomies": { "http://fasb.org/us-gaap/2023": 485, "http://xbrl.sec.gov/dei/2023": 31, "http://xbrl.sec.gov/ecd/2023": 4 }, "report": { "R1": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation", "longName": "100000 - Document - Document and Entity Information", "shortName": "Document and Entity Information", "isDefault": "true", "groupType": "document", "subGroupType": "", "menuCat": "Cover", "order": "1", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "dei:EntityRegistrantName", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "dei:EntityRegistrantName", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R2": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited", "longName": "100010 - Statement - Condensed Consolidated Balance Sheets (Unaudited)", "shortName": "Condensed Consolidated Balance Sheets (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "2", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R3": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited", "longName": "100030 - Statement - Condensed Consolidated Balance Sheets (Parenthetical) (Unaudited)", "shortName": "Condensed Consolidated Balance Sheets (Parenthetical) (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "parenthetical", "menuCat": "Statements", "order": "3", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:PreferredStockParOrStatedValuePerShare", "unitRef": "U_USDollarShare", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:PreferredStockParOrStatedValuePerShare", "unitRef": "U_USDollarShare", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R4": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited", "longName": "100040 - Statement - Condensed Consolidated Statements of Comprehensive Loss (Unaudited)", "shortName": "Condensed Consolidated Statements of Comprehensive Loss (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "4", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R5": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited", "longName": "100050 - Statement - Condensed Consolidated Statements of Stockholders' Equity (Deficit) (Unaudited)", "shortName": "Condensed Consolidated Statements of Stockholders' Equity (Deficit) (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "5", "firstAnchor": { "contextRef": "C_636755b5-00b7-4d96-82a3-151f3e53b581", "name": "us-gaap:StockholdersEquity", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_636755b5-00b7-4d96-82a3-151f3e53b581", "name": "us-gaap:StockholdersEquity", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R6": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited", "longName": "100060 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)", "shortName": "Condensed Consolidated Statements of Cash Flows (Unaudited)", "isDefault": "false", "groupType": "statement", "subGroupType": "", "menuCat": "Statements", "order": "6", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:NetIncomeLoss", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:ShareBasedCompensation", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "unique": true } }, "R7": { "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure", "longName": "995410 - Disclosure - Pay vs Performance Disclosure", "shortName": "Pay vs Performance Disclosure", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "7", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:NetIncomeLoss", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": null }, "R8": { "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "longName": "995445 - Disclosure - Insider Trading Arrangements", "shortName": "Insider Trading Arrangements", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "8", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ecd:Rule10b51ArrAdoptedFlag", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ecd:Rule10b51ArrAdoptedFlag", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R9": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDescriptionOfBusiness1", "longName": "995455 - Disclosure - Description of business", "shortName": "Description of business", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "9", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:BusinessDescriptionAndBasisOfPresentationTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R10": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPolicies1", "longName": "995465 - Disclosure - Summary of significant accounting policies", "shortName": "Summary of significant accounting policies", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "10", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R11": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestment", "longName": "995475 - Disclosure - Equity method investment", "shortName": "Equity method investment", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "11", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:EquityMethodInvestmentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:EquityMethodInvestmentsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R12": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgram", "longName": "995485 - Disclosure - ATM Program", "shortName": "ATM Program", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "12", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ftci:AtmProgram", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ftci:AtmProgram", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R13": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNet", "longName": "995495 - Disclosure - Accounts receivable, net", "shortName": "Accounts receivable, net", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "13", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:AccountsAndNontradeReceivableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:AccountsAndNontradeReceivableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R14": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNet", "longName": "995505 - Disclosure - Inventories, net", "shortName": "Inventories, net", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "14", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:InventoryDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:InventoryDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R15": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssets", "longName": "995525 - Disclosure - Prepaid and other current assets", "shortName": "Prepaid and other current assets", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "15", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R16": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureLeases", "longName": "995535 - Disclosure - Leases", "shortName": "Leases", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "16", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:LesseeOperatingLeasesTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R17": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNet", "longName": "995545 - Disclosure - Property and equipment, net", "shortName": "Property and equipment, net", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "17", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R18": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwill1", "longName": "995555 - Disclosure - Intangible assets, net and goodwill", "shortName": "Intangible assets, net and goodwill", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "18", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R19": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebt1", "longName": "995565 - Disclosure - Debt", "shortName": "Debt", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "19", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:DebtDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R20": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilities", "longName": "995575 - Disclosure - Accrued Expenses and Other Current Liabilities", "shortName": "Accrued Expenses and Other Current Liabilities", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "20", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R21": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxes", "longName": "995595 - Disclosure - Income Taxes", "shortName": "Income Taxes", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "21", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R22": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingencies", "longName": "995605 - Disclosure - Commitments and Contingencies", "shortName": "Commitments and Contingencies", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "22", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R23": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensation", "longName": "995615 - Disclosure - Stock-Based Compensation", "shortName": "Stock-Based Compensation", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "23", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R24": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactions1", "longName": "995625 - Disclosure - Related Party Transactions", "shortName": "Related Party Transactions", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "24", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R25": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShare1", "longName": "995635 - Disclosure - Net Loss Per Share", "shortName": "Net Loss Per Share", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "25", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:EarningsPerShareTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R26": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEvents", "longName": "995645 - Disclosure - Subsequent Events", "shortName": "Subsequent Events", "isDefault": "false", "groupType": "disclosure", "subGroupType": "", "menuCat": "Notes", "order": "26", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:SubsequentEventsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:SubsequentEventsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R27": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies", "longName": "995655 - Disclosure - Summary of significant accounting policies (Policies)", "shortName": "Summary of significant accounting policies (Policies)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "policies", "menuCat": "Policies", "order": "27", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:SignificantAccountingPoliciesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:SignificantAccountingPoliciesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R28": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetTables", "longName": "995695 - Disclosure - Accounts receivable, net (Tables)", "shortName": "Accounts receivable, net (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "28", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R29": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNetTables", "longName": "995705 - Disclosure - Inventories, net (Tables)", "shortName": "Inventories, net (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "29", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:InventoryDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:InventoryDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R30": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsTables", "longName": "995715 - Disclosure - Prepaid and other current assets (Tables)", "shortName": "Prepaid and other current assets (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "30", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R31": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureLeasesTables", "longName": "995725 - Disclosure - Leases (Tables)", "shortName": "Leases (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "31", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:LeaseCostTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R32": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetTables", "longName": "995735 - Disclosure - Property and equipment, net (Tables)", "shortName": "Property and equipment, net (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "32", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R33": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillTables", "longName": "995745 - Disclosure - Intangible assets, net and goodwill (Tables)", "shortName": "Intangible assets, net and goodwill (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "33", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R34": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesTables", "longName": "995755 - Disclosure - Accrued Expenses and Other Current Liabilities (Tables)", "shortName": "Accrued Expenses and Other Current Liabilities (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "34", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ftci:AccruedExpensesAndOtherCurrentLiabilitiesTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ftci:AccruedExpensesAndOtherCurrentLiabilitiesTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R35": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesTables", "longName": "995775 - Disclosure - Commitments and Contingencies (Tables)", "shortName": "Commitments and Contingencies (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "35", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": null }, "R36": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationTables", "longName": "995785 - Disclosure - Stock-based Compensation (Tables)", "shortName": "Stock-based Compensation (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "36", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R37": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareTables", "longName": "995795 - Disclosure - Net Loss Per Share (Tables)", "shortName": "Net Loss Per Share (Tables)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "tables", "menuCat": "Tables", "order": "37", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:EarningsPerShareTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "div", "us-gaap:EarningsPerShareTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R38": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "longName": "995815 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Details)", "shortName": "Summary of Significant Accounting Policies - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "38", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:RetainedEarningsAccumulatedDeficit", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:Cash", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "ftci:AbilityToContinueAsAGoingConcern", "div", "us-gaap:SignificantAccountingPoliciesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "unique": true } }, "R39": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails", "longName": "995825 - Disclosure - Equity method investment - Additional Information (Details)", "shortName": "Equity method investment - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "39", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ftci:PlacingPurchaseOrders", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "us-gaap:EquityMethodInvestmentsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "unique": true } }, "R40": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "longName": "995835 - Disclosure - ATM Program - Additional Information (Details)", "shortName": "ATM Program - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "40", "firstAnchor": { "contextRef": "C_0a50370f-e4c9-458f-9522-dd09e33baef4", "name": "us-gaap:StockIssuedDuringPeriodValueNewIssues", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_e331304d-6a08-426b-95a9-99132e892872", "name": "us-gaap:StockIssuedDuringPeriodSharesNewIssues", "unitRef": "U_shares", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "span", "p", "ftci:AtmProgram", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "unique": true } }, "R41": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails", "longName": "995845 - Disclosure - Accounts receivable, net - Schedule of Accounts Receivable, Net (Details)", "shortName": "Accounts receivable, net - Schedule of Accounts Receivable, Net (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "41", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "ftci:TradeAccountsReceivable", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "ftci:TradeAccountsReceivable", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R42": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableAllowanceForCreditLossDetailsDetails", "longName": "995855 - Disclosure - Accounts Receivable Allowance For Credit Loss - Details (Details)", "shortName": "Accounts Receivable Allowance For Credit Loss - Details (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "42", "firstAnchor": { "contextRef": "C_3b321697-a4b7-42e7-baf9-003d32416af6", "name": "us-gaap:AccountsAndFinancingReceivableAllowanceForCreditLoss", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ftci:AccountsReceivableAllowanceForCreditLossExpenseReversal", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock", "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "unique": true } }, "R43": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "longName": "995865 - Disclosure - Accounts receivable, net - Additional Information (Details)", "shortName": "Accounts receivable, net - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "43", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "ftci:RetainageProvisionsIncludedInReceivables", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "ftci:RetainageProvisionsIncludedInReceivables", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R44": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails", "longName": "995885 - Disclosure - Inventories, net - Schedule of inventories (Details)", "shortName": "Inventories, net - Schedule of inventories (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "44", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:InventoryFinishedGoods", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "div", "us-gaap:InventoryDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:InventoryFinishedGoods", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "div", "us-gaap:InventoryDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R45": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails", "longName": "995895 - Disclosure - Prepaid and other current assets - Schedule of Prepaid and other current assets (Details)", "shortName": "Prepaid and other current assets - Schedule of Prepaid and other current assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "45", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "ftci:VendorDeposits", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "div", "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "ftci:VendorDeposits", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "div", "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R46": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsAdditionalInformationDetails", "longName": "995905 - Disclosure - Prepaid and other current assets (Additional Information) (Details)", "shortName": "Prepaid and other current assets (Additional Information) (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "46", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "ftci:ShortTermInterestBearingLoanCustomerDvance", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "ftci:ShortTermInterestBearingLoanCustomerDvance", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "ftci:PrepaidExpensesAndOtherCurrentAssetsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R47": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "longName": "995915 - Disclosure - Leases - Summary of Lease Expense (Details)", "shortName": "Leases - Summary of Lease Expense (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "47", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:OperatingLeaseCost", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "div", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:OperatingLeaseCost", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:LeaseCostTableTextBlock", "div", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R48": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails", "longName": "995925 - Disclosure - Leases - Summary of Future Remaining Lease Payments Obligations (Details)", "shortName": "Leases - Summary of Future Remaining Lease Payments Obligations (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "48", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "div", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "div", "us-gaap:LesseeOperatingLeasesTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R49": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails", "longName": "995935 - Disclosure - Property and equipment, net - Schedule of property and equipment (Details)", "shortName": "Property and equipment, net - Schedule of property and equipment (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "49", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:PropertyPlantAndEquipmentGross", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "div", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:PropertyPlantAndEquipmentGross", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "div", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R50": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetAdditionalInformationDetails", "longName": "995945 - Disclosure - Property and equipment, net - Additional Information (Details)", "shortName": "Property and equipment, net - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "50", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:Depreciation", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:Depreciation", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R51": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails", "longName": "995955 - Disclosure - Intangible assets, net and goodwill - Summary of intangible assets (Details)", "shortName": "Intangible assets, net and goodwill - Summary of intangible assets (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "51", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "div", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:FiniteLivedIntangibleAssetsGross", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "div", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R52": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "longName": "995965 - Disclosure - Intangible assets, net and goodwill - Additional Information (Details)", "shortName": "Intangible assets, net and goodwill - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "52", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:AmortizationOfIntangibleAssets", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:AmortizationOfIntangibleAssets", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R53": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfGoodwillActivityDetails", "longName": "995975 - Disclosure - Intangible assets, net and goodwill - Summary of goodwill activity (Details)", "shortName": "Intangible assets, net and goodwill - Summary of goodwill activity (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "53", "firstAnchor": { "contextRef": "C_3b321697-a4b7-42e7-baf9-003d32416af6", "name": "us-gaap:Goodwill", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_636755b5-00b7-4d96-82a3-151f3e53b581", "name": "us-gaap:Goodwill", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfGoodwillTextBlock", "div", "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "unique": true } }, "R54": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "longName": "995985 - Disclosure - Debt - Additional Information (Details)", "shortName": "Debt - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "54", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:RestrictedCashCurrent", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_bbf031eb-0ac6-4e1d-981b-ccd01ac5e994", "name": "ftci:LiquidityRatioAmountMinimumLimit", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:DebtDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "unique": true } }, "R55": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails", "longName": "995995 - Disclosure - Accrued expenses and other current liabilities - Schedule of Accrued Expenses and Other Current Liabilities (Details)", "shortName": "Accrued expenses and other current liabilities - Schedule of Accrued Expenses and Other Current Liabilities (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "55", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "ftci:AccruedCostOfRevenues", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesTableTextBlock", "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "ftci:AccruedCostOfRevenues", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesTableTextBlock", "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R56": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails", "longName": "996015 - Disclosure - Accrued expenses and other current liabilities - Schedule of warranty accruals (Details)", "shortName": "Accrued expenses and other current liabilities - Schedule of warranty accruals (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "56", "firstAnchor": { "contextRef": "C_3b321697-a4b7-42e7-baf9-003d32416af6", "name": "us-gaap:StandardProductWarrantyAccrual", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_636755b5-00b7-4d96-82a3-151f3e53b581", "name": "us-gaap:StandardProductWarrantyAccrual", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock", "div", "ftci:AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "unique": true } }, "R57": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails", "longName": "996025 - Disclosure - Income Taxes - Additional Information (Details)", "shortName": "Income Taxes - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "57", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:IncomeTaxExpenseBenefit", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "unitRef": "U_pure", "xsiNil": "false", "lang": null, "decimals": "2", "ancestors": [ "span", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "unique": true } }, "R58": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "longName": "996035 - Disclosure - Commitments and Contingencies - Additional Information (Details)", "shortName": "Commitments and Contingencies - Additional Information (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "58", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ftci:DescriptionOfTariffsClassification", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "ftci:DescriptionOfTariffsClassification", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "p", "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R59": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails", "longName": "996065 - Disclosure - Stock-Based Compensation - Stock compensation expense (Details)", "shortName": "Stock-Based Compensation - Stock compensation expense (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "59", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "div", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_620d7182-1da8-48cd-a9bb-8de03dad5a6d", "name": "us-gaap:AllocatedShareBasedCompensationExpense", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "div", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "unique": true } }, "R60": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "longName": "996075 - Disclosure - Related party transactions - Additional Information (Detail)", "shortName": "Related party transactions - Additional Information (Detail)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "60", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "ftci:RecievablesFromRelatedParties", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_fbade36a-332f-436c-a4ac-fe8189e65438", "name": "ftci:RecievablesFromRelatedParties", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "unique": true } }, "R61": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails", "longName": "996095 - Disclosure - Net Loss Per Share - Schedule of Computation of Basic and Diluted Loss Per Share (Details)", "shortName": "Net Loss Per Share - Schedule of Computation of Basic and Diluted Loss Per Share (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "61", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:NetIncomeLoss", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": null }, "R62": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails", "longName": "996105 - Disclosure - Net Loss Per Share - Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share (Details)", "shortName": "Net Loss Per Share - Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "62", "firstAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "U_shares", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "div", "us-gaap:EarningsPerShareTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "C_0eb4d728-d351-45df-9f1c-29d8fe1ca8e2", "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "unitRef": "U_shares", "xsiNil": "false", "lang": null, "decimals": "INF", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "div", "us-gaap:EarningsPerShareTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true, "unique": true } }, "R63": { "role": "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "longName": "996115 - Disclosure - Subsequent Events (Additional Information) (Details)", "shortName": "Subsequent Events (Additional Information) (Details)", "isDefault": "false", "groupType": "disclosure", "subGroupType": "details", "menuCat": "Details", "order": "63", "firstAnchor": { "contextRef": "C_ee785b90-1617-4f4e-b72f-de9a1193c469", "name": "us-gaap:AccountsAndFinancingReceivableAllowanceForCreditLoss", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-3", "ancestors": [ "span", "p", "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "div", "us-gaap:AccountsAndNontradeReceivableTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "first": true }, "uniqueAnchor": { "contextRef": "C_2325722f-e80a-46d5-a01f-7e70101009b5", "name": "ftci:TradeAccountsReceivableBalanceFromMajorCustomer", "unitRef": "U_USD", "xsiNil": "false", "lang": null, "decimals": "-5", "ancestors": [ "span", "p", "us-gaap:SubsequentEventsTextBlock", "div", "body", "html" ], "reportCount": 1, "baseRef": "ftci-20240331.htm", "unique": true } } }, "tag": { "ftci_AbilityToContinueAsAGoingConcern": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AbilityToContinueAsAGoingConcern", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Liquidity", "label": "Ability to continue as a going concern", "documentation": "Ability to continue as a going concern" } } }, "auth_ref": [] }, "us-gaap_AccountingPoliciesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountingPoliciesAbstract", "lang": { "en-us": { "role": { "label": "Accounting Policies [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AccountsAndFinancingReceivableAllowanceForCreditLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsAndFinancingReceivableAllowanceForCreditLoss", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableAllowanceForCreditLossDetailsDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "negatedLabel": "Allowance for credit losses", "periodStartLabel": "Balance at beginning of period", "periodEndLabel": "Balance at end of period", "terseLabel": "Allowance for credit losses", "label": "Accounts and Financing Receivable, Allowance for Credit Loss", "documentation": "Amount of allowance for credit loss of accounts and financing receivables. Includes, but is not limited to, notes and loan receivable." } } }, "auth_ref": [ "r251" ] }, "us-gaap_AccountsAndNontradeReceivableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsAndNontradeReceivableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNet" ], "lang": { "en-us": { "role": { "label": "Accounts and Nontrade Receivable [Text Block]", "terseLabel": "Accounts receivable, net", "documentation": "The entire disclosure for accounts receivable, contract receivable, receivable held-for-sale, and nontrade receivable." } } }, "auth_ref": [ "r246", "r261" ] }, "us-gaap_AccountsAndOtherReceivablesNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsAndOtherReceivablesNetCurrent", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails": { "parentTag": "us-gaap_ReceivablesNetCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails" ], "lang": { "en-us": { "role": { "label": "Accounts and Other Receivables, Net, Current", "terseLabel": "Other receivables", "verboseLabel": "Receivables Collected", "documentation": "Amount, after allowance, receivable from customers, clients, or other third-parties, and receivables classified as other due within one year or the normal operating cycle, if longer." } } }, "auth_ref": [] }, "us-gaap_AccountsPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsPayableCurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Accounts payable", "label": "Accounts Payable, Current", "totalLabel": "Accounts Payable, Current, Total", "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)." } } }, "auth_ref": [ "r18", "r667" ] }, "us-gaap_AccountsPayableCurrentAndNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsPayableCurrentAndNoncurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "terseLabel": "Total received Invoices from Alpha Steel", "label": "Accounts Payable", "totalLabel": "Accounts Payable, Total", "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." } } }, "auth_ref": [ "r71", "r841" ] }, "ftci_AccountsReceivableAllowanceForCreditLossExpenseReversal": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AccountsReceivableAllowanceForCreditLossExpenseReversal", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableAllowanceForCreditLossDetailsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Additions charged to earnings during the period", "label": "Accounts Receivable, Allowance for Credit Loss Expense (Reversal)", "documentation": "Accounts Receivable, Allowance for Credit Loss Expense (Reversal)" } } }, "auth_ref": [] }, "us-gaap_AccountsReceivableAllowanceForCreditLossTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableAllowanceForCreditLossTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetTables" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, Allowance for Credit Loss [Table Text Block]", "terseLabel": "Schedule of Accounts Receivable Allowance for Credit Loss", "documentation": "Tabular disclosure of allowance for credit loss on accounts receivable." } } }, "auth_ref": [ "r790" ] }, "us-gaap_AccountsReceivableNetAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableNetAbstract", "lang": { "en-us": { "role": { "label": "Accounts Receivable, after Allowance for Credit Loss [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AccountsReceivableNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccountsReceivableNetCurrent", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 4.0 }, "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Accounts receivable, net", "label": "Accounts Receivable, after Allowance for Credit Loss, Current", "totalLabel": "Accounts receivable, net", "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." } } }, "auth_ref": [ "r247", "r248" ] }, "us-gaap_AccruedBonusesCurrentAndNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedBonusesCurrentAndNoncurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Accrued Bonuses", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for incentive compensation awarded to employees and directors or earned by them based on the terms of one or more relevant arrangements." } } }, "auth_ref": [ "r71" ] }, "ftci_AccruedCompensations": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AccruedCompensations", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": { "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Accrued compensation", "documentation": "Accrued compensation.", "label": "Accrued Compensations" } } }, "auth_ref": [] }, "ftci_AccruedCostOfRevenues": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AccruedCostOfRevenues", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": { "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Accrued cost of revenue", "documentation": "Accrued cost of revenues", "label": "Accrued cost of revenues" } } }, "auth_ref": [] }, "ftci_AccruedExpensesAndOtherCurrentLiabilitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AccruedExpensesAndOtherCurrentLiabilitiesAbstract", "lang": { "en-us": { "role": { "documentation": "Accrued Expenses and Other Current Liabilities Abstract.", "label": "Accrued Expenses and Other Current Liabilities Abstract" } } }, "auth_ref": [] }, "ftci_AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AccruedExpensesAndOtherCurrentLiabilitiesDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilities" ], "lang": { "en-us": { "role": { "documentation": "Accrued Expenses and Other Current Liabilities Disclosure Text Block", "label": "Accrued Expenses and Other Current Liabilities Disclosure Text Block", "terseLabel": "Accrued Expenses and Other Current Liabilities" } } }, "auth_ref": [] }, "ftci_AccruedExpensesAndOtherCurrentLiabilitiesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AccruedExpensesAndOtherCurrentLiabilitiesTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesTables" ], "lang": { "en-us": { "role": { "documentation": "Accrued Expenses and Other Current Liabilities Table Text Block", "label": "Accrued Expenses and Other Current Liabilities Table Text Block", "terseLabel": "Schedule of Accrued Expenses and Other Current Liabilities" } } }, "auth_ref": [] }, "us-gaap_AccruedIncomeTaxesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedIncomeTaxesCurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": { "parentTag": "us-gaap_OtherLiabilitiesCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Accrued Income Taxes, Current", "terseLabel": "Non-federal tax obligations", "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." } } }, "auth_ref": [ "r78", "r127" ] }, "us-gaap_AccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccruedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 2.0 }, "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Accrued Liabilities, Current", "terseLabel": "Accrued expenses", "totalLabel": "Total accrued expenses", "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)." } } }, "auth_ref": [ "r22" ] }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails": { "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "totalLabel": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Total", "periodStartLabel": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Beginning Balance", "periodEndLabel": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment, Ending Balance", "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment", "terseLabel": "Accumulated depreciation", "negatedLabel": "Accumulated depreciation", "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services." } } }, "auth_ref": [ "r52", "r166", "r528" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax", "totalLabel": "Accumulated Other Comprehensive Income (Loss), Net of Tax, Total", "terseLabel": "Accumulated other comprehensive loss", "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source." } } }, "auth_ref": [ "r31", "r32", "r89", "r171", "r525", "r548", "r552" ] }, "us-gaap_AccumulatedOtherComprehensiveIncomeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AccumulatedOtherComprehensiveIncomeMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Accumulated Other Comprehensive Loss", "label": "AOCI Attributable to Parent [Member]", "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." } } }, "auth_ref": [ "r3", "r11", "r32", "r446", "r449", "r480", "r543", "r544", "r772", "r773", "r774", "r783", "r784", "r785" ] }, "ecd_Additional402vDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "Additional402vDisclosureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Additional 402(v) Disclosure [Text Block]", "terseLabel": "Additional 402(v) Disclosure" } } }, "auth_ref": [ "r718" ] }, "ftci_AdditionalCapitalContribution": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AdditionalCapitalContribution", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Additional capital contributions", "label": "Additional capital contribution", "documentation": "Additional capital contribution" } } }, "auth_ref": [] }, "ftci_AdditionalCapitalContributions": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AdditionalCapitalContributions", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Additional Capital Contributions", "documentation": "Additional capital contributions", "terseLabel": "Additional capital contributions" } } }, "auth_ref": [] }, "ftci_AdditionalInterestRateAbovePrime": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AdditionalInterestRateAbovePrime", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Additional Interest Rate Above Prime", "label": "Additional Interest Rate Above Prime", "documentation": "Additional Interest Rate Above Prime" } } }, "auth_ref": [] }, "us-gaap_AdditionalPaidInCapital": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdditionalPaidInCapital", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "periodEndLabel": "Additional Paid in Capital, Ending Balance", "terseLabel": "Additional paid-in capital", "label": "Additional Paid in Capital", "totalLabel": "Additional Paid in Capital, Total", "periodStartLabel": "Additional Paid in Capital, Beginning Balance", "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." } } }, "auth_ref": [ "r81", "r667", "r848" ] }, "us-gaap_AdditionalPaidInCapitalMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdditionalPaidInCapitalMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Additional Paid-in Capital", "label": "Additional Paid-in Capital [Member]", "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." } } }, "auth_ref": [ "r412", "r413", "r414", "r562", "r783", "r784", "r785", "r825", "r849" ] }, "ecd_AdjToCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AdjToCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Compensation Amount", "terseLabel": "Adjustment to Compensation, Amount" } } }, "auth_ref": [ "r724" ] }, "ecd_AdjToCompAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AdjToCompAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Compensation [Axis]", "terseLabel": "Adjustment to Compensation:" } } }, "auth_ref": [ "r724" ] }, "ecd_AdjToNonPeoNeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AdjToNonPeoNeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]", "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote" } } }, "auth_ref": [ "r724" ] }, "ecd_AdjToPeoCompFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AdjToPeoCompFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Adjustment To PEO Compensation, Footnote [Text Block]", "terseLabel": "Adjustment To PEO Compensation, Footnote" } } }, "auth_ref": [ "r724" ] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Stock-based compensation", "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition", "totalLabel": "APIC, Share-based Payment Arrangement, Increase for Cost Recognition, Total", "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement." } } }, "auth_ref": [ "r62", "r63", "r376" ] }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalStockIssuedIssuanceCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsToAdditionalPaidInCapitalStockIssuedIssuanceCosts", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "negatedTerseLabel": "Stock offering costs", "terseLabel": "Stock issuance costs", "label": "Adjustments to Additional Paid in Capital, Stock Issued, Issuance Costs", "documentation": "Amount of decrease in additional paid in capital (APIC) resulting from direct costs associated with issuing stock. Includes, but is not limited to, legal and accounting fees and direct costs associated with stock issues under a shelf registration." } } }, "auth_ref": [ "r12", "r118" ] }, "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Adjustments to reconcile net loss to cash used in operating activities:", "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]" } } }, "auth_ref": [] }, "ecd_AggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Erroneous Compensation Amount", "terseLabel": "Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r689", "r700", "r710", "r735" ] }, "ecd_AggtErrCompNotYetDeterminedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AggtErrCompNotYetDeterminedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]", "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined" } } }, "auth_ref": [ "r692", "r703", "r713", "r738" ] }, "ecd_AllAdjToCompMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AllAdjToCompMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Adjustments to Compensation [Member]", "terseLabel": "All Adjustments to Compensation" } } }, "auth_ref": [ "r724" ] }, "ecd_AllExecutiveCategoriesMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AllExecutiveCategoriesMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Executive Categories [Member]", "terseLabel": "All Executive Categories" } } }, "auth_ref": [ "r731" ] }, "ecd_AllIndividualsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AllIndividualsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "All Individuals [Member]", "terseLabel": "All Individuals" } } }, "auth_ref": [ "r696", "r704", "r714", "r731", "r739", "r743", "r751" ] }, "ecd_AllTradingArrangementsMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AllTradingArrangementsMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "All Trading Arrangements [Member]", "terseLabel": "All Trading Arrangements" } } }, "auth_ref": [ "r749" ] }, "us-gaap_AllocatedShareBasedCompensationExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AllocatedShareBasedCompensationExpense", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Stock based compensation expense", "verboseLabel": "Total stock compensation expense", "label": "Share-Based Payment Arrangement, Expense", "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized." } } }, "auth_ref": [ "r408", "r419" ] }, "us-gaap_AllowanceForDoubtfulAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AllowanceForDoubtfulAccountsReceivable", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableAllowanceForCreditLossDetails" ], "lang": { "en-us": { "role": { "periodStartLabel": "Accounts Receivable, Allowance for Credit Loss, Beginning Balance", "periodEndLabel": "Accounts Receivable, Allowance for Credit Loss, Ending Balance", "label": "Accounts Receivable, Allowance for Credit Loss", "documentation": "Amount of allowance for credit loss on accounts receivable." } } }, "auth_ref": [ "r172", "r251", "r266", "r267", "r270", "r843" ] }, "us-gaap_AllowanceForDoubtfulAccountsReceivableRecoveries": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AllowanceForDoubtfulAccountsReceivableRecoveries", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableAllowanceForCreditLossDetails" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable, Allowance for Credit Loss, Recovery", "terseLabel": "Additions charged to earnings during the period", "documentation": "Amount of increase in allowance for credit loss on accounts receivable, from recovery." } } }, "auth_ref": [ "r269" ] }, "ftci_AlphaSteelMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AlphaSteelMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Alpha Steel", "label": "Alpha Steel [Member]", "documentation": "Alpha Steel" } } }, "auth_ref": [] }, "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "AmendmentFlag", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Amendment Flag", "label": "Amendment Flag", "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission." } } }, "auth_ref": [] }, "us-gaap_AmortizationOfFinancingCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AmortizationOfFinancingCosts", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Amortization of debt issue cost", "label": "Amortization of Debt Issuance Costs", "verboseLabel": "Amortization of debt issue costs", "documentation": "Amount of amortization expense attributable to debt issuance costs." } } }, "auth_ref": [ "r93", "r337", "r467", "r777" ] }, "us-gaap_AmortizationOfIntangibleAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AmortizationOfIntangibleAssets", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Amortization of Intangible Assets", "terseLabel": "Amortization expense", "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." } } }, "auth_ref": [ "r8", "r46", "r50" ] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount", "terseLabel": "Potential common shares excluded from diluted net loss per share", "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." } } }, "auth_ref": [ "r225" ] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities [Axis]", "documentation": "Information by type of antidilutive security." } } }, "auth_ref": [ "r40" ] }, "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]", "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." } } }, "auth_ref": [] }, "us-gaap_AntidilutiveSecuritiesNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AntidilutiveSecuritiesNameDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "label": "Antidilutive Securities, Name [Domain]", "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented." } } }, "auth_ref": [ "r40" ] }, "us-gaap_ArrangementsAndNonarrangementTransactionsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ArrangementsAndNonarrangementTransactionsMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Collaborative Arrangement and Arrangement Other than Collaborative", "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Domain]", "documentation": "Collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations." } } }, "auth_ref": [ "r440" ] }, "ftci_AssessmentMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AssessmentMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "939 Assessment [Member]", "label": "939 Assessment [Member]", "documentation": "939 Assessment [Member]" } } }, "auth_ref": [] }, "ftci_AssessmentTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AssessmentTypeAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Assessment Type [Axis]", "documentation": "Assessment Type [Axis]" } } }, "auth_ref": [] }, "ftci_AssessmentTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AssessmentTypeDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Assessment Type [Domain]", "documentation": "Assessment Type [Domain]" } } }, "auth_ref": [] }, "us-gaap_AssetAcquisitionTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetAcquisitionTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAcquisitionTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of allocation of the purchase price", "label": "Asset Acquisition [Table Text Block]", "documentation": "Tabular disclosure of asset acquisition." } } }, "auth_ref": [ "r824" ] }, "ftci_AssetPurchaseAgreementMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AssetPurchaseAgreementMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Asset Purchase Agreement [Member]", "label": "Asset Purchase Agreement [Member]", "documentation": "Asset purchase agreement." } } }, "auth_ref": [] }, "us-gaap_Assets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Assets", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Total assets", "label": "Assets", "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." } } }, "auth_ref": [ "r126", "r170", "r194", "r230", "r237", "r241", "r259", "r306", "r307", "r308", "r309", "r310", "r311", "r312", "r313", "r314", "r441", "r443", "r457", "r519", "r588", "r667", "r680", "r818", "r819", "r831" ] }, "us-gaap_AssetsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "ASSETS", "label": "Assets [Abstract]" } } }, "auth_ref": [] }, "us-gaap_AssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsCurrent", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Total current assets", "terseLabel": "Current assets", "label": "Assets, Current", "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." } } }, "auth_ref": [ "r161", "r177", "r194", "r259", "r306", "r307", "r308", "r309", "r310", "r311", "r312", "r313", "r314", "r441", "r443", "r457", "r667", "r818", "r819", "r831" ] }, "us-gaap_AssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AssetsCurrentAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Current assets", "label": "Assets, Current [Abstract]" } } }, "auth_ref": [] }, "ftci_AtmProgram": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AtmProgram", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgram" ], "lang": { "en-us": { "role": { "documentation": "ATM Program", "label": "ATM Program" } } }, "auth_ref": [] }, "ftci_AtmProgramMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AtmProgramMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "ATM Program [Member]", "label": "ATM Program [Member]" } } }, "auth_ref": [] }, "ftci_AvailableLiquidityAfterConsideringFinancialCondition": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AvailableLiquidityAfterConsideringFinancialCondition", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Available liquidity after considering financial condition", "label": "Available liquidity after considering financial condition" } } }, "auth_ref": [] }, "ecd_AwardExrcPrice": { "xbrltype": "perShareItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardExrcPrice", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Exercise Price", "terseLabel": "Exercise Price" } } }, "auth_ref": [ "r746" ] }, "ecd_AwardGrantDateFairValue": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardGrantDateFairValue", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Grant Date Fair Value", "terseLabel": "Fair Value as of Grant Date" } } }, "auth_ref": [ "r747" ] }, "ecd_AwardTmgDiscLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgDiscLineItems", "lang": { "en-us": { "role": { "label": "Award Timing Disclosures [Line Items]", "terseLabel": "Award Timing Disclosures" } } }, "auth_ref": [ "r742" ] }, "ecd_AwardTmgHowMnpiCnsdrdTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgHowMnpiCnsdrdTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing, How MNPI Considered [Text Block]", "terseLabel": "Award Timing, How MNPI Considered" } } }, "auth_ref": [ "r742" ] }, "ecd_AwardTmgMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing Method [Text Block]", "terseLabel": "Award Timing Method" } } }, "auth_ref": [ "r742" ] }, "ecd_AwardTmgMnpiCnsdrdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgMnpiCnsdrdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing MNPI Considered [Flag]", "terseLabel": "Award Timing MNPI Considered" } } }, "auth_ref": [ "r742" ] }, "ecd_AwardTmgMnpiDiscTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgMnpiDiscTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing MNPI Disclosure [Text Block]", "terseLabel": "Award Timing MNPI Disclosure" } } }, "auth_ref": [ "r742" ] }, "ecd_AwardTmgPredtrmndFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardTmgPredtrmndFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Timing Predetermined [Flag]", "terseLabel": "Award Timing Predetermined" } } }, "auth_ref": [ "r742" ] }, "us-gaap_AwardTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "AwardTypeAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Type [Axis]", "terseLabel": "Award Type", "documentation": "Information by type of award under share-based payment arrangement." } } }, "auth_ref": [ "r379", "r380", "r381", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r403", "r404", "r405", "r406", "r407" ] }, "ecd_AwardUndrlygSecuritiesAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardUndrlygSecuritiesAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Award Underlying Securities Amount", "terseLabel": "Underlying Securities" } } }, "auth_ref": [ "r745" ] }, "ecd_AwardsCloseToMnpiDiscIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardsCloseToMnpiDiscIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r744" ] }, "ecd_AwardsCloseToMnpiDiscTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardsCloseToMnpiDiscTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures [Table]", "terseLabel": "Awards Close in Time to MNPI Disclosures" } } }, "auth_ref": [ "r743" ] }, "ecd_AwardsCloseToMnpiDiscTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "AwardsCloseToMnpiDiscTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]", "terseLabel": "Awards Close in Time to MNPI Disclosures, Table" } } }, "auth_ref": [ "r743" ] }, "ftci_AynaMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "AynaMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "terseLabel": "Ayna [Member]", "label": "Ayna [Member]", "documentation": "Ayna" } } }, "auth_ref": [] }, "us-gaap_BalanceSheetLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BalanceSheetLocationAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Balance Sheet Location", "label": "Balance Sheet Location [Axis]", "documentation": "Information by location on balance sheet (statement of financial position)." } } }, "auth_ref": [] }, "us-gaap_BalanceSheetLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BalanceSheetLocationDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Balance Sheet Location", "label": "Balance Sheet Location [Domain]", "documentation": "Location in the balance sheet (statement of financial position)." } } }, "auth_ref": [ "r65", "r66" ] }, "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BasisOfAccountingPolicyPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Basis of presentation and principles of consolidation", "label": "Basis of Accounting, Policy [Policy Text Block]", "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)." } } }, "auth_ref": [] }, "srt_BoardOfDirectorsChairmanMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "BoardOfDirectorsChairmanMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Board of Directors Chairman [Member]", "terseLabel": "Board of Directors and Chairman" } } }, "auth_ref": [ "r787" ] }, "us-gaap_BusinessCombinationAndAssetAcquisitionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessCombinationAndAssetAcquisitionAbstract", "lang": { "en-us": { "role": { "label": "Business Combination and Asset Acquisition [Abstract]" } } }, "auth_ref": [] }, "us-gaap_BusinessDescriptionAndBasisOfPresentationTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "BusinessDescriptionAndBasisOfPresentationTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDescriptionOfBusiness1" ], "lang": { "en-us": { "role": { "terseLabel": "Description of business", "label": "Business Description and Basis of Presentation [Text Block]", "documentation": "The entire disclosure for the business description and basis of presentation concepts. Business description describes the nature and type of organization including but not limited to organizational structure as may be applicable to holding companies, parent and subsidiary relationships, business divisions, business units, business segments, affiliates and information about significant ownership of the reporting entity. Basis of presentation describes the underlying basis used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS)." } } }, "auth_ref": [ "r77", "r104", "r105" ] }, "ftci_CapitalContributions": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "CapitalContributions", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Capital Contribution", "label": "Capital contributions", "documentation": "Capital contributions" } } }, "auth_ref": [] }, "us-gaap_Cash": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Cash", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "periodStartLabel": "Cash, Beginning Balance", "periodEndLabel": "Cash, Ending Balance", "label": "Cash", "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Excludes cash and cash equivalents within disposal group and discontinued operation." } } }, "auth_ref": [ "r144", "r522", "r563", "r583", "r667", "r680", "r767" ] }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashAndCashEquivalentsAtCarryingValue", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, at Carrying Value", "totalLabel": "Cash and Cash Equivalents, at Carrying Value, Total", "periodStartLabel": "Cash and Cash Equivalents, at Carrying Value, Beginning Balance", "periodEndLabel": "Cash and Cash Equivalents, at Carrying Value, Ending Balance", "terseLabel": "Cash and cash equivalents", "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes 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. Excludes cash and cash equivalents within disposal group and discontinued operation." } } }, "auth_ref": [ "r37", "r164", "r640" ] }, "us-gaap_CashAndCashEquivalentsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashAndCashEquivalentsPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Cash and Cash Equivalents, Policy [Policy Text Block]", "terseLabel": "Cash and cash equivalents", "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." } } }, "auth_ref": [ "r38" ] }, "us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Restricted Cash", "label": "Cash and Cash Equivalents, Restricted Cash and Cash Equivalents, Policy [Policy Text Block]", "documentation": "Entity's cash and cash equivalents accounting policy with respect to restricted balances. Restrictions may include legally restricted deposits held as compensating balances against short-term borrowing arrangements, contracts entered into with others, or company statements of intention with regard to particular deposits; however, time deposits and short-term certificates of deposit are not generally included in legally restricted deposits." } } }, "auth_ref": [ "r38", "r125" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents", "terseLabel": "Total cash and restricted cash", "totalLabel": "Total cash and restricted cash", "periodStartLabel": "Cash and cash equivalents at beginning of period", "periodEndLabel": "Cash and cash equivalents at end of period", "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." } } }, "auth_ref": [ "r37", "r101", "r190" ] }, "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Decrease in cash, cash equivalents and restricted cash", "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect", "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." } } }, "auth_ref": [ "r2", "r101" ] }, "ftci_CashPaidDuringThePeriodForThirdPartyInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "CashPaidDuringThePeriodForThirdPartyInterest", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Cash paid during the period for interest", "documentation": "Cash paid during the period for third party interest", "label": "Cash paid during the period for third party interest" } } }, "auth_ref": [] }, "ftci_CashPayments": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "CashPayments", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "verboseLabel": "Cash payment", "documentation": "Cash Payments", "label": "Cash Payments", "terseLabel": "Cash payments" } } }, "auth_ref": [] }, "ftci_CbpAssessmentsMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "CbpAssessmentsMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "CBP Assessments [Member]", "label": "CBP Assessments [Member]", "documentation": "CBP Assessments [Member]" } } }, "auth_ref": [] }, "ecd_ChangedPeerGroupFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ChangedPeerGroupFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Changed Peer Group, Footnote [Text Block]", "terseLabel": "Changed Peer Group, Footnote" } } }, "auth_ref": [ "r722" ] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CityAreaCode", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "City Area Code", "label": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "ftci_ClosingBidPrice": { "xbrltype": "perShareItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ClosingBidPrice", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Closing bid price", "label": "Closing bid price", "documentation": "Closing bid price" } } }, "auth_ref": [] }, "ecd_CoSelectedMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CoSelectedMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Company Selected Measure Amount", "terseLabel": "Company Selected Measure Amount" } } }, "auth_ref": [ "r723" ] }, "ecd_CoSelectedMeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CoSelectedMeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Company Selected Measure Name", "terseLabel": "Company Selected Measure Name" } } }, "auth_ref": [ "r723" ] }, "us-gaap_CommitmentsAndContingencies": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommitmentsAndContingencies", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Commitments and contingencies (Note 14)", "label": "Commitments and Contingencies", "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." } } }, "auth_ref": [ "r27", "r72", "r521", "r574" ] }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommitmentsAndContingenciesDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Commitments and Contingencies Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommitmentsAndContingenciesDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingencies" ], "lang": { "en-us": { "role": { "terseLabel": "Commitments and Contingencies", "label": "Commitments and Contingencies Disclosure [Text Block]", "documentation": "The entire disclosure for commitments and contingencies." } } }, "auth_ref": [ "r113", "r294", "r295", "r634", "r805" ] }, "ftci_CommonStockCapitalSharesReservedForFutureIssuanceValue": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "CommonStockCapitalSharesReservedForFutureIssuanceValue", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Common stock, reserved for future issuance, value", "label": "Common Stock, Capital Shares Reserved for Future Issuance Value", "documentation": "Common Stock, Capital Shares Reserved for Future Issuance Value" } } }, "auth_ref": [] }, "us-gaap_CommonStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Common Stock", "label": "Common Stock [Member]", "documentation": "Stock that is subordinate to all other stock of the issuer." } } }, "auth_ref": [ "r670", "r671", "r672", "r674", "r675", "r676", "r677", "r783", "r784", "r825", "r846", "r849" ] }, "us-gaap_CommonStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockParOrStatedValuePerShare", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Common stock, par value", "label": "Common Stock, Par or Stated Value Per Share", "documentation": "Face amount or stated value per share of common stock." } } }, "auth_ref": [ "r80" ] }, "us-gaap_CommonStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesAuthorized", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Common stock, shares authorized", "label": "Common Stock, Shares Authorized", "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r80", "r575" ] }, "us-gaap_CommonStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesIssued", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "verboseLabel": "Common stock issued for notes purchased", "terseLabel": "Common stock, shares issued", "label": "Common Stock, Shares, Issued", "totalLabel": "Common Stock, Shares, Issued, Total", "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." } } }, "auth_ref": [ "r80" ] }, "us-gaap_CommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockSharesOutstanding", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Common stock, shares outstanding", "label": "Common Stock, Shares, Outstanding", "periodStartLabel": "Common Stock, Shares, Outstanding, Beginning Balance", "periodEndLabel": "Common Stock, Shares, Outstanding, Ending Balance", "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation." } } }, "auth_ref": [ "r12", "r80", "r575", "r594", "r849", "r850" ] }, "us-gaap_CommonStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CommonStockValue", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Common stock par value of $0.0001 per share, 850,000,000 shares authorized; 125,952,253 and 125,445,325 shares issued and outstanding as of March 31, 2024 and December 31, 2023", "label": "Common Stock, Value, Issued", "totalLabel": "Common Stock, Value, Issued, Total", "periodStartLabel": "Common Stock, Value, Issued, Beginning Balance", "periodEndLabel": "Common Stock, Value, Issued, Ending Balance", "verboseLabel": "Common stock, value, issued", "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." } } }, "auth_ref": [ "r80", "r524", "r667" ] }, "ftci_CommonStockValueAuthorized": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "CommonStockValueAuthorized", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Common stock value authorized.", "label": "Common Stock Value Authorized", "terseLabel": "Common stock, value authorized" } } }, "auth_ref": [] }, "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]", "terseLabel": "Compensation Actually Paid vs. Company Selected Measure" } } }, "auth_ref": [ "r728" ] }, "ecd_CompActuallyPaidVsNetIncomeTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CompActuallyPaidVsNetIncomeTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Net Income [Text Block]", "terseLabel": "Compensation Actually Paid vs. Net Income" } } }, "auth_ref": [ "r727" ] }, "ecd_CompActuallyPaidVsOtherMeasureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CompActuallyPaidVsOtherMeasureTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Other Measure [Text Block]", "terseLabel": "Compensation Actually Paid vs. Other Measure" } } }, "auth_ref": [ "r729" ] }, "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]", "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return" } } }, "auth_ref": [ "r726" ] }, "us-gaap_ComprehensiveIncomeNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ComprehensiveIncomeNetOfTax", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent", "totalLabel": "Comprehensive loss", "terseLabel": "Comprehensive loss", "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." } } }, "auth_ref": [ "r33", "r180", "r182", "r187", "r515", "r533" ] }, "us-gaap_ConcentrationRiskCreditRisk": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ConcentrationRiskCreditRisk", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Concentration of credit risk", "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]", "documentation": "Disclosure of accounting policy for credit risk." } } }, "auth_ref": [ "r74", "r148" ] }, "ftci_ConsecutiveBusinessDays": { "xbrltype": "integerItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ConsecutiveBusinessDays", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Consecutive business days", "label": "Consecutive business days", "documentation": "Consecutive business days" } } }, "auth_ref": [] }, "us-gaap_ContractWithCustomerLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ContractWithCustomerLiabilityCurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Deferred revenue", "label": "Contract with Customer, Liability, Current", "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current." } } }, "auth_ref": [ "r357", "r358", "r369" ] }, "ftci_CostOfAssessment": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "CostOfAssessment", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Cost of assessment", "label": "Cost of Assessment", "documentation": "Cost of Assessment" } } }, "auth_ref": [] }, "us-gaap_CostOfGoodsAndServicesSold": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfGoodsAndServicesSold", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_GrossProfit", "weight": -1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Total cost of revenue", "label": "Cost of Goods and Services Sold", "totalLabel": "Cost of Goods and Services Sold, Total", "verboseLabel": "Cost of Revenue", "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." } } }, "auth_ref": [ "r95", "r498" ] }, "us-gaap_CostOfRevenueAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfRevenueAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Cost of revenue:", "label": "Cost of Revenue [Abstract]" } } }, "auth_ref": [] }, "us-gaap_CostOfSalesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CostOfSalesMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Cost of Sales [Member]", "terseLabel": "Cost of revenue [Member]", "documentation": "Primary financial statement caption encompassing cost of sales." } } }, "auth_ref": [] }, "srt_CounterpartyNameAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "CounterpartyNameAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Counterparty Name", "label": "Counterparty Name [Axis]" } } }, "auth_ref": [ "r198", "r199", "r319", "r345", "r487", "r644", "r646" ] }, "dei_CoverAbstract": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CoverAbstract", "lang": { "en-us": { "role": { "label": "Cover [Abstract]", "documentation": "Cover page." } } }, "auth_ref": [] }, "ftci_Covid19PandemicPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "Covid19PandemicPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Covid-19 Pandemic", "label": "Covid-19 Pandemic Policy [Text Block]", "documentation": "Covid-19 Pandemic Policy [Text Block]" } } }, "auth_ref": [] }, "us-gaap_CreditFacilityAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CreditFacilityAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Credit Facility", "label": "Credit Facility [Axis]", "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing." } } }, "auth_ref": [] }, "us-gaap_CreditFacilityDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "CreditFacilityDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Credit Facility", "label": "Credit Facility [Domain]", "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing." } } }, "auth_ref": [] }, "dei_CurrentFiscalYearEndDate": { "xbrltype": "gMonthDayItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "CurrentFiscalYearEndDate", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Current Fiscal Year End Date", "label": "Current Fiscal Year End Date", "documentation": "End date of current fiscal year in the format --MM-DD." } } }, "auth_ref": [] }, "ftci_DayvLlcMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "DayvLlcMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "DAYV LLC [Member]", "label": "DAYV LLC [Member]", "documentation": "DAYV LLC" } } }, "auth_ref": [] }, "us-gaap_DebtDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Debt Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_DebtDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebt1" ], "lang": { "en-us": { "role": { "terseLabel": "Debt and Other Borrowings", "label": "Debt Disclosure [Text Block]", "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." } } }, "auth_ref": [ "r114", "r192", "r315", "r321", "r322", "r323", "r324", "r325", "r326", "r331", "r338", "r339", "r341" ] }, "us-gaap_DebtInstrumentLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Debt Instrument [Line Items]", "label": "Debt Instrument [Line Items]", "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." } } }, "auth_ref": [ "r200", "r316", "r317", "r318", "r319", "r320", "r322", "r327", "r328", "r329", "r330", "r332", "r333", "r334", "r335", "r336", "r337", "r340", "r468", "r656", "r657", "r658", "r659", "r660", "r779" ] }, "us-gaap_DebtInstrumentTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Debt Instrument [Table]", "label": "Schedule of Long-Term Debt Instruments [Table]", "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." } } }, "auth_ref": [ "r25", "r55", "r56", "r68", "r69", "r70", "r73", "r116", "r117", "r200", "r316", "r317", "r318", "r319", "r320", "r322", "r327", "r328", "r329", "r330", "r332", "r333", "r334", "r335", "r336", "r337", "r340", "r468", "r656", "r657", "r658", "r659", "r660", "r779" ] }, "us-gaap_DebtInstrumentUnusedBorrowingCapacityAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DebtInstrumentUnusedBorrowingCapacityAmount", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Debt Instrument, Unused Borrowing Capacity, Amount", "terseLabel": "Unused borrowing capacity", "documentation": "Amount of unused borrowing capacity under the long-term financing arrangement that is available to the entity as of the balance sheet date." } } }, "auth_ref": [ "r24" ] }, "ftci_DeferredCostOfRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "DeferredCostOfRevenue", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails": { "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Deferred cost of revenue", "label": "Deferred Cost of Revenue", "terseLabel": "Deferred cost of revenue" } } }, "auth_ref": [] }, "us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of prepaid and other current assets", "label": "Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Table Text Block]", "documentation": "Tabular disclosure of the amounts paid in advance for capitalized costs that will be expensed with the passage of time or the occurrence of a triggering event, and will be charged against earnings within one year or the normal operating cycle, if longer; the aggregate carrying amount of current assets, not separately presented elsewhere in the balance sheet; and other deferred costs." } } }, "auth_ref": [] }, "us-gaap_DeferredCreditsAndOtherLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredCreditsAndOtherLiabilitiesCurrent", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Non-federal tax obligations", "label": "Deferred Credits and Other Liabilities, Current", "documentation": "Carrying amount as of the balance sheet date of unearned revenue or income, not otherwise specified in the taxonomy, which is expected to be taken into income during the current period and current obligations not separately disclosed in the balance sheet (other liabilities, current)." } } }, "auth_ref": [] }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredIncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 13.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Deferred Income Tax Expense (Benefit), Total", "label": "Deferred Income Tax Expense (Benefit)", "terseLabel": "Deferred income taxes", "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations." } } }, "auth_ref": [ "r8", "r123", "r154", "r434", "r435", "r781" ] }, "us-gaap_DeferredIncomeTaxLiabilitiesNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredIncomeTaxLiabilitiesNet", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Deferred income taxes", "label": "Deferred Income Tax Liabilities, Net", "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting." } } }, "auth_ref": [ "r422", "r423", "r520" ] }, "ftci_DeferredIncomeTaxes": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "DeferredIncomeTaxes", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails": { "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Deferred Income Taxes", "label": "Deferred income taxes" } } }, "auth_ref": [] }, "us-gaap_DeferredRevenueRevenueRecognized1": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DeferredRevenueRevenueRecognized1", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Deferred Revenue, Revenue Recognized", "terseLabel": "Revenue recognized included in deferred revenue", "documentation": "Amount of revenue recognized that was previously reported as deferred or unearned revenue." } } }, "auth_ref": [] }, "us-gaap_Depreciation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Depreciation", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Depreciation expense", "label": "Depreciation", "totalLabel": "Depreciation, Total", "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." } } }, "auth_ref": [ "r8", "r51" ] }, "us-gaap_DepreciationAndAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DepreciationAndAmortization", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Depreciation, Depletion and Amortization, Nonproduction", "totalLabel": "Depreciation, Depletion and Amortization, Nonproduction, Total", "terseLabel": "Depreciation and amortization", "documentation": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production." } } }, "auth_ref": [ "r8", "r51" ] }, "ftci_DescriptionOfBusinessLineItems": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "DescriptionOfBusinessLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Description Of Business [Line Items]", "label": "Description Of Business [Line Items]", "documentation": "Description of business." } } }, "auth_ref": [] }, "ftci_DescriptionOfBusinessTable": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "DescriptionOfBusinessTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Description Of Business [Table]", "label": "Description Of Business [Table]", "documentation": "Description of business." } } }, "auth_ref": [] }, "ftci_DescriptionOfClosingBidPricOfOurCommonStock": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "DescriptionOfClosingBidPricOfOurCommonStock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Description of closing bid pric of our common stock", "label": "Description of closing bid pric of our common stock", "documentation": "Description of closing bid pric of our common stock" } } }, "auth_ref": [] }, "ftci_DescriptionOfRevisedTariffsClassification": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "DescriptionOfRevisedTariffsClassification", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Description of Revised Tariffs Classification", "terseLabel": "Description of revised tariffs classification", "documentation": "Description of Revised Tariffs classification" } } }, "auth_ref": [] }, "ftci_DescriptionOfTariffsClassification": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "DescriptionOfTariffsClassification", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Description of tariffs classification", "label": "Description of Tariffs Classification", "documentation": "Description of Tariffs classification" } } }, "auth_ref": [] }, "us-gaap_DevelopedTechnologyRightsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DevelopedTechnologyRightsMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Developed Technology Rights [Member]", "terseLabel": "Developed Technology [Member]", "documentation": "Rights to developed technology, which can include the right to develop, use, market, sell, or offer for sale products, compounds, or intellectual property." } } }, "auth_ref": [ "r124" ] }, "srt_DirectorMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "DirectorMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Director [Member]", "terseLabel": "Board of Directors" } } }, "auth_ref": [ "r787", "r847" ] }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensation" ], "lang": { "en-us": { "role": { "terseLabel": "Stock-Based Compensation", "label": "Share-Based Payment Arrangement [Text Block]", "documentation": "The entire disclosure for share-based payment arrangement." } } }, "auth_ref": [ "r374", "r378", "r409", "r410", "r411", "r665" ] }, "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract", "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement [Abstract]" } } }, "auth_ref": [] }, "dei_DocumentFiscalPeriodFocus": { "xbrltype": "fiscalPeriodItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentFiscalPeriodFocus", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "verboseLabel": "Document Fiscal Period Focus", "label": "Document Fiscal Period Focus", "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." } } }, "auth_ref": [] }, "dei_DocumentFiscalYearFocus": { "xbrltype": "gYearItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentFiscalYearFocus", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Document Fiscal Year Focus", "label": "Document Fiscal Year Focus", "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." } } }, "auth_ref": [] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentPeriodEndDate", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Document Period End Date", "label": "Document Period End Date", "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." } } }, "auth_ref": [] }, "dei_DocumentQuarterlyReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentQuarterlyReport", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Document Quarterly Report", "label": "Document Quarterly Report", "documentation": "Boolean flag that is true only for a form used as an quarterly report." } } }, "auth_ref": [ "r684" ] }, "dei_DocumentTransitionReport": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentTransitionReport", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Document Transition Report", "label": "Document Transition Report", "documentation": "Boolean flag that is true only for a form used as a transition report." } } }, "auth_ref": [ "r717" ] }, "dei_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "DocumentType", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Document Type", "label": "Document Type", "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'." } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Net loss per share:", "label": "Earnings Per Share [Abstract]", "verboseLabel": "Note 11. Net loss per share" } } }, "auth_ref": [] }, "us-gaap_EarningsPerShareBasic": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareBasic", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "verboseLabel": "Basic loss per share", "label": "Earnings Per Share, Basic", "totalLabel": "Earnings Per Share, Basic, Total", "terseLabel": "Basic", "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period." } } }, "auth_ref": [ "r188", "r206", "r207", "r209", "r210", "r212", "r218", "r220", "r222", "r223", "r224", "r228", "r454", "r455", "r516", "r534", "r650" ] }, "us-gaap_EarningsPerShareDiluted": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareDiluted", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "verboseLabel": "Diluted loss per share", "label": "Earnings Per Share, Diluted", "totalLabel": "Earnings Per Share, Diluted, Total", "terseLabel": "Diluted", "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." } } }, "auth_ref": [ "r188", "r206", "r207", "r209", "r210", "r212", "r220", "r222", "r223", "r224", "r228", "r454", "r455", "r516", "r534", "r650" ] }, "us-gaap_EarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EarningsPerShareTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShare1" ], "lang": { "en-us": { "role": { "terseLabel": "Net Loss Per Share", "label": "Earnings Per Share [Text Block]", "documentation": "The entire disclosure for earnings per share." } } }, "auth_ref": [ "r217", "r225", "r226", "r227" ] }, "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Effect of exchange rate changes on cash, cash equivalents and restricted cash", "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Continuing Operations", "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. Excludes amounts 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." } } }, "auth_ref": [ "r458" ] }, "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Statutory rate", "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent", "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss)." } } }, "auth_ref": [ "r195", "r425", "r436" ] }, "us-gaap_EffectiveIncomeTaxRateReconciliationTaxCreditsInvestment": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EffectiveIncomeTaxRateReconciliationTaxCreditsInvestment", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Investment, Percent", "terseLabel": "Investment tax credit, percentage", "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 investment tax credit." } } }, "auth_ref": [ "r822", "r823" ] }, "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]", "terseLabel": "Share-based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]", "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." } } }, "auth_ref": [] }, "us-gaap_EmployeeStockOptionMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EmployeeStockOptionMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Employee Stock Option [Member]", "terseLabel": "Employee Stock Option", "verboseLabel": "Stock Options [Member]", "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." } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressAddressLine1", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, Address Line One", "label": "Entity Address, Address Line One", "documentation": "Address Line 1 such as Attn, Building Name, Street Name" } } }, "auth_ref": [] }, "dei_EntityAddressAddressLine2": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressAddressLine2", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, Address Line Two", "label": "Entity Address, Address Line Two", "documentation": "Address Line 2 such as Street or Suite number" } } }, "auth_ref": [] }, "dei_EntityAddressCityOrTown": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressCityOrTown", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, City or Town", "label": "Entity Address, City or Town", "documentation": "Name of the City or Town" } } }, "auth_ref": [] }, "dei_EntityAddressPostalZipCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, Postal Zip Code", "label": "Entity Address, Postal Zip Code", "documentation": "Code for the postal or zip code" } } }, "auth_ref": [] }, "dei_EntityAddressStateOrProvince": { "xbrltype": "stateOrProvinceItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Address, State or Province", "label": "Entity Address, State or Province", "documentation": "Name of the state or province." } } }, "auth_ref": [] }, "dei_EntityCentralIndexKey": { "xbrltype": "centralIndexKeyItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCentralIndexKey", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Central Index Key", "label": "Entity Central Index Key", "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK." } } }, "auth_ref": [ "r682" ] }, "dei_EntityCommonStockSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCommonStockSharesOutstanding", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Common Stock, Shares Outstanding", "label": "Entity Common Stock, Shares Outstanding", "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." } } }, "auth_ref": [] }, "dei_EntityCurrentReportingStatus": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityCurrentReportingStatus", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Current Reporting Status", "label": "Entity Current Reporting Status", "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." } } }, "auth_ref": [] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Emerging Growth Company", "label": "Entity Emerging Growth Company", "documentation": "Indicate if registrant meets the emerging growth company criteria." } } }, "auth_ref": [ "r682" ] }, "dei_EntityExTransitionPeriod": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityExTransitionPeriod", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Ex Transition Period", "label": "Entity Ex Transition Period", "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." } } }, "auth_ref": [ "r757" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityFileNumber", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity File Number", "label": "Securities Act File Number", "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." } } }, "auth_ref": [] }, "dei_EntityFilerCategory": { "xbrltype": "filerCategoryItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityFilerCategory", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Filer Category", "label": "Entity Filer Category", "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." } } }, "auth_ref": [ "r682" ] }, "dei_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Incorporation, State or Country Code", "label": "Entity Incorporation, State or Country Code", "documentation": "Two-character EDGAR code representing the state or country of incorporation." } } }, "auth_ref": [] }, "dei_EntityInteractiveDataCurrent": { "xbrltype": "yesNoItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityInteractiveDataCurrent", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Interactive Data Current", "label": "Entity Interactive Data Current", "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)." } } }, "auth_ref": [ "r756" ] }, "dei_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityRegistrantName", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Registrant Name", "label": "Entity Registrant Name", "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC." } } }, "auth_ref": [ "r682" ] }, "dei_EntityShellCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityShellCompany", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Shell Company", "label": "Entity Shell Company", "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act." } } }, "auth_ref": [ "r682" ] }, "dei_EntitySmallBusiness": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntitySmallBusiness", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Small Business", "label": "Entity Small Business", "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)." } } }, "auth_ref": [ "r682" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Entity Tax Identification Number", "label": "Entity Tax Identification Number", "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS." } } }, "auth_ref": [ "r682" ] }, "us-gaap_EquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquipmentMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Equipment [Member]", "terseLabel": "Field Equipment [Member]", "documentation": "Tangible personal property used to produce goods and services." } } }, "auth_ref": [] }, "us-gaap_EquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityAbstract", "lang": { "en-us": { "role": { "label": "Equity [Abstract]" } } }, "auth_ref": [] }, "us-gaap_EquityComponentDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityComponentDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Equity Component", "label": "Equity Component [Domain]", "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." } } }, "auth_ref": [ "r12", "r158", "r183", "r184", "r185", "r201", "r202", "r203", "r205", "r213", "r215", "r229", "r262", "r265", "r356", "r412", "r413", "r414", "r430", "r431", "r445", "r446", "r447", "r448", "r449", "r450", "r453", "r459", "r461", "r462", "r463", "r464", "r465", "r480", "r543", "r544", "r545", "r562", "r618" ] }, "srt_EquityMethodInvesteeNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "EquityMethodInvesteeNameDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Investment, Name", "label": "Investment, Name [Domain]" } } }, "auth_ref": [ "r255", "r256", "r258" ] }, "us-gaap_EquityMethodInvestmentOwnershipPercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityMethodInvestmentOwnershipPercentage", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Ownership percentage", "label": "Equity Method Investment, Ownership Percentage", "documentation": "The percentage of ownership of common stock or equity participation in the investee accounted for under the equity method of accounting." } } }, "auth_ref": [ "r255" ] }, "us-gaap_EquityMethodInvestmentRealizedGainLossOnDisposal": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityMethodInvestmentRealizedGainLossOnDisposal", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 2.0 }, "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 8.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Equity Method Investment, Realized Gain (Loss) on Disposal, Total", "label": "Equity Method Investment, Realized Gain (Loss) on Disposal", "negatedLabel": "Gain from disposal of investment in unconsolidated subsidiary", "terseLabel": "Gain from disposal of investment in unconsolidated subsidiary", "documentation": "Amount of gain (loss) on sale or disposal of an equity method investment." } } }, "auth_ref": [ "r775", "r776", "r777" ] }, "us-gaap_EquityMethodInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityMethodInvestments", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Equity method investment", "label": "Equity Method Investments", "documentation": "This item represents the carrying amount on the entity's balance sheet of its investment in common stock of an equity method investee. This is not an indicator of the fair value of the investment, rather it is the initial cost adjusted for the entity's share of earnings and losses of the investee, adjusted for any distributions (dividends) and other than temporary impairment (OTTI) losses recognized." } } }, "auth_ref": [ "r234", "r253", "r768", "r788" ] }, "us-gaap_EquityMethodInvestmentsAndJointVenturesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityMethodInvestmentsAndJointVenturesAbstract", "lang": { "en-us": { "role": { "label": "Equity Method Investments and Joint Ventures [Abstract]" } } }, "auth_ref": [] }, "us-gaap_EquityMethodInvestmentsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityMethodInvestmentsDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestment" ], "lang": { "en-us": { "role": { "terseLabel": "Equity method investment", "label": "Equity Method Investments and Joint Ventures Disclosure [Text Block]", "documentation": "The entire disclosure for equity method investments and joint ventures. Equity method investments are investments that give the investor the ability to exercise significant influence over the operating and financial policies of an investee. Joint ventures are entities owned and operated by a small group of businesses as a separate and specific business or project for the mutual benefit of the members of the group." } } }, "auth_ref": [ "r156", "r257", "r260", "r758" ] }, "ftci_EquityMethodInvestmentsFinancialInformationTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "EquityMethodInvestmentsFinancialInformationTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSalesOfEquityMethodInvestmentsTables" ], "lang": { "en-us": { "role": { "documentation": "Equity method investments financial information.", "label": "Equity Method Investments Financial Information Table Text Block", "terseLabel": "Summary of Equity Method Investments Financial Information" } } }, "auth_ref": [] }, "us-gaap_EquityMethodInvestmentsPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityMethodInvestmentsPolicy", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Equity method investments", "label": "Equity Method Investments [Policy Text Block]", "documentation": "Disclosure of accounting policy for equity method of accounting for investments and other interests. Investment includes, but is not limited to, unconsolidated subsidiary, corporate joint venture, noncontrolling interest in real estate venture, limited partnership, and limited liability company. Information includes, but is not limited to, ownership percentage, reason equity method is or is not considered appropriate, and accounting policy election for distribution received." } } }, "auth_ref": [ "r6", "r67", "r256" ] }, "us-gaap_EquityMethodInvestmentsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "EquityMethodInvestmentsTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSalesOfEquityMethodInvestmentsTables" ], "lang": { "en-us": { "role": { "terseLabel": "Summary of Equity Method Investments", "label": "Equity Method Investments [Table Text Block]", "documentation": "Tabular disclosure of equity method investments including, but not limited to, name of each investee or group of investments, percentage ownership, difference between recorded amount of an investment and the value of the underlying equity in the net assets, and summarized financial information." } } }, "auth_ref": [ "r254" ] }, "ecd_EquityValuationAssumptionDifferenceFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "EquityValuationAssumptionDifferenceFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Equity Valuation Assumption Difference, Footnote [Text Block]", "terseLabel": "Equity Valuation Assumption Difference, Footnote" } } }, "auth_ref": [ "r725" ] }, "ecd_ErrCompAnalysisTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ErrCompAnalysisTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Erroneous Compensation Analysis [Text Block]", "terseLabel": "Erroneous Compensation Analysis" } } }, "auth_ref": [ "r689", "r700", "r710", "r735" ] }, "ecd_ErrCompRecoveryTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ErrCompRecoveryTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Erroneously Awarded Compensation Recovery [Table]", "terseLabel": "Erroneously Awarded Compensation Recovery" } } }, "auth_ref": [ "r686", "r697", "r707", "r732" ] }, "ecd_ExecutiveCategoryAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ExecutiveCategoryAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Executive Category [Axis]", "terseLabel": "Executive Category:" } } }, "auth_ref": [ "r731" ] }, "us-gaap_FairValueMeasurementPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FairValueMeasurementPolicyPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Fair Value of Financial Instruments", "label": "Fair Value Measurement, Policy [Policy Text Block]", "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." } } }, "auth_ref": [] }, "ftci_FairValueOfRetainedEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "FairValueOfRetainedEquipment", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Fair value of retained equipment", "label": "Fair Value Of Retained Equipment", "documentation": "Fair Value Of Retained Equipment" } } }, "auth_ref": [] }, "ftci_FcxSolarLlcMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "FcxSolarLlcMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Fcx Solar Llc [Member]", "label": "Fcx Solar Llc [Member]", "terseLabel": "Fcx Solar Llc [Member]" } } }, "auth_ref": [] }, "ftci_FernwehEngagedOperatorCompanyLlcMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "FernwehEngagedOperatorCompanyLlcMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "documentation": "Fernweh Engaged Operator Company LLC [Member]", "label": "Fernweh Engaged Operator Company LLC [Member]", "terseLabel": "Fernweh Engaged Operator Company LLC [Member]" } } }, "auth_ref": [] }, "us-gaap_FinancingInterestExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FinancingInterestExpense", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Interest expense", "label": "Financing Interest Expense", "documentation": "This element represents interest incurred for borrowed money which was used to produce goods or render services." } } }, "auth_ref": [ "r96" ] }, "us-gaap_FiniteLivedIntangibleAssetUsefulLife": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetUsefulLife", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Intangible assets, estimated useful life", "label": "Finite-Lived Intangible Asset, Useful Life", "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." } } }, "auth_ref": [] }, "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Accumulated Amortization", "terseLabel": "Accumulated amortization", "negatedLabel": "Accumulated amortization", "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r168", "r284" ] }, "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets by Major Class [Axis]", "documentation": "Information by major type or class of finite-lived intangible assets." } } }, "auth_ref": [ "r282", "r283", "r284", "r285", "r499", "r500" ] }, "us-gaap_FiniteLivedIntangibleAssetsGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsGross", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails": { "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "totalLabel": "Finite-Lived Intangible Assets, Gross, Total", "label": "Finite-Lived Intangible Assets, Gross", "terseLabel": "Intangible assets, gross", "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r108", "r500" ] }, "us-gaap_FiniteLivedIntangibleAssetsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets [Line Items]", "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." } } }, "auth_ref": [ "r499" ] }, "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]", "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." } } }, "auth_ref": [ "r47", "r49" ] }, "us-gaap_FiniteLivedIntangibleAssetsNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsNet", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "periodStartLabel": "Finite-Lived Intangible Assets, Net, Beginning Balance", "periodEndLabel": "Finite-Lived Intangible Assets, Net, Ending Balance", "label": "Finite-Lived Intangible Assets, Net", "terseLabel": "Intangible assets, net", "totalLabel": "Intangible assets, net", "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life." } } }, "auth_ref": [ "r108", "r499" ] }, "us-gaap_FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1": { "xbrltype": "durationItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "FiniteLivedIntangibleAssetsRemainingAmortizationPeriod1", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Finite-Lived Intangible Assets, Remaining Amortization Period", "terseLabel": "Amortized period", "documentation": "Remaining amortization period of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days." } } }, "auth_ref": [ "r499" ] }, "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount", "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount" } } }, "auth_ref": [ "r693", "r704", "r714", "r739" ] }, "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Expense of Enforcement, Amount", "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount" } } }, "auth_ref": [ "r693", "r704", "r714", "r739" ] }, "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery due to Violation of Home Country Law, Amount", "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount" } } }, "auth_ref": [ "r693", "r704", "r714", "r739" ] }, "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery, Explanation of Impracticability [Text Block]", "terseLabel": "Forgone Recovery, Explanation of Impracticability" } } }, "auth_ref": [ "r693", "r704", "r714", "r739" ] }, "ecd_ForgoneRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "ForgoneRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Forgone Recovery, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r693", "r704", "r714", "r739" ] }, "ftci_ForwardStockSplit": { "xbrltype": "pureItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ForwardStockSplit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Forward stock split", "label": "Forward stock split", "verboseLabel": "Forward stock split" } } }, "auth_ref": [] }, "ftci_ForwardStockSplitTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ForwardStockSplitTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Forward stock split.", "label": "Corporate Conversion And Stock Split Policy [Text Block]", "terseLabel": "Forward Stock Split" } } }, "auth_ref": [] }, "us-gaap_GeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GeneralAndAdministrativeExpense", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "General and administrative", "label": "General and Administrative Expense", "totalLabel": "General and Administrative Expense, Total", "verboseLabel": "General and administrative expense", "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line." } } }, "auth_ref": [ "r97", "r598" ] }, "us-gaap_GeneralAndAdministrativeExpenseMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GeneralAndAdministrativeExpenseMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "General and Administrative Expense [Member]", "terseLabel": "General and administrative [Member]", "documentation": "Primary financial statement caption encompassing general and administrative expense." } } }, "auth_ref": [ "r92" ] }, "us-gaap_Goodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Goodwill", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfGoodwillActivityDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "periodEndLabel": "Balance at end of period", "periodStartLabel": "Balance at beginning of period", "terseLabel": "Goodwill", "label": "Goodwill", "totalLabel": "Goodwill, Total", "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." } } }, "auth_ref": [ "r167", "r277", "r513", "r655", "r667", "r794", "r801" ] }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Goodwill and Intangible Assets Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwill1" ], "lang": { "en-us": { "role": { "terseLabel": "Intangible assets, net and goodwill", "label": "Goodwill and Intangible Assets Disclosure [Text Block]", "documentation": "The entire disclosure for goodwill and intangible assets." } } }, "auth_ref": [ "r107" ] }, "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]", "verboseLabel": "Goodwill", "documentation": "Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined." } } }, "auth_ref": [ "r276", "r281", "r655" ] }, "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillForeignCurrencyTranslationGainLoss", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfGoodwillActivityDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Translation", "label": "Goodwill, Foreign Currency Translation Gain (Loss)", "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." } } }, "auth_ref": [ "r280" ] }, "us-gaap_GoodwillImpairmentLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GoodwillImpairmentLoss", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Impairment of goodwill", "label": "Goodwill, Impairment Loss", "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." } } }, "auth_ref": [ "r8", "r278", "r279", "r281", "r655" ] }, "us-gaap_GrossProfit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "GrossProfit", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Gross loss", "label": "Gross Profit", "totalLabel": "Gross profit (loss)", "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity." } } }, "auth_ref": [ "r94", "r194", "r230", "r236", "r240", "r242", "r259", "r306", "r307", "r308", "r309", "r310", "r311", "r312", "r313", "r314", "r457", "r652", "r818" ] }, "ftci_HxTrackerMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "HxTrackerMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "HX Tracker", "label": "HX Tracker [Member]", "documentation": "HX Tracker Member" } } }, "auth_ref": [] }, "us-gaap_IPOMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IPOMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "IPO [Member]", "documentation": "First sale of stock by a private company to the public." } } }, "auth_ref": [] }, "ftci_ImpactOfStockSplit": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ImpactOfStockSplit", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Impact of Stock Split", "documentation": "Impact of stock split." } } }, "auth_ref": [] }, "us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Impairment", "label": "Impairment or Disposal of Long-Lived Assets, Policy [Policy Text Block]", "documentation": "Disclosure of accounting policy for recognizing and measuring the impairment of long-lived assets. An entity also may disclose its accounting policy for long-lived assets to be sold. This policy excludes goodwill and intangible assets." } } }, "auth_ref": [ "r0", "r112" ] }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Loss before income taxes", "terseLabel": "Pre-tax income (loss) from company's operations", "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "verboseLabel": "Loss before income taxes", "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." } } }, "auth_ref": [ "r1", "r90", "r131", "r230", "r236", "r240", "r242", "r517", "r530", "r652" ] }, "us-gaap_IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeLossFromEquityMethodInvestmentsNetOfDividendsOrDistributions", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 4.0 }, "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 7.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Loss from unconsolidated subsidiary", "totalLabel": "Income (Loss) from Equity Method Investments, Net of Dividends or Distributions, Total", "label": "Income (Loss) from Equity Method Investments, Net of Dividends or Distributions", "negatedLabel": "Loss from unconsolidated subsidiary", "documentation": "This element represents the undistributed income (or loss) of equity method investments, net of dividends or other distributions received from unconsolidated subsidiaries, certain corporate joint ventures, and certain noncontrolled corporations; such investments are accounted for under the equity method of accounting. This element excludes distributions that constitute a return of investment, which are classified as investing activities." } } }, "auth_ref": [ "r8" ] }, "us-gaap_IncomeStatementAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementAbstract", "lang": { "en-us": { "role": { "terseLabel": "Statement of operations", "label": "Income Statement [Abstract]" } } }, "auth_ref": [] }, "us-gaap_IncomeStatementLocationAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementLocationAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Income Statement Location [Axis]", "documentation": "Information by location in the income statement." } } }, "auth_ref": [ "r286", "r289", "r603" ] }, "us-gaap_IncomeStatementLocationDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeStatementLocationDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Income Statement Location [Domain]", "documentation": "Location in the income statement." } } }, "auth_ref": [ "r289", "r603" ] }, "us-gaap_IncomeTaxContingencyLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxContingencyLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Income Tax Contingency [Line Items]", "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." } } }, "auth_ref": [] }, "us-gaap_IncomeTaxContingencyTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxContingencyTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Income Tax Contingency [Table]", "documentation": "Disclosure of information about tax positions taken in the tax returns filed or to be filed for which it is more likely than not that the tax position will not be sustained upon examination by taxing authorities and other income tax contingencies. Includes, but is not limited to, interest and penalties, reconciliation of unrecognized tax benefits, unrecognized tax benefits that would affect the effective tax rate, tax years that remain subject to examination by tax jurisdictions, and information about positions for which it is reasonably possible that amounts unrecognized will significantly change within 12 months." } } }, "auth_ref": [ "r10", "r64", "r121", "r122" ] }, "us-gaap_IncomeTaxDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Income Tax Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_IncomeTaxDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxes" ], "lang": { "en-us": { "role": { "terseLabel": "Income Taxes", "label": "Income Tax Disclosure [Text Block]", "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." } } }, "auth_ref": [ "r195", "r421", "r426", "r428", "r429", "r432", "r437", "r438", "r439", "r558" ] }, "us-gaap_IncomeTaxExpenseBenefit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxExpenseBenefit", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "verboseLabel": "Income tax expense (benefit)", "label": "Income Tax Expense (Benefit)", "totalLabel": "Income Tax Expense (Benefit), Total", "terseLabel": "(Benefit from) income taxes", "negatedTerseLabel": "Income tax expense (benefit)", "negatedLabel": "(Provision for) benefit from income taxes", "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations." } } }, "auth_ref": [ "r143", "r155", "r214", "r215", "r233", "r424", "r433", "r535" ] }, "us-gaap_IncomeTaxesPaid": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncomeTaxesPaid", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Cash paid during the period for taxes, net of refunds", "label": "Income Taxes Paid", "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income." } } }, "auth_ref": [ "r36", "r39" ] }, "us-gaap_IncreaseDecreaseInAccountsPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccountsPayable", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 19.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Accounts payable", "label": "Increase (Decrease) in Accounts Payable", "totalLabel": "Increase (Decrease) in Accounts Payable, Total", "documentation": "The increase (decrease) during the reporting period in the aggregate amount 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." } } }, "auth_ref": [ "r7" ] }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInAccountsReceivable", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 15.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "negatedLabel": "Accounts receivable", "label": "Increase (Decrease) in Accounts Receivable", "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." } } }, "auth_ref": [ "r7" ] }, "us-gaap_IncreaseDecreaseInDeferredRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInDeferredRevenue", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 21.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Deferred revenue", "label": "Increase (Decrease) in Deferred Revenue", "documentation": "Amount of increase (decrease) in deferred income and obligation to transfer product and service to customer for which consideration has been received or is receivable." } } }, "auth_ref": [ "r637" ] }, "us-gaap_IncreaseDecreaseInInventories": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInInventories", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 16.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "negatedLabel": "Inventories", "label": "Increase (Decrease) in Inventories", "totalLabel": "Increase (Decrease) in Inventories, Total", "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." } } }, "auth_ref": [ "r7" ] }, "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOperatingCapitalAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Operating Capital [Abstract]", "terseLabel": "Impact on cash from changes in operating assets and liabilities:" } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOtherAccountsPayableAndAccruedLiabilities", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 20.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Accruals and other current liabilities", "label": "Increase (Decrease) in Other Accounts Payable and Accrued Liabilities", "documentation": "The increase (decrease) during the reporting period in other obligations or expenses incurred but not yet paid." } } }, "auth_ref": [ "r7" ] }, "us-gaap_IncreaseDecreaseInOtherNoncurrentLiabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOtherNoncurrentLiabilities", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 22.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Other non-current liabilities", "label": "Increase (Decrease) in Other Noncurrent Liabilities", "documentation": "Amount of increase (decrease) in noncurrent operating liabilities classified as other." } } }, "auth_ref": [] }, "us-gaap_IncreaseDecreaseInOtherOperatingAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOtherOperatingAssets", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 18.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "negatedLabel": "Other assets", "label": "Increase (Decrease) in Other Operating Assets", "totalLabel": "Increase (Decrease) in Other Operating Assets, Total", "documentation": "Amount of increase (decrease) in operating assets classified as other." } } }, "auth_ref": [ "r7" ] }, "us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInOtherOperatingCapitalNet", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 23.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Increase (Decrease) in Other Operating Assets and Liabilities, Net", "totalLabel": "Increase (Decrease) in Other Operating Assets and Liabilities, Net, Total", "negatedLabel": "Lease payments and other, net", "documentation": "Amount of increase (decrease) in operating assets after deduction of operating liabilities classified as other." } } }, "auth_ref": [ "r7" ] }, "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 17.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "negatedLabel": "Prepaid and other current assets", "label": "Increase (Decrease) in Prepaid Expense and Other Assets", "totalLabel": "Increase (Decrease) in Prepaid Expense and Other Assets, Total", "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other." } } }, "auth_ref": [ "r7" ] }, "ftci_IncreaseInCommonStockIssuedAndOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "IncreaseInCommonStockIssuedAndOutstanding", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Increase in common stock issued and outstanding.", "label": "Increase in Common stock Issued and Outstanding", "terseLabel": "Increase in common stock issued and outstanding" } } }, "auth_ref": [] }, "us-gaap_IndefiniteLivedIntangibleAssetsByMajorClassLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IndefiniteLivedIntangibleAssetsByMajorClassLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Indefinite-Lived Intangible Assets [Line Items]", "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." } } }, "auth_ref": [] }, "ecd_IndividualAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "IndividualAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure", "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure", "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Individual [Axis]", "terseLabel": "Individual:" } } }, "auth_ref": [ "r696", "r704", "r714", "r731", "r739", "r743", "r751" ] }, "ecd_InsiderTradingArrLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "InsiderTradingArrLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Arrangements [Line Items]", "terseLabel": "Insider Trading Arrangements:" } } }, "auth_ref": [ "r749" ] }, "ecd_InsiderTradingPoliciesProcLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "InsiderTradingPoliciesProcLineItems", "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures [Line Items]", "terseLabel": "Insider Trading Policies and Procedures:" } } }, "auth_ref": [ "r685", "r755" ] }, "ecd_InsiderTrdPoliciesProcAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "InsiderTrdPoliciesProcAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures Adopted [Flag]", "terseLabel": "Insider Trading Policies and Procedures Adopted" } } }, "auth_ref": [ "r685", "r755" ] }, "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" ], "lang": { "en-us": { "role": { "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]", "terseLabel": "Insider Trading Policies and Procedures Not Adopted" } } }, "auth_ref": [ "r685", "r755" ] }, "us-gaap_IntangibleAssetsFiniteLivedPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IntangibleAssetsFiniteLivedPolicy", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Intangible Assets, Finite-Lived, Policy [Policy Text Block]", "terseLabel": "Intangible assets, net", "documentation": "Disclosure of accounting policy for finite-lived intangible assets. This accounting policy also might address: (1) the amortization method used; (2) the useful lives of such assets; and (3) how the entity assesses and measures impairment of such assets." } } }, "auth_ref": [ "r49", "r495", "r496", "r497", "r499", "r647" ] }, "us-gaap_IntangibleAssetsNetExcludingGoodwill": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "IntangibleAssetsNetExcludingGoodwill", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Intangible assets, net", "label": "Intangible Assets, Net (Excluding Goodwill)", "totalLabel": "Intangible Assets, Net (Excluding Goodwill), Total", "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." } } }, "auth_ref": [ "r45", "r48" ] }, "us-gaap_InterestIncomeExpenseNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InterestIncomeExpenseNet", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Interest Income (Expense), Net", "totalLabel": "Interest Income (Expense), Net, Total", "negatedLabel": "Interest expense", "terseLabel": "Interest expense, net", "documentation": "The net amount of operating interest income (expense)." } } }, "auth_ref": [ "r133" ] }, "us-gaap_InventoryDisclosureAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InventoryDisclosureAbstract", "lang": { "en-us": { "role": { "label": "Inventory Disclosure [Abstract]" } } }, "auth_ref": [] }, "us-gaap_InventoryDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InventoryDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNet" ], "lang": { "en-us": { "role": { "label": "Inventory Disclosure [Text Block]", "terseLabel": "Inventories, net", "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." } } }, "auth_ref": [ "r271" ] }, "us-gaap_InventoryFinishedGoods": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InventoryFinishedGoods", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails": { "parentTag": "us-gaap_InventoryNet", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails" ], "lang": { "en-us": { "role": { "totalLabel": "Inventory, Finished Goods, Gross, Total", "label": "Inventory, Finished Goods, Gross", "terseLabel": "Finished goods", "documentation": "Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer." } } }, "auth_ref": [ "r769" ] }, "us-gaap_InventoryImpairmentPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InventoryImpairmentPolicy", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Impairment", "label": "Inventory Impairment, Policy [Policy Text Block]", "documentation": "Disclosure of accounting policy for recognizing inventory losses, including, but not limited to, substantial and unusual losses resulting from the subsequent measurement of inventory due to physical deterioration, obsolescence, or changes in price levels." } } }, "auth_ref": [ "r791" ] }, "us-gaap_InventoryNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InventoryNet", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 5.0 }, "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Inventories", "label": "Inventory, Net", "totalLabel": "Total", "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer." } } }, "auth_ref": [ "r174", "r641", "r667" ] }, "us-gaap_InventoryPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InventoryPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Inventory, Policy [Policy Text Block]", "terseLabel": "Inventories, net", "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." } } }, "auth_ref": [ "r145", "r163", "r173", "r271", "r272", "r273", "r494", "r648" ] }, "us-gaap_InventoryValuationReserves": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "InventoryValuationReserves", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails": { "parentTag": "us-gaap_InventoryNet", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNetScheduleOfInventoriesDetails" ], "lang": { "en-us": { "role": { "periodStartLabel": "Inventory Valuation Reserves, Beginning Balance", "periodEndLabel": "Inventory Valuation Reserves, Ending Balance", "label": "Inventory Valuation Reserves", "terseLabel": "Allowance for slow-moving and obsolete inventory", "negatedLabel": "Allowance for slow-moving and obsolete inventory", "documentation": "Amount of valuation reserve for inventory." } } }, "auth_ref": [ "r44", "r770" ] }, "ftci_InvestmentToAcquireOwnershipInterest": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "InvestmentToAcquireOwnershipInterest", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Investment to acquire ownership interest", "label": "Investment to acquire ownership interest", "documentation": "Investment to acquire ownership interest" } } }, "auth_ref": [] }, "ftci_JobsActAccountingElectionPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "JobsActAccountingElectionPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "JOBS Act Accounting Election", "label": "Jobs Act Accounting Election Policy [Text Block]", "documentation": "Jobs act accounting election policy text block." } } }, "auth_ref": [] }, "us-gaap_LeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseCost", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Lease, Cost", "terseLabel": "Total lease cost", "totalLabel": "Total lease cost", "negatedTotalLabel": "Total lease cost", "documentation": "Amount of lease cost recognized by lessee for lease contract." } } }, "auth_ref": [ "r475", "r666" ] }, "us-gaap_LeaseCostTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseCostTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Lease, Cost [Table Text Block]", "terseLabel": "Summary of Lease Expense", "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." } } }, "auth_ref": [ "r827" ] }, "us-gaap_LeaseholdImprovementsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeaseholdImprovementsMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Leasehold Improvements [Member]", "documentation": "Additions or improvements to assets held under a lease arrangement." } } }, "auth_ref": [ "r111" ] }, "us-gaap_LeasesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LeasesAbstract", "lang": { "en-us": { "role": { "label": "Leases [Abstract]" } } }, "auth_ref": [] }, "us-gaap_LesseeLeaseDescriptionLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeLeaseDescriptionLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Lease, Description [Line Items]", "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." } } }, "auth_ref": [ "r474" ] }, "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]", "terseLabel": "Summary of Future Remaining Lease Payments Obligations", "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." } } }, "auth_ref": [ "r828" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDue", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails2": { "parentTag": null, "weight": null, "order": null, "root": true }, "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid", "totalLabel": "Total lease payments", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease." } } }, "auth_ref": [ "r478" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, after Year Five", "terseLabel": "Thereafter", "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due 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)." } } }, "auth_ref": [ "r478" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Remainder of 2024", "label": "Lessee, Operating Lease, Liability, to be Paid, Year One", "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)." } } }, "auth_ref": [ "r478" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "2028", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five", "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)." } } }, "auth_ref": [ "r478" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "2027", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four", "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)." } } }, "auth_ref": [ "r478" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "2026", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three", "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)." } } }, "auth_ref": [ "r478" ] }, "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "2025", "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two", "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)." } } }, "auth_ref": [ "r478" ] }, "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails2": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Less imputed interest", "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount", "negatedLabel": "Less imputed interest", "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease." } } }, "auth_ref": [ "r478" ] }, "us-gaap_LesseeOperatingLeasesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LesseeOperatingLeasesTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureLeases" ], "lang": { "en-us": { "role": { "terseLabel": "Leases", "label": "Lessee, Operating Leases [Text Block]", "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." } } }, "auth_ref": [ "r470" ] }, "us-gaap_LetterOfCreditMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LetterOfCreditMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Letter of Credit [Member]", "terseLabel": "Letter of Credit", "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)." } } }, "auth_ref": [] }, "us-gaap_Liabilities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Liabilities", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Total liabilities", "label": "Liabilities", "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." } } }, "auth_ref": [ "r21", "r194", "r259", "r306", "r307", "r308", "r309", "r310", "r311", "r312", "r313", "r314", "r442", "r443", "r444", "r457", "r573", "r651", "r680", "r818", "r831", "r832" ] }, "us-gaap_LiabilitiesAndStockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesAndStockholdersEquity", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Liabilities and Equity", "totalLabel": "Total liabilities and stockholders' equity", "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any." } } }, "auth_ref": [ "r85", "r129", "r527", "r667", "r780", "r789", "r826" ] }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesAndStockholdersEquityAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Liabilities and Equity [Abstract]", "terseLabel": "LIABILITIES AND STOCKHOLDERS' EQUITY" } } }, "auth_ref": [] }, "us-gaap_LiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Total current liabilities", "terseLabel": "Current liabilities", "label": "Liabilities, Current", "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." } } }, "auth_ref": [ "r23", "r162", "r194", "r259", "r306", "r307", "r308", "r309", "r310", "r311", "r312", "r313", "r314", "r442", "r443", "r444", "r457", "r667", "r818", "r831", "r832" ] }, "us-gaap_LiabilitiesCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilitiesCurrentAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Current liabilities", "label": "Liabilities, Current [Abstract]" } } }, "auth_ref": [] }, "us-gaap_LiabilityForUnpaidClaimsAndClaimsAdjustmentExpenseNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LiabilityForUnpaidClaimsAndClaimsAdjustmentExpenseNet", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Liability For Unpaid Claims And Claims Adjustment Expense", "label": "Liability for Unpaid Claims and Claims Adjustment Expense, Net", "periodEndLabel": "Liability for Unpaid Claims and Claims Adjustment Expense, Net, Ending Balance", "periodStartLabel": "Liability for Unpaid Claims and Claims Adjustment Expense, Net, Beginning Balance", "documentation": "Liability as of the balance sheet date for amounts representing estimated cost of settling unpaid claims under the terms of the underlying insurance policies, less estimated reinsurance recoveries on such claims. This includes an estimate for claims which have been incurred but not reported. Claim adjustment expenses represent the costs estimated to be incurred in the settlement of unpaid claims." } } }, "auth_ref": [ "r75", "r134", "r840" ] }, "us-gaap_LineOfCreditFacilityCommitmentFeePercentage": { "xbrltype": "percentItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LineOfCreditFacilityCommitmentFeePercentage", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Commitment fees rate", "label": "Line of Credit Facility, Commitment Fee Percentage", "documentation": "The fee, expressed as a percentage of the line of credit facility, for the line of credit facility regardless of whether the facility has been used." } } }, "auth_ref": [] }, "us-gaap_LineOfCreditFacilityFairValueOfAmountOutstanding": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LineOfCreditFacilityFairValueOfAmountOutstanding", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Credit Facility amount", "label": "Line of Credit Facility, Fair Value of Amount Outstanding", "documentation": "Fair value of the amount outstanding under the credit facility." } } }, "auth_ref": [ "r456" ] }, "ftci_LiquidityPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "LiquidityPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "documentation": "Liquidity Policy [Text Block]", "label": "Liquidity Policy [Text Block]", "terseLabel": "Liquidity" } } }, "auth_ref": [] }, "ftci_LiquidityRatioAmountMinimumLimit": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "LiquidityRatioAmountMinimumLimit", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Liquidity ratio amount, minimum limit", "documentation": "Liquidity Ratio Amount, Minimum Limit", "label": "Liquidity Ratio Amount, Minimum Limit" } } }, "auth_ref": [] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "LocalPhoneNumber", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Local Phone Number", "label": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "us-gaap_LossContingencyDamagesSoughtValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "LossContingencyDamagesSoughtValue", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Loss Contingency, Damages Sought, Value", "terseLabel": "Damages sought value", "documentation": "The value (monetary amount) of the award the plaintiff seeks in the legal matter." } } }, "auth_ref": [ "r806", "r807", "r808" ] }, "srt_MajorCustomersAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MajorCustomersAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Axis]" } } }, "auth_ref": [ "r245", "r663", "r821", "r844", "r845" ] }, "ftci_MajorCustomersMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "MajorCustomersMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Major Customers [Member]", "documentation": "Major Customers [Member]" } } }, "auth_ref": [] }, "srt_MaximumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MaximumMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "verboseLabel": "Maximum [Member]", "terseLabel": "Maximum [Member]", "label": "Maximum [Member]" } } }, "auth_ref": [ "r296", "r297", "r298", "r299", "r373", "r493", "r542", "r565", "r566", "r626", "r627", "r628", "r629", "r630", "r635", "r636", "r653", "r661", "r664", "r669", "r820", "r833", "r834", "r835", "r836", "r837", "r838" ] }, "ecd_MeasureAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "MeasureAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Measure [Axis]", "terseLabel": "Measure:" } } }, "auth_ref": [ "r723" ] }, "ecd_MeasureName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "MeasureName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Measure Name", "terseLabel": "Name" } } }, "auth_ref": [ "r723" ] }, "srt_MinimumMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "MinimumMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Minimum [Member]", "label": "Minimum [Member]" } } }, "auth_ref": [ "r296", "r297", "r298", "r299", "r373", "r493", "r542", "r565", "r566", "r626", "r627", "r628", "r629", "r630", "r635", "r636", "r653", "r661", "r664", "r669", "r820", "r833", "r834", "r835", "r836", "r837", "r838" ] }, "ecd_MnpiDiscTimedForCompValFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "MnpiDiscTimedForCompValFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "MNPI Disclosure Timed for Compensation Value [Flag]", "terseLabel": "MNPI Disclosure Timed for Compensation Value" } } }, "auth_ref": [ "r742" ] }, "us-gaap_MoneyMarketFundsAtCarryingValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "MoneyMarketFundsAtCarryingValue", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Money Market Funds, at Carrying Value", "terseLabel": "Carrying value of money market fund", "documentation": "Investment in short-term money-market instruments (such as commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and so forth) which are highly liquid (that is, readily convertible to known amounts of cash) and so near their maturity that they present an insignificant risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify as cash equivalents by definition. Original maturity means an 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." } } }, "auth_ref": [] }, "ecd_MtrlTermsOfTrdArrTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "MtrlTermsOfTrdArrTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Material Terms of Trading Arrangement [Text Block]", "terseLabel": "Material Terms of Trading Arrangement" } } }, "auth_ref": [ "r750" ] }, "srt_NameOfMajorCustomerDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "NameOfMajorCustomerDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Customer [Domain]" } } }, "auth_ref": [ "r245", "r663", "r821", "r844", "r845" ] }, "ecd_NamedExecutiveOfficersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NamedExecutiveOfficersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Named Executive Officers, Footnote [Text Block]", "terseLabel": "Named Executive Officers, Footnote" } } }, "auth_ref": [ "r724" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInFinancingActivities", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Net cash provided by financing activities", "label": "Net Cash Provided by (Used in) Financing Activities", "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." } } }, "auth_ref": [ "r189" ] }, "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Cash flows from financing activities:", "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInInvestingActivities", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Net cash provided by (used in) investing activities", "label": "Net Cash Provided by (Used in) Investing Activities", "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." } } }, "auth_ref": [ "r189" ] }, "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Cash flows from investing activities:", "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]" } } }, "auth_ref": [] }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInOperatingActivities", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Net cash used in operating activities", "label": "Net Cash Provided by (Used in) Operating Activities", "terseLabel": "Net cash used in operating activities", "negatedLabel": "Net cash used in operating activities", "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." } } }, "auth_ref": [ "r101", "r102", "r103" ] }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Cash flows from operating activities", "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]" } } }, "auth_ref": [] }, "us-gaap_NetIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NetIncomeLoss", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 0.0 }, "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited", "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Net Income (Loss)", "terseLabel": "Net Income (Loss)", "totalLabel": "Net loss", "verboseLabel": "Net loss", "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent." } } }, "auth_ref": [ "r91", "r103", "r132", "r160", "r178", "r181", "r185", "r194", "r204", "r206", "r207", "r209", "r210", "r214", "r215", "r221", "r230", "r236", "r240", "r242", "r259", "r306", "r307", "r308", "r309", "r310", "r311", "r312", "r313", "r314", "r455", "r457", "r531", "r596", "r616", "r617", "r652", "r678", "r818" ] }, "ftci_NetProfitAttributable": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "NetProfitAttributable", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Net Profit Attributable", "label": "Net profit attributable", "documentation": "Net profit attributable" } } }, "auth_ref": [] }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Recent accounting pronouncements adopted", "label": "New Accounting Pronouncements, Policy [Policy Text Block]", "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." } } }, "auth_ref": [] }, "ecd_NonGaapMeasureDescriptionTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonGaapMeasureDescriptionTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-GAAP Measure Description [Text Block]", "terseLabel": "Non-GAAP Measure Description" } } }, "auth_ref": [ "r723" ] }, "ecd_NonNeosMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonNeosMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-NEOs [Member]", "terseLabel": "Non-NEOs" } } }, "auth_ref": [ "r693", "r704", "r714", "r731", "r739" ] }, "ecd_NonPeoNeoAvgCompActuallyPaidAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonPeoNeoAvgCompActuallyPaidAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO Average Compensation Actually Paid Amount", "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount" } } }, "auth_ref": [ "r721" ] }, "ecd_NonPeoNeoAvgTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonPeoNeoAvgTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO Average Total Compensation Amount", "terseLabel": "Non-PEO NEO Average Total Compensation Amount" } } }, "auth_ref": [ "r720" ] }, "ecd_NonPeoNeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonPeoNeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Non-PEO NEO [Member]", "terseLabel": "Non-PEO NEO" } } }, "auth_ref": [ "r731" ] }, "ecd_NonRule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonRule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]", "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted" } } }, "auth_ref": [ "r750" ] }, "ecd_NonRule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "NonRule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]", "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated" } } }, "auth_ref": [ "r750" ] }, "us-gaap_OffBalanceSheetCreditLossLiabilityCreditLossExpenseReversal": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OffBalanceSheetCreditLossLiabilityCreditLossExpenseReversal", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "verboseLabel": "Credit loss provision", "terseLabel": "Credit loss provisions", "label": "Off-Balance-Sheet, Credit Loss, Liability, Credit Loss Expense (Reversal)", "documentation": "Amount of expense (reversal of expense) for expected credit loss for off-balance sheet credit exposure. Excludes off-balance sheet credit exposure accounted for as insurance and instrument accounted for under derivatives and hedging." } } }, "auth_ref": [ "r268" ] }, "us-gaap_OperatingExpenses": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingExpenses", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Total operating expenses", "label": "Operating Expenses", "terseLabel": "Total operating expenses", "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." } } }, "auth_ref": [] }, "us-gaap_OperatingExpensesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingExpensesAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Operating expenses", "label": "Operating Expenses [Abstract]" } } }, "auth_ref": [] }, "us-gaap_OperatingIncomeLoss": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingIncomeLoss", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Operating Income (Loss)", "terseLabel": "Loss from operations", "totalLabel": "Loss from operations", "documentation": "The net result for the period of deducting operating expenses from operating revenues." } } }, "auth_ref": [ "r230", "r236", "r240", "r242", "r652" ] }, "us-gaap_OperatingLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseCost", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Cost", "terseLabel": "Operating lease cost", "negatedLabel": "Operating lease cost", "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability." } } }, "auth_ref": [ "r476", "r666" ] }, "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract", "lang": { "en-us": { "role": { "label": "Lessee, Operating Lease, Liability, to be Paid, Fiscal Year Maturity [Abstract]" } } }, "auth_ref": [] }, "us-gaap_OperatingLeaseLiability": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiability", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails2": { "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "totalLabel": "Present value of operating lease liabilities", "terseLabel": "Total lease liability", "label": "Operating Lease, Liability", "verboseLabel": "Present value of operating lease liabilities", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease." } } }, "auth_ref": [ "r472" ] }, "us-gaap_OperatingLeaseLiabilityCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilityCurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": { "parentTag": "us-gaap_OtherLiabilitiesCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Operating lease liabilities, current portion (included in Accrued expenses and other current liabilities)", "label": "Operating Lease, Liability, Current", "verboseLabel": "Current portion of operating lease liability", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current." } } }, "auth_ref": [ "r472" ] }, "us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList": { "xbrltype": "enumerationSetItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible List]", "label": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]", "documentation": "Indicates line item in statement of financial position that includes current operating lease liability." } } }, "auth_ref": [ "r473" ] }, "us-gaap_OperatingLeaseLiabilityNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseLiabilityNoncurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfFutureRemainingLeasePaymentsObligationsDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Liability, Noncurrent", "terseLabel": "Operating lease liability, net of current portion", "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent." } } }, "auth_ref": [ "r472" ] }, "us-gaap_OperatingLeaseRightOfUseAsset": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeaseRightOfUseAsset", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Operating Lease, Right-of-Use Asset", "terseLabel": "Operating lease right-of-use assets", "documentation": "Amount of lessee's right to use underlying asset under operating lease." } } }, "auth_ref": [ "r471" ] }, "us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OperatingLeasesOfLesseeDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "terseLabel": "Summary of Supplemental Information, Operating Lease", "label": "Lessee, Operating Lease, Disclosure [Table Text Block]", "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." } } }, "auth_ref": [ "r138", "r139", "r140", "r141", "r142" ] }, "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsAbstract", "lang": { "en-us": { "role": { "label": "Organization, Consolidation and Presentation of Financial Statements [Abstract]" } } }, "auth_ref": [] }, "us-gaap_OtherAccruedLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherAccruedLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": { "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails" ], "lang": { "en-us": { "role": { "label": "Other Accrued Liabilities, Current", "terseLabel": "Other accrued expenses", "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r22" ] }, "us-gaap_OtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherAssetsCurrent", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails": { "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Other Assets, Current", "terseLabel": "Other current assets", "documentation": "Amount of current assets classified as other." } } }, "auth_ref": [ "r176", "r667" ] }, "us-gaap_OtherAssetsNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherAssetsNoncurrent", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Other Assets, Noncurrent, Total", "terseLabel": "Other assets", "label": "Other Assets, Noncurrent", "documentation": "Amount of noncurrent assets classified as other." } } }, "auth_ref": [ "r169" ] }, "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Foreign currency translation adjustments", "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax", "totalLabel": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Total", "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." } } }, "auth_ref": [ "r4" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossNetOfTax", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Other comprehensive gain (loss)", "label": "Other Comprehensive Income (Loss), Net of Tax", "totalLabel": "Other Comprehensive Income (Loss), Net of Tax, Total", "documentation": "Amount after tax and reclassification adjustments of other comprehensive income (loss)." } } }, "auth_ref": [ "r12", "r15", "r179", "r182", "r186", "r459", "r460", "r465", "r514", "r532", "r772", "r773" ] }, "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherComprehensiveIncomeLossNetOfTaxPeriodIncreaseDecreaseAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Other Comprehensive Income (Loss), Net of Tax [Abstract]", "terseLabel": "Other comprehensive loss:" } } }, "auth_ref": [] }, "us-gaap_OtherCurrentLiabilitiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherCurrentLiabilitiesMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Accrued Expenses and Other Current Liabilities [Member]", "label": "Other Current Liabilities [Member]", "documentation": "Primary financial statement caption encompassing other current liabilities." } } }, "auth_ref": [] }, "us-gaap_OtherLiabilitiesCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherLiabilitiesCurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 5.0 }, "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "label": "Other Liabilities, Current", "terseLabel": "Other current liabilities", "totalLabel": "Total other current liabilities", "documentation": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r22", "r667" ] }, "us-gaap_OtherLiabilitiesNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherLiabilitiesNoncurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_Liabilities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Other non-current liabilities", "label": "Other Liabilities, Noncurrent", "totalLabel": "Other Liabilities, Noncurrent, Total", "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r26" ] }, "us-gaap_OtherLongTermDebt": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherLongTermDebt", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "totalLabel": "Other Long-term Debt, Total", "label": "Other Long-Term Debt", "terseLabel": "Long-term borrowings or other material obligations", "documentation": "Amount of long-term debt classified as other." } } }, "auth_ref": [ "r16", "r128", "r842" ] }, "us-gaap_OtherNoncashIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNoncashIncomeExpense", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 12.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Other Noncash Income (Expense)", "totalLabel": "Other Noncash Income (Expense), Total", "negatedLabel": "Lease expense and other", "documentation": "Amount of income (expense) included in net income that results in no cash inflow (outflow), classified as other." } } }, "auth_ref": [ "r103" ] }, "us-gaap_OtherNoncurrentLiabilitiesMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNoncurrentLiabilitiesMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Other Noncurrent Liabilities [Member]", "label": "Other Noncurrent Liabilities [Member]", "documentation": "Primary financial statement caption encompassing other noncurrent liabilities." } } }, "auth_ref": [] }, "us-gaap_OtherNonoperatingIncomeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "OtherNonoperatingIncomeExpense", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Other income (expense), net", "negatedLabel": "Other income (expense), net", "totalLabel": "Other Nonoperating Income (Expense), Total", "label": "Other Nonoperating Income (Expense)", "documentation": "Amount of income (expense) related to nonoperating activities, classified as other." } } }, "auth_ref": [ "r98" ] }, "ecd_OtherPerfMeasureAmt": { "xbrltype": "decimalItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "OtherPerfMeasureAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Other Performance Measure, Amount", "terseLabel": "Other Performance Measure, Amount" } } }, "auth_ref": [ "r723" ] }, "ecd_OutstandingAggtErrCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "OutstandingAggtErrCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Aggregate Erroneous Compensation Amount", "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount" } } }, "auth_ref": [ "r691", "r702", "r712", "r737" ] }, "ftci_OutstandingCapitalStockHeld": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "OutstandingCapitalStockHeld", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "documentation": "Outstanding capital stock held", "label": "Outstanding capital stock held", "terseLabel": "Outstanding capital stock held" } } }, "auth_ref": [] }, "ecd_OutstandingRecoveryCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "OutstandingRecoveryCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Recovery Compensation Amount", "terseLabel": "Compensation Amount" } } }, "auth_ref": [ "r694", "r705", "r715", "r740" ] }, "ecd_OutstandingRecoveryIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "OutstandingRecoveryIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Outstanding Recovery, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r694", "r705", "r715", "r740" ] }, "ecd_PayVsPerformanceDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PayVsPerformanceDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Line Items]", "terseLabel": "Pay vs Performance Disclosure" } } }, "auth_ref": [ "r719" ] }, "us-gaap_PayablesAndAccrualsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PayablesAndAccrualsAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "label": "Payables and Accruals [Abstract]", "terseLabel": "Accrued warranty balance reported in:" } } }, "auth_ref": [] }, "us-gaap_PaymentsOfStockIssuanceCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsOfStockIssuanceCosts", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "negatedLabel": "Stock offering costs paid", "label": "Payments of Stock Issuance Costs", "terseLabel": "Stock issuance costs", "documentation": "The cash outflow for cost incurred directly with the issuance of an equity security." } } }, "auth_ref": [ "r35" ] }, "us-gaap_PaymentsToAcquireOtherInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquireOtherInvestments", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Investment in Alpha Steel", "label": "Payments to Acquire Other Investments", "negatedLabel": "Equity method investment in Alpha Steel", "documentation": "Amount of cash outflow to acquire investments classified as other." } } }, "auth_ref": [ "r99" ] }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "negatedLabel": "Purchases of property and equipment", "label": "Payments to Acquire Property, Plant, and Equipment", "totalLabel": "Payments to Acquire Property, Plant, and Equipment, Total", "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." } } }, "auth_ref": [ "r100" ] }, "ecd_PeerGroupIssuersFnTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeerGroupIssuersFnTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Peer Group Issuers, Footnote [Text Block]", "terseLabel": "Peer Group Issuers, Footnote" } } }, "auth_ref": [ "r722" ] }, "ecd_PeerGroupTotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeerGroupTotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Peer Group Total Shareholder Return Amount", "terseLabel": "Peer Group Total Shareholder Return Amount" } } }, "auth_ref": [ "r722" ] }, "ecd_PeoActuallyPaidCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeoActuallyPaidCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Actually Paid Compensation Amount", "terseLabel": "PEO Actually Paid Compensation Amount" } } }, "auth_ref": [ "r721" ] }, "ecd_PeoMember": { "xbrltype": "domainItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeoMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO [Member]", "terseLabel": "PEO" } } }, "auth_ref": [ "r731" ] }, "ecd_PeoName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeoName", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Name", "terseLabel": "PEO Name" } } }, "auth_ref": [ "r724" ] }, "ecd_PeoTotalCompAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PeoTotalCompAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "PEO Total Compensation Amount", "terseLabel": "PEO Total Compensation Amount" } } }, "auth_ref": [ "r720" ] }, "ftci_PercantageOfConcentrationsOfCreditRisk": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "PercantageOfConcentrationsOfCreditRisk", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Concentrations of credit risk, percentage", "label": "Percantage of Concentrations of credit risk", "documentation": "Percantage of Concentrations of credit risk" } } }, "auth_ref": [] }, "ftci_PlacingPurchaseOrders": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "PlacingPurchaseOrders", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Placing Purchase Orders", "label": "Placing purchase orders", "documentation": "Placing purchase orders" } } }, "auth_ref": [] }, "ftci_PlcBarclaysBankMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "PlcBarclaysBankMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "PLC Barclays Bank [Member]", "label": "PLC Barclays Bank [Member]", "terseLabel": "Barclays Bank PLC [Member]" } } }, "auth_ref": [] }, "ftci_PotentialFutureCapitalContributions": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "PotentialFutureCapitalContributions", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Potential Future Capital Contributions", "label": "Potential Future Capital Contributions", "documentation": "Potential Future Capital Contributions" } } }, "auth_ref": [] }, "us-gaap_PreferredStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Preferred Stock [Member]", "terseLabel": "Preferred Stock", "documentation": "Preferred shares may provide a preferential dividend to the dividend on common stock and may take precedence over common stock in the event of a liquidation. Preferred shares typically represent an ownership interest in the company." } } }, "auth_ref": [ "r670", "r671", "r674", "r675", "r676", "r677", "r846", "r849" ] }, "us-gaap_PreferredStockParOrStatedValuePerShare": { "xbrltype": "perShareItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockParOrStatedValuePerShare", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Par or Stated Value Per Share", "terseLabel": "Preferred stock, par value", "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer." } } }, "auth_ref": [ "r79", "r343" ] }, "us-gaap_PreferredStockSharesAuthorized": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockSharesAuthorized", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "label": "Preferred Stock, Shares Authorized", "terseLabel": "Preferred stock, shares authorized", "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws." } } }, "auth_ref": [ "r79", "r575" ] }, "us-gaap_PreferredStockSharesIssued": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockSharesIssued", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Preferred Stock, Shares Issued, Total", "label": "Preferred Stock, Shares Issued", "terseLabel": "Preferred stock, shares issued", "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt." } } }, "auth_ref": [ "r79", "r343" ] }, "us-gaap_PreferredStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PreferredStockValue", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Preferred stock par value of $0.0001 per share, 10,000,000 shares authorized; none issued as of March 31, 2024 and December 31, 2023", "periodEndLabel": "Preferred Stock, Value, Issued, Ending Balance", "periodStartLabel": "Preferred Stock, Value, Issued, Beginning Balance", "totalLabel": "Preferred Stock, Value, Issued, Total", "label": "Preferred Stock, Value, Issued", "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity." } } }, "auth_ref": [ "r79", "r523", "r667" ] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PrepaidExpenseAndOtherAssetsCurrent", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 6.0 }, "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Total", "terseLabel": "Prepaid and other current assets", "label": "Prepaid Expense and Other Assets, Current", "verboseLabel": "Prepaid Expenses and Other Current Assets", "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." } } }, "auth_ref": [ "r771" ] }, "us-gaap_PrepaidExpenseAndOtherAssetsCurrentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PrepaidExpenseAndOtherAssetsCurrentAbstract", "lang": { "en-us": { "role": { "label": "Prepaid Expense and Other Assets, Current [Abstract]" } } }, "auth_ref": [] }, "us-gaap_PrepaidExpenseCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PrepaidExpenseCurrent", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails": { "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Prepaid Expense, Current", "totalLabel": "Prepaid Expense, Current, Total", "terseLabel": "Prepaid expense", "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." } } }, "auth_ref": [ "r175", "r274", "r275", "r642" ] }, "ftci_PrepaidExpensesAndOtherCurrentAssetsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "PrepaidExpensesAndOtherCurrentAssetsTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssets" ], "lang": { "en-us": { "role": { "terseLabel": "Prepaid and other current assets", "documentation": "Prepaid Expenses and Other Current Assets.", "label": "Prepaid Expenses and Other Current Assets [Text Block]" } } }, "auth_ref": [] }, "us-gaap_PrepaidTaxes": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PrepaidTaxes", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Prepaid Taxes", "terseLabel": "Prepaid taxes", "documentation": "Amount of asset related to consideration paid in advance for income and other taxes that provide economic benefits within a future period of one year or the normal operating cycle, if longer." } } }, "auth_ref": [ "r643", "r654", "r792" ] }, "us-gaap_PrimeRateMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PrimeRateMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Prime Rate [Member]", "documentation": "Interest rate charged by financial institutions to their most creditworthy borrowers." } } }, "auth_ref": [] }, "ftci_ProceedsFromDeferredOfferingCosts": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ProceedsFromDeferredOfferingCosts", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Deferred offering costs", "label": "Proceeds From Deferred Offering Costs", "documentation": "Proceeds from deferred offering costs." } } }, "auth_ref": [] }, "us-gaap_ProceedsFromIssuanceInitialPublicOffering": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromIssuanceInitialPublicOffering", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "verboseLabel": "Proceeds of IPO", "label": "Proceeds from Issuance Initial Public Offering", "terseLabel": "Proceeds from IPO", "documentation": "The cash inflow associated with the amount received from entity's first offering of stock to the public." } } }, "auth_ref": [ "r5" ] }, "us-gaap_ProceedsFromIssuanceOfCommonStock": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromIssuanceOfCommonStock", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 7.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "verboseLabel": "Proceeds from common stock", "terseLabel": "Sale of common stock", "label": "Proceeds from Issuance of Common Stock", "documentation": "The cash inflow from the additional capital contribution to the entity." } } }, "auth_ref": [ "r5" ] }, "us-gaap_ProceedsFromIssuanceOrSaleOfEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromIssuanceOrSaleOfEquity", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Sale of common stock", "label": "Proceeds from Issuance or Sale of Equity", "totalLabel": "Proceeds from Issuance or Sale of Equity, Total", "documentation": "The cash inflow from the issuance of common stock, preferred stock, treasury stock, stock options, and other types of equity." } } }, "auth_ref": [ "r5", "r555" ] }, "us-gaap_ProceedsFromSaleOfEquityMethodInvestments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromSaleOfEquityMethodInvestments", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": 1.0, "order": 4.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Proceeds from Sale of Equity Method Investments", "terseLabel": "Proceeds from disposal of investment in unconsolidated subsidiary", "documentation": "The cash inflow associated with the sale of equity method investments, which are investments in joint ventures and entities in which the entity has an equity ownership interest normally of 20 to 50 percent and exercises significant influence." } } }, "auth_ref": [ "r34" ] }, "us-gaap_ProceedsFromStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProceedsFromStockOptionsExercised", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Proceeds from Stock Options Exercised", "totalLabel": "Proceeds from stock option exercises", "terseLabel": "Proceeds from stock option exercises", "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement." } } }, "auth_ref": [ "r5", "r13" ] }, "us-gaap_ProductMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProductMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Product", "label": "Product [Member]", "documentation": "Article or substance produced by nature, labor or machinery." } } }, "auth_ref": [ "r662" ] }, "srt_ProductOrServiceAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ProductOrServiceAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Product and Service", "label": "Product and Service [Axis]" } } }, "auth_ref": [ "r243", "r498", "r536", "r537", "r538", "r539", "r540", "r541", "r639", "r662", "r668", "r764", "r809", "r810", "r821", "r844" ] }, "us-gaap_ProductWarrantiesDisclosuresAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProductWarrantiesDisclosuresAbstract", "lang": { "en-us": { "role": { "label": "Product Warranties Disclosures [Abstract]" } } }, "auth_ref": [] }, "us-gaap_ProductWarrantyAccrual": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProductWarrantyAccrual", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesSummaryOfChangesInProductWarrantyReservesDetails" ], "lang": { "en-us": { "role": { "periodStartLabel": "Balance at beginning of period", "periodEndLabel": "Balance at end of period", "label": "Standard and Extended Product Warranty Accrual", "totalLabel": "Standard and Extended Product Warranty Accrual, Total", "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." } } }, "auth_ref": [ "r71", "r300", "r302", "r305" ] }, "us-gaap_ProductWarrantyAccrualClassifiedCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProductWarrantyAccrualClassifiedCurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": { "parentTag": "us-gaap_OtherLiabilitiesCurrent", "weight": 1.0, "order": 0.0 }, "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails": { "parentTag": "us-gaap_StandardProductWarrantyAccrual", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Warranty reserves", "label": "Product Warranty Accrual, Current", "verboseLabel": "Other current liabilities", "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)." } } }, "auth_ref": [ "r22", "r813", "r817" ] }, "us-gaap_ProductWarrantyAccrualNoncurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProductWarrantyAccrualNoncurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails": { "parentTag": "us-gaap_StandardProductWarrantyAccrual", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Warranty reserves", "label": "Product Warranty Accrual, Noncurrent", "verboseLabel": "Other non-current liabilities", "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and due after one year (or beyond the operating cycle if longer) for estimated claims under standard and extended warranty protection rights granted to customers." } } }, "auth_ref": [ "r26", "r813", "r817" ] }, "us-gaap_ProductWarrantyAccrualPayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProductWarrantyAccrualPayments", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesSummaryOfChangesInProductWarrantyReservesDetails" ], "lang": { "en-us": { "role": { "negatedLabel": "Settlements made during the period", "label": "Standard and Extended Product Warranty Accrual, Decrease for Payments", "totalLabel": "Standard and Extended Product Warranty Accrual, Decrease for Payments, Total", "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." } } }, "auth_ref": [ "r303" ] }, "us-gaap_ProductWarrantyAccrualPreexistingIncreaseDecrease": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProductWarrantyAccrualPreexistingIncreaseDecrease", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesSummaryOfChangesInProductWarrantyReservesDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Changes in liability for pre-existing warranties", "label": "Standard and Extended Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties", "totalLabel": "Standard and Extended Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties, Total", "documentation": "Amount of increase (decrease) in the standard and extended product warranty accrual from changes in estimates attributable to preexisting product warranties." } } }, "auth_ref": [ "r304" ] }, "us-gaap_ProductWarrantyExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProductWarrantyExpense", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 9.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Warranty and remediation provisions", "label": "Product Warranty Expense", "documentation": "The expense charged against earnings for the period pertaining to standard and extended warranties on the entity's goods and services granted to customers." } } }, "auth_ref": [ "r7", "r811" ] }, "us-gaap_ProductWarrantyLiabilityLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProductWarrantyLiabilityLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Product Warranty Liability [Line Items]", "label": "Product Warranty Liability [Line Items]", "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." } } }, "auth_ref": [] }, "us-gaap_ProductWarrantyLiabilityTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProductWarrantyLiabilityTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Product Warranty Liability [Table]", "label": "Product Warranty Liability [Table]", "documentation": "Disclosure of information about product warranty liability, including, but not limited to, reductions in the liability for payments made under the warranty, changes in the liability for accruals related to product warranties issued, and changes in the liability for accruals related to preexisting warranties." } } }, "auth_ref": [] }, "ftci_ProductWarrantyLife": { "xbrltype": "durationItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ProductWarrantyLife", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Product warranty life", "documentation": "Product warranty life.", "label": "Product Warranty Life" } } }, "auth_ref": [] }, "srt_ProductsAndServicesDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ProductsAndServicesDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Product and Service", "label": "Product and Service [Domain]" } } }, "auth_ref": [ "r243", "r498", "r536", "r537", "r538", "r539", "r540", "r541", "r639", "r662", "r668", "r764", "r809", "r810", "r821", "r844" ] }, "us-gaap_ProgramRightsObligationsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProgramRightsObligationsAbstract", "lang": { "en-us": { "role": { "label": "Program Rights Obligations [Abstract]" } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentAbstract", "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Abstract]" } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentByTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentByTypeAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Long-Lived Tangible Asset [Axis]", "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale." } } }, "auth_ref": [ "r9" ] }, "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNet" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment Disclosure [Text Block]", "terseLabel": "Property and equipment, net", "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." } } }, "auth_ref": [ "r110", "r149", "r152", "r153" ] }, "us-gaap_PropertyPlantAndEquipmentGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentGross", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails": { "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "totalLabel": "Property, Plant and Equipment, Gross, Total", "periodStartLabel": "Property, Plant and Equipment, Gross, Beginning Balance", "periodEndLabel": "Property, Plant and Equipment, Gross, Ending Balance", "label": "Property, Plant and Equipment, Gross", "terseLabel": "Property and equipment, gross", "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." } } }, "auth_ref": [ "r111", "r165", "r529" ] }, "us-gaap_PropertyPlantAndEquipmentLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Line Items]", "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." } } }, "auth_ref": [] }, "us-gaap_PropertyPlantAndEquipmentNet": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentNet", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_Assets", "weight": 1.0, "order": 2.0 }, "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Property and equipment, net", "periodStartLabel": "Property, Plant and Equipment, Net, Beginning Balance", "periodEndLabel": "Property, Plant and Equipment, Net, Ending Balance", "label": "Property, Plant and Equipment, Net", "terseLabel": "Property and equipment, net", "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." } } }, "auth_ref": [ "r9", "r518", "r529", "r667" ] }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of property and equipment", "label": "Property, Plant and Equipment [Table Text Block]", "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." } } }, "auth_ref": [ "r9" ] }, "us-gaap_PropertyPlantAndEquipmentTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "PropertyPlantAndEquipmentTypeDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Long-Lived Tangible Asset [Domain]", "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." } } }, "auth_ref": [ "r111" ] }, "ftci_ProvisionForInventoryObsolescence": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ProvisionForInventoryObsolescence", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 6.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Provision (credit) for obsolete and slow-moving inventory", "label": "Provision For Inventory Obsolescence", "documentation": "Expense charge to establish an inventory obsolesce reserve." } } }, "auth_ref": [] }, "us-gaap_ProvisionForOtherCreditLosses": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ProvisionForOtherCreditLosses", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Provision for Other Credit Losses", "terseLabel": "Provision For Credit Losses", "documentation": "Amount of expense related to credit loss from transactions other than loan and lease transactions." } } }, "auth_ref": [ "r7", "r130" ] }, "ftci_PurchaseObligationPercentage": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "PurchaseObligationPercentage", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Purchase Obligation Percentage", "label": "Purchase Obligation Percentage", "documentation": "Purchase Obligation Percentage" } } }, "auth_ref": [] }, "ftci_PurchaseOfPropertyAndEquipmentIncludedInAccountPayable": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "PurchaseOfPropertyAndEquipmentIncludedInAccountPayable", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Purchase of property and equipment included in account payable.", "label": "Purchase Of Property And Equipment Included In Account Payable", "terseLabel": "Purchases of property and equipment included in ending accounts payable and accruals" } } }, "auth_ref": [] }, "ecd_PvpTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PvpTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pay vs Performance Disclosure [Table]", "terseLabel": "Pay vs Performance Disclosure" } } }, "auth_ref": [ "r719" ] }, "ecd_PvpTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "PvpTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Pay vs Performance [Table Text Block]", "terseLabel": "Pay vs Performance Disclosure, Table" } } }, "auth_ref": [ "r719" ] }, "srt_RangeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RangeAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Statistical Measurement", "label": "Statistical Measurement [Axis]" } } }, "auth_ref": [ "r296", "r297", "r298", "r299", "r371", "r373", "r404", "r405", "r406", "r492", "r493", "r542", "r565", "r566", "r626", "r627", "r628", "r629", "r630", "r635", "r636", "r653", "r661", "r664", "r669", "r672", "r804", "r820", "r834", "r835", "r836", "r837", "r838" ] }, "srt_RangeMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RangeMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Statistical Measurement [Domain]", "terseLabel": "Statistical Measurement" } } }, "auth_ref": [ "r296", "r297", "r298", "r299", "r371", "r373", "r404", "r405", "r406", "r492", "r493", "r542", "r565", "r566", "r626", "r627", "r628", "r629", "r630", "r635", "r636", "r653", "r661", "r664", "r669", "r672", "r804", "r820", "r834", "r835", "r836", "r837", "r838" ] }, "us-gaap_ReceivablesNetCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ReceivablesNetCurrent", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails": { "parentTag": "us-gaap_AccountsReceivableNetCurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails" ], "lang": { "en-us": { "role": { "label": "Receivables, Net, Current", "totalLabel": "Total", "documentation": "The total amount due to the entity within one year of the balance sheet date (or one operating cycle, if longer) from outside sources, including trade accounts receivable, notes and loans receivable, as well as any other types of receivables, net of allowances established for the purpose of reducing such receivables to an amount that approximates their net realizable value." } } }, "auth_ref": [ "r667" ] }, "ftci_RecievablesFromRelatedParties": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "RecievablesFromRelatedParties", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails": { "parentTag": "us-gaap_ReceivablesNetCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "documentation": "Recievables from Related Parties", "label": "Recievables from Related Parties", "terseLabel": "Related party receivables" } } }, "auth_ref": [] }, "us-gaap_Reclassifications": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "Reclassifications", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Reclassifications", "label": "Reclassifications [Text Block]", "documentation": "The entire disclosure for classifying current financial statements, which may be different from classifications in the prior year's financial statements. Disclose any material changes in classification including an explanation of the reason for the change and the areas impacted." } } }, "auth_ref": [ "r77" ] }, "ecd_RecoveryOfErrCompDisclosureLineItems": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "RecoveryOfErrCompDisclosureLineItems", "lang": { "en-us": { "role": { "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]", "terseLabel": "Recovery of Erroneously Awarded Compensation Disclosure" } } }, "auth_ref": [ "r686", "r697", "r707", "r732" ] }, "ftci_ReductionInWorkforce": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ReductionInWorkforce", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Reduction in workforce", "label": "Reduction in workforce", "documentation": "Reduction in workforce" } } }, "auth_ref": [] }, "us-gaap_RelatedAndNonrelatedPartyStatusAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedAndNonrelatedPartyStatusAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "label": "Related and Nonrelated Party Status [Axis]", "documentation": "Information by related and nonrelated party status." } } }, "auth_ref": [ "r196", "r197", "r484", "r485", "r486", "r487", "r568", "r569", "r570", "r571", "r572", "r593", "r595", "r673" ] }, "us-gaap_RelatedAndNonrelatedPartyStatusDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedAndNonrelatedPartyStatusDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "label": "Related and Nonrelated Party Status [Domain]", "documentation": "Related and nonrelated party status." } } }, "auth_ref": [ "r196", "r197", "r484", "r485", "r486", "r487", "r568", "r569", "r570", "r571", "r572", "r593", "r595", "r673" ] }, "ftci_RelatedPartyAccruals": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "RelatedPartyAccruals", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails": { "parentTag": "us-gaap_AccruedLiabilitiesCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfAccruedExpensesAndOtherCurrentLiabilitiesDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "documentation": "Related party accruals", "label": "Related party accruals", "terseLabel": "Related party accrued cost of revenue" } } }, "auth_ref": [] }, "us-gaap_RelatedPartyDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "terseLabel": "Related Party", "label": "Related Party, Type [Domain]", "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." } } }, "auth_ref": [ "r372", "r484", "r485", "r568", "r569", "r570", "r571", "r572", "r593", "r595", "r625" ] }, "us-gaap_RelatedPartyMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "label": "Related Party [Member]", "documentation": "Party related to reporting entity. Includes, but is not limited to, affiliate, entity for which investment is accounted for by equity method, trust for benefit of employees, and principal owner, management, and members of immediate family." } } }, "auth_ref": [ "r196", "r197", "r484", "r485", "r486", "r487", "r568", "r569", "r570", "r571", "r572", "r593", "r595", "r625" ] }, "us-gaap_RelatedPartyTransactionAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Related Party Transaction [Axis]", "documentation": "Information by type of related party transaction." } } }, "auth_ref": [ "r484", "r485", "r830" ] }, "us-gaap_RelatedPartyTransactionDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Related Party Transaction [Domain]", "documentation": "Transaction between related party." } } }, "auth_ref": [] }, "us-gaap_RelatedPartyTransactionLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "label": "Related Party Transaction [Line Items]", "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." } } }, "auth_ref": [ "r599", "r600", "r603" ] }, "us-gaap_RelatedPartyTransactionsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionsAbstract", "lang": { "en-us": { "role": { "label": "Related Party Transactions [Abstract]" } } }, "auth_ref": [] }, "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionsByRelatedPartyAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "terseLabel": "Related Party", "label": "Related Party, Type [Axis]", "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." } } }, "auth_ref": [ "r372", "r484", "r485", "r501", "r502", "r503", "r504", "r505", "r506", "r507", "r508", "r509", "r510", "r511", "r512", "r568", "r569", "r570", "r571", "r572", "r593", "r595", "r625", "r830" ] }, "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RelatedPartyTransactionsDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactions1" ], "lang": { "en-us": { "role": { "terseLabel": "Related party transactions", "label": "Related Party Transactions Disclosure [Text Block]", "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." } } }, "auth_ref": [ "r481", "r482", "r483", "r485", "r488", "r559", "r560", "r561", "r601", "r602", "r603", "r622", "r624" ] }, "srt_RepurchaseAgreementCounterpartyNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RepurchaseAgreementCounterpartyNameDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Counterparty Name", "label": "Counterparty Name [Domain]" } } }, "auth_ref": [ "r198", "r199", "r319", "r345", "r487", "r645", "r646" ] }, "ftci_RequirementToMaintainMinimumLiquidityLimitEachQuarter": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "RequirementToMaintainMinimumLiquidityLimitEachQuarter", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Requirement to maintain minimum liquidity limit each quarter", "label": "Requirement to maintain minimum liquidity limit each quarter" } } }, "auth_ref": [] }, "us-gaap_ResearchAndDevelopmentExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ResearchAndDevelopmentExpense", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Research and development", "label": "Research and Development Expense", "totalLabel": "Research and Development Expense, Total", "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." } } }, "auth_ref": [ "r76", "r420", "r839" ] }, "us-gaap_ResearchAndDevelopmentExpenseMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ResearchAndDevelopmentExpenseMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Research and Development Expense [Member]", "terseLabel": "Research and development [Member]", "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included." } } }, "auth_ref": [] }, "ftci_ReserveAgainstRevenue": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ReserveAgainstRevenue", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Reserve Against Revenue", "label": "Reserve Against Revenue", "terseLabel": "Reserve against revenue" } } }, "auth_ref": [] }, "srt_RestatementAdjustmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RestatementAdjustmentMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period, Adjustment [Member]", "terseLabel": "Adjustments" } } }, "auth_ref": [ "r201", "r202", "r203", "r212", "r213", "r228", "r453", "r454", "r759", "r760", "r761", "r762", "r763", "r765", "r766" ] }, "srt_RestatementAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RestatementAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period [Axis]" } } }, "auth_ref": [ "r159", "r201", "r202", "r203", "r204", "r205", "r206", "r207", "r208", "r209", "r211", "r212", "r213", "r214", "r215", "r216", "r228", "r263", "r264", "r431", "r452", "r453", "r454", "r455", "r469", "r479", "r480", "r543", "r544", "r545", "r546", "r547", "r548", "r549", "r550", "r551", "r552", "r553" ] }, "ecd_RestatementDateAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "RestatementDateAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Determination Date [Axis]", "terseLabel": "Restatement Determination Date:" } } }, "auth_ref": [ "r687", "r698", "r708", "r733" ] }, "ecd_RestatementDeterminationDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "RestatementDeterminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Determination Date", "terseLabel": "Restatement Determination Date" } } }, "auth_ref": [ "r688", "r699", "r709", "r734" ] }, "ecd_RestatementDoesNotRequireRecoveryTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "RestatementDoesNotRequireRecoveryTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Restatement Does Not Require Recovery [Text Block]", "terseLabel": "Restatement does not require Recovery" } } }, "auth_ref": [ "r695", "r706", "r716", "r741" ] }, "srt_RestatementDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "RestatementDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Revision of Prior Period [Domain]" } } }, "auth_ref": [ "r159", "r201", "r202", "r203", "r204", "r205", "r206", "r207", "r208", "r209", "r211", "r212", "r213", "r214", "r215", "r216", "r228", "r263", "r264", "r431", "r452", "r453", "r454", "r455", "r469", "r479", "r480", "r543", "r544", "r545", "r546", "r547", "r548", "r549", "r550", "r551", "r552", "r553" ] }, "us-gaap_RestrictedCashCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RestrictedCashCurrent", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Restricted cash", "label": "Restricted Cash, Current", "documentation": "Amount of cash restricted as to withdrawal or usage, classified as current. 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." } } }, "auth_ref": [ "r767", "r778" ] }, "us-gaap_RestrictedStockMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RestrictedStockMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "label": "Restricted Stock [Member]", "verboseLabel": "Restricted Stock Awards [Member]", "terseLabel": "RSUs", "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." } } }, "auth_ref": [ "r40" ] }, "us-gaap_RestrictedStockUnitsRSUMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RestrictedStockUnitsRSUMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Restricted Stock Units (RSUs) [Member]", "terseLabel": "Restricted Stock Units (RSU)", "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." } } }, "auth_ref": [] }, "ftci_RetainageProvisionsIncludedInReceivables": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "RetainageProvisionsIncludedInReceivables", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Retainage provisions included in receivables.", "label": "Retainage Provisions Included in Receivables", "terseLabel": "Retainage provisions included in receivables" } } }, "auth_ref": [] }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetainedEarningsAccumulatedDeficit", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Accumulated deficit", "label": "Retained Earnings (Accumulated Deficit)", "totalLabel": "Retained Earnings (Accumulated Deficit), Total", "periodStartLabel": "Retained Earnings (Accumulated Deficit), Beginning Balance", "periodEndLabel": "Retained Earnings (Accumulated Deficit), Ending Balance", "documentation": "Amount of accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r82", "r118", "r526", "r547", "r552", "r557", "r576", "r667" ] }, "us-gaap_RetainedEarningsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RetainedEarningsMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Accumulated Deficit", "label": "Retained Earnings [Member]", "documentation": "Accumulated undistributed earnings (deficit)." } } }, "auth_ref": [ "r158", "r201", "r202", "r203", "r205", "r213", "r215", "r262", "r265", "r412", "r413", "r414", "r430", "r431", "r445", "r447", "r448", "r450", "r453", "r543", "r545", "r562", "r849" ] }, "ftci_RetireAggregateSharesOfCommonStock": { "xbrltype": "sharesItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "RetireAggregateSharesOfCommonStock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Retire aggregate shares of common stock", "label": "Retire Aggregate Shares of Common Stock", "documentation": "Retire Aggregate Shares of Common Stock." } } }, "auth_ref": [] }, "us-gaap_RevenueFromContractWithCustomerAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerAbstract", "lang": { "en-us": { "role": { "label": "Revenue from Contract with Customer [Abstract]" } } }, "auth_ref": [] }, "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerExcludingAssessedTax", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_GrossProfit", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "verboseLabel": "Revenues", "terseLabel": "Total revenue", "label": "Revenue from Contract with Customer, Excluding Assessed Tax", "totalLabel": "Revenue from Contract with Customer, Excluding Assessed Tax, Total", "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." } } }, "auth_ref": [ "r231", "r232", "r235", "r238", "r239", "r243", "r244", "r245", "r367", "r368", "r498" ] }, "us-gaap_RevenueFromContractWithCustomerTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueFromContractWithCustomerTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureRevenue" ], "lang": { "en-us": { "role": { "terseLabel": "Revenue", "label": "Revenue from Contract with Customer [Text Block]", "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." } } }, "auth_ref": [ "r157", "r359", "r360", "r361", "r362", "r363", "r364", "r365", "r366", "r370" ] }, "us-gaap_RevenueRecognitionPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueRecognitionPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Revenue recognition", "label": "Revenue [Policy Text Block]", "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources." } } }, "auth_ref": [ "r597", "r638", "r649" ] }, "us-gaap_RevenueRecognitionSalesReturnsReserveForSalesReturns": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenueRecognitionSalesReturnsReserveForSalesReturns", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Revenue Recognition, Sales Returns, Reserve for Sales Returns", "terseLabel": "Reserve against revenue", "documentation": "Amount of estimated sales returns." } } }, "auth_ref": [] }, "ftci_RevenueRecognizedInExcessOfBillings": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "RevenueRecognizedInExcessOfBillings", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails": { "parentTag": "us-gaap_ReceivablesNetCurrent", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails" ], "lang": { "en-us": { "role": { "documentation": "Revenue recognized in excess of billings", "label": "Revenue recognized in excess of billings", "terseLabel": "Revenue recognized in excess of billings" } } }, "auth_ref": [] }, "us-gaap_RevenuesAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevenuesAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Revenue:", "label": "Revenues [Abstract]" } } }, "auth_ref": [] }, "ftci_RevisionsOfPreviouslyIssuedFinancialStatementsPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "RevisionsOfPreviouslyIssuedFinancialStatementsPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Revisions of previously issued financial statements", "label": "Revisions Of Previously Issued Financial Statements [Policy Text Block]", "documentation": "Revisions Of Previously Issued Financial Statements." } } }, "auth_ref": [] }, "ftci_RevolvingCreditFacilityAvailableRemainingBorrowingCapacity": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "RevolvingCreditFacilityAvailableRemainingBorrowingCapacity", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Available borrowing capacity under the Revolving Credit Facility", "label": "Revolving Credit Facility, Available Remaining Borrowing Capacity", "documentation": "Revolving Credit Facility, Available Remaining Borrowing Capacity" } } }, "auth_ref": [] }, "ftci_RevolvingCreditFacilityGrossMaximumBorrowingCapacity": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "RevolvingCreditFacilityGrossMaximumBorrowingCapacity", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Aggregate commitments", "label": "Revolving Credit Facility, Gross Maximum Borrowing Capacity", "documentation": "Revolving Credit Facility, Gross Maximum Borrowing Capacity" } } }, "auth_ref": [] }, "us-gaap_RevolvingCreditFacilityMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "RevolvingCreditFacilityMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Credit Facility Agreement [Member]", "label": "Revolving Credit Facility [Member]", "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount." } } }, "auth_ref": [] }, "ftci_RightOfUseAssetAndLeaseLiabilityRecognitionForNewLeases": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "RightOfUseAssetAndLeaseLiabilityRecognitionForNewLeases", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Right-of-use asset and lease liability recognition for new leases", "label": "Right-Of-Use Asset And Lease Liability Recognition For New Leases", "documentation": "Right-Of-Use Asset And Lease Liability Recognition For New Leases" } } }, "auth_ref": [] }, "ecd_Rule10b51ArrAdoptedFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "Rule10b51ArrAdoptedFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Rule 10b5-1 Arrangement Adopted [Flag]", "terseLabel": "Rule 10b5-1 Arrangement Adopted" } } }, "auth_ref": [ "r750" ] }, "ecd_Rule10b51ArrTrmntdFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "Rule10b51ArrTrmntdFlag", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Rule 10b5-1 Arrangement Terminated [Flag]", "terseLabel": "Rule 10b5-1 Arrangement Terminated" } } }, "auth_ref": [ "r750" ] }, "us-gaap_SaleOfStockConsiderationReceivedOnTransaction": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SaleOfStockConsiderationReceivedOnTransaction", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Sale of Stock, Consideration Received on Transaction", "terseLabel": "Purchase cost of shares", "documentation": "Cash received on stock transaction after deduction of issuance costs." } } }, "auth_ref": [] }, "us-gaap_SaleOfStockNameOfTransactionDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SaleOfStockNameOfTransactionDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Sale of Stock", "label": "Sale of Stock [Domain]", "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of accounts receivable, net", "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]", "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." } } }, "auth_ref": [ "r30" ] }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfDilutedNetIncomePerShareDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]", "documentation": "Schedule for securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by Antidilutive Securities." } } }, "auth_ref": [ "r40" ] }, "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Antidilutive Securities Excluded from Computation of Diluted Net Income Per Share", "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table Text Block]", "documentation": "Tabular disclosure of securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by antidilutive securities." } } }, "auth_ref": [ "r40" ] }, "srt_ScheduleOfCondensedFinancialStatementsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ScheduleOfCondensedFinancialStatementsTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesTables" ], "lang": { "en-us": { "role": { "terseLabel": "Revision of previously issued financial statements", "label": "Condensed Financial Statements [Table Text Block]" } } }, "auth_ref": [ "r782" ] }, "us-gaap_ScheduleOfDeferredCompensationArrangementWithIndividualExcludingShareBasedPaymentsAndPostretirementBenefitsByTitleOfIndividualAndByTypeOfDeferredCompensationTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfDeferredCompensationArrangementWithIndividualExcludingShareBasedPaymentsAndPostretirementBenefitsByTitleOfIndividualAndByTypeOfDeferredCompensationTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "label": "Schedule of Deferred Compensation Arrangement with Individual, Excluding Share-Based Payments and Postretirement Benefits, by Title of Individual and by Type of Deferred Compensation [Table]", "documentation": "Schedule, table or text reflecting arrangements that are not equity-based payments, or pension and other postretirement benefits, with individual employees. The arrangements (for example, profit sharing, deferred bonuses or certain split-dollar life insurance arrangements) 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 amounts at designated 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 and the carrying amount as of the balance sheet date of the related liability." } } }, "auth_ref": [ "r59", "r120" ] }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareTables" ], "lang": { "en-us": { "role": { "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]", "terseLabel": "Schedule of Computation of Basic and Diluted Income (Loss) Per Share", "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." } } }, "auth_ref": [ "r786" ] }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]", "documentation": "Disclosure of information about amount recognized for award under share-based payment arrangement. Includes, but is not limited to, amount expensed in statement of income or comprehensive income, amount capitalized in statement of financial position, and corresponding reporting line item in financial statements." } } }, "auth_ref": [ "r61" ] }, "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationTables" ], "lang": { "en-us": { "role": { "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]", "terseLabel": "Schedule of Stock compensation expense", "documentation": "Tabular disclosure of allocation of amount expensed and capitalized for award under share-based payment arrangement to statement of income or comprehensive income and statement of financial position. Includes, but is not limited to, corresponding line item in financial statement." } } }, "auth_ref": [ "r61" ] }, "srt_ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "ScheduleOfEquityMethodInvestmentEquityMethodInvesteeNameAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Investment, Name", "label": "Investment, Name [Axis]" } } }, "auth_ref": [ "r255", "r256", "r258" ] }, "us-gaap_ScheduleOfEquityMethodInvestmentsLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfEquityMethodInvestmentsLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule Of Equity Method Investments [Line Items]", "label": "Schedule of Equity Method Investments [Line Items]", "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." } } }, "auth_ref": [ "r194", "r255", "r256", "r258", "r259", "r457" ] }, "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillTables" ], "lang": { "en-us": { "role": { "terseLabel": "Summary of intangible assets", "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]", "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment." } } }, "auth_ref": [ "r47", "r49" ] }, "us-gaap_ScheduleOfGoodwillTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfGoodwillTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of goodwill activity", "label": "Schedule of Goodwill [Table Text Block]", "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule." } } }, "auth_ref": [ "r655", "r793", "r794", "r795", "r796", "r797", "r798", "r799", "r800", "r801", "r802", "r803" ] }, "us-gaap_ScheduleOfIndefiniteLivedIntangibleAssetsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfIndefiniteLivedIntangibleAssetsTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillSummaryOfIntangibleAssetsDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Indefinite-Lived Intangible Assets [Table]", "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance and exist in perpetuity." } } }, "auth_ref": [ "r14", "r109" ] }, "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfInventoryCurrentTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureInventoriesNetTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Inventories", "label": "Schedule of Inventory, Current [Table Text Block]", "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." } } }, "auth_ref": [ "r17", "r86", "r87", "r88" ] }, "ftci_ScheduleOfOperatingLeaseAssetsAndLiabilitiesTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ScheduleOfOperatingLeaseAssetsAndLiabilitiesTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureLeasesTables" ], "lang": { "en-us": { "role": { "terseLabel": "Schedule of Supplemental Balance Sheet Information of Leases", "label": "Schedule Of Operating Lease Assets And Liabilities Table [Text Block]", "documentation": "Schedule of operating lease assets and liabilities." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfOperatingLeasedAssetsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfOperatingLeasedAssetsTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Operating Leased Assets [Table]", "documentation": "Schedule of long-lived, depreciable assets that are subject to a operating lease agreements and are used in the normal conduct of business to produce goods and services. Examples may 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." } } }, "auth_ref": [] }, "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesTables", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesTables" ], "lang": { "en-us": { "role": { "terseLabel": "Summary of Changes in Product Warranty Reserves", "label": "Schedule of Product Warranty Liability [Table Text Block]", "verboseLabel": "Schedule of warranty accruals", "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." } } }, "auth_ref": [ "r301" ] }, "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfPropertyPlantAndEquipmentTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Property, Plant and Equipment [Table]", "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." } } }, "auth_ref": [ "r9" ] }, "us-gaap_ScheduleOfRestructuringAndRelatedCostsTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfRestructuringAndRelatedCostsTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Restructuring and Related Costs [Table]", "documentation": "Table presenting the description of the restructuring costs, such as the expected cost; the costs incurred during the period; the cumulative costs incurred as of the balance sheet date; the income statement caption within which the restructuring charges recognized for the period are included; and the amount of and periodic changes to an entity's restructuring reserve that occurred during the period associated with the exit from or disposal of business activities or restructurings for each major type of cost by type of restructuring." } } }, "auth_ref": [ "r287", "r288", "r289", "r290", "r291", "r292", "r293" ] }, "ftci_ScheduleOfSeveranceAndTerminationRelatedCostsTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ScheduleOfSeveranceAndTerminationRelatedCostsTableTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureReductionInForceTables" ], "lang": { "en-us": { "role": { "documentation": "Schedule of Severance and Termination Related Costs [Table Text Block]", "label": "Schedule of Severance and Termination Related Costs [Table Text Block]", "terseLabel": "Schedule Of severance and termination-related costs" } } }, "auth_ref": [] }, "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]", "documentation": "Disclosure of information about share-based payment arrangement." } } }, "auth_ref": [ "r375", "r377", "r379", "r380", "r381", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r403", "r404", "r405", "r406", "r407" ] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "Security12bTitle", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Title of 12(b) Security", "label": "Title of 12(b) Security", "documentation": "Title of a 12(b) registered security." } } }, "auth_ref": [ "r681" ] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "SecurityExchangeName", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Security Exchange Name", "label": "Security Exchange Name", "documentation": "Name of the Exchange on which a security is registered." } } }, "auth_ref": [ "r683" ] }, "us-gaap_SellingAndMarketingExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SellingAndMarketingExpense", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited": { "parentTag": "us-gaap_OperatingExpenses", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Selling and marketing", "label": "Selling and Marketing Expense", "totalLabel": "Selling and Marketing Expense, Total", "documentation": "The aggregate total amount of expenses directly related to the marketing or selling of products or services." } } }, "auth_ref": [] }, "us-gaap_SellingAndMarketingExpenseMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SellingAndMarketingExpenseMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationStockCompensationExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Selling and Marketing Expense [Member]", "terseLabel": "Selling and marketing [Member]", "documentation": "Primary financial statement caption encompassing selling and marketing expense." } } }, "auth_ref": [ "r92" ] }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SellingGeneralAndAdministrativeExpense", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "terseLabel": "General and administrative expense", "label": "Selling, General and Administrative Expense", "totalLabel": "Selling, General and Administrative Expense, Total", "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." } } }, "auth_ref": [ "r97" ] }, "us-gaap_ServiceMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ServiceMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Service", "label": "Service [Member]", "documentation": "Assistance, including, but not limited to, technology, license and maintenance, license and service, maintenance, oil and gas, and financial service." } } }, "auth_ref": [ "r662" ] }, "ftci_SettlementMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "SettlementMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Settlement Member", "label": "Settlement [Member]", "terseLabel": "Settlement Member" } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensation": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensation", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "verboseLabel": "Stock-based compensation expense", "terseLabel": "Stock-based compensation", "label": "Share-Based Payment Arrangement, Noncash Expense", "totalLabel": "Share-based Payment Arrangement, Noncash Expense, Total", "documentation": "Amount of noncash expense for share-based payment arrangement." } } }, "auth_ref": [ "r7" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAcceleratedCompensationCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAcceleratedCompensationCost", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Increased stock-based compensation expenses", "label": "Share-Based Payment Arrangement, Accelerated Cost", "documentation": "Amount of additional cost recognized for award under share-based payment arrangement from occurrence of event accelerating recognition of cost." } } }, "auth_ref": [] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]", "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." } } }, "auth_ref": [ "r375", "r377", "r379", "r380", "r381", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r403", "r404", "r405", "r406", "r407" ] }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardSharesIssuedInPeriod", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Shares of Common stock purchased", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Shares Issued in Period", "documentation": "Number of shares issued under share-based payment arrangement." } } }, "auth_ref": [ "r60" ] }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "All Award Types", "terseLabel": "All Award Types", "documentation": "Award under share-based payment arrangement." } } }, "auth_ref": [ "r379", "r380", "r381", "r383", "r384", "r385", "r386", "r387", "r388", "r389", "r390", "r391", "r392", "r393", "r394", "r395", "r396", "r397", "r398", "r399", "r400", "r403", "r404", "r405", "r406", "r407" ] }, "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Stock-based compensation", "label": "Share-Based Payment Arrangement [Policy Text Block]", "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." } } }, "auth_ref": [ "r374", "r382", "r401", "r402", "r403", "r404", "r407", "r415", "r416", "r417", "r418" ] }, "ftci_SharesIssuedForLegalSettlement": { "xbrltype": "sharesItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "SharesIssuedForLegalSettlement", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Shares issued for legal settlement, shares", "label": "Shares issued for legal settlement", "documentation": "Shares issued for legal settlement" } } }, "auth_ref": [] }, "ftci_SharesIssuedForLegalSettlementAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "SharesIssuedForLegalSettlementAmt", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Shares issued for legal settlement", "label": "Shares issued for legal settlement amt", "documentation": "Shares issued for legal settlement amt" } } }, "auth_ref": [] }, "us-gaap_SharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SharesOutstanding", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "periodStartLabel": "Beginning balance (in shares)", "periodEndLabel": "Ending balance (in shares)", "label": "Shares, Outstanding", "documentation": "Number of shares issued which are neither cancelled nor held in the treasury." } } }, "auth_ref": [] }, "us-gaap_ShortTermDebtTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShortTermDebtTypeAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Short-Term Debt, Type [Axis]", "documentation": "Information by type of short-term debt arrangement." } } }, "auth_ref": [ "r19" ] }, "us-gaap_ShortTermDebtTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShortTermDebtTypeDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureDebtAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Short-Term Debt, Type [Domain]", "documentation": "Type of short-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing." } } }, "auth_ref": [ "r18" ] }, "ftci_ShortTermInterestBearingLoanCustomerDvance": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "ShortTermInterestBearingLoanCustomerDvance", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Short-term Interest Bearing Loan & Customer dvance", "label": "Short-term Interest Bearing Loan & Customer dvance" } } }, "auth_ref": [] }, "us-gaap_ShortTermLeaseCost": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ShortTermLeaseCost", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails": { "parentTag": "us-gaap_LeaseCost", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureLeasesSummaryOfLeaseExpenseDetails" ], "lang": { "en-us": { "role": { "label": "Short-Term Lease, Cost", "terseLabel": "Short-term lease cost", "documentation": "Amount of short-term lease cost, excluding expense for lease with term of one month or less." } } }, "auth_ref": [ "r477", "r666" ] }, "us-gaap_SignificantAccountingPoliciesTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SignificantAccountingPoliciesTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPolicies1" ], "lang": { "en-us": { "role": { "terseLabel": "Summary of significant accounting policies", "label": "Significant Accounting Policies [Text Block]", "documentation": "The entire disclosure for all significant accounting policies of the reporting entity." } } }, "auth_ref": [ "r104", "r191" ] }, "us-gaap_SoftwareDevelopmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SoftwareDevelopmentMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Software Development [Member]", "terseLabel": "Capitalized Software [Member]", "documentation": "Internally developed software for sale, licensing or long-term internal use." } } }, "auth_ref": [] }, "ftci_SouthLakeOneLlcMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "SouthLakeOneLlcMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "documentation": "South Lake One LLC [Member]", "label": "South Lake One LLC [Member]", "terseLabel": "South Lake One LLC [Member]" } } }, "auth_ref": [] }, "us-gaap_StandardProductWarrantyAccrual": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StandardProductWarrantyAccrual", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails": { "parentTag": null, "weight": null, "order": null, "root": true } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "periodEndLabel": "Balance at end 's period", "label": "Standard Product Warranty Accrual", "periodStartLabel": "Balance at beginning of period", "terseLabel": "Balance at end of period", "totalLabel": "Balance at end of period", "documentation": "Amount as of the balance sheet date of the aggregate standard product warranty liability. Does not include the balance for the extended product warranty liability." } } }, "auth_ref": [ "r813", "r817" ] }, "us-gaap_StandardProductWarrantyAccrualPayments": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StandardProductWarrantyAccrualPayments", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "label": "Standard Product Warranty Accrual, Decrease for Payments", "terseLabel": "Settlements made during the period", "negatedLabel": "Settlements made during the period", "documentation": "Amount of decrease in the standard product warranty accrual from payments made in cash or in kind to satisfy claims under the terms of the standard product warranty. Excludes extended product warranties." } } }, "auth_ref": [ "r814" ] }, "us-gaap_StandardProductWarrantyAccrualPreexistingIncreaseDecrease": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StandardProductWarrantyAccrualPreexistingIncreaseDecrease", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "label": "Standard Product Warranty Accrual, Increase (Decrease) for Preexisting Warranties", "terseLabel": "Changes in liability for pre-existing warranties", "documentation": "Amount of increase (decrease) in the standard product warranty accrual from changes in estimates attributable to preexisting product warranties. Excludes extended product warranties." } } }, "auth_ref": [ "r816" ] }, "us-gaap_StandardProductWarrantyAccrualWarrantiesIssued": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StandardProductWarrantyAccrualWarrantiesIssued", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccruedExpensesAndOtherCurrentLiabilitiesScheduleOfWarrantyAccrualsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Warranties issued and remediation added during the period", "negatedLabel": "Warranties issued during the period", "label": "Standard Product Warranty Accrual, Increase for Warranties Issued", "documentation": "Amount of increase in the standard product warranty accrual from warranties issued. Excludes extended product warranties." } } }, "auth_ref": [ "r815" ] }, "us-gaap_StandardProductWarrantyDescription": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StandardProductWarrantyDescription", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Warranty description", "label": "Standard Product Warranty Description", "documentation": "Describes the nature of the product warranty, including the approximate term of the product warranty, how the product warranty arose, and the events or circumstances that would require the warrantor to perform under the product warranty." } } }, "auth_ref": [ "r53", "r54" ] }, "us-gaap_StandardProductWarrantyPolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StandardProductWarrantyPolicy", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Warranty", "label": "Standard Product Warranty, Policy [Policy Text Block]", "documentation": "Disclosure of accounting policy for standard warranties including the methodology for measuring the liability." } } }, "auth_ref": [ "r812" ] }, "us-gaap_StatementEquityComponentsAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementEquityComponentsAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Equity Components", "label": "Equity Components [Axis]", "documentation": "Information by component of equity." } } }, "auth_ref": [ "r12", "r29", "r158", "r183", "r184", "r185", "r201", "r202", "r203", "r205", "r213", "r215", "r229", "r262", "r265", "r356", "r412", "r413", "r414", "r430", "r431", "r445", "r446", "r447", "r448", "r449", "r450", "r453", "r459", "r461", "r462", "r463", "r464", "r465", "r480", "r543", "r544", "r545", "r562", "r618" ] }, "us-gaap_StatementLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Statement [Line Items]", "label": "Statement [Line Items]", "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." } } }, "auth_ref": [ "r201", "r202", "r203", "r229", "r498", "r554", "r564", "r567", "r568", "r569", "r570", "r571", "r572", "r575", "r578", "r579", "r580", "r581", "r582", "r584", "r585", "r586", "r587", "r589", "r590", "r591", "r592", "r593", "r595", "r597", "r598", "r604", "r605", "r606", "r607", "r608", "r609", "r610", "r611", "r612", "r613", "r614", "r615", "r618", "r673" ] }, "us-gaap_StatementOfCashFlowsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfCashFlowsAbstract", "lang": { "en-us": { "role": { "label": "Statement of Cash Flows [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfFinancialPositionAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfFinancialPositionAbstract", "lang": { "en-us": { "role": { "terseLabel": "Balance sheet", "label": "Statement of Financial Position [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StatementOfStockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementOfStockholdersEquityAbstract", "lang": { "en-us": { "role": { "label": "Statement of Stockholders' Equity [Abstract]", "terseLabel": "Condensed Consolidated Statement of Stockholders' Equity" } } }, "auth_ref": [] }, "us-gaap_StatementTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StatementTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Statement [Table]", "label": "Statement [Table]", "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." } } }, "auth_ref": [ "r201", "r202", "r203", "r229", "r498", "r554", "r564", "r567", "r568", "r569", "r570", "r571", "r572", "r575", "r578", "r579", "r580", "r581", "r582", "r584", "r585", "r586", "r587", "r589", "r590", "r591", "r592", "r593", "r595", "r597", "r598", "r604", "r605", "r606", "r607", "r608", "r609", "r610", "r611", "r612", "r613", "r614", "r615", "r618", "r673" ] }, "ecd_StkPrcOrTsrEstimationMethodTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "StkPrcOrTsrEstimationMethodTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" ], "lang": { "en-us": { "role": { "label": "Stock Price or TSR Estimation Method [Text Block]", "terseLabel": "Stock Price or TSR Estimation Method" } } }, "auth_ref": [ "r690", "r701", "r711", "r736" ] }, "us-gaap_StockAppreciationRightsSARSMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockAppreciationRightsSARSMember", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Stock Appreciation Rights (SARs) [Member]", "terseLabel": "Stock Appreciation Rights (SARs)", "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period." } } }, "auth_ref": [] }, "us-gaap_StockIssuedDuringPeriodSharesAcquisitions": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesAcquisitions", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Shares issued for HX Tracker acquisition, Shares", "label": "Stock Issued During Period, Shares, Acquisitions", "documentation": "Number of shares of stock issued during the period pursuant to acquisitions." } } }, "auth_ref": [ "r79", "r80", "r118" ] }, "us-gaap_StockIssuedDuringPeriodSharesNewIssues": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesNewIssues", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Sale of shares, shares", "verboseLabel": "Issuance of common stock (in shares)", "label": "Stock Issued During Period, Shares, New Issues", "documentation": "Number of new stock issued during the period." } } }, "auth_ref": [ "r12", "r79", "r80", "r118", "r555", "r618", "r631" ] }, "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardGross": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardGross", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Shares issued during the period for vested restricted stock awards, shares", "label": "Stock Issued During Period, Shares, Restricted Stock Award, Gross", "verboseLabel": "Shares of common stock issuable upon vesting of restricted stock awards", "documentation": "Total number of shares issued during the period, including shares forfeited, as a result of Restricted Stock Awards." } } }, "auth_ref": [ "r12", "r118" ] }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Issuance of common stock upon exercise of stock options, shares", "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period", "documentation": "Number of share options (or share units) exercised during the current period." } } }, "auth_ref": [ "r12", "r79", "r80", "r118", "r388" ] }, "us-gaap_StockIssuedDuringPeriodValueAcquisitions": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodValueAcquisitions", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Shares issued for HX Tracker acquisition, Amount", "label": "Stock Issued During Period, Value, Acquisitions", "documentation": "Value of stock issued pursuant to acquisitions during the period." } } }, "auth_ref": [ "r12", "r29", "r118" ] }, "us-gaap_StockIssuedDuringPeriodValueNewIssues": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodValueNewIssues", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Sale of shares", "label": "Stock Issued During Period, Value, New Issues", "verboseLabel": "Issuance of common stock, value", "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." } } }, "auth_ref": [ "r12", "r79", "r80", "r118", "r562", "r618", "r631", "r679" ] }, "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardGross": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardGross", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Shares issued during the period for vested restricted stock awards", "label": "Stock Issued During Period, Value, Restricted Stock Award, Gross", "documentation": "Aggregate value of stock related to Restricted Stock Awards issued during the period." } } }, "auth_ref": [ "r12", "r79", "r80", "r118" ] }, "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockIssuedDuringPeriodValueStockOptionsExercised", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Issued During Period, Value, Stock Options Exercised", "terseLabel": "Issuance of common stock upon exercise of stock options", "documentation": "Value of stock issued as a result of the exercise of stock options." } } }, "auth_ref": [ "r12", "r29", "r118" ] }, "ftci_StockIssuedForAccruedLegalSettlement": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "StockIssuedForAccruedLegalSettlement", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock issued for accrued legal settlement", "documentation": "Stock issued for accrued legal settlement" } } }, "auth_ref": [] }, "us-gaap_StockRepurchasedAndRetiredDuringPeriodShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockRepurchasedAndRetiredDuringPeriodShares", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Repurchased and Retired During Period, Shares", "negatedLabel": "Repurchase and retirement of common stock (shares)", "terseLabel": "Share repurchase and retirement (shares)", "verboseLabel": "Share repurchased and retired (Shares)", "documentation": "Number of shares that have been repurchased and retired during the period." } } }, "auth_ref": [ "r12", "r79", "r80", "r118" ] }, "us-gaap_StockRepurchasedAndRetiredDuringPeriodValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockRepurchasedAndRetiredDuringPeriodValue", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Repurchased and Retired During Period, Value", "negatedLabel": "Repurchase and retirement of common stock", "terseLabel": "Share repurchase and retirement", "documentation": "Equity impact of the value of stock that has been repurchased and retired during the period. The excess of the purchase price over par value can be charged against retained earnings (once the excess is fully allocated to additional paid in capital)." } } }, "auth_ref": [ "r12", "r79", "r80", "r118" ] }, "us-gaap_StockRepurchasedDuringPeriodShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockRepurchasedDuringPeriodShares", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "label": "Stock Repurchased During Period, Shares", "terseLabel": "Repurchase of treasury stock", "negatedLabel": "Repurchase of treasury stock", "documentation": "Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock." } } }, "auth_ref": [ "r12", "r79", "r80", "r118", "r556", "r618", "r632" ] }, "us-gaap_StockholdersEquity": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquity", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Total stockholders' equity", "periodStartLabel": "Beginning balance", "periodEndLabel": "Ending balance", "label": "Equity, Attributable to Parent", "terseLabel": "Stockholders equity", "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest." } } }, "auth_ref": [ "r80", "r83", "r84", "r106", "r577", "r594", "r619", "r620", "r667", "r680", "r780", "r789", "r826", "r849" ] }, "us-gaap_StockholdersEquityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Stockholders' equity", "label": "Equity, Attributable to Parent [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StockholdersEquityNoteAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityNoteAbstract", "lang": { "en-us": { "role": { "label": "Stockholders' Equity Note [Abstract]" } } }, "auth_ref": [] }, "us-gaap_StockholdersEquityNoteDisclosureTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityNoteDisclosureTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockholdersEquity" ], "lang": { "en-us": { "role": { "terseLabel": "Common Stock", "label": "Equity [Text Block]", "documentation": "The entire disclosure for equity." } } }, "auth_ref": [ "r115", "r193", "r342", "r344", "r346", "r347", "r348", "r349", "r350", "r351", "r352", "r353", "r354", "r355", "r356", "r451", "r621", "r623", "r633" ] }, "us-gaap_StockholdersEquityReverseStockSplit": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "StockholdersEquityReverseStockSplit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Stockholders' Equity, Reverse Stock Split", "terseLabel": "Stock split", "documentation": "Description of the reverse stock split arrangement. Also provide the retroactive effect given by the reverse split that occurs after the balance sheet date but before the release of financial statements." } } }, "auth_ref": [ "r119" ] }, "ftci_SubscriptionRevenueContractTerms": { "xbrltype": "durationItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "SubscriptionRevenueContractTerms", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Subscription revenue contract terms.", "label": "Subscription Revenue Contract Terms", "terseLabel": "Subscription revenue contract terms" } } }, "auth_ref": [] }, "us-gaap_SubsequentEventMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubsequentEventMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Subsequent Event", "label": "Subsequent Event [Member]", "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued." } } }, "auth_ref": [ "r466", "r490" ] }, "us-gaap_SubsequentEventTypeAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubsequentEventTypeAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Subsequent Event Type [Axis]", "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued." } } }, "auth_ref": [ "r466", "r490" ] }, "us-gaap_SubsequentEventTypeDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubsequentEventTypeDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Subsequent Event Type [Domain]", "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued." } } }, "auth_ref": [ "r466", "r490" ] }, "us-gaap_SubsequentEventsAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubsequentEventsAbstract", "lang": { "en-us": { "role": { "label": "Subsequent Events [Abstract]" } } }, "auth_ref": [] }, "us-gaap_SubsequentEventsTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubsequentEventsTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEvents" ], "lang": { "en-us": { "role": { "terseLabel": "Subsequent events", "label": "Subsequent Events [Text Block]", "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business." } } }, "auth_ref": [ "r489", "r491" ] }, "us-gaap_SubsidiaryOrEquityMethodInvesteeSaleOfStockBySubsidiaryOrEquityInvesteeTable": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubsidiaryOrEquityMethodInvesteeSaleOfStockBySubsidiaryOrEquityInvesteeTable", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Subsidiary or Equity Method Investee, Sale of Stock by Subsidiary or Equity Investee [Table]", "documentation": "Different names of stock transactions and the different attributes of each transaction." } } }, "auth_ref": [] }, "us-gaap_SubsidiarySaleOfStockAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubsidiarySaleOfStockAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureStockbasedCompensationAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Sale of Stock", "label": "Sale of Stock [Axis]", "documentation": "Information by type of sale of the entity's stock." } } }, "auth_ref": [] }, "us-gaap_SubsidiarySaleOfStockLineItems": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SubsidiarySaleOfStockLineItems", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAtmProgramAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Subsidiary, Sale of Stock [Line Items]", "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." } } }, "auth_ref": [] }, "ftci_SunEdisonUtilityHoldingsIncMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "SunEdisonUtilityHoldingsIncMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "SunEdison Utility Holdings, Inc. [Member]", "label": "Sun Edison Utility Holdings Inc [Member]", "documentation": "SunEdison Utility Holdings Inc. member." } } }, "auth_ref": [] }, "us-gaap_SupplementalCashFlowInformationAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "SupplementalCashFlowInformationAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Supplemental disclosures of cash flow information:", "label": "Supplemental Cash Flow Information [Abstract]" } } }, "auth_ref": [] }, "ftci_SuretyCollateral": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "SuretyCollateral", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails": { "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent", "weight": 1.0, "order": 5.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "documentation": "Surety collateral.", "label": "Surety Collateral", "terseLabel": "Surety collateral" } } }, "auth_ref": [] }, "ecd_TabularListTableTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TabularListTableTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Tabular List [Table Text Block]", "terseLabel": "Tabular List, Table" } } }, "auth_ref": [ "r730" ] }, "ftci_TaihuaNewEnergyMember": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "TaihuaNewEnergyMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureEquityMethodInvestmentAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Taihua New Energy [Member]", "documentation": "Taihua New Energy [Member]" } } }, "auth_ref": [] }, "ftci_TariffsOnMerchandisePercent": { "xbrltype": "percentItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "TariffsOnMerchandisePercent", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureCommitmentsAndContingenciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Tariffs on merchandise, percent", "label": "Tariffs on Merchandise, Percent", "documentation": "Tariffs on Merchandise, Percent" } } }, "auth_ref": [] }, "us-gaap_TaxesPayableCurrent": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TaxesPayableCurrent", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0, "order": 3.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Taxes Payable, Current, Total", "label": "Taxes Payable, Current", "terseLabel": "Income taxes payable", "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for statutory income, sales, use, payroll, excise, real, property and other taxes. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)." } } }, "auth_ref": [ "r20" ] }, "us-gaap_TechnologyEquipmentMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TechnologyEquipmentMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Technology Equipment [Member]", "terseLabel": "Information Technology Equipment [Member]", "documentation": "Equipment used in the creation, maintenance and utilization of information systems which include computers and peripherals." } } }, "auth_ref": [] }, "srt_TitleOfIndividualAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "TitleOfIndividualAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Title of Individual [Axis]" } } }, "auth_ref": [ "r787", "r829" ] }, "srt_TitleOfIndividualWithRelationshipToEntityDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/srt/2023", "localname": "TitleOfIndividualWithRelationshipToEntityDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail", "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Title of Individual [Domain]" } } }, "auth_ref": [] }, "us-gaap_ToolsDiesAndMoldsMember": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "ToolsDiesAndMoldsMember", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePropertyAndEquipmentNetScheduleOfPropertyAndEquipmentDetails" ], "lang": { "en-us": { "role": { "label": "Tools, Dies and Molds [Member]", "terseLabel": "Tooling [Member]", "documentation": "Equipment commonly used to cut, shape, and form metal and other materials into goods for sale." } } }, "auth_ref": [] }, "ecd_TotalShareholderRtnAmt": { "xbrltype": "monetaryItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TotalShareholderRtnAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Total Shareholder Return Amount", "terseLabel": "Total Shareholder Return Amount" } } }, "auth_ref": [ "r722" ] }, "ecd_TotalShareholderRtnVsPeerGroupTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TotalShareholderRtnVsPeerGroupTextBlock", "presentation": [ "http://xbrl.sec.gov/ecd/role/PvpDisclosure" ], "lang": { "en-us": { "role": { "label": "Total Shareholder Return Vs Peer Group [Text Block]", "terseLabel": "Total Shareholder Return Vs Peer Group" } } }, "auth_ref": [ "r729" ] }, "ftci_TradeAccountsReceivable": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "TradeAccountsReceivable", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableNetScheduleOfAccountsReceivableNetDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Trade receivables", "label": "Trade Accounts Receivable", "documentation": "Trade Accounts Receivable" } } }, "auth_ref": [] }, "ftci_TradeAccountsReceivableBalanceFromMajorCustomer": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "TradeAccountsReceivableBalanceFromMajorCustomer", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Trade Accounts Receivable Balance From Major Customer", "label": "Trade Accounts Receivable Balance From Major Customer", "documentation": "Trade Accounts Receivable Balance From Major Customer" } } }, "auth_ref": [] }, "us-gaap_TradeAndOtherAccountsReceivablePolicy": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TradeAndOtherAccountsReceivablePolicy", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "label": "Accounts Receivable [Policy Text Block]", "terseLabel": "Accounts receivable, net", "documentation": "Disclosure of accounting policy for accounts receivable." } } }, "auth_ref": [ "r135", "r136", "r137", "r249", "r250", "r252" ] }, "ecd_TradingArrAxis": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TradingArrAxis", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement [Axis]", "terseLabel": "Trading Arrangement:" } } }, "auth_ref": [ "r749" ] }, "ecd_TradingArrByIndTable": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TradingArrByIndTable", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangements, by Individual [Table]", "terseLabel": "Trading Arrangements, by Individual" } } }, "auth_ref": [ "r751" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2023", "localname": "TradingSymbol", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DocumentDocumentAndEntityInformation" ], "lang": { "en-us": { "role": { "terseLabel": "Trading Symbol", "label": "Trading Symbol", "documentation": "Trading symbol of an instrument as listed on an exchange." } } }, "auth_ref": [] }, "ftci_TranslationAndOther": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "TranslationAndOther", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureAccountsReceivableAllowanceForCreditLossDetailsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Translation and other", "label": "Translation and other", "documentation": "Translation and other" } } }, "auth_ref": [] }, "ecd_TrdArrAdoptionDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrAdoptionDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Adoption Date", "terseLabel": "Adoption Date" } } }, "auth_ref": [ "r752" ] }, "ecd_TrdArrDuration": { "xbrltype": "durationItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrDuration", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Duration", "terseLabel": "Arrangement Duration" } } }, "auth_ref": [ "r753" ] }, "ecd_TrdArrIndName": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrIndName", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Individual Name", "terseLabel": "Name" } } }, "auth_ref": [ "r751" ] }, "ecd_TrdArrIndTitle": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrIndTitle", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Individual Title", "terseLabel": "Title" } } }, "auth_ref": [ "r751" ] }, "ecd_TrdArrSecuritiesAggAvailAmt": { "xbrltype": "sharesItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrSecuritiesAggAvailAmt", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement, Securities Aggregate Available Amount", "terseLabel": "Aggregate Available" } } }, "auth_ref": [ "r754" ] }, "ecd_TrdArrTerminationDate": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "TrdArrTerminationDate", "presentation": [ "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" ], "lang": { "en-us": { "role": { "label": "Trading Arrangement Termination Date", "terseLabel": "Termination Date" } } }, "auth_ref": [ "r752" ] }, "ftci_TreasuryStock1Member": { "xbrltype": "domainItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "TreasuryStock1Member", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfStockholdersEquityDeficitUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Treasury Stock -1 [Member]", "label": "Treasury Stock -1 [Member]", "terseLabel": "Treasury Stock" } } }, "auth_ref": [] }, "us-gaap_TreasuryStockCommonShares": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockCommonShares", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsParentheticalUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Treasury Stock, Shares", "label": "Treasury Stock, Common, Shares", "documentation": "Number of previously issued common shares repurchased by the issuing entity and held in treasury." } } }, "auth_ref": [ "r57" ] }, "us-gaap_TreasuryStockValue": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TreasuryStockValue", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited": { "parentTag": "us-gaap_StockholdersEquity", "weight": -1.0, "order": 2.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedBalanceSheetsUnaudited" ], "lang": { "en-us": { "role": { "terseLabel": "Treasury stock, at cost; 10,762,566 shares as of March 31, 2024 and December 31, 2023", "verboseLabel": "Treasury stock, value", "label": "Treasury Stock, Value", "totalLabel": "Treasury Stock, Value, Total", "periodStartLabel": "Treasury Stock, Value, Beginning Balance", "periodEndLabel": "Treasury Stock, Value, Ending Balance", "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury." } } }, "auth_ref": [ "r28", "r57", "r58" ] }, "us-gaap_TypeOfArrangementAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "TypeOfArrangementAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureIntangibleAssetsNetAndGoodwillAdditionalInformationDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureDescriptionOfBusinessAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Collaborative Arrangement and Arrangement Other than Collaborative", "label": "Collaborative Arrangement and Arrangement Other than Collaborative [Axis]", "documentation": "Information by collaborative arrangement and arrangement other than collaborative applicable to revenue-generating activity or operations." } } }, "auth_ref": [ "r440" ] }, "ftci_UnauditedInterimFinancialInformationPolicyTextBlock": { "xbrltype": "textBlockItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "UnauditedInterimFinancialInformationPolicyTextBlock", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Unaudited Interim Financial Information", "label": "Unaudited Interim Financial Information Policy [Text Block]", "documentation": "Unaudited interim financial information." } } }, "auth_ref": [] }, "ecd_UndrlygSecurityMktPriceChngPct": { "xbrltype": "pureItemType", "nsuri": "http://xbrl.sec.gov/ecd/2023", "localname": "UndrlygSecurityMktPriceChngPct", "presentation": [ "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" ], "lang": { "en-us": { "role": { "label": "Underlying Security Market Price Change, Percent", "terseLabel": "Underlying Security Market Price Change" } } }, "auth_ref": [ "r748" ] }, "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": { "xbrltype": "monetaryItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued", "crdr": "credit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureIncomeTaxesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Income tax interest and penalties accrued", "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued", "totalLabel": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued, Total", "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." } } }, "auth_ref": [ "r427" ] }, "us-gaap_UseOfEstimates": { "xbrltype": "textBlockItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "UseOfEstimates", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSummaryOfSignificantAccountingPoliciesPolicies" ], "lang": { "en-us": { "role": { "terseLabel": "Use of estimates", "label": "Use of Estimates, Policy [Policy Text Block]", "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles." } } }, "auth_ref": [ "r41", "r42", "r43", "r146", "r147", "r150", "r151" ] }, "us-gaap_VariableRateAxis": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "VariableRateAxis", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Variable Rate [Axis]", "documentation": "Information by type of variable rate." } } }, "auth_ref": [] }, "us-gaap_VariableRateDomain": { "xbrltype": "domainItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "VariableRateDomain", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureSubsequentEventsAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "label": "Variable Rate [Domain]", "documentation": "Interest rate that fluctuates over time as a result of an underlying benchmark interest rate or index." } } }, "auth_ref": [] }, "ftci_VendorDeposits": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "VendorDeposits", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails": { "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent", "weight": 1.0, "order": 0.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Vendor deposits", "documentation": "Vendor deposits", "label": "Vendor Deposits" } } }, "auth_ref": [] }, "ftci_VendorDeposits1": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "VendorDeposits1", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureRelatedPartyTransactionsAdditionalInformationDetail" ], "lang": { "en-us": { "role": { "terseLabel": "Vendor Deposits", "label": "Vendor Deposits 1", "documentation": "Vendor Deposits 1" } } }, "auth_ref": [] }, "ftci_VendorDepositsWithRelatedParty": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "VendorDepositsWithRelatedParty", "crdr": "debit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails": { "parentTag": "us-gaap_PrepaidExpenseAndOtherAssetsCurrent", "weight": 1.0, "order": 1.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosurePrepaidAndOtherCurrentAssetsScheduleOfPrepaidAndOtherCurrentAssetsDetails" ], "lang": { "en-us": { "role": { "terseLabel": "Vendor deposits with related party", "label": "Vendor Deposits With Related Party", "documentation": "Vendor Deposits With Related Party" } } }, "auth_ref": [] }, "ftci_WarrantsRecoverableFromManufacturer": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "WarrantsRecoverableFromManufacturer", "crdr": "credit", "calculation": { "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited": { "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": -1.0, "order": 11.0 } }, "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfCashFlowsUnaudited" ], "lang": { "en-us": { "role": { "documentation": "Warrants recoverable from manufacturer.", "label": "Warrants Recoverable From Manufacturer", "terseLabel": "Warranty recoverable from manufacturer", "negatedLabel": "Warranty recoverable from manufacturer" } } }, "auth_ref": [] }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "totalLabel": "Potential common shares excluded from diluted net loss per share", "label": "Weighted Average Number of Shares Outstanding, Diluted", "terseLabel": "Diluted", "verboseLabel": "Diluted weighted-average number of common shares outstanding", "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." } } }, "auth_ref": [ "r219", "r224" ] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": { "xbrltype": "stringItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfSharesOutstandingAbstract", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]", "terseLabel": "Weighted-average common shares outstanding:" } } }, "auth_ref": [] }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "xbrltype": "sharesItemType", "nsuri": "http://fasb.org/us-gaap/2023", "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/DisclosureNetLossPerShareScheduleOfComputationOfBasicAndDilutedLossPerShareDetails", "http://www.ftcsolar.com/20240331/taxonomy/role/StatementCondensedConsolidatedStatementsOfComprehensiveLossUnaudited" ], "lang": { "en-us": { "role": { "label": "Weighted Average Number of Shares Outstanding, Basic", "totalLabel": "Weighted Average Number of Shares Outstanding, Basic, Total", "verboseLabel": "Basic weighted-average number of common shares outstanding", "terseLabel": "Basic", "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." } } }, "auth_ref": [ "r218", "r224" ] }, "ftci_WorkforceActivityAbstract": { "xbrltype": "stringItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "WorkforceActivityAbstract", "lang": { "en-us": { "role": { "documentation": "Workforce Activity [Abstract]", "label": "Workforce Activity [Abstract]" } } }, "auth_ref": [] }, "ftci_WorkingCapital": { "xbrltype": "monetaryItemType", "nsuri": "http://www.ftcsolar.com/20240331", "localname": "WorkingCapital", "crdr": "debit", "presentation": [ "http://www.ftcsolar.com/20240331/taxonomy/role/Role_DisclosureSummaryOfSignificantAccountingPoliciesAdditionalInformationDetails" ], "lang": { "en-us": { "role": { "documentation": "Working Capital", "label": "Working Capital", "terseLabel": "Working capital" } } }, "auth_ref": [] } } } }, "std_ref": { "r0": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "05", "Paragraph": "4", "SubTopic": "10", "Topic": "360", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482338/360-10-05-4" }, "r1": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "1", "SubTopic": "20", "Topic": "940", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481913/940-20-25-1" }, "r2": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "SubTopic": "230", "Topic": "830", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1" }, "r3": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A" }, "r4": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10A", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A" }, "r5": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "14", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-14" }, "r6": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "21D", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-21D" }, "r7": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r8": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r9": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "SubTopic": "10", "Topic": "360", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r10": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "19", "SubTopic": "10", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-19" }, "r11": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Subparagraph": "(c),(3)", "SubTopic": "10", "Topic": "810", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-1A" }, "r12": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "SubTopic": "10", "Topic": "505", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-2" }, "r13": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2A", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "718", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2A" }, "r14": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b),(d)", "SubTopic": "30", "Topic": "350", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-3" }, "r15": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "SubTopic": "10", "Topic": "220", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482739/220-10-55-15" }, "r16": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(22))", "SubTopic": "10", "Topic": "210", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r17": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483489/210-10-50-1" }, "r18": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r19": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r20": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19,20)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r21": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.19-26)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r22": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.20)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r23": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.21)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r24": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.22(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r25": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.22)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r26": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.24)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r27": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.25)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r28": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.29,30)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r29": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.29-31)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r30": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "210", "SubTopic": "10", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02.3,4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r31": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14" }, "r32": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "14A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14A" }, "r33": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "220", "SubTopic": "10", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-5" }, "r34": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "12", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12" }, "r35": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15" }, "r36": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "25", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25" }, "r37": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-4" }, "r38": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-1" }, "r39": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "230", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-2" }, "r40": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "260", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r41": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-4" }, "r42": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-8" }, "r43": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "275", "SubTopic": "10", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-9" }, "r44": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "330", "SubTopic": "10", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB TOPIC 5.BB)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480581/330-10-S99-2" }, "r45": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482686/350-30-45-1" }, "r46": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482686/350-30-45-2" }, "r47": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r48": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "2", "Subparagraph": "((a)(1),(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r49": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r50": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "350", "SubTopic": "30", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r51": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r52": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "360", "SubTopic": "10", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r53": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "460", "SubTopic": "10", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-4" }, "r54": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "460", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r55": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "10", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-3" }, "r56": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "10", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-8" }, "r57": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "30", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481549/505-30-45-1" }, "r58": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "505", "SubTopic": "30", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481520/505-30-50-4" }, "r59": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "710", "SubTopic": "10", "Section": "25", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483070/710-10-25-11" }, "r60": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r61": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "10", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r62": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "20", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481089/718-20-55-12" }, "r63": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "718", "SubTopic": "20", "Section": "55", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481089/718-20-55-13" }, "r64": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "740", "SubTopic": "10", "Section": "55", "Paragraph": "217", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482663/740-10-55-217" }, "r65": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A" }, "r66": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "815", "SubTopic": "10", "Section": "50", "Paragraph": "4B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B" }, "r67": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "825", "SubTopic": "10", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28" }, "r68": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "835", "SubTopic": "30", "Section": "45", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-1A" }, "r69": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "835", "SubTopic": "30", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-2" }, "r70": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "835", "SubTopic": "30", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482949/835-30-55-8" }, "r71": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "210", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03.15(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r72": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "210", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03.17)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r73": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "470", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480848/942-470-50-3" }, "r74": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "942", "SubTopic": "825", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480981/942-825-50-1" }, "r75": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "944", "SubTopic": "40", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-3" }, "r76": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Name": "Accounting Standards Codification", "Topic": "985", "SubTopic": "20", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481283/985-20-50-1" }, "r77": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "205", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//205/tableOfContent" }, "r78": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r79": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(28))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r80": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(29))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r81": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r82": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r83": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r84": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(31))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r85": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(32))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r86": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r87": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r88": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r89": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-11" }, "r90": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r91": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(20))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r92": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r93": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r94": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.1,2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r95": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.2(a),(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r96": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r97": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r98": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03.9)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r99": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13" }, "r100": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13" }, "r101": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-24" }, "r102": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-25" }, "r103": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r104": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "235", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//235/tableOfContent" }, "r105": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "275", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//275/tableOfContent" }, "r106": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 4.E)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480418/310-10-S99-2" }, "r107": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "350", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//350/tableOfContent" }, "r108": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r109": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r110": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//360/tableOfContent" }, "r111": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-1" }, "r112": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.CC)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480091/360-10-S99-2" }, "r113": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "440", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//440/tableOfContent" }, "r114": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "470", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//470/tableOfContent" }, "r115": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//505/tableOfContent" }, "r116": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-6" }, "r117": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-7" }, "r118": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-1" }, "r119": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "4", "Subparagraph": "(SAB Topic 4.C)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-4" }, "r120": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "710", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "30", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483043/710-10-30-1" }, "r121": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15" }, "r122": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A" }, "r123": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r124": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "805", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "38", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479876/805-20-55-38" }, "r125": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r126": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r127": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(15)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r128": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r129": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r130": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r131": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r132": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r133": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04.10)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r134": { "role": "http://fasb.org/us-gaap/role/ref/legacyRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(cc)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-3" }, "r135": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11B", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B" }, "r136": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(d)", "SubTopic": "10", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-15" }, "r137": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "SubTopic": "10", "Topic": "310", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-6" }, "r138": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-4" }, "r139": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "840", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481440/840-10-50-2" }, "r140": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "840", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "40", "Subparagraph": "(Note 3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481418/840-10-55-40" }, "r141": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "840", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481501/840-20-50-1" }, "r142": { "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef", "Topic": "840", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481501/840-20-50-2" }, "r143": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Subparagraph": "(a)", "SubTopic": "20", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482659/740-20-45-2" }, "r144": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "SubTopic": "210", "Topic": "946", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-20" }, "r145": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "6", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "270", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482989/270-10-45-6" }, "r146": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1" }, "r147": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1" }, "r148": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-1" }, "r149": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "SubTopic": "360", "Topic": "958", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-1" }, "r150": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-11" }, "r151": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "SubTopic": "10", "Topic": "275", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-12" }, "r152": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "SubTopic": "360", "Topic": "958", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-6" }, "r153": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "SubTopic": "360", "Topic": "958", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480321/958-360-50-7" }, "r154": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "740", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9" }, "r155": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h))", "SubTopic": "10", "Topic": "235", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r156": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "323", "Publisher": "FASB", "URI": "https://asc.fasb.org//323/tableOfContent" }, "r157": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Name": "Accounting Standards Codification", "Topic": "606", "Publisher": "FASB", "URI": "https://asc.fasb.org//606/tableOfContent" }, "r158": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6" }, "r159": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "105", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6" }, "r160": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "205", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483499/205-20-50-7" }, "r161": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1" }, "r162": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-5" }, "r163": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483489/210-10-50-1" }, "r164": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r165": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(13))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r166": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r167": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r168": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(16))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r169": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r170": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r171": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(30)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r172": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r173": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r174": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r175": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r176": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r177": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r178": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A" }, "r179": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A" }, "r180": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1A", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1A" }, "r181": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B" }, "r182": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-1B" }, "r183": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-4" }, "r184": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-5" }, "r185": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-6" }, "r186": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r187": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(24))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r188": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r189": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-24" }, "r190": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-8" }, "r191": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-1" }, "r192": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r193": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(e)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r194": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r195": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r196": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(k)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r197": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(k)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r198": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(m)(1)(iii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r199": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(m)(2)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r200": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-04(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-3" }, "r201": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-23" }, "r202": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-24" }, "r203": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-5" }, "r204": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1" }, "r205": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1" }, "r206": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11" }, "r207": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11" }, "r208": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-12" }, "r209": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-3" }, "r210": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-4" }, "r211": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7" }, "r212": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7" }, "r213": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-7" }, "r214": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-8" }, "r215": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-9" }, "r216": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "5", "Subparagraph": "(SAB Topic 11.M.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480530/250-10-S99-5" }, "r217": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//260/tableOfContent" }, "r218": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-10" }, "r219": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-16" }, "r220": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-2" }, "r221": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B" }, "r222": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "60B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-60B" }, "r223": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482689/260-10-45-7" }, "r224": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r225": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r226": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-2" }, "r227": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-3" }, "r228": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-15" }, "r229": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "272", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483014/272-10-45-1" }, "r230": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r231": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r232": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r233": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "22", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-22" }, "r234": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-25" }, "r235": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r236": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r237": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r238": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r239": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r240": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r241": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r242": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "32", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-32" }, "r243": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "40", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-40" }, "r244": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "41", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-41" }, "r245": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "42", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-42" }, "r246": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//310/tableOfContent" }, "r247": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-2" }, "r248": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-9" }, "r249": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-1" }, "r250": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-2" }, "r251": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-4" }, "r252": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "310", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481569/310-20-50-1" }, "r253": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481664/323-10-45-1" }, "r254": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r255": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r256": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r257": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r258": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r259": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r260": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r261": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//326/tableOfContent" }, "r262": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4" }, "r263": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4" }, "r264": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "4", "Subparagraph": "(e)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4" }, "r265": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-5" }, "r266": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479344/326-20-45-1" }, "r267": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13" }, "r268": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13" }, "r269": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13" }, "r270": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13" }, "r271": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "330", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//330/tableOfContent" }, "r272": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "330", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483080/330-10-50-1" }, "r273": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "330", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483080/330-10-50-4" }, "r274": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "340", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "05", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482955/340-10-05-5" }, "r275": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "340", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483032/340-10-45-1" }, "r276": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//350-20/tableOfContent" }, "r277": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-1" }, "r278": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482598/350-20-45-2" }, "r279": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r280": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r281": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2" }, "r282": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r283": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1" }, "r284": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r285": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "350", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-2" }, "r286": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "360", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482099/360-10-50-3" }, "r287": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1" }, "r288": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1" }, "r289": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1" }, "r290": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1" }, "r291": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.P.4(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2" }, "r292": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.P.4(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2" }, "r293": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "420", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 5.P.4(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2" }, "r294": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4" }, "r295": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "440", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4" }, "r296": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4" }, "r297": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9" }, "r298": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r299": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r300": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-4" }, "r301": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r302": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r303": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r304": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r305": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r306": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r307": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r308": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r309": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r310": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r311": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r312": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r313": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(4)(iv))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r314": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1B", "Subparagraph": "(SX 210.13-02(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1B" }, "r315": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r316": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r317": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r318": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r319": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r320": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r321": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r322": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r323": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r324": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1C" }, "r325": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1C" }, "r326": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1C", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1C" }, "r327": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D" }, "r328": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D" }, "r329": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1D", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1D" }, "r330": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E" }, "r331": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E" }, "r332": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E" }, "r333": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1E", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1E" }, "r334": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F" }, "r335": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F" }, "r336": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F" }, "r337": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1F", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1F" }, "r338": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I" }, "r339": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I" }, "r340": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I" }, "r341": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1I", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1I" }, "r342": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r343": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r344": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r345": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r346": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r347": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r348": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r349": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-14" }, "r350": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-14" }, "r351": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-14" }, "r352": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "16", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-16" }, "r353": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18" }, "r354": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18" }, "r355": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "18", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-18" }, "r356": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.3-04)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480008/505-10-S99-1" }, "r357": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-1" }, "r358": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479837/606-10-45-2" }, "r359": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-10" }, "r360": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r361": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r362": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r363": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r364": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-12" }, "r365": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-13" }, "r366": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-15" }, "r367": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-4" }, "r368": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5" }, "r369": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-8" }, "r370": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-9" }, "r371": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r372": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(n)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1" }, "r373": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5" }, "r374": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//718/tableOfContent" }, "r375": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "1D", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-1D" }, "r376": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-2" }, "r377": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480483/718-10-35-3" }, "r378": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r379": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r380": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r381": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r382": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r383": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r384": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r385": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r386": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r387": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r388": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r389": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r390": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(1)(iv)(04)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r391": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r392": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r393": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r394": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r395": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(02)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r396": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)(2)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r397": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r398": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r399": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r400": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r401": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r402": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r403": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r404": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r405": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r406": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r407": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)(2)(v)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r408": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r409": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r410": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(h)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r411": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(l)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r412": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r413": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r414": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "15", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480336/718-10-65-15" }, "r415": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.C.Q3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r416": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.1.Q5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r417": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.2.Q6)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r418": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.D.3.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r419": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 14.F)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479830/718-10-S99-1" }, "r420": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "730", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482916/730-10-50-1" }, "r421": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//740/tableOfContent" }, "r422": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-4" }, "r423": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-6" }, "r424": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-10" }, "r425": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12" }, "r426": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "14", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-14" }, "r427": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15" }, "r428": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "17", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-17" }, "r429": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-21" }, "r430": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8" }, "r431": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "8", "Subparagraph": "(d)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8" }, "r432": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB TOPIC 6.I.5.Q1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r433": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB TOPIC 6.I.7)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r434": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.Fact.1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r435": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.Fact.2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r436": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.Fact.4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r437": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SAB Topic 11.C)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-2" }, "r438": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "270", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482526/740-270-50-1" }, "r439": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "740", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482603/740-30-50-2" }, "r440": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "808", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479402/808-10-50-1" }, "r441": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25" }, "r442": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "25", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481231/810-10-45-25" }, "r443": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(bb)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-3" }, "r444": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "810", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481203/810-10-50-3" }, "r445": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r446": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r447": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r448": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r449": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(h)(1)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r450": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "6", "Subparagraph": "(i)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6" }, "r451": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480237/815-40-50-6" }, "r452": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r453": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r454": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r455": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r456": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-10" }, "r457": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28" }, "r458": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "230", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1" }, "r459": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "17", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-17" }, "r460": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r461": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r462": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r463": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r464": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "20", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481694/830-30-45-20" }, "r465": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481674/830-30-50-1" }, "r466": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "830", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481674/830-30-50-2" }, "r467": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482925/835-30-45-3" }, "r468": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "835", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482900/835-30-50-1" }, "r469": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "5", "Subparagraph": "(d)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5" }, "r470": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//842-20/tableOfContent" }, "r471": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-1" }, "r472": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-1" }, "r473": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-2" }, "r474": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-3" }, "r475": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r476": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r477": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r478": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6" }, "r479": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(a)(3)(iii)(01)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2" }, "r480": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "848", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(a)(3)(iii)(03)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2" }, "r481": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//850/tableOfContent" }, "r482": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r483": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r484": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r485": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-1" }, "r486": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-2" }, "r487": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-3" }, "r488": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-6" }, "r489": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "855", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//855/tableOfContent" }, "r490": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "855", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-2" }, "r491": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "855", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-2" }, "r492": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r493": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "910", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482546/910-10-50-6" }, "r494": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "912", "SubTopic": "330", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482105/912-330-50-1" }, "r495": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "920", "SubTopic": "350", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483256/920-350-50-1" }, "r496": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "920", "SubTopic": "350", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483256/920-350-50-1" }, "r497": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "920", "SubTopic": "350", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483256/920-350-50-4" }, "r498": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "924", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 11.L)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479941/924-10-S99-1" }, "r499": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "926", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483154/926-20-50-5" }, "r500": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "928", "SubTopic": "340", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483147/928-340-50-1" }, "r501": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-15" }, "r502": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "15", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-15" }, "r503": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-20" }, "r504": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "20", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-20" }, "r505": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-28" }, "r506": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-28" }, "r507": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "33", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-33" }, "r508": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "33", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-33" }, "r509": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "35A", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-35A" }, "r510": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "35A", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-35A" }, "r511": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-8" }, "r512": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "932", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482274/932-235-50-8" }, "r513": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-03(10)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1" }, "r514": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r515": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(26))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r516": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-04(27))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483589/942-220-S99-1" }, "r517": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.9-05(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479557/942-235-S99-1" }, "r518": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "942", "SubTopic": "360", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480842/942-360-50-1" }, "r519": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(12))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r520": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(15)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r521": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r522": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r523": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(21))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r524": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r525": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r526": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r527": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(25))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r528": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r529": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r530": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(11))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r531": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r532": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r533": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(22))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r534": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(23))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r535": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-04(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1" }, "r536": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column A))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r537": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column B))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r538": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column C))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r539": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column D))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r540": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column E))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r541": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-17(Column F))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480149/944-235-S99-2" }, "r542": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7A", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-7A" }, "r543": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r544": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r545": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(f)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r546": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r547": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(i)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r548": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(ii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r549": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(iii)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r550": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(g)(2)(iv)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r551": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(h)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r552": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "2", "Subparagraph": "(h)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2" }, "r553": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480424/946-10-50-3" }, "r554": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3" }, "r555": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(i)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3" }, "r556": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-03(i)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3" }, "r557": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-11" }, "r558": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-13" }, "r559": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-2" }, "r560": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-5" }, "r561": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480990/946-20-50-6" }, "r562": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4" }, "r563": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-21" }, "r564": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-4" }, "r565": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r566": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r567": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r568": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r569": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r570": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r571": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r572": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(13)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r573": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(14))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r574": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(15))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r575": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(16)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r576": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(17))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r577": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(19))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r578": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r579": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(2)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r580": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r581": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r582": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(3)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r583": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r584": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r585": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r586": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r587": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(6)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r588": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(8))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r589": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r590": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r591": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r592": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(9)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r593": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2" }, "r594": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.6-05(4))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-2" }, "r595": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "3", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-3" }, "r596": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "7", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483581/946-220-45-7" }, "r597": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r598": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r599": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(c)(2)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r600": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(c)(2)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r601": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r602": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(e))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r603": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(2)(g)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r604": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r605": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r606": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r607": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r608": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r609": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(a)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r610": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r611": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r612": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(3))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r613": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r614": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r615": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(7)(c)(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r616": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-07(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1" }, "r617": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(1)(d))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r618": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r619": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r620": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r621": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2" }, "r622": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2" }, "r623": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2" }, "r624": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "235", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481062/946-235-50-2" }, "r625": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1" }, "r626": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1" }, "r627": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2" }, "r628": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r629": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r630": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6" }, "r631": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2" }, "r632": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2" }, "r633": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "946", "SubTopic": "505", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-6" }, "r634": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "954", "SubTopic": "440", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480327/954-440-50-1" }, "r635": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "976", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482856/976-310-50-1" }, "r636": { "role": "http://www.xbrl.org/2003/role/disclosureRef", "Topic": "978", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482707/978-310-50-1" }, "r637": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "230", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r638": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(e)", "SubTopic": "10", "Topic": "235", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4" }, "r639": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(a)", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H" }, "r640": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1" }, "r641": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1" }, "r642": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1" }, "r643": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(g)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-1" }, "r644": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "16", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-16" }, "r645": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "21", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-21" }, "r646": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "210", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "22", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-22" }, "r647": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4" }, "r648": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4" }, "r649": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4" }, "r650": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "52", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482635/260-10-55-52" }, "r651": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "30", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-30" }, "r652": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "280", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "31", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482810/280-10-50-31" }, "r653": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481933/310-10-55-12A" }, "r654": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "340", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "05", "Paragraph": "5", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482955/340-10-05-5" }, "r655": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482548/350-20-55-24" }, "r656": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r657": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69B", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69B" }, "r658": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69C", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69C" }, "r659": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69E", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69E" }, "r660": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "69F", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481568/470-20-55-69F" }, "r661": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "505", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481112/505-10-50-13" }, "r662": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r663": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "91", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91" }, "r664": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "715", "SubTopic": "80", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480547/715-80-55-8" }, "r665": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "718", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2" }, "r666": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "53", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479589/842-20-55-53" }, "r667": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481372/852-10-55-10" }, "r668": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479401/944-30-55-2" }, "r669": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "29F", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-29F" }, "r670": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1" }, "r671": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Subparagraph": "(a)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6" }, "r672": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480493/946-210-55-1" }, "r673": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "310", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1" }, "r674": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.12-12(Column A)(Footnote 2)(i))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1" }, "r675": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.12-12A(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-2" }, "r676": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-12B(Column A)(Footnote 1)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3" }, "r677": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "320", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "6", "Subparagraph": "(SX 210.12-14(Column A)(Footnote 2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-6" }, "r678": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "10", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-10" }, "r679": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "11", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-11" }, "r680": { "role": "http://www.xbrl.org/2003/role/exampleRef", "Topic": "946", "SubTopic": "830", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-12" }, "r681": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r682": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r683": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r684": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 10-Q", "Number": "240", "Section": "308", "Subsection": "a" }, "r685": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "16", "Subsection": "J", "Paragraph": "a" }, "r686": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1" }, "r687": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i" }, "r688": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r689": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r690": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r691": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r692": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r693": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "ii" }, "r694": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "1", "Subparagraph": "iii" }, "r695": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Section": "6", "Subsection": "F", "Paragraph": "2" }, "r696": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 20-F", "Subsection": "F", "Paragraph": "1", "Subparagraph": "ii", "Section": "6" }, "r697": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a" }, "r698": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1" }, "r699": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r700": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r701": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r702": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r703": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r704": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "2" }, "r705": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "a", "Subparagraph": "3" }, "r706": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form 40-F", "Section": "19", "Paragraph": "b" }, "r707": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a" }, "r708": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1" }, "r709": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "i" }, "r710": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "ii" }, "r711": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iii" }, "r712": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "iv" }, "r713": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "1", "Sentence": "v" }, "r714": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "2" }, "r715": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "a", "Subparagraph": "3" }, "r716": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Form N-CSR", "Section": "18", "Paragraph": "b" }, "r717": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Section": "13", "Subsection": "a-1" }, "r718": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v" }, "r719": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "1" }, "r720": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "ii" }, "r721": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iii" }, "r722": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "iv" }, "r723": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "2", "Subparagraph": "vi" }, "r724": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "3" }, "r725": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "4" }, "r726": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "i" }, "r727": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "ii" }, "r728": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iii" }, "r729": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "5", "Subparagraph": "iv" }, "r730": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6" }, "r731": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "v", "Paragraph": "6", "Subparagraph": "i" }, "r732": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1" }, "r733": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i" }, "r734": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "A" }, "r735": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "B" }, "r736": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "C" }, "r737": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "D" }, "r738": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "i", "Sentence": "E" }, "r739": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "ii" }, "r740": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "1", "Subparagraph": "iii" }, "r741": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "w", "Paragraph": "2" }, "r742": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "1" }, "r743": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2" }, "r744": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "A" }, "r745": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "C" }, "r746": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "D" }, "r747": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "E" }, "r748": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "402", "Subsection": "x", "Paragraph": "2", "Subparagraph": "ii", "Sentence": "F" }, "r749": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a" }, "r750": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "1" }, "r751": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "A" }, "r752": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "B" }, "r753": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "C" }, "r754": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "a", "Paragraph": "2", "Subparagraph": "D" }, "r755": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-K", "Number": "229", "Section": "408", "Subsection": "b", "Paragraph": "1" }, "r756": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Regulation S-T", "Number": "232", "Section": "405" }, "r757": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Securities Act", "Number": "7A", "Section": "B", "Subsection": "2" }, "r758": { "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef", "Topic": "323", "SubTopic": "740", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481543/323-740-50-2" }, "r759": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(2)", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1" }, "r760": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)(3)", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1" }, "r761": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(a)", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11" }, "r762": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "11", "Subparagraph": "(b)", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-11" }, "r763": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-3" }, "r764": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4H", "SubTopic": "40", "Topic": "944", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-4H" }, "r765": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-8" }, "r766": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "SubTopic": "10", "Topic": "250", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-9" }, "r767": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r768": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(10))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r769": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r770": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(6))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r771": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "210", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.5-02(9))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1" }, "r772": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-4" }, "r773": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-5" }, "r774": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482765/220-10-50-6" }, "r775": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(b)(7)(c))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r776": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "220", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "2", "Subparagraph": "(SX 210.5-03(b)(9)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2" }, "r777": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "28", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28" }, "r778": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "230", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-8" }, "r779": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(f))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r780": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r781": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1" }, "r782": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "235", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.12-04(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-3" }, "r783": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "23", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-23" }, "r784": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "24", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-24" }, "r785": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "250", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "5", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483421/250-10-45-5" }, "r786": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "260", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1" }, "r787": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "310", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481990/310-10-45-13" }, "r788": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(a)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r789": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "323", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481687/323-10-50-3" }, "r790": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "326", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "13", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13" }, "r791": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "330", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "35", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482933/330-10-35-2" }, "r792": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "340", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483032/340-10-45-1" }, "r793": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r794": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r795": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r796": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r797": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r798": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(e)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r799": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r800": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(g)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r801": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Subparagraph": "(h)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1" }, "r802": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1A", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-1A" }, "r803": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "350", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482573/350-20-50-2" }, "r804": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "410", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "10", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481931/410-30-50-10" }, "r805": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "Name": "Accounting Standards Codification", "Publisher": "FASB", "URI": "https://asc.fasb.org//450/tableOfContent" }, "r806": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-1" }, "r807": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-4" }, "r808": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9" }, "r809": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "9", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-9" }, "r810": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "450", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 5.Y.Q2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480102/450-20-S99-1" }, "r811": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r812": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r813": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r814": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r815": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r816": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r817": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "460", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "8", "Subparagraph": "(c)(5)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8" }, "r818": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(ii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r819": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1A", "Subparagraph": "(SX 210.13-01(a)(4)(iii))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480097/470-10-S99-1A" }, "r820": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "470", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "1B", "Subparagraph": "(d)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481139/470-20-50-1B" }, "r821": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "606", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "5", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479806/606-10-50-5" }, "r822": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "12", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-12" }, "r823": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "740", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SAB Topic 6.I.Fact.4)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1" }, "r824": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "805", "SubTopic": "50", "Name": "Accounting Standards Codification", "Section": "15", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480123/805-50-15-3" }, "r825": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "815", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "65", "Paragraph": "1", "Subparagraph": "(e)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1" }, "r826": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "825", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "28", "Subparagraph": "(f)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-28" }, "r827": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-4" }, "r828": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "842", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "6", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147478964/842-20-50-6" }, "r829": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-2" }, "r830": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "850", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483326/850-10-50-3" }, "r831": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481404/852-10-50-7" }, "r832": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "852", "SubTopic": "10", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "7", "Subparagraph": "(b)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481404/852-10-50-7" }, "r833": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r834": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r835": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "3", "Subparagraph": "(c)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3" }, "r836": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(1)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4" }, "r837": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(2)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4" }, "r838": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "860", "SubTopic": "20", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "4", "Subparagraph": "(b)(3)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4" }, "r839": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "912", "SubTopic": "730", "Name": "Accounting Standards Codification", "Section": "25", "Paragraph": "1", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147482517/912-730-25-1" }, "r840": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(13)(a)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r841": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(15)(a))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r842": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(16)(a)(2))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r843": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.7-03(a)(5))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1" }, "r844": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "30", "Name": "Accounting Standards Codification", "Section": "50", "Paragraph": "2B", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479432/944-30-50-2B" }, "r845": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "944", "SubTopic": "40", "Name": "Accounting Standards Codification", "Section": "55", "Paragraph": "13H", "Subparagraph": "(c)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H" }, "r846": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "205", "Name": "Accounting Standards Codification", "Section": "45", "Paragraph": "4", "Subparagraph": "(a)", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147480767/946-205-45-4" }, "r847": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(12)(b)(1))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r848": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "210", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "1", "Subparagraph": "(SX 210.6-04(18))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1" }, "r849": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(4)(b))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" }, "r850": { "role": "http://www.xbrl.org/2009/role/commonPracticeRef", "Topic": "946", "SubTopic": "220", "Name": "Accounting Standards Codification", "Section": "S99", "Paragraph": "3", "Subparagraph": "(SX 210.6-09(7))", "Publisher": "FASB", "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-3" } } } ZIP 83 0000950170-24-057486-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0000950170-24-057486-xbrl.zip M4$L#!!0 ( /=)JECG;,/-2]0! ,^N&0 1 9G1C:2TR,#(T,#,S,2YH M=&WLO>EV&\FQ+OK[[J>H(V]O=Z_+I'(>J.X^BZW!YMIJ21;9Q\?WCU:.8KE! M%(T")'(__8TL !1G<2B !: \B"100PX17WP1&1GYT_\^.1H47^*H+JOASW\A MV_@O11SZ*I3#SS__97?_Y=[>7_[W+__QT_]"J'CU9N]=\2Y^+7;]N/P27Y6U M'U3U9!2+'_9_^['8&P[*82S^[Z\?WQ:O*C\YBL-Q@8K#\?AXY_GSKU^_;H=4 M#NMJ,!G#N^IM7QT]+Q":/?SE*-K\>?'*CF.Q0S'E" N$S0%1.U3O<+&M%2'_ M+\8[&)^[K3H^'96?#\?%#_['(M\%[QX.XV!P6KPIAW;H2SLH]NCF$X8$B&]<_/SK7\*]NN1I^?$V/,\Y-\S;/I M13LG;C0(Y=FU^<_F2HJQ?#[]\L*EXVLO%=-+Q^7)3<\EN1EYQO.$SR\?5L-W,/&CTE]_ M6QB/GH]/C^-SN! -IU>>M:HNKVL3]( \_[^_O=WWA_'(HLM=#_'2Z-?1;W^N MOCR'+^!>RN873FKTV=KCLXN3K5WS@MD7%RXNZXI3HFZ;@ND5\QNB#]>1Q%FB)'Y MG6GL+XXO? #*:$>-(F;-P>S;U>7)&$$7+MPP[]*W:7\^'MEAG:K14=/2+!6@ MLOK<6Z'[J)ZX&\Q%\(1G__Z?GT]_SI41S;!N)0_/>D_/+SLY?5 M$"9QC Y@%IX5?OK7S\_&,+?/&^!XGI_Z?/;8GUP53HMZ?#J(/S\[LJ//Y7"G ML)-Q];_*H^-J!)(^?G%L0T;CG4(?G[QXUKPUE%_F-X6R/A[8TZQY$;[]J3S9 MR<^.H^FO90AQV/SZ336+$F3US28H/.?<'0\**I18((@+D)" M)A&/J DZ1>*MCO39+QAT6E--)/GI^86F7=_2&%GP@1JD$TPS]\0A@R-%'BMJ M1(#IEQ=:N@NF)V3S\V9@/S^LAW@G]&.7@]#MGD/:R="A(*ZW:FEE@F9 K3/>LL09X8C M*SFTV7+O-(RAC_A\2^=&?-K4#_"D*KR!S^J'-?7O-[7RS$P9KS0V M1J6%,QC@@BC$$X_(*9I0B,828ICGTCPK)L-R>L/OGW[??P6049<[PW( BCR: M1-#AZYONDR2>6(<.5- M!+"\+#COCQN",/S\-@*W>UM:5PXR0$_Q97\,F)*EZGTZX\$?JKK,W7Y]QC/> MEO7X00KRRVTLZD_OQX=Q-&\1"/*L37<;BDBQ51PC+12HOS(,QEN"^C.3% 7 MCY(N:RCNI'#M#,7SB]9Z%%.$ZWRL?_DI\_&=NJ&_T*ZBX><[F>7]_*P&FC#( M7+CY['"4FYVE',WYW/9)';+./[_TS.;/NIJ,FK\:?V-GUO=F'EY^T@P3+ !\ M ;P $:+W2!,&9DXE>+0#P]4QE'1-#M>2R-?[OWW129P M^>;YX^KX.<_>],\ +SLY'I2^'/\6CQR\(I1'>0K!?3V3!P GD(CQZ89EZV>U+6SWZ97[Q?I?%7.XJO P&57/9],D_/;_VA;_,6WK6 MKN?7#<)Q8R_/AJ1Q6\:_9)F8F^R+W\S_GM_W_,*DW#!'47D2O$',"0P4#F!# M1_B-&1V4)DXSK[LV1T##=SY:,''36CD&?P:O? M&\+8?L[JO5O7<5S_>OJ;_5CFP=7U1"F:S'\-!](?#:E!]/IU&"!8J"WSJ MH[4A"P)[1RCH:S(2Z'P4$ADC)6+4@P47V/K867T]0^BLJ(#;%3@_PX8179BC M3)6JX?ZX\G^T/RLP\J-Q)N*S>2'PO[/GG'UW-G[AW*7GIW#^S4.F$-PND318 M7F& -'*C80I](B@'OHP/1F'ONSJ%]X+G#] M(PM"=FY6,C/(0=\P&<3W:3HEO\7Q8056_4NLQ]\FZORG,;X#UV Z88V_MSLX M/K3[\/E@P3:# 35&5-]%WRY=^AA]DYA8'!R0V]$0?+R5860!##@15*+(+$7<6;#DS JDK#(.V)I5":_X MU.R&T+C1X%#;$C3PI3TNQW8!FK88_\DF#-:*>H0I8: \$HR5!#5B00TQ$&((9\:"%YP(.,4I,N1 *@FH*GCG@INLM(#JM1LPSP*KKQ=?,R'L?1^_1R%$/Y M/>?USB_]& >@$>$#Z-#I05[:GJXIU;^>GO_FG)I_&/A?[<@/[&G]JQVNC!,B ME1/::(PD!O^9&^&0,Q9>H(+F4@7N=.BJ8*R M7T:3!81"^J\ (=#Y:5DQI'& M1B))F 7'4B8J.CNIWR&YC:X=C "+)Z/3QMTGJX+!CMJHDP]()&(1CX0CJ\%P M>L)8DI(Y%GG79N6ZA0%0HGYAX)&RP*B*@*T6:8Y!%A(&6K.G;!*UCGXR:=>[7)WXP"3&\&55'&5@GX\9@@G,SB^)\B*/]0SN*OYY>_X#+,2 P MIJ4',K2^RS\R<2Y%3(A2DS,?L,ZF%+Q7+ (/R@BN3=>$H"7'=;^:C _?VC_B M^V%\._ +GMXF6_1NT]MG'*J:]-[ M+_J['P<#T&R Z=_LZ(^8\W'6F?ER,*H^<(]P\(#4'HRKT8FCY'$,,0;%1+_@ M?E?FV]Y*%Y'* \U%E"6?LT<))PW8.P<1<8+AA(7! R=40YWEKSTL-HA6 6BQA'#;6@O M]2$)CB7RQB1PE1U'1E)09JF3]0SGQ/VNRF3W8+5%#N:"=5%:FJ<#/!U+ ](, MYVPY$23)<4G2V8GIP>*IP:(#KAW& KQQD@E;WO.3$ZH-@7^(2DQ&QI*F?>;. MZDRG3UB'G.X82,@9(9HB&PU',7FG\IZ\U+W 6E>GK< M*E)+P>E7]O3+0H+2%W6)(FS:F*D4E,7$8\2 ' /[ E=-8RX14S%QPRAE(G9M MINZK2]Y/CB8-/6GV5^;K1O$P/^U+G,:JU]*0.6D9<8$@[W*\(DJ*'*8:B< ] MDY1)E3JW3)B5<+99_/UH/XZ^E/[R!LSIAVLY8Y(EJD5@2&%&\\8AH!Z.!^0D MIU(+[.S*IN M5[Q.EJ+V+M"(7.9$7%F&'#B+X# RYY)45NC.1D8[M@S8HH931H6B-*&H<]*3 M# (!*4I(184)_!<;)[HV*].M\#D+;5*/@<*,S@/MQ2]69>5+4AQ4=AA(L#H7 M1PK(&N>0#A&S8$,N\=.U:;A7SL/+JAZ_3_MV$!;#-*B"4)&DC0RD7/N(V>G#- >N88UPYHY--G2T; ML#(.W]/L90/KI1SSN:95-'DO&P::83124EL:+$"K[&SF0*>+\+2YS9=IF4@R M*$6:G0D-5$,FBC!//"4GE;>=7>WJ8-6.%H$Q<<5== K%%!WB)'AD(S#!)(6* MB;ID0N>TIROADJ?!NZ 3#CSOP+8B5_H$>^;RK@6F')#%*)*/J\T7GRQ']HGL M%V.$81Z0M!CX/Y4.&6$-,N =TZ@-U:IS&G@V51-7EZ&TH]-,[X'D9__W_&;K M\1$HZN>1_=[^I-6<.J*"LBPFY)+,%4$50UKP7!N!1T=!*T7WLFNF\U+7L:[S M'=],V*4OUM-5(S%R*PSRQH.UHQ[< $8CB[YSF<^W3]A+=_SMN_7T MK[T1PC(F$)51YTT$#!FM+?(J4J)AJ!6U79NT!V_4?.P4T5Q;GLB[3-&E2Q\S M1509#^B7"WS#/YR* #X8O, X$1A+@6/?V62@^X5 JFI0O\I;[X"=5(.P,E%& MXKS 5@E07PI>GAUJ65/$" =J"RWDJO. MQ7M;2O-Y$T?#K_'P]?"S_1S#M*1XU40:[?#T^_D_=Y:?^ZRB7G?/6@("I4H! M2U4Y2PD@W!*/-&44)<\=,%E&N>[<>MUFEY401DOCM4415:%""XBTQX+H+6F3Z[H')SD5A'GPDPVHZ])))#:Z\0;YQ/G 7YY:CABHF0X:V]2]5/;N M.A\M4@H:06<".!]>$P(3@STR-G&8]D03)TY*V[E@V(K4]VQQEO+.6M!'"O8I MARQ=,D GHD1"^:"T\HKASL;#UK!6U=/X:YX)(:E-8-?R(6&&)V0SL=3,1QJ5 MY,EU;B="GT&]/"17@!')P^.:M$%J!'(X)42UM-$R3R7O7$1V%5+2%N-[>$.Y MS-,3+#=@=[T$0D0)LN#"$V*2BAVNV-RM32HM[HGUA,IHHD9I-?'*88.PE!1Q MCA6R"EM$#'9YX)/4G9W"I;@?KX^.!]5IC(T(O&_..5Y+M+W;X;R+%80G6Z<% M7UO@U!2,)A'Q8"72.::OD[:46A8#7]5P\;(I6YNA$1\X5SX! 0@><1FS>0$O M"&/N?(PZ>K'R;L^3U UZ&E.3CXUB)#J$;:[8'',87Q.'8)HQL5Y$8SK'P!<7 MY%A-*R&#-@Y8 B)*Z+R!42+G8D0>,ZL9D 6+.YM8L"*1B!9]7J*,T=@&E/*> M4XYAHHP)#%F:L N48:P[MWJV8K/5YJFRN<*F!Q\JV%PFCPB/P,=-R- 0F:=* M)=ZYA;0G2UY^&OC3WEN99\=KF3<%F(!LB!8Y80 98R1B\23YP0KUA!MP+@1: MP=DDO)7P0PPF*9Q+-^7#LK@02'NB\@&&(2HI,$Q5MUP6GLOU4ME&YY,#R6/2 M(L9H/A=0 EIPZU&*FF@3I>"L<]&Q%3B7#.W!4= !W,PKB5>?FL;T$VGNQ@/CO29:9+W%X35WL M2Q1J@0P<(1]SLK51))^I:Y",AL5H.'>D<[*R8GY1 MF\%9DQ*3/"(;BF)1&21 1;>!*\\X5?V^)>AS8\G!BW\6OKX=Q]'D!JUF+*=>O M1? :!X)2TGF!*B1D0E)YYT-,@C,OY6:GTR\_G^6):F49HUQ(%@FI\VHS_*,) MS>;&N BJW 3.&$(L\''PH-ZBDH12' A##F;$P+SP%8 M#?EE'!LE07X]SV0A O6STE@4)-@>#C;)NG4U/4OS>ENS.C$J+9S!" 92@=7) MR>6*)A2BL808YKE<^)%83^9\&NY]:+88JHRO:EJ0D**\"$5-3O:Q?5Y/U]$& M@YA:D@_FTP%E_Q)I["P OR=,Y8.5NWM$7\32@@G$,8Y?3<8H#O4 M@N46)+$HF!-ZX;F2]T.@-D]3BS%J%S@(KO6Y2H!"UFJ,˒F()\(JN2>\R M,V<6E)Y+: *Q,BB2"$-OLIML A!NYI*+)H78O<.8GFC4+QT=_JB]H$9B'%Q" M,E=:X!%\6Y>=&^8=(=I';[J+U)U9KUZ,LM:S@0J(:*A&L2 M;$B=3,EYT-K'.C@#'0CS)T--" FCH&2N^\4(RH=*(LN4IU)K1]7"PQ3W=IM: MVS_(K'2:<_"3&'0^>8$,>+I(48*-3%R&[L5HGJRZS]/()[&4JV I2C(X,/(@ MJ09[G,L)6NNU\X1W-H6\P^5Z6[0ZG(AD@_)Y;U0^[%GD U-@KJA4T42B2?*= MLSH=RTE^%"F>#,OI5/S^Z94]K<^&^JC95Q95UQ2M0.?'?_IU6#@9VN9)P] M-Y1?0,S.7_YN;(# MSZHF(Q_KZ9^'T89&B.&&7_ZC*'Z"GT4]/AV /A[;$( #HW%UO(.W13E\ 6]! MAS$OH\('"CYPU0FJR_^!JW9<-8(G(?CD!8SA\?PA"20V7Q)W"#X>OSBRH\_P MD.:1+YKODCTJ!Z<[!Z"A=?$N?BT^5D=V.+_05>-Q=0379K%'=E!^'NX,8AKG M=]3'=CA_S=?#_SBTKMO?1V\ZVL9QH<[J1RC1LV&^27_ M]2__;:WO[_W_MU\S%IL_D,GL6GQ/W;W_[;W[J\'[]]M%:^V M7VX7% MNSLWL N:4T Y/ZIOW'W\KKINE>SP;>@(@,JR&#;:5OD'4-Y^"#IAZ MF9 . GB! \ZA73YK4C'LDO/ &>BS8F;,/L;4+,]%Q^%CC0(3))^OG9!)Q"/P M472*Q%L=X9ZAS4PA1#!KE9]D@YOI5#<&E&#T]S-YNC LOUP2L[%U@SAO[4QD M,JKMV,FX>C%#TMSB#*R ??ER-+"GU60,[SR)X<7T_03C;?SG^0T^6['C.@(5 M.;9@:.)<&D=--YMG/\OOAP:,YF__4M:E:Q87=N;WSRZ"J\(9O#:OX]M:DS^_ M>/;\AN_)-J>W?&W8MC3F[(*?GH]'EULS,RZ-WGR%7B$WBO:/G>9?E#^X?C:O M-O@+D._2V\%,\4!Q7\S-V6AFOS ! W:-65FDZ;H> ,Z]*'?\!J7"EE,?08MD MM/D 5^F1XSP@%@SFF@C!O6E+J?X^ 0\OC@:G'^-Q-1H_*U(U.K+CGY^5T!4@ MYZ SU<#9P: :@\%O0?UNMK]&+ 4WS#I=-F&Y!POI5&\O<9?K M^MNF4/S]]]V/!Z\_OOUG\?'UA_A8$_1:;0C%(<+ M'+S?O?]X7SW::#_M_+/_\@]HM&B IW>3%^2 X#IJ!/7,IGZ,,OY&$$:$IWW^\?+GW# 'C<^>8M+6>=%X^)-.8@%H%5>2OY. MQ/Q[;[O)+!!M&O=S^SD1W0":;!'N2]W$$NIG-V']$PJ^;#K*=V8&)C9,*BZ,"1 MYU@EI*7E2((S+Q@/TK1EUP_LR=XLZW&ZQZPU#G?3O&IHG":2JCLPL[L$BU8 MK57>8G!L)08.'!7AL5:ZH5OQK,BKK4#9'SF6&4)['SN:RT6<[+/^G^?O' M'J&>!J&Z*TY[VQ^W][>+64&.47$16HIWU?:U0K/:VMT%@V%%E)+'A(A/N=!Z M+@\CDD3>4TD3-5$JT8[!V UA%.MZ]N-M.8QD@<;"8(J+=\7L#)$,20?Q!)R5 MOWT]79J[UZC;#>W;^D[S_Z #XH\*\G=5$;L.W$!$ZYEM)*F)YVKB/M?.00=!38 M#4_""^!E41APY'4.T .D@S&?#P"LU$> UV.)]$WE1/A8W#"8MV[[*N'G8L6H!\ +(J, M%K>ZYO=,9V@Y&>0[*V*\K5V8"^A=B[EV9Y+TD+Y>2X ?S]<>M SY?2[^@+7P M7-?-&Y:3N7.(.3J,7"XE9 TA!C-+F'UTJD-VFW;!/K5D7!\_E(JII=+SA[3Q MQSOX7@^8;RF3EMSFT\+RV8)4:.2"9(AB(%>: KERZK'SG0OO#3X<5L-%I+8\ M>,ZU0LI@^22)+5V!LV_Y*'^IBW$WBH&MQ\6HR21?68]L+*:V%;UM4S_E MV]R(6R[(3]#L23*R9H.4Q8\HVC4LXNWXZ=F=WS#]N9NOJ M-'F*T?K#PN>S6+[GN+I4DD8C8S?XK%SJ8*CW* 47&-,"B (Q1<[F#PVC[5-6%Y=":&4FZ0\14IHBCAW M^5AM2I#G/$:'DR+QT5&-&;A/L;T]\7AS\')OT3*P46A!J A!"YI3:33B6((L M1$X0\X':Q)TPP;:%%J]G%J;9W7,EXR#;GX6?K8/\]193B-SOZ M(XZ+MV]?/F!=\=KUB68BRF%.0MQAVXR!N["0)8M_Y427='K/@,_E;4]7]WH_ M+.3SQ+U>B@.]-PPYJ306[K3PAQ&D!YKZ!W"CV.0Q9V?YW.ZF'\B/Q:&MBU0. MP,VV@\$LW)"][W]/RNQ[@\OMXNP">.:9^\URUO-T3_#,"3_GN\^5)COF^>N\ M)[@(\"TPYWPI=-C'AD<36C3U7NKB!W@>J%=13X#%U8=5WF(UWR [/K3CRVW_ M:B^V,C=Q>O.L#S]N-:&6'^BTCPZ4%+YW_X(>Y.N;2^&FW(K9<_(>_KII1-/( M''XQN CVM-YN-.KA0;1KY_0^_1*!771!:(C8D(+E.TX,E(P M9/,QX,*Z2(EK)PGDY60T@IY,RS)D$S^VXP>7U'G42/XS+B)O['&3^_2R+<@3 MRO:[JK<8=[48&4D!1(_*\1A@-PX 3$?5,!/.P6D1@7R>%GN9V5G?I->\LF,[ MW\;YX.['"5S)L<@VXV/\/!E,MT?LHX/BAVS;U0O*Z/;L@O%AV>S% M/M-7V_Z[F7ZP-K88@!]B87U'DQ? M7O\+C34895?CVD\+D')T[1?U$=A,>,MHSDE!VX]@!$ZWLF<%CP-W)(_;Y^+S MJ/HZ/IQ_O0V.5FS:%F(JATTAH2:]];_^I"F1+V8_;FIH\[5Z,?MQZ:9[7GYS M%R[=EOVPB[?>T+E+]Y7#*24@U"$Z]S//.Y?M&^&')C*LZ'HS,;?5]KBM]OQM MB]2WWB@?>N-M3;VU.00O8#G\3@L^YU&4J&T&KWA@UOAYD9H]Z?S#\>7M0@LJ M__F(N.;;ZQ'I 2'PSB3>/R9/YM%L89D#MM"2LA?GY:;=ADX(&D1$6F*#N(L& M:<\LHH1A["B/TCXZYO^M8-OH)0CHYVIT>DW(O[FH$5T_NZC-Z/_NC?KQZ)6C M#5:;>^QM6:,!NSDY]!I.NH'CLWHXW%&!VK_)$5AS6W6[ -U4PTK30(B3R/A\ MS"KE'EGM.%*>2:D$IBSB=BQ9,RV_3NIR&.OZXDD+C;!7-&,]399 M+6VPO,XE:=L/V81Q[(>@'X)^"/HAZ(>@'X)^"/HA:#_G_QS5 I:[D(!GJ3(R48D<:5;DJ5RP9MK<[S*=%UF%./1^6@H'*KR&?4WZ58_6WO>D1T M8H8?;YJ=%&"59V4K? @,$X=<\ &RDFD.0XH>D$H%"J+X\ 57Y^MO?NS47(&4Z.4*C&:';)LU\(%5M&F2TBQ5S]YQU]0OV? M]F1N"D;GZQKZ:<&-NMD>_S6.8E%]&X[MFW1F22DBBSH?]UJJ'\HO9]T;Q!,4 MRM&4-^;4[\G1\$4HZ^.!/=W)WYXY>_.N;(MR^KY9/'SZP8Q3S%_=W(J +]P MU4GN0\Y@/ZLIM\ MVOO+]^\.7K\[V%^/W3"W;4VY[1!Z9@]!@\".3$/BS&X8UE_^Z84QI M)WS$.PWJ[L>#8J] Q9N]=[OO7N[MOBW IWG_\;?=@[WW[^X[W.2QV_SN/L2/ M$-O+UG])RT9W[QOI^W:?OMGB<)0=]#^!(_[5CL*G057] >3G4W-FW=&M%1E2 MNL7Z@Q,_.X9X9S($DC0HA_&VLN3YY6CV\N+LY=\*,]C[0O:U%'7!H_I0'+]I M7$@/(NNB:"U)Q![H14&V.]W5,TR!?AU]NN6TX18!Y&PA<_\,.HH??A_:28#G MAQ\W&T9H#R/K"",+Z-OYY1O*FUJWW^GN^2#*[(Z;$H 7BC70TZ9Z<-XX_,G9 M P#TLLK]S3D5+\\UI/AUVI!BOVG(75#H^S-P)V!ZHFE9 M?>1:K :L'MJM'"+TXW$7A/SF87VJTJ?J.$Z1[BFQ\AQSJU*1DU)&\1"NR_4Z MWU9UCY[W1D]V7_2\9YB_1\^U0XN5'H\%R,==T/.V#+EEHV:3A5OGK,4F)^>P M&L!SZWG=PM?_GI3CTQY([PNDO*>A:PT).; MU*/F?5%3]*C9HT0_'JV@YK :Q_K3N/IT 3[/]F\!D!XM)]#Y+CW@I2R^++#;2+-_2;BS?7MO/BVNW]--1L,M E=_LT'YN MP&+FJM;%J[+VD[K.FUIRF?[=H1VN;0<8E_+'-@*\,T(-2\NB$*'\Y>OKSV_ M+>VWNN>FW[WIL;'D1?'^X&^O/Z[(OM_56[#M3-\V:\O>IT'\; =3^A6;FG3+ MX%]O\TNGQ&OZTFXSKX5G;ZL>2GHHN09*=E<*2^RG45G_\2E9/ZY&2\&1'+XM MWDS?UT-(#R$]A'0T ^5N"$(_38;3*IMQE%.&[2#6GV*SD^%3'?UD5"ZE1LGO MYQI1[.=&Y#R3Z8Z*7!0]MZ.,T^#1[W7,7\ZHS*:#D.Y!J >ASBYFWPV$V*<0 MD\W999\FQ]40@&=85J,Y_I3+"5"_FC6A^!V: )B3FW .>C8<9DP/,SW,=';Q MZVXPPS]!7R)PG!2!W81O"2I+2<*%+X'9Y%>?SXWI8:6'E1Y6+L.*6"58$9^J M?/3-IW(X/6\!\& 9@/*^.6]G[]M+>RA91RCIP#KMBB;FR&Z R!T2<^2G>')8 MNG(YFPQ?S][5;;Q8:.H-Q\L#B[.U>_: M?M+ _C]HQON(7HU?&K'F81^HE(: MPY_#[Q],7.O2=^O.L6M/,7W*G)]+[[[U=7KQX$;1A7H\P/\JG+?C(:P3=%3H6HYR^:'C$[OK:U1_:TW?E^G:Y]'9IOWFN.G9&[^])A]R[0>3W*2MPAY5 MN65YI."+0?GO21G*\>G6_&#LYD6C"B;13D_%FK=AOJ8Z2R!I?A_#. ;X-:7< MG%F/SQIO1[>/VIA!&O,RJ4:9R.CEU=13AFQH:XDZ;0Q\GT_7=3*YA MK"8>FE\W&:$4OW!Q4,8O<:OYD[R8?PQ/OO)1-1F$RQ\>5UF 85JN?#&X^@10 MF%#Z\>6//U=V4%_^L([QCRN?'5[7!!"[:SXJ#NW57GV][OX(:G\$0WJUO_F M\7W-'F;7YZO-/CN.Y3N<)&8+L-WLZIZ=RPO0T<[,U4\VZ!.RP MHP+N!(6H&QT B879#&=5)AJ1GLO]UDSHX:*F#8T\WWB YV;@Z6U*=3.&966L MAO#W3%:;@2S^$1MQ*IS-!82F,W;+TV'N/D=X!L!WUO0YD$X%X1RF 8#\:TK0 MX>]F1^\,E$ A\W,NXMX,10"WQ\57:,M4<1O4G2++!5C9.G>GOU!VY%J,O15F MRN&7:@"O^F-8?9T^8S*<_IYSY>!5DZ$'QQ+,0U[7W9IB;R/)Y5$>53NS(AD/ MF^;G-GO;P!(T&;Z90"MG[0)9CJ,F!)LKT5?YZ\/ MWE8Q3ZHLGLWU>VD9C"WHY4W)CLM'B&=3\+T&!*8"?%3!#/GS9;WA L"-Z42< MS4/Q['R7GLTGN;'$6;AWA\,LW%<)W7\W+"1/^6G,6#_,-[V*/AXYF&Y&FK.Z MV7;Q:YQJRBUXDV6I'!XV @^-K"<-[\E:T>CG3&,OJ&A#$C(G."R!#H"US[(( M.C2#O:GD3VLB9%ZQ59Q6DV)J?QNQ'D&9T_+H=3(1K.SC(?Q"_9MLP$OI&E.E[6C*G1SFE0Q;D%Q<)^L?#B M?+XNZ,FD$=39&>FY,N!WP '&$6X\9X4;5GW^\?DW>"@TTM;5L'D/-*1L'+7I MU=^:N77U]IDO-;<.C=7+8#2(0#NGHS&Y,&CG=-/EH;'9I&13">[<.)ZQAH;& M9#XP::0:Y"2>'-HL.E\RAH";,\HHEZT1O',4OY0P]U6"5PZRYS4C^S :WX;O M;!K.M?^&J3@'4F=X-.T-4(Q83QVF#+MVDI\2I_W)\P,-'IQ.4:>9R?&EQV^T M]OWS&S9/)_Y::ONU!#+1N(/9H&>$;;SO1C+.T;!+GOA,$&_F5E]GDC5EM]-@ MPVWV8#P>E4" SFD>"!J0L;IAP3/_>#A3_D,[2(U$S!@9O+ZIRS/W=:$[9;:= MXW*4TX"F%*T^$R [.KU.1I8_0\4FB^?!]SA"?1SM'U.WZXXHO%V\/O'Q>)RO M'^7D^M&4H-MCX.J^D:V!_;J5Y3)4#8AD!SG+V_'$P14-C$S?,$6Y.DZ=A%MB M+=\-@,'K#F/C]M@I\F<-REW(3Q[",)T#R*U+KEXF*OG6K]"2RUBVJ:@+\I3R)X<7T?03C;?SG M^0W0S8$]KN-.'8]M7BZ9CU63A#1]]K/+26I ",OINM[._/YKTE6GKY-F6X.] MFO*!:[XGVUS?]O5MWX%Y?.BM2WCK]\[F<];_\7E4@;^)9L*6FO^TFB0\RZ \ M(U1SU@O.00-9Q5S"K^=9^FGS;:]HV(UJTW@=U:0&M[W> G^X<7_J0SN:+3@? MYX7#_&?VG.R/]\S4_?XH3J<.LR<8QS83LL^21^E-R:-W%JAK6KT:O.3F8PU& M_G"^]'#M(7+M2% G!NXIJK&M1V][%;I9A:XLX/5:]-@B?]%ZZU#&P89F]C=7K WH+LM^X.W'[V=3TF^MMW?-PSG5RD6=1CW M(LLZ-.?%-VFW^9><2//%#N+P^S;S@>.U@H;TFD<.JVYU]Z( W-3/_VQQ3KL! M-H\0_)_*$YC&X9N1;3*IFD7N-Y^PHI9*$Y"4E"#.)4=&!H^2"V+>J[ MI8W<<%NQTE+=8]8ZSV[KF&6H)M19A1(C"7',/=(I1N0I#T)@*:C&;1#>%C&K MR5M&_Q-'59YF30E]L>& U8=^ET-N=[V'06RVV_L(3IL;Q*UB&,<]RUUK]>HM MQH40"4V$!D50TL&#Q0""JT.RB%"68@J8$4G;8+ES9?MXIFOOXKA=LBOE%E-F MPXW'2DMWCUWK/+NM8Y>V1CNL*?*<2L0)",)?XZ:E1O+\[;"V^DI@E') 6U>3DP(A.( 7N1 MC U22B#";7#=N7Z=@IEHR3ZP+79;AZKD,2$Z&@2D-"$N MDT9:1HRP$!'CX*VGL@UJNQ"H,KC/3^A#N,M@LA]&\=B6X5R];7^OC2\]O;VI MNP^M)M(Q17S@9-]KW_XZV1T;A(V-^? Q@MVA&AF6')+1<>HD-4J1-BCR3'%? MGQSGFE6[P] 7C!F/52E&XK00V4/E.?.:@WI; M9(Q@B%O%D4X @%$9/4TP)JTD%R\7*G4/E1T+5#=/;('?-\]9-8)_4(WS\3T] MJ=\4C[5B8$(KP,R.( %H.K@#0U#!FG23+*,*S;R<]8A#W!>(O235_5 M7&EY[M%JG6>W=;2*BC)M34 Q8(VXIA@9+B1B&"",V*A]\JUD9"P$K?26P'K# MT6KAD>MNL[-':,3[Z5&2P\_%(-HZ%HW&H2JA?'9=SUPW0'=Z6W!A_QPSR1*& MD8AY_QSG%%F! =PQD<(X*J1OI93$F=Z]S6KW,??M??J]CHV-:&T?G61JPRW# M2DMWCUWK/+NM8Y>*-!B!)8J48,1Q2$@'!JZW2BEI#E!DKF#70WCLL.TVL\ MN^UO>XA<4,LY\DXZQ*T'U") :RW@$['&4.-;"QZZ\NO2VX4-_7&)>B98A'R1$G*2''K -<)U* 4: QM9+? M^TW5IDMU8 )>G_C!))_-_->J"E_+P:"M_29FTZ,;*RWB/8"M\^RV#F NF"1- M)"@2GC,,G$:.YWHUEB4KJ+9>N78VQBT-P 2G&PY@?7CVH4HR%\6>Q*ZU@O0V MX$(L%BMME*%()F^!Q'K *<8PHX);9C% 5_9'/T0$MLRSJLM2C8]>+'2@MS# MU#K/;OOER2A)00>)3':S.06OVTH9H*ZU@K3(_]YY&]1:Y]EM?VU(!)6V#U8J3V 9?72QJ4;[IF-5'4Q^\A:LI(=;OU>KKX3Q\LC>V M'HZ(+GHJ'$K"@_D(%B/G(T/4P.]:JICDE;.''K3?ZUOYFW?5T+>Z!YAN";[ M'(4?+"3[,6-.8,89*<3\P)AEL)!2\6&P&K M>VQ\^MCQA>)@+17_)5VN_MN\[>MT"%TU"-^I%M;S]S8UD6[3K(JAFN2\Z2>T M4A<%Y::Q^,^%F:OK!V)-#18UF"9M2*XS!L9')(QLP!XL$/;>'9G9P&U.T%BD7">+,)J1C$,AK[*R( M%EC^E:*,#R]SUA8Z4K:%58^.3Q!"OU;DKA+[SK#/-CGYV[W=7_?>[AWLO=XO M=M^]*O8/WK_\[[^]?_OJ]"G1F8-@T/#'+^YN=G !6W M]K,;(+H F]MW=RV[VPOV!G2WY2C7)EO(61G;8E!:5P[*\1V.9>W,./2XT>-& MW]U>L/N9[@\O7TZ.UJ[W,(CCNCBVI]8-8K_.LT+)C,N/4G8#8]H_:($9:XGR MB'%%$2=1(Z=X0#82;W3DNHDFMK ^,].V#U-E:_G$!;J%15^\987ENH>O'KX> M E_$1.&$]T@:P1''SB/M'$'*4FR3,,&WDP^U4/A26T9M.GKU!YTOC?6.)C$4 M<7H*:)_=M-YJU5N+"V37"J.M,H@(FT^28199JC02*48CB%4*LY;(;E:RM]_B ML.T:#&JVI-GTW6DK+=H]<*WS[+9?>5L9EP(!N$I,(_#4-3+.$$2]2XY+8H.] MV?11W&=3V54P1!#<4H_@E M#B<]K5UOM>KMQ(7Z,,9+;FE$W#NP$TIS9"4+B"K*$_P?2W.EO-A#:.U+>$)^ M\S_*\>'+20V]C:-Y9.2T7X*"WD/8>L\N^V7<3&<.FX9P@(8*\>$ M(N>D1)%08K3T2A[ 7Y^[2\8L_?^R#0"O&/UJT+-YX'01V2V.J2GK$PPR+XEF";'O-9:9GN$6N=9[?]\W*)"=XSB7"(&'%)#5!A#'PX&&:D M")X1VP8?7B1B2;G VN,K(=/]L3X/CCL?QY$=E\//Q2#:.IXQU].M8AC'197. M..UQ-OPH%CR M7 O?9B4\6\YL_9P*P_B&6XJ5EN\>O=9Y=MO/*@LR2!\X8LDZQ)T$GIIR/6[G M4C A.<)=*['>):$7V2)TT_&K/WW]<1D6(#FHC]+VZXC].N+C;(N44D7'%1(Y MP8(GY9!U3"'J2!(J64ZO5BEJ(\NB=:/"MSB6_5+B>E.K'B![@%PR0"J=Y%CU[[XU3;YP> M>D@;MH1IHE%>WD0<)X:,I00ISO.>]&BE:.4\^G-VJ:WE3K.EU0(3--;&'/5\ MO8?$'A+O 8D^)97A+22&$="+:ZY420EB!1XBUA^KTB2X^= M7RMT'3R7Z^*PH3IZ5)Z@PS( X=]Y\RDYRKT- @DK ^)$)62I3D@X9:*6(/[1 M7A[[*P_Q21)/K$..RYC/Q.;(!0;>;MYS%4 IL",MJO#+ZNBH'!_%?-:)'89& M+7^ MN/)_'%8#('#U?_U)4Z)>%/'?DW)\VIO!C5&?#4.+3>QN+]@;T-V^%.5RC.:' MT;P699W-9W%L1\47.YC$O!WB[ 2SA4:C4I1:>F602@F<\N0#LL%1))G'EFB5 M%$UM!.C/NMH0A0]V]'ZT/[;C&/Y/[N^'.-H_M*-X.5!5#09V_LVW0-7>NS?? MB51=WU=G1.1,$61$2HAKRI!1)B''@_$X!DDH;2/RMMR^XFT0!7)-5.Z&,%U+ MXC1%C^,( )';O%4L15PEEL(Y)5&TS11:@UP0%CEGO+;2&RFO9!H_7ER;6:EW M)^/#:@1X$BY,7=/]N@WYY,Y9S8-"2EJ+N"(4Z: 8PB0)8W$(JIV32A;<.8*W M8+;S_Y](**>-+NQ9EUXL1SAMX(%3PY%GV.7*A!YIYB**0L9(*7RM6TE5O&[^ M]NIZ%._L(@XZD 0= OZQ0U%5G*/!+':8$.=#6)18K/6^BI5> M+F^??EKF CP+&<\$XLY$(&>!(DJ,-XH)E>B5Q=#'0V;#PQZV*)K*DQC0_\11 ME2=94T)?;/A&H946Z!ZNUGEVVW<_E'2&10I.1]0(<$8CG;Q"Q"@9 H\R95;3 M-A/JX6I5LZJX=,%MC!-2C&ND7?4@*HF8!;>2:2T4LFI()*_XK0\ M[*2+W,\GC&H%JK#R5B$EE 7OS&/PSGQ"&+Q1[7QT*5PYTN-A]?"7UM&-"FGY MQ&TBQH#0N80X \?:>JI1,()R::7FKI44Z7/SMZ1XEC#.*6XQ2B9QD$RBD771 MHVBD#2DP*7$KF8Z+[)D6FQK-BDXKG Q#3CO@.ECDXC0 H,81X#H90LUBY/)! M(9^[RR330<>$(H@@XM '9(DC*%@;D]/14M[*,?97>O5^,J['=AC*X>?'1UBI MV )TV**"/9%0YLC5+;+?"H8L5 H# MD4!#%$=)Y5XQR9%6.:F56OB1X\6RE96HA4LAYV*+T>NJ BX1&N]EHZ4I)N"7E=X;%E!J]Z5ZRG-SV]N>**&1J4T1()K$+.9O7(&09_ MK3J\0"+5>!Z]=E(.;IOS'M=.G'BU[M'Q"M"1*4B#O M$6G.@,('"\A' T46,X<%YC2%5K:>/#%:4K->&4:/0,L^MKU\HA]B*GTY[GG] M0U6L/P)BS8^ 6(ZUDSYXRJQ&!$P8XM8'9(@WR.B\ S-1[FPKOL''.+;E,(;7 M=C0LAY_KZ_+ 19W4V;_LZ'4)7#<)W M#N^L'WPN0>^U](9R0PWE#0?7D2B(\ ZI*$1>AA#(,D61%-PK&R0/OI7:R^>/ M$GG=J&I;1WJ*+2+TQIFO#8M-]\C8(^.2D9'31*V@%ID,==Q;!D0>ZUP6D@*O M5]BX5A*&%H:,DFYQ=5W!M1X9GW"5@;2TS$"ZO,YP3SX_^':J;;.!M.?WB[9B M=)MF=0W5Q WB4]JQN[GA_[DP@W;]0*RI28M&)AQ(0#$8!N:)$F1I +N&*3'1 M"XIE*]7_SIU2O3L,"S-PA(@MS*XKX;@,G5DM&]>S_QXW>]Q\Z)9^SGT(. !0 M8H(XY@:9( (B.MBH??)1M%*->5FX2=D65CUNWL.G=M[[N MKKW.G0OEE[/N#>()"N4H-N*Q VHU.1J^"&5]/+"G._G;%\!?DWI:F[,6(W8.T# MDTP6T<)O8)\MQ(7<].+MQ0UY"YAD.8\Z=E#:?Y@,[23 R\*/EP:AX6[715'M M9%S-Z6IN889#D.-\.0*24TUF%6=>3-]',-[&?Y[?X/-1*,=UW*DC&&R8E?E8 M-5[)]-G/+@>6OY1UV9#\TYWY_==$C*>ODV);"?;G&;Q?NSG_R]M\3E]?W#\M>*X=61_VX<9&[#KE$LO5 ;LH HR'TBXVUU;M&!<9"% M_,W/S\"]OK6;]UK9?+)9;W6UY7 48W$$?Q_6!?A?8-A^FY?O?)BHW&4-L NC MV)* =0B1'IJ5L$@U;E-6?RB'X/Y6D]H.0[U5Q!,?'H3@[TJL BF:_ MFS7?R^\5@*0]0%[VOS'EO2"U0B+6K;.]UMRF-=\M\=UKS>WTP=Q_W\##Z ., MS@U#:+JY-_EC_!*'D[CS:!BZ=46RK_L=#WV1"MR+<"_" MB[1TC\FHO>L.N M]:*^=PR4P4NO8+U(55A:5NMJTZ?N3V2/:0O!-$N)(@(SA'$^JT5BCEQR"JFH M& X6\(FKRYA&G!?8*H$PH7 /3PI9Y@UBRGKEJ,,6D^Y@&J-;0IG-QK1V@T0] M=;X^B2:.OI0^]M3YZ;=)=TO[UGR7]((M5)!,$^KEMJM-2(^5UK4-Q*^V\K0-%1VC\M-S&:ZD)/_EM$>.&X)22 0GB9T)5\K X>AX4,#4 Q,$<1$2 M,HEX1$W0*1)O=>R0&2)T2VBUV:&EGI5O]D1N!)3IX*0.F"#"2 !VK!BPXUS@ MTF#XKU-:ZBM1T6?J)6MW2 M@#Z5\@$*\[*JF[("HSZELL]'V[QY[E,J-VU2UZFW?4IEGU+9(85;*S;9^U,W M^U/,2V.%XB@F+7,!4(QTB!H%:9Q6- ;)6!N9E)FR(U +*\3ECPYI+E5B+L8D:6 70YC[:4+3AC?1I[DPA&+ MD2VUZ8C5IT/VZ9"K2'O[Y)X^N4=C'BP5#$7)!>*&6:03%<"?J6:1BT"N)NP_ M)!URX88(F#/MY!E;:Z$MF\6N>V#L@5'0I#GU%@F=&;KQ#EF'/5+ SH&S6\83 M;2/K<>' J+:PZ=/!NQ6[WNSD1G]QC;>G]+WEZBU7>Y8K$W*5LXNDCPDL%PW( M$,P1Q\J&I!3%\FIVT0,2)1=;TO1Y^3VG[Y&Q1\8VD)$JJY0/"ADL*.)* M!:2)I"@J)['4U"0FV\B[7'S476]IL< B!.N"C,N,S-,V(O.TPY'YYFUW*;;Z MUU%5U\7QJ(*/BQ\&\,=W2U_W''^]EL16>NWW7@=I->-^P_C\<-V9/(MF_Y0P M8JE%*5J1=^M:Y(A*2'!-&>4\<'GE(,B'L/]&R3\T.GYWHU;#F,-OWPWE$[S M4/Y3Y\/?-)]M@N1F$5>;EVOKN3\\4''XNXLEQ/LRO_I[,; @9[G>)]+U=/4@OQ2QQ4Q_E0V3Z6U'M.O>S)W(C M,"M) "Q+-.+)DIR5@I%60B,:/3R5>.%SY*:-ZC?+P"Q#%YA*"#;EM[D:MFM1Z!;3:[7XV;/@'K!ZP+H"6"8:RY6+*!HJ$=? @JU* M#!G':,1..&"1+47(9@-6'PY> @7^:QS&D1TT%-@&N*JLQWD- M]4N_@:A/D^_3Y-L\F)3$&+0SR&+K$><,S(S4 A%-DC?6>\>N%*=Y4 KA5*/! M-.U>T.=V[9/<$HLL4+,NJ?(]Z>[1L4?'.Z"C"E;PR"C"-.:**4HA'4E$%#!/ M8F4D-ZV$KY>#C@1O*=/O).I6E'NSRP-4]\Z-[ E^;\)Z$W:/V!/WWGBCD9-2 M@3FB&+E(-,)@PJSG B=&VB#X9UG.,YM5MV>TV")/%UD7H]5S^AX0>T"\2TH* M32(8Q9$U+D<\+'!Z&QD*B6F)/4\!MW(@T\( D6]QUA?YZE2@OJ\',)^/M[D< M0!I51W-J7PU[2M\O!:_.4O!*%P2PW%N>L\,=H4#JW3+OC) #XT]-#X5-";G&!6&HB@41=P"/CH*W-]8 MR[Q.E$AN6Z7]"X5&9M;J'(Y'0..B@_4/8?6=H>TWC>1>QI!8C^=1]ZUB&/N] MEKTMZFW1%I#AH9*/-I#MYI(6VB'@?.<;",JK;(.K+ D>Q M5CM\ELG4[QF07TNF_E=;#J?Q]%#6QU6=O!$P8&QEO$)98B0#G?OWO23D^_2V.#ZNP=Z:F'R/T_']BR.J<0T+OAZ]FZMS2JC#?PGK#BU/V MW'NS)W(C8 P[HOG_S]Z[+K>1'.NBO_=;(!1V;$T$BJ[[1;/7BN!H9KRUSEC2 M&:77V9E9=G, MCIFR'/'\/^2DP0A3+SV.TF*W=E3=0]CQ$\&8-H-BR_M7>SY(DOQF=A:;S(1+ M(#=ZOLAI_P!);? =X#M6?8=-%@OGD+8J^P&C37\D$I&>.TV4]FF]]?I#JD.* M.;ZNI_7-I=#-;F8:5LH9V"X@UB$BUD%GFI64UC,5$%>A_),R,C*BD-;66,H\ M$78CNSLWA8??EF]66]PL\]2L$/+-VZ;2U_7;D%6FP(>G@G9QA5E,F+^1RB)CA$LA,'G>GC]K7;=-9.-'R\FC.T\:*E< KH\>KK=>GQ(<=R8A36F. +C4R 9,D!546&F# MC1IOICYE=X"ZBJ.I^AP#^G=LZJ)#FA+ZX['!Z/ZE[6&SZ1>#%1>S]L9E]G]F M/T,/&4BA00IM1RDT%7G"A"-!C,K1!0G(6B&0TX8+F1B5=MT9/CJZ>)FO5TWG MU?3#FZM-YC]U,-!_[WT!@5\^SQJ;T;2:VN;RU2R>MZ_KDM*8-777)7E9_[GI ML$./E89]JQ!4[+%$ 6$/!V$I=B0(CE%DCF6$]1X9[REB7E&E389+M9%V-0>$ ML(2,)1M4&WI8Y=CM*L?SMTW]L6J+E65-^R''$-.8O]$O?$ D M$5.,(VTQTDD+8,6ZZ='/SB.> 3R?J73P-$A[A[W MQH%5B;M$\3K.1I,<1T/L #DRR)'M9!7"6\NCP\@:3E&.,A0 D.E1=#:4F4 ML]^QMT)BJC:2+.N(]LM5GKU28M8CR\L%L+PON-(_Y.DTO+]&F=,KD.DVNKRW MGS<>86I84(*\'$ X0/@!07ABRFG,8EGOT(@;*9#FR2"1E*'82"S41EID'P:$ MPR[O_:D6AHJ NT3QEL.'I]Z&6U/8D=84-MPZ!@MQS%I@0SOSIP5"EF2 M__2:6\DMPT*O+Z@]Y'! VTRKZ8?V;6S>%5+=(3&S_\57XB%?#1_JM MT>/=8Q6""YYL0H$XC;BW$=D4*!(I49VTD]2MGWJP@;'^W&/DUD:+3_!=D?). M0^>#7AN$G":X)7!+^^26*'."D\"1958BS@-!3F"&A'#)6!JYOL,M/>2PQSUP M2]GS4IED'B8+"G&9-+*4!Y22YTYZB14VVQCK]MW2G4V"P"U!0G>7"=W_Z;X3 M [)Y:/9#+#O@SK/Q=;G==E3/9^TL1[+9,B#1"UDR&.T@R"VH\.!'"XE>2/3N MC3(.)Z)^HOT2>QQ(;SG4%5HE*0Q#KL2[W!6F&GA"&$OL(PX,D_7P[P%9R24/ M/NUI\.OYN8O-F]1%>NV;:Q:\'@+W3'DU!L0/"G25U@8KH9'CN 2MF")#4BC/ MKX67S =+MCC21;R[-N!'CI50,1;2C)FZ:SO&D46[T"07/ 5XBBUY"ANBY#2C M9G+:('57Y:Q\:.QE=V&8VJM-H=A;;.'I9E]"]C:&\NCXB_M=J:J>^ MRE]_-\MO=+UA3E9U>+!Z.ECU8#<@*)MB9Y)G5ZFFB^PO^C02LBD_Y0L[^60O MVQ^?_>6V[2X-LYN*VU9)\I]/8GI/JS57$[J_ZK.ZMK3R<.2!<_#K^Y>C=_7$ M-N/1JZD_N07UNYB&CEOY%=CZH[T"JS_J]$<;]V.FOH"QU\A:X/CEF9U^R)>K MIOF#NPH4GNCA:__/LWRIV+3="=+JQU%_?O43R'LOYN/Y?&KG(=\L_/#D4[!3 M\K9K['ZD?!_.HIH81^?Y[[-VE'ED-M2_V<:?C1@9CW*LRE\\\;SL5.A=8+*\ M\\*7EUL7UYZ?M'R*,F&OYXO#YG_LKTPP/L%_7D9JOE3@7+3Q11LS^7%\MMWK& M+LY/B&1_7A"3N[[PP,_$":$/_>U#/^,G;.?W ME"=4[GZQSWE"=;?]MM[EN_5KHK;UA>BEQ[D#B^E M2@^L7;.3W57V;&YX.ZOMD5^I[?FNCGQ/*/E-5CN^;6**31.+#N18Y&$:\BW- MW_9CZL!HP&@>;S0O%Q7!8#%@,6 QWV(Q[S/U:N?-)=@,V,Q#RJX/?: PN$,= M'*@H#&[/!P5]/1[*R>MW8:VO$H M?O:QC+$K(/UJ0Y)#FK0G@9ACC+_[TF2(NS>_+W8@PP7KN<=Z3L^S9YN!]8#U M@/6 [P'K >L!W[._Z@36 ]8#O@>L!ZP'? ]8#UC/DUE/"%79?6TG_\YP6!;8%M@ M6_?;5HBI\A400# E,*6'%#W7LP7WZZJ>%_O\_W?W3NQW^9>7SQ=FMOF5_6': MV7>7HGQG(]^'].W=HRJ3+[?FG=BICR/;]M4V(_K1OOE8@QUTQXAVA4'.77 6FE%:($>YL@:]>_WJS2V#7!P+].S9U M$;:FA/ZXO5Z H-D;'>[>=11_>A>VBR.XC@3"I#'):490"E8C+AU!.I5.J#YX M:2E-*JB-0-@*F>V;5=T^$NKJ("BV"F6( 9(!D@T(R?9.OH<.8#)&0JE&7D2/ MN" ..2E,QB9)6#+>8^UO U@T1KF0+!)22\1C_D<3&A$/*0IGL8G<;IR#W=G3 MGW,Q9O2NGOZ@X@!A>RI?(&-;PC)KC0SED$ZEHD"<>X9T4!YEJ,(9GR(/?.WL MZ =AV8;(V#JD,4 R0#*0[[$"&+=84I,#228C1]QK42R*Y3JR<:KX!*(/$&" 9(!D@V?8R9%R%'!9R)%67 M(5,&:1<(4II+GA2[ZT2W8#+*"2I19)8B[BQ!FEF!E%7&8>^L2GAG42639*PU M$#. LP.2[['"V7<=G+40P1@T0&8X-(M-BQ M1#AG]#9<&DZE9H$A'UU$W"B"+/$&R6A8C(9S1](FX;+-TY]??04W,[ /"S._ MS::^6A()X#D,00-X[AUX5RXIL<>&>$,4L9*[D..I>E:U$R-Q#G2 M3DCBD+EF3 JYLHS!O"-$^^@-W2C7_%;P-&/"!K8RNWL A;+>?9'J\-!RZVB6 MZ9Z1C%$D$L[(1(5 5K" G,":"D?RI]']\!5.4]T]J*,_"%[01:34 ;<76/UFGC= MZ>_?3I%^26Y4M>V\; *<-^6TZ]E9'%W$IJI#T=/1Q]B6'8+Y>[.F\K/E^4$C M^\DVX:N;;\'K[-5XCRV!]0C;N%J/ 7$?C+C!G(,Q?-T9*Q*CW@0N< M'^?N4/!51Z)_[CCTVXX^]^SZ]ROBW'WMM-#FOS9UVSZZ_$U@.394'WND"!@' M\MU?^0)E.2IQ@SD/6[Y@SDMGS!G(]*W&#.PY8OF/-1B1O,>=CR!7,^*G&# M.0];OF#.1R5N,.=!UST=_/GDT8I$973()F$0UTH@IX-%B?MHM&(\"'*[KLI2 M8CFS!(E4CGYB2B&7K$24$J(XUXRQM6.<7L?9JZFOS^-OMT]GVL#1Y'JLAG:H M+QQ,#N@(Z/C4Z)A$QL+$!"*<$<0]M4C3R)#B,OBHI&",;J+J%-!Q9^@(O4-W M4#3Z9G86FZYK:!//XK2M/D8H(GVM0RSE%;3ZHP6DIHT [MZ\/? MDX!OC^+[>^:LKX3';-A*LR.(HVY1$S%Q VCE(EXN^:HJ]%XN5JB<5V"]#K.WJ3W]O.F2Y&(WF(ATKZ" M].Y+.0&M :V!Y T%/Z O,&#$?F,$,+K[#U9)S-J@"(H,<\1Y9G36FYA?<69# M2L9BN8DJWO!)72,TRG)I'8L&.1)P(CC0/-O+$>,O7ZUYL^*%6?8T#_CDV]$@/LQ@7=4I#C" OV)%($G'PH$?D3 .8V M )-)R5S9-2^,SX"IO$,Z2HVP=)YAI;$V:UOG'P28L]K_\ZR>Y'EO?_G7O)I= M/NP0$"73P2702BM<(8^[9E&7#J##+<8N8Q_-LK$&.5KZUK>,Q&( M053B#+',,F1BIJC!J1@]X]&1M'%^N9[CH&)L!!U3P0 P 3"/$3"!:#XA(P"F9 (PB)E_ PD MB"@V IR0T 3UAIL!,ZVH M1%)*D[&6NHRU.*%@--%:6YVHWEE\SB0;"RH / $\ 3P!/ =5?$NH",XD@;2U M"7%O/++!:81]8,3Y#,X^W09GHHS1V :4E.6(XQB1,2&C.DW8!*ZC"Q.+@ M/-(BHS2WC"*C)$&))96I=,*1N=U#-<-J;/!19G'AX!+ 9L#FW5?O.ZEQH!(Y ME\J93)0A1PU!,K_MM,&44GL;.V-46CB#$9%$(9YX1$[1E&',6$(,\UR:G>4@ MA!@3H8\1,;\?-N[:1/:=.\?N5+GU[62#1MQA#BY+OWSR'\_HL_L'.MPP!\8[ MT/&";L-XASI>T&T8[U#'"[H-XQWJ>$&W8;Q#'2_H-HQWJ.,%W8;Q#G6\H-LP MWJ&.%W0;Q@L+-4,6[+#&NURLS?^U;A*[E]NL/_AFM;UU[WMO]ZVCAL'!X.X> MW+4E#W)X#^QWV]WM4]__U]63L(FQOS]K8AR=Y[_/VE&H>Z5U4R?150N7M7R*)O:RGB\VE/[87YE@?(+_O"P;RJ*6J236[?+'\]AT%-8N+\Q,BV9]_?/:7+WWA@9^) M$T(?^MN'?L9/V,[O*4^HW/TX#3Z&<8H3MO-QBA/]!.,\CGO*$ZR_[;>;;4[_ MJ!+#.US(5B. [Z G$,O>$\O*K\2RWW7HR!-*_B'<[4MS][:)*39-+#I0^W\^ M3$.^Y2R,_9@Z,!HPFL<;SC^-G',L:N:_=7NY,<=M#Y)*!S*).S21WK.\1#)+[YNK"!#!>LYQ[K.3W/ MOFX&U@/6 ]8#O@>L!ZP'?,_^JA-8#U@/^!ZP'K >\#U@/6 ]3V8](52EK;@@NW*V07_ MNWLG=B<8="^?+\QL\VO_P[2S[RY6\7D.DO]"L1;4=U&OTG1YZX*?8&".P9"(B M3GQWBDU EDN)M&(F$N&E56LGZ5H2E=*1(^P503Q0BTRP'FEM&!?7ZUR<\>APT^V":/1V,?'=_6->10)AD MQL7D"?*NG!T;;88PE0R*(E&B-6&,FXU V(8.X@(D R0#^0* 70&8)UB8F )* MP2J4V1=%-OF$)'4&V\ U,W[M%-:HO0LT(D=8_HVR##E#)#*$.9>DLD*KC7.P MM2,$\X./,:-CH;=XCB"H.$ 8D+$#P3)"-6618A0PSD&ERI"D.7=(:2F(RKPL M6KH1+-O6J:B$ )(!DH%\CQ7 3 I!6JR19TDB;@U&+E*2HTDIHW0RL+ .8"Q1 M+0)#*I,AQ$7(!,[Q@)SD5&J!G65N%V1LK&3F8E("@@&"'8Y\@8MM"+2:16O,>H:,68_S[R+22@;$H^3(6!N03%PD(A,F@N\LJF1$C!D7 M &< 9X(>:=1;R K<,I(:JEC?DG5'*R2;AL\_3G5U_!33FP;-RWF=17 M*R(!.XN"_A,*84>8N-P20:&>]8S9!*""<0QDYE!#02:6H9(H(D%@5S0F^4"=Y/ M .68"SPL#'OJ/J7K6S^Z!ZZF(3_'BS+RAVP%64Q"&7!WC=5KXG6GOW\;1?H5 MN5'5MO,81F'>5-,/H]E9'%W$IJI#T=/1Q]C.\H?Y>[.F\K/E 4,C^\DVX:O[ M;\'K[-5XCRU_]0C;N%J. 7$?C+C!G(!QI!0\0QASYV/4T8N[5Y?74PK_;2?S M^&T9A80YEJ674J*&"-E\N)VQ(&MP$SAA"+W!G&A$S*"4A0"-I$Q9V.Z M>R,H1!P'5/'ZG(U7Z-<;O4[99L[/Z^FBG'5^D5_&S['Q5=M]VK]= M7Q15A#+7H1L?\$<0]\&(&\QYV/(%+?^RH-'AT26N5(HQH4=CR!7,^*G&#.4,RX3')A!08Q\$I9+WAB),DD342(ZIC ML$DY)LD?K"341MGLTD\SU\"/S-P.P..".(^&'&#.0];OF#.1R5N,&>( A]5O1I= M4%($) B.B',;D3,\(NR8]%@QZW1X3/5JFOEJ_%8+\[HH??Z5, M%7\ESE-&C9F!(\@!QD"^>RM?8"5')6XPYV'+%\SYJ,0-YCQL^8(Y'Y6XP9PA M9_"8G $ESB4=(S)6!\2%44A;1E#RUE@J P^./:9(]1MR!J?GLXTU/\JS LD# MP#.0[[[*%^C)48D;S'G8\@5SAJ)4L%T(+>XL2L7,>2,$BD9AQ*TT*$<4#@5F MK; F$,W\8XI2(;38^R)4Z*OZ@"+4K)U=U]1.L\&'#-RF@/^!N ]&W&#.PY8O MF/-1B1O,&2*\QT1X6'$7>0[NF" 1<8T]8!I(-]]EB]0E*,2-YCSL.4+YGQ4X@9S'K9\P9R/2MQ@SI! M>$P"(28FM0H4<1)TGT"P.EH4K:8NI1G5(L*IW-I)U!1>K0+0O(((C[8,0-YCQL M^8(Y'Y6XP9R'+5\PYZ,2-YCSL.4+YGQ4X@9S'K9\P9R/2MQ@SL.6+YCS48D; MS'G02Z7?8,UK,_^%&7J^G)R=+L4Z0VRRP2/!0T2\E'U:9@121EKEB$N4/*K5 MZ'(I]C3\8][.2ON?]GU]&D)5GL%.WMHJO)J^M!?5S$Y6EFO+OW;JX\NRN+6A M%5HVL.79F[KP);'_ )@*F'I8\@6*=%3B!G,>MGS!G*$2%&P7PING"&^H-MA* M)E!4Q"#.,46:8X\P9=SH9(QP:A.5IA#>[%-X RU1=U6&BIQM8\@&='X1IZTM M6@<>[:#,;.\\&K!1$#<$ER!?,&<0-YCSD]%KMUM=2@Q"2FL 1I]HCSKA'C@2+*-.$2BH< MUFL'BVRM5+2<)-*M/;U<67KZ/?YK7K5YH.]B\['RL6_W\WOT]8=I=Y6N\\_& M#I_D:F!+KGMG,8"((%\@."!N,&>0+Y@S%)*"[4)P8 M\[#E"^9\5.(&QY,/YV7976TF-K/,($4\2#-\B%Y)'G6$N-DT\BW:ZK>AUGKZ:^/H^_ MU>UW=,1K\\SG5U^IAB)DK.3 RJ%VW_T;RG( '@$>;\*C<@$')0DB21C$K31( M8Z*15I9B&PFST6VB[!3@<7?P"-U#=U V^F9V%INN;V@3S^*TK3Y&*"-]G)FY MK&ZQN7K4,LY16T^J,%I*:- >[>O#WY.0;X\B_'OFK*^%QVS82K,G*@&P ; ! ML'$X2K,G*@&P ; !L'$X2K,G*@&P ; !L'$X2K,G*@&P ; !L'$X2K,G*@&P M ; !L'$X2K,G*@&P ; !L'$X2K,G*@&P,0#8@**C>XN." M8*N&1$Y@@3F1^ M%4-"A"6IC9'*4[U6DUD:X-G(4#)&(6YC_HTB"3''N')&)YO\[:*CKD;CY6J) MQG4-TNLX>Y/>V\^;KD42VRM#VE>(WGTE)V U8#50O*'@!_0%!HS8;XP /GNXF\1@]X-T3L!\^<.L^ MREBNN6<8>:%8]C=>(DTM1CCZP*RU,@I^VT=1'Y+@6")O3$)<.HZ,I IIJ9/- MUU)>ZML^JNN=W[Z9S]J9G89J^N&&0VJ[3U<]T:O7O][T0*GZ' /Z=VSJE0A@ M-R[HEH(<1U"P)W$BX.1#B< M;00P9[7_YUD]R?/>_O*O>36[?-@1(H";@)N F\ OGP@N'7-<.^*0CB4'$@U! M)BF.:.22T123%?$V7/+ G<](BG#P%G&/+3(Z<90\CB'&H)B0&^>7=^R>QV.J MU!@;"8 )@'F,@ E$\PF1,TF9B.4&:4$QXLK%C*%!(J6#3U);8LE:"Y('(>>& MB.8= JX";AYC+@)1'/W<*D-Q9YY@JS(__#$.=))!\2%4"YQ M2B@4G.782V0HS9>0+A"2>6H4;@=$$YXHR! M^97%R0GB+%9XG7 FK$.B#@42,N F39&-AJ.8O%,).Y*TV5E\SJ@>&\P / $\ M 3P!/ =5>AL8I;ZT;G:EJ*"Q)$K1561AN08#CAYNWNDIA*/)58 UW!H M"6 S8/,NBO40YG -\'&77O(OG/CV)TJ=_]!)IV%?,>A)=WW M5R^PNU-+M@#/P_0]657*)__QC#Z[?Z##C8E@O ,=+^@VC'>HXP7=AO$.=;R@ MVS#>H8X7=!O&.]3Q@F[#>(,=ZGA!MV&\L% S9,$.:[S+ ME=W\7^LFL7NYS6*%;U;;6_>^]W;?.NHRN%!]O!K>)'Y&H6IBM_+_(FO\_'SZ M8ZC:BXF]?%$^_?'"AK+/=J4A;-7?;]%!E>0__S%O9U6Z7-ZX^R&*T_"CJS^7 M$>3?O[@J!OB\[6J0:YW\_K\WSGRSSLT;2>Y1_:)K\]'57Y M:Q\:.QE=V&96FJK.SF(;1R_KLEC?QE!>=;UV[2S_\6LUM5-?Y:^_F^4WSO,= MVI-5#1ZLE@Y6/?@- ,J&V!GDV55%R87]$/O"$613?LH7=O+)7K8_/OO+;3J25B= _+ .?CU_MF=_I$G]J=V/&?L"VMY5?OU$3W@- M]\5'O,SS-_JUS-]VA2N7I6-[J.7/YU,[#_EFX8=;D]!QMKM*X>Q\5B\K$,L3 M%AC,^EN^CC*YJ>>+O>P_]OX?L?GY(3?^_%]GY$3^>#?[N*V M][3CU]_?CO].'5QW2(\)6?56'<<3Q^.',[BK>%Q^)1Y_Z DSVYV*AT#GE\., M)L;1>?[[K!WE0"O[K[\MSV=XF'(\_-B/@U"@'6#.MV+,4VOG T\)^6;=?%Y- MU7-QWMJS;N37+QN\Z+6C[U08,;Q91O3VWV8;:>(E,[B,&"U=QG M-5\]E0FLYGXJ8.ZD C[/0/+;H )WSZ(Y$$??)2:ZQ,XH-?7YJ+Z(.50N2>^R MD?!C-:MBN\E(99OSLM?KAIL:^&&L&L)H]W*TH-6#'^UW>\:=GI/YQ&[Q2]/Y M.LY&D[K]JJ=[='>-0W%_=USRWBX!3RWM773-V(^.&-^UQFT>WJO(;*7;AO': M8MVUA@NEVX9!5I6CF:6+D4>M>+)KQSE'QX.B&@4F".(B)&02\8B:H%,DWNIR M!/3-;AO9GJ_/;]YTDR(]5FJ+#3?VU92>HE/<(3C<00D9\'*O\-(9:8*/%G&; M49(S3)$.+""A"/8^"AZ%6<-+*S!3.*'(OBH*Q 9O(F+,Q\9WB)2'E M< X S+U)7!TL^QW MB-/6%G(&>;"#X:)[=P['KAK";B7@"IXR8[U&F'.-..<.:5:R5"1*K%CBB8O^*K3G5'=AI& M]KS. _XW4."AFQ>XD"^[$.ID\C1@I".CB'N6D V)(.(-D4YGF,$;6:-=M;[3 M:3A=L;U-^1',C]N+ L&V1XCA''"&<;<(!:40CQ:D^'($A14B,%%[A3;" O> M/H0Q=N00!FG@7:ROKBANZ580HIN-JK:=QVPD[0S*(H=L8>!(ONQ(L##>1^]0 M$-YGIT ",BJ_"EI$3&W@+K)-<.%5 WR3%CVCIA]>%N/;5%)8;?%81=!S(,,# MENU!8QBS0EKO&#(Z"<2Y]3F>IP&%_#XV&1\XI9L@PX!A>\B&(2W\_6;TMJE+ M%ZAL0,]]$T,U^Z%HY:AV;3V)L]AEBMM)_0F=Y^]-/XRJZ.41)]AF<*8DZ>;4T MN3>=4;9Y:GT$)W,0F@Y$>;BR/6@4,XI'S9E&WAJ%N-01&1XEHIX(HS.^<4X> M0Y1WBV)C*@>U21%2QWM)ELN&L;YSS'RZVC]XU,Y=6X7* BT>M)&!0[FGDD)G M6JMY*9T0V3D0QY$-AB*NI,;E>3>^Y9-*<=R^!S@TR/88(4]1&I5, MF3YS(Q$WG"$M=$ )L\@3RYCF-[)A?9>0MXIT7;=Y]._8U$5#-"7TQ^,&.LA( M[X!D_]56TYYDEU.=ZM9.2I5&=:7I9<<[T&_P10?FBPZZ-4NTC(K *&+2N.RU M(D/&XHB$TT%[CIGQZ\NJ#R#W=_NVWV.>UW_'4)"A>,$WTY\7R+"Q/3A8#XK# M0Y,K % T#T"4!SRCW4J':U"#A6PT"( U48#?$(> M?E3"1M)J6\5ODBTE$XI*D-GJDD>/";R$&_2>DG.[%3 M']^=Q3CKK; LX2L(BKK1$AGF'E!"6N1 EP7H3B>J=0QP4?4,J^RFZ4Z?8--UQ9F6OPVAF M/T?@ST,V*W N]^1BA'8Q>HM(L EQ&R*RR0>D,2;95S BTD;*K9=6UV\P>F\_ M+SS(3W$:\W-NB"-3.JC:ZKU3=>#(PY7M0<.84Y$GS3S".GG$M1-(-XQ!)GD7+4:B;>,H]@KY%9<(P"426DNI] MGL+L*IOH8_6Q%-5"NFC M/.@@ZR#KI$WW@8B*$&$:H)RS":1,MTW) _\<^_^^FBYM_/@B:6+I8P0 M444PXAA+I#5GB(9H<(Q4QSN.E7Q8E]R=@289<2>\%C4G@[I/M!:/9M"\YBC-61 M]SZ!A/H.R/;;)E[8*EQ77X[\O&GR9XLU:6#@ [8P\"I?]BI)*Z,5Q2BX@!%7 MBB 774 I!HTM%\8FM1V.O##)9:7_HJ+I=!JZ:J?3SBPW[6XX;%L"[@RR/3J4 MDTEPS*Q#D:IRMEMRR#D?$<$B*A[KSR_L)12?'Y1I'9FKVO:BJ_+19M> %.%O>PO ,HB21GN-:CS,L864I MQ_D-MI'VMKN",C4>&"F&//>^.]_=UZ5G9$*3IP7N!]]J)]V*2VJ E M"M(RQ!7AR(J0&3P1BL9HLFO;$LV_:HW?V_H64TB",G!C$ $K>JS67E=X*A=$RAR2(DXG<7#/1G[UW8 MR_,XG:V4\(Q'TSB#8."!=N:RQL7FZE%/Q,5LU-:3*HR60AJPJ_OZX,$9/GX3 MEV-)<4N1P8XBKJU%5EF'L"#)JJBHLUMJRWYS$]=+>U'-[.1UW-B1LWJ+R;![ M5+-W'I@=EH^$2 , &@!Z'P$Z.H]=< IIG@3B/)9#$(G-V(L)TY09+,,N=MEN M'J#9%HLO!P?0.UW1$)L(8L3A!3%9N?N3%>=M#"LG*M936,\ #PD>+&M]V98_]1/BZDGXXNR^[,Z$ MG]2?VOYD^&KZ,;;]H9(/EW,'5"4(AW.+%@D,X3S12P09YP@ M1YA$PFMAC".6RO58\ &)N[>+JJ3W]:G/)MW$MPLK?SNQT]GI-/RR-/0-+6UQ M!K5WD(@[+"$#1\L]H4+*K;#_KJ[MU96U;^S@^'$> K@OH/T' M)61 S,-!3.$P$8%&Y*4.B"L3D"ED7F&OM+4V ^#Z*66;H/U;0DP#[5L M;-O.BPN&34K($X\SW0\F4_<0D$Y&QV2LEG0S=']AY;]F(W^7G=*;U(?Y?^NB M_,T[,3[&VVQ4N)_E7GO'&@<;$0!T G0F18P342*GJ$*<*X:<+1JJ9VZF%S'FQC@M$.<+2@U8,?+93H[B Q5]+0987>U^?G=;E@ M[?\)F;>#*8G9N\S 06?-@F=:!Y4!1>(:\'-E-A=):&"HWDC5;70=Z MU;;S3%3CF_2R,\%WQ0(?EBQ+U><8T+]C4Q<%T)30'X=4_K5WNGX(3A1D>X0X MIH2P7%F,)$T1<2DU= MS6PXQ:8DCGS=SMK1A:T",.(!FQ9XDB][$L-)2I(XQ#"SB"NOD$M&(AU$Q"1) MX:7;Y!ZR-ZFSP:4S>5DL$,CP(:@YD.'ARA:6<[\(D)Q;&2U/"%.,$;%YUEQ<^Q\54+):!0QC3D M,J8M>R9+LW?Q'*/L42+BB6BDO7R(S'"JC-M/S;3MX MN9XT)X"7>Y55A[U?*WN_[BK/!+H/[@O)(F>(14EB M)F3"7&J_Q1U?OR[M^;$[OH#W ^\'X 3@W!EP8DVPMI8CI?,_G!".=%GLS-S> M*.%D8G0CO'_;P'E7U8PT@)U/76;^$,J_]YS^EY2BGY7"\?C9G]GIASAJ["R. M^M?M*%M7H?SCGOB7SMKNW)#^XK^&ZK\->WF8\ M.D\2DKIT1(U:9><8/$K8N>B4P6DS446/)V_2+PLT^3V#R9MI\9?E_[]<48P51UA(BSB."CE',-+! M>Z.($"2H380[!X#HY.C:BNY-HXHC"9-^CCZ/N8VEZS7$0U"J"Z6Z3^CYF)%, MI,01,Z3$,C)FSY>=&E8,4Q=QD@EO(I9YE(][&YNJM(+M<6.)'_GOR3Q4TP^K MWK3WL)MVBF9,M]DU]JGA&Z(8P&' X2?%X<""93:'#]ABA[CE&ME +?*81J$) M)57=1I==+H. M40?D[(:;L]NR3_-,>):!K#VC9 YA@ETBADN5.( MTY*)L\D@C%E@E!-ID]RH3]M4"VXQIML\B',_4V=[QS '&ST G@*>6IW9O601 M"1%Y6:6PR%+#D=8J!,Z(Y6)ME4(RJ81P(@-HP=-0VE10RQ 1)+$HF,O!Q3[B M*>=C!B>^OBNKM]R\EQ M[^87%Y-8NFO:R2A4K9_4[;PIFQA3GQ@KI\J-JFG/RS+;@F/DCL7 C@M.CG"T MH-6#'RUT\]U!W/AVWO@SV_9.\Z*I+_)P+[M5IK+J=%&<:_:@I7@RAK(9)DY# MW_O+YYGO#MFXM"7%4'Z1WVSF=@+MP(96V[G)Y.=1)#:%H[BL$"%O T'<4HT, MMA0Q22U)C$LE'K5C)9[ M=H,\/<8-ZUR-I\Y2 0&_Y^BZJFWGF6!G=>Q9='X]B1_L9-3&V:S/<0&K/AA3 M X^SI3/MK/6*!B1-"HBK3)--Z85" ^&<1TMX?%1/J\[C7)W2%,.O=7/:&^-O MQ1;?79GB 33(/03_ A3Z4&0+@+:E)GV>IL I\@DSQ+&WR%AID-7&$(9=QJ=' MG4&W94"[8^MSGICCQC1(6N^ ,_]>YA/5"GTHL@6,VTZ^P-HD*;>9*I-,KT5FUMIHAIC'EBO+K*)KN[>^FU[O%./6E^'& MG&QQS]8AP!QDJ7?5D^C"5F$4YDTI )F=Q<5NXXY:5P5#8@M)ZL.Q-' Z6W$Z MU ]ZEQW, M^[.J"6]M,[M\M3#)37D:?N29':#3AR);0+;MT&E!C99*(Q$P1IQH@ZQD 9%$ MB1&"L:3(!,8> ;)"SW@,&/;.?8SL>36-W.%L34YYOR%,?CMF! MT]F*TU'EN#)-(U+"JTRGL4>625UZ;1(5)>&4;Z3W_ZNIK\_C^V*$Q?ULZB3/ M037D!\X,\ 7P]7WPE0DRT0YGSJPR9]8<(^-+FQLM,!;!"&_E)EKF;P>^Y'&C MUY(7Y_^6JO+NY385])M)U*U[WWN[;QUU&5RH/EX-;Q(_HU UL9/[BVP8\_/I MCZ%J+R;V\D7Y],<+&\I>P)7^I%5_OT7L@$]X?N,?\W96I- ==(\YVT?@-3GH/9;M_D>;[S98D IO4L_] V9?=DET'_ MT-A)CA&:+@3(\4$;1R_K$N&T,9177?-76_I^+@X?SU]_-\MOE!JN]F15AP>K MIX-5#W$#@K(I=B9Y=A617]@/L8^VD4WY*5_8R2=[V?[X["^W;7=IF-U4W+9* MDO]\$M-[6JVYFM#]59_5EB. >_OG\Y>E=/;#,>979P<@OJ=S$-'0?J M0.Z/6?V'7\&O/](2O_YH9^>S=C]F;/2Z ^19/7IYU^E*3_14W^X MBMB0I=) MMSU4]N?SJ9V'?+/PPSV1C?AIWE;3V+8_Q]8WU46A8*?3\)-MJ[;LA,S$8#KK.AJ]S_?Y M:5+[?SX;Y:_:BY)M;>9Q%_3D8?J>>-U=OU/.'T2?;YDAS/ETT$:'96+J*[:HM MS47JYJ)N.E3+GY7[MP72BH!^CA/[*1/DD_QPH].+IIKDWU(R'GV*HT*D)['\ MJF//U:R X<7<3;*UUBG%+LG^_-FKMV^>_3#N[I8?L_SJO"YS7'9=NO@A_W;6 MV*ZG2=W?_+5M@_W7Z*^3VN4+_LTV_XRS47GTIG^VR_.LD,LQYNE[M1CEW?3[ M.+3H?V(?QHP^]+-VT=0?JS)C689MT:XRR?Z?^8WVLLW>JAV/VOE%EGH1G[OL M&L\T59S9YC)_/\T^]4%1&'VTDWE$&:WR]^(TCSWVXN'.>C#C)7OVLJ>'K_.3+.!U MU&0%G%7Y6OF[G?3GTW%YT<3\U%5_R.!R,<>>ERWHUT..T]A\Z,86YKZHZ2Q/ M4/]1-25'4?)MK5?WO^C+'#,W(-64JBX<9/5_H[>*C*P-=FD<]C7GNPGP2T>KM MGS\C;Y_]<.=39%L\J_Q9MB5?;N!+MB=52SNG;%P>\XZ'>YN''F\]W+/%F\]^ M.!D5E9JT]>C,?BR*UJM3V@VG[ W)LOC[R;L3E'5W MGJR?S9O\#+.S/+143W]#():RTRY9(HW=_ M?_WV]/W_78?*,W;]]E?;03E"^3G^4B-MU@R^Q.LS"[5DT7>0)*2N]*H)^B0ZZ[ M\.G[WT[?C/F;(# MS5_/PAK9C[::=!_GT=O\=COK'J+(H'NB3W4S"1E LIY,BI&5^1JU&9-&$WN9 M33/#0J8O14ZEHV,L!VZ.1Q=5N6!L._%WXRH&.,J*$O(M?5.W;6^;O;DO!!GB MQSBI^P96W6&*>::Z:Q?]\)=^DD=;,C(+)U=D=Q9M^-?<-J6ZH-/?TX*I^0DR MR[)M[T/.;"_C9MI-?MFA/W=M%2J;4:-=_B@_?F7'HY=9TVQQK*'\]2X/\&QT MFC*=M-VUWEUDY &W4; WZV%YQ ^C#TW]*<_2(DN6Y[S-DLS1XC4Y^*_Y^44V M]6SVQ4:73+F$0_3 Z];.3T=^OX*:\6=[KM#I.8G=Z3M;2 M@A(=>$\F]:=B?I^7]IMQJ>WWCBU6Z?.W0W8'E]E"BBF7!%X>83;>)GZLBH4M MFJ)U*#7+ K9-5M#R1E&2# ^=W=JBK'4;5[YB+RXFG3?*@/.Q,)]^]%F?;BC' M7VY$)'>E-&YJ#;]/9QXC<_[SQSX5K7 MT[IJ@!>+B5TUH(VJ#:%>2:8,"EYFM2D+=#;3'<0Y5Y82QJU=KX9[2"J@#_IO MJ/MX_GS!=_KB7/QN7GBYY-9NUCL MNF)B76(@O_WIK)YDOU@8>;C)LGHBEIFIBW%:!'AA%XRM/&$3\FWCZ%.5><0J M(ER+]4-AK[9+U8R#W^?=B/J.RO[U]/3M5>ATM?VE M.K][R)U.S9MV7B J>_E?"S\G&/V_W2>G974\$UR"R^U^CQ_FBQCF'?K_.CY> M'JN^J*:+G-4U;1\7TI+)2%&+_D[Y8SN:EA7]2=G\GF/#CJ78$O>L3-BY[010 MXM$F=C(KL7H>]C3FD+HMP-HUHAHE6S77(RF7+VS^>I 7]8(AV>[>?[--9CF, MC$O@QWN^_'.^Y+G+)&SQ-NO#F171KP0R71WD67FV)I8X=#H[:T<]';MY[>[2 M_=6N$CO+AN\/N4P?"GQ!CYV== K5GL72:*#M$U.WAM4%!MWLYJFL/A;U;^KS M5;WN]B2K'[,^7)O-5XS%S[+ZW:*>)YIMS"/;W0*3EG+J#:ZC[WW12KNB^G&20_#I,M=X ]N/.1![&9LN M"[9R5D(WBZMZUN-*)\KK=M!%1M/EJIF=3N=9@>]4Y?M ^@I35P15GU>SV8H5 MM?%^D%T%V$Z[NL1.?UKJ$E*O/,V[@HT9N1;?^.6S/[/3#YVEGE==-N-&'OS= M+R^7:-\!11/S+,7QXK$>Y@?;LWH^"47GFVB7ROB/^;3/3W33,NLAZ2L7ZHSB'0 ^>E[@]EGW\L:EGOWP]7#U MZ0VK8_,+>FQ7&V)\*T5^DC3)=9ZW=Y?%&KID[7():]3&#STI*/*[SGE?ZRR#_+>/S?3+L?Y>NI@-!V"_59FW9."\ M/&*_^S\+6IXANQAX=ASS\_EBQ2G[W7(L0S9OWWTA7ERYY456_JQJ9W6?!>G8 M;SV?+0AP<9K7O/ID='HG/^_R^V'T=/;]I[MN_1W7W7Q/:TLHI=&CI)S/T&\< M_5O3U8R)4_P!%?F M,,WJ/0UC4/"5@RFH-HZ%@+#P"7&5-59KGI"4S!FKJ%/K^Q&^1\$[O_<_=5,6 M-E_:BVJ6570S>L[%R9<;W1RKGG_J9SKK>S?5_2D\%Q=-_3E/VBQFN@BZ?Z7[ M@06J!#7(2"=-9P;> MM6#]=5[R<:4C:PF!_[M4N&S(1B0_^?)6]F.UD2:6(I^%E5A?&H->URF4@#=U M\ABU=I'Q7RL3ZXM6RMNG[_]6"@P^-/9\=66Z2Y5TI86NA.GSIBM0R!%:*2@> M\1SE9UIV\H2VV"4MGO#^/M_0E4Q1J0J9-UWJI\O[?2HIH,FD?+BL&VECR6J7 M=8!%(4K)=W0V=(]P2M![0SBEIFCU;DW\8)MPM>\^1X+YCK,GU,S5J"=;;/S< M)6W^<\-[L,B![,""[4./':F\:[=+][]OVT,$&XB^80-1YURO3'6_TS6/FX"^ MH/'I\/%+CJ$KI.K=0;_V5SS%UUSW;>^P6&W*_J=S!(LUJ'Y!JEN@N/8\H;HN M-RU7CY^K=E'AE:]_5D]"7RXZO4Z44[I'P*TJ#7_[;>75\O-_>=7:\U7/C,NEMBZ=8/SBTEUO9K2KZUU:X+=JNV- M*N=,R:;5^?Q\5)9URC!<%1;>,$_?WE%VY;AP5$O$.#:(>^MSN!H-\MA$$@3G M6)+;E-T3FIS0!D42.>+&&N1,L$ADPN^B22$R=Y.R]U/Q4Q7>EHFXS<7KR<0V M'8F_8N5XE973KR5H3NXY$^$)B,=%2?F7X73%E:5W?G[\K#>%KO;:^-M"Q7^? M9\,37.#G]H?GY(=Q5^.]+)B\4X'N6FZZ88^?NE7R(.9R#>Z,D,I*0$NO'K A* MJ+C6 S]@K 33"FF<%80SFG\3&464:DZQM]%C=BLA,&VCGY>4_M6NODRY;DB^ M?^-:S/AK!Q/NE9#]]0BOER-#'E)?57/#\5U7LV20\/W.C8& M6U@3:N$4I29G5A3+NK*';^]H@O Z>B>[\PIQ]R +?+I9[K*;-1T#ESDMV=/W<5\7@)>M3RM471:3]9J K MJKURK[ZPN]^@W6^W[S;%='T4)I=E#W-8+K]TZ;9LE?5B>:MON3"Y2H@M]S,^ MOQIE_+PL6UHD!^X<[@_7%=MIL="VO.BBFG>!"8L5U2M"=WNWAKND'C6I9A26:@I M]99E1VALNCV>A=:T^6\+>LOWJEM1 M\D?3&P#; >KE:+Y(@:XQLHR=[=QU&ZK[[:^]7(XYW/IB+=W7DK)+DY\L"Q_S MMS)(E:+U4LR[FEQ^%Z=5%G57IYZU^??XL9Y\+!^\S']6L]&OUO='7'9EZL]N MO?OLAT4_@HNF0\'2=V$1RKFZ:>I/_?:M96;\]C6S?18UK+M-6+/8=!LF.AM> M]F!A>+$!XYC58-+6XR]L?%H45F8B:\N6!=M'JH5VE6KY.D/KAQ4*X[N= L\ M[$RQ9.S_>0/QEP4^W74J-[_:SC"_*%^'*I_K^(RQH(*5B+!0.NZ23-"9BP@3 MPGV4(1B^MF1@H]$L2HVXI#FPLXPB$V4.UU0D^0K!AJ1O5G9?26;ADEZNR&53 MA9TG7VZ_>Y2U/%G/3R<79W;T;A;C9-$:XDM%-VP\>O9+MJB,9^=Q=E:7W3 ? M8[]1\ME>,/[C@\R2#3ZOVUEQDMVB;JEJGW8QX')EMD\+=]G@9=^8J_"P[+#L M2]Y+.^G)9;]1K._]LQ1M.49CY'N']OS9J_[%U3A4NVR:5+7 M=:0M#WUA+TN/H++*G%+;$_=J,0,IAK)_LVN5=AZ[(5X??R,C1^:(L!N'U+6PNY6 M>:03^ZE\L?0SK(KJCWXJ_^EHQOQ#5M01D>/%96.>H&X[6KG&=8^6L[@B\':E M.5!YU^51IN[MU;9$=\JC#T"N>@@MIV?>-6;Q9Z5-SR@KTXV=I,N'Z(0\[]C6 MXF*+5F,ECUF.&Y_E,3 ZZDK10[Q8[&9=9*HG]2*;T>W=+KV?*S]?[6.TW V_ ME'<90OY%FUG[4NIY;%V4&G(X<5[Z)/G10@=O!'K]UK \C%4U*95Y3;?YT<79 MIS*P?7/HG D<:0C(L[)*1Z-&SM"RY.J3)I)(Y=9. /%&",N80%3FKW./&3): M6^15I#DF(EI1>WM/QB]]_/8Q7O72_SVSMW)\Z[00X[[=IOWTX4>[45^WI3! MI@?-$O+6TWY/H:S/V*V)ZML,KK"7:KKH M57=^7BUZ>O3-.FY0WSYUTW&'1;A8NW[(BZ%?>[ZV2T9U=6W=&/-]4PQ+ M$G;,4?UR0^8LQ]_EUO&BF]^>?BQ:(I347DF:%89Z19=;'2I*;O MT!+[-B7G=>A+%;MT9]DV;Y>YQRSRDA>(MQ2S="7\E"=^V2FC%.%F9:^ZC@C= M=Q=-5U?I2G?W2?VAY)/\LO]FOQ&T=-O[;(M)]8GC.O3].KOVGS[:4IW85?KV M&:.20ZKJ>3LI6<)N%\59UR%Q5$;9J^BL[JQ]\7'=E1K&IK.SZR_9MF.B[?*A MK[ZWS#TOFO&6+&/?"W/4=?DKU^Q;B=*N*>BJ59[7&6X7*=.UP?8-)V^7"2RM MN!ONHD7HQSR;>81?E,VGDC7]9)O\[J)KX%4KSW*56]_N1IEG^BI%,+D<]U/Y M:W3-O'37*8,IEWE7FK'T-:/+>M%YAJL>H99='5#1JLMNQ2R;<0]CS?EJ^]-Y M-ZGGMML*EA6GJ3_&*\G472/3NN2=%RG\C%J=]^GW%5^-WI9)'___[+UI^O0.BN[O\\3T"/@21%_L[&/ .2 <;?&8Q?$=[\; MP/7"R[3]B N%V$EXY!FW+-&-.P.XB9Z[W@&.]%LT)LWZA.V;C/&^/;@%KWX- MF!=^=?IP+Z]"OTUR\I]C[I_MQ7#H$O-6=(3T0Q-@NW=/!)PS>QHSAVX,( <6_,HI->,L+Y^@ GNSHX (07GS[T- MMO/'3Q\=''"+6G\L BEUFZ5NL\?.M$K=9L_6;78:=L26JN8. Q<0"T.QR3OG MOX0@ZNM7;S]#R#_/2D2R\0!<:R[]+R1S @V%RYI.&OO/ M9DO6%#/K67VV)]C\_. '37_H.YPE8 M7##3&OKLG/4!/%*V2F-0TOK06 \7*]* MO8KT-T,LXC:!UXKBC7Z828!QB>?]'H+YI..L%X[4I=6Z8@HPJ,!B-+OQ&S5U M(.-ZX<*ML+J!&212A 4>)0UL*S?CH4AH+T,42X#*? GW!78U1,3@MC6NA*::4%%'BVDKJE]'$9[6VT,_:/XU#8!:'D$5P-S'K$,KE\M\!YP M@I<1;_R=KT$POM#1 MKOZP?^_SW<&&0V:JZ>L#B"N=PQ4>O"D$=49@W.G5Y56$5G5&J5F ,')'=N4" M6-84??]O[_[KO1V2O F'9)@0ZB5L'#60DS1OFXF8^4<"U'U0> ;"I*I%87>+ M=7-^80_R!_B]'OWD2@ ^^7K/6)3Q^M7O'W[Z]-:.8#]5&1W"03$./'SV@_YI M[DKXA_W5^6CV =:B4,$L?_?73W]YT]><7G>$2$RTH*&(O8?"X$NYXB, MV $X@Y&N52RDOR!>9WS-5Y"WOH+$FS*_\8[I\7!_!*&A&%W[T^B^6B;@H8D^-P#1@9N,0@NOF,H\Z M]VKN:M9!(MA3X^"YHV3SD@9!W:ZGR#H;_W 4D(4'QN0BVK@KW0<'TZ0P0BM=.^(7H)U&504C"_ MM+(^QB2CY33, 4YBV957=%-0,O[WP%5F)PR2/Y JMD'0]K3XSH1>,V^4PO;E MM17L79#U]W] T-2TZ?&?)UK;C?[!2J9QI!'89I7#9ZW\FH)A6/>,'0B.3Y:A M6OEU-_=@(TLQ^\=B=;54$8F]^Z9UZFNHA K)@%C_'@6FU5E^E^ 10Q!TOVK! MBG7NOE.RBY#U[U]A]XIG@S#J?);LM??#X5"K[\71KG*! MB)BODL$62JX,:M\5"$LLD!M6;LRFC7W??#6<5]&16_$_Y. MV :7-3#<1L<::CQ!I?NOQAI>9^8YG[)EVPB36;:6];8O>0",SA6%G[=-==S* MEW9 SDYP5K-H@/^.#%V>B';JZN-2688TI,E2N3"A\/1HAGTYI[LS+( ML&%&Y8ARVH8U%]"=@J,-.%^!P2983#[/:@67M;N!=JB?86R;:1I?I^%< MH4L?*6@#&M MI^;6+_J7CQ6$^8_C9KH/0ZC%$\BX.?J:J(#"[HQD^W=T.;]N M:4BEG9Q9^O+S&?A/X\';[7+5*^B/O/:S ,L,35THJ;>ASG$-RZP]XU+;A>F) M(L.''<^4U6V3Q64\$T$'^0WN3<6=A,&3NAHS5Q+GP!;FE[#Q(7'K8EWC6.5R M,SQGH)E##;I;"$?/O11_F$&]"%22^3)E?"GV07?(-D-=MHX,$?[LI80I%J_IE],C,6Z MHPWAN+FWB;O&.._^PM+I+S$!C'"SEKW;NOJ(6?GH"%8_MIX]6R0^6QJD#+X_@A)RPPO\P<"T6 MJU#F!C>Z]8FG-UW/K#U#].Z;E:=[G/O31F0=!0PVMP\Y95RWU6_>HD\Y,F-#: M%66#0X6( ?^6\LYQ;%K!L/#.6*QN'=M_ -@$' ?(^GM'PL=:H$@0SEIW(((A M&]]D?8WI3;0V^[7-V_;-Q\;BN-P!@D+ OD0[2U5?J>IKGS-EJ>HK57T=O$5\ M@R]WTP#S\8@!TVX,:5BM.HN_Z^1C9]=Y'=LQX/J,GAZ]A:BL70%Q-OIEWB7@ M8C\Q)&ZW?]Z/[_DLPEGDRSVV;DWP%C'5"C',K$=H,NM/5@"7F.-AG MZ,'8L$Z\9[59(-'O1>@U&IB9E4W&+%Q_$?0NK0*4?0H82@:\S'M9)U.?BX->*>.OQ4 MZ)HRD@E$- 8X'L(0(SE&5HQP*SDXD_E^PD_6SWH[T_ _ !5S#:!^R^83U+K< M_&8?_=#3J??<9Z M>;$P;36I%4E3R +YUOGU4W V>M=5"3M5L?:!R&$.I1=0R^<;7.G^%$>3#1#W">WB[? MB<4""D_WRJ-M)+4#*Z<)BS+L8PGZA^=4BP;KY6-3H.F*R.%$ :L6AM(5<"$*K_K>AI M*4H\!'Q7*M!U#[>QW^]'%[&=IP]V."Q5#(T^\8%3LUR&+DH_P'%;AQG?-.ZW MOK31$1?V$/K:4U"(FY/O6W5-0W'+M]0)3WIE.)[;L#:.$:UM^NQ]?CU1TF8Z M'?^+K^"Y_2E]V#C( \"#72-HP#UW>@^:4!O?WQ='E> M72WF5XN)P[Z(#4MA1([)9.D[26/K5MODU'8D]1I8/:BA/:RA<%ZTR_&7 >BQ M/7UGT%-X/6G:_NRU&NV%Z5P4UXS:(FVVU>BAM-S#68'?ZQ"=0@7\*1_L7P?" M;^)0M09Y];: WKE_4#WG#[">2JF#UN@"D,793V'=E+/9QR\VGB$Q.AB 6;._PGK=ZL)4-?;]]8=$ VJ MR+WZ.]\<;V>^CUU?VUPW-S_0]BJ(9S=4GR#C6&,[FTHQ))3FB-2Y0$*R"F4Y MSRDN>5;I#=*0AYBO/\9.D:\G&4_,&8ZKXAJA3ML2[2V%DX4N&J9CIY>5,Z$2 MP)59+)P1"H7#DW^YUA77[C/V:3H/M@L:T.$;NH("!U%H%W$MQC.X804PY# O3(MM]IVP1" M(Y>=\$TH\_(]51Z;09J06;P0'FOW6(KQGT!,8<,U-90CG0/WK+(.-E?:H%K1 MK"0%SG*S087P(#'5MIE]7+R?-%?S1DP_UC_-9^<_0<'=6]>0=BPBS*U-UQAW M5+YVMY G+--DA_LPZ^V.(!+ ZPTM=B#\U 7PEOA. MWK[[ZUI%E0>G#8*S%4'>?6_!R3P*KC7FO(?N["#[$B>+7.T]N/[V;6TK9]TB M:+@*@U@9V@-)CRZ:8WATSE%O%F%D\[8FSAG,G5\442 <.DFL;F@G\Z!Y./>P M%:$MX*&8]<<%U$HM2D(?ER2 &=M/6[MSTGBH&]T#&?,]"Y-F.)2>OFJ6P7B' M#0U)(CCPDWKBEKE]5)BU6[?=HW/3Z9IY@[\;>3-CCXSJZ&RV+5OLNUWOM@W# M;Y-9,T]7Y9@DP+7O])9W\E?6NQS]Y&97V 6R.A!@@#RSE56[C9M+MRJ39DV7 M>7J 'K19_YS==L#&GI<6KK9;I98[-'RO>ZI[7,1S+*T:W;J<<% M=5Z?;V75X,XISW42/63@#_"-R^"T3>VL/'4 $'/%NPOX:P$Q/U(S [^4M3E< MV."ZJ[CIA1'\$7%#Z3KNQ^YY.N@?C_'L8@TPA.U-Q9UKV7:]]SJHOV90Q1,2 M3L-B>T^VLSRZO[0&#<05[N"SI!Z[7@">$FR[$U MV0O!$,%UCD0!A3X<9]3:Z429:C^!!FL+.>XE+[$_ %NW<=;[,^?(CL,N;Y>G M52>G'G=86Y"-#%A/"SKM+E1@FO= .K, ]1= AUO23C6_E)$_.K9O3'R/2.P$ MT3U8MMB6Y=IB'6-68)=9SN=3NTOVZ+I0_;B%JIQ.C0?; &/"+ #L-W!K+EPK M]F+I8M;SZP#J$8G4(S-%I\W[>"WC7G;ND=6!NT*.@N12E!PQ+DI$2,V0Q#A' M&:GRLA!UJ42^+@F(,89)*+-@0@&7786$8!DJ_FKPF%W]U\ M?[+&X:" #S5&?:=7"\"[?9:SF)^5_=J)@1GU;)$>=*!CD#-&JK*DJ*@*;?<5 M#D2>&\1U77)9\JS =(/=LA3"R%Q8)8(%E'IFB#%M_VET02M=%K@HO_UC4)QE MHZ,[![ :5CAXJC./6[40H)H0I&1"RA7 53W36?2HH34 \"==S-2!"SC,8>.% MG!@FUX:2V$%DBYD5:R#0@B/F7*[X>%=,T!+RK']_ SBJ&WM($*]#LWL I%== M[.K5DZ,*5HS6LBRM;"P)D+(3Q$6.459CG@NFJIR7^["2_C:?:_"+W\[6+T43 M_W0,%47G82Q'%=J,"W3"1M/?^Y&HN$D1O+7+D#NK(_10>5"[SAK9C?QFVC#9 M$"]N ,S6L\%VV5PJQNQ\8#7>???5QF=\H]2*6PJ!*@@D=M830.%,F@Y6R>-J M^RQ1'VIF':,NXN>+V6SE:RY=$' 8RG5FX?8 [C ." '.$"/\.("X:=R?8L^8 M+T'Q-++KL+HMFO"BJZ5I$5F[JI !N*UKEKUVQF /B:4'0C@>-1#1[_YR=4+RN!,_K'!6Z M ,9OZ^PPR1DJ2B8DEADIU(:7]!A+H#-Z?IHWS1T;H.BFX3Q;77ZQKG-C9KMF MEF>,U$9B1$D!&(N"(PF&ORR,*BJ!22'%QLQ$F1555B-#%+WL*A[[Z M=[\TT1_L>O^/4AT]F2D"N6]GHP]6!_SUCH?0&;P]K(3);,T4Z^P!WPWM5Z/2SK M<-4Y<#>A/J=/*-@Q*=IAO'&C:A]8W^N!@0IL^,!T_I\-_#8&DG=)WXV \D%* M\WHGZ-+UCFQ6MIV-/G1$[K$)-]06Q5)FEZKTU8=>?>Y6*FNSBM$DKZ5FYQYU MUW5AM;0-$,IWT;!(_K2MI&SG"Z&L34*)6E?//'$EVZ"A^K>Z1<+L-'\;GPK4 M5B(P?FW2$$WQRY7GX4YMK1?P9B/" 6A0\.^!?'WV>].1>3V5HS&N"30-/" M5=<'" <[8DM"(LN>SX6!J'/L(_"V8,!D#UP?L=\ [+3 T]MTK,>AYZRM/'0H M[D_L%7--*E4#DQ;6"A'*2R2DH,A4F6:4V%TI-_+"#_&*(Y'Z)T^5]_? _W(, M::_(17-4::^X0"IX;4UNW ML148@_]Y!K/&7KO#W!^9::D9MJLN2(Y(+AABHI*(9B2KRB(G3/#U^R,+026S MVZ5-81"I56GOG*E0E>.,TYI03<00[WMX:7:6+779EZ=?8B <85"MY0O'4U5 M4\=(8NT*J^D]N(*K87(-\8%'&5"X=>P(J>UGEGUJUB )/,AJTR=8ZW!-%J'' MP;W05Y>"RQ&M.=]4VI9$M&1TOC._]_)(63B9A5;8VJFA'BS+98MQTS9T.1ET M.:#@;H,UUFEKW]:G%'04QW:T8$CVH#("97@?$J"_4-$"OO*>I*^FZ#RIS@;> MSGK7%B0TRY4>\M_V D,N%+QP)JNZ"= (;@.L"SJ%#SA.8-^3,['' 4CJG0I> M!2KP0#'K^-$CM,>PHR:B(<3*DL#5%^!J6@:F2&,+!2:S4,[@\;#,PAK^WSM\ MX79YXZ^#+=Z2KK=U$!TB^UL8C/<+!@>CC9^J89V=:S%KMW$Q.#/PTHD/0?1M M_:BR7$?3!6"H:V__!WX^>W(FS45O-B==GW$Q@>8N,^P0CTQ%<)ZZ*]O%*%U] MC[LPOI8Q.GJ#K?MB7)$WA'AZ1%<1_:B]'O[J!-;PM@FP;8)KXNW;/&UK$899 M&[.!C>[Z!KW#Z=(B#HMD,Q*1VKM2>]?AKA@PC*3^KF^WO\LZB0[^D@N>(>L: M,B1SP5%!549HS:2J]E+,\!FRN7^%=-&['HWO1^<]NFIF.,/6Z_@T%;/G+G%P M2^,XA__');C^I\\\?%3!G<\P2.2SB=6$SG8+<[FO7@&?6' MZ%;-+L[@Q1O%RQ[79SA16-'!.$<^&O8YH^+6U#UFWO[@2]$LPNOV( M9P.>>KG_2(:+?XY^MMT+JTUZ4'L MQ\&"W-S=]EE;3L8)W^X/\T5M)N!.>@]HV"W@.QEN//;&V>@#','!T8ZL\@$&LAVA8)%SUH)E#"%,ZKM^']@#8/[CT'U1[N3NG#X[Z W8D#]ZI$/?^V #X\*S^JNJ)%/BUF_ 19YPJ(S!*);?%0' M[M/C(]V=&NOCC?H$F+O/+5AMA#."P$3X[-@5SEQ/M&MTASR9"W?Z.&W Z6WC M9_TZPK8,) X%9$*0*FUO?6RJM]9"]]?PR]['W ROIO.;3@FW^;M0H@+%EDX. M12I'J''IE[KZS-(46GOJU4QY=-C)\N:4E?#G(+?;DQ0SIO$7[CQ!!>M5+ &^ ML/]Q0,8QJCGNDV8ZNVHU;0N&KR!JMPRBO?N&LXE6LLTZAHUWP8\K%P3S9Z S M='WMJJLH$A$FNEE=@6$VB*^NXT'$9N>=!^\9TV$?[[T*'54GG.Y8O.(FV#QI MPC,G!:WRND!:BAJ1C.9(<%XA71NN.%"ZNDO4]J-_32B<,@S%W^X3ST1(2$62RO MZ*I>6NG8XJ,#4/_HR@':-X'(UZGO*#*#N(V.5'A_-ZC/F^+8U['.9^=S+_^5 MI^Q<76F?45E=.=>G@>X3*[@F?T1XG9ZH/V7]/ B!19WLG#^[H9<3T!;0X><* MG]ME=YA%8(C5)D* =-L.[?JS6/#LJF07IIZZMQ\Q06GZL 1T$&I.%* 4[@U M_J/PY.\O)F\$9<:9B(%>!!@,H"E'& M@]ON>EX@IJ^AK"+0K5NO[J:M]'?ZH%EKEFMK[7J*)E(L]V6-@T:+B6M_GF- M/ABI7=6%[_G;^F1[ R=AJNT\O,5[>0E=C-85!;0[OGFPXYT"'3Q(#M._\0EVL>8K;T&H9B'",,8NZD MJA5G@*ABWLEK9.H V:T#GYZ=\AMT:=="]5_]DYV)4=0 MY^R<@[X![ZVB%L-)G"],L.SAY'>5?F"KK&Q-]#8\011.2<2.ZX]GZ+TRE',?(LC8'P!TGO[9I\BA[:E MM4*T%[KY#S0J[^@'?/>,7/-_'PBQ'D=9/ !1(UZ+!0#^]\' MAOYN):Z&J4?MSGVP'#;45&.LK %39=<:=B;(]D^ Y:&\@7 I_G?N0@R@5$7S MCS7;S4&EA5X?$0V6V,(W#R-W1MG9Z#\BUV74N3"3:$VU2['N>/?Z@=M9[YJ7 M6_A=^CNNRA12HXMF!1+DW+\RRC%N-\?EB M1_K;^6*#[#?H#["0OYH#]<5N@=W3,YGVZ6"CRMD]H$#)I.V(9E: 0TABFPO^ ME3B@CZ8,AC#4=JVK'F(,WIWT?*2B]3Y/P,+[&L%RF_<&#?S5+6]9C3;JH@"[ MHHT!M:2QP.AD/.EO^V ?$HO5HSVO+^RH->YK86VJ>N6HNHV] ,M!D+B-*O4/ M!IB<,335>AOSZ=GHU_[D>K[^??/W:]5@$ X;7 MAD>QL_C"U=%L\[J_*BIN+[R)\O'6*%O(2(9B+5CLO[[#JQILA2#G9NR(L :G3TM.WM.!_>WK8FZ(?7=,#B_,]L9A7N;Z-S( M>LSV=#/I MFGQC&"?4X&[[<.2CL[\SRRVZ"#01$& M&=\U7,< M^44$O[]TE39*[_=5X>VLYPC<0@OP(8XOXM'U"TNUE&"Z9 MV9^VBXIOG;Q/9&\/#[K;%3)XWHANJ2@Z\73/PI>OZ@/7Y3.?Z]<>GC*H!_C7 MAH+X^_H4[SVYCJIC;:,]\;H'A[B.R#I33VTPG7;]3IZ&_00NVUT ER,S!V $ MH*OI"G+%,.HM2*D78J&A,&X\F@HY7XR# /;U#2![+XSP#^H3SXFK"B#P.[?CK_JKJ MGE,_0EOAW83]&K>Z6'9B'Y)AOF X9JN^1*_Y:[G*7O0*EFW#A_>V\QV-C ZE M[;X-2.O2;.CS]P8)D$'SQ3_:")NK)UY.IIY*W*4SKU;+T:4130"S;F-Q?7_P MQ@NWY1PY21T^W@07L6G3@\W70G(.CNXN(;BW;?;=,5*M?4W/C0=L4@L3.*@\ M?;NOX;/_FMJ!S[P^M\)L/-*KMA+U8G)^ 14@W:H.8;Q#RM)KAY:N:%@TV-:" MQZ*]>MCG&F-ZWL'PS>T?5SO%8^ H>&#[V,+<$F44_ARYFQ[#.W'9UUK'?YRI MN0\R1:[ZSB^[;0+W#H_>/O);XJ.WC^EK+4V/7;EQS..[4884PM#@"]_>'L)K#J#;WALPC!:W3^V6L/M7Q,$@Q R?"V/O=RQ'XLOA$=A:9^\& MT^^_Z C4VKZ%K5B.E8A_A[OLJVL=]ECHFF@K.(6;#[)VY!5L M;\0Q#N!I]AM1HK7B3!HEP+3YTHMXQEV%IUJIL#&>1^F0NR\.;,LIN"!WMVAB\>$. L9GC[-.+D/:8+'9 MFST>V6%.G97N%#T0+_3*KWTQ6FLSK)4RA\1G)+T O605^PR>Z '?PR^]M-@2 M2_2N>6# # ,)3I$VH5Z[:WB-YW ;MXP44R>BF@MCEMZ%<%K3A #PZ794-GW=$!L& M&(<"<]+'_ I:GG"],7!-T^ MC,,^^\EWT^L=XG[M6&A#\@GS4+NZOEV1M>3KC$#KN_8N:JQV)FY)+D"$.74@ M(D>CEW"[5G88OK<&8.V/)!AG=D0X!SC"Y443B\W=7FR<./\6.#KU= 5R>& _ M=]=*;8YZIM=LAIV^[J^;MT*OVM#4\F)A3!BLM6X@ KS&!.>*'K*\&/M-CPF, M?L!X8V+6S'AOC\^EM&,.#RK<@]9_FX]](,]^]_EDV/]]9&/NWNDF,=64E;Q" MA!0 8\M&<7\TS0 M4A5E1N0^2$B?ZKQ79S2=]]X(G/J'D+"U)Z8WJ1 Y%2+OMQ Y3X7(J1#YP.U_ MS:#5M,7ON%I8D;^83&]\XKCE*O >X4)\Z3>#=BUZ'?[_D'$0C&QWU(*+ZN-M MXQ94/P**CP>@\B[\:'TPP#N*'N7KQKH^"_=(.9^M7$AP_0RMD^WDTCU OS?*+,3%H,H#1=[V%U]X7#>%L%W40;<^]<(V(&]&BD5I, MW'6)-PPVN*W]W/8%#TWXU/B0F&G&.%>HP@5!1 F)9)T;A,M:L4)A6LH-DIF' M>&AV(&];YKM/B_EL#E5P/<;P8X&+/!)H2.4$0L<5Z,LPSJ':<&ZEP]5@!=L[ M)_3\REZ2$X@Y[^Q?G8U^F5_[T(P/]L"E_= *C>X0CB)O6#/ZJR.C?OWJP]O/ M?WWUQC/NZ-';S[_;9YVYQZ"L&J'19^,YMW\U$3/J]6_S*WN7$-X.F!RA^HL7Z7KR,2-%5+.V7!AX567 M@(8 )T2Y?&2KDXF+=F0NK[-:>)+NR67O+]+8G7/QV?^TRANX0WT(JSP;]084 M6S"M9;"2]FJ.O&@.1'/:SV/8H-F$2;9T0OW;RFV0P2-KZNQP_2 M9U)<%L\W>/LNT/AGW5L]JZ%72U<*UBYR>,E?F@B>$;G878>NSSBT0"=.P(C)U>LP-@N+K@5%Y"?MY?85S@'25&1;9*B^^1. M"<%?O>F?#-[=S^T7$U"5>K (4(MY/E],8G-.1[3E+U)M("DZ'?M#XZ/EB_F5Y$=;VQE?MA@KS5E[ W0.%.]@6ZT?!79K#+^@8BELN M'$>!O5CV B_\-R*>.13L0&7[P\0(WQ CW9(.)$HJZ'LFD>$S4" [O;SX_>SS MF;4%'&)DI/+Z(59/?J3;3GHB<("GXU-:''S'[$FAB. MFMD)GJ( 5/>J'+N:MA]F%R+8A^XUT=J9_*MMZ7@W=26JZ-?@Y_=%#]RC'QW- M]'SA.H'!DX-W1[(PKYGMU9Q ,4208ZWTB550*KPBAA+Z@L\"+3ATY MA>UOL=?OC4,+>VLOU[2WG+ "0?I"38;H>\UAK>"2>74F $!B$JPD(+"/'[87 M;:)[26C_M4!\_P/8]1>C=Y.%6EF+XIV];OX67ET9Z^O??G%[VS:$N@(W,UQJ M?XNWW=@3O#8?O<'8&N>N'J)U?,+!"YH3C#E7O"#!?P]'H1^$B!=(.+4W3 @_ M9QJA!RP#0W76G8KQI%43Z?+@;UT-^CR6-]YTC(WA"+FJMJA:GCJ&(*CAM:F% MU4BU@A@"Y+\*@7!>UUQH*26M]L,QH:;6C._PITX^2#!*2:ESO0Y#]8'78\N9G5P3KC2RGSSK[ZPYA MT/X6(W)6$?[G-I,,2;;#7O9M:;QG$H/%V9_\>K95Q>V*GK! _#@;?3!RX<)[ M?!Q"%A'QTQGBX+V.K'D^69JN"/KP=*.?H-8BI5S_]]*X#+K*NB__&MDAC+M6!^@F"8[,V^G5A; >#CP0QOGZ M5>\W_JWOK0,2*OIWS5@;8& .EI9/MW7C[)IY^L2+=MC_A&:5E7093XC1+MU# MD2NW"7U"'0$W.&;]P=9"N8_W,#M\VRS$;I=0J [3^X\YE$TZA^FS=3KLIZU\ M$"X->BYF??SHD"2$99F&8*7S0@,'Q[Q]0, O^''N2G!4W ":E4-;#Z-P>5;P;8&Y"A J5@M(L4;@WG=V MQ:T;'5DU/H6O1?#>L]%;:&>$)^[X9!L07[IN,N?9604Y6494BD!\V#KP<<'M M<'NS&L?NLYOP :#/TIZ3:&%\(3G,PAIN/K4 9*PN9K)C6 $3%$Y'YZE-YP+: M\=Q\0O5^;'QW(9SVG7X( ;3$!8F@',/X**IK43ZV2D=#:L%X62%*-$=$J *Q MBN:(4DR(8:0N:[%N*E5"Y)7,)-)E9A"A3$&N6=HQ*R69*71)ZP%93]=8^*.[ MK,WR5[L@;R$$_0G69U#E>&7MIK;,$>7].L?\MK+>(RIR_'.J*DQ5A?NM*BQV M5!6FFL)44[B/->E;"Y- !J*]&C0^"^'CV_-+:"I6+:R_]11FOE^\1QH2^S#7 M0.@#[69(RP6SR&E*;V-?!L)JI];;-PVK$[M&>O]%&'#7_R:.3L=*Q4IC"H$4 M5(#!%3<20H%TC3$I>D%%Q(<[=P MQ,5;C2M2$;)AOQ4B-_8( M(2EE8;^CL%46%4.U/5K6J2<5(\]_MDK\+9RMM:"&0ZQ8NASDEP#@$?V671[@ M>MS#14^Z=D^'5-3ZD_:?X-O%2(?]JC^9J/6SG\YC:A_<>3A] MG.K=Q<34HQ_^,&KEBGP^UO5$^>A1D&P3WV(< &OCR5P[F+T&\W]"X.%Z[H)[ M"]//L.P,IXQ;A.\Q1%9ZS_U+L^5.#"HH73@$BJ]=L_WR8N'J<-J6N8^X36U\EG$RNYY/K^$S _4 -!\>Y:7#J1M$B7JAPC'DHZ ) MVN5\H;?:M>_WXCQ=1:1<-<#PUEC/7\Q..4KWWMMM;?#Z4FCCA%PHP)I Z;PK M;ML, ,&2'EU_**^JDA@C42&5M3DG A M-CJN,0>><7OMBAK;3]:FL!9MG:&J8E12G!.)\QUQR />+7R6'>'=>KX1G %A M2@-EQC$;LZ9;OYC I>E4?5>3Z[(2JZM=1/4G>E<!'4E!K9_QI[Z E'7&N, MC)*4U27/C,3K%Z665C855*"BR&M[N:A"@EA;O#8,,VYH20HVN"B?YC &JY(_ MK "E[Z"W)2$3#$9@[<_:+?IM"L15(?4]QX#T;@*=XU5@GPV)Y$Z;WDVG]3'Z M?/=-4EB#P O)9:YJ@S"%( K5%,J+&,)*LDJ5@F%0/@]76-&U]2TE/]D-^+"8 M7^ZH./K%+#_6[Z%QV>YG\W'Q'JJQ]VXS%NFF]D?@G=36 6X"!+3H4$U=&XRO M&K3N#UPBT^M)EC?#_'R'@16P#T_88_S18;+- B9?&__:42S48Q8?ED4Y48=\ M,]PZ&_%Z8=1G_^N-VJC!>P9\0+THA7#?M>]T;3SMJUIJ9$_+>_;8 -V.>D=) MM!5'16$M 4C(U\H@E@LKE8J,X*K4E)M'-7][FV JH(XJLM]]=#-ZEL.Q;D^N M[]RX11"&DJJ67JG]6K"-DY"_[;&7DNS MB29'0B++58Y<0W8_CBG6^L")#A",OJ"D%1U_+!V'X+ )KI,)Z[7#SR8&?^Q7 M'=F%K\5DZI%@C<_^Q=5N;?MVM8=+X:IX!M,-P:*;K9Z!\-"=?3#H*'-#V_ V M?(_5K(Y8G5T#RM@^:JI6TUB(M!$-%/U(H(OP>6X.**)RQI8R]L-':*,8S'-: MHYS*$A&<*R2S++=.M;(6AY40=;%1W'-ON6!MCT]NO=_VEGM/-@;S%@+\0#I_9QZ;_<.U[5D@>VQ$5Q&@LJ@H9K(556,PZML101 WG M,J.\J-7&$36F8J7DF36]<04NL+&FMW5LM>$"8UXH0OE0=46=U19+[C\C=$QN M[)^?\8X$*I2 U.J%^19Y[W-3ZYH["GO?7.G$,?1;WSBIZX# 716*TZD3!W;5 MDIW-%_'+CH\.M+$T-_-0;Q(S# Y2=U*/+E=+!Q'A);M3*J'.%#*ND]/NW'R[ MW @(./RDT!45K-R> FW5O6^$N@RPT5'Q=];5.E% ^W'M\XW1G'(Y.6T W5X. MT#N^&$]C#PZ5;].=>A(\7\_AL*I\OT'_9?U2_UYSZ6K604^O68#C];2\ P5V MUN.MXO1$ R*BUDQE3*)*0MZ^XCF2-=04ES6A.<&$5NPQ@?@(*$7&96B=OW7-R M]J>WO_WL.5?$Y0E;+A^AL^YJZ6,PF$1$?XA*3*8NDW$54+=6C8\#=L JP]#A M+-:$ZEXHO1\SA'J[2V]G>DQ*Z/,!467_U\<)7_WP_NVK-Z'*M&7L!"-URQ<" M'!E8L:YQJ4L[&!A.PB6N?H'A, "VUCK MJ?I'#8@+?8;UZ,P)S C3!2D!@J( .'6")"$%DJ90$E?$E'3#G&!*"2J*$BE& M)2)6N"!K7P@D2TXU,P:7-1V6V+CE^@RK]5]BNC)O/1'QOXR^H\% ;TMO9L<: MP'@5NM3L_,W-J_9<-"$:WI,G %C6%M?/M#O!,=?89YD)D3<(A;4XK<"G%$\< MF.B!BLE^?W$U]UUQ*_N3 P/N;'2@SG.5?"'MZ? 'VSQ*A"5LB6%:6E!@$EO$ M_(#O9XSC@3NM/-:1HWV[#N62L48/!A"2I?:GCD(+V,S4Q6P.')ZG[17^U;J$ M4W'3C$(U (#=G8U>OXJ_=X";/@?F2/0$.&B]&GLK#;W3WQZ(;3)K\'EO1[;! M (^.XX+- 83-/N$U?A/P?*DAO\,F%F7A,$?<56"GKR3:AVT4XD*-^<2R$F:T?.Q,1&0N. MS.6L10SI13-.^9S]W;7;:T!HZ73;0.7M.# ]D74O0J'QZ&+^!7@ Q_?YFJ]D M=2-]I.J\A[(<[L NU9GE'%>L)JC,:X%()@AB15:BBE6ZT$KJ+5C0IBAPD1&- MJ,B859U6?W)H$>$<%[EA/&?51FF"TYL_NCWQ%;Z?7-;FL]LU.S_WIV'Y@=_1 MO@K]\9#Z'A>C9,37"/7]8R#/S!M.K18-5+2ZF5W^U M,3[.FD*J.^Y*(:GUSM\B\_V>'VL?;GCW@H8V1&>OD K[:P)9TWV84\;LUQ.6]C3(RDO*&*Y MP[H9G>3X+@ CBDV58YH 5>I$ 8)D5OKI\BQML80H:+<;(,M:Z$KA3A6&H$: M0()JB7):&6XPP[5BNV)9P4/WAOBO!J(91G^8+WPU?[QDSA3:EV0G1]E1]KQU M$$K8QT(,V>>X ^I J.[W09*OAT!Z'NT]4UL'R&,]*SK+>A(KX28EW*0[XR:1 MP=V)=^5.H$EKYR[A)NW 3=I[DCD7.:EYGB/#F;4DL:%(9H("+IUD"F-3U'O! M(@\\4E ]\LL<8!4UT.^:R364'B3XWKL?C/+L3W$MH7Y1&5>V0TO:HZDL"Y*:3 M1,Y8I39B20\Y))_5A=$K<$CB%'^9+TWS MTUS,X. $5K+9^8-/SKX/";6?/I9X_I93T7(IZI;H8P[(JB VATK?P=L%Z$X_ MZ#!1=[?$:CG_/LA9&#A\W]X/^#BRAL!\957ZY ^CO_?CPEEVEOTY?L'.?BJN M&O-=8ZX$I"+C&B[ERNRIDT+]XWQA#Y%&X^)OS_>MYHZ6X]5RY'C71KW, MRQ:%S@ZHSQ\BU7?=R->NDFZ^:L1,-V\&NGRI][-.?H.RXAE6ZE[^^A9S9GT) M[,K#7UT'P"./S9:1'W!Q'F=SW^4@;>?A.J-H MD2[//4[7+3:#,U4WC09EEZ)6.XR&'0;U,=_1)SZ-W!T>Q9Y@%O3(7O:VZTW_9!3=P[9'@__CJHIGM$\(QB!+0/L M=Q()0144'$.R7>9EOI&DN7DV@U-^JT> M\_U>XB2YCF#*27+M$Q).$F9X7J 2UQP0$SGB)11A*$$DJ[(2LVP#7UX6.:8 M0D^DE5RY@8(\^^TL*W21$TS%6JO$@247'>-R=V_EMWK,G]*\_6I,[,3,VU\' M\.G)S#W%6Y1TQ*#LFIO, #J8$EP@PG&-.+6&:T7R0BI)1;6EFN^^UJU5"Q/C M+QI4\X5;^,DC:NQ)4^ QK9*B2%(K;>D)2*U"YG6.RPQE5441*0N-1%9)1.N, M4VS-'9UM@*S>V[)]"JG%Z.[:X],ZX"EV^WCC]MI ZW4/H1G (STOZ;P>2:A] MG9TG6_=T+E72&H-R^](P(RA#I35N$5'H3WZX&;?J_RLY>D:R@1K*RE0;@DQ.H::S)S9CBB G-E=&V8WD!R MO(^AO*7)QEW@+GT(S#7O@ YEMANB]9Z9Q,/JFH?7/+^<^Y*$9!*2IR,D654I M0Q1%5 *:=5'7B/,:HZI00F8X(_DF0\%]#/+G$)('-LA?E)!\LH!UOR'0KMCV MLWN[1.XWR)6Q#S \-CL$P/6^2Y,!:3]IK)-QBE/X9V"22X$S@S7*7'LRD1EB M& M$M*[+4N9*5GH?)ODAM4M5CFF6 M9)8J4M/06)94AM?^[HW"]T*;6ID0 ( M4J)9C1CA&)4R+S"115;@O1;@=#IN[R$T2L=%M1L#_O#7YMO++.]77N(D+Y.\ M?.'R$E=&:IQA5*B*(,(JBGAMK?ZBT)056%=5OE?_X)#RLASG25X^.#%A?X9M M^??M7!BGQIGYX\R?-;@I"^A?=BR6<__S-AP4("7\>8V^!ZAT):0LK/MD?[ ^ M,/25 M+Y"-/QZ-405*7/4/WJ[('1@3U,?=0_+2>W[< >YOM_EU V-=QB.0?& MYH7]_Y?>CX/.8/MI3S"S,$!7*\Y-CW?6/P4.3V)OZD (LK+DQI1(4@A*\5(A MA@O[SXKFAI85E>6CC/30D15VXU.[&7%W?YSU4M][XT+;G>U^ACO\_'1-0$B9 MSGQ[YKFI::$41[FRAYAD7"()C,+65B)Y3G-JZL=#RCWYF4\49<,SOX7%SUV$ M#73JL=46S16P;5V;Z3'QQ.PS>QQ&RR]F>AVYLP?$ M97=C?_G+.ZN#Y&+REW%C;0S46,.N[D[JD *&8G,->5941:WDL94C^6,*M4 M5?<-=M@E'IN]5L,Q)G-2(4*S$A&A"\2Q9(CJLN"$U\9L%%CLB[K:$&KLI2E%6X@ZS2G MB.6B0+C$=6'*0I8,'Y&LPV/,$AGA8RSG!_34/ZAY9=V4_N8[5WZ\M)];@FTM M]/S*73O[\]O/OX_R#%.$B_'(U+7/9X_^4\Q68G$SN@<3\VG9X5M""*IX_5UF55TQDJ***65]8"<0E,8B;2I6" M$R6J1]5]N@+ENQ9]_O#'E9DU!EA5%HUU???4(59ER7O^]H]^$G"GL,M[%W"J MIK(2%4/*@("KZ@S)4E9(U+(R626X+#=@YS-19D65U<@0Q:V 8U; E7F.M,ZX M*0HI3$V>3\"Y@F;T+[.8]TSJ)-^>,CKXXO/J9J931OW628?2%3?<+74^"9;A M(2N54!MVJ;(28Z$9KA 5S*HR5F,D*"E1EEL3'@M).-]@\3X9F,U=)ZRM(3M5 MM(=OVAQ,@CL)[F]?<.<%P8)H@E1=2$1,52(I*4>UP@7/*EX6PJP+[IKG7&OK MK>B*&D2R B->6!]$%)7**11X5>*(!/?#BQ22X+ZG-W.X/J*-U,$WD24X@F[( MIP>-N[7/_RE:'8Y#7#]7:TN:\K<\Y73(3VC*]T"\V_I;^]4'0HX\>$EVH(T< M"JYC8_U@RMMA9FY[Q0Z$&45(5F&,D3%Y@0BCUJ"MF42*9WG-1)EG?,,(?@C" MS(^S:SNE^>+F_:11TWFS6MP71P:1LXKP/W]_);2V%K2W;PZ*?K>O5ND]' 1Z M]J>X@A/3;."4WPUYZ(Y' O.<*EIPE'%[&H@J#1(JP_8I)B?4'HAJDZ3Q(4?B ML[HP>C4U'^OV< 00T@0SM(Z$V&X]K'LS:0"I?,7(K M' YAC\7#P6?TT: \3S^*A&[Q$M$M;@F))'R+%]&=/T1=2WWZ"1PKW9R[W9P- M^,YT>8ZQX/VX2T\>D4SZ,)E-&NNYC,[G^I4ET M[;/-AF/*,FQ083*"B"(9XAD!OCJMI"YS*]6*?4#R'%ATY60WW<6W>LY?0*GY ML0B)^W5H#A#L&_L/=#F_AK9, (:?2^L>F:493>*)3DHD$8SOE_(O$8P_6)]E M)9>T!()Q4FI$JLH@KG%AYY]KK6I)\VJ_IOA_B>G*\;+]:AJSN/X*F!*Z2>@FH?O$0C95R9#,:F!M+7,DJV)#%#VE->6]J8R>DW\V;9?-.7$VLPVG'K396ID^1:K9%,U^#X#O8P;ZY!39&4Q1R3# M.9),8U1)G%-3D(SE&YCD]\F#N6B4OW7OPZ7;5[GY17 M'"NM,F,0HTPA0FHK>XIW[U=_^3[!W=L;DK4=;5(926RE+7WY8DMGO,"Y%5NJ9AA9>9,C M)H7]#Z[K/#.Y+/F&V'JD97L@L57FB>4P!6SW M"+/VJR@9PEE&$:FPM6IK29&4E:Y$7K.<;L!V/*1A85@Y& H&]Z08*IP40Q)7 M:4M/0%QQ68F,5!Q94\9:LUQPQ TUB/-<2B8R*CG;1P/!(<45'N?E@;N#OYG3 MG2*V^[)DE^*/9,:>T,U)>J&O%RBKJ:%2HUIBCH@R&O&"54A)6@N:E3DA&_F[ M1YBQO\%EVQ?F7)6409)2:4M/0$KEN&9"LAIE)*L1P;E!+,?*FJ.<2$ZL$!,; M55&/L%[W*J5(*C)(P=?]7([8$6A/>K.$EK6%N3:SE4EZX60N4=(+?;U0EH07 M.,L1Q;I$1,L"<68$HH7055E6E:2/0HUQ.;I^'^['^E=_Y?:D'2A.-FR256E+ M3T%6428JKA12F!!$I )9E3-4:U-F*B\K5CV^4O:@LHHFA/<4?-W/%?F\6ICE MS;(E&5!"Y9+6O!'F[#^ MNKUK;]N^"LL.C.OUTH]TDE(O;DM?J)3BLM)4*XSJK-* >959*:4J5"NN&:&J MSM6C\ ?W**4# 2#\8]](HJ M"U[0K$3<\-):OS)#+*MJQ&1><)U36AJUC_*#'E+B?FO2R)CE3PK^?32,%^&& .A[;C4AXXSRQ%J12'V2V$QB\T!B4VI5,&8- M]8Q8P4<*S)!4A+EB-BX+0S*VT4+\^)Z\0XM-EL3F@+L< M_3P =A]O)_&8S-1TI8T>/9!I=P]#_;_;7GV/Y^X?O,8*"973##$!).R294C0 MHD9949.R(+RJ)'E\5<'%?+'\S2PN?P29;)KE7XU83&;G/\W%[)T].7-[>M]? MBYG:78%&!^*EO$6\Y&>["PZ>?M-']M-3.X1G',&\'KV>O!F)40-;@>PN7([M M??"[@:3?CM'4[L=H.;.1 M%1,7\%X[)WLUQ0(X+(P;.%#JK"YGW^M)A]=0](/#W M+-G)W)F7\1-$QB'^N:<;"'0>7.5]98GB^NYD K-[HP M0O_3JD-)H* M"0^>+VXVGN9&*T;6E##.@H=_:G-MIO.K2[#<:Z$<<1U\\;,Y7_6'88T2:U[ MT.WRK.PGERMGBDP:^\ME8_^@K)U@S1E8*[ "USX'8,LS.\6Q7S(3W05K-^BY MM7*6H_D7:S\LPOS$[&;M 6%P8*@\HVEW.WWE Z4@UYFAM 2Q)P@B66'U5*X9 MHM3(JBAD0K&0ZM1*?4"NQSC-9B#)'E-<4C%N*)+,&<6:X MP53QK!0;\&(/,8C;6N!]ZQ9>I#[B9#,GD9A$XMY$(J':$?M:26;-;5-*)(Q2 MJ&885ZK46.>;,8('F-N'$XEY$HG'%V;NEZ^YIS[$1._7;KF'[$16.%(+WB$K M)./]8+PJ2K!L61("5PBDE-KR1>Z0*PHF,B9R?@6M?68NMU](:1E M3ZJNOOF&X"09DV1,DO%>\#,5S>M,9$!K#,W.1B)F3 D(Q:3F%>:JT/LPZ/>> MZ\L/3/[SPB3C+E/^R6I*GRF@?@25[M_4_.Y"Y+R0HBLG*#@H'F MF:XPRQ'6@B'"E$:"2XF8-EFAA2X%U8>.*>9%(NE-LNKHMS3)JGWV#U0EY56= M(2J@Z8GF)9),Y(BI2@HJJ?W-!J)3D6',!>:(8Z:MK*I*Q#(I$,X5+BK&"Y)G M!Y=5./'''BSDDVS=W0&B[:AT29&)%72-2 M947!A=*RWJ@LLL8M+YD0J);/&E'^>(F4SFILPER38DE"I+S71.$"DJ^Q], M!9*BXD@SHL'>Q1F6!Y=0RF. MONY@A:S*HL!(",,@.L*0+/,"R=I4F6$%Y?4&%4Y=BC*C&4=EH2@B#%>($::0 MKHCAE&A9R8-;M^3 !+HO_3@G"?7BMO2%2BC%L*@J9A#-J/6E16:E#2ZY=:@% M$YA*GIF-7)-F=::),<@U]Q/%*V2-8(&*2@I=6B])8 ME3K3NMXH>*ADR3C+K.+2M?UB*9'D@J"LTHS02A/)#J^$L@-'@5\4&D(2A4D4 M)E%X6^U764BJH(K"U H 8DK$-*Z0%@87NJI95F?KHE#4F2K*7*$LQU9\"EH@ M3L$\UTPSRLJ$:+',L: MT9+DP&K+$<-9AG2.6:TPSVE1)ER8;Q_]($G&)!F39+Q72*/$595+CC K%(0T M*!*Z4JC4U!KR>6$$V92,"1?FFY.,?5/>_@SDMO\>%S!P'_^[IY3?+Y.R474M M,8=\BD_^IXGP#+L_"Z"M7MXDEN7AD?FPLNMB M1@MS*28S1X:^1IAT)6X<%_E&X PN.OY.^[5>&X?^MD/0.H)?I3OFVNJ1:Y*)'5F_0Q-,\1952-M?5ZI M*RPDW:@I,Z9BI>09PA17B-3$(%GE]CN&"XQYH0CE]_)-/GD3NWF_,K_8U_SV MQ4ROS<_VG1?-GEQEFE6I!NT16N1 S&/'(D3N=9&LXBB3XCB9"Y/TQ4!?"%&8 MNJA1@2E'A!JK+TPM49E7TOX%:U:KI]07_VW$XK;B!V' M5A0?YJO%OKI.#LW!^$B+_);%_-:[Y/O]-J'2K4E* M9L>D0]&)&^Z6>IV7=QL?./G35%&DKI1FID)*-\/("U1?]&D\NKE6=RL\+$I*;1A&J0 M4 WN<&Y>QR4[J%K$1M68L0RI$M>(Y+) O*J5]=P4QU)49:TV4!+VKA9_G^E) MHZS,M6+BAS^4_>C;2_C7OG0D+DX24N%NI9@[>P:.&UOA%G7Y3<(K?++J$9J9 MKL5T9: *>KW;:1INS,0D-S U&*<&X_U "Q.CE:DYPJ0 $J6<(RFP05A3R6I, MZESI?:C '#9)*JQZC1E)I5;>^'W?IC/%H9ASAO1HJ MFJ1+4H8A91@>J(8JHZQ6$1H5#&CW**=(Y(!RA:G@@N*L(OR :NB7^4SM51/Q M(D'+'Z'3DX+^*>C_[(HM!?U/->B?,Z9,R0S@^T.G/-:(:ZD054SDBN:*%2GH M_\*#_K>@C&[]K?WJ<V2=+5*4KJ6F!#*<8 64U$DPI1)@N,TU,1O &2U1N:BDU%D@Q M;+^390IQ41.$:9W7!$M*A;AS[.!OBWFS+SQL3%/Q3!)@1[^E28#MDP#4*)KI MC"+)"11;5"7B1@B49Q6E7%.2BPT:LKJ414G*&I4%MZ*N$!D2F@B4""3IKB9.Y.4A!]!9$I4668*&0E?($( MMW+>:@J#ZEK;1516WN<;"D+SLJP9SU#)"P:X;!1Q56/$*HRYTKS*E'H>!3'. MDHV;)%?:TE.07*7*%4&DU615T83*1 CF?U.#>B. M&66HRHM*Y 67&FIZGT%GE!E+&B/)K;2E+U]NE26VGKBAR"@C(23+D:@KC*J* MZ%S6F:QIOBFW:%Y6@MCO2">W2N>@(V-RE9LBJZ66SR*W"$W YRF,NY_K\MM\ M/IW,SI-B.)D[DQ1#7S&H3%-9Y@KQ'&?6H*T4DM0:M#6U^D%J4;)B@\H[K[C" M5:%1)@&9+B^M&,%YCK@L=5'4FF0 SOHL09""X:0:DN1*6_KR)1?F.&-2&*0) MSJWDRC3BN)#6'SQ2.!#"7SH@;J&YEFI M2B51C24'9FHK8RK#$&4RSP41/,LV=(UA624+E2/! 9GC MWDS*ZF2\X13T&>0QNP7LZS010[(Q\]D(A=C4AR8O/";.>8I7/W8"_-6J=7E:BH OTT; M^W$U$0DO/X5D4DCF3N?F:1AY\[JD.2,::5DQ1"HAD:2U076I#)>4YE;![&OC!JK2WE\"G\2_W^YWJ;F^)6<:RDPP'/9*F-PGI)*23D'YB M(8TQ-C63!:*T$(AD6B(F1(9T00O,K*C&Q6:9]P.Q/ MM7'^I.GH;YY*9;_B$B=QF<3E"Q>7+,N+O" 8J1P(3FC-D"PSBDJ<*9%K)0M3 M'30UL4]QR?(#)R9>F+B\!_/4D[#-#*;YK%PS?<]V9/ZX,K/&C.QOYN+(P97=KO730C8U=%CWX>$!DX6Q] V<>C)53OV \\,!JPAUG]WVVO MOL=S]RY]I. %DRQ')6,:$8R5E3Z4(\P5E7;5>+79@?@0>J7^=NZ4-G0@;[3+/$=:9]P4A12F)D]RM'>CB9WBT1Y;R=]< M&;L0UV9ZGN5Z8#FY4O$$7;43Z2IP;'VQ&HK;#_$Y,OXB;)C"_]<]=/%1N M+;:=J&Q),9H@]%$6U%T;5S^K"Z-74?*P_3*Q1 M9'ZRRGOC"/T&+N\]3\]+IEC=.!BGQ:Y*V!GA_'9B4WH;/IVI]CH$DMM:#Z8G$UGIP2LW3XYG\P2JF2U>H_7MCZM5T!"JU&;W^ M;R,6Z3 E M,''ZR?$_5OHOY--R=1_S[QY4G=6X^M*7AOKLUT?F5-@HXI(I4R M[K4/]BL7[4#1W^UQFU(04[.\0LJ4.2)Y!NPW685P@2M%1<$SLQ'PD[DPK%8: ME34&Q@1,D&!EC10NBIK20A9F(Y^U.UKS_[/WILUM'$O:Z.?S+SHTXQDI+@K3 M^R*_=R)HR3Y'[]B21I2/XWZ:J)7LXP8:IQL@Q?GU-[.JNM'82)$$21 L+Q() M]%)+YI-K91JM\]=2R97X%6DE?RL6S16HH?NC['"<]'NZ'N/9:S+_O6*F=JO_ M_1WL(VO*?Q^!8=?"@C2ENH9@\S (?GS(:6RGH(@G"2 G(UD2IR0NJ"1,8.%A M*GCJ@_!*Z6:A()GQ0/""1"R!*P6/2"[AIZC(198'+(_X1L^E Z&@:.S?0$$. M(:^9]/,[-G4(N8M'>7YJ5UW&(J!)GH!P*7(2LS!%X9*0,%"!SUB6RLWS3F&8 M94E&,Q)E6)>1!AS+_X9$<;B?\RB,\^3[X:3=9UF%<)2$Q8L\QW0(J=X.+!U8 M'C-8*C_G8TWH]D)QS2^3TGY=131&)@$2*)F"KI930+ N(4D6FLMQ7/MO+0=[CL>^.G= ==AW=EAXI=A6* M8M&!A$0^%B$0"2=%%N?$C\"6RI/(CX-@'Z=JC\?<>C:$[H+&]V69892PJ8D&R(LLP2:,@+!<^H7[ @DRD11)L'%3> MLYTUD C#TH%[TUZ"R%4(=&5<'1P[.#Y\.(Y#II2,&4E9)DG,(HE-V6,2A@%L MFY]&(=UP>^W9='QH./:#1RW3="QP[ JV/K:ENOV<]&V#5L]_"1\ALN<6R2E> MKHSE/G6P%U7&,J *C%;EDX0*T(#\(B)Y!D:L4%F8IUD8%!E]8"-V?X4LH^)1 M$T&??1E+5_77P:6#RUOE5H1^% =)2E(LC1Z'6"0]92E14>X++GD2)/R!CCO25?U=B4P.O!VNZN^#E48-PBP/14A)'C-%XAA_BO*$L# 3 M,A(TH)O*VEU*@ VW\Y-:!Z"]%4L-7+%45P=X)[&+($I%''.282YC'/$("R4* MDD1^'G 9Q#14^Z@#[(C]L"H#?U_1Q*TGMW=43A1%P7.1*1(E6#DQ%!0HR8]) M'LB\R!6/@V@OL+FLG-@5WW05$OL=?[]HRNF9U@*>CNQNHW\@EUZ4\RNOG'KU MHND+?'J,5G3*I7=)6P_^,W4=VR.LZI@DXRCZGAJ(-UT2C>,XVL-SOJ>48KB' MFHZ//XX#+.EX*%Z>>]3K>(@"8&X!W ()25R1N_3#J-=J"JQ>WO]1_ M5[!X_[3[" 6+GVR=#JQDF[29]L,?MGR;)ZT@3N,)$I%DB,:H< M2!)C0>4BR2B181I0E?DB"3:*G]XE@:N+ .XI52L;1$L= M6.VS&DX<,9_Z&?%%&)(X#2)2A$R2(*%IE(6,9]%&X?SAX>-A/!#_=H+$$L:MSX^K<.#1V:'SX:)S'C,?2#PD/PA2, MPDB0(@]\4F01+7@2295MHO$=SD4\(1KG+[-%Q9.4N7%ALJUA,CD5+D#F)NTF M?3]L=9427FRE!*'B5"4QH=27).911"A3@OAQ'E,_2*(BW$MAF;W[KL/'+;+W M[*LB.&ATT.B@\3;0Z$J=S)JR\B)?5QP(1MZE]+1PD\(KI_-:%QMX![^5<^\7RO5Y?>^RG)][%[0I MZT7K57@6L6E'<#FO%DA&WD^TX16]:N&'Z9_>YU_?C; T0=FV"_S6W##2Q1?: M2_BD*J?2?JHK'F E P%#+MMY0[$FAT?/8$S>K*DO2OT">G;6R#,ZE\! DTDY MG\#7+7I(%C,/QGQPU6.R*,O\-/-)QL$&B7,N2,%H N(SY"S/$BGC#?,CBI-8 M@!PE88A>4LY"@@Y5HN(DR**D -G<]^U5QSL/\:D\%971)B ,L*3-^PNH>?TCOG IO6L^]"15 P],K M3S3T$NATNI6KJ*;@U0H@8^]O]:6\0';9]K5F5WR+J]34\QH-PDC*/".^ FZ) M6>Z37&6*\%1%*?.!FZ*-G-HL2#/.@XB$D<*^VAFHOVD($CL.J<^"%'3A:%WP M_@JH]4FM\MHOM&S^3JL%?'$RJ1?3^:?%O)T#I@'+[8O5QKNKRCX=HSWA",HI MR(XY2"S-']PP5;U<=Y S=.[!QPL.,@T9;S%=M/ CZ\#0XQ8-47;0&8@9 $L0 M+M65XZLE7_$\ ?;Q8^(7"O@*K#S"*,@P6612AFF89G2C]SR/DB0-P:(L(G2A M%3'8ECG%.H%29$7N:J.MC&#LGDR% 0;8@+(Z;P$PB[Q-E5) MKGM9XB_=RH)H:,^[FFLP((&U9/$\\51'Z/6;N@IL[;F4\W;\@LW)W[4)AW;= MFFZK^?82C$I8VG\NRL;L#T+YG.*>>E4)'PL4P15HNY7W6D@%^I7>C<5T?3_0 M2-0_X,,N@+S1^IM58(SBNVDG++9)^,6N(;Y!LIC6\/X6'P-+YV1_#VDR2%,? MRXNK@&-?AC C14)[(H MXA79_VM' U\PG\?HS[^!L >[]=<2C/Q]05N8'*2M^I2U?N>>I("#_US0!A!2 MIYL@YC6:5VIO,0<6^5^YC6U /=AEEVI^7_);S_D3LZ<;/#\_!P9&DU$M\:*#@,UH4?NR35"4*4_^PAFV:D)3% 8N!U97@HHR 1>2**B#.O)!YP4 M"16P*UFL0"].(K7A)&6",IG2$,01II_24(!MZ6/$)!%ID"LN@OP Z"D:A[N3 M2)^6GH2IA%R"!@5D,AE[SZXT,HB:=OU ]+HNSPI=A M0 (1)@#9,9B980Y6)^41+](LH/E&PYC;Z'&#AC%@$@$9?;#[\;/9CCVI<#N* M*60*Q M+B,Q"1N($0"2GJ2",2Y'[PO=YXF_8W3%,(P\"$F>AA#]H08HB #B1 M:1(6.&/ZV)/SQ]O2&@X&.PY 70755*NK)AUZI%6G@;Z$R+!5Z.D8RJ6L*AUA M'#:)T0I7.[?> PU_1J&#W05UKFS/.[ULFPK\@BW^3UO488!>K>=;%:5>BS'' M*^MU:?^'%"P5@'Q(Z+$/X0.2EH LHZ:$HLS#E+D@UW M_6WR3[3)?L)YLY#" F![,A6?@$$:ZXO\M:2ZP'\I6Y>A5]GC9IG!D.[7^>;6)7GH+EH#F G1<+%8)<50&)4E#6TR#(E-R( MJCX<.7U%&]NU,^D)Y79$HMW798ON5"O13-<0[/MQ?'U#TF*WV99.K+/,I]2G@< MY21.549R)2A) UKD@0K#.-SP6MWFG/;0S? .F.^3^F)8[Q9E8Z[UWH?A* Y= M;62'6P>_I0ZW]HA;42(I#42!ODU!8JIS8:0@/LM%$L1Q(OR-P.IM"KD_/&ZE MHRQSN'4?!=>525ZN[Q>;A3VC#:8D.77W:,3&HVH"1RHM?,F3+& Y"=,H(7'" M&:$%QP8@0:+B5&9<;!1-O+66:UGP,W*@EAP@"/8D+()1E#UPB=ICIVP'5D>W MI4<*5B+T4RE"3@JLGQ9+(>&GM" )$RD-\TQ$T89)?FO5]D'!"F#5@97SW.[9 MR<@W8_/*(3JWO';),!X[".'N1?6^<^NP0TB'D M@R D\RG+,YX3H62!Y0 %T4D3>1S0(A&A\-6]LB0>&2&S-'4(>7B^Y^&A/UBQ M[81[,QP/3[HEW5D_^UC_(8X@[[M3=3VGE=/P7=\4US?E0819KE068A&\B&,] M*P%B#424(,+WTR(. I!U>U'W'UR.%:.T>-2&P\^^DXH#2P>6#BQOE1^="5JD MH20ASRDVLP"P#$)*@CQB01HS/PNB?6C^#PV643S*XP?VPA\96.[2^Q^[K,#Q MH._1SN^[3RP?P5S=_)[W_!RM'L7\7$;D?16^/VC3T.G\"KLFR.;"N9B>91Z& M.PVZSS*[*I,%RSFA2@78*@E0(J0^*; ;$L\SEJB-RNAW<0U];FJQX/.. VWB M_+N*MFVI2BGV:_NDHZ((70*2P[)#WU*'9?OL9I4DD9\6 4D#GV,QV0)+AE.B MA @4#],D#3;Z&-_%<_.X6):-PFQWAZOG2O@NF?)I5&!+F]X,2XJ;5_PC3W54 E4;$"[HEX1%@>AT0&0O", M%S+,@_7!;SY$AC[-8I_D229(G.&IC#Q5)(D*E8596,@TW.,*=-5EKWHBV_J7 MDZ+'#B9.> Z%9QRI(DGUF8-96;LM'^'6VY+7P!NJ0!4!!8F@#P9]L81"9[YYR1*6.!'*:6@/NPE4?-Q M<,N=\73.[OVPR\=Z2I040+65-Z??O)K!6\PQ/R^ZBY+Z72F*3/]-OJN\.\V"Y/L$U/1L=O3L( M.Y I.PC;0WJBC%C!"^Q##!IKS$#?I0J 225A*J(\"7VVT7KV+OKNHT-8X)S< MC^SD=J>/!J>/OJM/G9,T@TG;Y%\]W"T'0UWB_5U6RN7E[W104^:G?A:30-"( MQ"(H2)$F.?%5$12<*UFP#4?/G6L6/)B8RT9YC(+K;Z2@'Q-]A MN,#/V%SW0#!V[=W7ONZ[IPZD([_Q:B'D:@/K2GXCHFRDIBAL_+N83'\493NK MZ-5;_+;O$+ZLEE&:%W_8^5IO'=)8_2B'UE89ZT#?N'J9&.*-8;K&B/^7_S MVJL7C?G]IHXX'IU[OZUT]=6=W#?:E7H3>N4Q[-N^@*^9K.I+KYQZ'^NY]()T MY+U:[;\S;^BT-<*X?34>IB(^[OIX6]'G9=#&]H*;WJP!S:F!!\'^:5;RZ 0V M==YZ8H'[VWBORS=>)<]HI8FE]6C;UKS4NWM9SL^!N.;M'*@$:8W7S:QNX#L/ M;C0W 3D"N+6:CEZ7\"SCDYLUM9)M"Q0!U^"YK9++=CS9];\A4UJ*_PEI^JFO_YRI.@Z,Z0"F%? M7CT25::=0_< Z/($8.$"UL5C5]X,=JP6GNY/+STL8DRG5__>>I?=$3]J6W/ M)TB(0)\50$_[=D WG:JJ-=5MWFRZF->=DH[30<$);(J7$U#F@)QAA-^D^-&, M-O#]L?]#=P.L245GK7S;2H V(/1N9;659I[]:IN?_Z)L2T, ;[MG[,I=T:]- MBW$>_X#*P.YK@G&N0?UZ^.R\D=*;P._GK0<&*@C[7B]TO>KW%_=]"J2Z:P'_-!9SHF3ET%V2^Z+ 4W8YMA#/*DB7??M!LNZ],V#OFP3JB=SAVK%MZI#@6%Z 3%RDE4F6 8U@L4+XA8PB1J6*#P+'@E$21P[) MG'OX_MQS*N?S"O1A3&Z<4"&=*NQ$R(L3(:_OF'U]2Y&4%J( "4-\/V,DC@4G ME(<^4;&D(E&\""1[>-7Z,[W2W+XOE3H^OF(6W^>;_*XD&@>,![:W#A@/#QB+ M2!9)XL_)S0Z=_;] M2MJ?T^D9^K*G?=F>*WT<">^4W\I6GVV[[(U.)Z'VV_;S^]-=CT>&W2I#STFY MW5(N2"+%TR@AOJ 4@[0Q*3@5),NR-)1,9I2J1U#_&]D!Q8(-@Q/NNNGWL6B&9[PU@]Y;@5+ M!\GKZ^1_#)*,EI(27)N>^3."\"PB(_(9&("I4HQE6P MEV98CY,ZZH_B[('3WX^LDIU#3(>8#C%O@Y@\2>* !S$)T4J("Q]T.AI1DD>< MAU'*@[3(UQ%3%6$AA/*)R%))8C\*2!&!J4"CC(=IGK,PHT^5;)\DF4/,/20< M/5K%BB>*6QQ '9UG-;_O/@-_&#CY5#4/7LJ4'44?]?8>W90?P-/U[$3>_4^> M#:HSTD9ZC<1N]!*K.;YU4.*@Q$W94?0+V-ZCF_)!-ZZ[+@KT'+O6?7+]ZHXH M =L5_MAGYK12S ]C2=(D%B0644B8@C]B/..(;LHB]O<1O=GN@WQ7T;8M52G% M?AL6I:.B<$6,')8=_)8Z+-OG\3@1\BCB!0DHYL2TYNNU9B ZXC1GEWOLAB!TL@Q+ M),41Z.!%R#.6)RF-'T[I_EA/^5XE5#2*<_]%Y@([C=QAI,/(!\%(52@?X# ' MF,E]$G,I29$D(?S!DI2GN8R2C?)+^U/F]XZ1\6/GE3YSC'P2_[@[)N&.2;BD M7Y?T^R".=AX)K@I!DI@FH//',:$)_)3R/ 6UO@!!M=$EP!V3.)ZD7X>8#C$= M8MX&,6G@ ^!P17B:%21FE*$%X),DC4*1^33@^[$ W#&)PT3, SXF\9QZ4;JT MN8.*>KJT.4?1CJ(=16^3_>U MK_O>E<+)P21W3.^Z5_1*I5TMJU,F*8M5+AAA$E-$>,%('A6*Y'X@59850>%O MI(C)S%Q0\_SJ@0Y?3,^!;C<1)%/USC3PS"FY9^[RY%_;9AW]H]$$(0C?]BEM"; MTV^KV09;5^M!%^8?BW9>JJN[KLW]EN*7NM&E].?GC93>!#X_;]%'*X7W&VWX MN1<%(P^;:NO&5-@;>.1=XCDACM8 MJORRGXE/2:G$IZ/#MX[5L7:PY3^==NK M;_'<_7>_BUA>4(Z P(##HX*2/$X846FL0IID!8TV:W?=!Q5^_C:3TU;^9'9C MIXF9KIB8\?=6YO+'?K#3TGS\[?;@Z@J&\(0C0-98901I=L QP@HC^#Q-:!0& M)!%93.(B+$@ADH@D/,QS2?-"AL$^BMC=FQ%NH/]@=]WL%TG_C6QG$M;A0E97 M8^_KN03*IY-Z@3U;L/JSI"!(3,0/A$6J)(I3SA@))<](3(.8,!XG) N33!5%PJ* [@/"?U;*+&1/PE]@1;Z MM)WRLC(M(4_FOT@A&UJ==LNVV11> M)89:7@OZ J[X>\GEA $_6U4Q&GM_& U1WV,.F.LCY?!XV!XM+@&7::7[GC:R MHGCB''9T]YLH_ ?L-9G54\P4!H38%+9C[Z3%;[;HK1M#?#I*UNHS+OC!05P: M\$P!4M$B9216"2>8*DH"^"S*N!]QMI<(\N^#30;(LK*Y[3'LG!37]:;\'U@P'Z3;3 [A&W HL51+_9 MJ74KJ+^SGVL'SC]?5U=4^+$? H/DM!"@$64)*?PP@:>H+$75)T\V3G;>12-Z M5T\FY5PWO@&.> ?/*T$V@38D6^?\NI/S*Q[_9;"H6C[RX;*^;(5H0J\ 2;1N M44XOZNI"8Q&HFF"]+%J/5[2*" V:%BA8QDW %O"U;%NM/!D0!)5GV47G\ERBA\$@ MNU9Y+VA9H3\?-6/TXM7ZP=A&7BO"\$S4WE0YA5]1JT,KRS;2A(TL.?P&/\WA M#APITX^"-]9M"_I)"XN@7ZCSE 4J8/! ?(&P)AK^O/7AN #XI;$ \5+]3 Z; MR5 OI&T]A9==H:I>HLXIQMX'\[S^2]E_V;VJ'Z)^6(GZ8(-:ZL =B3X86\U( MFYUXVZ1N\6#9GW+PONZ1^*219R\$^Z'+3=4C,1JP_J7!544%&91/F (\L'N2 MV2R!-*L7NZ^E!)O12%6!+6K.*L=[?;Z9=L#WV86N,!UMZXNM_]]%ESE$0#"193&C8 9E9*&Y!MB]N' MKHQYSU66$/7VS.F?P$;4D,&'"5;7\DYG$GFF!*)Y78[E>&0('+YZ UM^ 5M] M6<[/.Z\*[B4(7K3)1-EJ6C(ENE133[ROYX@"0 ,+V)P&*'C>7'F@[J&QX_LQ M"?P$E/B0)-YK?,F__4L>AOZ/:9B L=2-7G\8_/C&T-+F$](H*R)2K#SA4U/" M%@(U%5&Q^:B1E2I5U;F%S)3P :OO-G-??R@N^_*:MAN@]BUYNZX:*H?I7&BX%<@@!I@QX M[QH!T,OGGS19Z-OTDTZE(83(#[QWYW"7I1ZXN/LJC$*@S]1G#>\ M$, 2B:M&?N8:/65Y86[2Z*XI"^>F(6>!\%$ACF@)Y['N,?I=7(,RO/W* +]A M#?3CM:,M^XU(:H^^5*8U'#REJ;]I.(5/#LYGG8=!(<"J(RI(RSE) M*4^!*&4ABXW>CU$@94R3@O""@RD==GJOFO 0EMYU_ M4LM5VI.G.ASG\2'9=M93K?GH5,[FQB>S"K9:M %]@:ZE\>;5%WE1(L&M LTK MPQ3S^DQJD7@MO/3/6./75V\,CPZUE4O98>D*IZ^^W;O4"A+R76,?+>K+Z25M M-!,=.$D+D E1&!6$*1F3.$57AP@5\>.BR ,1&>((M( MGL221"*6+&2QGZ3YXY#T008?Q_=UY^VPLN,B](62/@F8!"N;%2F@CXR(K_(X M"V'ALW C2?DV5K;>JO=@,S?E#)?RD_IJ9$Y7;H1KT'\J;6RIP1IT /T:8<,( MI5G=ED;'ZGAX*&NM[#S$8))?^#1):$"*0J&G-?9)$6,^.2A:02R".,[#]4UE M$4U9'L? "1%,A@@WVSC*P]3S,,A6+?>_T3<<+LO&!;;4QTC'^UUOS U5W!%,#RQ8]+YZV MP;1.RE<@;81&[Z6L*OQ;*P#?HU]C&!($?KUH0; ;^^^[] 6T.L" '*K,YK57 M^JMZBH];?HX%]91 M9$*R9W4MC//!VEL:H3LK=L7Y !.3WWBU$/(_5US7E?Q&1-D8K'\+DUM,IC_" MML\J>O46O^W]NLNSZJ49=W>\&WZUCH9N OI& C3S(ZN_X4K _6_[$R_?'CH- M>)EL_"31@2>8V^,099"O!(-L\ =SH<_[ S\SL/_-N1Y"%8ST+:TNZ57[XZO_ M6*&[CJCT6FRCJ"<^L)DR;1?5W'AMM;E:+^9M*>2JFU?[LYFL2GDAEYIM(R?6L]OE5>E A/%-X04[ M+%R-M)@JT2!>/I25XJZ5';5II=CI M'JRQG%HS]GZK&PF3A%U=GR:@T?DNSMO.QT;] 9[] MYP)C2(@$TNA",]F #LC[*I^XG4A1FF;:>0.J$NCO;1=*F,/P=1J4]E$O0T'& M>XVQPBW/-'1IG.'+:%*7]M7V--$NV#_L%(<^ZJ&+N==3)[ ZZ!(&,# ^[$ZO M>\F!)*0%I'"-[.CG1IM )ZI<1S(ZFJC*"C??V&-Z-><8<>Q8<-V;OL61JK>V MNWX[%^)]PTA7/ @.: Q!KC:2:PD*C:SD!45CAFM,030Y6Y2"FAA"'WLQT=YA M1H'->;O Z+I $ML(TZY+-0,&-NJ\FM!G <\3M:95%*NE'>(@[1BY$\/9?=BX M9I6-T>L'M MX)-#]! ,20L(&Z;"=S3L"6IC+[YW[2,]B85D3'H>\.?;^5E]* MC1I,YS>+2-HV- F2)':Z8;,%PYQ8 SO&DQM4$LB]=Z+Q2]J!L]'QLN M1E$B,&98SRSL@+0'30P'J!;F!0-U -Z-:BPN ZR^96C<@TX^71J5H@,Y3"+0 M(-&>ES/[B&8#-YB\JF%XESH(BMD$L!,ZOF/&]JR< #5MWO(O!K,Q4M.> M J5++0,^TRO-E(>84Y=VM>\.+ZLN&?_E= ZK14QXG _6^3[*ZYZ'Z0U9>*_$ M+"43,BL826GJDSB+?%((&9!,2!I+0:.<;9[MN@,QG_)S*185D/+/DUE57TEY M"L9-R>62@HDTYAKN3S/>4<#Z$ ME7R\1HA/@51WK3K_D*R]3]I]K8W]>M&"D=Z^>1!J?;)U>K):7"\/ M'7YZ#N MH:J;'4@"@2G#.1>$ M%HR17$@_$E0D-!7K/E'KY)1BNP_45L':4ZGQ,$A=NU '9(>^I0[(]@ED/ M9 MP'S"0RQ_EN:"%"K)B"BDRO 09"34QB%(/P@*&A2D".#R.,\2DON,DB#D093E M112'_I,"6>Z [%YZ[QVZH1VGWOM%ME([9W56RC(9Q\F-%\-!3ERL''!D85(D MJ211CJ7D1)(0ID0,BFR841[%12ZS=7&1XZGCG%*B6(%-BZ.0,#]*B4Q4B(=? MPS3(GEA<.&GAX,MMZ?'#E\Q8J$3!":78Q8&&E.3,US\5?AQ+(9(-^.))(G(1 MQB2.L+1UD%+":%80D<<"==_ #]C3FNUQX?#+>7GOSS.GLJJZLT7PUC\E)L,[ M6?%BV,?)BI6^NRP+(B4D=MM-25RD(#6R0I$@99E* ?U5NN$940E-_-0O2!)Q MN"YJ$V.0L(_ 8>$3&J$C 7N?R:2-4 MT355[UX6L3O'[KUXYJ]RBGU63/E-,<$:-G,\+7?AQB0O AIQJ6-IZTA)E<^C).3$#X,(5/HT(D6*VKK(19[F29@F^=.J MYZ,X?N!8VE$AY:/YJX?GG&'%MA/P#4K]\*1OTIUMML_T'Z*QTIY5_J_U7'BW)/#_IYH#3 :<#SML 9\:C(HNPUZ@0 M!8ES/R4L5R%)$ZYXK&C*V$9'FKMT47_5Y2$V\^!4;732N8L.8RNU?:;-_.IK0X$# M-7\<> ?4 Z[6EH[_8M=4%]F]\N:#5;UE8?PGK%*[YV49D)8I,WER-:7CDP_> MK[^^>\'5?#],O5\D:Q:TN=)] '4Y6SD]HV= /H,E\EZ;PK)^,G77D3KNNJD,(3WGBO;2M$?&S?EQ'N;AS MIKZP'5?A>]T0"?O-8E55';"$QVN)BY5(!PUL*=;O'A2)%;*%!1YY+3P!:[&- MO*H^*V&UN6YV4IK/VEK-+[$ *CZYG<.?V.H,EDB59PM30-0T9X17RK,:'VP6 M2%<;QN*C\W*^T%5:^U+!&XR'%>5.ZP7,[E?ZI_0^326N"9:^Q:Z4V 27*E56 M@S*H']I2U$WM_?>B;.HS"DO9S/_M7\(H^A$KYGJ3OBZRKB5;XYCA%],\I&ZZ MQHK>.?"/N4Y7LYZ?PQL/K960'V,B<9*3+!4^:'T%);ED/LG3.(L#D0?4EQM! M,Q7':2(5"4/LT9WY.RN$&7CK5 M,+#]%D-LUU"LOF^-P'7A84/\XQOOK=JZ*^"]2>OXBQGYI[YF^-.M/'!;$(UL MWT=$TV^26WC HMS8Z@A)OVN)0-LYUJ VA3YAIF>--,ABX];C#\=-1Y=.Y]P! E9SLSS+J T["@?U>-5VM0MLU[NZ/HM$>Q&ZU5 M<73;!4[;\]&_JK?P_1^ M1^>AM1KIE?[E!:LO?]A>-KM#VYE*]F6,V 0*U@]H>:D.6 M*=TH0":A(C$+ 64C^",!:S:+(Q[XV89NHQ@(L"BE!)4?$D=XRBJFG"B9!WDA MTR2.5KN/?P& E&:W?FGJR =82^3'"021H62I",1@&) MTP+3G"4C"0M$ED8\9L7&,?*L4"I*8TFHQ+,U-$V .;@B42$"D<,]W&>/3NC^ M>'=*PTLD]%'7'LOZ%[ YANVUU7=A,FV;1-ERV]@,[L:U6^A^<+K-%BCOBQ8[ MG9U4LW/JG>KN>:91Z%0.G/!H2J/FSTWK)A!#,ZW(P! 7V&MTT:"$P8Y34QP1 MB"?L]=CUYQL^?-G/[,-45<9,^"*Q6Q_^=,+GZ(&U#:>:@66^-D9XZFR!32K1 M%*&7PP:"VM;HAH7O;_ZY@+\63 X[#O:MGTVW0MA/[(.U:,VBJ$6E\*/^'3IN MJWN^E6V[6)^5ZQGM>D;OMV=TX7I&NY[1#VM@:%_]%BMCT$5P';R=T7&?@Q19 M7B18P!(4J8+$G /W)H*31% _5SEH7=G&D;,[&!W++(T3T^!T?[;&[B/-+U$% M<[;&6AF2,* IF!6$IID 6HTCDA=A1$1>1+3@/,W#C4K3=[ U'I"^#RDN_/3T MOKWH.AZO&@8O.>;YWEAAWQ/VC'784X=D8/.$;N"L&^ZZH,Q:4$;1 M7/&"$95P *@B#DF.%9.R+& 1J#H1C3=.B 1%$$<%!4&O I_$2D:$,>7#/7G* MTB",61"N@-K?]1:\MSL0[ W/=M>6?HEXMJ',3JTKXT(W![^H=5Z':NK)FJ?! MJ;+K7!'+,.32ER0)54!BZ4>DX DGNMBPN0M#=E)BX[O,0\Q4:P]KR\Q M/\W[6,^EEXV\5Y\;.:.E&/KH[!:CJB Q7$U9C7WF6^_5W[>-9L6,?37V3M K MLLPVT/D-LUE5\CZQ:WU2@! ]$'30H"5E#?\[_E_R?Y"$>:0D@35B),XIJ/J9 M5(2J,(QI(%0>;YPYV!__[RVDX.S9:^0CT/UY";Q<=IG:6DIJ99[:;>DB]3U. M;/B'GG VKP^-:5+%TD*&E,0Q Z91603\P@LB5)#$(A9!GFTPS6WLXSLRS75G MY$@K.3(.%FQHY?35?T[K V*9J2:XIWO_AF![NJ&\Z5@3/A*8GZ M$.H7 6I!,:$1B(,DB%+0@6A DXU:S7$2"SEKYM@75OP&@ZJA&'V(WSWZUK>S01=F6.D9U];9[QHYZ0N:U M:3+.PNP'#(WNO@A,P)NNN.G["-CFQM<Q;+HF/_$\/['!29)?5(Z^Z = ME/?4F0@K,BYVN2*C2G?>[9!F(R2M!A%V;;#:B]2V+N>'TYJ.*GQ<-802V(693'A41 " MDJ8)87ZF"!591FDD1)+P?5A#AR UI CR7 4I811];XD*";97("G+!,@,E:MP MHR[8'N?Z<%+#3T=9$8R"K>UAG=1P\:A'LPQ_RY37SBWZS-VB292&<1)0 MDN1H/J8L)CF7 9$L3[),THS'X4.<9]@4^+^?OL>L;_-U[RCUUUI ?)^?=/M< M<\936<0^H6F4H"+@HR(@2<$990D%2YH^R-D-JP$\V&S]L;^M8.B+U !0GK% K,T9S0 P!591.(\RPDM:$YD(AB+ I$$P5XLTT,02+&*LR"-4A+! M($GL@SW.? &B229^$N9@G8:; FD/Z\G]*"JR./)3$M(<-#">Y*20 MH4^2R ^+. RCK-B+2V!Y2+QI=D_EG4[%:8*L%;/:WF.MR M5IL'_6]9!^*!2SX\>3? V:*9U=B8ME:Z2=E")QUM=T)CS:^U!":X90+:^)8\ M)E%[TWK>%4GR9C6^M-0]%KK=\]I^^Y8E32E<1;HK1EC6S!1%8[*J+X]Y3M-SY1;NU?[5 M'<1\IF47'#@]@^FY4^"NCH*KH^ XR-51. 2">H 33<\N3G"/^./)T%0?&O.V M?9@P;0.&IYGZJU<]"V^=H]8Y:MV4CWG*CLA?T)0?+2%\Z*H'A66[_+I!T Y] MQDGGGK?/]!^BIO>>Q?"I=;ZKWAL_K_F?NB.O=HV;WL+FPWJFLV=F%9VNN.M= M.M]]\V>>S6&-.V[I86#4WK/E@B+.AY]X"D=QF(V2 M<'=7)\<+SX87'.*]A%W>?WXPS_- II3D10R(5]" %"S.2!CXL1))%J=\X\!* MG@B>^R(@2N4Y@$,1_ ,A ^83%E )NI"H. )N%^ZFT> M",!&HR#)1DD6.X!]F$/06S^%6P]#<=W#X=Z-E<+)[?7H-["?7T2!3Y(@% M&1AP?AZ""I0529I)IF)_+T>_%ZR5_US M'Z^@#_:6Y[@)O$XBXL??IQ1@9E. MQN)[X&/=^^I.NPG''WC]-O9-94U9>-/+PT!$>:_>T MJ 0[N9S.:X]ZOY1-._=.)G(J)KALK__M7_(P!&8^E\M/]6?!CV\\N.4WVL(# MO,]-_0_)Y][I8C:KKKR3LT9*O+3U!$4S_!.?UPRN"P+][L"[+.?G\#X."U(# M<^D2L!/ZC[I!/Q!MO)E]H("-JVHPWL?>B8XH]@$@DA/J!(IG,_ #^]0N6=-BEYKQ\^[6A0IYPCBI! M^T5R65Z@2/J)5G3*)>H2O^%.O[.[MK/74;K2ZRBY07>(_/&V7%T- M7$Q/, )LJ=/Q$M$"?V#]BTKJ\A::"X7TZ 4M*QVK M!QY'YN]9;+9HV@6%Y]@O;@* L?=UB!W>)457'6B8#W^/-BNARSG6'KL:L5,!C9&AR88X#WT$EWXOOZ 8\\ MC8136-_Y>=D(,J/-_&H)1"N8^'D!:$1;V728"*!Z7L.@J\JC;0MZ@\=! Z4P MT9J!"-"S;/$-@%(F0?DV8QL_(36]:-GY>8WJ>WH>Z5_KZ0H;;3*=+O.BJ8)) M_/JBQ.VV#^N)2!>"41@E,-PP*RL)#'0"MS5R D2$M+Q\Z$U\NR(:E\16@^5: M3FEUL^SN!MQ(I&!X#[ 82E=X&WRT:*9F#OB>@#5P&^] .,!0M&^^" M5HL>+?KA]TN'7%J"&C'0$X13$Y9J0N1SGH=Y0E109"0.DX+D*@Z(E'Z:1U+$ M2;H1] 2-(F4%7.G3."=Q) .21\PG02XH3V42\$RMJ F_P$;]'??ID_IB=^CG M;H/VI!,$T7AWT\.7J!.,O?>+II.(UY5#65H(P)7H+4&0\="4Q#4$\,#L/<,W M'.R'LHNR(;2U5I([AEHF:"5X2#W+0-%.)8E5@0X]%1%6^$61TR"7T4;R<5+D M:<%S3D+%X!X_]$D19(RH.%0^%05+F5CW&7SNUO^7NOD$>]R\TYN#+47E[J:B MMV,J?[RM:/S+Y2D41\@D9U-XC&8L42H%5C4*,";GEU).K1S:+M^L2#4B;0:B M&)F*MN?X8-;=U@6V5Q6&6;5H5Z3?DBTWY>"Z.E(O*H$O *[>)LA7-?VR72H] MH)+,MT$%VA44+I]C<'Z "HV$L5[@3.QQ^.Z)2\-=.9M]%W9DF2\YRU*2,P"# M6$6"Y+D?D"0O$A'%4"[!.">L"K-FZUT.T)@:C)[1JXFU0AQF M]9B5JH!'"8^)3-" B*. ,#_*221$'(@@+8J"W=N > ?K_]DLOP.BA_(A;NH< MZ![CH$HT1ME9]U=H7>;2%+3EY0S$N>49%/R=,VQ@2% =.FZUKV N)[.ZH:!\ M@%Z@"^WBP_1Q(:5=%D)6P'SPO74!=)Z6%J;?=E9]V2[U*-1J."A'WK3V0/G0 M+A Z[0;>S,^]?RYH,S[F$Q_%&4[J^C56_RVCSHN4WQ+\[XN*Q9^M;/J7JQO)("U/[+Z&\X "Q?W MD?IO#QV.OT75K8=8XB>8V^- 2.BO<%3'0>=]GO0,^-RD0!.J8)AO:75)KUI; M#'E(=QU1Z;781E%/0CA/FMUP R21(!BG?K:6!1#XX_BA%#BS&EH-@"68_$_X M/Q-!]YL2<./H=BS>AZ\__^:%X[_\=O+QY*\___;SQZ\8M0FR'T^]]Q].W_U^ M>OKATT?OY.-[^/_DU__O],.I]^D7[YJ/YM+\7SKOP#HZ$*)_UA, MC1JJPX8Z:E#CJK=2!Q7U&1/C'>G?U<[A Q/O,"^K] 73&C2*KHR_?OP'N,P+ MC%4 @P8[&'[UR7^;N50U3%"_M9P:%5-KPX/[<33H!?1.IM,%O/B+!%UG/O8^ M+-4A5%?@V:#[8,[:8)"#9XZL\K)E47'=0;O2NM0E;02IZOI/O&8P1^WZ*:<7 M=84.F;+]TTP;ULVH9ICV-_8^P5A!_<5A=JO/]7(;UY:'7IK&=#70&F*[ +UK M]UO'WB_PM+JQKS>/XG318C1*#[LIV6)NH\UU.W2A]9LP\N 2'2+#!@M5.2F- M@C>RMY3(7:4J,6*$31.L4\T\3:^1V8?/H.]Y'T9V/T_&WJLOL S="%]]UYZ= M]/IK=65R4 ;;UJU8-]0IJ+]M2QM@)7BF@&MT*<@^.F6NUBLSH5=(T;WZBJKR M%-9X,5_ PX#XRUJ,'7T]./H_O\BK] M#B:1_99O8=+P&DSGJHL^Z[EA3B_2EUD)"@I3NP7?3*[6TF(#A$&Y;'+&<''[ ME8,OX4<-53@?X^^]T&PM:5.5Z+'6-#S 6ON]P>K)3,Y+9,.Q]X=<]E*!C19W M6@WC06\7# AVOD!$1S,3I]PO\W:4'0.K[UH/*WEP1>\R)ITLL$UF#0UNV:1N3>2?-CJ2L&T>$TE;P(L6)X&I-&556L*^&_WB,MYS<-V01II M^PP(6(97'^LIT=?\TD_@-WOUJ[7V-X> -MXN^#U(K-US5NVG"]E JJ"'2:U9FHQ?3+G5WNMA MRA#<6.ISM+,% X*'6T'C0L'Q^M6'SY]>O1GIMUE<7E;Q8?(,'6@-U3D[M7GY M1]H*^D_OKU7-=&)1\R<@Q#+EJ+V: 5VS**,1G- M.'*GNK;J! 8/VF^O)PTENR: A;%;&LE0]G%0-MIE8B8Z@)=3EE/9G.FYB05' M2@6EWWX%F@> LAP$<$5:F@YW[J(G@X\ZW Y".*)IE6, MPO?4^O?ZBI[!SZS!I<2 0Y_S:;_J>;3CD'J*P@\;]9'AZU^_"CZ_>K-U%)U. MB+J9S1(UMHMF]3 :X3"W#.XS3%VN#>Z5_?#5&ZTVT:H%,Y)>(&'IM=4[7U>+ MSL2T-*2?-UQ28PFV&D50=!.@W85".Q"/"( 6-"6JK"9VIJVE0.V KR]AUZSA M""0Y6:'(#EEZ4\X[_?WCYY.O?ULZ[(V.9QSVY[*:]:D!K:$O3*T8+"/."#4Y M2TJ:R@=48^QDW!AXT2=08."BBL!CY%#+A]G!9NKHW0P6 '6_?D,O)2-,/_CD MZZ\GIQZN%]C<93V\JYO@B@UO,R'TZL\EG>!B JW)2ZT1+8>II+968+-6LS8I M? Q:% Y"JT\ZG%(WE;A$K9U7I3;C@4HPYN&9AGX "_-F@?ND8R38;'NDHS$P M E-E3<\+&1"L48GJ-V]0?].\N>W A9Z?3<4VS]8.ABM>29/1W9D.L'?GH"G; M*(JAWQ/$5!C!5_F-MD:,G%.SQ\VT,Q10*2]%"6:Q-O'U33#\DHZ\=T!I%&6K MP-].88+GWHE"XUH_ZW0&R.,DA\%Z#T@1AWCFG37U)2P4-QNC6T@*J73BJU41 M_N]B,@-N!\Y'-OUI 1",6;FG^-%BUGJO_^^GGT[?>"=\/O9^[Q$'/\3/S'FA MJH^K68L2X*;2:4PZ'5>S,$!3:TQL8^WAU0(D AB: KD9!HOI]<"_> @!F8R: MW!/K-9H*V@C,CY^7E7$M:=:EK77G+"^A.F49'@^8E9I^/V+X M/ZSYCWN%J?=L)?R7O.H=?B> _5QO+-+V8LW]CH#L>9^?,./EG3Y@T';(IB4EVB0H82_*IIZ:A)W5(T#E9%9;8 *A MC+^A$@022"D04R?O_^/=W]_K!$@@C.ZH3I>9^?LOOWX^65/:I*'M"]2B %Q! M!P3-+1QY'%;#: !3? M%_9ZH.\!DY*I^CW5+&N1&J&RTOH4: MC]&][.!1/3*.-#3*M4+V[J?/^D$@'%;TW*6#_ZI;-*-=@AQ!(Q,@^+R4.DE# M+:K*6(KEP"W9S5]J+:(+DVAM4JF2ESJO%'0S24T;8)QD%R9H$>N-^J$,+HR] MGS%!QZ:#ZHV#G46%"'8"3UR56*.IJ:Y6,FA_GVJ?_RF:NF;F5E70JUV9\2QU M0KNU9@_U.V!=YZ!'S,U[!M3170GR!-0,JXIUV2H-O1Q,Q6A%L/Y3V>6MU%KK MU9JG\5SJ\EH35+HH:DM--Q.'A#O-1\8PD5OS#4 M4IM !>L$.I !:&(+KDEMH3?+["1R86G/( ^ M)D!)M1@\Z=5F=&;3^ZK/ :/:\XVB*V.I;>L92[$Q83V;$CFE[&:/]"^;B7:' M3J2<=VLPG#@\0^D4/>'V\SXD>3Z8X5JZ:(1I@V93QVC<.O(]OD:U<-?\&)-_9:&;)AV>Q M\%4:(3>6$Y^]I+'#R&]U:4TNK>G.:4V!2VMZU+2F@S0"[C?M_N@Z"(IVP;3_ M!4.EWTKCM%E1 70DL]-,0#3Q/RNTIT6#8FC6%\6TJ0*-L1CP' _>?=;;$NAE MKD''T;B,*O127UFI!8(Z&+KTSLN955T&T@"$DE$5RBUZV$I[%# 3N(7-VQ0VVMO5N0UYW:)6]LFJZ.G(:NF?8>5T MSHCW$_ZEVQ.8P,C/Y@@ +,DGY#;CX< -T6:&\9<).:OJ*UP)5#F-*6&^Z;RC M6D^4566UAW=TPFJS&*#W7K7#&>IKNTDJ/)5I.HA:&2\66JZC" UC>V!S-$PY MJJV.A8 (PVZM#]#HPY3#*-#I:.!, M9P/]K;X$:Z49H3KU7G(YP5(N83&RCNJ3Q3<8Y# @IC7S&H8SFWOO]'-_UL^U M7ZNRT@I..5^QW]YA0C8.Y<.*HU"7$\&-K2H=RC"*?Q&.NOPIR**[VR6H/2+NU#*>+P+)TN]YO^URY%85KK M(FE+CD$J.&N ^8R5-32*EF85^K"7:5[:-+5VZ8>O[S01K@>P-+KWV3^((D ? M]-N,=L!1 [Q+'8@I[=N4Q&(HE0[Q3M"&_.:!+6,5=##L:(\*,]G@Z/&4A+$\ MRD9CG64*C! ,A].%^$"9Y0:Y;3#0F!-@/\#S4((L6NOB_S!5-B[T179 <6), M4(.@,ZISZF!4 QZ>GFF)A QH,4C+DPIL:+AP'73QD8LS( HOZ(%9P@)-A2UK ML?0JGYO5, =+VT%$ S]E,$NE/Q[&4K;N1V]1KR[/0'Z,<4-;P\1ZC_M!Z$U& MAW3_L,XH!J8'-H=YA'X4>EIJ@8B0TV&4O*KYLLS-P,O1!U\T:N$([7[C%.". M%F1@:21AG2N$69/V?7@H(=@6'QN:I5H_Q4&A $HQ!;?"?S6RI6G#\UD3+W$ MT#FU\?7>2:=7 AUQ*\&RUA9>65^QM84R4=%5CXEU(DW*N7$PZ.HM,(*!)\56 M$4+4P"/BB!;,3-E.?4GS\)]U&?:.!QSLUFWHH$[K?0SV3N(^=,MK2K[4E:X, ML^2_3JT4;VRPSOKK4E4PQ;C;T)$]-@YR%1V M0Y\FL(5-45B6A<&U6?I?<<##A,<-" #YAS'(JV"'6M(RB\ 6$WIW/@S5/H'"\VEAA*)!*ZJ]JTN19;Y!Y;=#DP&Z:=:V3M^1 M07T@Y-8X.2>UCF[IBTK>U(2CH:2=GY=2%_\R8=#EJE@SY)TMU&"=[WTVLGG6 M:H@LA58*UYV+1;,WIA3 H@=*U=HNV+U+1? WS@7RRG= MNG2>Q9['M42W^4.KUL<%:BR5UVBF1+[K%0<[5IO>A'['>G+5*41+^7H.]-H= MS<3M?_?I[Q_>>T'A:44 %G@EO1Y? ^AUCOD-RXW#G=1/!+U=FLPXDXEJK"!\ M;/^TQN!3+T'50F+R%@@@J9$ MC@:X:K10, P*/ZXT'EX\'Q]"!IG.>E\_%.M>.BOS7D(P!#4JI87T=8RGAUT M?UT';S99M.YYQ-/Y)_A,D^<6:C5DR'.3>HHG *S"O#99$]LH=7QR>4NGL^GI MVORU"UA-F.'.O;D\!UJXI U\VIT3[QQ&^)3MX+UZ[$ES2BMS628F[?0BSJA.M4-" >]%/W. M6%Q&AX7%H.&Q"[BOFSW%11_&\+KD,!W\*=%#UZ_Q2".@_FPEEQ1?!D+%'M$2 MWAFJ2V99.M-XC/&Y0:QO>0 .U#S:V.AAV:Y/&-XDI0D,HOGWZHN-*IO5T7M@ MBC!L.99UFX-]N^.*Z_$Y(]',J#OKY-H]6V9R=!5N*ZJR U5%:66LU*6/JYRX '5VI_@TV_I'-8 MNM>O?OOCU1LLC&DSD&%U?_O#.P7GGU^] M<3DZO;NMRP4>J$,2,S!:C8OM)GQCF=]V!.*2"'%HA>EB<8;M^HVIFWY3M&S;\HB5,7S'Z_&1@UO; MM26Y>22=_M\MMIR:5M;M"@7/P;836M[TLG03J)=:C;5,S1R!>:S?;^R9C@^] MT:G/:J)-1 8VT:C3$9?F5M/G1>TR)+7RVIUL17>ET4G[&L)7ZP*H,PFU<[ W MX+9HI^WRO-!2+3!K9A[3:O^C.8F*$A"=BEA>4"^PT4TP+K8DL=[*6C&KCB\P;1 M^6'%M_FU"QX:/]MG,)[JZ50" M6DI>2>I;*G@]CUC]?$C.2S]O;Q8-GKWA.34^UAF==E5S];=4NS"7ATXPC#M' M"3COJF]KIT=W1J:+F1@8[Q*ZNERPEH/X6)>3HT$.H);$C99.>(:+RPV;LNS# M-+U1 ZO1H:0Y9#/"V%15+X1)\1IU!YX(/9O6VLUBO*T8-)IW9M[*T:0^SFXN M,6>*.A\[GKM: ]OSP7&>#2NHCXD-X_6V&L6:RHX.+'/$0"OO?\J=&[I]'^1$ MYP*8=.0_Y=7A>'I<=IO+;KM3=EOHLMM<=ML]L]OL68L5_Y,Q[RI)!0HM>S*Y M'7B"Z:7!O59ITN,5CVC@\\[C7]Y3M,JILN#GX.KNU1FT.-% M4VK'[K+$O3W7P+4@-0[ANJ_I\KS XU?1&U;3WN;^K='%QSQP=>DIEM!N)-;@QK\CX272%J,X@6SG2 M,:#>U1/T@XB\S4VH+T&;&3AI-8D.4@1&^F+K)E]3=0 M[6HV;?W0SBQ1HYU@3-(F!9WC@?.1'GUEBNPO8SZF2+_F/N,6ZM^')8I0?>V\ M3C;Z8S-@Z\8D\52#TQFZ^K\^!]$;LO:\T3" H$]=&\6SZ97/;A-AEO8]91=3 MA9W$$@2ZB+$U6*U3 E[9T'D?+FTGZ"MJ5@>D*-;\T05!\ GVR-G:IESJS5XV M%D+'-M=1@ZY?P/(D'7H9K!&/ *?'L^;8:*VOO,\[QL16W:>R.V%FL.C=]-CW'LNS_1Q\YN.'PV/,NT,Y9E5_DK+\P7% M>Q"MS>ECG)JB#&/-, T7M7W*$^[()F!O@7TUWPBF6I0BG=?3U#+LZU5OP3>3 MT:5-.^OF67;$T':RS9"<]]4S-*VVJ([ AYA#W8ENC-WV1_