0001628280-25-036811.txt : 20250731 0001628280-25-036811.hdr.sgml : 20250731 20250731060937 ACCESSION NUMBER: 0001628280-25-036811 CONFORMED SUBMISSION TYPE: 8-K PUBLIC DOCUMENT COUNT: 15 CONFORMED PERIOD OF REPORT: 20250731 ITEM INFORMATION: Results of Operations and Financial Condition ITEM INFORMATION: Financial Statements and Exhibits FILED AS OF DATE: 20250731 DATE AS OF CHANGE: 20250731 FILER: COMPANY DATA: COMPANY CONFORMED NAME: Proto Labs Inc CENTRAL INDEX KEY: 0001443669 STANDARD INDUSTRIAL CLASSIFICATION: FABRICATED STRUCTURAL METAL PRODUCTS [3440] ORGANIZATION NAME: 04 Manufacturing EIN: 000000000 FISCAL YEAR END: 1231 FILING VALUES: FORM TYPE: 8-K SEC ACT: 1934 Act SEC FILE NUMBER: 001-35435 FILM NUMBER: 251169163 BUSINESS ADDRESS: STREET 1: 5540 Pioneer Creek CITY: Maple Plain STATE: MN ZIP: 55359 BUSINESS PHONE: 763-479-7474 MAIL ADDRESS: STREET 1: 5540 Pioneer Creek CITY: Maple Plain STATE: MN ZIP: 55359 8-K 1 prlb-20250731.htm 8-K prlb-20250731
0001443669FALSE00014436692025-07-312025-07-31

UNITED STATES
SECURITIES AND EXCHANGE COMMISSION
Washington, D.C. 20549
FORM 8-K
CURRENT REPORT
PURSUANT TO SECTION 13 OR 15(d) OF
THE SECURITIES EXCHANGE ACT OF 1934
Date of Report (Date of earliest event reported): July 31, 2025
Proto Labs, Inc.
(Exact name of registrant as specified in its charter)
Minnesota001-3543541-1939628
(State or other jurisdiction
of incorporation)
(Commission File Number)(IRS Employer
Identification Number)
5540 Pioneer Creek Drive
Maple Plain, Minnesota
55359
(Address of principal executive offices)(Zip Code)
Registrant’s telephone number, including area code:
(763) 479-3680
Not Applicable
(Former name or former address, if changed since last report)
Check the appropriate box below if the Form 8-K filing is intended to simultaneously satisfy the filing obligation of the registrant under any of the following provisions:
Written communications pursuant to Rule 425 under the Securities Act (17 CFR 230.425)
Soliciting material pursuant to Rule 14a-12 under the Exchange Act (17 CFR 240.14a-12)
Pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act (17 CFR 240.14d-2(b))
Pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act (17 CFR 240.13e-4(c))
Securities registered pursuant to Section 12(b) of the Act:
Title of each classTrading Symbol(s)Name of each exchange on which registered
Common Stock, Par Value $0.001 Per SharePRLBNew York Stock Exchange
Indicate by check mark whether the registrant is an emerging growth company as defined in Rule 405 of the Securities Act of 1933 (§ 230.405 of this chapter) or Rule 12b-2 of the Securities Exchange Act of 1934 (§ 240.12b-2 of this chapter).
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.



Item 2.02.Results of Operations and Financial Condition.
On July 31, 2025, Proto Labs, Inc. issued a press release announcing its second quarter 2025 financial results. A copy of the press release is furnished as Exhibit 99.1 to this report and incorporated herein by reference.
Item 9.01.Financial Statements and Exhibits.
(d)Exhibits
99.1
104Cover Page Interactive Data File (embedded within the Inline XBRL document)



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 hereunto duly authorized.
Proto Labs, Inc.
Date:
July 31, 2025
By:/s/ Daniel Schumacher
Daniel Schumacher
Chief Financial Officer

EX-99.1 2 prlb-2025731xexx991.htm EX-99.1 Document

Exhibit 99.1
logoa.jpg
logo1a.jpg
Protolabs Reports Financial Results for the Second Quarter of 2025
Record Quarterly Revenue of $135.1 Million, a 7.5% increase Year-Over-Year
GAAP Earnings Per Share of $0.18, Non-GAAP Earnings Per Share of $0.41
MINNEAPOLIS July 31, 2025 – Proto Labs, Inc. ("Protolabs" or the "Company") (NYSE: PRLB), the world’s leading provider of digital manufacturing services, today announced financial results for the second quarter ended June 30, 2025.
Second Quarter 2025 Financial Highlights:
Revenue was a record $135.1 million, a 7.5% increase compared to revenue of $125.6 million in the second quarter of 2024.
Revenue fulfilled through digital factories was $105.8 million, a 4.8% increase year-over-year.
Revenue fulfilled through the Protolabs Network was $29.3 million, an 18.6% increase year-over-year.
Net income was $4.4 million, or $0.18 per diluted share, compared to $4.5 million, or $0.18 per diluted share, in the second quarter of 2024.
Non-GAAP net income was $10.0 million, or $0.41 per diluted share, compared to $9.5 million, or $0.38 per diluted share, in the second quarter of 2024. See “Non-GAAP Financial Measures” below.

“Protolabs generated record quarterly revenue in the second quarter, demonstrating the value we provide to customers and reinforcing our ability to execute in a dynamic and uncertain environment," commented President and Chief Executive Officer Suresh Krishna. "Our priorities remain as follows: drive growth in our key performance indicators, expand production capabilities, and reinforce our core prototyping offer. I am pleased with the progress our employees have made through the first half of the year, and I am confident we have the right foundation, team, and strategy in place to drive sustainable growth while maintaining industry-leading profitability and cash flow generation."

Dan Schumacher, Chief Financial Officer, added: "Our strong revenue in the second quarter was driven by growth through both Factory and Network fulfillment. Non-GAAP EPS increased both sequentially and year-over-year, reflecting the strength of our profitable business model. We will continue to invest in growth, drive innovation, execute for our customers, and deliver long-term value to our shareholders."

Additional Second Quarter 2025 Highlights:
Customer contact information
Protolabs served 21,775 customer contacts during the quarter.
Revenue per customer contact increased 10.9% year-over-year to $6,203.
EBITDA was $14.1 million. See “Non-GAAP Financial Measures” below.
Adjusted EBITDA was $19.7 million, or 14.6% of revenue, compared to $19.3 million, or 15.4% of revenue, in the second quarter of 2024. See “Non-GAAP Financial Measures” below.
Cash and investments balance was $123.2 million as of June 30, 2025.

Third Quarter 2025 Outlook

In the third quarter of 2025, the Company expects to generate revenue between $130.0 million and $138.0 million.

The Company expects third quarter 2025 diluted net income per share between $0.17 and $0.25, and non-GAAP diluted net income per share between $0.35 and $0.43. See "Non-GAAP Financial Measures" below.



Non-GAAP Financial Measures
The Company has included non-GAAP revenue growth by region and by service line that excludes the impact of changes in foreign currency exchange rates (collectively, “non-GAAP revenue growth”). Management believes these metrics, when viewed in conjunction with the comparable GAAP metrics, are useful in evaluating the underlying business trends and ongoing operating performance of the Company.
The Company has included earnings before interest, taxes, depreciation and amortization (“EBITDA”) and EBITDA, adjusted for stock-based compensation expense, unrealized (gain) loss on foreign currency, CEO transition costs and costs related to exit and disposal activities (collectively, “Adjusted EBITDA”), in this press release to provide investors with additional information regarding the Company’s financial results. The Company has also included earnings before interest, taxes, depreciation and amortization margin (“EBITDA margin”) and EBITDA margin, adjusted for stock-based compensation expense, unrealized (gain) loss on foreign currency, CEO transition costs and costs related to exit and disposal activities (collectively, “Adjusted EBITDA margin”), in this press release to provide investors with additional information regarding the Company’s financial results.
The Company has included non-GAAP gross margin, adjusted for stock-based compensation expense and amortization expense, in this press release to provide investors with additional information regarding the Company’s financial results.
The Company has included non-GAAP operating margin, adjusted for stock-based compensation expense, amortization expense, CEO transition costs and costs related to exit and disposal activities (collectively, “non-GAAP operating margin”), in this press release to provide investors with additional information regarding the Company’s financial results.
The Company has included non-GAAP net income and non-GAAP net income per share, in each case, adjusted for stock-based compensation expense, amortization expense, unrealized (gain) loss on foreign currency, CEO transition costs and costs related to exit and disposal activities (collectively, “non-GAAP net income”), in this press release to provide investors with additional information regarding the Company’s financial results.
The Company has provided below reconciliations of GAAP to non-GAAP net income, non-GAAP net income per share, non-GAAP gross margin, non-GAAP operating margin, non-GAAP revenue growth by region and by service line, and Adjusted EBITDA and Adjusted EBITDA margin, the most directly comparable measures calculated and presented in accordance with GAAP. These non-GAAP measures are used by the Company’s management and board of directors to understand and evaluate operating performance and trends, provide useful measures for period-to-period comparisons of the Company’s business, and in determining executive and senior management incentive compensation. Accordingly, the Company believes that these non-GAAP measures provide useful information to investors and others in understanding and evaluating operating results in the same manner as our management and board of directors. These non-GAAP financial measures should not be considered a substitute for, or superior to, financial measures calculated in accordance with GAAP. These non-GAAP financial measures exclude significant expenses and income that are required by GAAP to be recorded in our condensed consolidated financial statements and are subject to inherent limitations. Investors should review the reconciliations of non-GAAP financial measures to the comparable GAAP financial measures that are included in this press release.
Conference Call
The Company has scheduled a conference call to discuss its second quarter 2025 financial results and third quarter 2025 outlook today, July 31, 2025 at 8:30 a.m. EDT. To access the call in the U.S. please dial 877-709-8150 or outside the U.S. dial 201-689-8354 at least five minutes prior to the 8:30 a.m. EDT start time. No participant code is required. A simultaneous webcast of the call and accompanying presentation will be available via the investor relations section of the Protolabs website and the following link: https://edge.media-server.com/mmc/p/mp2aa5du/. A replay will be available for 14 days following the call on the investor relations section of the Protolabs website.
About Protolabs
Protolabs is the fastest and most comprehensive manufacturing service from prototyping to production. Our digital factories produce low-volume parts in days while Protolabs Network unlocks advanced capabilities and volume pricing through its highly vetted manufacturing partners. The result? One digital manufacturing source for product developers, engineers, and supply chain teams across the globe. See what's next at protolabs.com.



Forward-Looking Statements
Statements contained in this press release regarding matters that are not historical or current facts are “forward-looking statements” within the meaning of The Private Securities Litigation Reform Act of 1995. These statements involve known and unknown risks, uncertainties and other factors which may cause the results of Protolabs to be materially different than those expressed or implied in such statements. Certain of these risk factors and others are described in the “Risk Factors” section within reports filed with the SEC. Other unknown or unpredictable factors also could have material adverse effects on Protolabs’ future results. The forward-looking statements included in this press release are made only as of the date hereof. Protolabs cannot guarantee future results, levels of activity, performance or achievements. Accordingly, you should not place undue reliance on these forward-looking statements. Finally, Protolabs expressly disclaims any intent or obligation to update any forward-looking statements to reflect subsequent events or circumstances.
Source: Proto Labs, Inc.

Investor Relations Contacts:
Protolabs
Ryan Johnsrud, 612-225-4873
Manager – Investor Relations and Corporate Development
ryan.johnsrud@protolabs.com

Gateway Group, Inc.
949-574-3860
PRLB@gateway-grp.com
Media Contact:
Protolabs
Brent Renneke, 763-479-7704
Marketing Communications Manager
brent.renneke@protolabs.com



Proto Labs, Inc.
Condensed Consolidated Balance Sheets
(In thousands)
June 30,
2025
December 31,
2024
(Unaudited)
Assets
Current assets
Cash and cash equivalents$90,382 $89,071 
Short-term marketable securities12,804 14,019 
Accounts receivable, net78,011 66,504 
Inventory13,169 12,305 
Income taxes receivable1,155 2,906 
Prepaid expenses and other current assets9,985 10,049 
Total current assets205,506 194,854 
Property and equipment, net215,777 227,263 
Goodwill273,991 273,991 
Other intangible assets, net20,500 21,422 
Long-term marketable securities20,037 17,773 
Operating lease assets2,308 2,993 
Finance lease assets558 692 
Other long-term assets4,575 4,524 
Total assets$743,252 $743,512 
Liabilities and shareholders' equity  
Current liabilities  
Accounts payable$15,583 $15,504 
Accrued compensation19,435 16,550 
Accrued liabilities and other25,846 19,621 
Current operating lease liabilities984 1,287 
Current finance lease liabilities316 309 
Total current liabilities62,164 53,271 
Long-term operating lease liabilities1,402 1,633 
Long-term finance lease liabilities127 287 
Long-term deferred tax liabilities9,737 13,565 
Other long-term liabilities5,115 4,605 
Shareholders' equity664,707 670,151 
Total liabilities and shareholders' equity$743,252 $743,512 



Proto Labs, Inc.
Condensed Consolidated Statements of Operations
(In thousands, except share and per share amounts)
(Unaudited)
Three Months Ended
June 30,
Six Months Ended
June 30,
2025202420252024
Revenue
Injection Molding$47,415 $49,080 $96,138 $101,743 
CNC Machining61,945 51,239 114,788 101,171 
3D Printing21,215 21,281 41,409 42,863 
Sheet Metal4,303 3,922 8,514 7,475 
Other Revenue185 109 419 269 
Total Revenue135,063 125,631 261,268 253,521 
Cost of revenue75,289 69,085 145,796 139,508 
Gross profit59,774 56,546 115,472 114,013 
Operating expenses
Marketing and sales24,731 23,291 48,480 46,451 
Research and development11,173 10,661 21,782 21,828 
General and administrative18,752 16,595 35,600 32,908 
Costs related to exit and disposal activities149 — 110 — 
Total operating expenses54,805 50,547 105,972 101,187 
Income from operations4,969 5,999 9,500 12,826 
Other income, net1,705 1,361 3,159 2,260 
Income before income taxes6,674 7,360 12,659 15,086 
Provision for income taxes2,247 2,820 4,633 5,278 
Net income$4,427 $4,540 $8,026 $9,808 
Net income per share:
Basic$0.19 $0.18 $0.33 $0.39 
Diluted$0.18 $0.18 $0.33 $0.38 
Shares used to compute net income per share:
Basic23,900,39025,313,03624,018,11925,473,937
Diluted24,101,59225,372,97224,291,24625,573,344



Proto Labs, Inc.
Condensed Consolidated Statements of Cash Flows
(In thousands)
(Unaudited)
Six Months Ended
June 30,
20252024
Operating activities
Net income$8,026 $9,808 
Adjustments to reconcile net income to net cash provided by operating activities:
Depreciation and amortization17,264 18,075 
Stock-based compensation expense8,251 8,520 
Deferred taxes(3,985)(4,144)
Interest on finance lease obligations11 18 
Impairments related to exit and closure of facilities448 — 
Gain on disposal of property and equipment— (20)
Other(82)64 
Changes in operating assets and liabilities(970)3,460 
Net cash provided by operating activities28,963 35,781 
Investing activities
Purchases of property, equipment and other capital assets(2,730)(6,784)
Proceeds from sales of property, equipment and other capital assets— 30 
Purchases of marketable securities(11,052)— 
Proceeds from call redemptions and maturities of marketable securities10,230 10,419 
Net cash (used in) provided by investing activities(3,552)3,665 
Financing activities
Proceeds from issuance of common stock from equity plans2,081 2,094 
Purchases of shares withheld for tax obligations(3,117)(1,920)
Repurchases of common stock(23,980)(26,940)
Principal repayments of finance lease obligations(153)(146)
Net cash used in financing activities(25,169)(26,912)
Effect of exchange rate changes on cash and cash equivalents1,069 (175)
Net increase in cash and cash equivalents1,311 12,359 
Cash and cash equivalents, beginning of period89,071 83,790 
Cash and cash equivalents, end of period$90,382 $96,149 



Proto Labs, Inc.
Reconciliation of GAAP to Non-GAAP Net Income and Non-GAAP Net Income per Share
(In thousands, except share and per share amounts)
(Unaudited)
Three Months Ended
June 30,
Six Months Ended
June 30,
2025202420252024
Non-GAAP net income, adjusted for stock-based compensation expense, amortization expense, unrealized (gain) loss on foreign currency, CEO transition costs and costs related to exit and disposal activities
GAAP net income$4,427 $4,540 $8,026 $9,808 
Add back:
Stock-based compensation expense4,259 4,244 8,251 8,520 
Amortization expense927 921 1,835 1,908 
Unrealized (gain) loss on foreign currency(179)(88)(314)149 
CEO transition costs1,362 — 1,362 — 
Costs related to exit and disposal activities149 — 110 — 
Total adjustments 1
6,518 5,077 11,244 10,577 
Income tax benefits on adjustments 2
(958)(85)(1,200)(439)
Non-GAAP net income$9,987 $9,532 $18,070 $19,946 
Non-GAAP net income per share:
Basic$0.42 $0.38 $0.75 $0.78 
Diluted$0.41 $0.38 $0.74 $0.78 
Shares used to compute non-GAAP net income per share:
Basic23,900,39025,313,03624,018,11925,473,937
Diluted24,101,59225,372,97224,291,24625,573,344
1Stock-based compensation expense, amortization expense, unrealized (gain) loss on foreign currency, CEO transition costs and costs related to exit and disposal activities were included in the following GAAP consolidated statement of operations categories:
Three Months Ended
June 30,
Six Months Ended
June 30,
2025202420252024
Cost of revenue$767 $810 $1,569 $1,611 
Marketing and sales808 819 1,586 1,652 
Research and development735 667 1,360 1,359 
General and administrative4,238 2,869 6,933 5,806 
Costs related to exit and disposal activities149 — 110 — 
Total operating expenses5,930 4,355 9,989 8,817 
Other income, net(179)(88)(314)149 
Total adjustments$6,518 $5,077 $11,244 $10,577 
2For the three and six months ended June 30, 2025 and 2024, income tax effects were calculated using the effective tax rate for the relevant jurisdictions. The Company's non-GAAP tax rates differ from its GAAP tax rates due primarily to the mix of activity incurred in domestic and foreign tax jurisdictions and removing effective tax rate benefits from stock-based compensation activity in the respective period.



Proto Labs, Inc.
Reconciliation of GAAP to Non-GAAP Gross Margin
(In thousands)
(Unaudited)
Three Months Ended
June 30,
Six Months Ended
June 30,
2025202420252024
Revenue$135,063 $125,631 $261,268 $253,521 
Gross profit59,774 56,546 115,472 114,013 
GAAP gross margin44.3%45.0%44.2%45.0%
Add back:  
Stock-based compensation expense424 468 884 927 
Amortization expense343 342 685 684 
Total adjustments767 810 1,569 1,611 
Non-GAAP gross profit$60,541 $57,356 $117,041 $115,624 
Non-GAAP gross margin44.8%45.7%44.8%45.6%



Proto Labs, Inc.
Reconciliation of GAAP to Non-GAAP Operating Margin
(In thousands)
(Unaudited)
Three Months Ended
June 30,
Six Months Ended
June 30,
2025202420252024
Revenue$135,063 $125,631 $261,268 $253,521 
Income from operations4,969 5,999 9,500 12,826 
GAAP operating margin3.7%4.8%3.6%5.1%
Add back:
Stock-based compensation expense4,259 4,244 8,251 8,520 
Amortization expense927 921 1,835 1,908 
CEO transition costs1,362 — 1,362 — 
Costs related to exit and disposal activities149 — 110 — 
Total adjustments6,697 5,165 11,558 10,428 
Non-GAAP income from operations$11,666 $11,164 $21,058 $23,254 
Non-GAAP operating margin8.6%8.9%8.1%9.2%



Proto Labs, Inc.
Reconciliation of GAAP Net Income to EBITDA and Adjusted EBITDA
(In thousands)
(Unaudited)
Three Months Ended
June 30,
Six Months Ended
June 30,
2025202420252024
Revenue$135,063 $125,631 $261,268 $253,521 
GAAP net income4,427 4,540 8,026 9,808 
GAAP net income margin3.3%3.6%3.1%3.9%
Add back:
Amortization expense$927 $921 $1,835 $1,908 
Depreciation expense7,643 8,051 15,429 16,167 
Interest income, net(1,143)(1,149)(2,251)(2,261)
Provision for income taxes2,247 2,820 4,633 5,278 
EBITDA14,101 15,183 27,672 30,900 
EBITDA Margin10.4%12.1%10.6%12.2%
Add back:
Stock-based compensation expense4,259 4,244 8,251 8,520 
Unrealized (gain) loss on foreign currency(179)(88)(314)149 
CEO transition costs1,362 — 1,362 — 
Costs related to exit and disposal activities149 — 110 — 
Total adjustments5,591 4,156 9,409 8,669 
Adjusted EBITDA$19,692 $19,339 $37,081 $39,569 
Adjusted EBITDA Margin14.6%15.4%14.2%15.6%



Proto Labs, Inc.
Comparison of GAAP to Non-GAAP Revenue Growth by Region
(In thousands)
(Unaudited)
Three Months Ended
June 30, 2025
Three Months Ended
June 30, 2024
%
Change2
% Change
Organic3
GAAP
Foreign
Currency1
Non-GAAPGAAP
Revenues
United States$110,712 $— $110,712 $98,541 12.4%12.4%
Europe24,351 (1,292)23,059 27,090 (10.1)(14.9)
Total revenue$135,063 $(1,292)$133,771 $125,631 7.5%6.5%
Six Months Ended
June 30, 2025
Six Months Ended
June 30, 2024
%
Change2
% Change
Organic3
GAAP
Foreign
Currency1
Non-GAAPGAAP
Revenues
United States$210,979 $— $210,979 $200,022 5.5%5.5%
Europe50,289 (829)49,460 53,499 (6.0%)(7.5%)
Total revenue$261,268 $(829)$260,439 $253,521 3.1%2.7%

1Revenue for the three and six months ended June 30, 2025 has been recalculated using 2024 foreign currency exchange rates in effect during comparable periods to provide information useful in evaluating the underlying business trends excluding the impact of changes in foreign currency exchange rates.
2This column presents the percentage change from GAAP revenue for the three and six months ended June 30, 2024 to GAAP revenue for the three and six months ended June 30, 2025.
3This column presents the percentage change from GAAP revenue for the three and six months ended June 30, 2024 to non-GAAP revenue for the three and six months ended June 30, 2025 (as recalculated using the foreign currency exchange rates in effect during the three and six months ended June 30, 2024) in order to provide a constant-currency comparison.



Proto Labs, Inc.
Comparison of GAAP to Non-GAAP Revenue Growth by Service Line
(In thousands)
(Unaudited)
Three Months Ended
June 30, 2025
Three Months Ended
June 30, 2024
%
Change2
% Change
Organic3
GAAP
Foreign
Currency1
Non-GAAPGAAP
Revenues
Injection Molding$47,415 $(429)$46,986 $49,080 (3.4%)(4.3%)
CNC Machining61,945 (619)61,326 51,239 20.9 19.7 
3D Printing21,215 (226)20,989 21,281 (0.3)(1.4)
Sheet Metal4,303 (17)4,286 3,922 9.7 9.3 
Other Revenue185 (1)184 109 69.7 68.8 
Total revenue$135,063 $(1,292)$133,771 $125,631 7.5%6.5%
Six Months Ended
June 30, 2025
Six Months Ended
June 30, 2024
%
Change2
% Change
Organic3
GAAP
Foreign
Currency1
Non-GAAPGAAP
Revenues
Injection Molding$96,138 $(348)$95,790 $101,743 (5.5%)(5.9%)
CNC Machining114,788 (314)114,474 101,171 13.5 13.1 
3D Printing41,409 (162)41,247 42,863 (3.4)(3.8)
Sheet Metal8,514 (7)8,507 7,475 13.9 13.8 
Other Revenue419 421 269 55.8 56.5 
Total revenue$261,268 $(829)$260,439 $253,521 3.1%2.7%

1Revenue for the three and six months ended June 30, 2025 has been recalculated using 2024 foreign currency exchange rates in effect during comparable periods to provide information useful in evaluating the underlying business trends excluding the impact of changes in foreign currency exchange rates.
2This column presents the percentage change from GAAP revenue for the three and six months ended June 30, 2024 to GAAP revenue for the three and six months ended June 30, 2025.
3This column presents the percentage change from GAAP revenue for the three and six months ended June 30, 2024 to non-GAAP revenue for the three and six months ended June 30, 2025 (as recalculated using the foreign currency exchange rates in effect during the three and six months ended June 30, 2024) in order to provide a constant-currency comparison.



Proto Labs, Inc.
Customer Contact Information
(In thousands, except customer contacts and per customer contact amounts)
(Unaudited)
Three Months Ended
June 30,
Six Months Ended
June 30,
2025202420252024
Revenue$135,063 $125,631 $261,268 $253,521 
Customer contacts21,77522,45633,13634,338
Revenue per customer contact1
$6,203 $5,595 $7,885 $7,383 

1Revenue per customer contact is calculated using the revenue recognized during the respective period divided by the actual number of customer contacts served during the same period. Customer contacts are product developers, engineers, procurement and supply chain professionals and other individuals who place an order, and that order is shipped and invoiced during the period. The Company believes revenue per customer contact is useful to investors in evaluating the underlying business trends and ongoing operating performance of the Company.
Proto Labs, Inc.
Reconciliation of GAAP to Non-GAAP Guidance
(Unaudited)

Q3 2025 Outlook
LowHigh
GAAP diluted net income per share$0.17 $0.25 
Add back:
Stock-based compensation expense0.15 0.15 
Amortization expense0.03 0.03 
Unrealized (gain) loss on foreign currency0.00 0.00 
Total adjustments0.18 0.18 
Non-GAAP diluted net income per share$0.35 $0.43 

EX-101.SCH 3 prlb-20250731.xsd XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT 0000001 - Document - Cover link:presentationLink link:calculationLink link:definitionLink EX-101.LAB 4 prlb-20250731_lab.xml XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT Soliciting Material Soliciting Material Written Communications Written Communications Local Phone Number Local Phone Number Cover [Abstract] Document Period End Date Document Period End Date Pre-commencement Tender Offer Pre-commencement Tender Offer Amendment Flag Amendment Flag Entity Central Index Key Entity Central Index Key Pre-commencement Issuer Tender Offer Pre-commencement Issuer Tender Offer Entity Tax Identification Number Entity Tax Identification Number Entity Emerging Growth Company Entity Emerging Growth Company Entity File Number Entity File Number Entity Registrant Name Entity Registrant Name Security Exchange Name Security Exchange Name Trading Symbol Trading Symbol Entity Incorporation, State or Country Code Entity Incorporation, State or Country Code Title of 12(b) Security Title of 12(b) Security Entity Address, State or Province Entity Address, State or Province Entity Address, Postal Zip Code Entity Address, Postal Zip Code Entity Address, City or Town Entity Address, City or Town Entity Address, Address Line One Entity Address, Address Line One Document Type Document Type City Area Code City Area Code EX-101.PRE 5 prlb-20250731_pre.xml XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT GRAPHIC 6 logo1a.jpg begin 644 logo1a.jpg M_]C_X 02D9)1@ ! 0$ 7P!? #_VP!# ," @," @,# P,$ P,$!0@%!00$ M!0H'!P8(# H,# L*"PL-#A(0#0X1#@L+$!80$1,4%145# \7&!84&!(4%13_ MP +" U '4! 1$ _\0 ' 04! 0$ P ! @0%!@<)_\0 M-! @$# P,"! 0%!0$ 0(# 01!1(A!A,Q(D$446%Q!R,R@192D:&Q M)#-"4W+!_]H " $! _ /JG2I4J5*FS4'. 3G%>?WG56L6>H7UN;FW*8C^$ MD-K@2AG 9P0Y!"Y /(YK;BUR]MDUNWN&@FN=/C[BSQH0KY3< 5R<'Z9^M9VA M]8Z@ZQ?&V\ETMT8UMY(;8Q9=D+N,,Q]*@>?>KEKUU$Y@3L37'SCN[FV>+?$T@@10Q/YPC!#9^HXH\G7UM#"[_ =TSQ*[3QJH M)A"R&,YYY]0/C/BNIC8ERN+>UCC:*4LLV&+%SC!W,223CBCSV=C#';22JB): M?[+.V G&W_!Q^]5HM!TR,B);>,$[&V@D$[&RI\^Q-13I[24/9%O&#C<(RQ.! MO#YQG^8 UGZ[T-::Q+^H01'<9$[08L6?>Q#9R"3GSD<^!731C((QG'THM+-( M$$XIZ8D5R6M6C6_4$U[/ICZM;2VO9B5$#&-N=PP? ;C)^E<_J72FI*NJWEC9 M"&=X(8%MC+E)8MI#1Y^A(P?F*T+?3);(WEM=:*VIS7$J2I8S MPL/S'(4@D8_3^KZ5>U"QUG4[?4;6=;UKB7@;2GP^S>N"OR;&?[Y]J+-8:_'W MXXY+AE7>D4NY>X5,R8Y_\;J>2QZA!FBCDG8@F..?8;APN,Y_IS5'4NK[#3=-TV^>2!K6SC8K\1,Z[68,1C .1XJQ;=1Z?-JO M'G'[T"RZFTZ]B$\,Z&WV,YE+ *H5MIS^]$DU;2F6"9[JU*R#=$[.IWV<@$>?-*W_ XAMKUIA/OA*XV,A9@>WV^#G&,>W]ZU).E5 MN]*TRQN9!(ED0&PF!*H0IC'MP1^]9!_#A38=B34)9IBH#SLN#*XD#!FQ]%"_ M84:+H-H(-L-ZL$Q@DA,B0C@N^[*Y\<\] ;H..+2S;VTRPW#2F22Y[?,BEB2AY\>UD MC#9XR>2*L/T'";6WABN3&\$.Q66(8+]P.&8>#R.0?8T.YZ'GO)[.2;45"P2) M*T,4 C4LK[_2 > >,YS3'H0=E8A>#\D,(BL7 )F$BY&?5R,'Z4_\!)+%.TUT M&GGCF1V6(*NZ21')4ZVR+[,NQC@GVY K!AZUN)(X7N+,(VV*81VTA.Z-T9@""/(V^!\ZA:_B!= M7<* V]M;32'TRW$NV!5V[L$_S>PHIZLO$N[WOJCPQ72+%';/EMG:+G.1R"0< M&I0=<7LXBBCM[.:>9TV/'.3$H8,0&..&&,'[TW4&O:C/H6B7VFYMYY[@/)$, M$.H5F9/'OM//FL^'K>ZFU:YOH'$FF301K90R^EVMHY8!(91),P1RDQB(CXY\9YQY%=S&VY?!' X'M1:5*E09HDD MQO16VY(R,XJE/I%M=7-I*Z$&V;=&JG"_IQR/?'MFB#2;+LM#\) 8=P?MF)=N M[YXQY^M2>VA61F[2;QM]6T9]P/;V_P#M-;V%M"F8K>*+G?A$ Y^? HHAC 0; M%PI](QPOV_J:&;.W,+1]F/M[=I7:,8^5-%8VVP1?#Q=L#:%[8P!\L8\4A86T M:A%MXE4:IZETU9:G.LDPD &,QQR%4<[LY91P3GWK66,8P<$"O_ !V0$! end GRAPHIC 7 logoa.jpg begin 644 logoa.jpg M_]C_X 02D9)1@ ! 0$ 8 !@ #_VP!# (! 0(! 0(" @(" @(" P4# P,# M P8$! ,%!P8'!P<&!P<("0L)" @*" <'"@T*"@L,# P,!PD.#PT,#@L,# S_ MVP!# 0(" @,# P8# P8," <(# P,# P,# P,# P,# P,# P,# P,# P,# P, M# P,# P,# P,# P,# P,# P,# P,# S_P 1" Y -X# 2( A$! Q$!_\0 M'0 @$% 0$ !P@& ,$!0D" ?_$ $80 $# P,"! 0"!0D$ M"P $" P0%!A$ !R$($@D3,4$4(E%A,G$5%B.!D3-"4F)RH;3!\!<9-$,8 M)"4F.453@J.RT?_$ !L! (# 0$! # @0% 08'_\0 ,Q$ M 00! @0$!0(& P 0(#!!$ !2$2,4%1!A-A<10B0I&Q%M$5(R0R@?"A MP>'_V@ , P$ A$#$0 _ ._"4A)^FOCB@I*N1Z:B.\.]=L['6XJJW-58E-BY M*$>:\X4QS,4%,2$^Q\P<) M_P#=C0EV!\*VJWG447#NM5)#2WU> M;,WQ'(/Q4=L(2/H/]Q&-1"G-5..VZTMMU#J0M"D*"@H$>H/T^^KV>X_;7,:E M;@[U^'-7TPJS&?J%L>8 AMY:I5-D<\EEX#+2CZX(21[C3B=-77Q9/4,\Q :D M_H2X'>/T=,4 MY7OY2O18_@?MK.G>'WV4>>R?,;[IZ>XS9TSQ5&D*^'D MNC M8I5W]#AWP,C(Y]M>24@@\$@<:B&_&X,C:S9ZX[CAL-2)-&@.S&FW<^6M2$D@ M*P0<'\]*=8W7YO9N1:J:S0=JH=5IA*QYL5+RDK*3A24X4>?35*'I;\A!=;H M;;D#\YH:CKL:$X&7;XB+H"]O\8[O6$+P%=I^;UP0?WZ]V]\=.2W&40E26RE/S*7VD+('X003I8TJ7Y MWD%(NKOI7?V]<;^H(9C_ !7$:NJZWVKOC,]P4..?RU2"$@^@TE=3Z_-U=CZG M"?W/VU;@4&8YY(E0O,2I.03C*EJ!5@$XXSC15WVZD[XI%$MN=M?9CM[0*S&5 M+=F(:66&FSV^6!VG/<>&N7_,M:-MO DU^"G,FGH2^9#(PDG*>[CA23^2AH MVV-U17/:FQ]9O+=:VVK0-.>\IB$A"_,D\ )P%*]5J( _(ZG(T.6P1QT>+D 0 M3BXGB>%(!*>( ;= M>=?3D@]JDN)"B"#GM0<:+?1[UI0^IN63C>(XC[P938*N1(J_;OA]) &E(0OA*E(0 M5 ''Y:47;[K\WMW6ME-7MW:^#5Z>5=GGL!Y2>X#D9"O49'\=3A::_)07$4 - MMR!^<5J6MQX3@:=LDBZ )/\ QCO+< XRG\LZ^I<2D>@__-+?TC]X5)I=T[1R8T"=)0R]4(J7&VXB%>JU%2E#"?N M=,S9=Q&YJ*B:J%+@%:EH\J2CL<':HIR1[9QD?8Z1*@N1Z"Z/L0?QEV!JC4S= ML$>X(_.)OXSRBFQK)(.,5&2<_?R?\M$_IUH=F=+_ $DT6\6J0W%7+H\:;/?C ML!6]Y24)0A"N5>V<>VM?5%2SX=:;BFBHJKU/2\\BRA'\?DK6!80D M@GIZX"[UZGMQ.J*ON4*S*?,IT%[*2U#.'^P\9>>]&QSSC^.F&MV^:-TF]/5& M8OJNT^GNTV*EAP^8IQ4ASN)[6Q^-:N?IZ_;2P;I^)'1K&IPM/9:WV&P5%E%0 M7&^52O3+3(^=U1_I*_>-1ZP^@B^NH&HO7MN_<3UOTH-*?>?J+Z?BPSC*OQ$( MC-X^N /7&0->:\-> 9$(G4==DGB5T_8?[[8LZ\Z72WIP+SAYGZ1A_P!@NM>G M=9^\%=M-FV6OU5CT=4KNJ*0MZ:?.2V,M\H",$G')R/4:7*F6#2MKO%,@4.B0 MT0*7$K3"F([9RACO9"U \X).0,X'TT:>@KJRZ?+KW_K^T^RB4UN?0:/^EJM M<,5 YTA]M3LA$6TH M"#L>NW/*VMQ'T,Q7)M*=+@W'3?EZXY?66>WI5OSC_P CDG'W[/72P='_ %>V MKTR]+EOQKE15?-GRIC[#D>,%H<"%H!'<2 .5#WTT'61ESI7OP)!*OT')XQDX M[#[:%'ACV72KHZ3Z2NI4JGU!R'4)26E2HZ'BT,I/RE0./;TUEPELC3%><.(< M8VNNF;&I-/KUIL1U<)\L[U?7!GT/4.J[H;T;H[HJILFE4.NPIC<4.)[?,+B_ M,Q]^U('.,<^NHUT#]2E"Z8=F[FJEP0ZU)@3KA3'0Y#92\&7/(3^+*D]N1^>G MZN^*U3K,JB&6D-)3"=PE"< ?LSZ ?3&DX\+&R*;?^S.X=*JL9$N'+JGDN(

%1D)*P".#@X!^VM!&HMR([[CJ:1\@KK0VV.93^DO1)49AE=N?.;JA9WS7=. M'Z6ZM^NH[J0:/-I5KT5LM)?D#M+Q0TIM*#[*42LDXS@)&=9'1&TF\_$$W4J\ M\>;*@*F!@K3@I EED$?DA/;_ U?Z!;LF]-G47=>S=#_ &DJUHI5TJZ%.ORY*W78DQ-J7GYSB9C;9< 0XH/%2?8=CA(4/4@ M\YU>DVMUZ.SU; ;]1SKWS-C)2AN/)=OY727/0_MC)>(/0(U?Z1KT,A*5_ P/ MBD=WLMLA0P?8GT_(ZP/#4J[U9Z0;;#ZBOX9V1&02>[Y$.D ?PT'>MGKTM3=S M9]^S+$?FUZL7*I$=7EQ%A+;60HCD94HX">W'HHGVTR'1[M;(V8Z=;;H,YL,S MXT?S92 ?PNN$K4/W9_NUAR&7&-+2R_LHKL \ZJKST\.0U)UE3T?=(11(Y$WR MQ;MC$#_>TW^#Z>2__AXVMWXQ-4>9VBM:"TYY3,^L%2\C@%#"RG(]\'G'VUIM MCD*_WM-^GM4 6'R,C'_(C#1+\4;9FH[J=/8ETEEZ1.MZ7\?Y30!66BVIMPI' MN4I458'KC5Y+R$ZI'6H[<*?QF:EE2M'E)0-^-1]Q8PU[26_$M;:^W:;%92W' MC4Z.A QV_LT\_Q]=*';$9%C^+W*C01Y;56B+<>2#@'OC]YR!]T#]YU,]C_$ MRV^8VC"2Y(%)*2!?4D[5WQLJ=&EJA MLQ-U!0-#Z0!N#VS(HW_C$3!G.(+O^":T[R1QKGY?>[%%V7\5*JW#<$A<6F1( MA0ZXE'F$%<1I*?E'.,Z86E^)=M)5:A'BL5Z4IZ6ZEIH&&L!2E*P!G\SI.LPG MW4,N-I) 0G<#;+/A_4HK!?;=<"27%4":S9^(%NJG:CI>N>4V[V3JFRFEQL*[ M5%3^4'M_K!'>H?EI1]V]DY6R/2#M/>\)(;K%!J*)TI83VJ_ZRH.(Y]A\B,Y] M,GZZ(GB3SW]^-_=OMIZ:\IOXI],J8M"?,\E3BNP+*AU;T]346(VEQ=%9LCN. M57TZYDZVE^?+?\MKB2VD!*@H !5WRPW;G7=&W"Z3ZU6XB_,BU6VWI;2A_16Q MW8_OTI/1OU)5GI[Z6:6JFV/5;P8J=3E]ZH#I'PJFTH^502VH\_7TU+.C3=LW MIT!WC193@7/MB#-B]J>B_JNN6_: M3:]=LT&Q?B M66ANO=\2WJE2ZG:E8F*2VPB8 IIY9'">\ 8/Y@<^^F6CN)4,X*4GZC&=25)\UM:3_2(0E"SD\#NUT7@HRTDJ)],< M^_WU@:Q!:82VXVDH*KM)-UGJ_#NI/R%NM.J"PFJ6!0.V)-XS;0_4"RBCC-3D MCGC)\D_ZQ[ZDFWE6M7K)Z)J?MM0[F@P*PS3H4*:R^U^WC^2IOO*63@J!"3@C MC[C3,[C;54'=FWW:5<5,AU6 ]D%M]O/:3QE)]4G'N.=)#O\ ^%C6K)J:J_M9 M59#CL8^:W!=D%J8P/HR]D=PX]%$'T^8^FM#3I,9^(W$<7Y:T$D*/+,C5M.E1 M9SDUML.-N)X5 3KEE MUW[&=5GBH]^ C2)@53:"PE++2NY>!W3'>Y1.1WX] $\Z M:78[Q-KLV=KOZN;JTF=*3$4&'IGDEJHQ<$ EQLCM<'W':3[9T2M^?%@M*T*6 MF+8<7]9:L\WWI>>08\2)W#)[@<+4KZI2 /OI'/)99 MR>U/RNG6 M,EVE0!,K2D_MJI, KXC]3FX9GHJ.58Y5&"8?=_32 MH#D8UY!(-<(-"^6?0_+3Q<9&_?.D@?C5JG)4A;4B)+;X4@A:'4*'J#R""#^\ M:U-E[=1"C)8#JL8[B$@9XQSC7.^D];EW]./0UMA^I MDJDU%%D;6TFOU>D*M^75'PAU)0TF5*2XTU"84VTOM6>]U2FU_(4IY*-Y=:^Z MU.N&_+H@JLL6)MY>U$H#U(=I[ZZC5(U03 \U7Q(="&W6OC04@-K"NTYQG&N\ M*P2 ?EP*$E076XY'&ZJ.UMM5:[8UPS*#2)59BJ2IB>[$09#&. 4N$=PP"??W MU:K]%M?=-N71ZHQ0Z^F*Z$/PY"&Y)CK*>Y(6V2KL7V\CN X]M+C2NMN[ZO9E MMOI;MR+4ZYO#4-O%J5'44,Q&G)B$.!)^Y>X=R%;E/LJ75:O51!GRD/K\AM_]N$J[,+<6A+#/:C*CSJ8+G/B- MCE^V0$=L)*>$4>?OC\65L#8^W,P2J!:MOTN0YE1>BP6VW#]^X#.IFE?;_5!' MR\A/2FJ@^]*EQDL-)#R%,,) M$-2G'];5 MBH4M,T.*"Y-4J_P $XEXI5^ ((*<#(]>1J,[K=1.XNPEY[A#X M*P)^X5-@65 >J[<"4S"F+J-3G,+!:4\HAII&%("5 ]RE]Q(*0F!"C14>62#: M " GGSQIJSTO;=7'5%3Y]E6S+J#F2Z\Y3VBM?//<0GD\_P!^IA;M"A6W3$1( M$.-!BL#L;99;"$( XP . /RTG%PXI8Y2>-%SHBZ@KKWD=W*I5W3+6JE1L.ZWK?9E MT%AQB//:;89<\PI<6O#F7"%!*B$XQDD:8MUU0I:B1VQ*(C*%<2$ 'O6$>]MF M["N"KKJ5PVU:\Z=+6EOXB=#96XZHCM2GN6.3@ >O'&K$/ISV[I\Q#[%CVJR M^RI*FUMTIE)2KU"DGM]1CV]])GXIEWR-_-\FMNZ72-P*LC;BWU7,T_:M%?J@ MAW*^?^Q_B T0$);#3KOS>O7#[JNY3>482#G7?->":XC7;_3G#"C%5EL7WH??& MPI.V$NFTVKQZL)+[5?>?C,2'W6I@6DQXW[8AA9:67"GY ML#C4+VH\0C<_^E3&+6EFP:K>TRTE0EV\Y'$..R^\P)OZ44_Y;KW?'4I;( M; "%8!)!5I9XSL3[>F/2TA(/ !OS]<;JU=KK.I<"4JA4.W6(=;2!)5$BM%N> MCYA\Y2,+&"1S]2-8 Z7MM$]W_<.T$X&,"DL ?_77/S8CK+W"VVZ?-MMOMOZ0 M\Z]0-NF[JER&[:=KJ)ZW)DMIN*KL?:$9L>0HK?)60'$8'U.]J]:NY%SW??E; MJ/ZA6/8NW-GTJX:FW5V)#TQJ1-I:I*F%/-.=J66G0DE00M2TD) !SIGF.@VE M1!]\2J%'6 E38->@QK[5LJC6/3?@J+2X5-B(& Q$CAI"<\_A2 "<:T]Y;#63 MN#.,NM6K0:E*W$V)W4M=^LT^DUBVH]L5EN MJO6U*H;LF+4)Z&5,)CJD%Q #H!2\5 K;[DJ0DG()&ZW7SN]:.\-X4BWZ%^GH M^UTJETJJM1[5>5'N*0['8=E._&&2E%/;P\ RDI>RI!RHYQKB5NI5QA1OOG3% M94GRE('#VQPK3VRLS9Z(XY2*)0K?;>4EMQ;$=J-YJR>T JX[B3@#/J3J54FH M1ZDSYC#[4A )05-N!8"@>1D>X/K]]<]>I#>_<'J#VRBW.NHV93;!8WAIEL1[ M>7#<-80859;9#RY/F]@>4\T5EGR\):Q\W=G706AT^)3XZDPV(T9AQQ;@2R$A M"BI1*E<>Y.OEY43C[ZF.JT9+ Q=OA[;-WS'I+-4L& MB2F*+2D4.*SEU#0@H)+<=:$K"7$())2' KM))&#J5S>F2Q*C1*W37[9IKL&Y M)T>IU-HI5B9)CI:2RZOG/<@,,@8Q_)IU/-5HO#!/_P!![:O_ &O.7Z;,I1NU MR<*K\?EW*)G;V_%);[_+0\4\*<2D*4."3KU=71)M=>=MTZDS[/IBX-)J4JKP MVVEO,&/*DK4N0XE3:TJ_:E:N].>U8)!&.-%;5:,,"]T^'ILW>=K4"B5&P:&[ M2[7:7%ID= =93%CK5W.1\H6DJ94HDEI94@Y.4G4DJ?2?MY6+E>J\FTJ([.?H M*K8<)8PT[3%)[3$4T"&U-=ORA)3P,@8!T1-5HO# [9W0)M%85)G0:79%+98J M@BIFEQQ]]V6(KX?C)6XXXI:@TZ I )PG P.-2JZNG"R;WN"I52K6Y3)]0JR MH"Y?)<6I2>."H^NIQJM%X8'>H7I'I>[MHW)$I*;?HU5N MZ;%FUB54: S6H]6,=ORVD2([Q 4$I" %)*5)[ 01K4=(G09:O2O =D,_#U:Y MI,Z9/=JB*>W3T,F3Y27&8\=K]FRP$LM@)Y)[&:.U]IZ!9MQU7*V\^6H\E/KDRZK1>&"*[N M@_:.^KPI5=J=A6])J5$8CQHB_(4AM+4?_AVUM)4&W$-?S$N)4$\8QC6;$Z,= ML8&\RMP6;/I#=W+DJFF<$KQ\2I'8J2&N[R@^4\%X(\PC/SIV+1GZ;:\=R'3&$>:R(T9Q7WYLI]B,#5RY.@O:6\+FI% M7JEDT>=.HD>-$CK>\U27&HV#'0\CO[) :(!1YX<*#Z$:+^JT88'[DZ"-HKOW M,DW?4[%HDN)<[7)2 F3Y86&_/ 2D>;V]Y QG&B395B4K;JVH5& >HL-JG4NG-!F-':![64 D]H)R<9)]3[ZV^JT89__9 end XML 9 R1.htm IDEA: XBRL DOCUMENT v3.25.2
Cover
Jul. 31, 2025
Cover [Abstract]  
Document Type 8-K
Document Period End Date Jul. 31, 2025
Entity Registrant Name Proto Labs, Inc.
Entity Incorporation, State or Country Code MN
Entity File Number 001-35435
Entity Tax Identification Number 41-1939628
Entity Address, Address Line One 5540 Pioneer Creek Drive
Entity Address, City or Town Maple Plain
Entity Address, State or Province MN
Entity Address, Postal Zip Code 55359
City Area Code (763)
Local Phone Number 479-3680
Written Communications false
Soliciting Material false
Pre-commencement Tender Offer false
Pre-commencement Issuer Tender Offer false
Title of 12(b) Security Common Stock, Par Value $0.001 Per Share
Trading Symbol PRLB
Security Exchange Name NYSE
Entity Emerging Growth Company false
Entity Central Index Key 0001443669
Amendment Flag false

XML 10 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 11 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 13 FilingSummary.xml IDEA: XBRL DOCUMENT 3.25.2 html 1 22 1 false 0 0 false 0 false false R1.htm 0000001 - Document - Cover Sheet http://www.prlb.com/role/Cover Cover Cover 1 false false All Reports Book All Reports prlb-20250731.htm prlb-20250731.xsd prlb-20250731_lab.xml prlb-20250731_pre.xml http://xbrl.sec.gov/dei/2025 true false JSON 15 MetaLinks.json IDEA: XBRL DOCUMENT { "version": "2.2", "instance": { "prlb-20250731.htm": { "nsprefix": "prlb", "nsuri": "http://www.prlb.com/20250731", "dts": { "inline": { "local": [ "prlb-20250731.htm" ] }, "schema": { "local": [ "prlb-20250731.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/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd", "https://www.xbrl.org/dtr/type/2024-01-31/types.xsd", "https://xbrl.sec.gov/dei/2025/dei-2025.xsd" ] }, "labelLink": { "local": [ "prlb-20250731_lab.xml" ] }, "presentationLink": { "local": [ "prlb-20250731_pre.xml" ] } }, "keyStandard": 22, "keyCustom": 0, "axisStandard": 0, "axisCustom": 0, "memberStandard": 0, "memberCustom": 0, "hidden": { "total": 2, "http://xbrl.sec.gov/dei/2025": 2 }, "contextCount": 1, "entityCount": 1, "segmentCount": 0, "elementCount": 23, "unitCount": 0, "baseTaxonomies": { "http://xbrl.sec.gov/dei/2025": 22 }, "report": { "R1": { "role": "http://www.prlb.com/role/Cover", "longName": "0000001 - Document - Cover", "shortName": "Cover", "isDefault": "true", "groupType": "document", "subGroupType": "", "menuCat": "Cover", "order": "1", "firstAnchor": { "contextRef": "c-1", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250731.htm", "first": true, "unique": true }, "uniqueAnchor": { "contextRef": "c-1", "name": "dei:DocumentType", "unitRef": null, "xsiNil": "false", "lang": "en-US", "decimals": null, "ancestors": [ "span", "div", "body", "html" ], "reportCount": 1, "baseRef": "prlb-20250731.htm", "first": true, "unique": true } } }, "tag": { "dei_AmendmentFlag": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "AmendmentFlag", "presentation": [ "http://www.prlb.com/role/Cover" ], "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": [] }, "dei_CityAreaCode": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "CityAreaCode", "presentation": [ "http://www.prlb.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "City Area Code", "label": "City Area Code", "documentation": "Area code of city" } } }, "auth_ref": [] }, "dei_CoverAbstract": { "xbrltype": "stringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "CoverAbstract", "lang": { "en-us": { "role": { "label": "Cover [Abstract]", "documentation": "Cover page." } } }, "auth_ref": [] }, "dei_DocumentPeriodEndDate": { "xbrltype": "dateItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "DocumentPeriodEndDate", "presentation": [ "http://www.prlb.com/role/Cover" ], "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_DocumentType": { "xbrltype": "submissionTypeItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "DocumentType", "presentation": [ "http://www.prlb.com/role/Cover" ], "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": [] }, "dei_EntityAddressAddressLine1": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityAddressAddressLine1", "presentation": [ "http://www.prlb.com/role/Cover" ], "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_EntityAddressCityOrTown": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityAddressCityOrTown", "presentation": [ "http://www.prlb.com/role/Cover" ], "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/2025", "localname": "EntityAddressPostalZipCode", "presentation": [ "http://www.prlb.com/role/Cover" ], "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/2025", "localname": "EntityAddressStateOrProvince", "presentation": [ "http://www.prlb.com/role/Cover" ], "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/2025", "localname": "EntityCentralIndexKey", "presentation": [ "http://www.prlb.com/role/Cover" ], "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": [ "r1" ] }, "dei_EntityEmergingGrowthCompany": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityEmergingGrowthCompany", "presentation": [ "http://www.prlb.com/role/Cover" ], "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": [ "r1" ] }, "dei_EntityFileNumber": { "xbrltype": "fileNumberItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityFileNumber", "presentation": [ "http://www.prlb.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Entity File Number", "label": "Entity 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_EntityIncorporationStateCountryCode": { "xbrltype": "edgarStateCountryItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityIncorporationStateCountryCode", "presentation": [ "http://www.prlb.com/role/Cover" ], "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_EntityRegistrantName": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityRegistrantName", "presentation": [ "http://www.prlb.com/role/Cover" ], "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": [ "r1" ] }, "dei_EntityTaxIdentificationNumber": { "xbrltype": "employerIdItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "EntityTaxIdentificationNumber", "presentation": [ "http://www.prlb.com/role/Cover" ], "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": [ "r1" ] }, "dei_LocalPhoneNumber": { "xbrltype": "normalizedStringItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "LocalPhoneNumber", "presentation": [ "http://www.prlb.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Local Phone Number", "label": "Local Phone Number", "documentation": "Local phone number for entity." } } }, "auth_ref": [] }, "dei_PreCommencementIssuerTenderOffer": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "PreCommencementIssuerTenderOffer", "presentation": [ "http://www.prlb.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Pre-commencement Issuer Tender Offer", "label": "Pre-commencement Issuer Tender Offer", "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act." } } }, "auth_ref": [ "r3" ] }, "dei_PreCommencementTenderOffer": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "PreCommencementTenderOffer", "presentation": [ "http://www.prlb.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Pre-commencement Tender Offer", "label": "Pre-commencement Tender Offer", "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act." } } }, "auth_ref": [ "r5" ] }, "dei_Security12bTitle": { "xbrltype": "securityTitleItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "Security12bTitle", "presentation": [ "http://www.prlb.com/role/Cover" ], "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": [ "r0" ] }, "dei_SecurityExchangeName": { "xbrltype": "edgarExchangeCodeItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "SecurityExchangeName", "presentation": [ "http://www.prlb.com/role/Cover" ], "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": [ "r2" ] }, "dei_SolicitingMaterial": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "SolicitingMaterial", "presentation": [ "http://www.prlb.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Soliciting Material", "label": "Soliciting Material", "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act." } } }, "auth_ref": [ "r4" ] }, "dei_TradingSymbol": { "xbrltype": "tradingSymbolItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "TradingSymbol", "presentation": [ "http://www.prlb.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Trading Symbol", "label": "Trading Symbol", "documentation": "Trading symbol of an instrument as listed on an exchange." } } }, "auth_ref": [] }, "dei_WrittenCommunications": { "xbrltype": "booleanItemType", "nsuri": "http://xbrl.sec.gov/dei/2025", "localname": "WrittenCommunications", "presentation": [ "http://www.prlb.com/role/Cover" ], "lang": { "en-us": { "role": { "terseLabel": "Written Communications", "label": "Written Communications", "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act." } } }, "auth_ref": [ "r6" ] } } } }, "std_ref": { "r0": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b" }, "r1": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "b-2" }, "r2": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "12", "Subsection": "d1-1" }, "r3": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "13e", "Subsection": "4c" }, "r4": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "14a", "Subsection": "12" }, "r5": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Exchange Act", "Number": "240", "Section": "14d", "Subsection": "2b" }, "r6": { "role": "http://www.xbrl.org/2003/role/presentationRef", "Publisher": "SEC", "Name": "Securities Act", "Number": "230", "Section": "425" } } } ZIP 16 0001628280-25-036811-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0001628280-25-036811-xbrl.zip M4$L#!!0 ( #$Q_UH$F?PF;0X -5M 1 <')L8BTR,#(U,#OF-#)6JX20%P\0$E,:2EJE[$MJ4@ZWN0E-0 &XD0@@!T, M)3*_/CT#@#(#@GY$[(;> M8G058.Y';*@H:;-6%$\8O1YP9&A&):^6E[(&]C1BU5U/J1&MIEB:Y2F.H7M* M!7Z:EH4=U\"'UPVC;M5-3W,48AB>8OFNK=1]IZYHE9IO.U6[4JF9AU[#=;!A M^W6CZNO8LBW7J6''QY9EX%J]"@WDN ,./ /?8=(8)_2D-. \;I3+=W=WZIVI M1NRZ;&B:7O[MV]>>.R!#K- PX3AT22EK1<=\H=7888%L1\. AD1(JLP9#A,A M",Q!M-"CH2F:H>C&7"=*0MR%CN"W>AW=WMN/7E&TNF+JLW[6TP(US;F.\NIC M^'"SCF?=MNVR+,VJ;JXD!)CWYY&9!.78.0]0(+BNY!57QIVC5#/+HMC!R53& MHI3>4W]A3AH!!GTMD5#YWBLUCP<$>\WC(>$8B?8*^7U$;T]*K2CDH+M*?Q)# M,S?]=5+B9,S+DJ5R\\.'#\><\H T8Q8XBJ ?U% _+JB)T$8[A.$F+:".X: 3>F3\A4Q*B'HG)5\Q]%)3 _VT++-:M8_+"[UN M,<@IV+$G;/D\P-X]!/)&7_P)E9?P,7&93\*. JQ-:M5PV)=/;4#4OR7_G@Y07^,Z%-)5*>4XA MRZ"VJ>X*Z="'/.9_A/1F;3)]'])0&1#AUAM6)>9'=]3C@X:N:7\KR7K-XR3& MH! .$S.6_IUV,NVJ>4FV 4Z$ $Y*9FF)V8Q\J(F\:"2$\1$H/(JQ)^)O M0T,Z])$/4):I$%S02,)*Z63DU8&OW3?KNW./US=.\ H;UVZWNWT^^T>^CTX@RU?VO]>GKQ2QNU+K]] MZ_1ZG-Y&J? 6]65+ZM!:A>$4&P:02.[[8L^ZK:O+KO]/=*_J^_=WO=3 MH+Q_B<"P^F ]2#?191?IE0/O,[H\WR-F^K^VT9QWF'J&TU8?&$&Z;5I[Q(W M#"CR49?$$>/H(/]-,* &DG!$;D52QV0Q\3XW'F&%5Q**M%. LH@G/?BB#*&+ M@6BF>'BB3&!HA813>%EJ_F,43)"I'\H\<3<-N)@7VQ;G=\DU342:QR^@))>( M"0;%(AZAK]A)#E$G=-7=%,JR!EIKA7+0'F.72]Z%XK$ISP@G*(F)*Z"TAVB( M*$^0.P!$3-CG(AP:6@JT7A1,VK9:M^K;8DE(8NI&_5XL6?R[I56W:K%W1)E& M$=2]"6+G(-J(QP)&K]K \B2G\_OREK&MNP!/$#'PTW(]J,?!M;:B40]*=IBA_LDDXIP&!R@ZX MTDR@%;%(H"MFQ3(W1Z]W@6X2:!^/.]F*BBLU>U&ZU5+3TA5 77;5J-\KW@?< M0A899&B$M#N) NHM9MV%10M]O$(7&W"\BCD[C. !20,:O M%(M?B_F#4*NU[79/-KHW2]4JYE.XM\Z,P6Z9*5O-+)XH"!X-F M<["O:5 U2\V?/MHURSKZ TOVSR'&)W Q4HZ9=(#\>?&@>,22D;!^\!_=$9BK M950R3R!<0 \2'VA(@813EZ,#O89:YUUDF)H*%8M _OK.(_X_DXWT 2X,)_A M]3>(,!!F@J(&8KUU YF)!@TSV:Q:AVYA .!S!M(>IP!DT3PL<-.RYKN%[)N% M7#$B(H@X4BY/% ITQ2Y]7R1@Q2RE\M8M!42DN',R>C"FZ):G& ?.YV)VD]9] MMYP]MYQ.DHP(>X3]5-_M9]E^3*)8!VXQ^\GJ[E/Z.X]GHQM-N#R]L%>U*MR&)W"Z#O8>JFG5_DEQL+4J8X/)B MU!M8INJ+*X'I*6IW@-P )TD!5_7&9<*PW'_H389.%!P4VC)[6"(L'>'-2>LB M.PTM%8CDOAT95WS$ O#Z;9J7T;Y7V9+<(AU. \]$-QQIPU,,4BLU M!9:!">CQR+TY1%>8H7_B8$307X5CU]$5!.+> +/-AT,>U//WB=DX,9GW2)W' M=%;J@)VZ7W]^>8D_M]O9\=G(S20'G>GME&4T+]S6XID=W0;/!G3^*V(WJ2%- M<>O#ATQV%JUV0D] =8*<"7+EQ@U0= .>FLASN$N[*C1!0!W@?$'T-;IFT1T? M",0?BYT6G""/^#"$O/"2+L!JE1S@+JV^PE?=-DUT\--'O5H[2E=A\]I4WI6) MQ5T9L5.6Y@V&HQAK.EM('M)>K5FO(HF8-9SK5RUZSRW3_]2BC-IK3%)[@\"W M/3&5]_.+[*:5]E(PDS6TAS/9G5-N_QYU%>=*UNH^7=E,'(!FDP"R-M#L,)(Y MW"@ALA;(.]NR% ^:4)G7I:\7"+'*L8*)&%R^*",F+02VH(216YI .[ 7'+IB M?1:[KKCQ(BJ+-T \S+PDW:ST-B60Y@&>)I#S=J"B?$Y>;'U%"GRJ( \KA+D_ M>>SNOY4P_V9%'*5JV& DP.*'K$:+%'P)K^B(4T&8CA!$X=4(=R9-NJ+H*X1*/IZ2XY([/K;5 ? ML#,/-YB]:BFVIEV5[2;R\?!@Z\SUOF M T\S\I)$5$/N<>>2+I(EU-X=S)MP,.MCM@B%S^A:IMG &I9\_SE82DGS #RD M6*LA][A%+2 'KPV])+6&H]>D#2V]2UDS]3$9CVU;5P=\*/?XYX -H)T55.5) MU')=@LN?T[[L&F7M.O[[G].>OK.&-E\?V/F;JFK6/:'S#5:$( M"$%7^)I &(%$&_1,7$P^PQRG3YDZFMNW2;>5?A]1EB6> MQ78S#]?M1WGB74D7C\0>TOQ2$@SC0*X$LP(%4?KNH$,&./#%:I+H2+K3K()8 M9QJ%T$9VAT=\$#%@SBNT.VKNX,VX33E55=6,ISD_:%542Z\\25>&:MM/UY\;75JOL6RE9?-=W^@8+=>V?B6>X9O'7^]AR4 MB8>.MWE?XRF799Z+I]6MH:V?6=KQ6?MY\IQS]L+,E),R) $A)0'JN8/1$+L M5/Z 1]TIM_&HHY:[<-\G\PYO=%KV0?BM 27^W-[]I7S!Z_%3L.LIT:$ 9=*" &&-IQLT5F"^BG5'?\GJ#O-3&55 W&*T^[ MD.V#XINM07F:3P(L>-6"L!2*&65X"ND4%VG!<)EG#$_L=5P4I*0Y>;]9Y+-B M-F9IB2'/&2XJ.L>SJISA=#*MYN6'^60R'?N@>[W0= L-0;8UH1=[O8RVQK2+ M)-GM=O%N'$NU2?(TS9+;+^L?'AKUV)J+NP%Z7ZHZX,>)( MJ6P2UZHM/XL0,4;QLC/PR<[D$BK2U689=>)W1VI><6!VX#6XD0X C]R&J V8 MKZ0!W1(*?TFX&B'D9L";5BJ#Q(NT85M<:$,$M6T=!K>6E!BOAU@T^F 8:;^1]PH#[$;Z<7K\&=P?L#L.<1 AI M/-]9>EO;)]UKU>3)15,D:W@8GK9(M M*,-!/Y:O#[!54"TC)R$;Y_I R1 M0BP&%1?=)4^Q3Z)T&M@WL?+GIR_:DWO(&T1*:MK5I_.. M9;U*ZXUA&ULQ9QO;]LX$L;?]U/H?&_N M@)V:E"B**MHL>MEV45RV#9H4N[C#P> _)4)M*Y"5)OGV1\EV(L6R+%*Q^J9U M''J>>2;\:4:RY;>_WB_FW@^=K])L^6Z"7Z.)IYOLW@+_^]?7,^RV3MPN]++S37/-"*^\N+:Z]XEI[?V;Y]_0']\[GO$BR? %P M4KWL-+MYR-.KZ\+SD1]NEVU_F[_A"FG"I()(HP@((@J$CQ6$YL> $"ZDSW^Y M>N,SP@*%!&C?5T 2&0-+! ,41DDL:!R&45 %G:?+[V_*?P1?:<_86ZZJ']]- MKHOBYLUT>G=W]_I>Y//767XU]1$*IMO5D\WR^YWU=T&U&L=Q/*U^^[ATE;8M M-&'Q]*\_SB[DM5YP2)>K@B]E*;!*WZRJ)\\RR8NJZ@?S\O:N*'^"[3(HGP+L M0X!?WZ_4Y.25YZW+D6=S_54G7OG_MZ^?]DK&TW+%=*FORK_MN<[33%T4/"_. MN-!SDWT5K7BXT>\FJW1Q,]?;YZYSG;2'G>=Y(VJ995QFB6F9Y=_WB4T'I/]" M^1:[N;Y 9RW=>,9-G3UUFRP.UVJR8RLQ,&S<%-,J6Y-FBCY4BZ_-76Y?+"$Z\ M+%L/*N8GU]G2_WY=B%T/J-8*D:T#UIP#,2<:@'C%$'B*Y;$%-- ZKYT M/0]^9+ J.:_2\]:"_:':J<-AGH:XLT/)PI@51OL<.!&T$VPT>/;9J'.S=XT] M,J?9#YV_%ZLBY[+HL4\:ZX^W22H9[[];H?^]S!9I3=YI?S0CC;8Y6@W4=T;[ M OMML;W2]7AR]YL9@&9)%&#-60":Z 1(C"0($4N0*F1A%-&8X;#OX;15XLHTV'T7L:\'7]NOJT@/&S+B<2.L*/A>-A:G MJ^W!?&]"J3+MJQPJ@U=2=RFI%&@Z750)V/]@7V2'Q8%FGQ<&H" MY7S^R4!V_V_],*.:<1P*'Y*0"B J$2""0 &32@5A$"4BZ'W]JE7AR(BL-;V- MJ%>I>D:V/RSM=3D,S6"W=O!8&[7"J-.,$T[M$4?#JM-0':_NA8-'PD^KU:W. M&X.A3DBB) =.? R$1Q$(3F,(!$I4+$B M'(<#'?$QAX/UPF\S)2X6SGK67%0 M/09.C#:E&#(X[O7X$N/C;O"?-43NM=DQ2NY_C6OWO.3WGY2)G":;J]V;Z[.* MHH E. *J=5!BZ0R6!B EDL64J=BNB^Y1&J>;&G&OJ6Y]";N[7GV[ZPM4 MP:G+VA? H=L>,#>@Z^Z+/'+W/6!PMPL?>H$KMA\6.K]*EU>_Y]E=<6T.$3=\ M^3!# ON)F7$AB4,-A"@?&&,!8,V(BK$.1>C;0=NJ,PZR6VEOK>UMQ&V!;:]4 M7UP'^W>"U=:Z ZJ=Q@: VAYW9$P[S>U"VKW<%=&/Z7S[9BE^M>1Y\'!A+/<>.6:M#7^K8 UZ[#@8P50LV M,DB[-G;I:5GCBLQ7?966;Q0NB\]\H6=$1)PQ'D'". $2"0Q,:PI!D%"D(T)% M).VP:0J,@\Z3IE>*VN+SK"9]$7)WZH117Y,.*+4[&8#3LX C(]5N9Q>K/>OL MT;K0\C8ON]R]O#9_.5UMHR12DJ@H!(DU!^(C"2S""F0L2$(X$LI'O3\LVR)P M9+2VDMY6TQ*MUIH<1FNH4SNT+$W:?7"VPXG;1V?; H[WX=D..XV/SW:MLT?K M,N?EG5D7#PN1S6817$2) IH*#$0H9!I/HD&$LT-2@^]<<:\ M1@J_>%42IFK>)A&OS,1V]NLN8]]1\,6*XS09#JJ+P[C8R^V Z;$[_LC#9"^S MN[-EOY>YCYK8%Y=I,=%C^?!C]T5 M2PTO2SSL_T/\T]NJV\^8C\7H/U^Z6+1LDI;NG(;+YS8 :/P48?*I_;:!LH M=]:X=L[W2ID_VZJ"\DM^GF<_4I/H3- 8T3B6@$00 D&1F3(509!$/F:4A3*( M+-^.:Q<:IU=NM&O=8*MOVR'WE*MO:QQ>!*>>Z.#?H1-VFQO0 O<$'KGW==O; M;7H'U@\$]CQ;%7S^G_2F&LVB0&*JF0!&M B$0%!4 H\37"$:>A[6?0VF1& MAG6M[1EQIV&VM5"6H#K;'X9I7^?ND+8:&XYH,^S/ ;35VEX\VU!"P\MUQ6IY[,FPF4FX&5!6CR ]B8H!U:Z1/&B-C60J7+:24=F2R M5A]+(-U<#Z.QEV%W%'>P%O/G0+AK:B^!+4L'XK?Y[RQ=:CQC*,)""PI: M2@:$2P5,L 28CD/%"/.YLKSXTZ(R,H*;!UZI[7U9NK;&1ITL071U/PS%WL;= M<6PS-AS(1M2?@V2;L;U0MBYVOXGVTKQTYA.*11)H8+XV_1"%!.) &A*YB$E M@Y#BWB36 Q\9OL<[24LM^_MD*^N'X7(U9,=3/R].M\+6$Q]T!VP5:/0;7^OI MM]WOVOB]PY<,E&CEFJ_/UF(DD=#(C(-Q"$3I"(0Y4S-V/P86@+*TL!K33)M[^1$N\V3;JGBPQ$?6-;$JD9_N=G MG4T_^7R/3'S'X[?O'G[-T)^^^?' M\]F/3;C>0-W.3C.X%N+LIFS7LW8-LU^;_'OYVF)F\(.>Z[G397=[E< MK=L9IUSMFNVNYD,7*4@3(M% -9%41N(YBT3AH9#2^<#=/U:'W$@C(O4$.(]$ MIF")2=X0JG2ROK!*:='?M"KKWP^[#^^V,,/AU=O^\&B^;MNKP\7BYN;FX-;G MZJ#)JP6G5"QVK>SER M4\%'2+/N^Y>/9X],7N7*'X1FL^@N+DX;A '=[+NU=U=P--^6FZL*=N?6&=+1 MO.M$NGABC'IC?[_ON/C3YE6&+8+2C_$<3SST[ZS\?_;AMH4ZPOUX=G>OFO"H M4=6IV?S1LW(>JO[L,D*Y[.]ZXK=M=J%=!A:%XTD284)!)"L\,4X4)/GHF2HH M][QX/-S.W2WZVXN_A7"P:CXO\,:+3H+N1Z]%K\,3<_>:O,SOW;_M$MLNP5#E M"BF)8Q&Z?T!!G#&.4,X#.&%D\./<_M+:8Z^_C.5)#K,F1\@X7>S,N1R>Q/4Q MJ \M%E:#$*ZJ(XE](_, M#F* 3Y^!EVOYRC"\J]NRO?L(J[)3HFY_=AM8&LJT*1C"; ']#Y81%RTGVAK+ M;0B"QC"*A>>L#D)!3!>%T4I.@H0SS,SR59-[X3^A_G#:7-=MOCMM(LYRR8%) M/!"CN"#2!T>L4-VA@2(ERR/0/8#QETX,XD1.G9/]Z3P);-Z7%?Q\O?&0E]X& M+K5SQ N.R'L&!)V.)!0@':/26./VP,B?%@ M;S@>!I)B\MSC;H%%;HDLI"!>@R"*%@\H?,/\("Z*J7.Q#VTG +9,/G@D9B T)-^9.<&*8P#D&=.#X-!3AV.L MIE,"XQ1_?LB7S4V]9(+II+4A*N(:*($;XJ7W.!4:%"51X\P^YHTGA@=!8;X3 M*%ZHYY20Z/.B#_DB-Y_+.L RR5 4V@42K<5Q%-02IW'/';DT26GOJ?/[X^(K MZX/@L-\)'&.4G1(A%\VV==5_RJL^;;8)O&$:TR7K&4J3$K%)!(3=NH(#<,OE M_OAX9'M8,8M^)WB\7-97AJ.;]$XRN-YOSJ0'&BT)/B+4G*$4"K=2,C)AN> Q M^G'3Q9?6A@$PX7+FBZ5[Y9!W#SFJBW53[[9/5C(K:90D,4"/I:/$2,6(N6AHH M0C1(<"&H(C@2C:N7P4->% AX"#4*!2>VAS&P81KE"-E?&4(+C)T! ,FMOWS MN>[1;OZ0T ^\W.UYO"74"=K5XSUQ,@&ADJ(DA3*%X:-@^+;M85!,N$ZY)UFG M!># ,E D7+OB)5.DT(%900'YF'<*Q)?6QR& MPX1+E:,D?.7P7V;7O:?VZ6[CFVH9DHV) B*UP_%0# MV'';RN>L#F-@PE7'T5).HMKX;@-YA2C_*S&1N6'1GW 5\N7B[2WJ;Q=/ MQ#O'$\=O'BYT']UK\,=O_@M02P,$% @ ,3'_6FDQGR;O1P !6L& !< M !PU];7/;1K+N]_LKYMJ;K%PU1/!. M0$IO_\_/_'0S(KXD_G[(X)W[*O)P%9)Z%\0WY MGX!EW\A@4+YUGDC#XY45H:-[('5NV.;),T[<<5_5-Q[=5U;,MVW78O[07\"F\ M7GR3Y?<1^^7%-(P'$\;[OS2M67YU%P;YY%)3U1]>B/=>_SQ.XAPZ2^'CXL>B MC<>D--)8GLTM-AY9R]CT?>%%X$U^*^;THFEJ\[B=1DEZ^5,7_KOB3P=B; MAM']Y=^_AE.6D3_8'?F<3+WX[S1C:3@NWLG"_S 8'K0O?KTKACZ$)J(P9HNI M:#H?_]OODW 4YL1U%6U]\+N'#:/,O5'$%H]'21JP= "CC;Q9QBX7/UP%83:+ MO/O+,!8=BX^NRL9&29XGTTM.SUN6YJ'O124E!%&*QP^D5M2"W#G0. \6/9>/ M%?'HISQX_,P8*KIA['RL*MK.9_N:M57%LH<'-?N3&'*Z>*&DOC4LZ!@0H%8V M\^)?7A@O%N_,O"" 97"I$DV\)?@13F^(%^6_O(B2F\13_IK=P/NIO_[[6A^V M/OM>A]RZ"1\N%\)B@H>-<_%H"[+7)J!MSD#;.@7+J3<%372-,O*9S9(TS\@_P]B+_="+X"_9/(*_C).4 MY!-&OC _B0/RWW,OA;&29"P$Y2'K65>?>[9+.20:NPQSZ,@_8/Z?84[IO[UY\XF\]=(85E9&/@$[OTR\M)@VR!6'DC^2>+#_+?,@6B:=O7LO6\G /E]'MW_^%*SU2M#HX5* M)=DD:!Z&)XE9$(%#*NV\W2Y#8,"BD5A#=\71"8PWSL M^?D\Y6_ 9&Y#G\%8\B3P[HD7Q\D\]D$['"\E8+HA ;-" OZ[E( L#N#UW^#C+M<@XS2/E;+UYO2']X+^@C8BWDYT) MSX+OA]+UJM09!A$;YY>&O=A]0IANG%\.-.=Y:;]['>CV\PN$;;VO4T0S%8M3 M8+'9W7D9[&YIL1>6V]YTU[;G\T69 O!A,:>KNR4 WUY\!J]O6S&%SF#N7B#( MN$J,&\^C,1"<,V.2)O.;R5+8<4&7I"&,@#/W;YIJ*'I/5=E$J[* M\)^0/<_&'KXF'G3N/U@.V]>W@D6ZJQ@K'(J)YB@V\NBY> 2TY[1-IH7X^YNI MF _4A_U>J,%D!D(K"*,Y/S7*N.Y+U^0??&4=]A7*PV=EYL)8B3>XJJF*NLD@ M4WN2K>YCMAHUV HF,]=D@5KJU7*(#TK5!UC7<] QQ1N@((]8E-P]QL+.D[_E MLZ9YKSXH[>2&Q2P5IZJE_O#OI2V]T ZV$HF2@$V3.,NY*@KZ.'_CUHNX-L(6 MZCOGA3_/A*R,7DKF@QO&?DX M'H.Q /8OY]>$_+\TS":QIQ1FRD<8R"P-8;O-^8:;LBGOS.-V0P0XXJF!'PQ.=C#T+?@XT;S!+V?<9' J0(YC[7UHGOS8KY MAMQL624'$ZT!^07I\B2_GPD*C<#U9LOC'H/B4B>!>^![P: PL6*(4A*()E,'P40*__%,H MD 4=%WI*J<_P%:.L'!!]^K+44H+BXXS]>PXOP5BCHH5UY87"Z,81\Y<+'\;, MXAOX$,"5B-54L!)8/N*7-1RFTR1@D4+^!P0$C($##CZ?"]2$\2W+N. O9T)+ M'(5@T]^6P%N(!V[+B\6RD"L%&J%M^"(E$=!N !2:EL((6N=O"W$_22(PES.Y M$%35SG\#VR?_&\!HF\G_8.BCQ?T,BLIUB3H!7UAA1,COJ>#284K@4)>%MNY0 MU26AK6ES$CPH)?QP#V21KM'AT%HN]0710?059X!<])02\4 5'*F_D_H+HY=K MR9L47]D?0"-W?]C8#X3.;5-=-12"IM!Q$N;M/]Y]_?5-:?V8#P=Y)S)&D!N5 MN/$F^ N6 L!^C2VN,EPS+^%M^P>N^Y1*VX8UJJV=#/'W+<59$P] H5B^.M+R2KN',M[26ZB,ZY.P")='(,L[:X1V$P,S*N_:<;* M&90 !/S)>?B3-/S=3HVOV^:[1AK!V<6YV,H!'%<$A-WT0 M5T88%"52%$Y/_ M&"\$TJ%-&-:B"=-8B#8PR/8*-G[6\X186W6^FR69,)(N4Q9Y_ #HD3O>@UN: M\!=2'SX!_3/A$ZGJP5?\.TD?Q.P-&XQ :_HV\,9 YTLONO/NL_7NG\UKL'F7 MC3W\D^$^_>G5,0$)#KB-YMPK8(GJA3PHSUA&_%CT9B$)X+?2#X'PMF%A>3FL M,M%&)D1-"&V#_@SBQY]X\0WC7? S#!A$#&IVFK+8YPNS>$JX",K(!7>.Y,0REW_E4(^>#%@3GC*PEH)X2TQAHR1*SWV+CN.>_+H]\ M^*E04!S\)O%-(HXT9ZP\,%X]-RW/)$M.2.%_41$O;.%E-6*-_Y<6_ 9BF#59$OL.--DS0/_U/\X:+D<:%F+E@JWBO^Q,\*2U64GX"!>>9_ M&XR$1<;YQ>*L:(B+^#@#C7(>@^B)8&H!N;CQPO@5B1)^6/P8?91<*WX20C10I=EW\/B@)U[[289K'&/P[0X.-\.VPT5>C&W4N<-,S(3 MI]C0B;@FA4X6MP>%XI6D68%-[^'D:^74A2]'+PT6,%RZ')4.18^<@12RR4,O MRI*3,;) Z 8_R[]N86OYI#/1U@/,;C$C'(B,J, M>-BK:J[2[9QXUO6X<_"X)(] PHI)LV;R;#-U!(&9YT_X]24[$6:DD?=;IH[( M.AA9)1V"PI85'AE3N-NQ@^R19[6LG,+LW]SXM_UM MT0UGXQ3 !SB#*>?1_:J-,2V-1%@ND3\OL%DX3H#E(EP[N#.&SWU3BJ,WCAP^ M:*') ;Z6DUBV5!HJ8N3;(#1],)3$_!* 6^%ISH?'X0D<$ 9-EHL=%?Y?FCML MAP7#7RG,';I$>VDK+8?%!0!\$R8!0')0_%12(LQ*_F\;[L*>HN5Q)*B@_(:[ M<*-@2Q\7X93!XA!Z69D@P(3?Y-^R-7FCD#>"HM "7]RKAV(KIB,8L_D.$F_, M<77Y+B_TD]+I)X%&4F'X/M"4#WV%K.NFX<)O?W$J[DVYZT@< ]2]PM_E20X^ M L>#V%C.(9LD\XA+ 8O^RBVUI; M@>^A@-W22GEX0#*0Z>$X]+TX7^P"6P%9@66%\(CQ$KG;F* ML12^1?QXO]AVXBR)PD",]&$$P)6<%8?< O(I=^,9_074+!@*+.34CL)IF!?B M2B'OEFPN20EB) 2A*5R''LNV??.&/K:=/6Q[_OH5EE?"UYTX>9J4PRI%R)_* M%Z5TH8-AP@B28\%A0PSRX MBUT8SW,A" N9(+Y\-":^K%)80< 0[G%% -QYZ(L4Y M9+E4"_5/K,B,%0=_9?,/WA?0+^B.Y9[&G0>%&R3O#"#RK7!7F^3YK' Q^O&E M.2S^8<$-4Z8,*#<0#ARI N,43Z937_QW5OPVTSW/"N;B%S[KE/$(\"VC'XO+ M50(HR%9&L21&$M>=F\32XX-83T8*K3KEBY(OFTM OP%8X57*A-N'.=??DEN5\ M[UR?#^\^9J7B40JX'U_:QA7Y&+-=,8RP,_L%RLLI@VH'YA;7A+@'<0P,9DL7 M1U! 9EQUGG#O9.Z'"^/UA:;/B7\3)2-67*?=P0[Y]PR,A.\Y%UJS!1'X@Q0[>P\['P?%EJ9#)*P(>QEAXBL$+.]2Q%:,>S(2?PP+HD4E41ZT%H7SB]:ZUD)=7]&,8:=)(A!EW^+D M+BZ#$XJ?P8+[EM&'6(6E.!'&3RFYA%CR)T !6,;>/"N=[$ME"+I]D%>%%@^D M L8(+^P@'(\+%1SHQN>7P.=@&7 B ]&!:.%T!I:;H'\VAUX>QJV0ZS*"HM@/ M.3M@O,M1K1AIG-8!R_PT'"U8N23^9_Y-X5>^)/=BHRW)GI99*,9AM!JK\.7M M-4AR08D%P1+^(XP^"/W"47PY&'X=XPMSHHQE*&C 13:,$"8-A."P@%Y78L^% MK4S&@YN0%5 M%O0[QC9&0T%]!.$N6BG/V4"Y7;L&!?O6GW#KNV3;FI%^G\Q73=8BY@(LZCGO M >PLT4)<\G?WI!5Q01_Q%A^&7@))X"SS(R_DFTM\+VZ_ ')<01Y%BZ7"#T=F M@@;\E3WD%1'&(E! &-1%4 'A1TV'@=P/FWQ_$/Y? \"]/=D$F?I/*#$UO2! MKEL#TQD:YQ]JDLRVL[4WX#0H/R27X#6V"V5QXT."C7= ?6T!P8CJV>>S3[.,^3 MO0B&WQ14'-RD,\[RW:$"9]?%/_!#C(4$10&Z.91_"#WT,XMC]HU1,K2-@3ET M!\.A:IY_)_VCC(_X,F%LS\&%!!.X M$&$"R3P#;2I[U<6LID-5T33]Y%E--5UQW=V/]S6[_YFIVL\SV,-HL#T%JV;N M2<%:;28]W9,?M;6-E 0[-._K 2EB]=EW_O)C6;RY3HHE MTJC0$&N01W<10Z5\?UE+GGIX^MLND.%7YK/I"(Q40UN0PEPCQ>F@\30FI:?6 MQ9^Q-P]"V!Y?G18OIUVO(\__=I/R5"^#DBB^S]AXO(_0/&!2%C*_R;)5E6,/ MV9Z:Z"&D;[R-RMP;B__)Q[U'-I'@WG5YX^/5Y^+&A&MQX+G;.-$:).*_KL3L M7 1/BQ1.W,'EUHO6[C+7U;&#)JX2R4'\MZ-F]ZC0@RS3/[9$: M8%#-/N,N@VK TWJ:H5JH!CS_VB_B"WFRDQ55H#]:@$8UJRK.4 EHCC\Z=54; M=8#G)O.GE,V\,%@//BZ"&?S#SNH[MP6YU'7.N .ABO"4Y%:I:G;DI, 8RBL: MOB8\E/$$4J"<_V%W_/+C3UH#$_'%=/ !X+NH6U;?8\6N_E5N+955=^;CQ M-^B_Z595_W'7KW8($"V-@+[M^B:UANBV)35_](ZX;LOOF[%]\3\UUR-N[&4B MP>&AD=7F+>W2&IH&U:V:6ZLF$)4:5MDD2\!-;?A8M.OCO ZC@R2+7(MZ_N M<_F$M9!:';=<%ZE_HH?U$>?$/?GN%USJ6G@ M>;O$#+*I99W1';)'VID0 ]&&M2]"I?MS\:Y;U#&KAC[*I^!TET$@L&V]_3[X MTLN#Q6E&LN&%=\CI1N9.G+.HIQ0FOD[:/H4V]V<]L+R=28[J2',36J69+F1L$,[[4 M=R(WJ%XW"7T+G%*>X5)=RC8Z?FW^$.^)IJ8P9DRU_35*NLP?V\"HK^<7!FAE MOM9TC/Z6ESO5SYSD.X667PP$;,S 8@MX(N]^*@0N'5;. H$*08-2VJ"6?48/ M@HYK!)OQH+W4!"RJ:9BQ6U[^F-26H*:'-#$^4K?1<7GYI4IT3N<6HFV;=*BB MV20QAX8JU:R../ 8NF+)*PJ*&Z]-A[Y#PO>>\89$)@)5+C[)%[^&3O<,7UKG_'Q)#^JC;-=C0B"_23RVL)_@_#V M]<_PSP;]3*Y7S)(LY.$XERF+O#R\95=W89!/RB6Q^E6!R$OUX1-O!..8YX\_ M*9;NZY]'?!3E.A)_7OV7-QT&O[P(#6:?J6XZJ^Z?BVJGJV9;L. M^]?PQ>*;2?J MALV&*7,^S;PQCE++[WHSKO/UH<\#>/!ZF0KCG.U)2^]@<8$ M_?5UF>VS&/IO-&>"7E8QR1/R'IA R;O85]9GL#)V"<9ZG<0!+XT7$/A)@-?+ MX9$'FJ5R\BTD^2>89*+I >?;=9WQ!_,@!&;L'N8&]KG(+1)FKXDF&&SDS3)VN?CA:N$)&,:B7_'1 M5=E8*4SXHMS8^ 11BLT^5GJR M8_?1JUM,T&(GDB4QU-=)RACY .]-,O(6E(B *VN_SV-&#)4>D!&FBT3Y$GX_ MC"3' J8*4J6GFJ[JUB$IA)I9V&T@EWF*]=4UHB"&CL!0QWW*/K-;%L\?99VJ M,M/30*>AU)4XPF9&V)?PWW?Q7\SG)T"@WD1\Y)B_;>?LI+U&,8?4[( G&4*M M!5!SJ>I43=R$4$.HU7"1MZEFM+]@$D)-?JAIJD:'9ON+/DJO;E[_<4T^>/XD MC+>HF@>Y1[8RFL36J&MB/DIY&61I5#>JYI=!!C4HH363#ATLG"HQAV /U>HF M)I$H9$[Z/=3XE7Q*PSBONX.V,L! !P'=@2..;C/(.6, "#+HJ9,;GH/FC"GT MD$%/,4BGCHTV: .QE(SEY /+O:@_%JA)#?6,"8Y0>WY*J:.NC@G"Y.6/0RT- MLX7+RY\A-<]98+TOMF>1M^4IIYO.J6::@Z:GQ-Q!LT9B[I@:[NBVO%GU M*^W8NB/OKEFD[#AFU^Q8#G/-L*A:^:RC31DK>LE5W:*V(65J>N3J$3N$1G6[ MYLTK36TJ.Z@ M@Y:\#+)Y8 "Z.,K+(,VTZ-"M6N$0.=2D5>Q22SVCCV/'DRC_EB991F9I,@[S M8^XNNF(#6"X=#JM>:E:B08N.;3O#5)M:=4O=(U,E9:JF6=0<5O4/0:[*SE63 MJEI-C[\6G,&TH6X$MH&U.*KZP"P+FK+O,YYB=7?)HK:?IF$;SW*Z*+V;UP8>$[2!(,,JKO(('D99#K4K)PD!AG4((-L:E:N MUB3?0:/T^^AGEC$O]2=B&PW8+8N2&4^^WR//:1X4?L:@-G0 ?=)YFMHVQNW* MRR!=HT.GYM$?,J@9!CGZ&?.4]<4H_8W%+/4BL9=ZP32,PRQ/10&E_MBFFD.' M=2O]H6;=!(-L:KGH!B,O@PR+VBK:IA(S2*=N!YQ@I-].N2MI1D0-0A:0/"'L M>Y@7AFJ8S9*,[[0^[*ZBQG"/#%83PQ7EYPG4T;&:3)=Z :KM==[[ MM4K=N)AHYY,P)38JN\!3V M#A=YVBV>\@C%F@8^\E12GFHZ=70I0\8ZGLVAR*89"J6 DIC5\PMKY2V/1H=U MCP!::CVTC3]&9:\PY$^#MZ14LS =BKS\T:ENG]'+H!]V](B-DY25&RC)O>_' M751W19^SJ8UI'3K&TR'LQVAW=8NG8'?9E3=Q9*KD3+6HZJ QW3SA/Z7);9B% M24Q *3A>)VBKUEGW#A:M@D;XX^CH>RPO?TQJ&U@E35[^6%0?MM\U7-8=] ^6 ME_OF\R@N6_$E$P'^]DSSEG8]F=34J^H+;3) $+==Q:UE=ODT!'';3=PZ5)7S MHAUQB[C=Z_7C5 [);/),:S&*L^%OK''#YU2+O9-CMI=1A5J5R( M6+ZC701:*X!VQC-J!%J/@-:!RRH$6BN =L:MLR\)F7X-HWG.@B,.6'99HAU; M.Q4G+O&RJJPH5)MZ>TZ#$;F(7$0N(E=&G1F1B\B58,: 7#EE+M[!X1!;,<2. MW\%]X9=N&9EG13I?/YG.P)[D:07P:J[7;?3Z:NZ("4NK"N@&=565&JYZBMF> M0HQ+3S&+&II!5<-&BAU2Q8I=C#&=%>CNEEOQ^HCQ2QJ@?PU3'.;_*UT/%$8 MEL5$=KDM'T)2;*?C[0AP_91[HXC!?X/P]O7/\,\&UDP+\#M+LI!G^[T4%7?" M6W9U%P;YI,3NZE=E]^K#)]X(Q@&;ZZ-/BC7V^N<1'T6)>?'GU7]YTV'PRXO0 MT+R1.[9L1K&@]795ASH:DM>>@.-B7@!?5W:^"R&_I]3L PW!8M>9I;( M$_(>N$#)N]A7UF>P,G8)QGJ=Q $O-!$0^$F@5Y1W^I+#?WCEX8PD8W+M91/R MSRBYRV2>RL6[F.239)YY<9"]DGJD?\;>/ B!T+N'N8%KOO=PJ;$A>F"PD3?+ MV.7BARM>C"OR[B_#6/0K/KHJ&RLE!5]P&WNP($KQ^&$M*FJQ'DMCI.RY?*R( M1QM7"L6SH::XQN['JJ+M?+:O64U75&?WI_N:W?_,5.WG&:QQ4+/U%8X]05*' M[U[M:^0)"_G)CMU'KVY150O9T+RN^DAB%&?UX7?R =Z:9.0M".R ;XR_SV-& M#)56.3TX*5.DIYJNZM8AUE S&&X#N;::0J<\@3O/"=3V^7Y<5MLZH'!EM?O% M(W#4T WH"01M9XXBZR>RZ;8/3#L<78Y(DM B1RQ$VOFG=41:@[,$-K3T7OY- M\-<\RXO3ASPA*?.3V ^C-=<4^#O_S>R1.48C*Z7ZF@^;"GU_=>>89; MR9.W<&54O52+I+R"P/ON2)_VTP\OC9-?==9'%6R(:R=')_LC@[5+>P]H[,_+'. MF<6Y/PK"F*4I=V8^MK!+N^!U85#7L5ZA,B C;TRJF>99>-,7/> =/T)G64YX M)87CJ[I5W@^\]R$_LT+8ZZ3<4F99%[$Q<$LY>?S^;T0$^S?\W#&I4A_ ME+-ZX$,-K4#.C@? ,M M<3W@X5H^RQC8#5P!B$)O=(QUT,X-QAV>9X?!K?\)SAC4K%PR6U(-0&;OGC\. M==LY1DOH2G5HW:&N?7P"NOT>Z6W1,+K"5,.B0Z?J,7TC3)4X-1MZU+<@HN)= M?,NR4T14'"HU,$W6\XNK3_/4GW@9RU9/\.C#\9W0Y1-NU\.^/@MS+RJ5_!XI M]3H=&JC6R\D;&W;;"BX8J-)7EQ!I D0+,C).DRG)O*@A6='*DZ>S7T#AV>!3 M^GG-4M&RG0U*+3)6E8JIEWYC97H+YL_3OAT):AI5K0H7!:@^R"ZNT6^K.P/N MJ)H&XXE(R@(VG0D76:&:3;V\%+^GEKGU 5047N:06;E(JVHK-6_ MLKD0Q0+"^-7:Y4U8Y=3O 6A*^?\%P:U:JAUCO1WX['S,^YVL&^^R*LE*1>SHA?AIB"72*DD4@_PW_@)YJW7L25%;R*?/%: MHZI=]:(5=4)28?&$IQ8Y'=LG-6I4SD6(NH_D M/-6I8=5TN)),\LBJ_VR7/->[) TE(W83QC$WO'C(#32?[*ZIWCD[WW&I.L2, MIQ(SR*!#M_U9-5HH%QB/M-LE$9YQPY+);*Q4N[W%R5&HXNXP9](JT+ M@=M1X-I4,V76+"LYUQ8#*MHYOJ;L]G969FW DR"9\SB=DW9QKJ$*DO\D H]> M/ZZ,7G+ Y&7,9TD6\DO'2Y&'.KQE#]7+>7WME:_*D:D/GW@C&.(\?_Q) ?[7 MO,;R>GGVU7]YTV'PRXO0T+R1.[9L..=.?=9^MCGH;Q8'6V%0>ZNYK\ZA(H:A WJKKH MI7]JGI#WP 5*WL6^LCZ#E;%+,-;/90G"LOH+'ZX6H:1A+/H5'UV5 MC972AB_:C%;58TZ6A4O9>*LYLF.W4>O M;K'RBIU(@O,;L3]]G:2,D0_PWB0C;^. !5R9^WT>,V*H]( 8K"X2Y4OX_3"2 M' N8*DB5F6I%M(RJ6X<$[36SL-M +O,4ZZMK1$$,'8&ASMQ"[G#Z7!BU<>$( M 48M)5[PUSSC)&O\SAE,+?_P&<7-QY/,!$EF7#K@E9A M"#'QYVG*8O^>DNNW'TF>>G%QC /=9&4]@>*G;17)EC6(3A/?W+FTQ#A":5([ M2^_YO2$ C@F]Z=XU3#LN6TQJZL/6![XCTMJ -,ML?P8U1)K\2'.HJMN(-$3: M\[LJ4$<]8X7?OL0=OPD"PB?SXTO+>43HIFT!;*.A-DYI1>F.O.C^\L1!27\2 M;)A4KQM2(-'&W6G^F&?,PH7\>5+QU2W,8B:,/J MF9M0JVZ",XZ#C)&2,896H=@J9MS6G_,4(T:=M7HY<_;U MTW0 UTH:BK*) 7__4G,$QQLF_]'"J@=B*=:=B1QIX##?]R.>6E0=UKSE1YY* MRE--J^%=ATR5G*DJM>1[R*VLXB)R$;D2S!A4F9KI?A&YB-R6*>'-(%>V"[+GNH/$(;9\B!V_ MC/O"+]TR,L^*C"*\[@+8DR3&.SIL ^_H3I7P0"J=0#>HJZK4<%592@A)3S&+ M&II!5<-&BAU(,9.JFD,US46*'8PQ5SZ[6^?8)]*XY.*T2355HY:K MRZ)#24\QD+]#G;I#I-CA&--=GDBCWH[51XI9U +Y:YCF-OE;Z9RBL#"+B1Q3 MR1W;Z7@[ EP_Y=XH8J_+C!4KZ4&F7GH3QN*DP@8(KV4+6>[D81RP.+\ZKF)"7>EB):E,P/K@Q"R;;\YR)KJU\E MGRNY8RGC1S'1/("WPYCD$P:]15%R!],BXK3&3V*!.=%@EL-_> X7DHQ),F.I MF$-&?/CS39)"F^L'.7OPI^F%O.-(W8 [,"[R9AF[7/QPQ0?>782QX(#ZZ M*ALK%\<6? @T%X^O[L(@GW"YK*A"-B\4X++G\K$B'FV<9Q?/3'Y+;NU\K"K: MSF?[FM5T175V?[JOV?W/3-7N^6!-1;5:-5CSH&:?,-^>W%W<1Z]NT:-\6.,L M;5Z1&FY5I+Y.4L;(!WAODI&WL#T%/X_2U[_/8T8,E1Z@CG:1*%_"[X>1Y%C M/%)'GH[$E)=JNJI;A]@O3\ZT-^0R3[&^ND84Q- 1&*IA )^48@4%?[-'K*J[]_3%2-?.,:ARJV4]PY\>7CJ[I5\@A:3FD579. M0>[T:/WTQ5#]FN2P@98A;?'-(BSOJ"O3(XJ5205""Q3P+A>=ZR-/36I8-9.V M(T\EY2FOQEOS( -Y*BE/'>IH4E981A\\; -]\)Y8O1_S"4O+9)>4)[[LSZW' MA39T7^%YK8R<<1QDC)2,,303.2,C9ZH?,LMWP2'K'EFE*#VQ>ME=O-&^UVG MA%@-_TQ2D5TV%ZD<141R^)U,$Y&_D/'\A80G+RP6N:%2PI.LB?=X^C"Z*!B4 M>]\)V-7,S\OLM; R_7GA$C?/^,4][Z1X([PMWD_A*<^A*QZE+&*W'M#BKWD: M9D'HBP2V"OD*SZZ3*<#E_N_90ZVBQ?<9"4)H-"7C-)F2$'K??#QG9):&@ B@ M(_?.XYU-88K)>.&6=\\GP5/XBE2[ 4PG \DBYKC(\,O;6QN8>)JR:7(KG!(> MSVO$8C;FXQ$#RW;E'EX90DF&;%8V-0,.)X'R5,[>AQS45RW.XNLZBJON?KPE MS^J&;'=/FJ5]OW@INS0Y41[GQ5[2@H]XY:NR>_7A$V\$XYCGCS\IQ,)KGCET MG?VK__*FP^"7%Z&A>2-W;-GFR#)-WW)OUR.=Z"=E[=SE4;=[R7@X9%E7M MFOD!Y+C6/#(A,B*WI?+F&-K5+=KYC1"Y")RSUB2V:"6 M+J7,[;B;=W%M-$N3<=BC%*J62X?#FCYW$GG6=9A!-K7,JMFKD$%->JU:U!Q6 MS7>-'&J20R95M:H6^ DYU)=H8N%^<2/VT>FZ^T6/$R28IF(TJ,C)A(6\TAU/M$AD%0( MWVXDG-2^0FJU)0O4*=HXI>VG._)*BB^[(GO*1*7]22QEZE7/4S%33H/LU,GQ)=/TJ_D;Z9)C"._QR_>;;RK-XPSWA.CS+OMQ /IFKL8^GML/*A7C;Y G91XXZE6LB(4?EYJA& MK;HU/I>O+4UKKLR2N]-K!,"7.SQ[?W:"U3IAE73KW8#J]X6Z66674IR6?< M(-3DAYHUI(;5?G]KA)K\4-.T(551K"'6&L&:1>W*%]-X G6LSHE^\"O^IP[Z M#J)%?:3_Z1 QA!A".808.K,[= M%Z\QP7W7$]Q_G+$4GL8WF.0>D]P7/6.2^^X-%I/<;ZRK]N5BQT:>J1%,7/Q9U7>2/O/QQJ:56 M#3U&_C1IS5!'/V/T4E^\_(4?1K+TPT O_V6&('301N?:(W4T],]&"!TKA= ] M&R%TG"6B: BA'N4*>7/J3/=29B/'-C [>\^SLU/=JIEH2Z*;D4[SQ\0O_U(\M2+BPAYF&IV7++VMH',L*N6TD MNCG^_/C2 MT37]"CDD+8=P!)X0]CW,B1<'A&>=2#)>#\7/ MPUO89UF//#TU$_T(Y>5./>F '&IP_50N,8/K7G*-/?. MED>AMHU5GQ!JC4!-L\]8B >AUANHZ1I5*^M_"#6$6@VH&52WL+Q8<[HG!A]O M\7W%L#^TKH^%D(L00@@=!R&,'$4('>?!K>@(H0>M;M'_XDWKZ5H1+2Y)A>U@ MZ:_7E4M_Z?J+UUCZJXNEO_Y@.2GS-L)4WO[CW==?WPC_OC?"*X$%Y=]DGEJG MRX!MQ7E["H,YBJ'M?ER[(I2J&*K^#.6K#/VP.E/=':P.K*Y7PNM,@W6P,!@V M@H7!L#!8E/G@B3FIC,4&K^6"9F(I"7/PY5SUEP"OGS9,4V MIP/I#%NR;9[ %[]=Z#(4X^2YO63B[]D]6ML&A\H!& B'+L.ALB<\PJ'+<*@< M6]-B./0E&\8;+)S5PS;ZDJ;\D#H?1TMIF29<^CB8QK\RF7]ELY3Y84\+R@VI;59U$L1;I$9O M^2I7_43^-"BD+6KJ6/!"8@;95+//Z&?2E_.:=SRV@V6+"UG*+V?[]3 MO3A F8E^P#+SQ]'1#UA>_IC4-O $1U[^6%0?MM\/6'IOF(U4;#6TLZ[D,-5, MJJE2AG*=0>7N#%,MJCE=CN;O(U/U(;6'-6NI(U,E9:JA4E>MJC"W*9*V):H M^5 _)*B<>%<@J:G*HW19IYE[RUS#SV"L= 9#>H68$L008FB['#H\3 TQA!C: M+H<.+]'190SUY6#G^#"G0XT4;$.>-OIR _@E3_QO@Y&7,3[/*?<^[:DGJDEU M"QWII.:/V?[JR=WEC\,]:9 _$O/'.N<]>E_\4/^,4P8C^ _LIQ7CJ[I5\@A:3F$*TAN_IQ] M!?7%'+WF.R<1Y:O!(LT3PKZ'N2@BS"O0)ID7$<_/PUO89VL&?: 2ARJV%-(! M.=3@^M%J>A@B=_JP?OKBZ?DUR?D&&OPUS_(IBX^S4;OB(6-1RZUY$22'4SEZ M/6VY?-6LFL4^D*>2\M2EIEK3X0%Y*BE/'6K;4O*T/]Z"7!< 4WM[/.C1>J9, M<^UJWDN7VF[-J#B)S!N$6BN@9ACM/XE"J,D/-6-(50=3E"/4&H":2ZW*6BB> M/AVK:YXVX-@ @3)?!2Q-MI!FGE4I-^^R;.*$(4%;+H MF(A11!&BJ)!%N*.MJG>+_A=OF@(C%2%64JB8V*YSSV-JZ&$'RPZPG54 _Y1[ ML!CAOT%X^_IG^&<#SZ8%2V.6% [0E\*!*[QE5W=AD$_*9;'Z5=F]^O")-X)Q MS//'GQ3+]_7/(SZ*A(;FC=RQ99LCRS1]RW%5WW1\6U4] M&XP\A_U+MUXL/IHL%^7,NVAKPMQG_'" ,\ILX:;,DLO4ROG"7D/7*#D7>PKZS-8&;L$8[U.IC,O M#;,D)LF8B-+V,/8_DG@@?O[,;ED\9^2W-+G+)V1T#W^Y 8C)/*6+=S'))\D\ M\^(@>R7U2/^,O7D0@AV_>Y@;^.;[')<>&R((!AMYLXQ=+GZXXCZ>D7=_&<:B M7_'15=E8*3'XPMO8Y@51BL/%?%H0RTIGNFJ8FK6SL>J MHNU\MJ]95W'MW4_WM;K_F:G:.-:6C%5S%=6J.R D[/ZQF@>U6D<7?]+/X'"E M"QO!1KK9R/:%I=M[%M:3@]&L1^]N.?4H]*#F3?_MVM'725U? M;R2?:L7"U@[>5\X'4[E6]>+L]K2Z<0<(870GS&_-"-?O2Y.F MTJ'6_C1-B#7YL7;VA%.(M=Y@#>4:8JVI:;D.M4Q,NR^QW[9>/8:DQ<[9B ?$ MP[-5"9/8&'T[3Y-9O6I)K4PQIYO4J%SN1;YP\NXRZ$*CNJMC"0$9>:,;5*U< M:PP9U""#AE1U,<.IO RZT%1%.[UPVZM1(&<.XXRI/$.QIZ8<.&]I5Y5F6%2U#1DS.S9TV(C(;2=RJ]HAB%G$[+DGK!D&'0Z[ MG,,VBZ!VRD?1D;CACF2BZ'#D1E?0F_'YWC M 4/_#J/E(5DACJ/EEL#]KD?^8B:)ZF'T"1X@CE'2$?7'#Q.P3+8^OLSG53Q"&N7WY=5W>^KQ=Y=" >$ MP\KL,/E$-V-,+97J#L;/R\N@"T=_AAA@Y,SQG#%=:MJ8V4!>!ED&-5V4;?(R MZ,)6U&;3&S2M0SV2W B(O8"H$I[5 4#TY88'$VWT,(!6MS6JVTZ' V@1N=U$ M;C6;"Q&+B#WWA'5;I:91\Z8*D8O(/1]RP4JW=$RS<32*I>*JH6@-\E*F!7SV M6[2N0$A7A@BAW9D-K*>#H;='RC]#Q/T1V21PJ#C4YQ]J*]H1"_VGW ,JKH2< M%=+G-0\]WQF.5C8WX$+LTEW(]# .6)Q?#ES117,R3(3G++?_1ON]6J.$2/Y2 M1KB0<9*2?,+@_RECQ(MA-PF_DVDBHOL9C^XG/+2_T$,7N1+(Q,O(B+&8I SV M!7\>>=Q3?9Y!'R(! &^61PH2OPS'(^R[+V*"2,Q_6QSSE7_G) M=.:EG,ED!E-,@HSD"9FER6T8,'@=&IQZ/+(.>F'C>21:N/6B.?P1/N=3@(V/ MI=$]_W7$A\(R: -ZAZ:@]V@>+%X,H2OH.1F38DQB.$^,6-F)LJF7WH3Q M$V ML*/\"Y< _%<)8:C+ L.ODS#C8F(^C8'9+ .29()' (>6.9V7,:*'L=Q<@$R;XNXXPU5EG:5Y_&*MR&V MSE6QZ $QXRSW@!'+K@M!&F9)?*C(*O9:L<%N[-+ JLB;9>QR\<-5$&:SR+N_ M#&/!;O'1U7IS6R*=Q1(H'E_=A4$^X1J]H@JM?G'/5_9M#JO[SI,/CE16AHWL@=6[8YLDS3MQQ7]4W'MU75LRW;==B_=.?%XJ-)^B#2 M;MA@E#+OV\ ;YRR]]*([[SY;'_,4$+ ZVXH#?8Q.8:[JVV*MFX^J_I0FL.S> M Q1?[NU>6!&.]7@H KN$(P0=C7P3,DX7B]UN:W.43,KHG7UAZ&_J,O(>F M9)[8Q;L8A&8RST!F9J^D'NF?L0?J)FP2NX=Y",I;(Y-U53$UZR"97$G4*ZY] MF*2O]LQ4;1QK2\:JN8IJU1T0$G;_6,TCU*AV)9'%1K 1Z1IYCN1M*VE;6Y.T MZ*LPA8]-SUHCIY',E%$/H\PAR59KYJGL1M(Z3)QZKL2I_88=)D%]%OAA$E1, M@HI)4#$)*B9!Q22HF 3UF:YO,0DJCA!'*/,(^Q(B^R[^B_G"[^M#$O&18R+4 M]B5Q,X?4U*S6YW!#J,D/M0NS1HPJ8@PQ5D6L:KIALL &Y8VM82)4*3D#2\?0JYH)R*#F&&1I5*^<' @9U!R# M=%5!]LC+'LU5AN=C3U]N0(Q?R: M7<[H*G4KEZY !C4KVYR:F?V004W(-E4Q4+9)R1E-,<_"F;Z<@;N72J;EC M5U7"$9LV:MIPL,$1 MN=U$[H5&=5>O?/:-F$7,GE':&G0XK.K>@,A%Y)Y[PIIN4=OH,G*KG-5WI5[B M4'F4._89>2G3 JY7NOX]I4,\X837,BA0&A)C_4+@S3:7.L,&),?HRY%AVZ[:\!@U"3'VJ: MJM&A63543CZL+=OH7)SPA57!&?E0QLBTLK#>4&5 N'T"1%]"U7M:;TC33#IT MJAIOF!:M29-'JY"#%SG3[-HQAU53)"&'FM6OM;K!T6YX^W+0VUISR-3P=%->[E2MTX>\:?+X#,MUR\L=W4:Y)B]W M+.NEA/0+.[F+5 M(41L>Q"KVRHUC9I'FXA<1.[YD&L9U*I\OM FY%8YKN]*R1A#T1KDI4P+&*L. MG4HP*$.$T,,9P:+_@]+F[SJS* E43.P94PEN[^ TY7AP#-\@3#Q"^S^!+VW1?IRDD*KV8DC GLXLR' M-3A/^5=^,IUY*64)F:7(;!@Q>AP:GGLA6-\_8>!Z)%FZ]:.[Q MT"TQ!0 ;2Z-[_NN(#X5ET ;T#DU![]$\6+P80E?0$9:Q>7"[6P:W)8'=V*M1L.$G+;Z#>WXS)A]'$<)Q<@\[:(.]Y096E7 M>1ZO>!MBZUP5BQX0,\YR#QBQ[+H0I&&6Q(>*K&*O%1OL3-,G:Y M^.$J"+-9Y-U?AK%@M_CH:KVY+0G2Q1(H'E_=A4$^X=:/H@H+:'$G6O9_7A M$V\$XYCGCS_9J0>M_LN;#H-?7H2&YHW+#Z:I \B[88-1BGSO@V\<<[22R^Z\^ZS]3%/ 0&KLZTXT,?H%*:]OBU] M^G-*T.V)TC^E"2R[]\ %2M[%_NZ5)<%8K^<9@ <$Q36\RO6<=P_*D\SCOG@7 M@TQ,YAF(1" SB% &R\]?S,8O9I,)B3GC?]AX0KPIV!MY]DKJ2?X9>Z"(PO:Q M>Y@;^&^3;#:&BNIH!\GF*LUJIJ):]9K=_\Q4[9X/UE!,TVK+8#EES2-V?BQ MBHV&0+B;*OJ&:5A)TG1:KT5#NP"FM#"[L- MY#I5<=9.$04Q= 2&^E%'"[W,^^$_IAD652OG=FJ3_Q@BMZ/(U2UJ&UWV?$3D M=A.Y&-F#R&TI6=SBC(WTOLP:W0X/,A8K1V1W25JZ=2T M;*36@2$6!M4,I-:AU#*I83AG/0=9^CLT?QBR]6[\U Y@MF(=,*8M'B]\0QT8 MRI9[Z)&7,=[ BH]LZ1]2(RU8][2Q=NA<-M75FN5Y@T.%I@@ZWNF_S MT*!MP36+J)V4^V91DW2( 7(0^B&=V+%Z#IN1>1>#X= M06<\YN^11SE,[W:]UT0/#BQ)XE_NLQS= !/$C M//;G*9L"UXL8G_EL%MWSZ*:0QSXE8Y9E8!E[4>'0GH@\S8 2/O@Y_^O=)"&S MR/-YB% 1^4/%F_G$R\M((*!8-@EG,Q@[?Q+&MTGHKT]D,0?R%7ZYYJ%!\3T9 M@:$-H\Z6I-W%CS+4,D]XVPR>IUFUN$LQM?@FX<\XC8J/X <1D1##Y( A^D)B!BA[[26&H@"$ 1@DZ0O?#M0GVWYJ5X= C#V%[1MCJ-2]2T!WO"+*_ M"0+"Y_#C2\MY1/ES.1&=O(V^U-?XDB?^MP'WE@E$KA\69\49!/O.?ZY7Y*V5 M%01A%VS_O2RR!PL\'B7&UL4$L! A0#% @ ,3'_6C: @QJF!@ UC !4 ( ! M4AL '!R;&(M,C R-3 W,S%?<')E+GAM;%!+ 0(4 Q0 ( #$Q_UII,9\F M[T< 5K!@ 7 " 2LB !P XML 17 prlb-20250731_htm.xml IDEA: XBRL DOCUMENT 0001443669 2025-07-31 2025-07-31 0001443669 false 8-K 2025-07-31 Proto Labs, Inc. MN 001-35435 41-1939628 5540 Pioneer Creek Drive Maple Plain MN 55359 (763) 479-3680 false false false false Common Stock, Par Value $0.001 Per Share PRLB NYSE false