0000096536-20-000013.txt : 20200807 0000096536-20-000013.hdr.sgml : 20200807 20200807090309 ACCESSION NUMBER: 0000096536-20-000013 CONFORMED SUBMISSION TYPE: 10-K PUBLIC DOCUMENT COUNT: 85 CONFORMED PERIOD OF REPORT: 20200531 FILED AS OF DATE: 20200807 DATE AS OF CHANGE: 20200807 FILER: COMPANY DATA: COMPANY CONFORMED NAME: TAYLOR DEVICES INC CENTRAL INDEX KEY: 0000096536 STANDARD INDUSTRIAL CLASSIFICATION: GENERAL INDUSTRIAL MACHINERY & EQUIPMENT, NEC [3569] IRS NUMBER: 160797789 STATE OF INCORPORATION: NY FISCAL YEAR END: 0531 FILING VALUES: FORM TYPE: 10-K SEC ACT: 1934 Act SEC FILE NUMBER: 000-03498 FILM NUMBER: 201083946 BUSINESS ADDRESS: STREET 1: 90 TAYLOR DR STREET 2: P O BOX 748 CITY: NORTH TONAWANDA STATE: NY ZIP: 14120 BUSINESS PHONE: 7166940800 MAIL ADDRESS: STREET 1: 90 TAYLOR DR CITY: N TONAWANDA STATE: NY ZIP: 14120-0748 10-K 1 tayd202010k.htm FORM 10-K
0000096536 false --05-31 2020 FY true 0000096536 2019-06-01 2020-05-31 0000096536 2019-11-30 0000096536 2020-08-07 0000096536 2020-05-31 0000096536 2019-05-31 0000096536 2018-06-01 2019-05-31 0000096536 us-gaap:CommonStockMember 2018-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2018-05-31 0000096536 us-gaap:RetainedEarningsMember 2018-05-31 0000096536 us-gaap:TreasuryStockMember 2018-05-31 0000096536 us-gaap:CommonStockMember 2018-06-01 2019-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2018-06-01 2019-05-31 0000096536 us-gaap:RetainedEarningsMember 2018-06-01 2019-05-31 0000096536 us-gaap:TreasuryStockMember 2018-06-01 2019-05-31 0000096536 us-gaap:CommonStockMember 2019-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2019-05-31 0000096536 us-gaap:RetainedEarningsMember 2019-05-31 0000096536 us-gaap:TreasuryStockMember 2019-05-31 0000096536 us-gaap:CommonStockMember 2019-06-01 2020-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2019-06-01 2020-05-31 0000096536 us-gaap:RetainedEarningsMember 2019-06-01 2020-05-31 0000096536 us-gaap:TreasuryStockMember 2019-06-01 2020-05-31 0000096536 us-gaap:CommonStockMember 2020-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2020-05-31 0000096536 us-gaap:RetainedEarningsMember 2020-05-31 0000096536 us-gaap:TreasuryStockMember 2020-05-31 0000096536 2018-05-31 0000096536 us-gaap:CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member 2018-05-31 0000096536 us-gaap:DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member 2018-06-01 0000096536 us-gaap:CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member 2018-06-01 0000096536 us-gaap:AccountingStandardsUpdate201409Member 2019-05-31 0000096536 us-gaap:AccountingStandardsUpdate201409Member 2018-06-01 2019-05-31 0000096536 us-gaap:CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member 2018-06-01 2019-05-31 0000096536 tayd:ConstructionSeismicWindMember 2019-06-01 2020-05-31 0000096536 tayd:ConstructionSeismicWindMember 2018-06-01 2019-05-31 0000096536 tayd:AerospaceDefenseMember 2019-06-01 2020-05-31 0000096536 tayd:AerospaceDefenseMember 2018-06-01 2019-05-31 0000096536 tayd:IndustrialMember 2019-06-01 2020-05-31 0000096536 tayd:IndustrialMember 2018-06-01 2019-05-31 0000096536 2020-06-01 2026-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember 2020-05-31 iso4217:USD xbrli:shares iso4217:USD xbrli:shares xbrli:pure

UNITED STATES

SECURITIES AND EXCHANGE COMMISSION

Washington, D.C. 20549

F O R M 10-K

 

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

 

For the fiscal year ended May 31, 2020

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 0-3498

 

TAYLOR DEVICES INC

(Exact name of registrant as specified in its charter)

 

New York 16-0797789

(State or other jurisdiction of

incorporation or organization)

(I.R.S. Employer

Identification No.)

 

90 Taylor Drive, North Tonawanda, New York 14120
(Address of principal executive offices) (Zip Code)

 

Registrant's telephone number, including area code   (716) 694-0800

 

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

 

Title of each class

 

Trading Symbol

 

Name of each exchange on which registered

None None None

 

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

 

Common Stock ($.025 par value)

(Title of class)

 

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

Yes No

 

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

Yes No

 

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

Yes No

 

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

Yes No

 
 

 

 

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

 

Large accelerated filer Accelerated filer
Non-accelerated Filer Smaller reporting company
  Emerging growth company

 

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

 

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

 

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

 

The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter on November 30, 2019 is $37,158,000.

 

The number of shares outstanding of each of the registrant's classes of common stock as of August 7, 2020: 3,487,245.

 

 

 

-2

 

TAYLOR DEVICES, INC.

 

DOCUMENTS INCORPORATED BY REFERENCE

 

Documents Form 10-K Reference
   
Proxy Statement Part III, Items 10-14
   

FORM 10-K INDEX

PART I     PAGE
  Item 1.

Business

4
  Item 1A. Risk Factors. 6
  Item 1B. Unresolved Staff Comments. 6
  Item 2.

Properties

6
  Item 3.

Legal Proceedings. 

6
  Item 4. Mine Safety Disclosures. 6
PART II      
  Item 5.

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

7
  Item 6. Selected Financial Data. 8
  Item 7.

Management's Discussion and Analysisof Financial Condition and Results of Operations. 

8
  Item 7A. Quantitativeand Qualitative Disclosures About Market Risk. 19
  Item 8.

Financial Statements and Supplementary Data. 

19
  Item 9.

Changes in and Disagreements With Accountants on Accounting and Financial Disclosure. 

19
  Item 9A.

Controls and Procedures. 

19
  Item 9B. Other Information. 19
PART III      
  Item 10. Directors, Executive Officers and Corporate Governance. 19
  Item 11.

Executive Compensation. 

19
  Item 12.

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

19
  Item 13.

Certain Relationships and Related Transactions, and Director Independence. 

19
  Item 14. Principal Accounting Fees and Services. 19
PART IV      
  Item 15 Exhibits and Financial Statement Schedules 20
       
SIGNATURES   24

-3

 

 

PART I

 

Item 1. Business.

 

The Company was incorporated in the State of New York on July 22, 1955 and is engaged in the design, development, manufacture and marketing of shock absorption, rate control, and energy storage devices for use in various types of machinery, equipment and structures. In addition to manufacturing and selling existing product lines, the Company continues to develop new and advanced technology products.

 

Principal Products

 

The Company manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs, Vibration Dampers, Machined Springs and Custom Actuators. Management does not track or otherwise account for sales broken down by these categories. The following is a summary of the capabilities and applications for these products.

 

Seismic Dampers are designed to mitigate the effects of earthquake tremors on structures, and represent a substantial part of the business of the Company. Fluidicshoks® are small, extremely compact shock absorbers with up to 19,200 inch-pound capacities, produced in 15 standard sizes for primary use in the defense, aerospace and commercial industry. Crane and industrial buffers are larger versions of the Fluidicshoks® with up to 60,000,000 inch-pound capacities, produced in more than 60 standard sizes for industrial application on cranes, ships, container ships, railroad cars, truck docks, ladle and ingot cars, ore trolleys and car stops. Self-adjusting shock absorbers, which include versions of Fluidicshoks® and crane and industrial buffers, automatically adjust to different impact conditions, and are designed for high cycle application primarily in heavy industry. Liquid die springs are used as component parts of machinery and equipment used in the manufacture of tools and dies. Vibration dampers are used primarily by the aerospace and defense industries to control the response of electronics and optical systems subjected to air, ship, or spacecraft vibration. Machined springs are precisely controlled mechanical springs manufactured from a variety of materials. These are used primarily for aerospace applications that require custom features that are not possible with conventional wound coil springs. Custom actuators are typically of the gas-charged type, using high pressure, that have custom features not available from other suppliers. These actuators are used for special military and aerospace applications.

 

Distribution

 

The Company uses the services of more than 15 sales representatives and distributors in the United States and Canada along with more than 30 representatives and distributors throughout the rest of the world. Specialized technical sales in aerospace and custom marketing activities are serviced by several sales agents, under the direction and with the assistance of the Company's President. Sales representatives typically have non-exclusive, yearly agreements with the Company, which, in most instances, provide for payment of commissions on sales at 5% to 10% of the product's net aggregate selling price. Distributors also have non-exclusive, yearly agreements with the Company to purchase the Company's products for resale purposes.

 

Competition

 

The Company faces competition on mature aerospace and defense programs which may use more conventional products manufactured under less stringent government specifications. Two foreign companies are the Company's competitors in the production of crane buffers.

 

The Company competes directly against two other firms supplying structural damping devices for use in the United States. For structural applications outside of the USA, the Company competes directly with several other firms particularly in Japan, China and Taiwan. The Company competes with numerous other firms that supply alternative seismic protection technologies.

 

Raw Materials and Supplies

 

The principal raw materials and supplies used by the Company in the manufacture of its products are provided by numerous U.S. and foreign suppliers. The loss of any one of these would not materially affect the Company's operations.

-4

 

 

Dependence Upon Major Customers

 

The Company is not dependent on any one or a few major customers. Sales to six customers approximated 41% (10%, 9%, 6%, 6%, 5% and 5%, respectively) of net sales for 2020. The loss of any or all of these customers, unless the business is replaced by the Company, could result in an adverse effect on the results for the Company.

 

Patents, Trademarks and Licenses

 

The Company holds 12 patents expiring at different times until the year 2035.

 

Terms of Sale

 

The Company does not carry significant inventory for rapid delivery to customers, and goods are not normally sold with return rights such as are available for consignment sales. The Company had no inventory out on consignment and no consignment sales for the years ended May 31, 2020 and 2019. No extended payment terms are offered. During the year ended May 31, 2020, delivery time after receipt of orders averaged 8 to 10 weeks for the Company's standard products. Due to the volatility of construction and aerospace/defense programs, progress payments are usually required for larger projects using custom designed components of the Company.

 

Need for Government Approval of Principal Products or Services

 

Contracts between the Company and the federal government or its independent contractors are subject to termination at the election of the federal government. Contracts are generally entered into on a fixed price basis. If the federal government should limit defense spending, these contracts could be reduced or terminated, which management believes would have a materially adverse effect on the Company.

 

Research and Development

 

The Company does not generally engage in major product research and development activities in connection with the design of its products, except when funded by aerospace customers or the federal government. The Company, however, engages in research testing of its products. For the fiscal years ended May 31, 2020 and 2019, the Company expended $585,000 and $319,000, respectively, on manufacturing research. This increase is primarily due to research and development required to meet new types of specifications on certain domestic seismic protection contracts in the current year. For the years ended May 31, 2020 and 2019, defense sponsored research and development totaled $26,000 each year.

 

Government Regulation

 

Compliance with federal, state and local laws and regulations which have been enacted or adopted regulating the discharge of materials into the environment has had no material effect on the Company, and the Company believes that it is in substantial compliance with such provisions.

 

The Company is subject to the Occupational Safety and Health Act ("OSHA") and the rules and regulations promulgated thereunder, which establish strict standards for the protection of employees, and impose fines for violations of such standards. The Company believes that it is in substantial compliance with OSHA provisions and does not anticipate any material corrective expenditures in the near future. The Company currently incurs only moderate costs with respect to disposal of hazardous waste and compliance with OSHA regulations.

 

The Company is also subject to regulations relating to production of products for the federal government. These regulations allow for frequent governmental audits of the Company's operations and fairly extensive testing of Company products. The Company believes that it is in substantial compliance with these regulations and does not anticipate corrective expenditures in the future.

 

Employees

 

Exclusive of Company sales representatives and distributors, as of May 31, 2020, the Company had 115 employees, including five executive officers, and one part time employee. The Company has good relations with its employees.

-5

 

 

Item 1A. Risk Factors.

 

Smaller reporting companies are not required to provide the information required by this item.

 

Item 1B. Unresolved Staff Comments.

 

Not applicable.

 

Item 2. Properties.

 

The Company's production facilities occupy approximately six acres on Tonawanda Island in North Tonawanda, New York and are comprised of four interconnected buildings and two adjacent buildings. The production facilities consist of a small parts plant (approximately 4,400 square feet), a large parts plant (approximately 13,500 square feet), and include a facility of approximately 7,000 square feet comprised of a test facility, storage area, pump area and the Company's general offices. One adjacent building is a 27,000 square foot seismic assembly and test facility. This building contains overhead traveling cranes to allow dampers to be built up to 45 ft. in length. It is also the site of two long bed damper test machines where seismic dampers Taylor Devices manufactures will be tested at maximum force to satisfy customer specifications. Another adjacent building (approximately 2,000 square feet) is used as a training facility. These facilities total more than 54,000 square feet. Adjacent to these facilities, the Company has a remote test facility used for shock testing. This state-of-the-art test facility is 1,200 square feet. The Company owns two additional industrial buildings on nine acres of land in the City of North Tonawanda located 1.4 miles from the Company’s headquarters on Tonawanda Island. Total area of the two buildings is 46,000 square feet. One building includes a machine shop containing custom-built machinery for boring, deep-hole drilling and turning of parts. Another is used for painting and packaging parts and completed units.

 

The Company's real properties are subject to a negative pledge agreement with its lender, M&T Bank. The Company has agreed with the lender that, for so long as the credit facilities with the lender are outstanding, the Company will not sell, lease or mortgage any of its real properties. Additional information regarding the Company's agreement with M&T Bank is contained in Item 7, Management's Discussion and Analysis of Financial Condition and Results of Operations, at "Capital Resources, Line of Credit and Long-Term Debt."

 

The Company leased a separate warehouse for storage from an unrelated third party, consisting of approximately 3,600 square feet for a portion of the year. The warehouse is located approximately one-quarter mile from the Company’s headquarters. The total rental expense incurred by the Company for this facility in fiscal 2020 was $8,900.

 

The Company believes it carries adequate insurance coverage on its facilities and their contents.

 

Item 3. Legal Proceedings.

 

There are no legal proceedings at present.

 

Item 4. Mine Safety Disclosures.

 

Not applicable.

 

-6

 

PART II

 

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

 

Market Information

 

The Company's Common Stock trades on the NASDAQ Capital Market of the National Association of Securities Dealers Automated Quotation ("NASDAQ") stock market under the symbol TAYD. The high and low sales information noted below for the quarters of fiscal year 2020 and fiscal year 2019 were obtained from NASDAQ.

 

 

   Fiscal 2020  Fiscal 2019
   High  Low  High  Low
First Quarter  $11.45   $10.54   $12.62   $9.99 
Second Quarter  $11.10   $10.11   $12.70   $10.80 
Third Quarter  $13.39   $10.10   $13.29   $11.50 
Fourth Quarter  $11.57   $6.61   $12.75   $10.42 

 

Holders

 

As of August 7, 2020, the number of issued and outstanding shares of Common Stock was 3,486,871 and the approximate number of record holders of the Company's Common Stock was 495. Due to a substantial number of shares of the Company's Common Stock held in street name, the Company believes that the total number of beneficial owners of its Common Stock is less than 1,300.

 

Dividends

 

No cash or stock dividends have been declared during the last two fiscal years. The Company plans to retain cash in the foreseeable future to fund working capital needs.

 

Rights Plan

 

As of September 25, 2018, the Company's Board of Directors adopted a shareholder rights plan designed to deter coercive or unfair takeover tactics and prevent an acquirer from gaining control of the Company without offering a fair price to shareholders. Under the plan, certain rights ("Rights") were distributed as a dividend on each share of Common Stock (one Right for each share of Common Stock) held as of the close of business on October 2, 2018. Each whole Right entitles the holder, under certain defined conditions, to buy one two-thousandths (1/2000) of a newly issued share of the Company's Series A Junior Participating Preferred Stock ("Series A Preferred Stock") at a purchase price of $5.00 per unit of one two-thousandths of a share. Rights attach to and trade with the shares of Common Stock, without being evidenced by a separate certificate. No separate Rights certificates will be issued unless and until the Rights detach from Common Stock and become exercisable for shares of the Series A Preferred Stock.

 

The Rights become exercisable to purchase shares of Preferred Stock (or, in certain circumstances, Common Stock) only if (i) a person acquired 15% or more of the Company's Common Stock, or (ii) a person commenced a tender or exchange offer for 10% or more of the Company's Common Stock, or (iii) the Board of Directors determined that the beneficial owner of at least 10% of the Company's Common Stock intended to cause the Company to take certain actions adverse to it and its shareholders or that such ownership would have a material adverse effect on the Company. The Rights Plan will expire on October 5, 2028.

 

Issuer Purchases of Equity Securities

 

A share repurchase agreement with a major broker-dealer, under which the Company repurchased shares of its common stock on the open market, has been terminated by the Company. No shares have been purchased since August 2011.

 

 

-7

 

Equity Compensation Plan Information

 

The following table sets forth information regarding equity compensation plans of the Company as of May 31, 2020.

 

    Equity Compensation Plan Information

 

 

 

 

 

 

Plan Category

 

 

 

 

Number of securities to be issued upon exercise of outstanding options, warrants, and rights

(a)

 

 

 

Weighted-average exercise price of outstanding options, warrants and rights

(b)

 

 

Number of securities remaining available

for future issuance under equity compensation plans (excluding securities reflected in column (a))

(c)

Equity compensation plans approved by security holders:

 

           

2008 Stock Option Plan

2012 Stock Option Plan

2015 Stock Option Plan

2018 Stock Option Plan

 

 

29,750

73,000

120,750

28,750

 

$ 8.29

$11.50

$12.73

$ 9.85

 

-

-

-

131,250

Equity compensation plans not approved by security holders:  

 

 

 

       
2004 Employee Stock Purchase Plan    (1)  

 

-

 

 

-

 

 

220,253

Total

 

  252,250       351,503
             
(1) The Company's 2004 Employee Stock Purchase Plan (the "Employee Plan") permits eligible employees to purchase shares of the Company's common stock at fair market value through payroll deductions and without brokers' fees.  Such purchases are without any contribution on the part of the Company.  As of May 31, 2020, 220,253 shares were available for issuance.  
               

 

Item 6. Selected Financial Data.

 

The Company qualifies as a smaller reporting company, as defined by 17 CFR §229.10(f)(1), and is not required to provide the information required by this Item.

 

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

 

Cautionary Statement

 

The Private Securities Litigation Reform Act of 1995 provides a "safe harbor" for forward-looking statements. Information in this Item 7, "Management's Discussion and Analysis of Financial Condition and Results of Operations" and elsewhere in this 10-K that does not consist of historical facts are "forward-looking statements." Statements accompanied or qualified by, or containing, words such as "may," "will," "should," "believes," "expects," "intends," "plans," "projects," "estimates," "predicts," "potential," "outlook," "forecast," "anticipates," "presume," "assume" and "optimistic" constitute forward-looking statements and, as such, are not a guarantee of future performance. The statements involve factors, risks and uncertainties, the impact or occurrence of which can cause actual results to differ materially from the expected results described in such statements. Risks and uncertainties can include, among others, fluctuations in general business cycles and changing economic conditions; variations in timing and amount of customer orders; changing product demand and industry capacity; increased competition and pricing pressures; advances in technology that can reduce the demand for the Company's products, as well as other factors, many or all of which may be beyond the Company's control. Consequently, investors should not place undue reliance on forward-looking statements as predictive of future results. The Company disclaims any obligation to release publicly any updates or revisions to the forward-looking statements herein to reflect any change in the Company's expectations with regard thereto, or any changes in events, conditions or circumstances on which any such statement is based.

-8

 

Application of Critical Accounting Policies and Estimates

 

The Company's consolidated financial statements and accompanying notes are prepared in accordance with U.S. generally accepted accounting principles. The preparation of the Company's financial statements requires management to make estimates, assumptions and judgments that affect the amounts reported. These estimates, assumptions and judgments are affected by management's application of accounting policies, which are discussed in Note 1, "Summary of Significant Accounting Policies", and elsewhere in the accompanying consolidated financial statements. As discussed below, our financial position or results of operations may be materially affected when reported under different conditions or when using different assumptions in the application of such policies. In the event estimates or assumptions prove to be different from actual amounts, adjustments are made in subsequent periods to reflect more current information. Management believes the following critical accounting policies affect the more significant judgments and estimates used in the preparation of the Company's financial statements.

 

Accounts Receivable

 

Our ability to collect outstanding receivables from our customers is critical to our operating performance and cash flows. Accounts receivable are stated at an amount management expects to collect from outstanding balances. Management provides for probable uncollectible accounts through a charge to earnings and a credit to a valuation allowance based on its assessment of the current status of individual accounts after considering the age of each receivable and communications with the customers involved. Balances that are collected, for which a credit to a valuation allowance had previously been recorded, result in a current-period reversal of the earlier transaction charging earnings and crediting a valuation allowance. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to accounts receivable in the current period. The actual amount of accounts written off over the five year period ended May 31, 2020 equaled less than 0.1% of sales for that period. The balance of the valuation allowance has increased to $211,000 at May 31, 2020 from $110,000 at May 31, 2019. Management does not expect the valuation allowance to materially change in the next twelve months for the current accounts receivable balance.

 

Inventory

 

Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.

 

Maintenance and other inventory represent stock that is estimated to have a product life-cycle in excess of twelve-months. This stock represents certain items the Company is required to maintain for service of products sold, and items that are generally subject to spontaneous ordering.

 

This inventory is particularly sensitive to technical obsolescence in the near term due to its use in industries characterized by the continuous introduction of new product lines, rapid technological advances and product obsolescence. Therefore, management of the Company has recorded an allowance for potential inventory obsolescence. Based on certain assumptions and judgments made from the information available at that time, we determine the amount in the inventory allowance. If these estimates and related assumptions or the market changes, we may be required to record additional reserves. Historically, actual results have not varied materially from the Company's estimates.

 

The provision for potential inventory obsolescence was $180,000 and $175,000 for the years ended May 31, 2020 and 2019.

 

Revenue Recognition

 

Accounting Standard Update (ASU) 2014-09 was adopted on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings.

Revenue is recognized when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.

-9

 

A performance obligation is a promise in a contract to transfer a distinct good or service to the customer, and is the unit of account. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations.

For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Total estimated costs for each of the contracts are estimated based on a combination of historical costs of manufacturing similar products and estimates or quotes from vendors for supplying parts or services towards the completion of the manufacturing process. Adjustments to cost and profit estimates are made periodically due to changes in job performance, job conditions and estimated profitability, including those arising from final contract settlements. These changes may result in revisions to costs and income and are recognized in the period in which the revisions are determined. Any losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. If total costs calculated upon completion of the manufacturing process in the current period for a contract are more than the estimated total costs at completion used to calculate revenue in a prior period, then the profits in the current period will be lower than if the estimated costs used in the prior period calculation were equal to the actual total costs upon completion. Historically, actual results have not varied materially from the Company's estimates. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the year ended May 31, 2020, 57% of revenue was recorded for contracts in which revenue was recognized over time while 43% was recognized at a point in time. In the year ended May 31, 2019, 55% of revenue was recorded for contracts in which revenue was recognized over time while 45% was recognized at a point in time.

For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. The asset, "costs and estimated earnings in excess of billings," represents revenues recognized in excess of amounts billed. The liability, "billings in excess of costs and estimated earnings," represents billings in excess of revenues recognized.

 

We recognized the cumulative effect of initially applying the new revenue standard as an adjustment to the opening balance of retained earnings. The comparative information has not been restated and continues to be reported under the accounting standards in effect for those periods.

The cumulative effect of the changes made to our consolidated June 1, 2018 balance sheet for the adoption of ASU 2014-09, were as follows:

          
Balance Sheet  Balance at May 31, 2018  Adjustments Due to ASU 2014-09  Balance at June 1, 2018
Assets               
Inventory  $11,317,775   $1,101,116   $12,418,891 
Costs and estimated earnings in excess of billings  $6,356,963    (326,509)  $6,030,454 
Liabilities               
Billings in excess of costs and estimated earnings  $2,043,002    (25,105)  $2,017,897 
Other accrued expenses (customer advances)  $1,412,502   $794,713   $2,207,215 
Equity               
Retained earnings  $26,959,080   $4,999   $26,964,079 
                

 

-10

 

In accordance with the new revenue standard requirements, the disclosure of the impact of adoption of ASU 2014-09 on our consolidated balance sheet and income statement was as follows:

   May 31, 2019
Balance Sheet  As Reported  Effect of Change Higher/(Lower)  Balances Without Adoption of ASU 2014-09
Assets         
Inventory  $11,239,331   $—     $11,239,331 
Costs and estimated earnings in excess of billings  $7,572,490   $—     $7,572,490 
Liabilities               
Other accrued expenses (customer advances)  $1,532,271   $—     $1,532,271 
Equity               
Retained earnings  $29,508,604   $—     $29,508,604 

 

   For the year ended May 31, 2019
Income Statement  As Reported  Effect of Change Higher/(Lower)  Balances Without Adoption of ASU 2014-09
Revenues         
Sales, net  $33,619,031   $1,096,117   $32,522,914 
Costs and Expenses               
Cost of goods sold  $24,571,255   $1,101,116   $23,470,139 
Provision for income taxes  $515,000   $—     $515,000 
                
Net income (loss)  $2,544,525   $(4,999)  $2,549,524 

 

 

 

Income Taxes

 

The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. The deferred tax assets relate principally to asset valuation allowances such as inventory obsolescence reserves and bad debt reserves and also to liabilities including warranty reserves, accrued vacation, accrued commissions and others. The deferred tax liabilities relate primarily to differences between financial statement and tax depreciation. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.

 

-11

 

Realization of the deferred tax assets is dependent on generating sufficient taxable income at the time temporary differences become deductible. The Company provides a valuation allowance to the extent that deferred tax assets may not be realized. A valuation allowance has not been recorded against the deferred tax assets since management believes it is more likely than not that the deferred tax assets are recoverable. The Company considers future taxable income and potential tax planning strategies in assessing the need for a potential valuation allowance. In future years the Company will need to generate approximately $4.0 million of taxable income in order to realize our deferred tax assets recorded as of May 31, 2020 of $830,000. This deferred tax asset balance is 9% ($69,000) more than at the end of the prior year. The amount of the deferred tax assets considered realizable however, could be reduced in the near term if estimates of future taxable income are reduced. If actual results differ from estimated results or if the Company adjusts these assumptions, the Company may need to adjust its deferred tax assets or liabilities, which could impact its effective tax rate.

 

The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses.

 

The Company and its subsidiary file consolidated Federal and State income tax returns. As of May 31, 2020, the Company had State investment tax credit carryforwards of approximately $369,000 expiring through May 2026.

 

 

Results of Operations

 

A summary of the period to period changes in the principal items included in the consolidated statements of income is shown below:

 

Summary comparison of the years ended May 31, 2020 and 2019
   Increase /
   (Decrease)
Sales, net  $(5,237,000)
Cost of goods sold  $(5,426,000)
Selling, general and administrative expenses  $(112,000)
Income before provision for income taxes  $356,000 
Provision for income taxes  $(129,000)
Net income  $485,000 

 

For the year ended May 31, 2020 (All figures being discussed are for the year ended May 31, 2020 as compared to the year ended May 31, 2019.)

   Year ended May 31  Change
   2020  2019  Amount  Percent
Net Revenue  $28,382,000   $33,619,000   $(5,237,000)   -16%
Cost of sales   19,145,000    24,571,000    (5,426,000)   -22%
Gross profit  $9,237,000   $9,048,000   $189,000    2%
… as a percentage of net revenues   33%   27%          
                     

 

The Company's consolidated results of operations showed a 16% decrease in net revenues and an increase in net income of 19%. Revenues recorded in the current period for long-term construction projects (“Project(s)”) were 12% lower than the level recorded in the prior year. We had 41 Projects in process during the current period compared with 48 during the same period last year. Revenues recorded in the current period for other-than long-term construction projects (non-projects) were 20% lower than the level recorded in the prior year. The number of Projects in-process fluctuates from period to period. The changes from the prior period to the current period are not necessarily representative of future results.

-12

 

The mix of customers buying our products changed slightly from last year. Sales of the Company's products are made to three general groups of customers: industrial, construction and aerospace / defense. The Company saw a 23% decrease from last year’s level in sales to construction customers who were seeking seismic / wind protection for either construction of new buildings and bridges or retrofitting existing buildings and bridges along with a 4% decrease in sales to customers using our products in industrial applications and a 5% decrease in sales to customers in aerospace / defense. Decreases in revenue from sales to construction customers accounted for the drop in sales to Asia as well as 75% of the decrease in domestic sales, nearly all occurring in the second quarter. Asian sales were hindered by tariffs as well as strong competition from local manufacturers. The decrease in sales to domestic construction customers was affected by unanticipated delays in the start of various projects in the second quarter. Competing technologies used in domestic construction with lower initial-costs are expected to continue to have a negative impact on the use of our products in new buildings. However, efforts continue to enact performance based design legislation to require a building to be able to be occupied following a significant seismic event. Our products are designed to provide this level of protection and demand for them would be expected to increase following such an upgrade in domestic building codes. A breakdown of sales to these three general groups of customers, as a percentage of total net revenue for fiscal years ended May 31, 2020 and 2019 is as follows:

 

   Year ended May 31
   2020  2019
Industrial   7%   6%
Construction   55%   60%
Aerospace / Defense   38%   34%

 

Total sales within North America decreased 9% from last year. Total sales to Asia decreased 47% from the prior year. Net revenue by geographic region, as a percentage of total net revenue for fiscal years ended May 31, 2020 and 2019 is as follows:

 

   Year ended May 31
   2020  2019
North America   85%   79%
Asia   11%   17%
Other   4%   4%

 

The gross profit as a percentage of net revenue of 33% in the current period is higher than the 27% recorded in the same period of the prior year. The increase in gross profit as a percentage of revenue is primarily due to improved margins realized on domestic construction Projects.

 

At May 31, 2019, we had 153 open sales orders in our backlog with a total sales value of $13.3 million. At May 31, 2020, we had 102 open sales orders in our backlog with a total sales value of $9.8 million. $2.2 million of the current backlog is on Projects already in progress. $6.7 million of the $13.3 million sales order backlog at May 31, 2019 was in progress at that date. 63% of the sales value in the backlog is for aerospace / defense customers compared to 43% at the end of fiscal 2019. As a percentage of the total sales order backlog, orders from customers in construction accounted for 32% at May 31, 2020 and 52% at May 31, 2019.

 

The Company's backlog, revenues, commission expense, gross margins, gross profits, and net income fluctuate from period to period. Total sales in the current period and the changes in the current period compared to the prior period, are not necessarily representative of future results.

 

Selling, General and Administrative Expenses

 

   Year ended May 31  Change
   2020  2019  Amount  Percent
Outside Commissions  $1,081,000   $1,815,000   $(734,000)   -40%
Other SG&A   4,853,000    4,231,000    622,000    15%
Total SG&A  $5,934,000   $6,046,000   $(112,000)   -2%
… as a percentage of net revenues   21%   18%          
                     

-13

 

Selling, general and administrative expenses decreased slightly from the prior year. Outside commission expense decreased 40% from last year's level due to the significant decrease in the level of commissionable sales recorded in the current period as compared to the prior period. Other selling, general and administrative expenses increased by 15% from last year primarily due to increases in freight, advertising and personnel costs.

 

The above factors resulted in operating income of $3,303,000 for the year ended May 31, 2020, up 10% from the $3,002,000 in the prior year.

 

The Company's effective tax rate (ETR) is calculated based upon current assumptions relating to the year's operating results and various tax related items. The ETR for the fiscal year ended May 31, 2020 is 11%, compared to the ETR for the prior year of 17%.

 

A reconciliation of provision for income taxes at the statutory rate to income tax provision at the Company's effective rate is as follows:

 

   2020  2019
Computed tax provision at the expected statutory rate  $718,000   $643,000 
Tax effect of permanent differences:          
Research tax credits   (272,000)   (166,000)
Foreign-derived intangible income deduction   (100,000)   —   
Other permanent differences   40,000    29,000 
Other   —      9,000 
   $386,000   $515,000 
           

The foreign-derived intangible income deduction is a tax deduction provided to corporations that sell goods or services to foreign customers. It became available through Public Law 115-97, known as the Tax Cut and Jobs Act

 

Stock Options

 

The Company has stock option plans which provide for the granting of nonqualified or incentive stock options to officers, key employees and non-employee directors. Options granted under the plans are exercisable over a ten year term. Options not exercised by the end of the term expire.

 

The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The Company recognized $143,000 and $138,000 of compensation cost for the years ended May 31, 2020 and 2019.

 

The fair value of each stock option grant has been determined using the Black-Scholes model. The model considers assumptions related to exercise price, expected volatility, risk-free interest rate, and the weighted average expected term of the stock option grants. The Company used a weighted average expected term. Expected volatility assumptions used in the model were based on volatility of the Company's stock price for the thirty month period immediately preceding the granting of the options. The Company issued stock options in August 2019 and April 2020. The risk-free interest rate is derived from the U.S. treasury yield.

 

The following assumptions were used in the Black-Scholes model in estimating the fair market value of the Company's stock option grants:

   August 2019  April 2020
Risk-free interest rate:   1.750%   2.125%
Expected life of the options:   3.8 years    3.9 years 
Expected share price volatility:   30%   33%
Expected dividends:   zero    zero 
These assumptions resulted in estimated fair-market value per stock option:  $2.84   $2.85 

 

-14

 

The ultimate value of the options will depend on the future price of the Company's common stock, which cannot be forecast with reasonable accuracy. A summary of changes in the stock options outstanding during the year ended May 31, 2020 is presented below.

      Weighted-
   Number of  Average
   Options  Exercise Price
Options outstanding and exercisable at May 31, 2019:   224,000   $11.71 
Options granted:   50,250   $10.30 
Less: Options exercised:   10,000   $6.35 
Less: Options expired:   12,000   $14.34 
Options outstanding and exercisable at May 31, 2020:   252,250   $11.52 
Closing value per share on NASDAQ at May 31, 2020:       $10.99 

 

 

Capital Resources, Line of Credit and Long-Term Debt

 

The Company's primary liquidity is dependent upon its working capital needs. These are primarily inventory, accounts receivable, costs and estimated earnings in excess of billings, accounts payable, accrued commissions, billings in excess of costs and estimated earnings, and debt service. The Company's primary sources of liquidity have been operations and bank financing.

 

Capital expenditures for the year ended May 31, 2020 were $1,231,000 compared to $473,000 in the prior year. Current year capital expenditures included new manufacturing machinery, testing equipment, material movement equipment, upgrades to technology equipment and building roof replacement. The Company has commitments to make capital expenditures of approximately $200,000 as of May 31, 2020.

 

During 2020, the Company received a loan totaling $1,462,000 from the Small Business Administration (SBA) under the Paycheck Protection Program of the Coronavirus Aid, Relief and Economic Security (CARES) Act, in response to the Coronavirus pandemic described below. Some or all of the loan may be forgiven if certain criteria are met. Otherwise, the loan is unsecured, has a deferment on payments for 6 months after a decision on forgiveness has been made, then is payable over a negotiable period of time, and bears interest at 1%.

 

The Company has a $10,000,000 demand line of credit from a bank, with interest payable at the Company's option of 30, 60 or 90 day LIBOR rate plus 2.25%. There is no outstanding balance at May 31, 2020 or May 31, 2019. The outstanding balance on the line of credit fluctuates as the Company's various long-term projects progress. The line is secured by a negative pledge of the Company's real and personal property. This line of credit is subject to the usual terms and conditions applied by the bank and is subject to renewal annually.

 

The bank is not committed to make loans under this line of credit and no commitment fee is charged.

 

 

Inventory and Maintenance Inventory

   May 31, 2020  May 31, 2019  Increase /(Decrease)
Raw materials  $658,000        $679,000        $(21,000)   -3%
Work in process   8,586,000         9,905,000         (1,319,000)   -13%
Finished goods   863,000         655,000         208,000    32%
Inventory   10,107,000    92%   11,239,000    94%   (1,132,000)   -10%
Maintenance and other inventory   879,000    8%   732,000    6%   147,000    20%
Total  $10,986,000    100%  $11,971,000    100%  $(985,000)   -8%
                               
Inventory turnover   1.7         2.0                

 

Inventory, at $10,107,000 as of May 31, 2020, is 10% less than the prior year-end. Of this, approximately 85% is work in process, 9% is finished goods, and 6% is raw materials. All of the current inventory is expected to be consumed or sold within twelve months. The level of inventory will fluctuate from time to time due to the stage of completion of the non-project sales orders in progress at the time.

-15

 

The Company continues to rework slow-moving inventory, where applicable, to convert it to product to be used on customer orders. There was approximately $122,000 of slow-moving inventory used during the year ended May 31, 2020. The Company disposed of approximately $46,000 and $111,000 of obsolete inventory during the years ended May 31, 2020 and 2019, respectively.

 

Accounts Receivable, Costs and Estimated Earnings in Excess of Billings (“CIEB”) and Billings in Excess of Costs and Estimated Earnings (“BIEC”)

 

   May 31, 2020  May 31, 2019  Increase /(Decrease)
Accounts receivable  $5,819,000   $5,279,000   $540,000    10%
CIEB   1,755,000    7,572,000    (5,817,000)   -77%
Less: BIEC   737,000    634,000    103,000    16%
Net  $6,837,000   $12,217,000   $(5,380,000)   -44%
                     
Number of an average day’s sales outstanding in accounts receivable (DSO)   68    53           

 

The Company combines the totals of accounts receivable, the asset CIEB, and the liability BIEC, to determine how much cash the Company will eventually realize from revenue recorded to date. As the accounts receivable figure rises in relation to the other two figures, the Company can anticipate increased cash receipts within the ensuing 30-60 days.

 

Accounts receivable of $5,819,000 as of May 31, 2020 includes approximately $631,000 of amounts retained by customers on long-term construction projects. The Company expects to collect all of these amounts, including the retained amounts, during the next twelve months. The number of an average day's sales outstanding in accounts receivable (DSO) increased to 68 days at May 31, 2020 from 53 days as of May 31, 2019. The DSO is a function of 1.) the level of sales for an average day (for example, total sales for the past three months divided by 90 days) and 2.) the level of accounts receivable at the balance sheet date. The level of sales for an average day in the fourth quarter of the current fiscal year is 14% less than in the fourth quarter of the prior year. The level of accounts receivable at the end of the current fiscal year is 10% more than the level at the end of the prior year. The combination of the decrease in the level of an average day’s sales along with the increase in the level of accounts receivable caused the DSO to increase by 15 days from last year-end to this year-end. The Company expects to collect the net accounts receivable balance, including the retainage, during the next twelve months.

 

The status of the projects in-progress at the end of the current and prior fiscal years have changed in the factors affecting the year-end balances in the asset CIEB, and the liability BIEC:

 

   2020  2019
Number of projects in progress at year-end   15    22 
Aggregate percent complete at year-end   80%   77%
Average total value of projects in progress at year-end  $830,000   $1,358,000 
Percentage of total value invoiced to customer   74%   54%

 

There are seven fewer projects in-process at the end of the current fiscal year as compared with the prior year end and the average value of those projects has decreased by 39% between those two dates.

 

As noted above, CIEB represents revenues recognized in excess of amounts billed. Whenever possible, the Company negotiates a provision in sales contracts to allow the Company to bill, and collect from the customer, payments in advance of shipments. Unfortunately, provisions such as this are often not possible. The $1,755,000 balance in this account at May 31, 2020 is a 77% decrease from the prior year-end. 71% of this decrease is from three large Projects that completed and shipped during this fiscal year. Generally, if progress billings are permitted under the terms of a project sales agreement, then the more complete the project is, the more progress billings will be permitted. The Company expects to bill the entire amount during the next twelve months. 60% of the CIEB balance as of the end of the last fiscal quarter, February 29, 2020, was billed to those customers in the current fiscal quarter ended May 31, 2020. The remainder will be billed as the projects progress, in accordance with the terms specified in the various contracts.

 

 

-16

 

The year-end balances in the CIEB account are comprised of the following components:

 

   May 31, 2020  May 31, 2019
Costs  $2,615,000   $15,035,000 
Estimated earnings   540,000    4,815,000 
Less: Billings to customers   1,400,000    12,278,000 
CIEB  $1,755,000   $7,572,000 
Number of projects in progress   10    18 

 

As noted above, BIEC represents billings to customers in excess of revenues recognized. The $737,000 balance in this account at May 31, 2020 is in comparison to a $634,000 balance at the end of the prior year. The balance in this account fluctuates in the same manner and for the same reasons as the account "costs and estimated earnings in excess of billings," discussed above. Final delivery of product under these contracts is expected to occur during the next twelve months.

 

The year-end balances in this account are comprised of the following components:

 

   May 31, 2020  May 31, 2019
Billings to customers  $7,794,000   $3,910,000 
Less:  Costs   3,781,000    1,565,000 
Less: Estimated earnings   3,276,000    1,711,000 
BIEC  $737,000   $634,000 
Number of projects in progress   5    4 

 

 

Accounts payable, at $1,370,000 as of May 31, 2020, is 2% less than the prior year-end. The Company expects the current accounts payable amount to be paid during the next twelve months.

 

Commission expense on applicable sales orders is recognized at the time revenue is recognized. The commission is paid following receipt of payment from the customers. Accrued commissions as of May 31, 2020 are $306,000. This is 77% less than the $1,309,000 accrued at the prior year-end. This decrease is due to the decrease in the CIEB, discussed above. As the Company was able to bill and collect from the customers on these long-term projects, accrued commissions were paid. The Company expects the current accrued amount to be paid during the next twelve months.

 

Other accrued expenses of $1,664,000 increased by 9% from the prior year level of $1,532,000.

 

Management believes that the Company's cash on hand, cash flows from operations, proceeds from the SBA loan and borrowing capacity under the bank line of credit will be sufficient to fund ongoing operations, capital improvements and share repurchases (if any) for the next twelve months.

 

Coronavirus Pandemic

 

On January 31, 2020, the United States Secretary of Health and Human Services (HHS) declared a public health emergency related to the global spread of coronavirus COVID-19, and a pandemic was declared by the World Health Organization in February 2020. Efforts to fight the widespread disease included limiting or closing many businesses and resulted in a severe disruption of operations for many organizations. Financial markets also experienced a significant decline in value. The extent of the impact of COVID-19 on the Company’s operational and financial performance will depend on further developments, including the duration and spread of the outbreak, impact on customers, employees, and vendors, all of which cannot be predicted.

 

In late March, Taylor Devices received confirmation from the State of New York that we are designated as an “essential business” pursuant to the revised New York State Executive Order 202.6 with respect to our business function of supply chain partner for several essential industries. Company management currently does not have reason to believe that the situation will adversely affect our ability to meet our obligations to our customers. We have a high-spirited, healthy workforce that has adjusted their work schedules as the need arose. We remain in a strong position with respect to being able to process existing orders and we are quite prepared to process new orders as they are secured.

-17

 

While many of our customers remain open to continue to receive shipments from us and issue new purchase orders to us, we have learned of many construction projects that have delayed ordering materials while they attempt to determine the extent and impact of the pandemic on their project. This has resulted in a lower level in our backlog of sales orders.

 

The liquidity of the Company remains strong at this time. Management, however, is concerned about the uncertainty of the length of time during which the virus will continue to spread throughout the world before effective vaccines have been developed, distributed and administered, as well as the level of impact it will have on the various economies of the world. A prolonged economic downturn would have a negative impact on our operations and our liquidity. For this reason, we have applied for and have received assistance from the federal government under provisions of the CARES Act, as discussed above.

 

Our Supply Chain Management team is in communication with our partners around the globe so that we can be updated on any delays that may occur. To date, there have been no significant delays in receiving our raw materials, purchased components or outside services that affect our final product.

 

To properly maintain all our operations while keeping our employees safe and to help stop the spread of the Coronavirus, some employees have changed shifts and have adjusted their working hours while still adhering to the recommendations of our government health officials. Most of our office staff continues to work remotely and our sales staff continues to keep in regular contact with our representatives and customers. Our on-site workforce is practicing the required social distancing mandates including wearing masks, as necessary. There have been no furloughs or layoffs at our Company. We are fortunate to be in a position that allows us to maintain the functional aspects of our Company while still practicing cautious measures to inhibit the spread of the virus. Employee morale is high, and we are confident in our ability to take on this challenge.

 

Other steps taken to maintain a safe workplace and a healthy workforce:

 

·We have added a formal visitor pre-screening process that we now require all visitors that enter our facilities to complete.

 

·Our cleaning service at our factory and headquarters is stepping up cleaning and disinfecting, especially in high-use common areas.

·We have temporarily discontinued non-essential travel that does not affect production schedules.

Management will continue to monitor and adhere to the advice of the appropriate public health agencies. Taylor Devices maintains its status as an “essential business” pursuant to a NY State Executive Order due to the nature of our products for Aerospace, Defense, Construction, and Industrial applications.

 

-18

 

Item 7A. Quantitative and Qualitative Disclosures About Market Risk.

 

Smaller reporting companies are not required to provide the information required by this item.

 

Item 8. Financial Statements and Supplementary Data.

 

The financial statements and supplementary data required pursuant to this Item 8 are included in this Form 10-K as a separate section commencing on page 25 and are incorporated herein by reference.

 

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

 

There have been no disagreements between the Company and its accountants as to matters which require disclosure.

 

Item 9A. Controls and Procedures.

 

(a)        Evaluation of disclosure controls and procedures.

 

The Company's principal executive officer and principal financial officer have evaluated the Company's disclosure controls and procedures as of May 31, 2020 and have concluded that, as of the evaluation date, the disclosure controls and procedures were effective to ensure that information required to be disclosed in the reports that the Company files or submits under the Exchange Act is recorded, processed, summarized and reported, within the time periods specified in the Commission's rules and forms and that information required to be disclosed in the reports the Company files or submits under the Exchange Act is accumulated and communicated to our management, including our chief executive officer and chief financial officer, to allow timely decisions regarding required disclosure.

 

(b)       Management's report on internal control over financial reporting.

 

The Company's management, with the participation of the Company's principal executive officer and principal financial officer, is responsible for establishing and maintaining adequate internal control over financial reporting. The Company's management has assessed the effectiveness of the Company's internal control over financial reporting as of May 31, 2020. In making this assessment, management used the criteria set forth by the Committee of Sponsoring Organizations of the Treadway Commission (COSO) in Internal Control -- Integrated Framework, updated in 2013. Based on this assessment management has concluded that, as of May 31, 2020, the Company's internal control over financial reporting is effective based on those criteria.

 

(c) Changes in internal control over financial reporting.

 

There have been no changes in the Company's internal controls over financial reporting that occurred during the fiscal year ended May 31, 2020 that have materially affected, or are reasonably likely to materially affect, the Company's control over financial reporting.

 

 

Item 9B. Other Information.

 

None.

 

PART III

 

The information required by Items 10, 11, 12, 13 and 14 of this part will be presented in the Company's Proxy Statement to be issued in connection with the Annual Meeting of Shareholders to be held on October 23, 2020, which information is hereby incorporated by reference into this Annual Report. The proxy materials, including the Proxy Statement and form of proxy, will be filed within 120 days after the Company's fiscal year end.

 

 

-19

 

PART IV

 

Item 15. Exhibits and Financial Statement Schedules.

 

DOCUMENTS FILED AS PART OF THIS REPORT:
 

Index to Financial Statements:

 

    (i)

Report of Independent Registered Public Accounting Firm

 

    (ii)

Consolidated Balance Sheets as of May 31, 2020 and 2019

 

    (iii) Consolidated Statements of Income for the years ended May 31, 2020 and 2019
    (iv)

Consolidated Statements of Stockholders' Equity for the years ended May 31, 2020 and 2019

 

    (v)

Consolidated Statements of Cash Flows for the years ended May 31, 2020 and 2019

 

    (vi) Notes to Consolidated Financial Statements - May 31, 2020 and 2019
EXHIBITS:
  3

Articles of incorporation and by-laws

 

    (i)

Restated Certificate of Incorporation incorporated by reference to Exhibit (3)(i) of Annual Report on Form 10-K, dated August 24, 1983.

 

    (ii)

Amendment to Certificate of Incorporation incorporated by reference to Exhibit (3)(iv) to Form 8 [Amendment to Application or Report], dated September 24, 1993.

 

    (iii)

Amendment to Certificate of Incorporation eliminating and re-designating the Series A Junior Preferred Stock and creating 5,000 Series 2008 Junior Participating Preferred Stock, at $.05 par value, as filed by the Secretary of State of the State of New York on September 16, 2008, and incorporated by reference to Exhibit (3)(i) of Form 8-K, dated as of September 15, 2008 and filed September 18, 2008.

 

    (iv)

Certificate of Change incorporated by reference to Exhibit (3)(i) to Quarterly Report on Form 10-QSB for the period ending November 30, 2002.

 

    (v)

By-laws and Proxy Review Guidelines incorporated by reference to Exhibit (3) to Quarterly Report on Form 10-Q for the period ending February 28, 2015, filed April 14, 2015.

 

  4

Instruments defining rights of security holders, including indentures

 

    (i)

Rights Agreement by and between registrant and Computershare Trust Company, N.A., dated as of September 25, 2018 and letter to shareholders (including Summary of Rights), dated October 5, 2018, attached as Exhibits 4 and 20, respectively, to Registration Statement on Form 8-A 12G, filed with the Securities and Exchange Commission on October 5, 2018.

 

    (ii) Description of registrant’s securities incorporated by reference to Exhibit 4(vi) to Annual Report on Form 10-K for the fiscal year ended May 31, 2019, filed August 2, 2019.
           

-20

 

 

 

10

Material Contracts

 

    (i)

2005 Taylor Devices, Inc. Stock Option Plan attached as Appendix B to Definitive Proxy Statement, filed with the Securities and Exchange Commission on September 27, 2005.

 

    (ii)

2008 Taylor Devices, Inc. Stock Option Plan attached as Appendix C to Definitive Proxy Statement, filed with the Securities and Exchange Commission on September 26, 2008.

 

    (iii)

2012 Taylor Devices, Inc. Stock Option Plan attached as Appendix C to Definitive Proxy Statement, filed with the Securities and Exchange Commission on September 21, 2012.

 

    (iv)

2015 Taylor Devices, Inc. Stock Option Plan attached as Appendix B to Definitive Proxy Statement, filed with the Securities and Exchange Commission on April 8, 2016.

 

    (v)

2018 Taylor Devices, Inc. Stock Option Plan attached as Appendix B to Definitive Proxy Statement, filed with the Securities and Exchange Commission on September 27, 2018.

 

    (vi)

The 2004 Taylor Devices, Inc. Employee Stock Purchase Plan, incorporated by reference to Exhibit 4.1 to Registration Statement on Form S-8, File No. 333-114085, filed with the Securities and Exchange Commission on March 31, 2004.

 

    (vii)

Post-Effective Amendment No. 1 to Registration Statement on Form S-8, File No. 333-114085, for the 2004 Taylor Devices, Inc. Employee Stock Purchase Plan, filed with the Securities and Exchange Commission on August 24, 2006.

 

    (viii)

Form of Indemnification Agreement between registrant and directors and executive officers, attached as Appendix A to Definitive Proxy Statement, filed with the Securities and Exchange Commission on September 27, 2007.

 

    (ix)

Management Bonus Policy dated as of March 4, 2011 between the Registrant and executive officers, incorporated by reference to Exhibit 10(i) to Quarterly Report on Form 10-Q for the period ending February 28, 2011.

 

    (x)

Negative Pledge Agreement dated August 30, 2017 by the Registrant in favor of M&T Bank, filed with this report.

 

    (xi)

Employment Agreement dated as of June 14, 2018 between the Registrant and Alan R. Klembczyk, incorporated by reference to Exhibit 10(i) to Current Report on Form 8-K filed June 19, 2018.

 

    (xii)

Employment Agreement dated as of June 14, 2018 between the Registrant and Mark V. McDonough, incorporated by reference to Exhibit 10(ii) to Current Report on Form 8-K filed June 19, 2018.

 

-21

 

  11 Statement regarding computation of per share earnings
     
    REG. 228.601(A)(11)  Statement regarding computation of per share earnings
     
    Weighted average of common stock/equivalents outstanding - fiscal year ended May 31, 2020
       
      Weighted average common stock outstanding  3,481,128
      Common shares issuable under stock option plans using treasury stock method       8,663
      Weighted average common stock outstanding assuming dilution  3,489,791
       
      Net income fiscal year ended May 31, 2020 (1) $ 3,029,976
      Weighted average common stock (2) 3,481,128  
      Basic income per common share        (1) divided by (2) $      0.87
       
      Net income fiscal year ended May 31, 2020 (3) $ 3,029,976
      Weighted average common stock outstanding assuming dilution (4) 3,489,791    
      Diluted income per common share     (3) divided by (4) $   0.87
     
    Weighted average of common stock/equivalents outstanding - fiscal year ended May 31, 2019
       
      Weighted average common stock outstanding  3,470,595
      Common shares issuable under stock option plans using treasury stock method       17,043
      Weighted average common stock outstanding assuming dilution  3,487,638
       
      Net income fiscal year ended May 31, 2019 (1) $ 2,544,525
      Weighted average common stock (2) 3,470,595  
      Basic income per common share        (1) divided by (2) $   0.73
       
      Net income fiscal year ended May 31, 2019 (3) $ 2,544,525
      Weighted average common stock outstanding assuming dilution (4) 3,487,638    
      Diluted income per common share     (3) divided by (4) $   0.73
       
  13 The Annual Report to Security Holders for the fiscal year ended May 31, 2020, attached to this Annual Report on Form 10-K.
       
  14 Code of Ethics, incorporated by reference to Exhibit 14 to Annual Report on Form 10-KSB for the period ending May 31, 2005.
  21 Subsidiaries of the registrant
    Tayco Realty Corporation is a New York corporation organized on September 8, 1977, owned by the Company.
  23 The Consent of Independent Registered Public Accounting Firm precedes the Consolidated Financial Statements.
  31 Officer Certifications
    (i) Rule 13a-14(a) Certification of Chief Executive Officer.
    (ii) Rule 13a-14(a) Certification of Chief Financial Officer.
                 

-22

 

  32 Officer Certifications
    (i) Section 1350 Certification of Chief Executive Officer.
    (ii) Section 1350 Certification of Chief Financial Officer.
  101 Interactive data files pursuant to Rule 405 of Regulation S-T:  (i) Consolidated Balance Sheets, (ii) Consolidated Statements of Income, (iii) Consolidated Statements of Stockholders’ Equity, (iv) Consolidated Statements of Cash Flows, and (v) Notes to Consolidated Financial Statements.
    101.SCH XBRL Taxonomy Extension Schema Document
    101.CAL XBRL Taxonomy Extension Calculation Linkbase Document
    101.DEF XBRL Taxonomy Extension Definition Linkbase Document
    101.LAB XBRL Taxonomy Extension Label Linkbase Document
    101.PRE XBRL Taxonomy Extension Presentation Linkbase Document
         

 

-23

 

 

 

SIGNATURES

 

 

 

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

 

 

TAYLOR DEVICES, INC.  
(Registrant)  

 

 

 

 

By: /s/Timothy J. Sopko Date: August 7, 2020
  Timothy J. Sopko    
  Chief Executive Officer    
  (Principal Executive Officer)    

 

 

 

 

and

 

 

 

 

By: /s/Mark V. McDonough Date: August 7, 2020
  Mark V. McDonough    
  Chief Financial Officer and Director    

 

 

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

 

 

 

 

By: /s/John Burgess By: /s/Randall L. Clark
  John Burgess, Director   Randall L. Clark, Director
  August 7, 2020   August 7, 2020

 

 

 

 

 

By: /s/F. Eric Armenat By: /s/Alan R. Klembczyk
  F. Eric Armenat, Director   Alan R. Klembczyk, President and Director
  August 7, 2020   August 7, 2020

 

-24

 

 

 

[Lumsden & McCormick, LLP Letterhead]

 

 

 

 

 

 

CONSENT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM

 

 

 

 

To The Board of Directors of

Taylor Devices, Inc.

 

 

Gentlemen:

 

 

We hereby consent to the incorporation by reference in this Annual Report on Form 10-K (Commission File Number 0-3498) of Taylor Devices, Inc. of our report dated August 7, 2020 and any reference thereto in the Annual Report to Shareholders for the fiscal year ended May 31, 2020.

 

We also consent to such incorporation by reference in Registration Statement Nos. 333-114085, 333-133340, 333-155284, 333-184809, 333-210660, and 333-232121 of Taylor Devices, Inc. on Form S-8 of our report dated August 7, 2020.

 

 

/s/Lumsden & McCormick, LLP

Lumsden & McCormick, LLP

Buffalo, New York

August 7, 2020

 

-25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TAYLOR DEVICES, INC. AND SUBSIDIARY

 

CONSOLIDATED FINANCIAL STATEMENTS

 

May 31, 2020

-26

[Lumsden & McCormick, LLP Letterhead]

 

 

 

 

 

REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM

 

 

 

 

The Board of Directors and Stockholders

Taylor Devices, Inc.

 

 

Opinion on the Financial Statements

 

We have audited the accompanying consolidated balance sheets of Taylor Devices, Inc. and Subsidiary (the Company) as of May 31, 2020 and 2019, and the related consolidated statements of income, stockholders' equity, and cash flows for the years then ended, and the related notes to the consolidated financial statements (collectively referred to as the consolidated financial statements). In our opinion, the consolidated financial statements present fairly, in all material respects, the financial condition of the Company as of May 31, 2020 and 2019, and the results of its operations and its cash flows for the years then ended in accordance with accounting principles generally accepted in the United States of America.

 

Adoption of ASU No. 2014-09

 

As discussed in Note 1 to the consolidated financial statements, the Company changed its method for recognizing revenue as a result of the adoption of Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers (Topic 606), and the amendments in ASUs 2015-14, 2016-08, 2016-10, and 2016-12, effective June 1, 2018.

 

Basis for Opinion

 

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

 

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

 

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

 

 

/s/Lumsden & McCormick, LLP

Lumsden & McCormick, LLP

 

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

 

Buffalo, New York

August 7, 2020

-27

 

 

TAYLOR DEVICES, INC. AND SUBSIDIARY      
       
Consolidated Balance Sheets      
       
May 31,  2020  2019
       
Assets          
Current assets:          
Cash and cash equivalents  $15,159,827   $5,071,822 
Short-term investments   1,071,950    1,055,591 
Accounts and other receivables, net   5,819,471    5,279,302 
Inventory   10,107,437    11,239,331 
Prepaid expenses   460,212    312,160 
Prepaid income taxes   50,148    237,017 
Costs and estimated earnings in excess of billings   1,754,573    7,572,490 
Total current assets   34,423,618    30,767,713 
           
Maintenance and other inventory, net   879,050    731,877 
Property and equipment, net   9,407,490    9,317,442 
Cash value of life insurance, net   195,621    190,749 
Deferred income taxes   170,115    189,115 
Assets  $45,075,894   $41,196,896 
Liabilities and Stockholders' Equity          
Current liabilities:          
Short-term borrowings  $1,461,500   $   
Accounts payable   1,370,175    1,402,692 
Accrued commissions   305,885    1,309,358 
Other accrued expenses   1,663,914    1,532,271 
Billings in excess of costs and estimated earnings   736,866    633,703 
Total current liabilities   5,538,340    4,878,024 
           
Stockholders' Equity:          
Common stock, $ .025 par value, authorized 8,000,000 shares,    issued 4,040,805 and 4,029,431 shares   100,943    100,735 
Paid-in capital   9,759,063    9,538,892 
Retained earnings   32,538,580    29,508,604 
Stockholders’ equity before treasury stock   42,398,586    39,148,231 
Treasury stock - 550,872 shares at cost   (2,861,032)   (2,829,359)
Total stockholders' equity   39,537,554    36,318,872 
 Total liabilities and stockholders’ equity  $45,075,894   $41,196,896 
           
See notes to consolidated financial statements.          
           

 

-28

 

TAYLOR DEVICES, INC. AND SUBSIDIARY      
       
Consolidated Statements of Income      
       
For the years ended May 31,  2020  2019
       
       
Sales, net  $28,381,541   $33,619,031 
           
Cost of goods sold   19,144,451    24,571,255 
           
     Gross profit   9,237,090    9,047,776 
           
Selling, general and administrative expenses   5,934,410    6,045,984 
           
     Operating income   3,302,680    3,001,792 
           
Other income          
   Interest, net   111,054    69,006 
   Miscellaneous   2,242    (11,273)
Total other income   113,296    57,733 
           
     Income before provision for income taxes   3,415,976    3,059,525 
           
Provision for income taxes   386,000    515,000 
           
     Net income  $3,029,976   $2,544,525 
           
Basic and diluted earnings per common share  $0.87   $0.73 
           
See notes to consolidated financial statements.          
           

 

-29

 

 

TAYLOR DEVICES, INC. AND SUBSIDIARY            
             
Consolidated Statements of Stockholders' Equity         
             
For the years ended May 31, 2020 and 2019            
   Common  Paid-In  Retained  Treasury
   Stock  Capital  Earnings  Stock
             
Balance, May 31, 2018  $100,428   $9,382,202   $26,959,080   $(2,829,359)
                     
Net income for the year ended May 31, 2019               2,544,525       
                     
Common stock issued for employee stock option plan   619    164,364             
                     
Common stock issued for employee stock purchase plan   38    17,473             
                     
Adjustments Due to ASU 2014-09               4,999       
                     
Stock options issued for services         106,656             
                     
Balance, May 31, 2019   100,735    9,538,892    29,508,604    (2,829,359)
                     
Net income for the year ended May 31, 2020               3,029,976       
                     
Common stock issued for employee stock option plan   174    63,250          (31,673)
                     
Common stock issued for employee stock purchase plan   34    13,824             
                     
Stock options issued for services         143,097             
                     
Balance, May 31, 2020  $100,943   $9,759,063   $32,538,580   $(2,861,032)
                     
                     
See notes to consolidated financial statements.                    
                     

 

-30

 

 

TAYLOR DEVICES, INC. AND SUBSIDIARY      
       
Consolidated Statements of Cash Flows      
       
For the years ended May 31,  2020  2019
       
Operating activities:          
Net income  $3,029,976   $2,544,525 
Adjustments to reconcile net income to net cash flows from          
  operating activities:          
Depreciation   1,141,110    1,072,959 
Stock options issued for services   143,097    106,656 
Loss on disposal of property and equipment   —      18,061 
Provision for inventory obsolescence   180,000    175,000 
Deferred income taxes   19,000    30,000 
Changes in other current assets and liabilities:          
Accounts and other receivables   (540,169)   986,562 
Inventory   804,721    1,158,334 
Prepaid expenses   (148,052)   (67,517)
Prepaid income taxes   186,869    (34,498)
Costs and estimated earnings in excess of billings   5,817,917    (1,542,036)
Accounts payable   (32,517)   (57,483)
Accrued commissions   (1,003,473)   326,098 
Other accrued expenses   131,644    (674,944)
Billings in excess of costs and estimated earnings   103,163    (1,384,194)
Net operating activities   9,833,286    2,657,523 
           
Investing activities:          
Acquisition of property and equipment   (1,231,158)   (472,837)
Increase in short-term investments   (16,359)   (16,509)
Increase in cash value of life insurance   (4,872)   (5,019)
Net investing activities   (1,252,389)   (494,365)
           
Financing activities:          
Short-term borrowings   1,461,500       
Proceeds from issuance of common stock   45,608    50,341 
Net financing activities   1,507,108    50,341 
           
Net change in cash and cash equivalents   10,088,005    2,213,499 
           
Cash and cash equivalents - beginning   5,071,822    2,858,323 
Cash and cash equivalents - ending  $15,159,827   $5,071,822 
           
See notes to consolidated financial statements.          
           

 

 

 

-31

 

 

 

TAYLOR DEVICES, INC. AND SUBSIDIARY
 
Notes to Consolidated Financial Statements
 

 

1. Summary of Significant Accounting Policies:

 

Nature of Operations:

 

Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs,Vibration Dampers, Machined Springs and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.

 

83% of the Company's 2020 revenue was generated from sales to customers in the United States and 11% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe and South America.

 

78% of the Company's 2019 revenue was generated from sales to customers in the United States and 17% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe, Australia and South America.

 

Principles of Consolidation:

 

The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). All inter-company transactions and balances have been eliminated in consolidation.

 

Subsequent Events:

 

The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.

 

Use of Estimates:

 

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. Actual results could differ from those estimates.

 

Cash and Cash Equivalents:

 

The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets.

 

Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.

 

Short-term Investments:

 

At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2020 include “available for sale” corporate bonds stated at fair value, which approximates cost. The bonds (19) mature on various dates during the period July 2020 to September 2024. Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes. Realized gains and losses on the sale of investments are determined using the specific identification method.

 

The bonds are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.

 

-32

 

 

 

Accounts and Other Receivables:

 

Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. Management provides for probable uncollectible accounts through a charge to earnings and a credit to a valuation allowance based on its assessment of the current status of individual accounts. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.

 

Inventory:

 

Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.

 

Property and Equipment:

 

Property and equipment is stated at cost net of accumulated depreciation. Deprecation is provided primarily using the straight-line method for financial reporting purposes, and accelerated methods for income tax reporting purposes. Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.

 

Cash Value of Life Insurance:

 

Cash value of life insurance is stated at the surrender value of the contracts.

 

Revenue Recognition:

 

As noted below, ASU 2014-09 was adopted on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings.

 

Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.

A performance obligation is a promise in a contract to transfer a distinct good or service to the customer, and is the unit of account. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations.

 

For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the year ended May 31, 2020, 57% of revenue was recorded for contracts in which revenue was recognized over time while 43% was recognized at a point in time. In the year ended May 31, 2019, 55% of revenue was recorded for contracts in which revenue was recognized over time while 45% was recognized at a point in time.

Progress payments are typically negotiated for longer term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. The asset, “costs and estimated earnings in excess of billings,” represents revenues recognized in excess of amounts billed. The liability, “billings in excess of costs and estimated earnings,” represents billings in excess of revenues recognized.

-33

 

If applicable, the Company recognizes an asset for the incremental, material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. As of May 31, 2020, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.

We recognized the cumulative effect of initially applying the new revenue standard as an adjustment to the opening balance of retained earnings primarily because certain longer term contracts accounted for on the percentage of completion method did not contain “enforceable right to payment” terms, as defined. The comparative information has not been restated and continues to be reported under the accounting standards in effect for those periods.

The cumulative effect of the changes made to our consolidated June 1, 2018 balance sheet for the adoption of ASU 2014-09, were as follows:

          
Balance Sheet  Balance at May 31, 2018  Adjustments Due to ASU 2014-09  Balance at June 1, 2018
Assets               
Inventory  $11,317,775   $1,101,116   $12,418,891 
Costs and estimated earnings in excess of billings  $6,356,963   $(326,509)  $6,030,454 
Liabilities               
Billings in excess of costs and estimated earnings  $2,043,002   $(25,105)  $2,017,897 
Other accrued expenses  $1,412,502   $794,713   $2,207,215 
Equity               
Retained earnings  $26,959,080   $4,999   $26,964,079 
                

 

In accordance with the new revenue standard requirements, the disclosure of the impact of adoption of ASU 2014-09 on our consolidated balance sheet and income statement was as follows:

                        
   May 31, 2019
Balance Sheet  As Reported  Effect of Change Higher/(Lower)  Balances Without Adoption of ASU 2014-09
Assets         
Inventory  $11,239,331   $     $11,239,331 
Costs and estimated earnings in excess of billings  $7,572,490   $     $7,572,490 
Liabilities               
Other accrued expenses  $1,532,271   $     $1,532,271 
Equity               
Retained earnings  $29,508,604   $     $29,508,604 

 

 

-34

                        
   For the year ended May 31, 2019
Income Statement  As Reported  Effect of Change Higher/(Lower)  Balances Without Adoption of ASU 2014-09
Revenues         
Sales, net  $33,619,031   $1,096,117   $32,522,914 
Costs and Expenses               
Cost of goods sold  $24,571,255   $1,101,116   $23,470,139 
Provision for income taxes  $515,000   $     $515,000 
                
Net income (loss)  $2,544,525   $(4,999)  $2,549,524 

 

Shipping and Handling Costs:

 

Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $420,786 and $268,847 for the years ended May 31, 2020 and 2019. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.

 

Research and Development Costs:

 

Research and development costs are classified as a component of cost of sales. The amounts of these costs were $585,000 and $319,000 for the years ended May 31, 2020 and 2019.

 

 

 

Income Taxes:

 

The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.

 

The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2020 or 2019. The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2020 and 2019.

 

The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2016.

 

Sales Taxes:

 

Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. The Company collects these taxes from customers and remits the entire amount as required by the applicable law. The Company excludes from revenues and expenses the tax collected and remitted.

 

Stock-Based Compensation:

 

The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The stock-based compensation expense for the years ended May 31, 2020 and 2019 was $143,097 and $137,655.

 

-35

New Accounting Standards:

 

In May 2014, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers. ASU 2014-09 is a comprehensive new revenue recognition model that requires a company to recognize revenue to depict the transfer of goods or services to a customer at an amount that reflects the consideration it expects to receive in exchange for those goods or services. ASU 2014-09 also requires additional disclosure about the nature, amount, timing and uncertainty of revenue and cash flows arising from customer contracts, including significant judgments and changes in judgments and assets recognized from costs incurred to obtain or fulfill a contract. ASU 2014-09, as amended, is effective for annual reporting periods, and interim periods within that period, beginning after December 15, 2018 (fiscal year 2020 for the Company). Companies may use either a full retrospective or a modified retrospective approach to adopt ASU 2014-09. The Company adopted ASU 2014-09 on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings. The effect of the adoption is detailed above.

 

Other recently issued Accounting Standards Codification (ASC) guidance has either been implemented or are not significant to the Company.

 

 

 

2. Accounts and Other Receivables:

 

   2020  2019
Customers  $5,399,915   $4,438,373 
Customers - retention   630,823    950,684 
Gross accounts receivable   6,030,738    5,389,057 
Less allowance for doubtful accounts   211,267    109,755 
Net accounts and other receivables  $5,819,471   $5,279,302 

 

3. Inventory:

 

   2020  2019
Raw materials  $658,024   $679,018 
Work-in-process   8,586,404    9,905,495 
Finished goods   963,009    754,818 
Gross inventory   10,207,437    11,339,331 
Less allowance for obsolescence   100,000    100,000 
Net inventory  $10,107,437   $11,239,331 

 

4. Costs and Estimated Earnings on Uncompleted Contracts:

 

   2020  2019
Costs incurred on uncompleted contracts  $6,395,550   $16,599,307 
Estimated earnings   3,816,527    6,526,707 
Total costs and estimated earnings   10,212,077    23,126,014 
Less billings to date   9,194,370    16,187,227 
Costs and estimated earnings not billed  $1,017,707   $6,938,787 

 

Amounts are included in the accompanying balance sheets under the following captions:

 

   2020  2019
Costs and estimated earnings in excess of billings  $1,754,573   $7,572,490 
Billings in excess of costs and estimated earnings   736,866    633,703 
Costs and estimated earnings not billed  $1,017,707   $6,938,787 

 

-36

 

 

The following summarizes the status of Projects in progress as of May 31, 2020 and 2019:

 

   2020  2019
Number of Projects in progress   15    22 
Aggregate percent complete   80%   77%
Aggregate amount remaining  $2,234,962   $6,748,520 
Percentage of total value invoiced to customer   74%   54%

 

The Company expects to recognize the entire remaining revenue on all open projects during the May 31, 2020 fiscal year.

 

Revenue recognized during the years ended May 31, 2020 and 2019 for amounts included in billings in excess of costs and estimated earnings as of the beginning of the year amounted to $1,481,320 and $4,187,015.

 

5. Maintenance and Other Inventory:

 

   2020  2019
Maintenance and other inventory  $2,479,497   $2,197,958 
Less allowance for obsolescence   1,600,447    1,466,081 
Maintenance and other inventory, net  $879,050   $731,877 

 

Maintenance and other inventory represent stock that is estimated to have a product life-cycle in excess of twelve-months. This stock represents certain items the Company is required to maintain for service of products sold, and items that are generally subject to spontaneous ordering.

 

This inventory is particularly sensitive to technical obsolescence in the near term due to its use in industries characterized by the continuous introduction of new product lines, rapid technological advances and product obsolescence. Therefore, management of the Company has recorded an allowance for potential inventory obsolescence.

 

The provision for potential inventory obsolescence was $180,000 and $175,000 for the years ended May 31, 2020 and 2019.

 

 

6. Property and Equipment:

 

   2020  2019
Land  $195,220   $195,220 
Buildings and improvements   9,457,142    9,342,431 
Machinery and equipment   11,242,667    10,390,610 
Office furniture and equipment   2,209,382    1,975,392 
Autos and trucks   24,818    24,818 
Land improvements   455,429    455,429 
Gross property and equipment   23,584,658    22,383,900 
Less accumulated depreciation   14,177,168    13,066,458 
Property and equipment, net  $9,407,490   $9,317,442 

 

Depreciation expense was $1,141,110 and $1,072,959 for the years ended May 31, 2020 and 2019.

 

The Company has commitments to make capital expenditures of approximately $200,000 as of May 31, 2020.

 

7. Short-Term Borrowings:

 

During 2020, the Company received a loan totaling $1,461,500 from the Small Business Administration under the Paycheck Protection Program of the Coronavirus Aid, Relief and Economic Security (CARES) Act, in response to the pandemic described in Note 20. Some or all of the loan may be forgiven if certain criteria are met. Otherwise, the loan is unsecured, has a deferment on payments for 6 months after a decision on forgiveness has been made, then is payable over a negotiable period of time, and bears interest at 1%.

 

-37

The Company has available a $10,000,000 demand line of credit from a bank, with interest payable at the Company's option of 30, 60 or 90 day LIBOR rate plus 2.25%. The line is secured by a negative pledge of the Company's real and personal property. This line of credit is subject to the usual terms and conditions applied by the bank and subject to renewal annually.

 

There is no amount outstanding under the line of credit at May 31, 2020 or May 31, 2019.

 

The Company uses a cash management facility under which the bank draws against the available line of credit to cover checks presented for payment on a daily basis. Outstanding checks under this arrangement totaled $523,344 and $292,000 as of May 31, 2020 and 2019. These amounts are included in accounts payable.

 

8. Legal Proceedings:

 

There are no legal proceedings except for routine litigation incidental to the business.

 

9. Sales:

 

The Company manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs,Vibration Dampers, Machined Springs and Custom Actuators. Management does not track or otherwise account for sales broken down by these categories. Sales of the Company's products are made to three general groups of customers: industrial, construction and aerospace / defense. A breakdown of sales to these three general groups of customers is as follows:

 

   2020  2019
Construction  $15,621,784   $20,168,587 
Aerospace / Defense   10,771,129    11,383,374 
Industrial   1,988,628    2,067,070 
Sales, net  $28,381,541   $33,619,031 

 

Sales to six customers approximated 41% (10%, 9%, 6%, 6%, 5% and 5% respectively) of net sales for 2020. Sales to four customers approximated 36% (17%, 8%, 6% and 5% respectively) of net sales for 2019.

 

 

10. Income Taxes:

   2020  2019
Current tax provision:          
Federal  $375,000   $521,000 
State            
Total current tax provision   375,000    521,000 
Deferred tax provision:          
Federal   11,000   (6,000)
State           
Total deferred tax provision   11,000   (6,000)
Total tax provision  $386,000   $515,000 

 

A reconciliation of provision for income taxes at the statutory rate to income tax provision at the Company's effective rate is as follows:

   2020  2019
Computed tax provision at the expected statutory rate  $717,400   $642,500 
State income tax - net of Federal tax benefit   500   500
Tax effect of permanent differences:          
Research tax credits   (272,000)   (166,000)
Foreign-derived intangible income deduction   (99,739)   - 
Other permanent differences   40,200   28,700
Other   (361)   9,300
Total tax provision  $386,000   $515,000 
Effective income tax rate   11.3%   16.8%

 

-38

 

 

Significant components of the Company's deferred tax assets and liabilities consist of the following:

 

   2020  2019
Deferred tax assets:          
Allowance for doubtful receivables  $44,000   $23,000 
Tax inventory adjustment   94,000    99,700 
Allowance for obsolete inventory   357,100    328,900 
Accrued vacation   60,500    50,200 
Accrued commissions   3,900    19,800 
Warranty reserve   39,400    30,300 
Stock options issued for services   230,200    208,600 
Total deferred tax assets   829,500    760,500 
Deferred tax liabilities:          
Excess tax depreciation   659,385    571,385 
Net deferred tax assets  $170,115   $189,115 

 

Realization of the deferred tax assets is dependent on generating sufficient taxable income at the time temporary differences become deductible. The Company provides a valuation allowance to the extent that deferred tax assets may not be realized. A valuation allowance has not been recorded against the deferred tax assets since management believes it is more likely than not that the deferred tax assets are recoverable. The Company considers future taxable income and potential tax planning strategies in assessing the need for a potential valuation allowance. The amount of the deferred tax assets considered realizable however, could be reduced in the near term if estimates of future taxable income are reduced. The Company will need to generate approximately $4.0 million in taxable income in future years in order to realize the deferred tax assets recorded as of May 31, 2020 of $829,500.

 

The Company and its subsidiary file consolidated Federal and State income tax returns. As of May 31, 2020, the Company had State investment tax credit carryforwards of approximately $369,000 expiring through May 31, 2026.

 

11.       Earnings Per Common Share:

 

Basic earnings per common share is computed by dividing income available to common stockholders by the weighted-average common shares outstanding for the period. Diluted earnings per common share reflects the weighted-average common shares outstanding and dilutive potential common shares, such as stock options.

 

A reconciliation of weighted-average common shares outstanding to weighted-average common shares outstanding assuming dilution is as follows:

 

   2020  2019
Average common shares outstanding   3,481,12    3,470,595 
Common shares issuable under stock option plans   8,663    17,043 
Average common shares outstanding assuming dilution   3,489,791    3,487,638 

 

12. Related Party Transactions:

 

The Company had no related party transactions for the years ended May 31, 2020 and 2019.

 

-39

 

 

 

13. Employee Stock Purchase Plan:

 

In March 2004, the Company reserved 295,000 shares of common stock for issuance pursuant to a non-qualified employee stock purchase plan. Participation in the employee stock purchase plan is voluntary for all eligible employees of the Company. Purchase of common shares can be made by employee contributions through payroll deductions. At the end of each calendar quarter, the employee contributions will be applied to the purchase of common shares using a share value equal to the mean between the closing bid and ask prices of the stock on that date. These shares are distributed to the employees at the end of each calendar quarter or upon withdrawal from the plan. During the years ended May 31, 2020 and 2019, 1,374 ($8.63 to $11.00 price per share) and 1,542 ($10.235 to $12.28 price per share) common shares, respectively, were issued to employees. As of May 31, 2020, 220,253 shares were reserved for further issue.

 

14. Stock Option Plans:

 

In 2018, the Company adopted a stock option plan which permits the Company to grant both incentive stock options and non-qualified stock options. The incentive stock options qualify for preferential treatment under the Internal Revenue Code. Under this plan, 160,000 shares of common stock have been reserved for grant to key employees and directors of the Company and 28,750 shares have been granted as of May 31, 2020. Under the plan, the option price may not be less than the fair market value of the stock at the time the options are granted. Options vest immediately and expire ten years from the date of grant.

 

Using the Black-Scholes option pricing model, the weighted average estimated fair value of each option granted under the plan was $2.85 during 2020 and $3.20 during 2019. The pricing model uses the assumptions noted in the following table. Expected volatility is based on the historical volatility of the Company's stock. The risk-free interest rate for periods within the contractual life of the option is based on the U.S. Treasury yield curve in effect at the time of the grant. The expected life of options granted is derived from previous history of stock exercises from the grant date and represents the period of time that options granted are expected to be outstanding. The Company uses historical data to estimate option exercise and employee termination assumptions under the valuation model. The Company has never paid dividends on its common stock and does not anticipate doing so in the foreseeable future.

   2020  2019
Risk-free interest rate   1.98%   2.48%
Expected life in years   3.9    3.8 
Expected volatility   32%   31%
Expected dividend yield   0%   0%

 

The following is a summary of stock option activity:

   Shares  Weighted Average Exercise Price  Intrinsic Value
Outstanding - May 31, 2018   271,750   $11.33   $304,252 
     Options granted   43,000   $11.90      
     Less: options exercised   10,750   $3.05      
     Less: options expired   80,000   $11.68      
Outstanding - May 31, 2019   224,000   $11.71   $228,132 
     Options granted   50,250   $10.30      
     Less: options exercised   10,000   $6.35      
     Less: options expired   12,000   $14.34      
Outstanding - May 31, 2020   252,250   $11.52   $209,835 

 

We calculated intrinsic value for those options that had an exercise price lower than the market price of our common shares as of the balance sheet dates. The aggregate intrinsic value of outstanding options as of the end of each fiscal year is calculated as the difference between the exercise price of the underlying options and the market price of our common shares for the options that were in-the-money at that date (98,000 at May 31, 2020 and 77,250 at May 31, 2019.) The Company's closing stock price was $10.99 and $11.08 as of May 31, 2020 and 2019. As of May 31, 2020, there are 131,250 options available for future grants under the 2018 stock option plan. $31,750 and $32,830 was received from the exercise of share options during the fiscal years ended May 31, 2020 and 2019.

 

-40

 

 

 

The following table summarizes information about stock options outstanding at May 31, 2020:

 

Outstanding and Exercisable               
Range of Exercise Prices   Number of Options    Weighted Average Remaining Years of Contractual Life    Weighted Average Exercise Price 
$5.01-$6.00   10,000    0.9   $5.69 
$7.01-$8.00   15,000    2.9   $7.74 
$8.01-$9.00   27,250    3.6   $8.69 
$9.01-$10.00   30,750    9.9   $9.85 
$10.01-$11.00   15,000    7.9   $10.30 
$11.01-$12.00   68,750    7.8   $11.57 
$12.01-$13.00   40,500    5.8   $12.38 
$13.01-$14.00   15,000    6.9   $13.80 
$16.01-$17.00   15,000    5.9   $16.40 
$19.01-$20.00   15,000    6.2   $19.26 
$5.00-$20.00   252,250    6.5   $11.52 

 

The following table summarizes information about stock options outstanding at May 31, 2019:

Outstanding and Exercisable               
Range of Exercise Prices   Number of Options    Weighted Average Remaining Years of Contractual Life    Weighted Average Exercise Price 
$5.01-$6.00   10,000    1.9   $5.69 
$6.01-$7.00   10,000    0.9   $6.35 
$7.01-$8.00   15,000    3.9   $7.74 
$8.01-$9.00   27,250    4.6   $8.69 
$10.01-$11.00   15,000    8.9   $10.30 
$11.01-$12.00   53,000    8.4   $11.79 
$12.01-$13.00   45,000    6.9   $12.38 
$13.01-$14.00   15,000    7.9   $13.80 
$16.01-$17.00   15,000    6.9   $16.40 
$19.01-$20.00   18,750    7.2   $19.26 
$5.00-$20.00   224,000    6.5   $11.71 

 

 

15. Preferred Stock:

 

The Company has 2,000,000 authorized but unissued shares of preferred stock which may be issued in series. The shares of each series shall have such rights, preferences, and limitations as shall be fixed by the Board of Directors.

 

16. Treasury Stock:

 

Treasury shares are 553,934 and 550,872 at May 31, 2020 and 2019.

 

 

-41

 

17. Retirement Plan:

 

The Company maintains a retirement plan for essentially all employees pursuant to Section 401(k) of the Internal Revenue Code. The Company matches a percentage of employee voluntary salary deferrals subject to limitations. The Company may also make discretionary contributions as determined annually by the Company's Board of Directors. The amount expensed under the plan was $158,191 and $71,222 for the years ended May 31, 2020 and 2019.

 

18. Fair Value of Financial Instruments:

 

The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable, and accrued liabilities approximate fair value because of the short maturity of these instruments.

 

The fair values of short-term investments were determined as described in Note 1.

 

19. Cash Flows Information:

 

   2020  2019
       
  Interest paid   none    none 
           
  Income taxes paid  $180,131   $550,498 

 

  

20. Risks and Uncertainties:

 

On January 31, 2020, the United States Secretary of Health and Human Services (HHS) declared a public health emergency related to the global spread of coronavirus COVID-19, and a pandemic was declared by the World Health Organization in February 2020. Efforts to fight the widespread disease included limiting or closing many businesses and resulted in a severe disruption of operations for many organizations. Financial markets also experienced a significant decline in value. The extent of the impact of COVID-19 on the Company’s operational and financial performance will depend on further developments, including the duration and spread of the outbreak, impact on customers, employees, and vendors, all of which cannot be predicted.

 

 

EX-31 2 ceo302certification2020.htm CEO 302 CERTIFICATION

Exhibit 31(i)

 

 

CERTIFICATION OF CHIEF EXECUTIVE OFFICER

PURSUANT TO RULE 13a - 14(a) OF THE SECURITIES EXCHANGE ACT OF 1934,

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

 

I, Timothy J. Sopko, certify that:

 

1. I have reviewed this annual report on Form 10-K of Taylor Devices, 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 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 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 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: August 7, 2020

 

/s/ Timothy J. Sopko
 

Timothy J. Sopko

Chief Executive Officer

 

EX-32 3 ceo906certification2020.htm CEO 906 CERTIFICATION

 

Exhibit 32(i)

 

 

 

 

 

CERTIFICATION OF CHIEF EXECUTIVE OFFICER

PURSUANT TO 18 U.S.C. SECTION 1350, AS ADOPTED PURSUANT TO SECTION 906

OF THE SARBANES-OXLEY ACT OF 2002

 

In connect with the quarterly report of Taylor Devices, Inc. ("the Company") on Form 10-K for the fiscal year ended May 31, 2020 to be filed with Securities and Exchange Commission on or about the date hereof (the
"Report"), I, Timothy J. Sopko Chief Executive Officer of the Company, certify, pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, 18 U.S.C. Section 1350, 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 as of the dates and for the periods covered by the Report.

 

It is not intended that this statement be deemed to be filed for purposes of the Securities Exchange Act of 1934.

 

 

 

Date: August 7, 2020

 

By:  /s/ Timothy J. Sopko
   

Timothy J. Sopko

Chief Executive Officer

 

 

EX-31 4 cfo302certification2020.htm CFO 302 CERTIFICATION

Exhibit 31(ii)

 

 

CERTIFICATION OF CHIEF FINANCIAL OFFICER

PURSUANT TO RULE 13a - 14(a) OF THE SECURITIES EXCHANGE ACT OF 1934,

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

 

I, Mark V. McDonough, certify that:

 

1. I have reviewed this annual report on Form 10-K of Taylor Devices, 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 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 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 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: August 7, 2020

 

/s/ Mark V. McDonough
 

Mark V. McDonough

Chief Financial Officer

 

EX-32 5 cfo906certification2020.htm CFO 906 CERTIFICATION

 

Exhibit 32(ii)

 

 

 

 

 

CERTIFICATION OF CHIEF FINANCIAL OFFICER

PURSUANT TO 18 U.S.C. SECTION 1350, AS ADOPTED PURSUANT TO SECTION 906

OF THE SARBANES-OXLEY ACT OF 2002

 

In connect with the quarterly report of Taylor Devices, Inc. (the "Company") on Form 10-K for the fiscal year ended May 31, 2020 to be filed with Securities and Exchange Commission on or about the date hereof (the "Report"), I, Mark V. McDonough, Chief Financial Officer of the Company, certify, pursuant to Section 906 of the Sarbanes-Oxley Act of 2002, 18 U.S.C. Section 1350, 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 as of the dates and for the periods covered by the Report.

 

It is not intended that this statement be deemed to be filed for purposes of the Securities Exchange Act of 1934.

 

 

 

Date: August 7, 2020

 

By: /s/ Mark V. McDonough
   

Mark V. McDonough,

Chief Financial Officer

 

 

EX-101.SCH 6 tayd-20190531.xsd XBRL SCHEMA FILE 00000001 - Document - Cover link:presentationLink link:calculationLink link:definitionLink 00000002 - Statement - Consolidated Balance Sheets link:presentationLink link:calculationLink link:definitionLink 00000003 - Statement - Consolidated Balance Sheets (Parenthetical) link:presentationLink link:calculationLink link:definitionLink 00000004 - Statement - Consolidated Statements of Income link:presentationLink link:calculationLink link:definitionLink 00000005 - Statement - Conssolidated Statements of Stockholders Equity link:presentationLink link:calculationLink link:definitionLink 00000006 - Statement - Consolidated Statements of Cash Flows link:presentationLink link:calculationLink link:definitionLink 00000007 - Disclosure - 1. Summary of Significant Accounting Policies: link:presentationLink link:calculationLink link:definitionLink 00000008 - Disclosure - 2. Accounts and Other Receivables: link:presentationLink link:calculationLink link:definitionLink 00000009 - Disclosure - 3. Inventory: link:presentationLink link:calculationLink link:definitionLink 00000010 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: link:presentationLink link:calculationLink link:definitionLink 00000011 - Disclosure - 5. Maintenance and Other Inventory: link:presentationLink link:calculationLink link:definitionLink 00000012 - Disclosure - 6. Property and Equipment: link:presentationLink link:calculationLink link:definitionLink 00000013 - Disclosure - 7. Short-Term Borrowings: link:presentationLink link:calculationLink link:definitionLink 00000014 - Disclosure - 8. Legal Proceedings: link:presentationLink link:calculationLink link:definitionLink 00000015 - Disclosure - 9. Sales: link:presentationLink link:calculationLink link:definitionLink 00000016 - Disclosure - 10. Income Taxes: link:presentationLink link:calculationLink link:definitionLink 00000017 - Disclosure - 11. Earnings Per Common Share: link:presentationLink link:calculationLink link:definitionLink 00000018 - Disclosure - 12. Related Party Transactions: link:presentationLink link:calculationLink link:definitionLink 00000019 - Disclosure - 13. Employee Stock Purchase Plan: link:presentationLink link:calculationLink link:definitionLink 00000020 - Disclosure - 14. Stock Option Plans: link:presentationLink link:calculationLink link:definitionLink 00000021 - Disclosure - 15. Preferred Stock: link:presentationLink link:calculationLink link:definitionLink 00000022 - Disclosure - 16. Treasury Stock: link:presentationLink link:calculationLink link:definitionLink 00000023 - Disclosure - 17. Retirement Plan: link:presentationLink link:calculationLink link:definitionLink 00000024 - Disclosure - 18. Fair Value of Financial Instruments: link:presentationLink link:calculationLink link:definitionLink 00000025 - Disclosure - 19. Cash Flows Information: link:presentationLink link:calculationLink link:definitionLink 00000026 - Disclosure - 20. Risks and Uncertainties: link:presentationLink link:calculationLink link:definitionLink 00000027 - Disclosure - 1. Summary of Significant Accounting Policies: (Policies) link:presentationLink link:calculationLink link:definitionLink 00000028 - Disclosure - 1. Summary of Significant Accounting Policies: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000029 - Disclosure - 2. Accounts and Other Receivables: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000030 - Disclosure - 3. Inventory: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000031 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000032 - Disclosure - 5. Maintenance and Other Inventory: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000033 - Disclosure - 6. Property and Equipment: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000034 - Disclosure - 9. Sales: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000035 - Disclosure - 10. Income Taxes: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000036 - Disclosure - 11. Earnings Per Common Share: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000037 - Disclosure - 14. Stock Option Plans: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000038 - Disclosure - 19. Cash Flows Information: (Tables) link:presentationLink link:calculationLink link:definitionLink 00000039 - Disclosure - Impact of Adoption of Standards Related to Revenue Recognition (Details) link:presentationLink link:calculationLink link:definitionLink 00000040 - Disclosure - Revenue Impact on Financial Statements Balance Sheet (Details) link:presentationLink link:calculationLink link:definitionLink 00000041 - Disclosure - Revenue Impact on Financial Statements Income Statement (Details) link:presentationLink link:calculationLink link:definitionLink 00000042 - Disclosure - 1. Summary of Significant Accounting Policies: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000043 - Disclosure - Accounts receivable table (Details) link:presentationLink link:calculationLink link:definitionLink 00000044 - Disclosure - Inventory table (Details) link:presentationLink link:calculationLink link:definitionLink 00000045 - Disclosure - Costs and estimated earnings on uncompleted contracts components table (Details) link:presentationLink link:calculationLink link:definitionLink 00000046 - Disclosure - Costs and estimated earnings on uncompleted contracts table (Details) link:presentationLink link:calculationLink link:definitionLink 00000047 - Disclosure - Costs and estimated earnings on uncompleted contracts two table (Details) link:presentationLink link:calculationLink link:definitionLink 00000048 - Disclosure - Maintenance and other inventory table (Details) link:presentationLink link:calculationLink link:definitionLink 00000049 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000050 - Disclosure - 5. Maintenance and Other Inventory: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000051 - Disclosure - Property and equipment table (Details) link:presentationLink link:calculationLink link:definitionLink 00000052 - Disclosure - 6. Property and Equipment: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000053 - Disclosure - 7. Short-Term Borrowings: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000054 - Disclosure - Sales by major customer type (Details) link:presentationLink link:calculationLink link:definitionLink 00000055 - Disclosure - 9. Sales: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000056 - Disclosure - Income Taxes Table (Details) link:presentationLink link:calculationLink link:definitionLink 00000057 - Disclosure - Reconciliation of income tax statutory rate to effective rate (Details) link:presentationLink link:calculationLink link:definitionLink 00000058 - Disclosure - 10. Income Taxes: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000059 - Disclosure - Earnings per common share table (Details) link:presentationLink link:calculationLink link:definitionLink 00000060 - Disclosure - 13. Employee Stock Purchase Plan: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000061 - Disclosure - Stock option plans table (Details) link:presentationLink link:calculationLink link:definitionLink 00000062 - Disclosure - Stock options roll foward (Details) link:presentationLink link:calculationLink link:definitionLink 00000063 - Disclosure - Stock option plans - Stock options outstanding and exercisable (Details) link:presentationLink link:calculationLink link:definitionLink 00000064 - Disclosure - 14. Stock Option Plans: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000065 - Disclosure - 15. Preferred Stock: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000066 - Disclosure - 16. Treasury Stock: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000067 - Disclosure - 17. Retirement Plan: (Details Narrative) link:presentationLink link:calculationLink link:definitionLink 00000068 - Disclosure - Supplemental cash flow information (Details) link:presentationLink link:calculationLink link:definitionLink EX-101.CAL 7 tayd-20190531_cal.xml XBRL CALCULATION FILE EX-101.DEF 8 tayd-20190531_def.xml XBRL DEFINITION FILE EX-101.LAB 9 tayd-20190531_lab.xml XBRL LABEL FILE Equity Components [Axis] Common Stock [Member] Additional Paid-in Capital [Member] Retained Earnings [Member] Treasury Stock [Member] Initial Application Period Cumulative Effect Transition [Axis] Calculated under Revenue Guidance in Effect before Topic 606 [Member] Difference between Revenue Guidance in Effect before and after Topic 606 [Member] Accounting Standards Update [Axis] Accounting Standards Update 2014-09 [Member] Customer [Axis] Construction Aerospace / Defense Industrial Exercise Price Range [Axis] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range One [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Three [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Four [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Five [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Six [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Seven [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Eight [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Nine [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Ten [Member] Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Eleven [Member] Cover [Abstract] Document Type Amendment Flag Amendment Description Document Registration Statement Document Annual Report Document Quarterly Report Document Transition Report Document Shell Company Report Document Shell Company Event Date Document Period Start Date Document Period End Date Document Fiscal Period Focus Document Fiscal Year Focus Current Fiscal Year End Date Entity File Number Entity Registrant Name Entity Central Index Key Entity Primary SIC Number Entity Tax Identification Number Entity Incorporation, State or Country Code Entity Address, Address Line One Entity Address, Address Line Two Entity Address, Address Line Three Entity Address, City or Town Entity Address, State or Province Entity Address, Country Entity Address, Postal Zip Code Country Region City Area Code Local Phone Number Extension Written Communications Soliciting Material Pre-commencement Tender Offer Pre-commencement Issuer Tender Offer Title of 12(b) Security No Trading Symbol Flag Trading Symbol Security Exchange Name Title of 12(g) Security Security Reporting Obligation Annual Information Form Audited Annual Financial Statements Entity Well-known Seasoned Issuer Entity Voluntary Filers Entity Current Reporting Status Entity Interactive Data Current Entity Filer Category Entity Small Business Entity Emerging Growth Company Elected Not To Use the Extended Transition Period Document Accounting Standard Other Reporting Standard Item Number Entity Shell Company Entity Public Float Entity Bankruptcy Proceedings, Reporting Current Entity Common Stock, Shares Outstanding Documents Incorporated by Reference [Text Block] Statement of Financial Position [Abstract] Assets Current assets: Cash and cash equivalents Short-term investments Accounts and other receivables, net Inventory Prepaid expenses Prepaid income taxes Costs and estimated earnings in excess of billings Total current assets Maintenance and other inventory, net Property and equipment, net Cash value of life insurance, net Deferred income taxes Assets Liabilities and Stockholders' Equity Current liabilities: Short-term borrowings Accounts payable Accrued commissions Other accrued expenses Billings in excess of costs and estimated earnings Total current liabilities Stockholders' Equity: Common stock, $ .025 par value, authorized 8,000,000 shares,    issued 4,040,805 and 4,029,431 shares Paid-in capital Retained earnings Stockholders’ equity before treasury stock Treasury stock - 550,872 shares at cost Total stockholders' equity  Total liabilities and stockholders’ equity Common Stock, Par or Stated Value Per Share Common Stock, Shares Authorized Common Stock, Shares, Issued Treasury Stock, Shares Income Statement [Abstract] Sales, net Cost of goods sold      Gross profit Selling, general and administrative expenses      Operating income    Interest, net    Miscellaneous Total other income      Income before provision for income taxes Provision for income taxes      Net income Basic and diluted earnings per common share Statement [Table] Statement [Line Items] Beginning balance, value Net income Common stock issued for employee stock option plan Common stock issued for employee stock purchase plan Adjustments Due to ASU 2014-09 Stock options issued for services Ending balance, value Statement of Cash Flows [Abstract]   operating activities: Adjustments to reconcile net income to net cash flows from Depreciation Stock options issued for services Provision for inventory obsolescence Deferred income taxes Changes in other current assets and liabilities: Accounts and other receivables Inventory Prepaid expenses Prepaid income taxes Costs and estimated earnings in excess of billings Accounts payable Accrued commissions Other accrued expenses Billings in excess of costs and estimated earnings Net operating activities Investing activities: Acquisition of property and equipment Increase in short-term investments Increase in cash value of life insurance Net investing activities Financing activities: Short-term borrowings Proceeds from issuance of common stock Net financing activities Net change in cash and cash equivalents Cash and cash equivalents - beginning Cash and cash equivalents - ending Accounting Policies [Abstract] Significant Accounting Policies [Text Block] Receivables [Abstract] Loans, Notes, Trade and Other Receivables Disclosure [Text Block] Inventory Disclosure [Abstract] Inventory Disclosure [Text Block] Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract] Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Table Text Block] Other Assets Disclosure [Text Block] Property, Plant and Equipment [Abstract] Property, Plant and Equipment Disclosure [Text Block] Debt Disclosure [Abstract] Schedule of Line of Credit Facilities [Table Text Block] Commitments and Contingencies Disclosure [Abstract] Legal Matters and Contingencies [Text Block] Sales [custom:ScheduleOfRevenueByMajorCustomersTypesTextBlock] Income Tax Disclosure [Abstract] Income Tax Disclosure [Text Block] Earnings Per Share [Abstract] Earnings Per Share [Text Block] Related Party Transactions [Abstract] Related Party Transactions Disclosure [Text Block] Share-based Payment Arrangement [Abstract] Schedule of Share-based Compensation, Employee Stock Purchase Plan, Activity [Table Text Block] Share-based Payment Arrangement [Text Block] Equity [Abstract] Preferred Stock [Text Block] Treasury Stock [Text Block] Retirement Benefits [Abstract] Schedule of Costs of Retirement Plans [Table Text Block] Fair Value of Financial Instruments, Policy [Policy Text Block] Supplemental Cash Flow Elements [Abstract] Cash Flow, Supplemental Disclosures [Text Block] Risks and Uncertainties [Abstract] Unusual Risks and Uncertainties [Table Text Block] Nature of Operations: Principles of Consolidation: Subsequent Events: Use of Estimates: Cash and Cash Equivalents: Short-term Investments: Accounts Receivable [Policy Text Block] Inventory: Property and Equipment: Cash Value of Life Insurance: Revenue Recognition: Shipping and Handling Costs: Research and Development Costs: Income Taxes: Sales Taxes: Stock-Based Compensation: New Accounting Standards: Impact of Adoption of Standards Related to Revenue Recognition Revenue Impact on Financial Statements Balance Sheet Condensed Income Statement [Table Text Block] Accounts receivable table Inventory table Costs and estimated earnings on uncompleted contracts components table Costs and estimated earnings on uncompleted contracts table Costs and estimated earnings on uncompleted contracts two table Maintenance and other inventory table Property and equipment table Sales by major customer type Income Taxes Table Reconciliation of income tax statutory rate to effective rate Earnings per common share table Stock option plans table Stock options roll foward Share-based Payment Arrangement, Option, Exercise Price Range [Table Text Block] Supplemental cash flow information Revenue, Initial Application Period Cumulative Effect Transition [Table] Revenue, Initial Application Period Cumulative Effect Transition [Line Items] Other accrued expenses New Accounting Pronouncements or Change in Accounting Principle [Line Items] Net income (loss) Domestic revenue as percentage of total Asian revenue as percentage of total Percent of revenue recognized with sales contracts for which revenue is recognized over time Percent of revenue recognized with sales contracts containing a single performance obligation Shipping and handling costs Shipping and handling costs Research and development costs Share based compensation expense Customers Customers - retention Gross accounts receivable Less allowance for doubtful accounts Net accounts and other receivables Raw materials Work-in-process Finished goods Gross inventory Less allowance for obsolescence Net inventory Costs incurred on uncompleted contracts Estimated earnings Total costs and estimated earnings Less billings to date Costs and estimated earnings not billed Number of Projects in progress Aggregate percent complete Aggregate amount remaining Percentage of total value invoiced to customer Maintenance and other inventory Less allowance for obsolescence Maintenance and other inventory, net Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year Provision for potentially obsolete inventory Land Buildings and improvements Machinery and equipment Office furniture and equipment Autos and trucks Land improvements Gross property and equipment Less accumulated depreciation Property and equipment, net Depreciation expense Commitments for future capital expenditures Proceeds from bank debt Line of Credit Facility, Current Borrowing Capacity Line of credit outstanding balance Uncleared checks Policyholder Account Balance [Line Items] Percentage of total sales to significant individual customers Percentage of total sales to significant individual customer1 Percentage of total sales to significant individual customer2 Percentage of total sales to significant individual customer3 Percentage of total sales to significant individual customer4 Percentage of total sales to significant individual customer5 Percentage of total sales to significant individual customer6 Current tax provision: Federal State Total current tax provision Deferred tax provision: Federal State Total deferred tax provision Total tax provision Computed tax provision at the expected statutory rate State income tax - net of Federal tax benefit Tax effect of permanent differences: Research tax credits Foreign-derived intangible income deduction Other permanent differences Other Effective income tax rate Deferred Tax Assets, Gross Deferred Tax Assets, Tax Credit Carryforwards Tax Credit Carryforward, Expiration Date Average common shares outstanding Common shares issuable under stock option plans Average common shares outstanding assuming dilution Common shares issued from employee stock purchase plan Risk-free interest rate Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Term Expected volatility Expected dividend yield Stock options outstanding Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price Intrinsic value of options outstanding Options granted Weighted average exercise price of options granted Stock options exercised Weighted average exercise price of options exercised Stock options expired Weighted average exercise price of options expired Share-based Payment Arrangement, Option, Exercise Price Range [Table] Share-based Payment Arrangement, Option, Exercise Price Range [Line Items] Range of exercise prices, Minimum Range of exercise prices, Maximum Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable Weighted Average Remaining Years of Contractual Life Share-based Payment Arrangement, Option, Exercise Price Range, Exercisable, Weighted Average Exercise Price Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number Common shares reserved for stock options Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value Price per share of common Shares available Proceeds exercise of options Preferred shares authorized Treasury Stock Pension Cost (Reversal of Cost)   Interest paid   Income taxes paid Percentage of total sales during a period to export customers. Percentage of total sales during a period to domestic customers. Estimated earnings based on the difference between the revenue recognized and the costs recorded under the percentage of completion method of accounting component included in the asset costs and estimated earnings is excess of billings and the liability Billings in excess of costs and estimated earnings. The amount of revenue recognized under the percentage of completion method of accounting component included in the asset Costs and estimated earnings in excess of billings and the liability Billings in excess of costs and estimated earnings. Contractually invoiced amounts (billings) component included in the asset Costs and estimated earnings in excess of billings and the liability Billings in excess of costs and estimated earnings. The amount of the valuation account as of the balance sheet date which reduces the carrying amount of non-current inventory to net realizable value; takes into consideration such factors as market value, excessive quantities based on expected sales. Percentage of total sales during a period to the most significant customers. Percentage of total sales during a period to the most significant individual customer. Percentage of total sales during a period to the second most significant individual customer. Percentage of total sales during a period to the third most significant individual customer. Percentage of total sales during a period to the fourth most significant individual customer. Percentage of total sales during a period to the fifth most significant individual customer. Lower limit of exercise per share price range for outstanding and exercisable stock options. Lower and upper limits of exercise per share price range two for outstanding and exercisable stock options. Upper limit of exercise per share price range for outstanding and exercisable stock options. Average remaining contractual term, as of a balance sheet date, until the expiration of stock options within a price range. The value of contractual obligations to acquire or construct physical capital assets to be used in the normal conduct of business to produce goods. Tabular disclosure of the revenue for a period from sales to major customer types. Tabular disclosure of the asset costs and estimated earnings in excess of billings is combined with the liability Billings in excess of costs and estimated earnings. Tabular disclosure of the revenue for a period from sales to major customer types. Tabular disclosure of data related to uncompleted projects or programs in progress. Quantity of sales contracts in progress that are accounted for using the percentage of completion method of accounting. Aggregate percent complete of uncompleted sales contracts in progress that are accounted for using the percentage of completion method of accounting. Aggregate future revenue to be recognized for uncompleted sales contracts in progress that are accounted for using the percentage of completion method of accounting. Aggregate percent of total contract value already recognized on uncompleted sales contracts in progress that are accounted for using the percentage of completion method of accounting. Quantity of sales contracts not yet started that are accounted for using the percentage of completion method of accounting. Aggregate future revenue to be recognized for uncompleted sales contracts not yet started that are accounted for using the percentage of completion method of accounting. Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year. Total revenue from sale of goods and services rendered during the reporting period to aerospace / defense type customers, in the normal course of business, reduced by sales returns and allowances, and sales discounts. Total revenue from sale of goods and services rendered during the reporting period to industrial type customers, in the normal course of business, reduced by sales returns and allowances, and sales discounts. Lower and upper limits of exercise per share price range three for outstanding and exercisable stock options. Lower and upper limits of exercise per share price range four for outstanding and exercisable stock options. Lower and upper limits of exercise per share price range five for outstanding and exercisable stock options. Lower and upper limits of exercise per share price range nine for outstanding and exercisable stock options. Lower and upper limits of exercise per share price range six for outstanding and exercisable stock options. Lower and upper limits of exercise per share price range seven for outstanding and exercisable stock options. Lower and upper limits of exercise per share price range ten for outstanding and exercisable stock options. Lower and upper limits of exercise per share price range eleven for outstanding and exercisable stock options. Lower and upper limits of exercise per share price range eight for outstanding and exercisable stock options. Total revenue from sale of goods and services rendered during the reporting period to construction seismic / wind type customers, in the normal course of business, reduced by sales returns and allowances, and sales discounts. Percent of total revenue for a period recognized with sales contracts containing a single performance obligation. Percent of total revenue for a period recognized with sales contracts for which revenue is recognized over time. Assets, Current Assets [Default Label] Liabilities, Current Stockholders' Equity before Treasury Stock Treasury Stock, Value Stockholders' Equity Attributable to Parent Liabilities and Equity Gross Profit Operating Income (Loss) Nonoperating Income (Expense) Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest Cumulative Effect of New Accounting Principle in Period of Adoption (Deprecated 2020-01-31) Stock or Unit Option Plan Expense Deferred Income Tax Expense (Benefit) Increase (Decrease) in Inventories Increase (Decrease) in Prepaid Expense Increase (Decrease) in Prepaid Taxes Increase (Decrease) in Unbilled Receivables Increase (Decrease) in Accounts Payable, Trade Increase (Decrease) in Other Operating Liabilities Increase (Decrease) in Other Accrued Liabilities Increase (Decrease) in Billing in Excess of Cost of Earnings Net Cash Provided by (Used in) Operating Activities Payments to Acquire Property, Plant, and Equipment Payments to Acquire Debt Securities, Available-for-sale Payments for (Proceeds from) Life Insurance Policies Net Cash Provided by (Used in) Investing Activities Net Cash Provided by (Used in) Financing Activities Cash and Cash Equivalents, Period Increase (Decrease) Other Liabilities, Current Other Selling, General and Administrative Expense Accounts Receivable, before Allowance for Credit Loss, Current Inventory, Gross Inventory, Net Total costs and estimated earnings Costs in Excess of Billings, Current Less allowance for obsolescence noncurrent Property, Plant and Equipment, Gross Current Income Tax Expense (Benefit) Deferred Federal Income Tax Expense (Benefit) Deferred State and Local Income Tax Expense (Benefit) Income Tax Credits and Adjustments Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount Weighted Average Number of Shares Outstanding, Diluted EX-101.PRE 10 tayd-20190531_pre.xml XBRL PRESENTATION FILE XML 11 tayd202010k_htm.xml IDEA: XBRL DOCUMENT 0000096536 2019-06-01 2020-05-31 0000096536 2019-11-30 0000096536 2020-08-07 0000096536 2020-05-31 0000096536 2019-05-31 0000096536 2018-06-01 2019-05-31 0000096536 us-gaap:CommonStockMember 2018-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2018-05-31 0000096536 us-gaap:RetainedEarningsMember 2018-05-31 0000096536 us-gaap:TreasuryStockMember 2018-05-31 0000096536 us-gaap:CommonStockMember 2018-06-01 2019-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2018-06-01 2019-05-31 0000096536 us-gaap:RetainedEarningsMember 2018-06-01 2019-05-31 0000096536 us-gaap:TreasuryStockMember 2018-06-01 2019-05-31 0000096536 us-gaap:CommonStockMember 2019-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2019-05-31 0000096536 us-gaap:RetainedEarningsMember 2019-05-31 0000096536 us-gaap:TreasuryStockMember 2019-05-31 0000096536 us-gaap:CommonStockMember 2019-06-01 2020-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2019-06-01 2020-05-31 0000096536 us-gaap:RetainedEarningsMember 2019-06-01 2020-05-31 0000096536 us-gaap:TreasuryStockMember 2019-06-01 2020-05-31 0000096536 us-gaap:CommonStockMember 2020-05-31 0000096536 us-gaap:AdditionalPaidInCapitalMember 2020-05-31 0000096536 us-gaap:RetainedEarningsMember 2020-05-31 0000096536 us-gaap:TreasuryStockMember 2020-05-31 0000096536 2018-05-31 0000096536 us-gaap:CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member 2018-05-31 0000096536 us-gaap:DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member 2018-06-01 0000096536 us-gaap:CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member 2018-06-01 0000096536 us-gaap:AccountingStandardsUpdate201409Member 2019-05-31 0000096536 us-gaap:AccountingStandardsUpdate201409Member 2018-06-01 2019-05-31 0000096536 us-gaap:CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member 2018-06-01 2019-05-31 0000096536 tayd:ConstructionSeismicWindMember 2019-06-01 2020-05-31 0000096536 tayd:ConstructionSeismicWindMember 2018-06-01 2019-05-31 0000096536 tayd:AerospaceDefenseMember 2019-06-01 2020-05-31 0000096536 tayd:AerospaceDefenseMember 2018-06-01 2019-05-31 0000096536 tayd:IndustrialMember 2019-06-01 2020-05-31 0000096536 tayd:IndustrialMember 2018-06-01 2019-05-31 0000096536 2020-06-01 2026-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember 2020-05-31 0000096536 tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember 2020-05-31 iso4217:USD shares iso4217:USD shares pure 0000096536 false --05-31 2020 FY true 10-K 2020-05-31 0-3498 TAYLOR DEVICES INC NY 16-0797789 90 Taylor Drive North Tonawanda NY 14120 716 694-0800 Common Stock ($.025 par value) No No Yes Yes Non-accelerated Filer true false false 37158000 3487245 15159827 5071822 1071950 1055591 5819471 5279302 10107437 11239331 460212 312160 50148 237017 1754573 7572490 34423618 30767713 879050 731877 9407490 9317442 195621 190749 170115 189115 45075894 41196896 1461500 1370175 1402692 305885 1309358 1663914 1532271 736866 633703 5538340 4878024 0.025 0.025 8000000 8000000 4040805 4029431 100943 100735 9759063 9538892 32538580 29508604 42398586 39148231 550872 550872 2861032 2829359 39537554 36318872 45075894 41196896 28381541 33619031 19144451 24571255 9237090 9047776 5934410 6045984 3302680 3001792 111054 69006 2242 -11273 113296 57733 3415976 3059525 386000 515000 3029976 2544525 0.87 0.73 100428 9382202 26959080 -2829359 2544525 619 164364 38 17473 4999 106656 100735 9538892 29508604 -2829359 3029976 174 63250 -31673 34 13824 143097 100943 9759063 32538580 -2861032 3029976 2544525 1141110 1072959 143097 106656 180000 175000 19000 30000 -540169 986562 804721 1158334 -148052 -67517 186869 -34498 5817917 -1542036 -32517 -57483 -1003473 326098 131644 -674944 103163 -1384194 9833286 2657523 1231158 472837 16359 16509 4872 5019 -1252389 -494365 1461500 45608 50341 1507108 50341 10088005 2213499 5071822 2858323 15159827 5071822 <p id="xdx_80E_eus-gaap--SignificantAccountingPoliciesTextBlock_zJr8RGJX0sD4" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>1. Summary of Significant Accounting Policies:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_843_eus-gaap--NatureOfOperations_zrcMOSewuwP3" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Nature of Operations:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs,Vibration Dampers, Machined Springs and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span id="xdx_90D_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile_dp_c20190601__20200531_zzFjNl34tWBe" title="Domestic revenue as percentage of total">83% </span>of the Company's 2020 revenue was generated from sales to customers in the United States and <span id="xdx_904_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToForeignCountries_dp_c20190601__20200531_zwgKfCs4k4nk" title="Asian revenue as percentage of total">11%</span> was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe and South America.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span id="xdx_902_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile_dp_c20180601__20190531_zYgy1Gkh78Wd">78% </span>of the Company's 2019 revenue was generated from sales to customers in the United States and 17% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe, Australia and South America.</p> <p id="xdx_85F_ziTstbhONDVc" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_849_eus-gaap--ConsolidationPolicyTextBlock_zH0isK5PvULj" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Principles of Consolidation:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="font-weight: normal">The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). All inter-company transactions and balances have been eliminated in consolidation.</span></p> <p id="xdx_855_z2ZZHArw4Wq1" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b> </b></p> <p id="xdx_840_eus-gaap--SubsequentEventsPolicyPolicyTextBlock_z77qb2FbMRq2" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Subsequent Events:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.</p> <p id="xdx_85B_zDkfnrEuVhji" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b> </b></p> <p id="xdx_844_eus-gaap--UseOfEstimates_zrsWqjL1Imdj" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Use of Estimates:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. Actual results could differ from those estimates.</p> <p id="xdx_859_zdcAn9uALI8e" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_847_eus-gaap--CashAndCashEquivalentsPolicyTextBlock_zmkeWwfyMcYh" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Cash and Cash Equivalents:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.</p> <p id="xdx_852_ztmUxzev1Nc1" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_84E_eus-gaap--MarketableSecuritiesPolicy_zG6ZcJCK2hb2" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0"><b>Short-term Investments:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2020 include “available for sale” corporate bonds stated at fair value, which approximates cost. The bonds (19) mature on various dates during the period July 2020 to September 2024. Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes. Realized gains and losses on the sale of investments are determined using the specific identification method.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The bonds are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.</p> <p id="xdx_85F_z6DrrLPZNCHd" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_849_eus-gaap--TradeAndOtherAccountsReceivablePolicy_zima1rrvPYB7" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b>Accounts and Other Receivables:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. Management provides for probable uncollectible accounts through a charge to earnings and a credit to a valuation allowance based on its assessment of the current status of individual accounts. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.</p> <p id="xdx_85B_zHgr9fuGk7d5" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_847_eus-gaap--InventoryPolicyTextBlock_zen1gMLmEvZ8" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Inventory:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.</p> <p id="xdx_854_zyD7nIDR46Eg" style="font: bold 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"> </p> <p id="xdx_84F_eus-gaap--PropertyPlantAndEquipmentPolicyTextBlock_zGUDwkzOwQGg" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Property and Equipment:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Property and equipment is stated at cost net of accumulated depreciation. Deprecation is provided primarily using the straight-line method for financial reporting purposes, and accelerated methods for income tax reporting purposes. Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.</p> <p id="xdx_854_z3nDj4mJCYJf" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b> </b></p> <p id="xdx_840_eus-gaap--LifeInsuranceCorporateOrBankOwnedTextBlock_zbbj15W30qwi" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Cash Value of Life Insurance:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Cash value of life insurance is stated at the surrender value of the contracts.</p> <p id="xdx_855_zfqNCOitPpke" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_849_eus-gaap--RevenueRecognitionPolicyTextBlock_zeI132QAkTy6" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Revenue Recognition:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">As noted below, ASU 2014-09 was adopted on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">A performance obligation is a promise in a contract to transfer a distinct good or service to the customer, and is the unit of account. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the year ended May 31, 2020, <span id="xdx_902_ecustom--RevenueRecognitionOverTimePercentOfTotal_dp_c20190601__20200531_zI6Qrl2ztR64" title="Percent of revenue recognized with sales contracts for which revenue is recognized over time">57%</span> of revenue was recorded for contracts in which revenue was recognized over time while <span id="xdx_904_ecustom--RevenueRecognitionSinglePerformanceObligationPercentOfTotal_dp_c20190601__20200531_zAVv0As3xen9" title="Percent of revenue recognized with sales contracts containing a single performance obligation">43%</span> was recognized at a point in time. In the year ended May 31, 2019, <span id="xdx_900_ecustom--RevenueRecognitionOverTimePercentOfTotal_dp_c20180601__20190531_zepuYGcHk2Ta" title="Percent of revenue recognized with sales contracts for which revenue is recognized over time">55%</span> of revenue was recorded for contracts in which revenue was recognized over time while <span id="xdx_905_ecustom--RevenueRecognitionSinglePerformanceObligationPercentOfTotal_dp_c20180601__20190531_zo2O8ZvqX7U7" title="Percent of revenue recognized with sales contracts containing a single performance obligation">45%</span> was recognized at a point in time.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">Progress payments are typically negotiated for longer term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. The asset, “costs and estimated earnings in excess of billings,” represents revenues recognized in excess of amounts billed. The liability, “billings in excess of costs and estimated earnings,” represents billings in excess of revenues recognized.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">If applicable, the Company recognizes an asset for the incremental, material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. As of May 31, 2020, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">We recognized the cumulative effect of initially applying the new revenue standard as an adjustment to the opening balance of retained earnings primarily because certain longer term contracts accounted for on the percentage of completion method did not contain “enforceable right to payment” terms, as defined. The comparative information has not been restated and continues to be reported under the accounting standards in effect for those periods.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">The cumulative effect of the changes made to our consolidated June 1, 2018 balance sheet for the adoption of ASU 2014-09, were as follows:</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <table cellpadding="0" cellspacing="0" id="xdx_888_eus-gaap--ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_zfRIIMeKIuAh" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Impact of Adoption of Standards Related to Revenue Recognition (Details)"> <tr style="vertical-align: bottom"> <td> </td><td> </td> <td colspan="3" id="xdx_490_20180531__us-gaap--InitialApplicationPeriodCumulativeEffectTransitionAxis__us-gaap--CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_zvivhXuooUQ8"> </td><td> </td> <td colspan="3" id="xdx_490_20180601__us-gaap--InitialApplicationPeriodCumulativeEffectTransitionAxis__us-gaap--DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member_zbAvCv33lndh"> </td><td> </td> <td colspan="3" id="xdx_490_20180601__us-gaap--InitialApplicationPeriodCumulativeEffectTransitionAxis__us-gaap--CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_zbhsVBrhZEK5"> </td></tr> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">Balance Sheet</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Balance at May 31, 2018</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Adjustments Due to ASU 2014-09</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Balance at June 1, 2018</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; font-weight: bold; width: 46%">Assets</td><td style="width: 5%"> </td> <td style="text-align: left; width: 1%"> </td><td style="text-align: right; width: 11%"> </td><td style="text-align: left; width: 1%"> </td><td style="width: 5%"> </td> <td style="text-align: left; width: 1%"> </td><td style="text-align: right; width: 11%"> </td><td style="text-align: left; width: 1%"> </td><td style="width: 5%"> </td> <td style="text-align: left; width: 1%"> </td><td style="text-align: right; width: 11%"> </td><td style="text-align: left; width: 1%"> </td></tr> <tr id="xdx_405_eus-gaap--InventoryPartsAndComponentsNetOfReserves_iI_zEVhHweKgFvd" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">Inventory</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">11,317,775</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,101,116</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">12,418,891</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrPrograms_iI_zEtoLEJfVSL3" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Costs and estimated earnings in excess of billings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">6,356,963</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">(326,509</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">6,030,454</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; font-weight: bold">Liabilities</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_408_eus-gaap--BillingsInExcessOfCostCurrent_iI_zPt6BGLAlqX3" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Billings in excess of costs and estimated earnings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,043,002</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">(25,105</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,017,897</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr id="xdx_40F_eus-gaap--OtherLiabilitiesCurrent_iI_zFKt0GFTOfRb" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Other accrued expenses</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,412,502</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">794,713</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,207,215</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; font-weight: bold">Equity</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--RetainedEarningsAccumulatedDeficit_iI_zG34vb06T48e" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Retained earnings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">26,959,080</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">4,999</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">26,964,079</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">In accordance with the new revenue standard requirements, the disclosure of the impact of adoption of ASU 2014-09 on our consolidated balance sheet and income statement was as follows:</p> <table cellpadding="0" cellspacing="0" id="xdx_883_esrt--ScheduleOfCondensedBalanceSheetTableTextBlock_zqf4P4T7UJOa" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Revenue Impact on Financial Statements Balance Sheet (Details)"> <tr style="vertical-align: bottom"> <td style="width: 46%"> </td><td style="font-size: 10pt; padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49E_20190531_zHxTkMCdg0rk" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49D_20190531__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201409Member_zcCY0pDJNyz5" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49F_20190531_zQJPVJFLukvd" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td></tr> <tr style="vertical-align: bottom"> <td> </td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="11" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">May 31, 2019</td></tr> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">Balance Sheet</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">As Reported</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Effect of Change Higher/(Lower)</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Balances Without Adoption of ASU 2014-09</td></tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold">Assets</td><td> </td> <td colspan="3"> </td><td> </td> <td colspan="3"> </td><td> </td> <td colspan="3"> </td></tr> <tr id="xdx_40F_eus-gaap--InventoryPartsAndComponentsNetOfReserves_iI_d0_zMbiJ1BZ11ab" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Inventory</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">11,239,331</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">11,239,331</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrPrograms_iI_d0_ziqu4t1sSfQf" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Costs and estimated earnings in excess of billings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">7,572,490</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">7,572,490</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; font-weight: bold">Liabilities</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--OtherLiabilitiesCurrent_iI_d0_zCH4AZeicy8" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Other accrued expenses</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,532,271</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,532,271</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; font-weight: bold">Equity</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--RetainedEarningsAccumulatedDeficit_iI_d0_zJIiAdnScHNf" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Retained earnings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">29,508,604</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">29,508,604</td><td style="font-size: 10pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <table cellpadding="0" cellspacing="0" id="xdx_894_esrt--ScheduleOfCondensedIncomeStatementTableTextBlock_zPvoZT4hdWXf" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Revenue Impact on Financial Statements Income Statement (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; width: 46%"> </td><td style="font-size: 10pt; padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49F_20180601__20190531_zbjykFUShEc4" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_495_20180601__20190531__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201409Member_zak4gDCtBRg8" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49B_20180601__20190531__us-gaap--InitialApplicationPeriodCumulativeEffectTransitionAxis__us-gaap--CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_znEMUmKySSsk" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td></tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt"> </td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="11" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">For the year ended May 31, 2019</td></tr> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">Income Statement</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">As Reported</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Effect of Change Higher/(Lower)</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Balances Without Adoption of ASU 2014-09</td></tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold">Revenues</td><td> </td> <td colspan="3"> </td><td> </td> <td colspan="3"> </td><td> </td> <td colspan="3"> </td></tr> <tr id="xdx_409_eus-gaap--Revenues_zaQmsOXkqsWe" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Sales, net</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">33,619,031</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,096,117</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">32,522,914</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; font-weight: bold; text-align: left">Costs and Expenses</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_406_eus-gaap--CostOfGoodsAndServicesSold_zwP7PeO23af4" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Cost of goods sold</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">24,571,255</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,101,116</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">23,470,139</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--IncomeTaxExpenseBenefit_d0_zkxIbh8sBRV" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Provision for income taxes</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">515,000</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">515,000</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--NetIncomeLoss_zKDT52yKhHjh" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Net income (loss)</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,544,525</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">(4,999</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,549,524</td><td style="font-size: 10pt; text-align: left"> </td></tr> </table> <p style="margin-top: 0; margin-bottom: 0"> </p> <p id="xdx_858_z60WpXwWUMB2" style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <p id="xdx_84C_eus-gaap--ShippingAndHandlingCostPolicyTextBlock_zyAJ5UM5dsja" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Shipping and Handling Costs:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were <span id="xdx_90F_eus-gaap--OtherGeneralAndAdministrativeExpense_c20190601__20200531_zgrDVFhjFdxk" title="Shipping and handling costs">$420,786</span> and <span id="xdx_905_eus-gaap--OtherSellingGeneralAndAdministrativeExpense_c20180601__20190531_zEk1eiEpyhQk" title="Shipping and handling costs">$268,847</span> for the years ended May 31, 2020 and 2019. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.</p> <p id="xdx_858_zEtQb0cOyadf" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><b> </b></p> <p id="xdx_84C_eus-gaap--ResearchAndDevelopmentExpensePolicy_zwg2BGfs40y" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Research and Development Costs:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Research and development costs are classified as a component of cost of sales. The amounts of these costs were <span id="xdx_902_eus-gaap--ResearchAndDevelopmentExpense_c20190601__20200531_zQZfl1vELofj" title="Research and development costs">$585,000</span> and <span id="xdx_90F_eus-gaap--ResearchAndDevelopmentExpense_c20180601__20190531_zi8g0Jp5d5ij" title="Research and development costs">$319,000</span> for the years ended May 31, 2020 and 2019.</p> <p id="xdx_854_zTPZW8cRYsd8" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"><b> </b></p> <p id="xdx_84A_eus-gaap--RegulatoryIncomeTaxesPolicy_zqiJKdWqJKSl" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0"><b>Income Taxes:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt">The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2020 or 2019. The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2020 and 2019.</span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt">The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2016.</span></p> <p id="xdx_854_z0PfqzI9P6Ra" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b> </b></p> <p id="xdx_84F_eus-gaap--OtherLiabilitiesDisclosureTextBlock_zz5Jqp2twW7b" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Sales Taxes:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. The Company collects these taxes from customers and remits the entire amount as required by the applicable law. The Company excludes from revenues and expenses the tax collected and remitted.</p> <p id="xdx_856_zuFyisDE8DRg" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"><b> </b></span></p> <p id="xdx_840_eus-gaap--ShareBasedCompensationOptionAndIncentivePlansPolicy_zCRXuHgdOLV4" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"><b>Stock-Based Compensation:</b></span></p> <p style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. <span style="letter-spacing: -0.15pt">The stock-based compensation expense for the years ended May 31, 2020 and 2019 was <span id="xdx_909_eus-gaap--ShareBasedCompensation_c20190601__20200531_zUsRfOLYflki" title="Share based compensation expense">$143,097</span> and <span id="xdx_908_eus-gaap--ShareBasedCompensation_c20180601__20190531_zZJbqRlXC3V" title="Share based compensation expense">$137,655</span>.</span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_85E_zJdRcSMTkFd5" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p id="xdx_84F_eus-gaap--NewAccountingPronouncementsPolicyPolicyTextBlock_zO16vlZONRXf" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"><b>New Accounting Standards:</b></span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">In May 2014, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers. ASU 2014-09 is a comprehensive new revenue recognition model that requires a company to recognize revenue to depict the transfer of goods or services to a customer at an amount that reflects the consideration it expects to receive in exchange for those goods or services. ASU 2014-09 also requires additional disclosure about the nature, amount, timing and uncertainty of revenue and cash flows arising from customer contracts, including significant judgments and changes in judgments and assets recognized from costs incurred to obtain or fulfill a contract. ASU 2014-09, as amended, is effective for annual reporting periods, and interim periods within that period, beginning after December 15, 2018 (fiscal year 2020 for the Company). Companies may use either a full retrospective or a modified retrospective approach to adopt ASU 2014-09. The Company adopted ASU 2014-09 on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings. The effect of the adoption is detailed above.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Other recently issued Accounting Standards Codification (ASC) guidance has either been implemented or are not significant to the Company.</p> <p id="xdx_857_zAQiPd7tc5N8" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_843_eus-gaap--NatureOfOperations_zrcMOSewuwP3" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Nature of Operations:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs,Vibration Dampers, Machined Springs and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span id="xdx_90D_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile_dp_c20190601__20200531_zzFjNl34tWBe" title="Domestic revenue as percentage of total">83% </span>of the Company's 2020 revenue was generated from sales to customers in the United States and <span id="xdx_904_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToForeignCountries_dp_c20190601__20200531_zwgKfCs4k4nk" title="Asian revenue as percentage of total">11%</span> was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe and South America.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span id="xdx_902_ecustom--EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile_dp_c20180601__20190531_zYgy1Gkh78Wd">78% </span>of the Company's 2019 revenue was generated from sales to customers in the United States and 17% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe, Australia and South America.</p> 0.83 0.11 0.78 <p id="xdx_849_eus-gaap--ConsolidationPolicyTextBlock_zH0isK5PvULj" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Principles of Consolidation:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="font-weight: normal">The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). All inter-company transactions and balances have been eliminated in consolidation.</span></p> <p id="xdx_840_eus-gaap--SubsequentEventsPolicyPolicyTextBlock_z77qb2FbMRq2" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Subsequent Events:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.</p> <p id="xdx_844_eus-gaap--UseOfEstimates_zrsWqjL1Imdj" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Use of Estimates:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. Actual results could differ from those estimates.</p> <p id="xdx_847_eus-gaap--CashAndCashEquivalentsPolicyTextBlock_zmkeWwfyMcYh" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Cash and Cash Equivalents:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.</p> <p id="xdx_84E_eus-gaap--MarketableSecuritiesPolicy_zG6ZcJCK2hb2" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0"><b>Short-term Investments:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2020 include “available for sale” corporate bonds stated at fair value, which approximates cost. The bonds (19) mature on various dates during the period July 2020 to September 2024. Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes. Realized gains and losses on the sale of investments are determined using the specific identification method.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The bonds are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.</p> <p id="xdx_849_eus-gaap--TradeAndOtherAccountsReceivablePolicy_zima1rrvPYB7" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy"><b>Accounts and Other Receivables:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. Management provides for probable uncollectible accounts through a charge to earnings and a credit to a valuation allowance based on its assessment of the current status of individual accounts. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.</p> <p id="xdx_847_eus-gaap--InventoryPolicyTextBlock_zen1gMLmEvZ8" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Inventory:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.</p> <p id="xdx_84F_eus-gaap--PropertyPlantAndEquipmentPolicyTextBlock_zGUDwkzOwQGg" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Property and Equipment:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Property and equipment is stated at cost net of accumulated depreciation. Deprecation is provided primarily using the straight-line method for financial reporting purposes, and accelerated methods for income tax reporting purposes. Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.</p> <p id="xdx_840_eus-gaap--LifeInsuranceCorporateOrBankOwnedTextBlock_zbbj15W30qwi" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Cash Value of Life Insurance:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Cash value of life insurance is stated at the surrender value of the contracts.</p> <p id="xdx_849_eus-gaap--RevenueRecognitionPolicyTextBlock_zeI132QAkTy6" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Revenue Recognition:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">As noted below, ASU 2014-09 was adopted on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">A performance obligation is a promise in a contract to transfer a distinct good or service to the customer, and is the unit of account. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the year ended May 31, 2020, <span id="xdx_902_ecustom--RevenueRecognitionOverTimePercentOfTotal_dp_c20190601__20200531_zI6Qrl2ztR64" title="Percent of revenue recognized with sales contracts for which revenue is recognized over time">57%</span> of revenue was recorded for contracts in which revenue was recognized over time while <span id="xdx_904_ecustom--RevenueRecognitionSinglePerformanceObligationPercentOfTotal_dp_c20190601__20200531_zAVv0As3xen9" title="Percent of revenue recognized with sales contracts containing a single performance obligation">43%</span> was recognized at a point in time. In the year ended May 31, 2019, <span id="xdx_900_ecustom--RevenueRecognitionOverTimePercentOfTotal_dp_c20180601__20190531_zepuYGcHk2Ta" title="Percent of revenue recognized with sales contracts for which revenue is recognized over time">55%</span> of revenue was recorded for contracts in which revenue was recognized over time while <span id="xdx_905_ecustom--RevenueRecognitionSinglePerformanceObligationPercentOfTotal_dp_c20180601__20190531_zo2O8ZvqX7U7" title="Percent of revenue recognized with sales contracts containing a single performance obligation">45%</span> was recognized at a point in time.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">Progress payments are typically negotiated for longer term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. The asset, “costs and estimated earnings in excess of billings,” represents revenues recognized in excess of amounts billed. The liability, “billings in excess of costs and estimated earnings,” represents billings in excess of revenues recognized.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">If applicable, the Company recognizes an asset for the incremental, material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. As of May 31, 2020, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">We recognized the cumulative effect of initially applying the new revenue standard as an adjustment to the opening balance of retained earnings primarily because certain longer term contracts accounted for on the percentage of completion method did not contain “enforceable right to payment” terms, as defined. The comparative information has not been restated and continues to be reported under the accounting standards in effect for those periods.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">The cumulative effect of the changes made to our consolidated June 1, 2018 balance sheet for the adoption of ASU 2014-09, were as follows:</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <table cellpadding="0" cellspacing="0" id="xdx_888_eus-gaap--ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_zfRIIMeKIuAh" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Impact of Adoption of Standards Related to Revenue Recognition (Details)"> <tr style="vertical-align: bottom"> <td> </td><td> </td> <td colspan="3" id="xdx_490_20180531__us-gaap--InitialApplicationPeriodCumulativeEffectTransitionAxis__us-gaap--CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_zvivhXuooUQ8"> </td><td> </td> <td colspan="3" id="xdx_490_20180601__us-gaap--InitialApplicationPeriodCumulativeEffectTransitionAxis__us-gaap--DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member_zbAvCv33lndh"> </td><td> </td> <td colspan="3" id="xdx_490_20180601__us-gaap--InitialApplicationPeriodCumulativeEffectTransitionAxis__us-gaap--CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_zbhsVBrhZEK5"> </td></tr> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">Balance Sheet</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Balance at May 31, 2018</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Adjustments Due to ASU 2014-09</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Balance at June 1, 2018</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; font-weight: bold; width: 46%">Assets</td><td style="width: 5%"> </td> <td style="text-align: left; width: 1%"> </td><td style="text-align: right; width: 11%"> </td><td style="text-align: left; width: 1%"> </td><td style="width: 5%"> </td> <td style="text-align: left; width: 1%"> </td><td style="text-align: right; width: 11%"> </td><td style="text-align: left; width: 1%"> </td><td style="width: 5%"> </td> <td style="text-align: left; width: 1%"> </td><td style="text-align: right; width: 11%"> </td><td style="text-align: left; width: 1%"> </td></tr> <tr id="xdx_405_eus-gaap--InventoryPartsAndComponentsNetOfReserves_iI_zEVhHweKgFvd" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">Inventory</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">11,317,775</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,101,116</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">12,418,891</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrPrograms_iI_zEtoLEJfVSL3" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Costs and estimated earnings in excess of billings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">6,356,963</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">(326,509</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">6,030,454</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; font-weight: bold">Liabilities</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_408_eus-gaap--BillingsInExcessOfCostCurrent_iI_zPt6BGLAlqX3" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Billings in excess of costs and estimated earnings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,043,002</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">(25,105</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,017,897</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr id="xdx_40F_eus-gaap--OtherLiabilitiesCurrent_iI_zFKt0GFTOfRb" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Other accrued expenses</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,412,502</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">794,713</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,207,215</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; font-weight: bold">Equity</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--RetainedEarningsAccumulatedDeficit_iI_zG34vb06T48e" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Retained earnings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">26,959,080</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">4,999</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">26,964,079</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify">In accordance with the new revenue standard requirements, the disclosure of the impact of adoption of ASU 2014-09 on our consolidated balance sheet and income statement was as follows:</p> <table cellpadding="0" cellspacing="0" id="xdx_883_esrt--ScheduleOfCondensedBalanceSheetTableTextBlock_zqf4P4T7UJOa" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Revenue Impact on Financial Statements Balance Sheet (Details)"> <tr style="vertical-align: bottom"> <td style="width: 46%"> </td><td style="font-size: 10pt; padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49E_20190531_zHxTkMCdg0rk" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49D_20190531__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201409Member_zcCY0pDJNyz5" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49F_20190531_zQJPVJFLukvd" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td></tr> <tr style="vertical-align: bottom"> <td> </td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="11" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">May 31, 2019</td></tr> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">Balance Sheet</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">As Reported</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Effect of Change Higher/(Lower)</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Balances Without Adoption of ASU 2014-09</td></tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold">Assets</td><td> </td> <td colspan="3"> </td><td> </td> <td colspan="3"> </td><td> </td> <td colspan="3"> </td></tr> <tr id="xdx_40F_eus-gaap--InventoryPartsAndComponentsNetOfReserves_iI_d0_zMbiJ1BZ11ab" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Inventory</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">11,239,331</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">11,239,331</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrPrograms_iI_d0_ziqu4t1sSfQf" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Costs and estimated earnings in excess of billings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">7,572,490</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">7,572,490</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; font-weight: bold">Liabilities</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--OtherLiabilitiesCurrent_iI_d0_zCH4AZeicy8" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Other accrued expenses</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,532,271</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,532,271</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; font-weight: bold">Equity</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--RetainedEarningsAccumulatedDeficit_iI_d0_zJIiAdnScHNf" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Retained earnings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">29,508,604</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">29,508,604</td><td style="font-size: 10pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <table cellpadding="0" cellspacing="0" id="xdx_894_esrt--ScheduleOfCondensedIncomeStatementTableTextBlock_zPvoZT4hdWXf" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Revenue Impact on Financial Statements Income Statement (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; width: 46%"> </td><td style="font-size: 10pt; padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49F_20180601__20190531_zbjykFUShEc4" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_495_20180601__20190531__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201409Member_zak4gDCtBRg8" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49B_20180601__20190531__us-gaap--InitialApplicationPeriodCumulativeEffectTransitionAxis__us-gaap--CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_znEMUmKySSsk" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td></tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt"> </td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="11" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">For the year ended May 31, 2019</td></tr> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">Income Statement</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">As Reported</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Effect of Change Higher/(Lower)</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Balances Without Adoption of ASU 2014-09</td></tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold">Revenues</td><td> </td> <td colspan="3"> </td><td> </td> <td colspan="3"> </td><td> </td> <td colspan="3"> </td></tr> <tr id="xdx_409_eus-gaap--Revenues_zaQmsOXkqsWe" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Sales, net</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">33,619,031</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,096,117</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">32,522,914</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; font-weight: bold; text-align: left">Costs and Expenses</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_406_eus-gaap--CostOfGoodsAndServicesSold_zwP7PeO23af4" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Cost of goods sold</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">24,571,255</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,101,116</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">23,470,139</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--IncomeTaxExpenseBenefit_d0_zkxIbh8sBRV" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Provision for income taxes</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">515,000</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">515,000</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--NetIncomeLoss_zKDT52yKhHjh" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Net income (loss)</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,544,525</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">(4,999</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,549,524</td><td style="font-size: 10pt; text-align: left"> </td></tr> </table> <p style="margin-top: 0; margin-bottom: 0"> </p> <p id="xdx_858_z60WpXwWUMB2" style="font: 10pt Times New Roman, Times, Serif; margin: 0 0 12pt; text-align: justify"/> <p id="xdx_84C_eus-gaap--ShippingAndHandlingCostPolicyTextBlock_zyAJ5UM5dsja" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Shipping and Handling Costs:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were <span id="xdx_90F_eus-gaap--OtherGeneralAndAdministrativeExpense_c20190601__20200531_zgrDVFhjFdxk" title="Shipping and handling costs">$420,786</span> and <span id="xdx_905_eus-gaap--OtherSellingGeneralAndAdministrativeExpense_c20180601__20190531_zEk1eiEpyhQk" title="Shipping and handling costs">$268,847</span> for the years ended May 31, 2020 and 2019. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.</p> <p id="xdx_858_zEtQb0cOyadf" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><b> </b></p> <p id="xdx_84C_eus-gaap--ResearchAndDevelopmentExpensePolicy_zwg2BGfs40y" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Research and Development Costs:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Research and development costs are classified as a component of cost of sales. The amounts of these costs were <span id="xdx_902_eus-gaap--ResearchAndDevelopmentExpense_c20190601__20200531_zQZfl1vELofj" title="Research and development costs">$585,000</span> and <span id="xdx_90F_eus-gaap--ResearchAndDevelopmentExpense_c20180601__20190531_zi8g0Jp5d5ij" title="Research and development costs">$319,000</span> for the years ended May 31, 2020 and 2019.</p> <p id="xdx_854_zTPZW8cRYsd8" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"><b> </b></p> <p id="xdx_84A_eus-gaap--RegulatoryIncomeTaxesPolicy_zqiJKdWqJKSl" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0"><b>Income Taxes:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt">The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2020 or 2019. The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2020 and 2019.</span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt">The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2016.</span></p> <p id="xdx_854_z0PfqzI9P6Ra" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b> </b></p> <p id="xdx_84F_eus-gaap--OtherLiabilitiesDisclosureTextBlock_zz5Jqp2twW7b" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Sales Taxes:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. The Company collects these taxes from customers and remits the entire amount as required by the applicable law. The Company excludes from revenues and expenses the tax collected and remitted.</p> <p id="xdx_856_zuFyisDE8DRg" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"><b> </b></span></p> <p id="xdx_840_eus-gaap--ShareBasedCompensationOptionAndIncentivePlansPolicy_zCRXuHgdOLV4" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"><b>Stock-Based Compensation:</b></span></p> <p style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. <span style="letter-spacing: -0.15pt">The stock-based compensation expense for the years ended May 31, 2020 and 2019 was <span id="xdx_909_eus-gaap--ShareBasedCompensation_c20190601__20200531_zUsRfOLYflki" title="Share based compensation expense">$143,097</span> and <span id="xdx_908_eus-gaap--ShareBasedCompensation_c20180601__20190531_zZJbqRlXC3V" title="Share based compensation expense">$137,655</span>.</span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p id="xdx_85E_zJdRcSMTkFd5" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p id="xdx_84F_eus-gaap--NewAccountingPronouncementsPolicyPolicyTextBlock_zO16vlZONRXf" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"><b>New Accounting Standards:</b></span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">In May 2014, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers. ASU 2014-09 is a comprehensive new revenue recognition model that requires a company to recognize revenue to depict the transfer of goods or services to a customer at an amount that reflects the consideration it expects to receive in exchange for those goods or services. ASU 2014-09 also requires additional disclosure about the nature, amount, timing and uncertainty of revenue and cash flows arising from customer contracts, including significant judgments and changes in judgments and assets recognized from costs incurred to obtain or fulfill a contract. ASU 2014-09, as amended, is effective for annual reporting periods, and interim periods within that period, beginning after December 15, 2018 (fiscal year 2020 for the Company). Companies may use either a full retrospective or a modified retrospective approach to adopt ASU 2014-09. The Company adopted ASU 2014-09 on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings. The effect of the adoption is detailed above.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Other recently issued Accounting Standards Codification (ASC) guidance has either been implemented or are not significant to the Company.</p> <p id="xdx_857_zAQiPd7tc5N8" style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> 0.57 0.43 0.55 0.45 <table cellpadding="0" cellspacing="0" id="xdx_888_eus-gaap--ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_zfRIIMeKIuAh" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Impact of Adoption of Standards Related to Revenue Recognition (Details)"> <tr style="vertical-align: bottom"> <td> </td><td> </td> <td colspan="3" id="xdx_490_20180531__us-gaap--InitialApplicationPeriodCumulativeEffectTransitionAxis__us-gaap--CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_zvivhXuooUQ8"> </td><td> </td> <td colspan="3" id="xdx_490_20180601__us-gaap--InitialApplicationPeriodCumulativeEffectTransitionAxis__us-gaap--DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member_zbAvCv33lndh"> </td><td> </td> <td colspan="3" id="xdx_490_20180601__us-gaap--InitialApplicationPeriodCumulativeEffectTransitionAxis__us-gaap--CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_zbhsVBrhZEK5"> </td></tr> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">Balance Sheet</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Balance at May 31, 2018</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Adjustments Due to ASU 2014-09</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Balance at June 1, 2018</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; font-weight: bold; width: 46%">Assets</td><td style="width: 5%"> </td> <td style="text-align: left; width: 1%"> </td><td style="text-align: right; width: 11%"> </td><td style="text-align: left; width: 1%"> </td><td style="width: 5%"> </td> <td style="text-align: left; width: 1%"> </td><td style="text-align: right; width: 11%"> </td><td style="text-align: left; width: 1%"> </td><td style="width: 5%"> </td> <td style="text-align: left; width: 1%"> </td><td style="text-align: right; width: 11%"> </td><td style="text-align: left; width: 1%"> </td></tr> <tr id="xdx_405_eus-gaap--InventoryPartsAndComponentsNetOfReserves_iI_zEVhHweKgFvd" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt">Inventory</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">11,317,775</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,101,116</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">12,418,891</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrPrograms_iI_zEtoLEJfVSL3" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Costs and estimated earnings in excess of billings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">6,356,963</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">(326,509</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">6,030,454</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; font-weight: bold">Liabilities</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_408_eus-gaap--BillingsInExcessOfCostCurrent_iI_zPt6BGLAlqX3" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Billings in excess of costs and estimated earnings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,043,002</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">(25,105</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,017,897</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr id="xdx_40F_eus-gaap--OtherLiabilitiesCurrent_iI_zFKt0GFTOfRb" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Other accrued expenses</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,412,502</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">794,713</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,207,215</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; font-weight: bold">Equity</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--RetainedEarningsAccumulatedDeficit_iI_zG34vb06T48e" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Retained earnings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">26,959,080</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">4,999</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">26,964,079</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> </table> 11317775 1101116 12418891 6356963 -326509 6030454 2043002 -25105 2017897 1412502 794713 2207215 26959080 4999 26964079 <table cellpadding="0" cellspacing="0" id="xdx_883_esrt--ScheduleOfCondensedBalanceSheetTableTextBlock_zqf4P4T7UJOa" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Revenue Impact on Financial Statements Balance Sheet (Details)"> <tr style="vertical-align: bottom"> <td style="width: 46%"> </td><td style="font-size: 10pt; padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49E_20190531_zHxTkMCdg0rk" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49D_20190531__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201409Member_zcCY0pDJNyz5" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49F_20190531_zQJPVJFLukvd" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td></tr> <tr style="vertical-align: bottom"> <td> </td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="11" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">May 31, 2019</td></tr> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">Balance Sheet</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">As Reported</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Effect of Change Higher/(Lower)</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Balances Without Adoption of ASU 2014-09</td></tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold">Assets</td><td> </td> <td colspan="3"> </td><td> </td> <td colspan="3"> </td><td> </td> <td colspan="3"> </td></tr> <tr id="xdx_40F_eus-gaap--InventoryPartsAndComponentsNetOfReserves_iI_d0_zMbiJ1BZ11ab" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt">Inventory</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">11,239,331</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">11,239,331</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrPrograms_iI_d0_ziqu4t1sSfQf" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Costs and estimated earnings in excess of billings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">7,572,490</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">7,572,490</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; font-weight: bold">Liabilities</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--OtherLiabilitiesCurrent_iI_d0_zCH4AZeicy8" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Other accrued expenses</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,532,271</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,532,271</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; font-weight: bold">Equity</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--RetainedEarningsAccumulatedDeficit_iI_d0_zJIiAdnScHNf" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Retained earnings</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">29,508,604</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">29,508,604</td><td style="font-size: 10pt; text-align: left"> </td></tr> </table> 11239331 0 11239331 7572490 0 7572490 1532271 0 1532271 29508604 0 29508604 <table cellpadding="0" cellspacing="0" id="xdx_894_esrt--ScheduleOfCondensedIncomeStatementTableTextBlock_zPvoZT4hdWXf" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Revenue Impact on Financial Statements Income Statement (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; width: 46%"> </td><td style="font-size: 10pt; padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49F_20180601__20190531_zbjykFUShEc4" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_495_20180601__20190531__us-gaap--AdjustmentsForNewAccountingPronouncementsAxis__us-gaap--AccountingStandardsUpdate201409Member_zak4gDCtBRg8" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td> <td id="xdx_49B_20180601__20190531__us-gaap--InitialApplicationPeriodCumulativeEffectTransitionAxis__us-gaap--CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member_znEMUmKySSsk" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 11%"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center; width: 1%"> </td></tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt"> </td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="11" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">For the year ended May 31, 2019</td></tr> <tr style="vertical-align: bottom"> <td style="border-bottom: Black 1pt solid; font-size: 10pt; font-weight: bold">Income Statement</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">As Reported</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Effect of Change Higher/(Lower)</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">Balances Without Adoption of ASU 2014-09</td></tr> <tr style="vertical-align: bottom"> <td style="font-size: 10pt; font-weight: bold">Revenues</td><td> </td> <td colspan="3"> </td><td> </td> <td colspan="3"> </td><td> </td> <td colspan="3"> </td></tr> <tr id="xdx_409_eus-gaap--Revenues_zaQmsOXkqsWe" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Sales, net</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">33,619,031</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,096,117</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">32,522,914</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; font-weight: bold; text-align: left">Costs and Expenses</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_406_eus-gaap--CostOfGoodsAndServicesSold_zwP7PeO23af4" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Cost of goods sold</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">24,571,255</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">1,101,116</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">23,470,139</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--IncomeTaxExpenseBenefit_d0_zkxIbh8sBRV" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Provision for income taxes</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">515,000</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">—  </td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">515,000</td><td style="font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--NetIncomeLoss_zKDT52yKhHjh" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left">Net income (loss)</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,544,525</td><td style="font-size: 10pt; text-align: left"> </td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">(4,999</td><td style="font-size: 10pt; text-align: left">)</td><td style="font-size: 10pt"> </td> <td style="font-size: 10pt; text-align: left">$</td><td style="font-size: 10pt; text-align: right">2,549,524</td><td style="font-size: 10pt; text-align: left"> </td></tr> </table> <p style="margin-top: 0; margin-bottom: 0"> </p> 33619031 1096117 32522914 24571255 1101116 23470139 515000 0 515000 2544525 -4999 2549524 <p id="xdx_84C_eus-gaap--ShippingAndHandlingCostPolicyTextBlock_zyAJ5UM5dsja" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Shipping and Handling Costs:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were <span id="xdx_90F_eus-gaap--OtherGeneralAndAdministrativeExpense_c20190601__20200531_zgrDVFhjFdxk" title="Shipping and handling costs">$420,786</span> and <span id="xdx_905_eus-gaap--OtherSellingGeneralAndAdministrativeExpense_c20180601__20190531_zEk1eiEpyhQk" title="Shipping and handling costs">$268,847</span> for the years ended May 31, 2020 and 2019. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.</p> 420786 268847 <p id="xdx_84C_eus-gaap--ResearchAndDevelopmentExpensePolicy_zwg2BGfs40y" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Research and Development Costs:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Research and development costs are classified as a component of cost of sales. The amounts of these costs were <span id="xdx_902_eus-gaap--ResearchAndDevelopmentExpense_c20190601__20200531_zQZfl1vELofj" title="Research and development costs">$585,000</span> and <span id="xdx_90F_eus-gaap--ResearchAndDevelopmentExpense_c20180601__20190531_zi8g0Jp5d5ij" title="Research and development costs">$319,000</span> for the years ended May 31, 2020 and 2019.</p> 585000 319000 <p id="xdx_84A_eus-gaap--RegulatoryIncomeTaxesPolicy_zqiJKdWqJKSl" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0"><b>Income Taxes:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt">The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2020 or 2019. The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2020 and 2019.</span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt">The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2016.</span></p> <p id="xdx_84F_eus-gaap--OtherLiabilitiesDisclosureTextBlock_zz5Jqp2twW7b" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>Sales Taxes:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. The Company collects these taxes from customers and remits the entire amount as required by the applicable law. The Company excludes from revenues and expenses the tax collected and remitted.</p> <p id="xdx_840_eus-gaap--ShareBasedCompensationOptionAndIncentivePlansPolicy_zCRXuHgdOLV4" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"><b>Stock-Based Compensation:</b></span></p> <p style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. <span style="letter-spacing: -0.15pt">The stock-based compensation expense for the years ended May 31, 2020 and 2019 was <span id="xdx_909_eus-gaap--ShareBasedCompensation_c20190601__20200531_zUsRfOLYflki" title="Share based compensation expense">$143,097</span> and <span id="xdx_908_eus-gaap--ShareBasedCompensation_c20180601__20190531_zZJbqRlXC3V" title="Share based compensation expense">$137,655</span>.</span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> 143097 137655 <p id="xdx_84F_eus-gaap--NewAccountingPronouncementsPolicyPolicyTextBlock_zO16vlZONRXf" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"><b>New Accounting Standards:</b></span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">In May 2014, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers. ASU 2014-09 is a comprehensive new revenue recognition model that requires a company to recognize revenue to depict the transfer of goods or services to a customer at an amount that reflects the consideration it expects to receive in exchange for those goods or services. ASU 2014-09 also requires additional disclosure about the nature, amount, timing and uncertainty of revenue and cash flows arising from customer contracts, including significant judgments and changes in judgments and assets recognized from costs incurred to obtain or fulfill a contract. ASU 2014-09, as amended, is effective for annual reporting periods, and interim periods within that period, beginning after December 15, 2018 (fiscal year 2020 for the Company). Companies may use either a full retrospective or a modified retrospective approach to adopt ASU 2014-09. The Company adopted ASU 2014-09 on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings. The effect of the adoption is detailed above.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Other recently issued Accounting Standards Codification (ASC) guidance has either been implemented or are not significant to the Company.</p> <p id="xdx_808_eus-gaap--LoansNotesTradeAndOtherReceivablesDisclosureTextBlock_z74rJBFCNW1k" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>2. Accounts and Other Receivables:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><span style="letter-spacing: -0.15pt"> </span></p> <table cellpadding="0" cellspacing="0" id="xdx_88E_eus-gaap--ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_zc4wswvYOsV5" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Accounts receivable table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_495_20200531_z5Ppg0c1uXtj" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49F_20190531_zmBaMFQaVpvd" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_40A_eus-gaap--ReceivablesFromCustomers_iI_maARGCzi2S_zSuXiXDT6APi" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%">Customers</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">5,399,915</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">4,438,373</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--ContractReceivableRetainageDueOneYearOrLess_iI_maARGCzi2S_zWBLzCsI4Bcc" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Customers - retention</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">630,823</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">950,684</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40F_eus-gaap--AccountsReceivableGrossCurrent_iTI_mtARGCzi2S_maARNCzTfg_zphSWZSwc2b9" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><b style="display: none">Gross accounts receivable</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">6,030,738</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">5,389,057</td><td style="text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--AllowanceForDoubtfulAccountsReceivable_iI_msARNCzTfg_zkZrigyfJMV6" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Less allowance for doubtful accounts</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">211,267</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">109,755</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--AccountsReceivableNetCurrent_iTI_mtARNCzTfg_zUO3K1c3Gcm1" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Net accounts and other receivables</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">5,819,471</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">5,279,302</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <table cellpadding="0" cellspacing="0" id="xdx_88E_eus-gaap--ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock_zc4wswvYOsV5" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Accounts receivable table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_495_20200531_z5Ppg0c1uXtj" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49F_20190531_zmBaMFQaVpvd" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_40A_eus-gaap--ReceivablesFromCustomers_iI_maARGCzi2S_zSuXiXDT6APi" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%">Customers</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">5,399,915</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">4,438,373</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--ContractReceivableRetainageDueOneYearOrLess_iI_maARGCzi2S_zWBLzCsI4Bcc" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Customers - retention</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">630,823</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">950,684</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40F_eus-gaap--AccountsReceivableGrossCurrent_iTI_mtARGCzi2S_maARNCzTfg_zphSWZSwc2b9" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><b style="display: none">Gross accounts receivable</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">6,030,738</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">5,389,057</td><td style="text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--AllowanceForDoubtfulAccountsReceivable_iI_msARNCzTfg_zkZrigyfJMV6" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Less allowance for doubtful accounts</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">211,267</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">109,755</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--AccountsReceivableNetCurrent_iTI_mtARNCzTfg_zUO3K1c3Gcm1" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Net accounts and other receivables</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">5,819,471</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">5,279,302</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 5399915 4438373 630823 950684 6030738 5389057 211267 109755 5819471 5279302 <p id="xdx_80A_eus-gaap--InventoryDisclosureTextBlock_zspfBWrOLCef" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>3. Inventory: </b></p> <p style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b> </b></p> <table cellpadding="0" cellspacing="0" id="xdx_88D_eus-gaap--ScheduleOfInventoryCurrentTableTextBlock_z2EUFrP61ts9" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Inventory table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_499_20200531_zRObDQJeguEh" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_499_20190531_zRAPbbK8rSs3" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_404_eus-gaap--InventoryRawMaterials_iI_maIGzB7v_zdlFyUTWEWmj" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: left">Raw materials</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">658,024</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; color: windowtext"> </td> <td style="width: 1%; color: windowtext; text-align: left">$</td><td style="width: 12%; color: windowtext; text-align: right">679,018</td><td style="width: 1%; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--InventoryWorkInProcess_iI_maIGzB7v_zyUeJ5IQGPK6" style="vertical-align: bottom; background-color: White"> <td>Work-in-process</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">8,586,404</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext"> </td> <td style="color: windowtext; text-align: left"> </td><td style="color: windowtext; text-align: right">9,905,495</td><td style="color: windowtext; text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--InventoryFinishedGoods_iI_maIGzB7v_z9meXoBxg3A2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Finished goods</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">963,009</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">754,818</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--InventoryGross_iTI_mtIGzB7v_maINzo7I_zb1JkbL8KMa9" style="vertical-align: bottom; background-color: White"> <td style="text-align: left"><b style="display: none">Gross inventory</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">10,207,437</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext"> </td> <td style="color: windowtext; text-align: left"> </td><td style="color: windowtext; text-align: right">11,339,331</td><td style="color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--InventoryValuationReserves_iI_msINzo7I_zSdv5GuovKl1" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Less allowance for obsolescence</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">100,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">100,000</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_404_eus-gaap--InventoryNet_iTI_mtINzo7I_zA81X1h53VKc" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Net inventory</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">10,107,437</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">11,239,331</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> </table> <table cellpadding="0" cellspacing="0" id="xdx_88D_eus-gaap--ScheduleOfInventoryCurrentTableTextBlock_z2EUFrP61ts9" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Inventory table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_499_20200531_zRObDQJeguEh" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_499_20190531_zRAPbbK8rSs3" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_404_eus-gaap--InventoryRawMaterials_iI_maIGzB7v_zdlFyUTWEWmj" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: left">Raw materials</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">658,024</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; color: windowtext"> </td> <td style="width: 1%; color: windowtext; text-align: left">$</td><td style="width: 12%; color: windowtext; text-align: right">679,018</td><td style="width: 1%; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--InventoryWorkInProcess_iI_maIGzB7v_zyUeJ5IQGPK6" style="vertical-align: bottom; background-color: White"> <td>Work-in-process</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">8,586,404</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext"> </td> <td style="color: windowtext; text-align: left"> </td><td style="color: windowtext; text-align: right">9,905,495</td><td style="color: windowtext; text-align: left"> </td></tr> <tr id="xdx_407_eus-gaap--InventoryFinishedGoods_iI_maIGzB7v_z9meXoBxg3A2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Finished goods</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">963,009</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">754,818</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--InventoryGross_iTI_mtIGzB7v_maINzo7I_zb1JkbL8KMa9" style="vertical-align: bottom; background-color: White"> <td style="text-align: left"><b style="display: none">Gross inventory</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">10,207,437</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext"> </td> <td style="color: windowtext; text-align: left"> </td><td style="color: windowtext; text-align: right">11,339,331</td><td style="color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--InventoryValuationReserves_iI_msINzo7I_zSdv5GuovKl1" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt">Less allowance for obsolescence</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">100,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">100,000</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_404_eus-gaap--InventoryNet_iTI_mtINzo7I_zA81X1h53VKc" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Net inventory</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">10,107,437</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">11,239,331</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> </table> 658024 679018 8586404 9905495 963009 754818 10207437 11339331 100000 100000 10107437 11239331 <p id="xdx_808_eus-gaap--DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock_znP1q8mSKP5d" style="font: bold 10pt Times New Roman, Times, Serif; color: navy; margin: 0">4. Costs and Estimated Earnings on Uncompleted Contracts:</p> <p style="font: bold 10pt Times New Roman, Times, Serif; color: navy; margin: 0"> </p> <table cellpadding="0" cellspacing="0" id="xdx_88A_eus-gaap--LongTermContractsOrProgramsDisclosureTextBlock_z0iAYKPhaji" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Costs and estimated earnings on uncompleted contracts components table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_490_20200531_zHjozuC1ahei" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_498_20190531_zvilcwmdsmWj" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_40B_eus-gaap--InventoryForLongTermContractsOrPrograms_iI_maCAEEOzFuM_zjCsTQ5gp334" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: justify">Costs incurred on uncompleted contracts</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">6,395,550</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; color: windowtext"> </td> <td style="width: 1%; color: windowtext; text-align: left">$</td><td style="width: 12%; color: windowtext; text-align: right">16,599,307</td><td style="width: 1%; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_403_ecustom--EstimatedEarningsOnUncompletedContractsOrPrograms_iI_maCAEEOzFuM_z8xJ87oGRiO7" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Estimated earnings</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">3,816,527</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">6,526,707</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40F_ecustom--CostsAndEstimatedEarningsOnUncompletedContractsOrPrograms_iTI_mtCAEEOzFuM_maCIEOBzrqj_zvo8gUwH3xA7" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify"><b style="display: none">Total costs and estimated earnings</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">10,212,077</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext"> </td> <td style="color: windowtext; text-align: left"> </td><td style="color: windowtext; text-align: right">23,126,014</td><td style="color: windowtext; text-align: left"> </td></tr> <tr id="xdx_408_ecustom--BillingsOnUncompletedContractsOrPrograms_iI_msCIEOBzrqj_zVEijgVpAcb1" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Less billings to date</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">9,194,370</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">16,187,227</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear_iTI_mtCIEOBzrqj_zI24VCW2NLLg" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Costs and estimated earnings not billed</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,017,707</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">6,938,787</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Amounts are included in the accompanying balance sheets under the following captions:</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_889_ecustom--LongTermContractsDisclosureTableTextBlock_zlkDIuFQ7Kj3" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Costs and estimated earnings on uncompleted contracts table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_492_20200531_zeMNOD4uDKOg" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49B_20190531_zO8ktERzewr4" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_40E_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrPrograms_iI_maCIEOBzVUV_zBh36lGsKlMg" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: justify">Costs and estimated earnings in excess of billings</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">1,754,573</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">7,572,490</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--BillingsInExcessOfCostCurrent_iI_msCIEOBzVUV_zj1z1tglpMWi" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Billings in excess of costs and estimated earnings</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">736,866</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">633,703</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear_iTI_mtCIEOBzVUV_zPl5jExsO5i1" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt"><b style="display: none">Costs and estimated earnings not billed</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,017,707</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">6,938,787</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b/> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The following summarizes the status of Projects in progress as of May 31, 2020 and 2019:</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"/> <table cellpadding="0" cellspacing="0" id="xdx_886_ecustom--LongTermContractsDisclosureTwoTableTextBlock_zbVXa1lHMsW4" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Costs and estimated earnings on uncompleted contracts two table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: right"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49B_20200531_zaYZHomkC2H9" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_498_20190531_zSYMKywjM9Pf" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">2019</td></tr> <tr id="xdx_40F_ecustom--QuantityOfUncompletedProjectsOrProgramsInProgress_iI_zwN30bl1FOHf" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: right; padding-left: 5.4pt">Number of Projects in progress</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">15</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left"> </td><td style="width: 12%; text-align: right">22</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_406_ecustom--AggregatePercentCompleteOfUncompletedProjectsOrProgramsInProgress_iI_dp_zpa3vTbYLoX6" style="vertical-align: bottom; background-color: White"> <td style="text-align: right; padding-left: 5.4pt">Aggregate percent complete</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">80</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">77</td><td style="text-align: left">%</td></tr> <tr id="xdx_401_ecustom--AggregateFutureRevenueToBeRecognizedFromUncompletedProjectsOrProgramsInProgress_iI_zTd4ScH8b1fg" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: right; padding-left: 5.4pt">Aggregate amount remaining</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left">$</td><td style="color: navy; font-weight: bold; text-align: right">2,234,962</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">6,748,520</td><td style="text-align: left"> </td></tr> <tr id="xdx_406_ecustom--PercentOfAggregateRevenueValueOfUncompletedProjectsOrProgramsInProgressInvoicedToCustomer_iI_dp_zVtuMsoBzJMd" style="vertical-align: bottom; background-color: White"> <td style="text-align: right; padding-left: 5.4pt">Percentage of total value invoiced to customer</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">74</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">54</td><td style="text-align: left">%</td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company expects to recognize the entire remaining revenue on all open projects during the May 31, 2020 fiscal year.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Revenue recognized during the years ended May 31, 2020 and 2019 for amounts included in billings in excess of costs and estimated earnings as of the beginning of the year amounted to <span id="xdx_902_ecustom--AggregateRevenueRecognizedFromUncompletedProjectsOrProgramsInProgressAtPriorYearEndIncludedInBillingsInExcessOfCostsAndEstimatedEarnings_c20190601__20200531_zg7TUV7u2Ctc" title="Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year">$1,481,320</span> and <span id="xdx_901_ecustom--AggregateRevenueRecognizedFromUncompletedProjectsOrProgramsInProgressAtPriorYearEndIncludedInBillingsInExcessOfCostsAndEstimatedEarnings_c20180601__20190531_zwmNLmbFn3j1" title="Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year">$4,187,015</span>.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"/> <table cellpadding="0" cellspacing="0" id="xdx_88A_eus-gaap--LongTermContractsOrProgramsDisclosureTextBlock_z0iAYKPhaji" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Costs and estimated earnings on uncompleted contracts components table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_490_20200531_zHjozuC1ahei" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_498_20190531_zvilcwmdsmWj" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_40B_eus-gaap--InventoryForLongTermContractsOrPrograms_iI_maCAEEOzFuM_zjCsTQ5gp334" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: justify">Costs incurred on uncompleted contracts</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">6,395,550</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; color: windowtext"> </td> <td style="width: 1%; color: windowtext; text-align: left">$</td><td style="width: 12%; color: windowtext; text-align: right">16,599,307</td><td style="width: 1%; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_403_ecustom--EstimatedEarningsOnUncompletedContractsOrPrograms_iI_maCAEEOzFuM_z8xJ87oGRiO7" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Estimated earnings</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">3,816,527</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">6,526,707</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40F_ecustom--CostsAndEstimatedEarningsOnUncompletedContractsOrPrograms_iTI_mtCAEEOzFuM_maCIEOBzrqj_zvo8gUwH3xA7" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify"><b style="display: none">Total costs and estimated earnings</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">10,212,077</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext"> </td> <td style="color: windowtext; text-align: left"> </td><td style="color: windowtext; text-align: right">23,126,014</td><td style="color: windowtext; text-align: left"> </td></tr> <tr id="xdx_408_ecustom--BillingsOnUncompletedContractsOrPrograms_iI_msCIEOBzrqj_zVEijgVpAcb1" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Less billings to date</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">9,194,370</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">16,187,227</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear_iTI_mtCIEOBzrqj_zI24VCW2NLLg" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Costs and estimated earnings not billed</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,017,707</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: windowtext; text-align: right">6,938,787</td><td style="padding-bottom: 1pt; color: windowtext; text-align: left"> </td></tr> </table> 6395550 16599307 3816527 6526707 10212077 23126014 9194370 16187227 1017707 6938787 <table cellpadding="0" cellspacing="0" id="xdx_889_ecustom--LongTermContractsDisclosureTableTextBlock_zlkDIuFQ7Kj3" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Costs and estimated earnings on uncompleted contracts table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_492_20200531_zeMNOD4uDKOg" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49B_20190531_zO8ktERzewr4" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_40E_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrPrograms_iI_maCIEOBzVUV_zBh36lGsKlMg" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: justify">Costs and estimated earnings in excess of billings</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">1,754,573</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">7,572,490</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--BillingsInExcessOfCostCurrent_iI_msCIEOBzVUV_zj1z1tglpMWi" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Billings in excess of costs and estimated earnings</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">736,866</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">633,703</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear_iTI_mtCIEOBzVUV_zPl5jExsO5i1" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt"><b style="display: none">Costs and estimated earnings not billed</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,017,707</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">6,938,787</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 1754573 7572490 736866 633703 1017707 6938787 <table cellpadding="0" cellspacing="0" id="xdx_886_ecustom--LongTermContractsDisclosureTwoTableTextBlock_zbVXa1lHMsW4" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Costs and estimated earnings on uncompleted contracts two table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: right"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49B_20200531_zaYZHomkC2H9" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_498_20190531_zSYMKywjM9Pf" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">2019</td></tr> <tr id="xdx_40F_ecustom--QuantityOfUncompletedProjectsOrProgramsInProgress_iI_zwN30bl1FOHf" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: right; padding-left: 5.4pt">Number of Projects in progress</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">15</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left"> </td><td style="width: 12%; text-align: right">22</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_406_ecustom--AggregatePercentCompleteOfUncompletedProjectsOrProgramsInProgress_iI_dp_zpa3vTbYLoX6" style="vertical-align: bottom; background-color: White"> <td style="text-align: right; padding-left: 5.4pt">Aggregate percent complete</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">80</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">77</td><td style="text-align: left">%</td></tr> <tr id="xdx_401_ecustom--AggregateFutureRevenueToBeRecognizedFromUncompletedProjectsOrProgramsInProgress_iI_zTd4ScH8b1fg" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: right; padding-left: 5.4pt">Aggregate amount remaining</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left">$</td><td style="color: navy; font-weight: bold; text-align: right">2,234,962</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">6,748,520</td><td style="text-align: left"> </td></tr> <tr id="xdx_406_ecustom--PercentOfAggregateRevenueValueOfUncompletedProjectsOrProgramsInProgressInvoicedToCustomer_iI_dp_zVtuMsoBzJMd" style="vertical-align: bottom; background-color: White"> <td style="text-align: right; padding-left: 5.4pt">Percentage of total value invoiced to customer</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">74</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">54</td><td style="text-align: left">%</td></tr> </table> 15 22 0.80 0.77 2234962 6748520 0.74 0.54 1481320 4187015 <p id="xdx_800_eus-gaap--OtherAssetsDisclosureTextBlock_zL2g8fa2Pke5" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>5. Maintenance and Other Inventory:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_889_eus-gaap--ScheduleOfInventoryNoncurrentTableTextBlock_zJ3zB2sQ9Klk" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Maintenance and other inventory table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_495_20200531_zrmbE99fNyOh" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49F_20190531_z9rZdN2He6Oc" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_402_eus-gaap--OtherInventoryNoncurrent_iI_maINztx0_zThqTqoXkHNi" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: justify">Maintenance and other inventory</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">2,479,497</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">2,197,958</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40B_ecustom--InventoryValuationReservesNoncurrent_iNI_di_maINztx0_z6VXgS622AQ1" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Less allowance for obsolescence</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,600,447</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">1,466,081</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_408_eus-gaap--InventoryNoncurrent_iTI_mtINztx0_zv5wHw3u6c85" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt"><b style="display: none">Maintenance and other inventory, net</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">879,050</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">731,877</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Maintenance and other inventory represent stock that is estimated to have a product life-cycle in excess of twelve-months. This stock represents certain items the Company is required to maintain for service of products sold, and items that are generally subject to spontaneous ordering.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">This inventory is particularly sensitive to technical obsolescence in the near term due to its use in industries characterized by the continuous introduction of new product lines, rapid technological advances and product obsolescence. Therefore, management of the Company has recorded an allowance for potential inventory obsolescence.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The provision for potential inventory obsolescence was <span id="xdx_903_eus-gaap--InventoryWriteDown_c20190601__20200531_z3VszPCG46s1" title="Provision for potentially obsolete inventory">$180,000</span> and <span id="xdx_905_eus-gaap--InventoryWriteDown_c20180601__20190531_zwdZykHPoWf1" title="Provision for potentially obsolete inventory">$175,000</span> for the years ended May 31, 2020 and 2019.</p> <table cellpadding="0" cellspacing="0" id="xdx_889_eus-gaap--ScheduleOfInventoryNoncurrentTableTextBlock_zJ3zB2sQ9Klk" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Maintenance and other inventory table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_495_20200531_zrmbE99fNyOh" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49F_20190531_z9rZdN2He6Oc" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_402_eus-gaap--OtherInventoryNoncurrent_iI_maINztx0_zThqTqoXkHNi" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: justify">Maintenance and other inventory</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">2,479,497</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">2,197,958</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40B_ecustom--InventoryValuationReservesNoncurrent_iNI_di_maINztx0_z6VXgS622AQ1" style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">Less allowance for obsolescence</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">1,600,447</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">1,466,081</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_408_eus-gaap--InventoryNoncurrent_iTI_mtINztx0_zv5wHw3u6c85" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt"><b style="display: none">Maintenance and other inventory, net</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">879,050</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">731,877</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 2479497 2197958 -1600447 -1466081 879050 731877 180000 175000 <p id="xdx_806_eus-gaap--PropertyPlantAndEquipmentDisclosureTextBlock_zpSLeaG4BfRc" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>6. Property and Equipment:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_88D_eus-gaap--PropertyPlantAndEquipmentTextBlock_ziPdWrq2S0Tc" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Property and equipment table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49C_20200531_z1NAGEisBVo6" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49D_20190531_zKlYWTM4One" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_40C_eus-gaap--Land_iI_maPPAEGzf35_zUOUGfMI5kM7" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%">Land</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">195,220</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">195,220</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--BuildingsAndImprovementsGross_iI_maPPAEGzf35_z4l2TTmdyaM6" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Buildings and improvements</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">9,457,142</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">9,342,431</td><td style="text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--MachineryAndEquipmentGross_iI_maPPAEGzf35_z1yGiJwINQfb" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Machinery and equipment</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">11,242,667</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">10,390,610</td><td style="text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--FurnitureAndFixturesGross_iI_maPPAEGzf35_z5eZfyVDE8I8" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Office furniture and equipment</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">2,209,382</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">1,975,392</td><td style="text-align: left"> </td></tr> <tr id="xdx_405_eus-gaap--PropertyPlantAndEquipmentOther_iI_maPPAEGzf35_z7cDfXOw2Uw2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Autos and trucks</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">24,818</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">24,818</td><td style="text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--LandImprovements_iI_maPPAEGzf35_zeslaeuNk7n8" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Land improvements</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">455,429</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">455,429</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--PropertyPlantAndEquipmentGross_iTI_mtPPAEGzf35_maPPAENzlmU_zwNzgpxE2vUl" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><b style="display: none">Gross property and equipment</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">23,584,658</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">22,383,900</td><td style="text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_iI_msPPAENzlmU_zmv8OYfbMtwk" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Less accumulated depreciation</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">14,177,168</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">13,066,458</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--PropertyPlantAndEquipmentNet_iTI_mtPPAENzlmU_zFqFtyyVngTe" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Property and equipment, net</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">9,407,490</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">9,317,442</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Depreciation expense was <span id="xdx_908_eus-gaap--Depreciation_c20190601__20200531_zzIn46D5eNXi" title="Depreciation expense">$1,141,110</span> and <span id="xdx_90B_eus-gaap--Depreciation_c20180601__20190531_z4J9HeRAIhr7" title="Depreciation expense">$1,072,959</span> for the years ended May 31, 2020 and 2019.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company has commitments to make capital expenditures of approximately <span id="xdx_90A_ecustom--CommitmentsForFutureCapitalExpendituresDisclosure_iI_c20200531_zqofmGOxPCu1" title="Commitments for future capital expenditures">$200,000</span> as of May 31, 2020.</p> <table cellpadding="0" cellspacing="0" id="xdx_88D_eus-gaap--PropertyPlantAndEquipmentTextBlock_ziPdWrq2S0Tc" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Property and equipment table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49C_20200531_z1NAGEisBVo6" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49D_20190531_zKlYWTM4One" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_40C_eus-gaap--Land_iI_maPPAEGzf35_zUOUGfMI5kM7" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%">Land</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">195,220</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">195,220</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--BuildingsAndImprovementsGross_iI_maPPAEGzf35_z4l2TTmdyaM6" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Buildings and improvements</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">9,457,142</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">9,342,431</td><td style="text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--MachineryAndEquipmentGross_iI_maPPAEGzf35_z1yGiJwINQfb" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Machinery and equipment</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">11,242,667</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">10,390,610</td><td style="text-align: left"> </td></tr> <tr id="xdx_402_eus-gaap--FurnitureAndFixturesGross_iI_maPPAEGzf35_z5eZfyVDE8I8" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Office furniture and equipment</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">2,209,382</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">1,975,392</td><td style="text-align: left"> </td></tr> <tr id="xdx_405_eus-gaap--PropertyPlantAndEquipmentOther_iI_maPPAEGzf35_z7cDfXOw2Uw2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Autos and trucks</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">24,818</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">24,818</td><td style="text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--LandImprovements_iI_maPPAEGzf35_zeslaeuNk7n8" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Land improvements</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">455,429</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">455,429</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_400_eus-gaap--PropertyPlantAndEquipmentGross_iTI_mtPPAEGzf35_maPPAENzlmU_zwNzgpxE2vUl" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><b style="display: none">Gross property and equipment</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">23,584,658</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">22,383,900</td><td style="text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_iI_msPPAENzlmU_zmv8OYfbMtwk" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt">Less accumulated depreciation</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">14,177,168</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">13,066,458</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--PropertyPlantAndEquipmentNet_iTI_mtPPAENzlmU_zFqFtyyVngTe" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Property and equipment, net</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">9,407,490</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">9,317,442</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 195220 195220 9457142 9342431 11242667 10390610 2209382 1975392 24818 24818 455429 455429 23584658 22383900 14177168 13066458 9407490 9317442 1141110 1072959 200000 <p id="xdx_80D_eus-gaap--ScheduleOfLineOfCreditFacilitiesTextBlock_ze0gp6tWifo5" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>7. Short-Term Borrowings:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">During 2020, the Company received a loan totaling <span id="xdx_90C_eus-gaap--ProceedsFromBankDebt_c20190601__20200531_zTV10W8eE408" title="Proceeds from bank debt">$1,461,500</span> from the Small Business Administration under the Paycheck Protection Program of the Coronavirus Aid, Relief and Economic Security (CARES) Act, in response to the pandemic described in Note 20. Some or all of the loan may be forgiven if certain criteria are met. Otherwise, the loan is unsecured, has a deferment on payments for 6 months after a decision on forgiveness has been made, then is payable over a negotiable period of time, and bears interest at 1%.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company has available a <span id="xdx_90B_eus-gaap--LineOfCreditFacilityCurrentBorrowingCapacity_iI_c20200531_zxOgvJnL8iJ1">$10,000,000 </span>demand line of credit from a bank, with interest payable at the Company's option of 30, 60 or 90 day LIBOR rate plus 2.25%. The line is secured by a negative pledge of the Company's real and personal property. This line of credit is subject to the usual terms and conditions applied by the bank and subject to renewal annually.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">There is <span id="xdx_90C_eus-gaap--LineOfCreditFacilityFairValueOfAmountOutstanding_iI_do_c20200531_z5L68ydmwoWk" title="Line of credit outstanding balance"><span id="xdx_902_eus-gaap--LineOfCreditFacilityFairValueOfAmountOutstanding_iI_do_c20190531_z7jHXj6aiS4e" title="Line of credit outstanding balance">no</span></span> amount outstanding under the line of credit at May 31, 2020 or May 31, 2019.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company uses a cash management facility under which the bank draws against the available line of credit to cover checks presented for payment on a daily basis. Outstanding checks under this arrangement totaled <span id="xdx_905_eus-gaap--AccountsPayableOtherCurrent_iI_c20200531_zh72zSPjjQlj" title="Uncleared checks">$523,344</span> and <span id="xdx_909_eus-gaap--AccountsPayableOtherCurrent_iI_c20190531_z4CJ64h6evne" title="Uncleared checks">$292,000</span> as of May 31, 2020 and 2019. These amounts are included in accounts payable.</p> 1461500 10000000 0 0 523344 292000 <p id="xdx_80C_eus-gaap--LegalMattersAndContingenciesTextBlock_zNIeDcxxLNo4" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>8. Legal Proceedings: </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">There are no legal proceedings except for routine litigation incidental to the business.</p> <p id="xdx_809_ecustom--ScheduleOfRevenueByMajorCustomersTypesTextBlock_zOL1Wlt5yKkl" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>9. Sales:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs,Vibration Dampers, Machined Springs and Custom Actuators. Management does not track or otherwise account for sales broken down by these categories. Sales of the Company's products are made to three general groups of customers: industrial, construction and aerospace / defense. A breakdown of sales to these three general groups of customers is as follows:</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_880_ecustom--ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock_zQvAtm0xRM8c" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Sales by major customer type (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: center"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_496_20190601__20200531_zOD6mH0dJExb" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49C_20180601__20190531_z6gv5lhMsU15" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; padding-left: 5.4pt">Construction</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td id="xdx_984_eus-gaap--Revenues_c20190601__20200531__srt--MajorCustomersAxis__custom--ConstructionSeismicWindMember_zGPsjNlkGqn3" style="width: 12%; color: navy; font-weight: bold; text-align: right" title="Sales, net">15,621,784</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_980_eus-gaap--Revenues_c20180601__20190531__srt--MajorCustomersAxis__custom--ConstructionSeismicWindMember_zASgOUjYCJIb" style="width: 12%; text-align: right" title="Sales, net">20,168,587</td><td style="width: 1%; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 5.4pt">Aerospace / Defense</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98E_eus-gaap--Revenues_c20190601__20200531__srt--MajorCustomersAxis__custom--AerospaceDefenseMember_z5D6eXePu9g9" style="color: navy; font-weight: bold; text-align: right" title="Sales, net">10,771,129</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_eus-gaap--Revenues_c20180601__20190531__srt--MajorCustomersAxis__custom--AerospaceDefenseMember_zegMiJFC7ceg" style="text-align: right" title="Sales, net">11,383,374</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt; padding-left: 5.4pt">Industrial</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_984_eus-gaap--Revenues_c20190601__20200531__srt--MajorCustomersAxis__custom--IndustrialMember_zYQVO47osBdh" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right" title="Sales, net">1,988,628</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_98D_eus-gaap--Revenues_c20180601__20190531__srt--MajorCustomersAxis__custom--IndustrialMember_z601w8r682b5" style="border-bottom: Black 1pt solid; text-align: right" title="Sales, net">2,067,070</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--Revenues_zbOQYgSJqaR2" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 5.4pt"><b style="display: none">Sales, net</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">28,381,541</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">33,619,031</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Sales to six customers approximated <span id="xdx_905_ecustom--ScheduleOfRevenueByMajorCustomers_dp_c20190601__20200531_zRiIvKPMZXra" title="Percentage of total sales to significant individual customers">41% </span>(<span id="xdx_90E_ecustom--ScheduleOfRevenueByMajorCustomer1_dp_c20190601__20200531_zZxCrKnyNhZh" title="Percentage of total sales to significant individual customer1">10%</span>, <span id="xdx_908_ecustom--ScheduleOfRevenueByMajorCustomer2_dp_c20190601__20200531_zfIoi6UvuYdi">9%</span>, <span title="Percentage of total sales to significant individual customer3"><span id="xdx_902_ecustom--ScheduleOfRevenueByMajorCustomer3_c20190601__20200531_zk9w3yaWRci8" title="Percentage of total sales to significant individual customer3">6%</span>, </span><span id="xdx_900_ecustom--ScheduleOfRevenueByMajorCustomer4_c20190601__20200531_zvsosOJ9jOya" title="Percentage of total sales to significant individual customer4">6%</span>, <span id="xdx_906_ecustom--ScheduleOfRevenueByMajorCustomer5_c20190601__20200531_zc8TwnU1pSo" title="Percentage of total sales to significant individual customer5">5%</span> and <span id="xdx_901_ecustom--ScheduleOfRevenueByMajorCustomer6_c20190601__20200531_z5xmswQW1X2j" title="Percentage of total sales to significant individual customer6">5%</span> respectively) of net sales for 2020. Sales to four customers approximated <span id="xdx_907_ecustom--ScheduleOfRevenueByMajorCustomers_dp_c20180601__20190531_zd0yoBjnjfTh" title="Percentage of total sales to significant individual customers">36% </span>(<span id="xdx_904_ecustom--ScheduleOfRevenueByMajorCustomer1_dp_c20180601__20190531_z0BbAsK3DzFk" title="Percentage of total sales to significant individual customer1">17%</span>, <span id="xdx_90E_ecustom--ScheduleOfRevenueByMajorCustomer2_dp_c20180601__20190531_zCjfVvv2c6Mg" title="Percentage of total sales to significant individual customer2">8%</span>, <span id="xdx_909_ecustom--ScheduleOfRevenueByMajorCustomer3_dp_c20180601__20190531_zYYWYsUbIEa9" title="Percentage of total sales to significant individual customer3">6%</span> and <span id="xdx_90E_ecustom--ScheduleOfRevenueByMajorCustomer4_dp_c20180601__20190531_zO874LQKoeD2" title="Percentage of total sales to significant individual customer4">5% </span>respectively) of net sales for 2019.</p> <table cellpadding="0" cellspacing="0" id="xdx_880_ecustom--ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock_zQvAtm0xRM8c" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Sales by major customer type (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: center"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_496_20190601__20200531_zOD6mH0dJExb" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49C_20180601__20190531_z6gv5lhMsU15" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; padding-left: 5.4pt">Construction</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td id="xdx_984_eus-gaap--Revenues_c20190601__20200531__srt--MajorCustomersAxis__custom--ConstructionSeismicWindMember_zGPsjNlkGqn3" style="width: 12%; color: navy; font-weight: bold; text-align: right" title="Sales, net">15,621,784</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_980_eus-gaap--Revenues_c20180601__20190531__srt--MajorCustomersAxis__custom--ConstructionSeismicWindMember_zASgOUjYCJIb" style="width: 12%; text-align: right" title="Sales, net">20,168,587</td><td style="width: 1%; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 5.4pt">Aerospace / Defense</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98E_eus-gaap--Revenues_c20190601__20200531__srt--MajorCustomersAxis__custom--AerospaceDefenseMember_z5D6eXePu9g9" style="color: navy; font-weight: bold; text-align: right" title="Sales, net">10,771,129</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_eus-gaap--Revenues_c20180601__20190531__srt--MajorCustomersAxis__custom--AerospaceDefenseMember_zegMiJFC7ceg" style="text-align: right" title="Sales, net">11,383,374</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt; padding-left: 5.4pt">Industrial</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_984_eus-gaap--Revenues_c20190601__20200531__srt--MajorCustomersAxis__custom--IndustrialMember_zYQVO47osBdh" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right" title="Sales, net">1,988,628</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_98D_eus-gaap--Revenues_c20180601__20190531__srt--MajorCustomersAxis__custom--IndustrialMember_z601w8r682b5" style="border-bottom: Black 1pt solid; text-align: right" title="Sales, net">2,067,070</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--Revenues_zbOQYgSJqaR2" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 5.4pt"><b style="display: none">Sales, net</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">28,381,541</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">33,619,031</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 15621784 20168587 10771129 11383374 1988628 2067070 28381541 33619031 0.41 0.10 0.09 0.06 0.06 0.05 0.05 0.36 0.17 0.08 0.06 0.05 <p id="xdx_808_eus-gaap--IncomeTaxDisclosureTextBlock_zlsArbjNvCpl" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>10. Income Taxes:</b></p> <table cellpadding="0" cellspacing="0" id="xdx_88E_eus-gaap--ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_z7eBeIkAdTe2" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Income Taxes Table (Details)"> <tr style="vertical-align: bottom"> <td> </td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49E_20190601__20200531_zwjAkMNccx0e" style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: center">2020</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49F_20180601__20190531_zbKV8lrTwcs9" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">2019</td></tr> <tr id="xdx_407_eus-gaap--IncomeTaxExpenseBenefitContinuingOperationsAbstract_iB_zYnAPiIEcvk2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Current tax provision:</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--CurrentFederalTaxExpenseBenefit_maCITEBzGVz_zM3TOHAa873f" style="vertical-align: bottom; background-color: White"> <td style="width: 56%; font-size: 10pt; padding-left: 9pt">Federal</td><td style="width: 8%; font-size: 10pt; color: navy; font-weight: bold"> </td> <td style="width: 1%; font-size: 10pt; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; font-size: 10pt; color: navy; font-weight: bold; text-align: right">375,000</td><td style="width: 1%; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; font-size: 10pt; color: windowtext"> </td> <td style="width: 1%; font-size: 10pt; color: windowtext; text-align: left">$</td><td style="width: 12%; font-size: 10pt; color: windowtext; text-align: right">521,000</td><td style="width: 1%; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--CurrentStateAndLocalTaxExpenseBenefit_d0_maCITEBzGVz_zYoeCKvtcpF7" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 9pt">State</td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">—  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">—  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--CurrentIncomeTaxExpenseBenefit_iT_mtCITEBzGVz_maITEBz8DS_zEH4i2a9rfx7" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><b style="display: none">Total current tax provision</b></td><td style="font-size: 10pt; color: navy; font-weight: bold"> </td> <td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: right">375,000</td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: windowtext"> </td> <td style="font-size: 10pt; color: windowtext; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; text-align: right">521,000</td><td style="font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_404_eus-gaap--DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_iB_zJDkRDKk7lye" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Deferred tax provision:</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--DeferredFederalIncomeTaxExpenseBenefit_maDITEBzCap_zeW8OqkwV5J" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-left: 9pt">Federal</td><td style="font-size: 10pt; color: navy; font-weight: bold"> </td> <td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: right">11,000</td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left"/><td style="font-size: 10pt; color: windowtext"> </td> <td style="font-size: 10pt; color: windowtext; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; text-align: right">(6,000</td><td style="font-size: 10pt; color: windowtext; text-align: left">)</td></tr> <tr id="xdx_400_eus-gaap--DeferredStateAndLocalIncomeTaxExpenseBenefit_d0_maDITEBzCap_zj6pPlJsFr3d" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 9pt">State</td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">—  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">—  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"/></tr> <tr id="xdx_40C_eus-gaap--IncomeTaxCreditsAndAdjustments_iT_mtDITEBzCap_maITEBz8DS_zIBX32uylrEe" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><b style="display: none">Total deferred tax provision</b></td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">11,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"/><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: right">(6,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left">)</td></tr> <tr id="xdx_407_eus-gaap--IncomeTaxExpenseBenefit_iT_mtITEBz8DS_zgYHXpwzpunb" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><b style="display: none">Total tax provision</b></td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">386,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: right">515,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">A reconciliation of provision for income taxes at the statutory rate to income tax provision at the Company's effective rate is as follows:</p> <table cellpadding="0" cellspacing="0" id="xdx_882_eus-gaap--ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_zPtlhtpV6eVf" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Reconciliation of income tax statutory rate to effective rate (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_498_20190601__20200531_z4k1bKZxH0za" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49A_20180601__20190531_zrBOuPPKYOIg" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_401_eus-gaap--IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_maITEBzC5U_zq1xOua9REC7" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: left">Computed tax provision at the expected statutory rate</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">717,400</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">642,500</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--IncomeTaxReconciliationStateAndLocalIncomeTaxes_maITEBzC5U_zGvdoPddzHad" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">State income tax - net of Federal tax benefit</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">500</td><td style="color: navy; font-weight: bold; text-align: left"/><td> </td> <td style="text-align: left"> </td><td style="text-align: right">500</td><td style="text-align: left"/></tr> <tr id="xdx_402_eus-gaap--EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract_iB_zp6q0Vow9KD6" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Tax effect of permanent differences:</td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--IncomeTaxReconciliationTaxCreditsResearch_iN_di_msITEBzC5U_zf35bK2Yezif" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 9pt">Research tax credits</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">(272,000</td><td style="color: navy; font-weight: bold; text-align: left">)</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">(166,000</td><td style="text-align: left">)</td></tr> <tr id="xdx_406_eus-gaap--IncomeTaxReconciliationChangeInEnactedTaxRate_d0_maITEBzC5U_z2OIipYk5kF3" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 9pt">Foreign-derived intangible income deduction</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: right">(99,739</td><td style="color: navy; font-weight: bold; text-align: left">)</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">-</td><td style="text-align: left"> </td></tr> <tr id="xdx_409_eus-gaap--IncomeTaxReconciliationNondeductibleExpense_maITEBzC5U_z4ibg4ZtJFka" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 9pt">Other permanent differences</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">40,200</td><td style="color: navy; font-weight: bold; text-align: left"/><td> </td> <td style="text-align: left"> </td><td style="text-align: right">28,700</td><td style="text-align: left"/></tr> <tr id="xdx_40C_eus-gaap--IncomeTaxReconciliationNondeductibleExpenseOther_maITEBzC5U_zNnPejPafH11" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">Other</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">(361</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left">)</td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">9,300</td><td style="padding-bottom: 1pt; text-align: left"/></tr> <tr id="xdx_404_eus-gaap--IncomeTaxExpenseBenefit_iT_mtITEBzC5U_zboX3JkWajwf" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Total tax provision</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">386,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">515,000</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--EffectiveIncomeTaxRateContinuingOperations_dp_zxjbF2ug1jC4" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Effective income tax rate</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">11.3</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">16.8</td><td style="text-align: left">%</td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Significant components of the Company's deferred tax assets and liabilities consist of the following:</p> <p style="font: 11pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; margin-left: auto; border-collapse: collapse; width: 90%; margin-right: auto"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Deferred tax assets:</td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="width: 56%; text-align: left; padding-left: 4.5pt">Allowance for doubtful receivables</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">44,000</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">23,000</td><td style="width: 1%; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 4.5pt">Tax inventory adjustment</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">94,000</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">99,700</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 4.5pt">Allowance for obsolete inventory</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">357,100</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">328,900</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 4.5pt">Accrued vacation</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">60,500</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">50,200</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 4.5pt">Accrued commissions</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">3,900</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">19,800</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 4.5pt">Warranty reserve</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">39,400</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">30,300</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 4.5pt">Stock options issued for services</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">230,200</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">208,600</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left"><b style="display: none">Total deferred tax assets</b></td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">829,500</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">760,500</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Deferred tax liabilities:</td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 4.5pt">Excess tax depreciation</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">659,385</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">571,385</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 27pt">Net deferred tax assets</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">170,115</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">189,115</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Realization of the deferred tax assets is dependent on generating sufficient taxable income at the time temporary differences become deductible. The Company provides a valuation allowance to the extent that deferred tax assets may not be realized. A valuation allowance has not been recorded against the deferred tax assets since management believes it is more likely than not that the deferred tax assets are recoverable. The Company considers future taxable income and potential tax planning strategies in assessing the need for a potential valuation allowance. The amount of the deferred tax assets considered realizable however, could be reduced in the near term if estimates of future taxable income are reduced. The Company will need to generate approximately $4.0 million in taxable income in future years in order to realize the deferred tax assets recorded as of May 31, 2020 of <span id="xdx_90C_eus-gaap--DeferredTaxAssetsGross_iI_c20200531_zk1jR5y9648">$829,500</span>.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company and its subsidiary file consolidated Federal and State income tax returns. As of May 31, 2020, the Company had State investment tax credit carryforwards of approximately <span id="xdx_90B_eus-gaap--DeferredTaxAssetsTaxCreditCarryforwards_iI_c20200531_zblqM7oSQ0xh">$369,000</span> expiring through <span id="xdx_90A_eus-gaap--TaxCreditCarryforwardExpirationDate_dd_c20200601__20260531_zH4Q9SncNed8">May 31, 2026</span>.</p> <table cellpadding="0" cellspacing="0" id="xdx_88E_eus-gaap--ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_z7eBeIkAdTe2" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Income Taxes Table (Details)"> <tr style="vertical-align: bottom"> <td> </td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49E_20190601__20200531_zwjAkMNccx0e" style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: center">2020</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49F_20180601__20190531_zbKV8lrTwcs9" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">2019</td></tr> <tr id="xdx_407_eus-gaap--IncomeTaxExpenseBenefitContinuingOperationsAbstract_iB_zYnAPiIEcvk2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Current tax provision:</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--CurrentFederalTaxExpenseBenefit_maCITEBzGVz_zM3TOHAa873f" style="vertical-align: bottom; background-color: White"> <td style="width: 56%; font-size: 10pt; padding-left: 9pt">Federal</td><td style="width: 8%; font-size: 10pt; color: navy; font-weight: bold"> </td> <td style="width: 1%; font-size: 10pt; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; font-size: 10pt; color: navy; font-weight: bold; text-align: right">375,000</td><td style="width: 1%; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; font-size: 10pt; color: windowtext"> </td> <td style="width: 1%; font-size: 10pt; color: windowtext; text-align: left">$</td><td style="width: 12%; font-size: 10pt; color: windowtext; text-align: right">521,000</td><td style="width: 1%; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--CurrentStateAndLocalTaxExpenseBenefit_d0_maCITEBzGVz_zYoeCKvtcpF7" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 9pt">State</td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">—  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">—  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--CurrentIncomeTaxExpenseBenefit_iT_mtCITEBzGVz_maITEBz8DS_zEH4i2a9rfx7" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left"><b style="display: none">Total current tax provision</b></td><td style="font-size: 10pt; color: navy; font-weight: bold"> </td> <td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: right">375,000</td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: windowtext"> </td> <td style="font-size: 10pt; color: windowtext; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; text-align: right">521,000</td><td style="font-size: 10pt; color: windowtext; text-align: left"> </td></tr> <tr id="xdx_404_eus-gaap--DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_iB_zJDkRDKk7lye" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left">Deferred tax provision:</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40E_eus-gaap--DeferredFederalIncomeTaxExpenseBenefit_maDITEBzCap_zeW8OqkwV5J" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; padding-left: 9pt">Federal</td><td style="font-size: 10pt; color: navy; font-weight: bold"> </td> <td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: right">11,000</td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: left"/><td style="font-size: 10pt; color: windowtext"> </td> <td style="font-size: 10pt; color: windowtext; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; text-align: right">(6,000</td><td style="font-size: 10pt; color: windowtext; text-align: left">)</td></tr> <tr id="xdx_400_eus-gaap--DeferredStateAndLocalIncomeTaxExpenseBenefit_d0_maDITEBzCap_zj6pPlJsFr3d" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; padding-bottom: 1pt; padding-left: 9pt">State</td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">—  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">—  </td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"/></tr> <tr id="xdx_40C_eus-gaap--IncomeTaxCreditsAndAdjustments_iT_mtDITEBzCap_maITEBz8DS_zIBX32uylrEe" style="vertical-align: bottom; background-color: White"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><b style="display: none">Total deferred tax provision</b></td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">11,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"/><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left"> </td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: right">(6,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left">)</td></tr> <tr id="xdx_407_eus-gaap--IncomeTaxExpenseBenefit_iT_mtITEBz8DS_zgYHXpwzpunb" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: left; padding-bottom: 1pt"><b style="display: none">Total tax provision</b></td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">386,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: windowtext; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: windowtext; text-align: right">515,000</td><td style="padding-bottom: 1pt; font-size: 10pt; color: windowtext; text-align: left"> </td></tr> </table> 375000 521000 0 0 375000 521000 11000 -6000 0 0 11000 -6000 386000 515000 <table cellpadding="0" cellspacing="0" id="xdx_882_eus-gaap--ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_zPtlhtpV6eVf" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Reconciliation of income tax statutory rate to effective rate (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_498_20190601__20200531_z4k1bKZxH0za" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49A_20180601__20190531_zrBOuPPKYOIg" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_401_eus-gaap--IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate_maITEBzC5U_zq1xOua9REC7" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: left">Computed tax provision at the expected statutory rate</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left">$</td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">717,400</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left">$</td><td style="width: 12%; text-align: right">642,500</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_401_eus-gaap--IncomeTaxReconciliationStateAndLocalIncomeTaxes_maITEBzC5U_zGvdoPddzHad" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">State income tax - net of Federal tax benefit</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">500</td><td style="color: navy; font-weight: bold; text-align: left"/><td> </td> <td style="text-align: left"> </td><td style="text-align: right">500</td><td style="text-align: left"/></tr> <tr id="xdx_402_eus-gaap--EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract_iB_zp6q0Vow9KD6" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Tax effect of permanent differences:</td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr id="xdx_40D_eus-gaap--IncomeTaxReconciliationTaxCreditsResearch_iN_di_msITEBzC5U_zf35bK2Yezif" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 9pt">Research tax credits</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">(272,000</td><td style="color: navy; font-weight: bold; text-align: left">)</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">(166,000</td><td style="text-align: left">)</td></tr> <tr id="xdx_406_eus-gaap--IncomeTaxReconciliationChangeInEnactedTaxRate_d0_maITEBzC5U_z2OIipYk5kF3" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-left: 9pt">Foreign-derived intangible income deduction</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; text-align: right">(99,739</td><td style="color: navy; font-weight: bold; text-align: left">)</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">-</td><td style="text-align: left"> </td></tr> <tr id="xdx_409_eus-gaap--IncomeTaxReconciliationNondeductibleExpense_maITEBzC5U_z4ibg4ZtJFka" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-left: 9pt">Other permanent differences</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">40,200</td><td style="color: navy; font-weight: bold; text-align: left"/><td> </td> <td style="text-align: left"> </td><td style="text-align: right">28,700</td><td style="text-align: left"/></tr> <tr id="xdx_40C_eus-gaap--IncomeTaxReconciliationNondeductibleExpenseOther_maITEBzC5U_zNnPejPafH11" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="padding-bottom: 1pt">Other</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">(361</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left">)</td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">9,300</td><td style="padding-bottom: 1pt; text-align: left"/></tr> <tr id="xdx_404_eus-gaap--IncomeTaxExpenseBenefit_iT_mtITEBzC5U_zboX3JkWajwf" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt"><b style="display: none">Total tax provision</b></td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">386,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">515,000</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--EffectiveIncomeTaxRateContinuingOperations_dp_zxjbF2ug1jC4" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Effective income tax rate</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">11.3</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">16.8</td><td style="text-align: left">%</td></tr> </table> 717400 642500 500 500 272000 166000 -99739 -0 40200 28700 -361 9300 386000 515000 0.113 0.168 829500 369000 2026-05-31 <p id="xdx_803_eus-gaap--EarningsPerShareTextBlock_zpEtCccOm2g5" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0"><b>11.       Earnings Per Common Share: </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Basic earnings per common share is computed by dividing income available to common stockholders by the weighted-average common shares outstanding for the period. Diluted earnings per common share reflects the weighted-average common shares outstanding and dilutive potential common shares, such as stock options.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">A reconciliation of weighted-average common shares outstanding to weighted-average common shares outstanding assuming dilution is as follows:</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_88F_eus-gaap--ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_zn2xkokHU7Nd" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Earnings per common share table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_492_20190601__20200531_zEpGcprD8Eya" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49F_20180601__20190531_zKpUTXzRhpu8" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_40F_eus-gaap--WeightedAverageNumberOfSharesOutstandingBasic_maNote11EPScalc_zC5xvpBDZhrh" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; padding-left: 6.2pt">Average common shares outstanding</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">3,481,12</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left"> </td><td style="width: 12%; text-align: right">3,470,595</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_maNote11EPScalc_zDRtzcgvcgMi" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 6.2pt">Common shares issuable under stock option plans</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">8,663</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">17,043</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_405_eus-gaap--WeightedAverageNumberOfDilutedSharesOutstanding_iT_mtNote11EPScalc_z3NCNZlHLro" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 6.2pt">Average common shares outstanding assuming dilution</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">3,489,791</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">3,487,638</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <table cellpadding="0" cellspacing="0" id="xdx_88F_eus-gaap--ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock_zn2xkokHU7Nd" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Earnings per common share table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_492_20190601__20200531_zEpGcprD8Eya" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49F_20180601__20190531_zKpUTXzRhpu8" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_40F_eus-gaap--WeightedAverageNumberOfSharesOutstandingBasic_maNote11EPScalc_zC5xvpBDZhrh" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; padding-left: 6.2pt">Average common shares outstanding</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">3,481,12</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left"> </td><td style="width: 12%; text-align: right">3,470,595</td><td style="width: 1%; text-align: left"> </td></tr> <tr id="xdx_40C_eus-gaap--IncrementalCommonSharesAttributableToShareBasedPaymentArrangements_maNote11EPScalc_zDRtzcgvcgMi" style="vertical-align: bottom; background-color: White"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 6.2pt">Common shares issuable under stock option plans</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">8,663</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">17,043</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr id="xdx_405_eus-gaap--WeightedAverageNumberOfDilutedSharesOutstanding_iT_mtNote11EPScalc_z3NCNZlHLro" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left; padding-bottom: 1pt; padding-left: 6.2pt">Average common shares outstanding assuming dilution</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">3,489,791</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">3,487,638</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 3481.12 3470595 8663 17043 3489791 3487638 <p id="xdx_806_eus-gaap--RelatedPartyTransactionsDisclosureTextBlock_z6myVNwPYSxg" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>12. Related Party Transactions:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company had no related party transactions for the years ended May 31, 2020 and 2019.</p> <p id="xdx_80F_eus-gaap--ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock_zKt44s1MJdx6" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>13. Employee Stock Purchase Plan:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">In March 2004, the Company reserved 295,000 shares of common stock for issuance pursuant to a non-qualified employee stock purchase plan. Participation in the employee stock purchase plan is voluntary for all eligible employees of the Company. Purchase of common shares can be made by employee contributions through payroll deductions. At the end of each calendar quarter, the employee contributions will be applied to the purchase of common shares using a share value equal to the mean between the closing bid and ask prices of the stock on that date. These shares are distributed to the employees at the end of each calendar quarter or upon withdrawal from the plan. During the years ended May 31, 2020 and 2019, <span id="xdx_907_eus-gaap--StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_c20190601__20200531_zLCaG8SWZXlc" title="Common shares issued from employee stock purchase plan">1,374</span> ($8.63 to $11.00 price per share) and <span id="xdx_900_eus-gaap--StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans_c20180601__20190531_zO4FpSx6mnw9">1,542</span> ($10.235 to $12.28 price per share) common shares, respectively, were issued to employees. As of May 31, 2020, 220,253 shares were reserved for further issue.</p> 1374 1542 <p id="xdx_80D_eus-gaap--DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_zBRDwECWc1Kf" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>14. Stock Option Plans:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">In 2018, the Company adopted a stock option plan which permits the Company to grant both incentive stock options and non-qualified stock options. The incentive stock options qualify for preferential treatment under the Internal Revenue Code. Under this plan, <span id="xdx_908_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_iI_c20200531_zLBWufDd0U8k" title="Common shares reserved for stock options">160,000</span> shares of common stock have been reserved for grant to key employees and directors of the Company and 28,750 shares have been granted as of May 31, 2020. Under the plan, the option price may not be less than the fair market value of the stock at the time the options are granted. Options vest immediately and expire ten years from the date of grant.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Using the Black-Scholes option pricing model, the weighted average estimated fair value of each option granted under the plan was $<span id="xdx_907_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20190601__20200531_zuDjQNozMI2i">2.85</span> during 2020 and $<span id="xdx_900_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_c20180601__20190531_zlAegpFhJfF">3.20</span> during 2019. The pricing model uses the assumptions noted in the following table. Expected volatility is based on the historical volatility of the Company's stock. The risk-free interest rate for periods within the contractual life of the option is based on the U.S. Treasury yield curve in effect at the time of the grant. The expected life of options granted is derived from previous history of stock exercises from the grant date and represents the period of time that options granted are expected to be outstanding. The Company uses historical data to estimate option exercise and employee termination assumptions under the valuation model. The Company has never paid dividends on its common stock and does not anticipate doing so in the foreseeable future.</p> <table cellpadding="0" cellspacing="0" id="xdx_881_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock_zflSlUhvWHTc" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Stock option plans table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49E_20190601__20200531_zDYV4xJ4i3K2" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49A_20180601__20190531_zAyGggcrjfy4" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_403_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_dp_zEJdGSsvIh8i" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: left">Risk-free interest rate</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">1.98</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left">%</td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left"> </td><td style="width: 12%; text-align: right">2.48</td><td style="width: 1%; text-align: left">%</td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Expected life in years</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_986_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_dtY_c20190601__20200531_ztz9eh9MbhVe" style="color: navy; font-weight: bold; text-align: right">3.9</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_989_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_dtY_c20180601__20190531_zrHdiVkeFWx9" style="text-align: right">3.8</td><td style="text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_dp_zmR0ASG0YL5i" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Expected volatility</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">32</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">31</td><td style="text-align: left">%</td></tr> <tr id="xdx_409_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_dp_zyPyLoPY6Yyc" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Expected dividend yield</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">0</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">0</td><td style="text-align: left">%</td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0">The following is a summary of stock option activity:</p> <table cellpadding="0" cellspacing="0" id="xdx_889_eus-gaap--ScheduleOfStockOptionsRollForwardTableTextBlock_zz627bsm1CP3" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Stock options roll foward (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Shares</td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Exercise Price</td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Intrinsic Value</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 46%; text-align: justify">Outstanding - May 31, 2018</td><td style="width: 5%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20180531_zn4Mobz7OCNa" style="width: 11%; color: navy; font-weight: bold; text-align: right" title="Stock options outstanding">271,750</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20180531_zAFhi4yaqUz8" style="width: 11%; text-align: right">11.33</td><td style="width: 1%; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_c20180531_zqzfoWU8OAd8" style="width: 11%; text-align: right" title="Intrinsic value of options outstanding">304,252</td><td style="width: 1%; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify">     Options granted</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_c20180601__20190531_zIFUxJThjvsc" style="color: navy; font-weight: bold; text-align: right" title="Options granted">43,000</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20180601__20190531_zVkVj7j9R9xg" style="text-align: right" title="Weighted average exercise price of options granted">11.90</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt">     Less: options exercised</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_988_eus-gaap--StockIssuedDuringPeriodSharesStockOptionsExercised_c20180601__20190531_z4xEs6ykvfJ5" style="color: navy; font-weight: bold; text-align: right" title="Stock options exercised">10,750</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="text-align: left">$</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_c20180601__20190531_ztUuJTBBK9xi" style="text-align: right" title="Weighted average exercise price of options exercised">3.05</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="font-size: 12pt; padding-bottom: 1pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="padding-bottom: 1pt; font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">     Less: options expired</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20180601__20190531_zVOTgMOIzDn2" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right" title="Stock options expired">80,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="text-align: left">$</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20180601__20190531_zIcHuogIxqL6" style="text-align: right" title="Weighted average exercise price of options expired">11.68</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="font-size: 12pt; padding-bottom: 1pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="padding-bottom: 1pt; font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify">Outstanding - May 31, 2019</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20190531_zz73RjXzKto8" style="color: navy; font-weight: bold; text-align: right">224,000</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_982_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20190531_zOfyhG1oM9j2" style="text-align: right">11.71</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_c20190531_z86Hr5wfeWPc" style="text-align: right">228,132</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify">     Options granted</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_c20190601__20200531_zuJCNf37Cdie" style="color: navy; font-weight: bold; text-align: right">50,250</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20190601__20200531_zoSFEnzVP98" style="text-align: right">10.30</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify">     Less: options exercised</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_980_eus-gaap--StockIssuedDuringPeriodSharesStockOptionsExercised_c20190601__20200531_zj4xhVmYZy2b" style="color: navy; font-weight: bold; text-align: right" title="Stock options exercised">10,000</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_c20190601__20200531_zQZabdqzO6Q" style="text-align: right">6.35</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">     Less: options expired</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_987_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20190601__20200531_zSSZrJTU4nZe" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right" title="Stock options expired">12,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="text-align: left">$</td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20190601__20200531_zl7v9AEEsIf3" style="text-align: right" title="Weighted average exercise price of options expired">14.34</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="font-size: 12pt; padding-bottom: 1pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="padding-bottom: 1pt; font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt">Outstanding - May 31, 2020</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98C_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20200531_zW41NRaAJAF7" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">252,250</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20200531_z8ciNBA1slQh" style="border-bottom: Black 1pt solid; text-align: right">11.52</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_987_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_c20200531_zICK2yCHXh84" style="border-bottom: Black 1pt solid; text-align: right">209,835</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">We calculated intrinsic value for those options that had an exercise price lower than the market price of our common shares as of the balance sheet dates. The aggregate intrinsic value of outstanding options as of the end of each fiscal year is calculated as the difference between the exercise price of the underlying options and the market price of our common shares for the options that were in-the-money at that date (98,000 at May 31, 2020 and 77,250 at May 31, 2019.) The Company's closing stock price was <span id="xdx_903_eus-gaap--SharePrice_iI_c20200531_zNjvgOSEWMYh" title="Price per share of common">$10.99</span> and <span id="xdx_909_eus-gaap--SharePrice_iI_c20190531_zNeaNBsRMUyl">$11.08</span> as of May 31, 2020 and 2019. As of May 31, 2020, there are <span id="xdx_903_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_iI_c20200531_zHgZ7mUNRFZf" title="Shares available">131,250</span> options available for future grants under the 2018 stock option plan. <span id="xdx_905_eus-gaap--ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans_c20190601__20200531_zcxhufjGKSKf" title="Proceeds exercise of options">$31,750</span> and <span id="xdx_905_eus-gaap--ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans_c20180601__20190531_zhWrDf3zTbYj">$32,830</span> was received from the exercise of share options during the fiscal years ended May 31, 2020 and 2019.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"/> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The following table summarizes information about stock options outstanding at May 31, 2020:</p> <p style="font: 6pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_89B_eus-gaap--ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_zq55t9kB3UQk" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Stock option plans - Stock options outstanding and exercisable (Details)"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="color: navy; font-weight: bold; text-align: center; padding-bottom: 1pt; width: 46%">Outstanding and Exercisable</td><td style="padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; text-align: left; width: 1%"> </td><td style="border-bottom: Black 1pt solid; text-align: right; width: 11%"> </td><td style="padding-bottom: 1pt; text-align: left; width: 1%"> </td><td style="padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; text-align: left; width: 1%"> </td><td style="border-bottom: Black 1pt solid; text-align: right; width: 11%"> </td><td style="padding-bottom: 1pt; text-align: left; width: 1%"> </td><td style="padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; text-align: left; width: 1%"> </td><td style="border-bottom: Black 1pt solid; text-align: right; width: 11%"> </td><td style="padding-bottom: 1pt; text-align: left; width: 1%"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 9pt; text-align: center">Range of Exercise Prices</td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Number of Options</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Remaining Years of Contractual Life</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Exercise Price</span></td><td style="font-size: 9pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_901_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zUVKHHTfH9jh" title="Range of exercise prices, Minimum">5.01</span>-$<span id="xdx_906_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zkEqN3xUJYX2" title="Range of exercise prices, Maximum">6.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zULHGCe9LeM2" style="text-align: right">10,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_981_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zKikXvO9Yaih" style="text-align: right">0.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_988_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zs7cEcoS1G01" style="text-align: right">5.69</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_906_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zKCruvSdTotj" title="Range of exercise prices, Minimum">7.01</span>-$<span id="xdx_90D_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zp6yyzN44wVf" title="Range of exercise prices, Maximum">8.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_980_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zCfYP282HLyg" style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_987_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zqVsGlqjRVs5" style="text-align: right">2.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_984_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zfCe2vfcLha6" style="text-align: right">7.74</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_90B_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zseNEI0nlCna" title="Range of exercise prices, Minimum">8.01</span>-$<span id="xdx_908_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zqoLYEpdLIT2" title="Range of exercise prices, Maximum">9.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_981_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zGmFSzTOQbD8" style="text-align: right">27,250</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98B_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_ztzR7tifQIQ1" style="text-align: right">3.6</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98C_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zzCAenvmocVd" style="text-align: right">8.69</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_908_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_ztuxtyYiZW2c" title="Range of exercise prices, Minimum">9.01</span>-$<span id="xdx_903_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zRdW6fX9P7V1" title="Range of exercise prices, Maximum">10.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_985_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_z2zLjqEe7rk" style="text-align: right">30,750</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_985_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_z7sWsAoQFAJl" style="text-align: right">9.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_981_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zyHR57cfcq02" style="text-align: right">9.85</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_909_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zckywy1kQ54e" title="Range of exercise prices, Minimum">10.01</span>-$<span id="xdx_907_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_z42ruunyx3xe" title="Range of exercise prices, Maximum">11.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_987_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zMn0MUW1P593" style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_987_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_z9SIoLgS25ti" style="text-align: right">7.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98B_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_znwEMr0xlgzd" style="text-align: right">10.30</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_90C_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zyoQjNA1wjd" title="Range of exercise prices, Minimum">11.01</span>-$<span id="xdx_902_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zUL2zK8tjQVl" title="Range of exercise prices, Maximum">12.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_981_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zDiTnWMYD6Ai" style="text-align: right">68,750</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98E_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zVxk7I5lzAJj" style="text-align: right">7.8</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_988_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_z60Qh8LWaEm8" style="text-align: right">11.57</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_909_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_z5tyU9hrWVT2" title="Range of exercise prices, Minimum">12.01</span>-$<span id="xdx_906_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_znnvQiktgBQ5" title="Range of exercise prices, Maximum">13.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_983_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zKsB30mpaMPd" style="text-align: right">40,500</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98F_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_z33PN8GthdSg" style="text-align: right">5.8</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98D_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zgYinPCMFRUc" style="text-align: right">12.38</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_900_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zFWxucrg9aC3" title="Range of exercise prices, Minimum">13.01</span>-$<span id="xdx_90F_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zg1KQrX48L2d" title="Range of exercise prices, Maximum">14.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_98E_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zAVjqwdghyT1" style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zvUotWKvown1" style="text-align: right">6.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_989_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zuCsbtzlmXw4" style="text-align: right">13.80</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_903_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zQ12fNiY6Crl" title="Range of exercise prices, Minimum">16.01</span>-$<span id="xdx_90A_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zTepNHwXvE97" title="Range of exercise prices, Maximum">17.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_98E_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zLpt8dmyonH5" style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_987_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_z6qQKgymqPQ5" style="text-align: right">5.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_988_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zzNKTlXy6HVb" style="text-align: right">16.40</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center; padding-bottom: 1pt">$<span id="xdx_901_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember_zmhPKgYTzTnd" title="Range of exercise prices, Minimum">19.01</span>-$<span id="xdx_905_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember_z3WJBJXB5333" title="Range of exercise prices, Maximum">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_986_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember_zJyiwh9EAyI9" style="border-bottom: Black 1pt solid; text-align: right">15,000</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_98D_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember_zrAGpaQds8X4" style="border-bottom: Black 1pt solid; text-align: right">6.2</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_982_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember_z2UmhuknIFv3" style="border-bottom: Black 1pt solid; text-align: right">19.26</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center; padding-bottom: 1pt">$<span id="xdx_900_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531_zFNEfbfZpAO1" title="Range of exercise prices, Minimum"><span title="Range of exercise prices, Minimum">5.00</span></span>-$<span id="xdx_907_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531_zK7QDjl5wKSf" title="Range of exercise prices, Maximum">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20200531_z7OaEihkogQi" style="border-bottom: Black 1pt solid; text-align: right">252,250</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_98F_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531_zqgeXD74d0i9" style="border-bottom: Black 1pt solid; text-align: right">6.5</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20200531_z7073e3oYXBf" style="border-bottom: Black 1pt solid; text-align: right">11.52</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The following table summarizes information about stock options outstanding at May 31, 2019:</p> <table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Stock option plans - Stock options outstanding and exercisable (Details)"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="color: navy; font-weight: bold; text-align: center; padding-bottom: 1pt; width: 46%">Outstanding and Exercisable</td><td style="padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; text-align: left; width: 1%"> </td><td style="border-bottom: Black 1pt solid; text-align: right; width: 11%"> </td><td style="padding-bottom: 1pt; text-align: left; width: 1%"> </td><td style="padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; text-align: left; width: 1%"> </td><td style="border-bottom: Black 1pt solid; text-align: right; width: 11%"> </td><td style="padding-bottom: 1pt; text-align: left; width: 1%"> </td><td style="padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; text-align: left; width: 1%"> </td><td style="border-bottom: Black 1pt solid; text-align: right; width: 11%"> </td><td style="padding-bottom: 1pt; text-align: left; width: 1%"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 9pt; text-align: center">Range of Exercise Prices</td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Number of Options</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Remaining Years of Contractual Life</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Exercise Price</span></td><td style="font-size: 9pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">5.01</span>-$<span title="Range of exercise prices, Maximum">6.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">10,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">1.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">5.69</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">6.01</span>-$<span title="Range of exercise prices, Maximum">7.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">10,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">0.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">6.35</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">7.01</span>-$<span title="Range of exercise prices, Maximum">8.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">3.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">7.74</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum"><span>8.01</span></span>-$<span title="Range of exercise prices, Maximum"><span>9.00</span></span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">27,250</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">4.6</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">8.69</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">10.01</span>-$<span title="Range of exercise prices, Maximum">11.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">8.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">10.30</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">11.01</span>-$<span title="Range of exercise prices, Maximum">12.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">53,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">8.4</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">11.79</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">12.01</span>-$<span title="Range of exercise prices, Maximum">13.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">45,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">6.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">12.38</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">13.01</span>-$<span title="Range of exercise prices, Maximum">14.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">7.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">13.80</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">16.01</span>-$<span title="Range of exercise prices, Maximum">17.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">6.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">16.40</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center; padding-bottom: 1pt">$<span title="Range of exercise prices, Minimum">19.01</span>-$<span title="Range of exercise prices, Maximum">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">18,750</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">7.2</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">19.26</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center; padding-bottom: 1pt">$<span title="Range of exercise prices, Minimum"><span title="Range of exercise prices, Minimum">5.00</span></span>-$<span title="Range of exercise prices, Maximum">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">224,000</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">6.5</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">11.71</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="margin-top: 0; margin-bottom: 0"> </p> 160000 2.85 3.20 <table cellpadding="0" cellspacing="0" id="xdx_881_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock_zflSlUhvWHTc" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Stock option plans table (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt"> </td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49E_20190601__20200531_zDYV4xJ4i3K2" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: center">2020</td><td style="padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_49A_20180601__20190531_zAyGggcrjfy4" style="border-bottom: Black 1pt solid; text-align: center">2019</td></tr> <tr id="xdx_403_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_dp_zEJdGSsvIh8i" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; text-align: left">Risk-free interest rate</td><td style="width: 8%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 12%; color: navy; font-weight: bold; text-align: right">1.98</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left">%</td><td style="width: 8%"> </td> <td style="width: 1%; text-align: left"> </td><td style="width: 12%; text-align: right">2.48</td><td style="width: 1%; text-align: left">%</td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Expected life in years</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_986_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_dtY_c20190601__20200531_ztz9eh9MbhVe" style="color: navy; font-weight: bold; text-align: right">3.9</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_989_eus-gaap--SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_dtY_c20180601__20190531_zrHdiVkeFWx9" style="text-align: right">3.8</td><td style="text-align: left"> </td></tr> <tr id="xdx_40A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_dp_zmR0ASG0YL5i" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: left">Expected volatility</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">32</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">31</td><td style="text-align: left">%</td></tr> <tr id="xdx_409_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_dp_zyPyLoPY6Yyc" style="vertical-align: bottom; background-color: White"> <td style="text-align: left">Expected dividend yield</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td style="color: navy; font-weight: bold; text-align: right">0</td><td style="color: navy; font-weight: bold; text-align: left">%</td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">0</td><td style="text-align: left">%</td></tr> </table> 0.0198 0.0248 P3Y10M24D P3Y9M18D 0.32 0.31 0 0 <table cellpadding="0" cellspacing="0" id="xdx_889_eus-gaap--ScheduleOfStockOptionsRollForwardTableTextBlock_zz627bsm1CP3" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Stock options roll foward (Details)"> <tr style="vertical-align: bottom"> <td style="font-size: 12pt; text-align: justify"> </td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Shares</td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Weighted Average Exercise Price</td><td style="font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" style="border-bottom: Black 1pt solid; font-weight: bold; text-align: center">Intrinsic Value</td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 46%; text-align: justify">Outstanding - May 31, 2018</td><td style="width: 5%; color: navy; font-weight: bold"> </td> <td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20180531_zn4Mobz7OCNa" style="width: 11%; color: navy; font-weight: bold; text-align: right" title="Stock options outstanding">271,750</td><td style="width: 1%; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20180531_zAFhi4yaqUz8" style="width: 11%; text-align: right">11.33</td><td style="width: 1%; text-align: left"> </td><td style="width: 5%"> </td> <td style="width: 1%; text-align: left">$</td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_c20180531_zqzfoWU8OAd8" style="width: 11%; text-align: right" title="Intrinsic value of options outstanding">304,252</td><td style="width: 1%; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify">     Options granted</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_c20180601__20190531_zIFUxJThjvsc" style="color: navy; font-weight: bold; text-align: right" title="Options granted">43,000</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20180601__20190531_zVkVj7j9R9xg" style="text-align: right" title="Weighted average exercise price of options granted">11.90</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt">     Less: options exercised</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_988_eus-gaap--StockIssuedDuringPeriodSharesStockOptionsExercised_c20180601__20190531_z4xEs6ykvfJ5" style="color: navy; font-weight: bold; text-align: right" title="Stock options exercised">10,750</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="text-align: left">$</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_c20180601__20190531_ztUuJTBBK9xi" style="text-align: right" title="Weighted average exercise price of options exercised">3.05</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="font-size: 12pt; padding-bottom: 1pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="padding-bottom: 1pt; font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">     Less: options expired</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_985_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20180601__20190531_zVOTgMOIzDn2" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right" title="Stock options expired">80,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="text-align: left">$</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20180601__20190531_zIcHuogIxqL6" style="text-align: right" title="Weighted average exercise price of options expired">11.68</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="font-size: 12pt; padding-bottom: 1pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="padding-bottom: 1pt; font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify">Outstanding - May 31, 2019</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98F_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20190531_zz73RjXzKto8" style="color: navy; font-weight: bold; text-align: right">224,000</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_982_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20190531_zOfyhG1oM9j2" style="text-align: right">11.71</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_c20190531_z86Hr5wfeWPc" style="text-align: right">228,132</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify">     Options granted</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross_c20190601__20200531_zuJCNf37Cdie" style="color: navy; font-weight: bold; text-align: right">50,250</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_984_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_c20190601__20200531_zoSFEnzVP98" style="text-align: right">10.30</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify">     Less: options exercised</td><td style="color: navy; font-weight: bold"> </td> <td style="color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_980_eus-gaap--StockIssuedDuringPeriodSharesStockOptionsExercised_c20190601__20200531_zj4xhVmYZy2b" style="color: navy; font-weight: bold; text-align: right" title="Stock options exercised">10,000</td><td style="color: navy; font-weight: bold; text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_989_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_c20190601__20200531_zQZabdqzO6Q" style="text-align: right">6.35</td><td style="text-align: left"> </td><td style="font-size: 12pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify; padding-bottom: 1pt">     Less: options expired</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_987_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod_c20190601__20200531_zSSZrJTU4nZe" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right" title="Stock options expired">12,000</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="text-align: left">$</td><td id="xdx_980_eus-gaap--ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice_c20190601__20200531_zl7v9AEEsIf3" style="text-align: right" title="Weighted average exercise price of options expired">14.34</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="font-size: 12pt; padding-bottom: 1pt"> </td> <td style="font-size: 12pt; text-align: left"> </td><td style="font-size: 12pt; text-align: right"> </td><td style="padding-bottom: 1pt; font-size: 12pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: justify; padding-bottom: 1pt">Outstanding - May 31, 2020</td><td style="color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: left"> </td><td id="xdx_98C_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20200531_zW41NRaAJAF7" style="border-bottom: Black 1pt solid; color: navy; font-weight: bold; text-align: right">252,250</td><td style="padding-bottom: 1pt; color: navy; font-weight: bold; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_98A_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20200531_z8ciNBA1slQh" style="border-bottom: Black 1pt solid; text-align: right">11.52</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_987_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_iI_c20200531_zICK2yCHXh84" style="border-bottom: Black 1pt solid; text-align: right">209,835</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> 271750 11.33 304252 43000 11.90 10750 3.05 80000 11.68 224000 11.71 228132 50250 10.30 10000 6.35 12000 14.34 252250 11.52 209835 10.99 11.08 131250 31750 32830 <table cellpadding="0" cellspacing="0" id="xdx_89B_eus-gaap--ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock_zq55t9kB3UQk" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Stock option plans - Stock options outstanding and exercisable (Details)"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="color: navy; font-weight: bold; text-align: center; padding-bottom: 1pt; width: 46%">Outstanding and Exercisable</td><td style="padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; text-align: left; width: 1%"> </td><td style="border-bottom: Black 1pt solid; text-align: right; width: 11%"> </td><td style="padding-bottom: 1pt; text-align: left; width: 1%"> </td><td style="padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; text-align: left; width: 1%"> </td><td style="border-bottom: Black 1pt solid; text-align: right; width: 11%"> </td><td style="padding-bottom: 1pt; text-align: left; width: 1%"> </td><td style="padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; text-align: left; width: 1%"> </td><td style="border-bottom: Black 1pt solid; text-align: right; width: 11%"> </td><td style="padding-bottom: 1pt; text-align: left; width: 1%"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 9pt; text-align: center">Range of Exercise Prices</td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Number of Options</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Remaining Years of Contractual Life</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Exercise Price</span></td><td style="font-size: 9pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_901_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zUVKHHTfH9jh" title="Range of exercise prices, Minimum">5.01</span>-$<span id="xdx_906_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zkEqN3xUJYX2" title="Range of exercise prices, Maximum">6.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zULHGCe9LeM2" style="text-align: right">10,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_981_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zKikXvO9Yaih" style="text-align: right">0.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_988_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember_zs7cEcoS1G01" style="text-align: right">5.69</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_906_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zKCruvSdTotj" title="Range of exercise prices, Minimum">7.01</span>-$<span id="xdx_90D_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zp6yyzN44wVf" title="Range of exercise prices, Maximum">8.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_980_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zCfYP282HLyg" style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_987_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zqVsGlqjRVs5" style="text-align: right">2.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_984_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember_zfCe2vfcLha6" style="text-align: right">7.74</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_90B_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zseNEI0nlCna" title="Range of exercise prices, Minimum">8.01</span>-$<span id="xdx_908_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zqoLYEpdLIT2" title="Range of exercise prices, Maximum">9.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_981_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zGmFSzTOQbD8" style="text-align: right">27,250</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98B_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_ztzR7tifQIQ1" style="text-align: right">3.6</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98C_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember_zzCAenvmocVd" style="text-align: right">8.69</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_908_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_ztuxtyYiZW2c" title="Range of exercise prices, Minimum">9.01</span>-$<span id="xdx_903_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zRdW6fX9P7V1" title="Range of exercise prices, Maximum">10.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_985_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_z2zLjqEe7rk" style="text-align: right">30,750</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_985_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_z7sWsAoQFAJl" style="text-align: right">9.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_981_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember_zyHR57cfcq02" style="text-align: right">9.85</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_909_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zckywy1kQ54e" title="Range of exercise prices, Minimum">10.01</span>-$<span id="xdx_907_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_z42ruunyx3xe" title="Range of exercise prices, Maximum">11.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_987_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_zMn0MUW1P593" style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_987_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_z9SIoLgS25ti" style="text-align: right">7.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98B_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember_znwEMr0xlgzd" style="text-align: right">10.30</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_90C_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zyoQjNA1wjd" title="Range of exercise prices, Minimum">11.01</span>-$<span id="xdx_902_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zUL2zK8tjQVl" title="Range of exercise prices, Maximum">12.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_981_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zDiTnWMYD6Ai" style="text-align: right">68,750</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98E_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_zVxk7I5lzAJj" style="text-align: right">7.8</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_988_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember_z60Qh8LWaEm8" style="text-align: right">11.57</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_909_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_z5tyU9hrWVT2" title="Range of exercise prices, Minimum">12.01</span>-$<span id="xdx_906_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_znnvQiktgBQ5" title="Range of exercise prices, Maximum">13.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_983_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zKsB30mpaMPd" style="text-align: right">40,500</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_98F_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_z33PN8GthdSg" style="text-align: right">5.8</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_98D_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember_zgYinPCMFRUc" style="text-align: right">12.38</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span id="xdx_900_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zFWxucrg9aC3" title="Range of exercise prices, Minimum">13.01</span>-$<span id="xdx_90F_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zg1KQrX48L2d" title="Range of exercise prices, Maximum">14.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_98E_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zAVjqwdghyT1" style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_988_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zvUotWKvown1" style="text-align: right">6.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_989_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember_zuCsbtzlmXw4" style="text-align: right">13.80</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span id="xdx_903_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zQ12fNiY6Crl" title="Range of exercise prices, Minimum">16.01</span>-$<span id="xdx_90A_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zTepNHwXvE97" title="Range of exercise prices, Maximum">17.00</span></td><td> </td> <td style="text-align: left"> </td><td id="xdx_98E_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zLpt8dmyonH5" style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td id="xdx_987_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_z6qQKgymqPQ5" style="text-align: right">5.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td id="xdx_988_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember_zzNKTlXy6HVb" style="text-align: right">16.40</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center; padding-bottom: 1pt">$<span id="xdx_901_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember_zmhPKgYTzTnd" title="Range of exercise prices, Minimum">19.01</span>-$<span id="xdx_905_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember_z3WJBJXB5333" title="Range of exercise prices, Maximum">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_986_eus-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember_zJyiwh9EAyI9" style="border-bottom: Black 1pt solid; text-align: right">15,000</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_98D_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember_zrAGpaQds8X4" style="border-bottom: Black 1pt solid; text-align: right">6.2</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_982_eus-gaap--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1_iI_c20200531__us-gaap--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis__custom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember_z2UmhuknIFv3" style="border-bottom: Black 1pt solid; text-align: right">19.26</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center; padding-bottom: 1pt">$<span id="xdx_900_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo_iI_c20200531_zFNEfbfZpAO1" title="Range of exercise prices, Minimum"><span title="Range of exercise prices, Minimum">5.00</span></span>-$<span id="xdx_907_ecustom--ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo_iI_c20200531_zK7QDjl5wKSf" title="Range of exercise prices, Maximum">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_988_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_iI_c20200531_z7OaEihkogQi" style="border-bottom: Black 1pt solid; text-align: right">252,250</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td id="xdx_98F_ecustom--SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo_iI_dtY_c20200531_zqgeXD74d0i9" style="border-bottom: Black 1pt solid; text-align: right">6.5</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td id="xdx_981_eus-gaap--ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_iI_c20200531_z7073e3oYXBf" style="border-bottom: Black 1pt solid; text-align: right">11.52</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The following table summarizes information about stock options outstanding at May 31, 2019:</p> <table cellpadding="0" cellspacing="0" style="font: 10pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Stock option plans - Stock options outstanding and exercisable (Details)"> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="color: navy; font-weight: bold; text-align: center; padding-bottom: 1pt; width: 46%">Outstanding and Exercisable</td><td style="padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; text-align: left; width: 1%"> </td><td style="border-bottom: Black 1pt solid; text-align: right; width: 11%"> </td><td style="padding-bottom: 1pt; text-align: left; width: 1%"> </td><td style="padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; text-align: left; width: 1%"> </td><td style="border-bottom: Black 1pt solid; text-align: right; width: 11%"> </td><td style="padding-bottom: 1pt; text-align: left; width: 1%"> </td><td style="padding-bottom: 1pt; width: 5%"> </td> <td style="border-bottom: Black 1pt solid; text-align: left; width: 1%"> </td><td style="border-bottom: Black 1pt solid; text-align: right; width: 11%"> </td><td style="padding-bottom: 1pt; text-align: left; width: 1%"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="font-size: 9pt; text-align: center">Range of Exercise Prices</td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Number of Options</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Remaining Years of Contractual Life</span></td><td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt"> </td> <td style="font-size: 9pt; text-align: left"> </td><td style="font-size: 9pt; text-align: right"><span style="font-size: 9pt">Weighted Average Exercise Price</span></td><td style="font-size: 9pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">5.01</span>-$<span title="Range of exercise prices, Maximum">6.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">10,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">1.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">5.69</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">6.01</span>-$<span title="Range of exercise prices, Maximum">7.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">10,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">0.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">6.35</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">7.01</span>-$<span title="Range of exercise prices, Maximum">8.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">3.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">7.74</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum"><span>8.01</span></span>-$<span title="Range of exercise prices, Maximum"><span>9.00</span></span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">27,250</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">4.6</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">8.69</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">10.01</span>-$<span title="Range of exercise prices, Maximum">11.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">8.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">10.30</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">11.01</span>-$<span title="Range of exercise prices, Maximum">12.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">53,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">8.4</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">11.79</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">12.01</span>-$<span title="Range of exercise prices, Maximum">13.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">45,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">6.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">12.38</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">13.01</span>-$<span title="Range of exercise prices, Maximum">14.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">7.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">13.80</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center">$<span title="Range of exercise prices, Minimum">16.01</span>-$<span title="Range of exercise prices, Maximum">17.00</span></td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">15,000</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right">6.9</td><td style="text-align: left"> </td><td> </td> <td style="text-align: left">$</td><td style="text-align: right">16.40</td><td style="text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="text-align: center; padding-bottom: 1pt">$<span title="Range of exercise prices, Minimum">19.01</span>-$<span title="Range of exercise prices, Maximum">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">18,750</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">7.2</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">19.26</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: center; padding-bottom: 1pt">$<span title="Range of exercise prices, Minimum"><span title="Range of exercise prices, Minimum">5.00</span></span>-$<span title="Range of exercise prices, Maximum">20.00</span></td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">224,000</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left"> </td><td style="border-bottom: Black 1pt solid; text-align: right">6.5</td><td style="padding-bottom: 1pt; text-align: left"> </td><td style="padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; text-align: left">$</td><td style="border-bottom: Black 1pt solid; text-align: right">11.71</td><td style="padding-bottom: 1pt; text-align: left"> </td></tr> </table> <p style="margin-top: 0; margin-bottom: 0"> </p> 5.01 6.00 10000 0.9 5.69 7.01 8.00 15000 2.9 7.74 8.01 9.00 27250 3.6 8.69 9.01 10.00 30750 9.9 9.85 10.01 11.00 15000 7.9 10.30 11.01 12.00 68750 7.8 11.57 12.01 13.00 40500 5.8 12.38 13.01 14.00 15000 6.9 13.80 16.01 17.00 15000 5.9 16.40 19.01 20.00 15000 6.2 19.26 5.00 20.00 252250 6.5 11.52 <p id="xdx_807_eus-gaap--PreferredStockTextBlock_zOitmefkSWSk" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0"><b>15. Preferred Stock:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company has <span id="xdx_90D_eus-gaap--PreferredStockSharesAuthorized_iI_c20200531_z2cw2SOMPmB1" title="Preferred shares authorized">2,000,000</span> authorized but unissued shares of preferred stock which may be issued in series. The shares of each series shall have such rights, preferences, and limitations as shall be fixed by the Board of Directors.</p> 2000000 <p id="xdx_803_eus-gaap--TreasuryStockTextBlock_zasxaSwSC2xk" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>16. Treasury Stock:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">Treasury shares are 553,934 and <span id="xdx_90C_eus-gaap--TreasuryStockShares_iI_c20200531_zfBubvBxxbU6" title="Treasury Stock"><span id="xdx_909_eus-gaap--TreasuryStockShares_iI_c20190531_zl34FE6MCObb" title="Treasury Stock"><span id="xdx_909_eus-gaap--TreasuryStockShares_iI_c20200531_zWeH5z94cTIj" title="Treasury Stock">550,872</span></span></span> at May 31, 2020 and 2019.</p> 550872 550872 550872 <p id="xdx_801_eus-gaap--ScheduleOfCostsOfRetirementPlansTableTextBlock_zUpGjarztB81" style="font: 10pt Times New Roman, Times, Serif; margin: 0; color: navy; text-align: justify"><b>17. Retirement Plan:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The Company maintains a retirement plan for essentially all employees pursuant to Section 401(k) of the Internal Revenue Code. The Company matches a percentage of employee voluntary salary deferrals subject to limitations. The Company may also make discretionary contributions as determined annually by the Company's Board of Directors. The amount expensed under the plan was <span id="xdx_90F_eus-gaap--PensionExpense_c20190601__20200531_zlbEgd0la175">$158,191 </span>and <span id="xdx_904_eus-gaap--PensionExpense_c20180601__20190531_zxeCoHYcOCT1">$71,222</span> for the years ended May 31, 2020 and 2019.</p> 158191 71222 <p id="xdx_805_eus-gaap--FairValueOfFinancialInstrumentsPolicy_zcpqJXvSg0Of" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>18. Fair Value of Financial Instruments:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"><b> </b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable, and accrued liabilities approximate fair value because of the short maturity of these instruments.</p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">The fair values of short-term investments were determined as described in Note 1.</p> <p id="xdx_809_eus-gaap--CashFlowSupplementalDisclosuresTextBlock_z9m87LeIzUHh" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>19. Cash Flows Information:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <table cellpadding="0" cellspacing="0" id="xdx_883_eus-gaap--ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_zlUQKLqfKzId" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Supplemental cash flow information (Details)"> <tr style="vertical-align: bottom"> <td style="text-align: justify"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_494_20190601__20200531_zbXgEPpoTBX2" style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: center">2020</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_494_20180601__20190531_zwmbpXnlMExl" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">2019</td></tr> <tr style="vertical-align: bottom"> <td style="text-align: justify"> </td><td> </td> <td colspan="3" style="text-align: right"> </td><td> </td> <td colspan="3" style="text-align: right"> </td></tr> <tr id="xdx_40A_eus-gaap--InterestPaid_dn_z6bXr0YiwnR2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; font-size: 10pt; text-align: justify; padding-bottom: 1pt">  Interest paid</td><td style="width: 8%; font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; width: 12%; font-size: 10pt; color: navy; font-weight: bold; text-align: right"><span style="font-size: 10pt; color: navy"><b>none</b></span></td><td style="width: 1%; padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; font-size: 10pt; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left"> </td><td style="border-bottom: Black 1pt solid; width: 12%; font-size: 10pt; text-align: right"><span style="font-size: 10pt">none</span></td><td style="width: 1%; padding-bottom: 1pt; font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--IncomeTaxesPaid_zLboWaPP9BUi" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: justify; padding-bottom: 1pt">  Income taxes paid</td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">180,131</td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">550,498</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"> </td></tr> </table> <table cellpadding="0" cellspacing="0" id="xdx_883_eus-gaap--ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock_zlUQKLqfKzId" style="font: 12pt Times New Roman, Times, Serif; border-collapse: collapse; width: 90%; margin-left: auto; margin-right: auto" summary="xdx: Disclosure - Supplemental cash flow information (Details)"> <tr style="vertical-align: bottom"> <td style="text-align: justify"> </td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_494_20190601__20200531_zbXgEPpoTBX2" style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: center">2020</td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td colspan="3" id="xdx_494_20180601__20190531_zwmbpXnlMExl" style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: center">2019</td></tr> <tr style="vertical-align: bottom"> <td style="text-align: justify"> </td><td> </td> <td colspan="3" style="text-align: right"> </td><td> </td> <td colspan="3" style="text-align: right"> </td></tr> <tr id="xdx_40A_eus-gaap--InterestPaid_dn_z6bXr0YiwnR2" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="width: 56%; font-size: 10pt; text-align: justify; padding-bottom: 1pt">  Interest paid</td><td style="width: 8%; font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="border-bottom: Black 1pt solid; width: 12%; font-size: 10pt; color: navy; font-weight: bold; text-align: right"><span style="font-size: 10pt; color: navy"><b>none</b></span></td><td style="width: 1%; padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="width: 8%; font-size: 10pt; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; width: 1%; font-size: 10pt; text-align: left"> </td><td style="border-bottom: Black 1pt solid; width: 12%; font-size: 10pt; text-align: right"><span style="font-size: 10pt">none</span></td><td style="width: 1%; padding-bottom: 1pt; font-size: 10pt; text-align: left"> </td></tr> <tr style="vertical-align: bottom; background-color: White"> <td style="text-align: justify"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td><td> </td> <td style="text-align: left"> </td><td style="text-align: right"> </td><td style="text-align: left"> </td></tr> <tr id="xdx_40B_eus-gaap--IncomeTaxesPaid_zLboWaPP9BUi" style="vertical-align: bottom; background-color: rgb(204,238,255)"> <td style="font-size: 10pt; text-align: justify; padding-bottom: 1pt">  Income taxes paid</td><td style="font-size: 10pt; color: navy; font-weight: bold; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; color: navy; font-weight: bold; text-align: right">180,131</td><td style="padding-bottom: 1pt; font-size: 10pt; color: navy; font-weight: bold; text-align: left"> </td><td style="font-size: 10pt; padding-bottom: 1pt"> </td> <td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: left">$</td><td style="border-bottom: Black 1pt solid; font-size: 10pt; text-align: right">550,498</td><td style="padding-bottom: 1pt; font-size: 10pt; text-align: left"> </td></tr> </table> 0 0 180131 550498 <p id="xdx_80D_eus-gaap--UnusualRisksAndUncertaintiesTextBlock_zT5yAKm0B5X1" style="font: 10pt Times New Roman, Times, Serif; color: navy; margin: 0; text-align: justify"><b>20. Risks and Uncertainties:</b></p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify"> </p> <p style="font: 10pt Times New Roman, Times, Serif; margin: 0; text-align: justify">On January 31, 2020, the United States Secretary of Health and Human Services (HHS) declared a public health emergency related to the global spread of coronavirus COVID-19, and a pandemic was declared by the World Health Organization in February 2020. Efforts to fight the widespread disease included limiting or closing many businesses and resulted in a severe disruption of operations for many organizations. Financial markets also experienced a significant decline in value. The extent of the impact of COVID-19 on the Company’s operational and financial performance will depend on further developments, including the duration and spread of the outbreak, impact on customers, employees, and vendors, all of which cannot be predicted.</p> XML 12 R1.htm IDEA: XBRL DOCUMENT v3.20.2
Cover - USD ($)
12 Months Ended
May 31, 2020
Aug. 07, 2020
Nov. 30, 2019
Cover [Abstract]      
Document Type 10-K    
Amendment Flag false    
Document Annual Report true    
Document Period End Date May 31, 2020    
Document Fiscal Period Focus FY    
Document Fiscal Year Focus 2020    
Current Fiscal Year End Date --05-31    
Entity File Number 0-3498    
Entity Registrant Name TAYLOR DEVICES INC    
Entity Central Index Key 0000096536    
Entity Tax Identification Number 16-0797789    
Entity Incorporation, State or Country Code NY    
Entity Address, Address Line One 90 Taylor Drive    
Entity Address, City or Town North Tonawanda    
Entity Address, State or Province NY    
Entity Address, Postal Zip Code 14120    
City Area Code 716    
Local Phone Number 694-0800    
Title of 12(g) Security Common Stock ($.025 par value)    
Entity Well-known Seasoned Issuer No    
Entity Voluntary Filers No    
Entity Current Reporting Status Yes    
Entity Interactive Data Current Yes    
Entity Filer Category Non-accelerated Filer    
Entity Small Business true    
Entity Emerging Growth Company false    
Entity Shell Company false    
Entity Public Float     $ 37,158,000
Entity Common Stock, Shares Outstanding   3,487,245  
XML 13 R2.htm IDEA: XBRL DOCUMENT v3.20.2
Consolidated Balance Sheets - USD ($)
May 31, 2020
May 31, 2019
Current assets:    
Cash and cash equivalents $ 15,159,827 $ 5,071,822
Short-term investments 1,071,950 1,055,591
Accounts and other receivables, net 5,819,471 5,279,302
Inventory 10,107,437 11,239,331
Prepaid expenses 460,212 312,160
Prepaid income taxes 50,148 237,017
Costs and estimated earnings in excess of billings 1,754,573 7,572,490
Total current assets 34,423,618 30,767,713
Maintenance and other inventory, net 879,050 731,877
Property and equipment, net 9,407,490 9,317,442
Cash value of life insurance, net 195,621 190,749
Deferred income taxes 170,115 189,115
Assets 45,075,894 41,196,896
Current liabilities:    
Short-term borrowings 1,461,500
Accounts payable 1,370,175 1,402,692
Accrued commissions 305,885 1,309,358
Other accrued expenses 1,663,914 1,532,271
Billings in excess of costs and estimated earnings 736,866 633,703
Total current liabilities 5,538,340 4,878,024
Stockholders' Equity:    
Common stock, $ .025 par value, authorized 8,000,000 shares,    issued 4,040,805 and 4,029,431 shares 100,943 100,735
Paid-in capital 9,759,063 9,538,892
Retained earnings 32,538,580 29,508,604
Stockholders’ equity before treasury stock 42,398,586 39,148,231
Treasury stock - 550,872 shares at cost (2,861,032) (2,829,359)
Total stockholders' equity 39,537,554 36,318,872
 Total liabilities and stockholders’ equity $ 45,075,894 $ 41,196,896
XML 14 R3.htm IDEA: XBRL DOCUMENT v3.20.2
Consolidated Balance Sheets (Parenthetical) - $ / shares
May 31, 2020
May 31, 2019
Statement of Financial Position [Abstract]    
Common Stock, Par or Stated Value Per Share $ 0.025 $ 0.025
Common Stock, Shares Authorized 8,000,000 8,000,000
Common Stock, Shares, Issued 4,040,805 4,029,431
Treasury Stock, Shares 550,872 550,872
XML 15 R4.htm IDEA: XBRL DOCUMENT v3.20.2
Consolidated Statements of Income - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
Income Statement [Abstract]    
Sales, net $ 28,381,541 $ 33,619,031
Cost of goods sold 19,144,451 24,571,255
     Gross profit 9,237,090 9,047,776
Selling, general and administrative expenses 5,934,410 6,045,984
     Operating income 3,302,680 3,001,792
   Interest, net 111,054 69,006
   Miscellaneous 2,242 (11,273)
Total other income 113,296 57,733
     Income before provision for income taxes 3,415,976 3,059,525
Provision for income taxes 386,000 515,000
     Net income $ 3,029,976 $ 2,544,525
Basic and diluted earnings per common share $ 0.87 $ 0.73
XML 16 R5.htm IDEA: XBRL DOCUMENT v3.20.2
Conssolidated Statements of Stockholders Equity - USD ($)
Common Stock [Member]
Additional Paid-in Capital [Member]
Retained Earnings [Member]
Treasury Stock [Member]
Beginning balance, value at May. 31, 2018 $ 100,428 $ 9,382,202 $ 26,959,080 $ (2,829,359)
Net income 2,544,525
Common stock issued for employee stock option plan 619 164,364
Common stock issued for employee stock purchase plan 38 17,473
Adjustments Due to ASU 2014-09 at May. 31, 2018 4,999
Stock options issued for services 106,656
Ending balance, value at May. 31, 2019 100,735 9,538,892 29,508,604 (2,829,359)
Net income 3,029,976
Common stock issued for employee stock option plan 174 63,250 (31,673)
Common stock issued for employee stock purchase plan 34 13,824
Stock options issued for services 143,097
Ending balance, value at May. 31, 2020 $ 100,943 $ 9,759,063 $ 32,538,580 $ (2,861,032)
XML 17 R6.htm IDEA: XBRL DOCUMENT v3.20.2
Consolidated Statements of Cash Flows - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
  operating activities:    
Net income $ 3,029,976 $ 2,544,525
Adjustments to reconcile net income to net cash flows from    
Depreciation 1,141,110 1,072,959
Stock options issued for services 143,097 106,656
Provision for inventory obsolescence 180,000 175,000
Deferred income taxes 19,000 30,000
Changes in other current assets and liabilities:    
Accounts and other receivables (540,169) 986,562
Inventory 804,721 1,158,334
Prepaid expenses (148,052) (67,517)
Prepaid income taxes 186,869 (34,498)
Costs and estimated earnings in excess of billings 5,817,917 (1,542,036)
Accounts payable (32,517) (57,483)
Accrued commissions (1,003,473) 326,098
Other accrued expenses 131,644 (674,944)
Billings in excess of costs and estimated earnings 103,163 (1,384,194)
Net operating activities 9,833,286 2,657,523
Investing activities:    
Acquisition of property and equipment (1,231,158) (472,837)
Increase in short-term investments (16,359) (16,509)
Increase in cash value of life insurance (4,872) (5,019)
Net investing activities (1,252,389) (494,365)
Financing activities:    
Short-term borrowings 1,461,500
Proceeds from issuance of common stock 45,608 50,341
Net financing activities 1,507,108 50,341
Net change in cash and cash equivalents 10,088,005 2,213,499
Cash and cash equivalents - beginning 5,071,822 2,858,323
Cash and cash equivalents - ending $ 15,159,827 $ 5,071,822
XML 18 R7.htm IDEA: XBRL DOCUMENT v3.20.2
1. Summary of Significant Accounting Policies:
12 Months Ended
May 31, 2020
Accounting Policies [Abstract]  
Significant Accounting Policies [Text Block]

1. Summary of Significant Accounting Policies:

 

Nature of Operations:

 

Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs,Vibration Dampers, Machined Springs and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.

 

83% of the Company's 2020 revenue was generated from sales to customers in the United States and 11% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe and South America.

 

78% of the Company's 2019 revenue was generated from sales to customers in the United States and 17% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe, Australia and South America.

 

Principles of Consolidation:

 

The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). All inter-company transactions and balances have been eliminated in consolidation.

 

Subsequent Events:

 

The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.

 

Use of Estimates:

 

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. Actual results could differ from those estimates.

 

Cash and Cash Equivalents:

 

The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets.

 

Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.

 

Short-term Investments:

 

At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2020 include “available for sale” corporate bonds stated at fair value, which approximates cost. The bonds (19) mature on various dates during the period July 2020 to September 2024. Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes. Realized gains and losses on the sale of investments are determined using the specific identification method.

 

The bonds are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.

 

 

 

 

Accounts and Other Receivables:

 

Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. Management provides for probable uncollectible accounts through a charge to earnings and a credit to a valuation allowance based on its assessment of the current status of individual accounts. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.

 

Inventory:

 

Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.

 

Property and Equipment:

 

Property and equipment is stated at cost net of accumulated depreciation. Deprecation is provided primarily using the straight-line method for financial reporting purposes, and accelerated methods for income tax reporting purposes. Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.

 

Cash Value of Life Insurance:

 

Cash value of life insurance is stated at the surrender value of the contracts.

 

Revenue Recognition:

 

As noted below, ASU 2014-09 was adopted on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings.

 

Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.

A performance obligation is a promise in a contract to transfer a distinct good or service to the customer, and is the unit of account. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations.

 

For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the year ended May 31, 2020, 57% of revenue was recorded for contracts in which revenue was recognized over time while 43% was recognized at a point in time. In the year ended May 31, 2019, 55% of revenue was recorded for contracts in which revenue was recognized over time while 45% was recognized at a point in time.

Progress payments are typically negotiated for longer term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. The asset, “costs and estimated earnings in excess of billings,” represents revenues recognized in excess of amounts billed. The liability, “billings in excess of costs and estimated earnings,” represents billings in excess of revenues recognized.

 

If applicable, the Company recognizes an asset for the incremental, material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. As of May 31, 2020, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.

We recognized the cumulative effect of initially applying the new revenue standard as an adjustment to the opening balance of retained earnings primarily because certain longer term contracts accounted for on the percentage of completion method did not contain “enforceable right to payment” terms, as defined. The comparative information has not been restated and continues to be reported under the accounting standards in effect for those periods.

The cumulative effect of the changes made to our consolidated June 1, 2018 balance sheet for the adoption of ASU 2014-09, were as follows:

          
Balance Sheet  Balance at May 31, 2018  Adjustments Due to ASU 2014-09  Balance at June 1, 2018
Assets               
Inventory  $11,317,775   $1,101,116   $12,418,891 
Costs and estimated earnings in excess of billings  $6,356,963   $(326,509)  $6,030,454 
Liabilities               
Billings in excess of costs and estimated earnings  $2,043,002   $(25,105)  $2,017,897 
Other accrued expenses  $1,412,502   $794,713   $2,207,215 
Equity               
Retained earnings  $26,959,080   $4,999   $26,964,079 
                

 

In accordance with the new revenue standard requirements, the disclosure of the impact of adoption of ASU 2014-09 on our consolidated balance sheet and income statement was as follows:

                        
   May 31, 2019
Balance Sheet  As Reported  Effect of Change Higher/(Lower)  Balances Without Adoption of ASU 2014-09
Assets         
Inventory  $11,239,331   $—     $11,239,331 
Costs and estimated earnings in excess of billings  $7,572,490   $—     $7,572,490 
Liabilities               
Other accrued expenses  $1,532,271   $—     $1,532,271 
Equity               
Retained earnings  $29,508,604   $—     $29,508,604 

 

 

                        
   For the year ended May 31, 2019
Income Statement  As Reported  Effect of Change Higher/(Lower)  Balances Without Adoption of ASU 2014-09
Revenues         
Sales, net  $33,619,031   $1,096,117   $32,522,914 
Costs and Expenses               
Cost of goods sold  $24,571,255   $1,101,116   $23,470,139 
Provision for income taxes  $515,000   $—     $515,000 
                
Net income (loss)  $2,544,525   $(4,999)  $2,549,524 

 

Shipping and Handling Costs:

 

Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $420,786 and $268,847 for the years ended May 31, 2020 and 2019. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.

 

Research and Development Costs:

 

Research and development costs are classified as a component of cost of sales. The amounts of these costs were $585,000 and $319,000 for the years ended May 31, 2020 and 2019.

 

 

 

Income Taxes:

 

The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.

 

The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2020 or 2019. The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2020 and 2019.

 

The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2016.

 

Sales Taxes:

 

Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. The Company collects these taxes from customers and remits the entire amount as required by the applicable law. The Company excludes from revenues and expenses the tax collected and remitted.

 

Stock-Based Compensation:

 

The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The stock-based compensation expense for the years ended May 31, 2020 and 2019 was $143,097 and $137,655.

 

New Accounting Standards:

 

In May 2014, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers. ASU 2014-09 is a comprehensive new revenue recognition model that requires a company to recognize revenue to depict the transfer of goods or services to a customer at an amount that reflects the consideration it expects to receive in exchange for those goods or services. ASU 2014-09 also requires additional disclosure about the nature, amount, timing and uncertainty of revenue and cash flows arising from customer contracts, including significant judgments and changes in judgments and assets recognized from costs incurred to obtain or fulfill a contract. ASU 2014-09, as amended, is effective for annual reporting periods, and interim periods within that period, beginning after December 15, 2018 (fiscal year 2020 for the Company). Companies may use either a full retrospective or a modified retrospective approach to adopt ASU 2014-09. The Company adopted ASU 2014-09 on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings. The effect of the adoption is detailed above.

 

Other recently issued Accounting Standards Codification (ASC) guidance has either been implemented or are not significant to the Company.

 

XML 19 R8.htm IDEA: XBRL DOCUMENT v3.20.2
2. Accounts and Other Receivables:
12 Months Ended
May 31, 2020
Receivables [Abstract]  
Loans, Notes, Trade and Other Receivables Disclosure [Text Block]

2. Accounts and Other Receivables:

 

   2020  2019
Customers  $5,399,915   $4,438,373 
Customers - retention   630,823    950,684 
Gross accounts receivable   6,030,738    5,389,057 
Less allowance for doubtful accounts   211,267    109,755 
Net accounts and other receivables  $5,819,471   $5,279,302 
XML 20 R9.htm IDEA: XBRL DOCUMENT v3.20.2
3. Inventory:
12 Months Ended
May 31, 2020
Inventory Disclosure [Abstract]  
Inventory Disclosure [Text Block]

3. Inventory:

 

   2020  2019
Raw materials  $658,024   $679,018 
Work-in-process   8,586,404    9,905,495 
Finished goods   963,009    754,818 
Gross inventory   10,207,437    11,339,331 
Less allowance for obsolescence   100,000    100,000 
Net inventory  $10,107,437   $11,239,331 
XML 21 R10.htm IDEA: XBRL DOCUMENT v3.20.2
4. Costs and Estimated Earnings on Uncompleted Contracts:
12 Months Ended
May 31, 2020
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]  
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Table Text Block]

4. Costs and Estimated Earnings on Uncompleted Contracts:

 

   2020  2019
Costs incurred on uncompleted contracts  $6,395,550   $16,599,307 
Estimated earnings   3,816,527    6,526,707 
Total costs and estimated earnings   10,212,077    23,126,014 
Less billings to date   9,194,370    16,187,227 
Costs and estimated earnings not billed  $1,017,707   $6,938,787 

 

Amounts are included in the accompanying balance sheets under the following captions:

 

   2020  2019
Costs and estimated earnings in excess of billings  $1,754,573   $7,572,490 
Billings in excess of costs and estimated earnings   736,866    633,703 
Costs and estimated earnings not billed  $1,017,707   $6,938,787 

 

 

 

The following summarizes the status of Projects in progress as of May 31, 2020 and 2019:

 

   2020  2019
Number of Projects in progress   15    22 
Aggregate percent complete   80%   77%
Aggregate amount remaining  $2,234,962   $6,748,520 
Percentage of total value invoiced to customer   74%   54%

 

The Company expects to recognize the entire remaining revenue on all open projects during the May 31, 2020 fiscal year.

 

Revenue recognized during the years ended May 31, 2020 and 2019 for amounts included in billings in excess of costs and estimated earnings as of the beginning of the year amounted to $1,481,320 and $4,187,015.

XML 22 R11.htm IDEA: XBRL DOCUMENT v3.20.2
5. Maintenance and Other Inventory:
12 Months Ended
May 31, 2020
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]  
Other Assets Disclosure [Text Block]

5. Maintenance and Other Inventory:

 

   2020  2019
Maintenance and other inventory  $2,479,497   $2,197,958 
Less allowance for obsolescence   1,600,447    1,466,081 
Maintenance and other inventory, net  $879,050   $731,877 

 

Maintenance and other inventory represent stock that is estimated to have a product life-cycle in excess of twelve-months. This stock represents certain items the Company is required to maintain for service of products sold, and items that are generally subject to spontaneous ordering.

 

This inventory is particularly sensitive to technical obsolescence in the near term due to its use in industries characterized by the continuous introduction of new product lines, rapid technological advances and product obsolescence. Therefore, management of the Company has recorded an allowance for potential inventory obsolescence.

 

The provision for potential inventory obsolescence was $180,000 and $175,000 for the years ended May 31, 2020 and 2019.

XML 23 R12.htm IDEA: XBRL DOCUMENT v3.20.2
6. Property and Equipment:
12 Months Ended
May 31, 2020
Property, Plant and Equipment [Abstract]  
Property, Plant and Equipment Disclosure [Text Block]

6. Property and Equipment:

 

   2020  2019
Land  $195,220   $195,220 
Buildings and improvements   9,457,142    9,342,431 
Machinery and equipment   11,242,667    10,390,610 
Office furniture and equipment   2,209,382    1,975,392 
Autos and trucks   24,818    24,818 
Land improvements   455,429    455,429 
Gross property and equipment   23,584,658    22,383,900 
Less accumulated depreciation   14,177,168    13,066,458 
Property and equipment, net  $9,407,490   $9,317,442 

 

Depreciation expense was $1,141,110 and $1,072,959 for the years ended May 31, 2020 and 2019.

 

The Company has commitments to make capital expenditures of approximately $200,000 as of May 31, 2020.

XML 24 R13.htm IDEA: XBRL DOCUMENT v3.20.2
7. Short-Term Borrowings:
12 Months Ended
May 31, 2020
Debt Disclosure [Abstract]  
Schedule of Line of Credit Facilities [Table Text Block]

7. Short-Term Borrowings:

 

During 2020, the Company received a loan totaling $1,461,500 from the Small Business Administration under the Paycheck Protection Program of the Coronavirus Aid, Relief and Economic Security (CARES) Act, in response to the pandemic described in Note 20. Some or all of the loan may be forgiven if certain criteria are met. Otherwise, the loan is unsecured, has a deferment on payments for 6 months after a decision on forgiveness has been made, then is payable over a negotiable period of time, and bears interest at 1%.

 

The Company has available a $10,000,000 demand line of credit from a bank, with interest payable at the Company's option of 30, 60 or 90 day LIBOR rate plus 2.25%. The line is secured by a negative pledge of the Company's real and personal property. This line of credit is subject to the usual terms and conditions applied by the bank and subject to renewal annually.

 

There is no amount outstanding under the line of credit at May 31, 2020 or May 31, 2019.

 

The Company uses a cash management facility under which the bank draws against the available line of credit to cover checks presented for payment on a daily basis. Outstanding checks under this arrangement totaled $523,344 and $292,000 as of May 31, 2020 and 2019. These amounts are included in accounts payable.

XML 25 R14.htm IDEA: XBRL DOCUMENT v3.20.2
8. Legal Proceedings:
12 Months Ended
May 31, 2020
Commitments and Contingencies Disclosure [Abstract]  
Legal Matters and Contingencies [Text Block]

8. Legal Proceedings:

 

There are no legal proceedings except for routine litigation incidental to the business.

XML 26 R15.htm IDEA: XBRL DOCUMENT v3.20.2
9. Sales:
12 Months Ended
May 31, 2020
Sales  
[custom:ScheduleOfRevenueByMajorCustomersTypesTextBlock]

9. Sales:

 

The Company manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs,Vibration Dampers, Machined Springs and Custom Actuators. Management does not track or otherwise account for sales broken down by these categories. Sales of the Company's products are made to three general groups of customers: industrial, construction and aerospace / defense. A breakdown of sales to these three general groups of customers is as follows:

 

   2020  2019
Construction  $15,621,784   $20,168,587 
Aerospace / Defense   10,771,129    11,383,374 
Industrial   1,988,628    2,067,070 
Sales, net  $28,381,541   $33,619,031 

 

Sales to six customers approximated 41% (10%, 9%, 6%, 6%, 5% and 5% respectively) of net sales for 2020. Sales to four customers approximated 36% (17%, 8%, 6% and 5% respectively) of net sales for 2019.

XML 27 R16.htm IDEA: XBRL DOCUMENT v3.20.2
10. Income Taxes:
12 Months Ended
May 31, 2020
Income Tax Disclosure [Abstract]  
Income Tax Disclosure [Text Block]

10. Income Taxes:

   2020  2019
Current tax provision:          
Federal  $375,000   $521,000 
State   —      —   
Total current tax provision   375,000    521,000 
Deferred tax provision:          
Federal   11,000   (6,000)
State   —      —  
Total deferred tax provision   11,000   (6,000)
Total tax provision  $386,000   $515,000 

 

A reconciliation of provision for income taxes at the statutory rate to income tax provision at the Company's effective rate is as follows:

   2020  2019
Computed tax provision at the expected statutory rate  $717,400   $642,500 
State income tax - net of Federal tax benefit   500   500
Tax effect of permanent differences:          
Research tax credits   (272,000)   (166,000)
Foreign-derived intangible income deduction   (99,739)   - 
Other permanent differences   40,200   28,700
Other   (361)   9,300
Total tax provision  $386,000   $515,000 
Effective income tax rate   11.3%   16.8%

 

 

 

Significant components of the Company's deferred tax assets and liabilities consist of the following:

 

   2020  2019
Deferred tax assets:          
Allowance for doubtful receivables  $44,000   $23,000 
Tax inventory adjustment   94,000    99,700 
Allowance for obsolete inventory   357,100    328,900 
Accrued vacation   60,500    50,200 
Accrued commissions   3,900    19,800 
Warranty reserve   39,400    30,300 
Stock options issued for services   230,200    208,600 
Total deferred tax assets   829,500    760,500 
Deferred tax liabilities:          
Excess tax depreciation   659,385    571,385 
Net deferred tax assets  $170,115   $189,115 

 

Realization of the deferred tax assets is dependent on generating sufficient taxable income at the time temporary differences become deductible. The Company provides a valuation allowance to the extent that deferred tax assets may not be realized. A valuation allowance has not been recorded against the deferred tax assets since management believes it is more likely than not that the deferred tax assets are recoverable. The Company considers future taxable income and potential tax planning strategies in assessing the need for a potential valuation allowance. The amount of the deferred tax assets considered realizable however, could be reduced in the near term if estimates of future taxable income are reduced. The Company will need to generate approximately $4.0 million in taxable income in future years in order to realize the deferred tax assets recorded as of May 31, 2020 of $829,500.

 

The Company and its subsidiary file consolidated Federal and State income tax returns. As of May 31, 2020, the Company had State investment tax credit carryforwards of approximately $369,000 expiring through May 31, 2026.

XML 28 R17.htm IDEA: XBRL DOCUMENT v3.20.2
11. Earnings Per Common Share:
12 Months Ended
May 31, 2020
Earnings Per Share [Abstract]  
Earnings Per Share [Text Block]

11.       Earnings Per Common Share:

 

Basic earnings per common share is computed by dividing income available to common stockholders by the weighted-average common shares outstanding for the period. Diluted earnings per common share reflects the weighted-average common shares outstanding and dilutive potential common shares, such as stock options.

 

A reconciliation of weighted-average common shares outstanding to weighted-average common shares outstanding assuming dilution is as follows:

 

   2020  2019
Average common shares outstanding   3,481,12    3,470,595 
Common shares issuable under stock option plans   8,663    17,043 
Average common shares outstanding assuming dilution   3,489,791    3,487,638 
XML 29 R18.htm IDEA: XBRL DOCUMENT v3.20.2
12. Related Party Transactions:
12 Months Ended
May 31, 2020
Related Party Transactions [Abstract]  
Related Party Transactions Disclosure [Text Block]

12. Related Party Transactions:

 

The Company had no related party transactions for the years ended May 31, 2020 and 2019.

XML 30 R19.htm IDEA: XBRL DOCUMENT v3.20.2
13. Employee Stock Purchase Plan:
12 Months Ended
May 31, 2020
Share-based Payment Arrangement [Abstract]  
Schedule of Share-based Compensation, Employee Stock Purchase Plan, Activity [Table Text Block]

13. Employee Stock Purchase Plan:

 

In March 2004, the Company reserved 295,000 shares of common stock for issuance pursuant to a non-qualified employee stock purchase plan. Participation in the employee stock purchase plan is voluntary for all eligible employees of the Company. Purchase of common shares can be made by employee contributions through payroll deductions. At the end of each calendar quarter, the employee contributions will be applied to the purchase of common shares using a share value equal to the mean between the closing bid and ask prices of the stock on that date. These shares are distributed to the employees at the end of each calendar quarter or upon withdrawal from the plan. During the years ended May 31, 2020 and 2019, 1,374 ($8.63 to $11.00 price per share) and 1,542 ($10.235 to $12.28 price per share) common shares, respectively, were issued to employees. As of May 31, 2020, 220,253 shares were reserved for further issue.

XML 31 R20.htm IDEA: XBRL DOCUMENT v3.20.2
14. Stock Option Plans:
12 Months Ended
May 31, 2020
Share-based Payment Arrangement [Abstract]  
Share-based Payment Arrangement [Text Block]

14. Stock Option Plans:

 

In 2018, the Company adopted a stock option plan which permits the Company to grant both incentive stock options and non-qualified stock options. The incentive stock options qualify for preferential treatment under the Internal Revenue Code. Under this plan, 160,000 shares of common stock have been reserved for grant to key employees and directors of the Company and 28,750 shares have been granted as of May 31, 2020. Under the plan, the option price may not be less than the fair market value of the stock at the time the options are granted. Options vest immediately and expire ten years from the date of grant.

 

Using the Black-Scholes option pricing model, the weighted average estimated fair value of each option granted under the plan was $2.85 during 2020 and $3.20 during 2019. The pricing model uses the assumptions noted in the following table. Expected volatility is based on the historical volatility of the Company's stock. The risk-free interest rate for periods within the contractual life of the option is based on the U.S. Treasury yield curve in effect at the time of the grant. The expected life of options granted is derived from previous history of stock exercises from the grant date and represents the period of time that options granted are expected to be outstanding. The Company uses historical data to estimate option exercise and employee termination assumptions under the valuation model. The Company has never paid dividends on its common stock and does not anticipate doing so in the foreseeable future.

   2020  2019
Risk-free interest rate   1.98%   2.48%
Expected life in years   3.9    3.8 
Expected volatility   32%   31%
Expected dividend yield   0%   0%

 

The following is a summary of stock option activity:

   Shares  Weighted Average Exercise Price  Intrinsic Value
Outstanding - May 31, 2018   271,750   $11.33   $304,252 
     Options granted   43,000   $11.90      
     Less: options exercised   10,750   $3.05      
     Less: options expired   80,000   $11.68      
Outstanding - May 31, 2019   224,000   $11.71   $228,132 
     Options granted   50,250   $10.30      
     Less: options exercised   10,000   $6.35      
     Less: options expired   12,000   $14.34      
Outstanding - May 31, 2020   252,250   $11.52   $209,835 

 

We calculated intrinsic value for those options that had an exercise price lower than the market price of our common shares as of the balance sheet dates. The aggregate intrinsic value of outstanding options as of the end of each fiscal year is calculated as the difference between the exercise price of the underlying options and the market price of our common shares for the options that were in-the-money at that date (98,000 at May 31, 2020 and 77,250 at May 31, 2019.) The Company's closing stock price was $10.99 and $11.08 as of May 31, 2020 and 2019. As of May 31, 2020, there are 131,250 options available for future grants under the 2018 stock option plan. $31,750 and $32,830 was received from the exercise of share options during the fiscal years ended May 31, 2020 and 2019.

 

 

 

 

The following table summarizes information about stock options outstanding at May 31, 2020:

 

Outstanding and Exercisable               
Range of Exercise Prices   Number of Options    Weighted Average Remaining Years of Contractual Life    Weighted Average Exercise Price 
$5.01-$6.00   10,000    0.9   $5.69 
$7.01-$8.00   15,000    2.9   $7.74 
$8.01-$9.00   27,250    3.6   $8.69 
$9.01-$10.00   30,750    9.9   $9.85 
$10.01-$11.00   15,000    7.9   $10.30 
$11.01-$12.00   68,750    7.8   $11.57 
$12.01-$13.00   40,500    5.8   $12.38 
$13.01-$14.00   15,000    6.9   $13.80 
$16.01-$17.00   15,000    5.9   $16.40 
$19.01-$20.00   15,000    6.2   $19.26 
$5.00-$20.00   252,250    6.5   $11.52 

 

The following table summarizes information about stock options outstanding at May 31, 2019:

Outstanding and Exercisable               
Range of Exercise Prices   Number of Options    Weighted Average Remaining Years of Contractual Life    Weighted Average Exercise Price 
$5.01-$6.00   10,000    1.9   $5.69 
$6.01-$7.00   10,000    0.9   $6.35 
$7.01-$8.00   15,000    3.9   $7.74 
$8.01-$9.00   27,250    4.6   $8.69 
$10.01-$11.00   15,000    8.9   $10.30 
$11.01-$12.00   53,000    8.4   $11.79 
$12.01-$13.00   45,000    6.9   $12.38 
$13.01-$14.00   15,000    7.9   $13.80 
$16.01-$17.00   15,000    6.9   $16.40 
$19.01-$20.00   18,750    7.2   $19.26 
$5.00-$20.00   224,000    6.5   $11.71 

 

XML 32 R21.htm IDEA: XBRL DOCUMENT v3.20.2
15. Preferred Stock:
12 Months Ended
May 31, 2020
Equity [Abstract]  
Preferred Stock [Text Block]

15. Preferred Stock:

 

The Company has 2,000,000 authorized but unissued shares of preferred stock which may be issued in series. The shares of each series shall have such rights, preferences, and limitations as shall be fixed by the Board of Directors.

XML 33 R22.htm IDEA: XBRL DOCUMENT v3.20.2
16. Treasury Stock:
12 Months Ended
May 31, 2020
Equity [Abstract]  
Treasury Stock [Text Block]

16. Treasury Stock:

 

Treasury shares are 553,934 and 550,872 at May 31, 2020 and 2019.

XML 34 R23.htm IDEA: XBRL DOCUMENT v3.20.2
17. Retirement Plan:
12 Months Ended
May 31, 2020
Retirement Benefits [Abstract]  
Schedule of Costs of Retirement Plans [Table Text Block]

17. Retirement Plan:

 

The Company maintains a retirement plan for essentially all employees pursuant to Section 401(k) of the Internal Revenue Code. The Company matches a percentage of employee voluntary salary deferrals subject to limitations. The Company may also make discretionary contributions as determined annually by the Company's Board of Directors. The amount expensed under the plan was $158,191 and $71,222 for the years ended May 31, 2020 and 2019.

XML 35 R24.htm IDEA: XBRL DOCUMENT v3.20.2
18. Fair Value of Financial Instruments:
12 Months Ended
May 31, 2020
Accounting Policies [Abstract]  
Fair Value of Financial Instruments, Policy [Policy Text Block]

18. Fair Value of Financial Instruments:

 

The carrying amounts of cash and cash equivalents, accounts receivable, accounts payable, and accrued liabilities approximate fair value because of the short maturity of these instruments.

 

The fair values of short-term investments were determined as described in Note 1.

XML 36 R25.htm IDEA: XBRL DOCUMENT v3.20.2
19. Cash Flows Information:
12 Months Ended
May 31, 2020
Supplemental Cash Flow Elements [Abstract]  
Cash Flow, Supplemental Disclosures [Text Block]

19. Cash Flows Information:

 

   2020  2019
       
  Interest paid   none    none 
           
  Income taxes paid  $180,131   $550,498 
XML 37 R26.htm IDEA: XBRL DOCUMENT v3.20.2
20. Risks and Uncertainties:
12 Months Ended
May 31, 2020
Risks and Uncertainties [Abstract]  
Unusual Risks and Uncertainties [Table Text Block]

20. Risks and Uncertainties:

 

On January 31, 2020, the United States Secretary of Health and Human Services (HHS) declared a public health emergency related to the global spread of coronavirus COVID-19, and a pandemic was declared by the World Health Organization in February 2020. Efforts to fight the widespread disease included limiting or closing many businesses and resulted in a severe disruption of operations for many organizations. Financial markets also experienced a significant decline in value. The extent of the impact of COVID-19 on the Company’s operational and financial performance will depend on further developments, including the duration and spread of the outbreak, impact on customers, employees, and vendors, all of which cannot be predicted.

XML 38 R27.htm IDEA: XBRL DOCUMENT v3.20.2
1. Summary of Significant Accounting Policies: (Policies)
12 Months Ended
May 31, 2020
Accounting Policies [Abstract]  
Nature of Operations:

Nature of Operations:

 

Taylor Devices, Inc. (the Company) manufactures and sells a single group of very similar products that have many different applications for customers. These similar products are included in one of eight categories; namely, Seismic Dampers, Fluidicshoks®, Crane and Industrial Buffers, Self-Adjusting Shock Absorbers, Liquid Die Springs,Vibration Dampers, Machined Springs and Custom Actuators for use in various types of machinery, equipment and structures, primarily to customers which are located throughout the United States and several foreign countries. The products are manufactured at the Company's sole operating facility in the United States where all of the Company's long-lived assets reside. Management does not track or otherwise account for sales broken down by these categories.

 

83% of the Company's 2020 revenue was generated from sales to customers in the United States and 11% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe and South America.

 

78% of the Company's 2019 revenue was generated from sales to customers in the United States and 17% was from sales to customers in Asia. Remaining sales were to customers in other countries in North America, Europe, Australia and South America.

Principles of Consolidation:

Principles of Consolidation:

 

The accompanying consolidated financial statements include the accounts of the Company and its wholly owned subsidiary, Tayco Realty Corporation (Realty). All inter-company transactions and balances have been eliminated in consolidation.

Subsequent Events:

Subsequent Events:

 

The Company has evaluated events and transactions for potential recognition or disclosure in the financial statements through the date the financial statements were issued.

Use of Estimates:

Use of Estimates:

 

The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America requires management to make estimates and assumptions that affect the amounts reported in the financial statements and accompanying notes. Actual results could differ from those estimates.

Cash and Cash Equivalents:

Cash and Cash Equivalents:

 

The Company includes all highly liquid investments in money market funds in cash and cash equivalents on the accompanying balance sheets.

 

Cash and cash equivalents in financial institutions may exceed insured limits at various times during the year and subject the Company to concentrations of credit risk.

Short-term Investments:

Short-term Investments:

 

At times, the Company invests excess funds in liquid interest earning instruments. Short-term investments at May 31, 2020 include “available for sale” corporate bonds stated at fair value, which approximates cost. The bonds (19) mature on various dates during the period July 2020 to September 2024. Unrealized holding gains and losses would be presented as a separate component of accumulated other comprehensive income, net of deferred income taxes. Realized gains and losses on the sale of investments are determined using the specific identification method.

 

The bonds are valued using pricing models maximizing the use of observable inputs for similar securities. This includes basing value on yields currently available on comparable securities of issuers with similar credit ratings.

Accounts Receivable [Policy Text Block]

 

 

 

Accounts and Other Receivables:

 

Accounts and other receivables are stated at an amount management expects to collect from outstanding balances. Management provides for probable uncollectible accounts through a charge to earnings and a credit to a valuation allowance based on its assessment of the current status of individual accounts. Balances that are still outstanding after management has used reasonable collection efforts are written off through a charge to the valuation allowance and a credit to the receivable.

Inventory:

Inventory:

 

Inventory is stated at the lower of average cost or net realizable value. Average cost approximates first-in, first-out cost.

Property and Equipment:

Property and Equipment:

 

Property and equipment is stated at cost net of accumulated depreciation. Deprecation is provided primarily using the straight-line method for financial reporting purposes, and accelerated methods for income tax reporting purposes. Maintenance and repairs are charged to operations as incurred; significant improvements are capitalized.

Cash Value of Life Insurance:

Cash Value of Life Insurance:

 

Cash value of life insurance is stated at the surrender value of the contracts.

Revenue Recognition:

Revenue Recognition:

 

As noted below, ASU 2014-09 was adopted on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings.

 

Revenue is recognized (generally at fixed prices) when, or as, the Company transfers control of promised products or services to a customer in an amount that reflects the consideration to which the Company expects to be entitled in exchange for transferring those products or services.

A performance obligation is a promise in a contract to transfer a distinct good or service to the customer, and is the unit of account. A contract’s transaction price is allocated to each distinct performance obligation and recognized as revenue when, or as, the performance obligation is satisfied. The majority of our contracts have a single performance obligation as the promise to transfer the individual goods or services is not separately identifiable from other promises in the contracts which are, therefore, not distinct. Promised goods or services that are immaterial in the context of the contract are not separately assessed as performance obligations.

 

For contracts with customers in which the Company satisfies a promise to the customer to provide a product that has no alternative use to the Company and the Company has enforceable rights to payment for progress completed to date inclusive of profit, the Company satisfies the performance obligation and recognizes revenue over time (generally less than one year), using costs incurred to date relative to total estimated costs at completion to measure progress toward satisfying our performance obligations. Incurred cost represents work performed, which corresponds with, and thereby best depicts, the transfer of control to the customer. Contract costs include labor, material and overhead. Adjustments to cost estimates are made periodically, and losses expected to be incurred on contracts in progress are charged to operations in the period such losses are determined. Other sales to customers are recognized upon shipment to the customer based on contract prices and terms. In the year ended May 31, 2020, 57% of revenue was recorded for contracts in which revenue was recognized over time while 43% was recognized at a point in time. In the year ended May 31, 2019, 55% of revenue was recorded for contracts in which revenue was recognized over time while 45% was recognized at a point in time.

Progress payments are typically negotiated for longer term projects. Payments are otherwise due once performance obligations are complete (generally at shipment and transfer of title). For financial statement presentation purposes, the Company nets progress billings against the total costs incurred on uncompleted contracts. The asset, “costs and estimated earnings in excess of billings,” represents revenues recognized in excess of amounts billed. The liability, “billings in excess of costs and estimated earnings,” represents billings in excess of revenues recognized.

 

If applicable, the Company recognizes an asset for the incremental, material costs of obtaining a contract with a customer if the Company expects the benefit of those costs to be longer than one year and the costs are expected to be recovered. As of May 31, 2020, the Company does not have material incremental costs on any open contracts with an original expected duration of greater than one year, and therefore such costs are expensed as incurred. These incremental costs include, but are not limited to, sales commissions incurred to obtain a contract with a customer.

We recognized the cumulative effect of initially applying the new revenue standard as an adjustment to the opening balance of retained earnings primarily because certain longer term contracts accounted for on the percentage of completion method did not contain “enforceable right to payment” terms, as defined. The comparative information has not been restated and continues to be reported under the accounting standards in effect for those periods.

The cumulative effect of the changes made to our consolidated June 1, 2018 balance sheet for the adoption of ASU 2014-09, were as follows:

          
Balance Sheet  Balance at May 31, 2018  Adjustments Due to ASU 2014-09  Balance at June 1, 2018
Assets               
Inventory  $11,317,775   $1,101,116   $12,418,891 
Costs and estimated earnings in excess of billings  $6,356,963   $(326,509)  $6,030,454 
Liabilities               
Billings in excess of costs and estimated earnings  $2,043,002   $(25,105)  $2,017,897 
Other accrued expenses  $1,412,502   $794,713   $2,207,215 
Equity               
Retained earnings  $26,959,080   $4,999   $26,964,079 
                

 

In accordance with the new revenue standard requirements, the disclosure of the impact of adoption of ASU 2014-09 on our consolidated balance sheet and income statement was as follows:

                        
   May 31, 2019
Balance Sheet  As Reported  Effect of Change Higher/(Lower)  Balances Without Adoption of ASU 2014-09
Assets         
Inventory  $11,239,331   $—     $11,239,331 
Costs and estimated earnings in excess of billings  $7,572,490   $—     $7,572,490 
Liabilities               
Other accrued expenses  $1,532,271   $—     $1,532,271 
Equity               
Retained earnings  $29,508,604   $—     $29,508,604 

 

 

                        
   For the year ended May 31, 2019
Income Statement  As Reported  Effect of Change Higher/(Lower)  Balances Without Adoption of ASU 2014-09
Revenues         
Sales, net  $33,619,031   $1,096,117   $32,522,914 
Costs and Expenses               
Cost of goods sold  $24,571,255   $1,101,116   $23,470,139 
Provision for income taxes  $515,000   $—     $515,000 
                
Net income (loss)  $2,544,525   $(4,999)  $2,549,524 

 

Shipping and Handling Costs:

 

Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $420,786 and $268,847 for the years ended May 31, 2020 and 2019. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.

 

Research and Development Costs:

 

Research and development costs are classified as a component of cost of sales. The amounts of these costs were $585,000 and $319,000 for the years ended May 31, 2020 and 2019.

 

 

 

Income Taxes:

 

The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.

 

The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2020 or 2019. The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2020 and 2019.

 

The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2016.

 

Sales Taxes:

 

Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. The Company collects these taxes from customers and remits the entire amount as required by the applicable law. The Company excludes from revenues and expenses the tax collected and remitted.

 

Stock-Based Compensation:

 

The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The stock-based compensation expense for the years ended May 31, 2020 and 2019 was $143,097 and $137,655.

 

New Accounting Standards:

 

In May 2014, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers. ASU 2014-09 is a comprehensive new revenue recognition model that requires a company to recognize revenue to depict the transfer of goods or services to a customer at an amount that reflects the consideration it expects to receive in exchange for those goods or services. ASU 2014-09 also requires additional disclosure about the nature, amount, timing and uncertainty of revenue and cash flows arising from customer contracts, including significant judgments and changes in judgments and assets recognized from costs incurred to obtain or fulfill a contract. ASU 2014-09, as amended, is effective for annual reporting periods, and interim periods within that period, beginning after December 15, 2018 (fiscal year 2020 for the Company). Companies may use either a full retrospective or a modified retrospective approach to adopt ASU 2014-09. The Company adopted ASU 2014-09 on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings. The effect of the adoption is detailed above.

 

Other recently issued Accounting Standards Codification (ASC) guidance has either been implemented or are not significant to the Company.

 

Shipping and Handling Costs:

Shipping and Handling Costs:

 

Shipping and handling costs on incoming inventory items are classified as a component of cost of goods sold, while shipping and handling costs on outgoing shipments to customers are classified as a component of selling, general and administrative expenses. The amounts of these costs classified as a component of selling, general and administrative expenses were $420,786 and $268,847 for the years ended May 31, 2020 and 2019. Shipping and handling activities that occur after the customer has obtained control of the product are considered fulfillment activities, not performance obligations.

Research and Development Costs:

Research and Development Costs:

 

Research and development costs are classified as a component of cost of sales. The amounts of these costs were $585,000 and $319,000 for the years ended May 31, 2020 and 2019.

Income Taxes:

Income Taxes:

 

The provision for income taxes provides for the tax effects of transactions reported in the financial statements regardless of when such taxes are payable. Deferred tax assets and liabilities are recognized for the expected future tax consequences of temporary differences between the tax and financial statement basis of assets and liabilities. Deferred taxes are based on tax laws currently enacted with tax rates expected to be in effect when the taxes are actually paid or recovered.

 

The Company's practice is to recognize interest related to income tax matters in interest income / expense and to recognize penalties in selling, general and administrative expenses. The Company did not have any accrued interest or penalties included in its consolidated balance sheets at May 31, 2020 or 2019. The Company recorded no interest expense or penalties in its consolidated statements of income during the years ended May 31, 2020 and 2019.

 

The Company believes it is no longer subject to examination by federal and state taxing authorities for years prior to May 31, 2016.

Sales Taxes:

Sales Taxes:

 

Certain jurisdictions impose a sales tax on Company sales to nonexempt customers. The Company collects these taxes from customers and remits the entire amount as required by the applicable law. The Company excludes from revenues and expenses the tax collected and remitted.

Stock-Based Compensation:

Stock-Based Compensation:

 

The Company measures compensation cost arising from the grant of share-based payments to employees at fair value and recognizes such cost in income over the period during which the employee is required to provide service in exchange for the award. The stock-based compensation expense for the years ended May 31, 2020 and 2019 was $143,097 and $137,655.

 

New Accounting Standards:

New Accounting Standards:

 

In May 2014, the Financial Accounting Standards Board (FASB) issued Accounting Standards Update (ASU) No. 2014-09, Revenue from Contracts with Customers. ASU 2014-09 is a comprehensive new revenue recognition model that requires a company to recognize revenue to depict the transfer of goods or services to a customer at an amount that reflects the consideration it expects to receive in exchange for those goods or services. ASU 2014-09 also requires additional disclosure about the nature, amount, timing and uncertainty of revenue and cash flows arising from customer contracts, including significant judgments and changes in judgments and assets recognized from costs incurred to obtain or fulfill a contract. ASU 2014-09, as amended, is effective for annual reporting periods, and interim periods within that period, beginning after December 15, 2018 (fiscal year 2020 for the Company). Companies may use either a full retrospective or a modified retrospective approach to adopt ASU 2014-09. The Company adopted ASU 2014-09 on June 1, 2018 using the modified retrospective method, which required the recognition of the cumulative effect of the transition as an adjustment to retained earnings. The effect of the adoption is detailed above.

 

Other recently issued Accounting Standards Codification (ASC) guidance has either been implemented or are not significant to the Company.

XML 39 R28.htm IDEA: XBRL DOCUMENT v3.20.2
1. Summary of Significant Accounting Policies: (Tables)
12 Months Ended
May 31, 2020
Accounting Policies [Abstract]  
Impact of Adoption of Standards Related to Revenue Recognition
          
Balance Sheet  Balance at May 31, 2018  Adjustments Due to ASU 2014-09  Balance at June 1, 2018
Assets               
Inventory  $11,317,775   $1,101,116   $12,418,891 
Costs and estimated earnings in excess of billings  $6,356,963   $(326,509)  $6,030,454 
Liabilities               
Billings in excess of costs and estimated earnings  $2,043,002   $(25,105)  $2,017,897 
Other accrued expenses  $1,412,502   $794,713   $2,207,215 
Equity               
Retained earnings  $26,959,080   $4,999   $26,964,079 
                
Revenue Impact on Financial Statements Balance Sheet
                        
   May 31, 2019
Balance Sheet  As Reported  Effect of Change Higher/(Lower)  Balances Without Adoption of ASU 2014-09
Assets         
Inventory  $11,239,331   $—     $11,239,331 
Costs and estimated earnings in excess of billings  $7,572,490   $—     $7,572,490 
Liabilities               
Other accrued expenses  $1,532,271   $—     $1,532,271 
Equity               
Retained earnings  $29,508,604   $—     $29,508,604 
Condensed Income Statement [Table Text Block]
                        
   For the year ended May 31, 2019
Income Statement  As Reported  Effect of Change Higher/(Lower)  Balances Without Adoption of ASU 2014-09
Revenues         
Sales, net  $33,619,031   $1,096,117   $32,522,914 
Costs and Expenses               
Cost of goods sold  $24,571,255   $1,101,116   $23,470,139 
Provision for income taxes  $515,000   $—     $515,000 
                
Net income (loss)  $2,544,525   $(4,999)  $2,549,524 

 

XML 40 R29.htm IDEA: XBRL DOCUMENT v3.20.2
2. Accounts and Other Receivables: (Tables)
12 Months Ended
May 31, 2020
Receivables [Abstract]  
Accounts receivable table
   2020  2019
Customers  $5,399,915   $4,438,373 
Customers - retention   630,823    950,684 
Gross accounts receivable   6,030,738    5,389,057 
Less allowance for doubtful accounts   211,267    109,755 
Net accounts and other receivables  $5,819,471   $5,279,302 
XML 41 R30.htm IDEA: XBRL DOCUMENT v3.20.2
3. Inventory: (Tables)
12 Months Ended
May 31, 2020
Inventory Disclosure [Abstract]  
Inventory table
   2020  2019
Raw materials  $658,024   $679,018 
Work-in-process   8,586,404    9,905,495 
Finished goods   963,009    754,818 
Gross inventory   10,207,437    11,339,331 
Less allowance for obsolescence   100,000    100,000 
Net inventory  $10,107,437   $11,239,331 
XML 42 R31.htm IDEA: XBRL DOCUMENT v3.20.2
4. Costs and Estimated Earnings on Uncompleted Contracts: (Tables)
12 Months Ended
May 31, 2020
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]  
Costs and estimated earnings on uncompleted contracts components table
   2020  2019
Costs incurred on uncompleted contracts  $6,395,550   $16,599,307 
Estimated earnings   3,816,527    6,526,707 
Total costs and estimated earnings   10,212,077    23,126,014 
Less billings to date   9,194,370    16,187,227 
Costs and estimated earnings not billed  $1,017,707   $6,938,787 
Costs and estimated earnings on uncompleted contracts table
   2020  2019
Costs and estimated earnings in excess of billings  $1,754,573   $7,572,490 
Billings in excess of costs and estimated earnings   736,866    633,703 
Costs and estimated earnings not billed  $1,017,707   $6,938,787 
Costs and estimated earnings on uncompleted contracts two table
   2020  2019
Number of Projects in progress   15    22 
Aggregate percent complete   80%   77%
Aggregate amount remaining  $2,234,962   $6,748,520 
Percentage of total value invoiced to customer   74%   54%
XML 43 R32.htm IDEA: XBRL DOCUMENT v3.20.2
5. Maintenance and Other Inventory: (Tables)
12 Months Ended
May 31, 2020
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]  
Maintenance and other inventory table
   2020  2019
Maintenance and other inventory  $2,479,497   $2,197,958 
Less allowance for obsolescence   1,600,447    1,466,081 
Maintenance and other inventory, net  $879,050   $731,877 
XML 44 R33.htm IDEA: XBRL DOCUMENT v3.20.2
6. Property and Equipment: (Tables)
12 Months Ended
May 31, 2020
Property, Plant and Equipment [Abstract]  
Property and equipment table
   2020  2019
Land  $195,220   $195,220 
Buildings and improvements   9,457,142    9,342,431 
Machinery and equipment   11,242,667    10,390,610 
Office furniture and equipment   2,209,382    1,975,392 
Autos and trucks   24,818    24,818 
Land improvements   455,429    455,429 
Gross property and equipment   23,584,658    22,383,900 
Less accumulated depreciation   14,177,168    13,066,458 
Property and equipment, net  $9,407,490   $9,317,442 
XML 45 R34.htm IDEA: XBRL DOCUMENT v3.20.2
9. Sales: (Tables)
12 Months Ended
May 31, 2020
Sales  
Sales by major customer type
   2020  2019
Construction  $15,621,784   $20,168,587 
Aerospace / Defense   10,771,129    11,383,374 
Industrial   1,988,628    2,067,070 
Sales, net  $28,381,541   $33,619,031 
XML 46 R35.htm IDEA: XBRL DOCUMENT v3.20.2
10. Income Taxes: (Tables)
12 Months Ended
May 31, 2020
Income Tax Disclosure [Abstract]  
Income Taxes Table
   2020  2019
Current tax provision:          
Federal  $375,000   $521,000 
State   —      —   
Total current tax provision   375,000    521,000 
Deferred tax provision:          
Federal   11,000   (6,000)
State   —      —  
Total deferred tax provision   11,000   (6,000)
Total tax provision  $386,000   $515,000 
Reconciliation of income tax statutory rate to effective rate
   2020  2019
Computed tax provision at the expected statutory rate  $717,400   $642,500 
State income tax - net of Federal tax benefit   500   500
Tax effect of permanent differences:          
Research tax credits   (272,000)   (166,000)
Foreign-derived intangible income deduction   (99,739)   - 
Other permanent differences   40,200   28,700
Other   (361)   9,300
Total tax provision  $386,000   $515,000 
Effective income tax rate   11.3%   16.8%
XML 47 R36.htm IDEA: XBRL DOCUMENT v3.20.2
11. Earnings Per Common Share: (Tables)
12 Months Ended
May 31, 2020
Earnings Per Share [Abstract]  
Earnings per common share table
   2020  2019
Average common shares outstanding   3,481,12    3,470,595 
Common shares issuable under stock option plans   8,663    17,043 
Average common shares outstanding assuming dilution   3,489,791    3,487,638 
XML 48 R37.htm IDEA: XBRL DOCUMENT v3.20.2
14. Stock Option Plans: (Tables)
12 Months Ended
May 31, 2020
Share-based Payment Arrangement [Abstract]  
Stock option plans table
   2020  2019
Risk-free interest rate   1.98%   2.48%
Expected life in years   3.9    3.8 
Expected volatility   32%   31%
Expected dividend yield   0%   0%
Stock options roll foward
   Shares  Weighted Average Exercise Price  Intrinsic Value
Outstanding - May 31, 2018   271,750   $11.33   $304,252 
     Options granted   43,000   $11.90      
     Less: options exercised   10,750   $3.05      
     Less: options expired   80,000   $11.68      
Outstanding - May 31, 2019   224,000   $11.71   $228,132 
     Options granted   50,250   $10.30      
     Less: options exercised   10,000   $6.35      
     Less: options expired   12,000   $14.34      
Outstanding - May 31, 2020   252,250   $11.52   $209,835 
Share-based Payment Arrangement, Option, Exercise Price Range [Table Text Block]
Outstanding and Exercisable               
Range of Exercise Prices   Number of Options    Weighted Average Remaining Years of Contractual Life    Weighted Average Exercise Price 
$5.01-$6.00   10,000    0.9   $5.69 
$7.01-$8.00   15,000    2.9   $7.74 
$8.01-$9.00   27,250    3.6   $8.69 
$9.01-$10.00   30,750    9.9   $9.85 
$10.01-$11.00   15,000    7.9   $10.30 
$11.01-$12.00   68,750    7.8   $11.57 
$12.01-$13.00   40,500    5.8   $12.38 
$13.01-$14.00   15,000    6.9   $13.80 
$16.01-$17.00   15,000    5.9   $16.40 
$19.01-$20.00   15,000    6.2   $19.26 
$5.00-$20.00   252,250    6.5   $11.52 

 

The following table summarizes information about stock options outstanding at May 31, 2019:

Outstanding and Exercisable               
Range of Exercise Prices   Number of Options    Weighted Average Remaining Years of Contractual Life    Weighted Average Exercise Price 
$5.01-$6.00   10,000    1.9   $5.69 
$6.01-$7.00   10,000    0.9   $6.35 
$7.01-$8.00   15,000    3.9   $7.74 
$8.01-$9.00   27,250    4.6   $8.69 
$10.01-$11.00   15,000    8.9   $10.30 
$11.01-$12.00   53,000    8.4   $11.79 
$12.01-$13.00   45,000    6.9   $12.38 
$13.01-$14.00   15,000    7.9   $13.80 
$16.01-$17.00   15,000    6.9   $16.40 
$19.01-$20.00   18,750    7.2   $19.26 
$5.00-$20.00   224,000    6.5   $11.71 

 

XML 49 R38.htm IDEA: XBRL DOCUMENT v3.20.2
19. Cash Flows Information: (Tables)
12 Months Ended
May 31, 2020
Supplemental Cash Flow Elements [Abstract]  
Supplemental cash flow information
   2020  2019
       
  Interest paid   none    none 
           
  Income taxes paid  $180,131   $550,498 
XML 50 R39.htm IDEA: XBRL DOCUMENT v3.20.2
Impact of Adoption of Standards Related to Revenue Recognition (Details) - USD ($)
May 31, 2020
May 31, 2019
Jun. 01, 2018
May 31, 2018
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]        
Inventory $ 10,107,437 $ 11,239,331    
Costs and estimated earnings in excess of billings 1,754,573 7,572,490    
Billings in excess of costs and estimated earnings 736,866 633,703    
Other accrued expenses   1,532,271    
Retained earnings $ 32,538,580 $ 29,508,604    
Calculated under Revenue Guidance in Effect before Topic 606 [Member]        
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]        
Inventory     $ 12,418,891 $ 11,317,775
Costs and estimated earnings in excess of billings     6,030,454 6,356,963
Billings in excess of costs and estimated earnings     2,017,897 2,043,002
Other accrued expenses     2,207,215 1,412,502
Retained earnings     26,964,079 $ 26,959,080
Difference between Revenue Guidance in Effect before and after Topic 606 [Member]        
Revenue, Initial Application Period Cumulative Effect Transition [Line Items]        
Inventory     1,101,116  
Costs and estimated earnings in excess of billings     (326,509)  
Billings in excess of costs and estimated earnings     (25,105)  
Other accrued expenses     794,713  
Retained earnings     $ 4,999  
XML 51 R40.htm IDEA: XBRL DOCUMENT v3.20.2
Revenue Impact on Financial Statements Balance Sheet (Details) - USD ($)
May 31, 2020
May 31, 2019
New Accounting Pronouncements or Change in Accounting Principle [Line Items]    
Inventory $ 10,107,437 $ 11,239,331
Costs and estimated earnings in excess of billings 1,754,573 7,572,490
Other accrued expenses   1,532,271
Retained earnings $ 32,538,580 29,508,604
Accounting Standards Update 2014-09 [Member]    
New Accounting Pronouncements or Change in Accounting Principle [Line Items]    
Inventory   0
Costs and estimated earnings in excess of billings   0
Other accrued expenses   0
Retained earnings   $ 0
XML 52 R41.htm IDEA: XBRL DOCUMENT v3.20.2
Revenue Impact on Financial Statements Income Statement (Details) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
New Accounting Pronouncements or Change in Accounting Principle [Line Items]    
Sales, net $ 28,381,541 $ 33,619,031
Cost of goods sold 19,144,451 24,571,255
Provision for income taxes 386,000 515,000
Net income (loss) $ 3,029,976 2,544,525
Calculated under Revenue Guidance in Effect before Topic 606 [Member]    
New Accounting Pronouncements or Change in Accounting Principle [Line Items]    
Sales, net   32,522,914
Cost of goods sold   23,470,139
Provision for income taxes   515,000
Net income (loss)   2,549,524
Accounting Standards Update 2014-09 [Member]    
New Accounting Pronouncements or Change in Accounting Principle [Line Items]    
Sales, net   1,096,117
Cost of goods sold   1,101,116
Provision for income taxes   0
Net income (loss)   $ (4,999)
XML 53 R42.htm IDEA: XBRL DOCUMENT v3.20.2
1. Summary of Significant Accounting Policies: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
Accounting Policies [Abstract]    
Domestic revenue as percentage of total 83.00% 78.00%
Asian revenue as percentage of total 11.00%  
Percent of revenue recognized with sales contracts for which revenue is recognized over time 57.00% 55.00%
Percent of revenue recognized with sales contracts containing a single performance obligation 43.00% 45.00%
Shipping and handling costs $ 420,786  
Shipping and handling costs   $ 268,847
Research and development costs 585,000 319,000
Share based compensation expense $ 143,097 $ 137,655
XML 54 R43.htm IDEA: XBRL DOCUMENT v3.20.2
Accounts receivable table (Details) - USD ($)
May 31, 2020
May 31, 2019
Receivables [Abstract]    
Customers $ 5,399,915 $ 4,438,373
Customers - retention 630,823 950,684
Gross accounts receivable 6,030,738 5,389,057
Less allowance for doubtful accounts 211,267 109,755
Net accounts and other receivables $ 5,819,471 $ 5,279,302
XML 55 R44.htm IDEA: XBRL DOCUMENT v3.20.2
Inventory table (Details) - USD ($)
May 31, 2020
May 31, 2019
Inventory Disclosure [Abstract]    
Raw materials $ 658,024 $ 679,018
Work-in-process 8,586,404 9,905,495
Finished goods 963,009 754,818
Gross inventory 10,207,437 11,339,331
Less allowance for obsolescence 100,000 100,000
Net inventory $ 10,107,437 $ 11,239,331
XML 56 R45.htm IDEA: XBRL DOCUMENT v3.20.2
Costs and estimated earnings on uncompleted contracts components table (Details) - USD ($)
May 31, 2020
May 31, 2019
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]    
Costs incurred on uncompleted contracts $ 6,395,550 $ 16,599,307
Estimated earnings 3,816,527 6,526,707
Total costs and estimated earnings 10,212,077 23,126,014
Less billings to date 9,194,370 16,187,227
Costs and estimated earnings not billed $ 1,017,707 $ 6,938,787
XML 57 R46.htm IDEA: XBRL DOCUMENT v3.20.2
Costs and estimated earnings on uncompleted contracts table (Details) - USD ($)
May 31, 2020
May 31, 2019
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]    
Costs and estimated earnings in excess of billings $ 1,754,573 $ 7,572,490
Billings in excess of costs and estimated earnings 736,866 633,703
Costs and estimated earnings not billed $ 1,017,707 $ 6,938,787
XML 58 R47.htm IDEA: XBRL DOCUMENT v3.20.2
Costs and estimated earnings on uncompleted contracts two table (Details)
May 31, 2020
USD ($)
May 31, 2019
USD ($)
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]    
Number of Projects in progress 15 22
Aggregate percent complete 80.00% 77.00%
Aggregate amount remaining $ 2,234,962 $ 6,748,520
Percentage of total value invoiced to customer 74.00% 54.00%
XML 59 R48.htm IDEA: XBRL DOCUMENT v3.20.2
Maintenance and other inventory table (Details) - USD ($)
May 31, 2020
May 31, 2019
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]    
Maintenance and other inventory $ 2,479,497 $ 2,197,958
Less allowance for obsolescence 1,600,447 1,466,081
Maintenance and other inventory, net $ 879,050 $ 731,877
XML 60 R49.htm IDEA: XBRL DOCUMENT v3.20.2
4. Costs and Estimated Earnings on Uncompleted Contracts: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]    
Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year $ 1,481,320 $ 4,187,015
XML 61 R50.htm IDEA: XBRL DOCUMENT v3.20.2
5. Maintenance and Other Inventory: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]    
Provision for potentially obsolete inventory $ 180,000 $ 175,000
XML 62 R51.htm IDEA: XBRL DOCUMENT v3.20.2
Property and equipment table (Details) - USD ($)
May 31, 2020
May 31, 2019
Property, Plant and Equipment [Abstract]    
Land $ 195,220 $ 195,220
Buildings and improvements 9,457,142 9,342,431
Machinery and equipment 11,242,667 10,390,610
Office furniture and equipment 2,209,382 1,975,392
Autos and trucks 24,818 24,818
Land improvements 455,429 455,429
Gross property and equipment 23,584,658 22,383,900
Less accumulated depreciation 14,177,168 13,066,458
Property and equipment, net $ 9,407,490 $ 9,317,442
XML 63 R52.htm IDEA: XBRL DOCUMENT v3.20.2
6. Property and Equipment: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
Property, Plant and Equipment [Abstract]    
Depreciation expense $ 1,141,110 $ 1,072,959
Commitments for future capital expenditures $ 200,000  
XML 64 R53.htm IDEA: XBRL DOCUMENT v3.20.2
7. Short-Term Borrowings: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
Debt Disclosure [Abstract]    
Proceeds from bank debt $ 1,461,500
Line of Credit Facility, Current Borrowing Capacity 10,000,000  
Line of credit outstanding balance 0 0
Uncleared checks $ 523,344 $ 292,000
XML 65 R54.htm IDEA: XBRL DOCUMENT v3.20.2
Sales by major customer type (Details) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
Policyholder Account Balance [Line Items]    
Sales, net $ 28,381,541 $ 33,619,031
Construction    
Policyholder Account Balance [Line Items]    
Sales, net 15,621,784 20,168,587
Aerospace / Defense    
Policyholder Account Balance [Line Items]    
Sales, net 10,771,129 11,383,374
Industrial    
Policyholder Account Balance [Line Items]    
Sales, net $ 1,988,628 $ 2,067,070
XML 66 R55.htm IDEA: XBRL DOCUMENT v3.20.2
9. Sales: (Details Narrative)
12 Months Ended
May 31, 2020
May 31, 2019
Sales    
Percentage of total sales to significant individual customers 41.00% 36.00%
Percentage of total sales to significant individual customer1 10.00% 17.00%
Percentage of total sales to significant individual customer2 9.00% 8.00%
Percentage of total sales to significant individual customer3 6.00% 6.00%
Percentage of total sales to significant individual customer4 6.00% 5.00%
Percentage of total sales to significant individual customer5 5.00%  
Percentage of total sales to significant individual customer6 5.00%  
XML 67 R56.htm IDEA: XBRL DOCUMENT v3.20.2
Income Taxes Table (Details) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
Current tax provision:    
Federal $ 375,000 $ 521,000
State 0 0
Total current tax provision 375,000 521,000
Deferred tax provision:    
Federal 11,000 (6,000)
State 0 0
Total deferred tax provision 11,000 (6,000)
Total tax provision $ 386,000 $ 515,000
XML 68 R57.htm IDEA: XBRL DOCUMENT v3.20.2
Reconciliation of income tax statutory rate to effective rate (Details) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
Income Tax Disclosure [Abstract]    
Computed tax provision at the expected statutory rate $ 717,400 $ 642,500
State income tax - net of Federal tax benefit 500 500
Tax effect of permanent differences:    
Research tax credits (272,000) (166,000)
Foreign-derived intangible income deduction (99,739) (0)
Other permanent differences 40,200 28,700
Other (361) 9,300
Total tax provision $ 386,000 $ 515,000
Effective income tax rate 11.30% 16.80%
XML 69 R58.htm IDEA: XBRL DOCUMENT v3.20.2
10. Income Taxes: (Details Narrative) - USD ($)
72 Months Ended
May 31, 2026
May 31, 2020
Income Tax Disclosure [Abstract]    
Deferred Tax Assets, Gross   $ 829,500
Deferred Tax Assets, Tax Credit Carryforwards   $ 369,000
Tax Credit Carryforward, Expiration Date May 31, 2026  
XML 70 R59.htm IDEA: XBRL DOCUMENT v3.20.2
Earnings per common share table (Details) - shares
12 Months Ended
May 31, 2020
May 31, 2019
Earnings Per Share [Abstract]    
Average common shares outstanding 3,481.12 3,470,595
Common shares issuable under stock option plans 8,663 17,043
Average common shares outstanding assuming dilution 3,489,791 3,487,638
XML 71 R60.htm IDEA: XBRL DOCUMENT v3.20.2
13. Employee Stock Purchase Plan: (Details Narrative) - shares
12 Months Ended
May 31, 2020
May 31, 2019
Share-based Payment Arrangement [Abstract]    
Common shares issued from employee stock purchase plan 1,374 1,542
XML 72 R61.htm IDEA: XBRL DOCUMENT v3.20.2
Stock option plans table (Details)
12 Months Ended
May 31, 2020
May 31, 2019
Share-based Payment Arrangement [Abstract]    
Risk-free interest rate 1.98% 2.48%
Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Term 3 years 10 months 24 days 3 years 9 months 18 days
Expected volatility 32.00% 31.00%
Expected dividend yield 0.00% 0.00%
XML 73 R62.htm IDEA: XBRL DOCUMENT v3.20.2
Stock options roll foward (Details) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
May 31, 2018
Share-based Payment Arrangement [Abstract]      
Stock options outstanding 252,250 224,000 271,750
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price $ 11.52 $ 11.71 $ 11.33
Intrinsic value of options outstanding $ 209,835 $ 228,132 $ 304,252
Options granted 50,250 43,000  
Weighted average exercise price of options granted $ 10.30 $ 11.90  
Stock options exercised 10,000 10,750  
Weighted average exercise price of options exercised $ 6.35 $ 3.05  
Stock options expired 12,000 80,000  
Weighted average exercise price of options expired $ 14.34 $ 11.68  
XML 74 R63.htm IDEA: XBRL DOCUMENT v3.20.2
Stock option plans - Stock options outstanding and exercisable (Details)
May 31, 2020
$ / shares
shares
May 31, 2019
$ / shares
shares
May 31, 2018
$ / shares
shares
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum $ 5.00    
Range of exercise prices, Maximum $ 20.00    
Weighted Average Remaining Years of Contractual Life 6.5    
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number | shares 252,250 224,000 271,750
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price $ 11.52 $ 11.71 $ 11.33
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range One [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 5.01    
Range of exercise prices, Maximum $ 6.00    
Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable | shares 10,000    
Weighted Average Remaining Years of Contractual Life 0.9    
Share-based Payment Arrangement, Option, Exercise Price Range, Exercisable, Weighted Average Exercise Price $ 5.69    
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Three [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 7.01    
Range of exercise prices, Maximum $ 8.00    
Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable | shares 15,000    
Weighted Average Remaining Years of Contractual Life 2.9    
Share-based Payment Arrangement, Option, Exercise Price Range, Exercisable, Weighted Average Exercise Price $ 7.74    
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Four [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 8.01    
Range of exercise prices, Maximum $ 9.00    
Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable | shares 27,250    
Weighted Average Remaining Years of Contractual Life 3.6    
Share-based Payment Arrangement, Option, Exercise Price Range, Exercisable, Weighted Average Exercise Price $ 8.69    
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Five [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 9.01    
Range of exercise prices, Maximum $ 10.00    
Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable | shares 30,750    
Weighted Average Remaining Years of Contractual Life 9.9    
Share-based Payment Arrangement, Option, Exercise Price Range, Exercisable, Weighted Average Exercise Price $ 9.85    
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Six [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 10.01    
Range of exercise prices, Maximum $ 11.00    
Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable | shares 15,000    
Weighted Average Remaining Years of Contractual Life 7.9    
Share-based Payment Arrangement, Option, Exercise Price Range, Exercisable, Weighted Average Exercise Price $ 10.30    
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Seven [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 11.01    
Range of exercise prices, Maximum $ 12.00    
Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable | shares 68,750    
Weighted Average Remaining Years of Contractual Life 7.8    
Share-based Payment Arrangement, Option, Exercise Price Range, Exercisable, Weighted Average Exercise Price $ 11.57    
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Eight [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 12.01    
Range of exercise prices, Maximum $ 13.00    
Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable | shares 40,500    
Weighted Average Remaining Years of Contractual Life 5.8    
Share-based Payment Arrangement, Option, Exercise Price Range, Exercisable, Weighted Average Exercise Price $ 12.38    
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Nine [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 13.01    
Range of exercise prices, Maximum $ 14.00    
Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable | shares 15,000    
Weighted Average Remaining Years of Contractual Life 6.9    
Share-based Payment Arrangement, Option, Exercise Price Range, Exercisable, Weighted Average Exercise Price $ 13.80    
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Ten [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 16.01    
Range of exercise prices, Maximum $ 17.00    
Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable | shares 15,000    
Weighted Average Remaining Years of Contractual Life 5.9    
Share-based Payment Arrangement, Option, Exercise Price Range, Exercisable, Weighted Average Exercise Price $ 16.40    
Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Eleven [Member]      
Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]      
Range of exercise prices, Minimum 19.01    
Range of exercise prices, Maximum $ 20.00    
Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable | shares 15,000    
Weighted Average Remaining Years of Contractual Life 6.2    
Share-based Payment Arrangement, Option, Exercise Price Range, Exercisable, Weighted Average Exercise Price $ 19.26    
XML 75 R64.htm IDEA: XBRL DOCUMENT v3.20.2
14. Stock Option Plans: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
Share-based Payment Arrangement [Abstract]    
Common shares reserved for stock options 160,000  
Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value $ 2.85 $ 3.20
Price per share of common $ 10.99 $ 11.08
Shares available 131,250  
Proceeds exercise of options $ 31,750 $ 32,830
XML 76 R65.htm IDEA: XBRL DOCUMENT v3.20.2
15. Preferred Stock: (Details Narrative)
May 31, 2020
shares
Equity [Abstract]  
Preferred shares authorized 2,000,000
XML 77 R66.htm IDEA: XBRL DOCUMENT v3.20.2
16. Treasury Stock: (Details Narrative) - shares
May 31, 2020
May 31, 2019
Equity [Abstract]    
Treasury Stock 550,872 550,872
XML 78 R67.htm IDEA: XBRL DOCUMENT v3.20.2
17. Retirement Plan: (Details Narrative) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
Retirement Benefits [Abstract]    
Pension Cost (Reversal of Cost) $ 158,191 $ 71,222
XML 79 R68.htm IDEA: XBRL DOCUMENT v3.20.2
Supplemental cash flow information (Details) - USD ($)
12 Months Ended
May 31, 2020
May 31, 2019
Supplemental Cash Flow Elements [Abstract]    
  Interest paid $ 0 $ 0
  Income taxes paid $ 180,131 $ 550,498
EXCEL 80 Financial_Report.xlsx IDEA: XBRL DOCUMENT begin 644 Financial_Report.xlsx M4$L#!!0 ( &)(!U$'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 " !B2 =1S@,NINX K @ $0 &1O8U!R;W!S+V-O&ULS9+; M2L0P$(9?17+?3MK%4^CF1O%*07!!\2XDL[O!YD RTN[;F];=+J(/X&5F_GSS M#4RGH] AX7,*$1-9S!>CZWT6.J[9GB@*@*SWZ%2N2\*7YC8DIZ@\TPZBTA]J MA]!R?@4.21E%"B9@%17^9U*^LS M*:^Q_,I6T"'BFITFOZ[N[C%W%G;!V*W] MQ\8G0=G!K[N07U!+ P04 " !B2 =1F5R<(Q & "<)P $P 'AL+W1H M96UE+W1H96UE,2YX;6SM6EMSVC@4?N^OT'AG]FT+QC:!MK03621A'^_1S80RY8-[9)-NIL\!"SI^\Y%1^?H.'GS[BYBZ(:(E/)X M8-DOV]:[MR_>X%#BVR]*+ M41B1%G\@M MNN01.+5)#3(3/PB=AIAJ4!P"I DQEJ&&^+3&K!'@$WVWO@C(WXV(]ZMOFCU7 MH5A)VH3X$$8:XIQSYG/1;/L'I4;1]E6\W*.76!4!EQC?-*HU+,76>)7 \:V< M/!T3$LV4"P9!AI@S M&L%&KQMUAVC2/'K^!?F<-0HACA*FNVB<5@$_9Y>PTG!Z(++9OVX?H;5,VPLCO='U!=*Y \FIS_I,C0' MHYI9";V$5FJ?JH,@H%\;D>/N5Z> HWEL:\4*Z">P'_T=HWPJOX@L Y M?RY]SZ7ON?0]H=*W-R-]9\'3BUO>1FY;Q/NN,=K7-"XH8U=RSTS0LS0[=R2^JVE+ZU)CA* M]+',<$X>RPP[9SR2';9WH!TU^_9==N0CI3!3ET.X&D*^ VVZG=PZ.)Z8D;D* MTU*0;\/YZ<5X&N(YV02Y?9A7;>?8T='[Y\%1L*/O/)8=QXCRHB'NH8:8S\-# MAWE[7YAGE<90-!1M;*PD+$:W8+C7\2P4X&1@+: '@Z]1 O)256 Q6\8#*Y"B M?$R,1>APYY=<7^/1DN/;IF6U;J\I=QEM(E(YPFF8$V>KRMYEL<%5'<]56_*P MOFH]M!5.S_Y9KF4Q9Z;RWRT,"2Q;B%D2XDU=[=7GFYRN>B)V^I=W MP6#R_7#)1P_E.^=?]%U#KG[VW>/Z;I,[2$R<><41 71% B.5' 86%S+D4.Z2 MD 83 >LX=SFWJXPD6L_UC6'ODRWSEPVSK> U[F M$RQ#I'[!?8J*@!&K8KZZKT_Y)9P[M'OQ@2";_-;;I/;=X Q\U*M:I60K$3]+ M!WP?D@9CC%OT-%^/%&*MIK&MQMHQ#'F 6/,,H68XWX=%FAHSU8NL.8T*;T'5 M0.4_V]0-:/8--!R1!5XQF;8VH^1."CS<_N\-L,+$CN'MB[\!4$L#!!0 ( M &)(!U$P%EQS004 +45 8 >&PO=V]R:W-H965T&UL ME9A=;^(X%(:O9W^%A?9B1BHE KY3A\=$]N4%RE?[9"[/WC6H([5\V6DT_]D MMW^VW6X0/]%&QEDP$,2AV/^RMRP11P&>>R* 9@'T0X![Z@U>%N#5#6AG >TT M,_NFI'F8,,.&%TKNB+)/@YH]2).91D/S0V'[?6$4W TAS@S'D+ I>1."K/6Y%H$//A5H 4T.1(](%U15/&.O1// M/2/4H4X)SQB/'B6K<^+T3H9/\/"9W)X3S['A[@!IC)?GUTOU/#2_?XU>M%'P MC?^-2+9SR78JV3XA.9%^ B//D,?W#2_K,#S<=9K?$8I.3M%!94: $*08-Q%; ME6'@\4L6:8YP='..;KULC(1(6$0>^$8J4\:#ZQB58#B]'*=7#V?.52@#.R@( M#,S2?L*5LF'PVZ=/__V2?T'KYVC]>F@WH?8A4QGA#5S697BXVLTS@C3(D0;_ M"^F9,W4:"->JR)+K%([HH$+C1*F/3%@W5L@UFTZGZ;D8VI%9NZC6M3"A>0>R MB)-9$K]P50J$BSA-KSWH8SRTX*%U>![X*K3^!DF;L;@\2;C0X^CY]OZ!3*Z? MIN/K!9G.QAA?8;ZN5X=O#-VIH"NG4*'>R'?^7DJ(2SGV;]#M>%V,K/!P%W?A MC.R1O9%I 'CA,O19.A-"^K7"V+M-IS?H]?I8W7(+?W=Q@\X(I\*7"BPUA3LC M"P.C@$A%QC*!I$)N95#>X;CZ#+,/MS!_%W?M#'(4!(IK?78X(+?P'+D7Y62X MY,"!7GF/H(D3!5-2#+,H"B[NY1\QQ_8,WO H=Z(4$9>;085;0[!@.R8"AB$6 MQ<'%_?PC8M[15K^5>D,J4()!RHJ ZU5&0[SI/V,.Q2KU#/*IVX5BL]<8V1%.:"URL%4&*[V M.PIVUL8.J*5DN&(%65$!:*T*D'8=&8.UKJ0J'PI5UB^:S/H7K>[AI'W*U!KO @"ID*H$*]_=J+0SFR4L4^K BEZSL8Y]D*IU4Q6X) M;H=>S^V XX/E;\L("K?W:BT%CJT:)A%K!B6;W"<&*K8(H!?+-G0RY>XQ5;O? MH^W.!ZC6T3Z7_2K2_4)-?#L5W6]YY5?S/,?M1:1+Q)80Z MYSW(B=KO$>Y/C-RDNV8OTA@9IX=KS@*N[ -P?RFE.9S8%^0[M<-_ 5!+ P04 M " !B2 =1DP.N&@H& #:%@ & 'AL+W=O[..#4OHBYIXIDF[<[VH;.9IMU]9F0ZUE0279+. M9;]^0=FQ%)%4\A!'L@'H 1P )W=*_W3;*2TZ*&I6W,^VUB[/5TL3+F1C3#O MU5:V\,M:Z498N-6W"[/54JPZI:9>4(S312.J=K8\Z[Z[TLLSM;-UU6\&U\BY[L ME:HVW2>Z/\CB&2IWQJKFH P(FJK=_QS%WNS-&+VJWA$C,P1Q10'M"]?JTV* MY]H+<._H(SWZ2#MS+.;C3FO96B2, ;=.)RRRHT7664QB%H79(-&N4.DNY*]= M=2=J>(0)16IOBG>F7%7=+0DGO,AI=K:X&P;%%^0X(SFE1[EG8),CV&02[/5& M:7MBI6Y0U=Y)8YL8TKV==(@4 !0@?!+HQ[)4.X#615;9 MC=30*$H)L;VII9FC5MH0:NZAX3DIDHR,4 ?D:%8P' EO>D2=3J+^ C%MK=*/ M(6QI(%(0TX2-SSX@2"@K&(O$-#NBRR;176FY%=4*R0=H_$8&CSWSGIVDF!(Z M@NB+,4))BL, \R/ _%4 J[94C416/(1!YO[I89+D(XR^%&49)ED88W'$6$R7 MNS*'K(3JJ9JN5TJAVZJ]-0 <@EM*8Y!:HYNJKMVW(0\*_X@SGO",C7SPY3*> MT:2(!)K@OM7C23>^*RMJ()5A-PRV=NR?=))0EI)QN$.2.$NSC+ (V $OD4FP M7V$$L;+M^*CO!]53L46[P<'L$%*>%=CK80&YC)$\BZ0*ZCB*!#I$X0$."#*2P<%$$/=D1E[!9D!@.^E2N*[6$N)L=MK% M/HZ;^>E<\)2.NVY0SOD70=VS&IFFM4]R+2&37^X<)$!7T!,('R,-R.7%4.XY MTI[6R N\%J\TGY,2X'R>%\D87$"2D"+-BS0"K^VKLI6-TJ >ZXS$IQ:2I(1CKP8F'^A6GE.S%:4\G\%.8Z2^D[,EFO*E M9RDR35/'V60K'MTX$G3#9Q_2L8^7:0'!!-.TB)5R3U1DFJD IMY!34!%-)5Q MNU8XX#[',,SSW ,:X"R&"\;S,%#:7$5!!T),0X:9ZF8S]\N91!'D4HE0[6H&EF M>L[_@W(/HO7IAG.6LV1-49Z(]=]!I[KB$\E M,NX!<_06O<>40V7K/0O.D=A9Z%W5?W"B^1QC[/Z0 MV0CMUI!W;V#H_3#\A$IS69S,<8+G.>9=4L =+>8)(P?%8)!#FQ0NDO%(&);+ M6(2::$]-=)J:KF#T/H&L+L6V@N0(8O29I\AX@5,/9$ 0,B:/=37:,Q2=7K&^ M20O3X$OEY:]0C,+S>>YEK"])8T)T(Z383[7F>>=9#]000A M!_@0P.$)@R9]93()BDQ/+WL&\S>FT''[CJ,B29;\#44]EXO M16;-D&1XUEP,7CRZM[Y?A;Z%U0'5<@VJ^'T&-O3^1>K^QJIM]R[R1EFKFNYR M(P4XX 3@][52]NG&O=X\OLY>_@]02P,$% @ 8D@'40;U3XA] @ D@8 M !@ !X;"]W;W)KJ: MD!"@58C4,E7K0R54MNYAVH-)#F+5B9GME+*_?FX5R!KLN2J=TE"KF=>@/OZ>"6KPMC#_PTV; U+M#\ MW,P5[?S.)>;J[SJ1=8(!28 M&>O Z/* ,Q3"&A'&W];3ZU):X?[ZR?W*U4ZU+)G&F12_>&Z*J3?Q(,<5JX6Y ME=OOV-836[],"NV^8=O$QF,/LEH;6;9B(BAYU5S98]N'/<$@.B((6T'X7D'4 M"B)7:$/FROK&#$L3);>@;#2YV87KC5-3-;RRO^+"*+K+26?2F:RT%#QG!G.X M9()5&<+"VFGX/&<**U.@X1D37^ K? (?=$&G.O$-9;<>?M9FNFPRA4G!VJ?:JX*SOLR@Z=773$;F&H8'H8#<@57/&*RN9,P%QJ M[IZNWQ=+;10]8W]>219UR2*7;'BTQV5)G@LCL_L3H*:"5. ( ^SWC?CCL@CCOB^,/$)W"M==V/&[_ & ;#8!(\;V]?7'@VC ;]N*,. M=_0J[@^:O+I6NT/@/M#1"X X#B;C\!GGFV$-IK\W,>RTOF%JS2L- EXUE/X'4$L#!!0 ( M &)(!U%'-Z*S]P, &D- 8 >&PO=V]R:W-H965T&UL MK5==C^,F%/TKR*VJ5II= _Z>)I$FV7[,P[2CG6[[4/6!Q"1!:T,*9#+[[PO8 MXR0VMMIJ7FR#[SV< USN9782\K/:4ZK!2UUQ-0_V6A]NPU!M]K0FZKTX4&[^ M;(6LB39-N0O505)2.J>Z"C&$:5@3QH/%S/4]RL5,''7%.'V40!WKFL@O2UJ) MTSQ P6O'1[;;:]L1+F8'LJ-/5'\Z/$K3"CN4DM64*R8XD'0[#^[0[0HEUL%9 M_,[H25U\ RME+<1GV[@OYP&TC&A%-]I"$/-ZIBM:51;)\/B[!0VZ,:WCY?X-38QFD -D>E M1=TZ&P8UX\V;O+03<>& QAQPZX#[#M&(0]0Z1$YHP\S)^D T6@4]/ M'\"W7W\W"[49T+J%FQ9\V8#C$7"$P8/@>J_ #[RDY35 :)AV=/$KW26>1'P@ M7T"$;@"&&'KXK/ZM-RHFR$3=W$4.+AJ!:R>HFS7PY]U::6EVYE\3Z'&''COT M> 3]B514W0!.M6_B&]_$^=I0?5[@/,I1$J-9^'PY(T/#*$I1 :.SX16]I*.7 M3-);":7M+MD)42I@]E#IH]E@I!>CHP+%<9ST:0X-<9QD"">)GV;:T4RG:-I3 M\%8=R(;. W/,*2J?:;#XYBN4PN_'GC])H10X2+%EWJE/!U0+'&6P@#U)'CL8 M9UF6^A5EG:)L>E^8(X_QW0W844XEJ0#A)2"E.1N8W7SV5 3TQ1SSBBH?_6Q M*RFB.$9]^D.[%,9)D<=^^GE'/W_K!?GU0*TNO@/,19Q/53Y@&T40IWE?E<<. M0I05V*^JZ%05;Z'JGFMJ?NO1L"Z&\8(03.*>BJ%96IB\[=> X#D7P+=0\<#4 MQFQ"PJDX>K=8.\Q5-.,8]T1XK-XAA+-H1,9%2D.3$?*;T"8LA-Y3.;%C6I#K MN8YPD?9I#NV2+(O&6.(S2_S6@= FG#4UY1NU)]0S<^64:;9"@28O_K!OV5SM M_!@E13;0ZS&$29'@D9,8G=,EBB;7Y?&_$8Z&//(4PGY$>^P2E%S:7=,]YU\T MF8#_SP+]8NKNB1WGR<40%YXE\&3WQ"3-T24X)VTTG;671+&-RQ@EJXZVYJ-$ MGY!#+[/LSY]G]4@K,.+HK6F64H'+EN M"L*NM[LOW+DJN=>_M/<(5PR?89I+R .1.\85J.C60!H.AIALZOJFH<7!E<9K MH4VA[3[WYBY$I34P_[="Z->&':"[72W^ 5!+ P04 " !B2 =1_13J5D@$ M "B$P & 'AL+W=O7' :KX"YMI/<_O>S":7!$*]9HON28#CG M>^P/QS[8DQUEKWR-L0#?RJ+B4VLM1'UCVSQ;XQ+Q:UKC2CY9458B(9OLQ>8U MPRAOG,K"AHX3VB4BE36;-/<>V&Q"-Z(@%7Y@@&_*$K&W.US0W=1RK?<;C^1E M+=0->S:IT0M>8O%4/S#9LCN5G)2XXH16@.'5U+IU;U+74PZ-Q1\$[_C!-5!# M>:;T535^S:>6HWJ$"YP))8'DWQ;/<5$H)=F/KZVHU<54CH?7[^H_-X.7@WE& M',]I\2?)Q7IJQ1;(\0IM"O%(=[_@=D"!TLMHP9M?L-O;!M(XVW!!R]99]J D MU?X??6M!'#A >,0!M@Y0<_#"(PY>Z^#I$:(C#G[KX.L._A&'H'5HAF[OQ]Z M6R"!9A-&=X I:ZFF+AKZC;?D12J5*$O!Y%,B_<1L3BO.:4%R)' .ED+^R300 M'-"5;-'L=4V+'#,.TJ\;(M[ %7A:+L"//_PTL84,KT3LK UUMP\%CX8J2YD: MC2KXZQZ7SYC]/2(S-\O_1V#3SW"X".&X^]G+UTT$BKY6,[PA_:)9X,80.[-LM MAG8P3(+$B9V^83HTO((Q3+P@Z0Q[,+P.AF>$\9M<14F5T1*/C=;HJU;?&UZC M#$\MN;QRS+;8FH&Q7+R0SF*O$Q[B"GP_@(%&Z_QX/9A^!],WPFSG)F\REG"^ MD5-!5B& R[J@;QBW3VC=K.ZU3+XQZ/Y@D*&;:/DUM'%#WPM]+;V,W?T\]_1\ MG1[/H.,97()GO6'96I:YHT2# 2U/G[!#$S?R(T_C:>SN"3S/U^GQ##N>H9'G M;?Z/K(7[RK20"YZ@X';YI-8Z_\I)/K7^&0.XKA#'!L1 MIU7^WX4\&>,2, M0F[T/2&K+J2S2(8KL@.3)-+2,ST_7@^FZWQ\T#O?H92W0;2RHJ78B%'HP4#[ M ER8.WS"5!V)=^6YX4&QZS,[V 2YWZ5V_@%D[O$IT,X7 MZE/]V*VXYNW*_ZHB9LT3)GPKU./L>TX2Z: O%#"]@% ?],=.R#5OA3Y32Z S M2ML;VQ4FOJ1N+]2_,T<,Y8K@Q<%@7SAB*>M)Z#H>U*:S?7"\H4ZO M[A&3^V ."KR2KLYU)#78_D!HWQ"T;DX\GJD0M&PNUQCEF"D#^7Q%J7AOJ$.4 M[EAN]B]02P,$% @ 8D@'42;B:A\N!@ BQ< !@ !X;"]W;W)K^$,.BYKAI],]L9 ML[]:+'2Q$S77[^1>-/!E*U7-#;RJQX7>*\$WK5)=+4@4)8N:E\UL>=V.W:OE MM3R8JFS$O4+Z4-=!S^;@S=F"QO-[S1_$@S)?]O8*W16]E M4]:BT:5LD!+;F]DMOEI18A5:B;]+\:3/GI%=REK*K_;EX^9F%EE$HA*%L28X M_!S%2E25M00XOIV,SOHYK>+Y\ZOU#^WB83%KKL5*5O^4&[.[F64SM!%;?JC, M9_GTAS@MB%E[A:QT^Q\]=;(LGZ'BH(VL3\J H"Z;[I<_GQQQIH"3"05R4B!C M!3JA0$\*M%UHAZQ=UGMN^/):R2>DK#18LP^M;UIM6$W9V&U\, J^EJ!GEBO9 M:%F5&V[$!CT8^($],AK)+5IQO4,?8)\UFJ,O#^_1SS_^ZZ M"HW9[/L2N]Y(6YFD$9:J*.8+7_Z 2?1;]U_2#C%3=D\=A%;FE+H MJ\#$<3]QW$X<3ZSC3TCQLBED+7Q[TNFR5M=F\G%)(Y+G:7*].)[[RI4C+(X9 M8;W<&W"L!\="7EG>;OZ%T.TBR4A(]T(V15D)U/2H[;A]*VR4;=LHVRI9!SR3 M]),G0<^\%[ 31C"R^ M(KFW\#0JM3Y YD$]1C9XRD)H'^;4Q1+3*$]'D#UB49*PQ(\XZQ%G0<3W2A[+ MMFY;F&5SA'V5Z@7)-90.H0O1%-X@S%PT601_(] >L92=B[T!G?>@\PM1L!5* M@6M?PXT_^UV;N]/G+DA7BD:3&'$T5-\HF"BK'6\>!81!@Z39"04E'T W!G&M M!20/;S:H*OFZK"X6#GQ6\G'0-;=%(0_-R7HW+22,*(]\7?E]=#)XOOPYBR.< MY",W>03S# *03#B*#)A)$//'UZCSPB/.K%D4IP2/T;ER&+.,TG@"WL "F%Y( M$;'GY0:)9SA?Z0DG4M>).,XB1L8P/8))RG Z@7*@#!SFC%>4EU+B9.9MYB:9 MN]NNW)S&<9Y- !WH [,@T)74I_ 4VI1U>S@17#5 HVVNB&>HD^TA!3*CLJ/> M93 ''LMPFN-QV?0(SC&+240G*B<>N B'R:C/M3U_L>GEQ>DRS9P2YL+TR+$T MSN@$R(&1<)B2 *2R+ 1140,A66+RXG3I98ZCB,8I'2-U)2E)HLG &)@(AZGH MK[9:\1/>8+9Y:(7B)(['4%TY2+8XCZ=JPD! .,Q =Z?0?!NP12"TO>OP\%,$ M"W%<[LK-,YT5/?XBP=\ZU/ MC+7MH1?ZP&(DS&)=B^8&HQ>JCX((9$/F>-HC">6*)A,]&QFXBB3!Q/E0-N#) M[TB<@6#(A9YGB+>U5* ^5>V(K]%),'/.X^$)_6TY"JUEH"!RL1LJA-AT[6K; MO]GPZTI[74-ET+;!\R[.I9J8)9%3 EPQ!B2+)[9WX",2YB,;CEO/%GNA>EB' M12EVP;J" ;!TX!QZF7.*MCGJ$]]6V?;!EEJH E,EB[K, J>4#%I/-@+OD20$ MTSB?2'TZD?$QUB,Y7F*'?'%VK5D+]=C>]FK4'JB[Z\)^M+]1 MOFWO44?C=_AJU=T+#V:Z:^I/7,%F:%2)+9B,WJ6 2G4WO]V+D?OV\G0MC9%U M^[@3?".4%8#O6RG-ZXN=H+]_7_X'4$L#!!0 ( &)(!U%SXAB+Q10 *8W M 8 >&PO=V]R:W-H965T&ULM5MK<]O&U?Z.7[&C)JT\ M U.\BI)\F9%D>Y).DGJL)/W0Z0>06)(;@U@6"TAF?_W[G'-V@05).6FG[P=; M)+"7OGVSUV6VTKM67;5&Z-V>;NM[=7%RXY49O,S>P.UWBSM"TNQL/AY<4V,^79V]?\[&/U]K5MZL*4^F.E7+/=9M7^3A?V MZ7+Q]O94U1?[)/WVG/SXS66]K"\?_J M2<9.YV=JV;C:;OUD4+ UI?S-OG@Y1!.NAL],&/L)8Z9;-F(JWV5U]O9U99]4 M1:.Q&GU@5GDVB#,E*>6AKO#68%[]=C10#Z(/95?JP:Q+LS++K*S5[7)IF[(V MY5I]M(59&NUN7E_4V)-F7BS]^G>R_OBY]E[G.^PM<@-B6XG&@ M^&[\U15_S/9J,DK5>#@>?F6Y22N "2\W>6:Y$VRJ?]PN7%W!8/[YE0VF[093 MWF#ZS :_(U/UCY_UEUK=%7;Y^9^GY/O5UV4N_THUEJEZKOR^5 G=<;K>[M=I>5^Q>P MP[)904R8[9*LS!6\K7 J4PX;%%JM*]OL:-U'#5*KE:XTJ,QV.] FA"@ CW<$7;F!^GD#+H_7RBJ=F')9-# R94IE M2V:(G5)A*;VV%9A]I_*E!GF0IR.V"1*G?*&S%QZTMP!UZP)4Y-8; &E@DZLYIH%^#89 MF0+\=VG5)YT5D.B]K796+"\YEVFRI7@>;;'("M ' MQMA/%QHRT06M=YAT7;Y]1&FF6TB0RX2=3;X+NR+9WG8FL=4G^ Z7A MO=YY.1X;/#:ZA8\"""$"^#5LFOPIV#/<>)M]UDH'4MGE8?_-=B?Z8WS- %9+ M<;QL*Y8$9FP5;7N2'5XL,EMR';)[AB12BD/>X\CYB]Q#=[*J@%GUQKJ(JH&Z MS]Q&0(T^O D8 MXL@U2'AUA])(89W*&\)V)F.O$;<81YO%;T$U00B$S19T 5!]^(,5++&RJ55E MW.U;)7VUA/).2;3P;&"L%K!8B$,4*"I) *)OZKA M)7M;11H@YN(OLH>,X3F!9 ]H"F_&+V">P@( 4+(%S$AB,35$EQDXOGHFI(/R5JZ@)CSX$C4B"S&YLE?&Y@2 MDPKQ/I#';1&@Z-?,$XX" #CC.4 MY@@J(#! W#!*>"74!3MKMDU!O"4<8OAUI3=4RCP2:N$[&"TU#T<)H:N*;8B> MJSK[0E[S*5!U1(TW9Y(LS>^I!EE0KDECG%$T+DC"[?22E,V M0Z@;=@UNP\D%(Y>/I"3+O[%B/NFE-DPV>5#\7A17=>]9,&*Q"<%JZ>$TAF3] M!6*FV$->7%#AJ1@2D4MA9IE'P -ZHMP$MOYH2!X<^2J[8!Z;TJ]BZ%M(!)(0 MV3*UW&356M-VWG\]; ?6\2)3$FVY BY0@C/J41V;DT09K,BJW-9;+RG5BY_9 M;0B"@+JY 86$_(&.@;H+N8$$&I:/H?PL8C=;P1IC&5$&T-#N<#MG2V8TL F" M] HB$$M63U PD@ H>*5.,4VDGN+N4 8TKM/D@'&S1%:]O^D^PH0B/*(96 V4 MDS]3NKO6":$0)2#DMX(93#S;+JQ+1C%6]=%K92I7OS1EZC]19BV(]K&BY+>6 M9.Y]2-UO^L_;E+Y/(N\#4I(^X@!. #6(59*.O>-O(B!,]W:61]5 A!&(.50N MO:0:TR,#&V07_B1S8%1H@.6PFS3QB8(N*(W'TC)13+F#M!-3R0,H )6MTBC+ M@HA8^:+FG/1GVZJ48!=KDGGFK^#H;6&;F"WQIEL81!S?F5H@U$?W7P5D5JC+ M5AJ:1\2FG6_D[6-X6]!;$]X>V47BV#ER7753V&=LR2T#AFX8%=Y\ZA)7H L7 M'YK"""PK5;4=XJ;/%/-@]%WF'%R;#84F:LD,_0M.P'EH0M3 G[BP#:DF]LPXI@2D MZ=@T+FQ$X>H\2F_K9&6^B+4!)EY0"00@C!C&',(VT(=2RE-A\@,1Y5>$::XQ"N'ZD&?P6.J""LF(<)N!'H*DG4A M*3)RITU6KB6?"93Z'(-2W5/D 0\H^^"F*5F1711FW;IA%GACNI-@.HQ5?GV, M0:$#?\'CM84C=HL'2 O,IU(+.G[80-T^"2%9$!UA>4K#1O-7+JZU1#6)X:P[ M- HG$ Z[?[/,"(>VRH^(S,0BSC2\_.B4@V^PWU- M)?5GVUEZCB010I!N+$]Z'D4QDFE/8R0#Z@Z$G [V&W(E268YD'-6X)=WH7[J MB&R[*'VPL7,Z;NJ802MEC!PF:BLWWP!+INP\Q,HC\(K3Y2+RP,K!5"OXTW0)Q M4X,PMMCG1).S;@&4E:G3 M9[BB??^(I7=FCGA3<=$5@UY!A(!E:4%2L?NU:#)2CY+U*/56S^;=J.OE6S6;XBW\? YO> MG82D>K\3T2&_7-O:<,U#CD9]5C)YZ@A 0M2]P*8?X[E=3S7GBF[Y'%9[T7J/ M[:<-G1#:UB"UEPC[*"J_$/@ZT;8*!;JX;9NC]CR^I/YPJ]\%"A8IG+C.EM1? MO/# 79$844$6$";*][C#2WWG-/1 O-M2]MZZ+:)]%5\@7'$7O26F9;$W]VLDGB(FK-*GX 2)L,)5.,$!9O>% MWZ%H0OD:"4W2*H[.*-E(BUD1^;_0R2T&RD"YINQ<0-JL41ZX.IW447L#!K8R M/H+"+!)968 @6':,VP'D@JA@K@$^_"SB!M!$/-\RC7UOBREI3Q_\>9=PET0\ M!TXIW.P):,K# $VT(0+"[(N.DKSI^M(P:5JXST8$UI2."%*U+"6T4.FSA6#K MX93MF#J/TJE:-%WNP4U/%DKJ40YN@OS >9SLXIWH,%)@\%LSP=E3E0I+U!(4\ZR1&F. M04F,AIVF?.*MI72V;9"@GB[U!]CUVECNJ^S8,VE#RLEI,<:OU*:5L*H!GVY6#<_I2@X6(W.HLB MF07A"AY()2F.S"41!T4/C<^6G%)641\]YTS0)_S=X5BO$.YU[%O0X++9FW]4 M4J=RJI-1&X+Z0NXF\=TJ]<#SP[=>,QN[Q G&NX;)BBOU:%I,7'++QXY)UT[Z M1HU&Z60T3^?S&7U)1T/\&UW2YW$Z'5VE5] M U\1,SQ&3,B_SVRRKXA&B,#Q*7C:^]8][J7C M\!V<7E<7YS]0+_)%UW#].UBG-N+M:;*?,X__.&.?I M; Y[OA[V5FV?]BSQ*R8SF\! Y@>DA:=?-9EKF-I5>CF<]N9VCY,/'BE.)L4C M,BI6WD.;0_Z_:,0WRUSR0 %2#G^^49-)>CF"P;-21NGP^A(8,:<7\*#Q.+T> M32.UO/<2XT<<[[F# ,O,B>4IA YMS@[Q9CQ)I_-A.II<)Q^I..?[=/WN+&MA M-IK!X_N*],^2GT"N'WY.58Y@P6R*/<>TW[EX:W@,Z8^G,'"SVW'"!N*_PW]D M-(KYN>F_W(27;0[$F]$AD^DZ]-"/KQH*9([2"^5SN-[QV_)(.%S&TIG1U[>$ M^M:68YNO/ES2NRKSNSO3[2?,3\,)OQQ$Y&##N-K'XF#UOFK8QG<[G$\UD__9 M+A(%OYDB&YU?P1;&EX@[TSGLV\$;EG+B_0ZF65BIM[QR>N_SZ'V7"G=.;D#?@@W?*G\DTPQ6,9TTW/CWC=B^=-TBJ(?O%EUK^T.6' M2J\10PH/=]3.E+19]B/VD87)8=*[<'Q+F\KM(SX2*3K@.ZSS0^[2YO"KAH^R M:06*-'Q_9BDW0$ 1G9E7W?4X>K'0]1,E<(%9VK!E).G*83I>E4I1KD4=$-:G MWA/:]AEHX2)[BD]C=9DQP1)ZZ52'^R[]LBC*"%ERGDB_?,;W1[#6+C/ %VMQ:X3Z3EW9UN6_#74L*-2RCO;HKBX:OTQPG&HG<43FZ=V$K M#F#]_8FABA8L;72[PS-]L/7QCI$+<(U%0DL.[JZX$YTEEL\1,5-GO7 M:O7VR*UIAONPMIQ$AO//[B@BG)L=G>61J*EO+A)V+!4A/68YM$C:.;_K!7R@ M^\V(*JAK9'.CR3R]1%KVDWY*HAO@#Z&$IFL(O! EBU*K?&BCTJD)R9VE$N?\ MP^W#W0M_=?'D0/7+CH\8SI&*OE _V4%7'X?36U;A?;_1=-^9>EP,F1#GV[M, M2=QOB4^;^;)0.(CU=Q=EKK_EU@%OF$['(7R(<'2$<'10UC_\[5_'Z1W^AK.R MZ/#7]*[IR+604Z9!X'"T<5\>6>%LRUZ2Y3GS#IU%E6:V"!>I2[ZOEGHZ4SHX M"KEH4_J>DAQ\!HFTUQ%75$4&I^N#2]=Y2OW]=\Y@HRO_OS7YNKO2Z7LNBO$P M?M%>G.[2%-[GZ,S*]_"H =\4*[KOT[7S!DFO!T.)X9;])"7CD:2 Q$TBSLJR MZ5\ID::1/\ZFV&6VX2';)6=L6>V?I4@UUJ8LNUM&[Z!,NMF7H&B1;L[Y"IK M)ES[L8L&'PZ_81CX3X8OU^[Y4%(;*52)P>+@M@41_MQ-#+[UDQ$H66DHQ-;2 M1W%_V^.PU_"_N/F1_/8.AS, M9V?2M@U?:KOC7V(M; WGY8]TK*DK&H#W*VOK\(4V:'^:]_;_ %!+ P04 M" !B2 =1U=4G8J8" "B!0 & 'AL+W=O+"ILB#SC6V3Z9LU%0Y3> MBHTGMP)):8T:ZH6^/_8:4C-G/K5G-V(^Y:VB-<,; ;)M&B)>ETCY;N8$SN'@ MMMY4RAQX\^F6;/ .U:_MC= [KZ>4=8-,UIR!P/7,602396STK<+O&G=R((/) M9,7YD]G\*&>.;P)"BH4R!**79SQ'2@U(A_%WSW1ZE\9P*!_H7VWN.I<5D7C. MZ9^Z5-7,R1PH<4U:JF[Y[CON\TD,K^!4VB_L.MWQV(&BE8HW>V,=05.S;B4O M^SH,##+_B$&X-PAMW)TC&^4%460^%7P'PFAKFA%LJM9:!U7@&BZ+@+5,2""OAIZI0P"T66#^3%44YF7I*^S':7K%G+CMF>(09A'#%F:HD M?&$EEO\"/!U@'V5XB'(9GB1>D5>( A="/_1/X*(^Z9&:330^*P;42&S#36.?#<+(\@3WQUG\>B;X%*[._@5O3<8N[[63:/, M\+/<]9-T=(E&F>JA0%B!H,<+E+Q=J75+WQEA$+CA.(7 S]TT24;7>DJ186+< M)B8&A34Y9$'NQFE@Y3#-W<@/X:/7]09]H]/;V.D@P?*[%NI/^P&TZ/KN7;V; M7E=$;&HF@>):F_IG:>* Z"9"MU%\:[MPQ96NI14K/411& 5]O^;ZI]EOC(-^ M+,_? %!+ P04 " !B2 =17)?#N9," !>!0 & 'AL+W=OOBV:3F*[Q']ZN^-32+.DHI*E16: 4&E]/@ M/![/,V_?&/P6N+4'8_"9++1^\I/KN'A>$^_:G*G7!;WWW"73]_S"BUM\P_;UC;- M B@VUNEJ)Z8(*J':+W_9G<.!8,0^$20[0=+$W3IJHKSDCL\F1F_!>&NB^4&3 M:J.FX(3REW+O#.T*TKE9>@;7ZAF5T^9U/(D<(?U&5.SD\U:>?"*/$[C1RJTM M?%$EEN\!$<72!93L YHG1XDW_!72.(2$)>P(+NWR2QM<^@FN2PXNA2VDMAN# M\.=\89VA!_%XQ$/6><@:#]E_>?B)+P[F4A=/CQ^=ZE&D+\2QK7F!TX JS:)Y MQN#]3?7\\= 9Q7GOCF_I03@T@DL+)S#HCT*69'XTS$,6CWH/5!>G0IW61A=H M+8S"_F@09BR#/,Q9/\SR?N]**$&OJ(25UJ6%?)"&C.4P[&?AB!!?C2:AZ%*- M69BP89BE0XCC,$US^L6][Y[.)14Z5P4"M0S0"ZLEV@+]0LP84=G^V_M!3>>- M>>*I\8YZXKE)RX6/;BDZ>/,5FE53V18*O5&N??[=:M<\SMN:>3-O.\\--RNA M+$A&PO=V]R:W-H965T;&%T4O4@D-?/FS9L1R>E>FP>[ W#LJ9;*7@]VSC57PZ$M M=E +>ZD;4/AEHTTM'$[-=F@; Z+T3K4A$0()!2.$ 2^'F$)4A(0TOBKQQP< M0Y+CZ?B _I//'7-9"PM++;]6I=M=#\8#5L)&M-+=Z?W/T.>3$5ZAI?5/MN]M MPP$K6NMTW3LC@[I2W5L\]3K\&X>X=X@][RZ09WDCG)A-C=XS0]:(1@.?JO=& M/CV M5M7.L_BQ!@E>&B2@JF!IHDG0 52J:'T^Z-*>]%1Q<&$7;,232<:S+,1Q-.+9 M9,*3, ]>XL(A;L+'9!#GC)XCGJ/9O49]$.] %[YWBT(>1S$/\YS%"8_0,8S2 MX%>PEJTK*;V-TZQ$+S;AT23E21X2E6B<\SC.@^4Y=*6=A\$UY(_0.?'R>4V2 M,<_'.9O7NE6$@/5!162+OP(.&)80MRA21:AG!,.]1@I50.#_;8N*E5ACLMIH MB5LIF12BH:WM#:W?X8=QX*F@9/7F)5^BFF M/!GQ\6C$1DF"F2?_6:W[5_EV)P?^ -8+89UPK>>T,OI/W.9M@$P;H[>&N K_ MZ72/\$1(I5/!?FOK-2I[@L).4:*,Q7$PW^)L2TW1@"E .7;H7S8.V0>&[?3A MQ$CX(N.A1<09)YBK(P>),RR:Q:L3>-IHZ6!0F\5*N0%0N3*0/!"P\ C* 2GXU!* M1D<[9=IE7;:&;,CQE6@;W%"0UC/6[9+=]0C'0.6I']E8#$L]C1C!=\)C,4VO MCGW5_NL?[[6NOA1V#=M*^03[!>+1A\$]"76YB'@ZCGB"5"Y2_R^'4?;6'CT\ M.4I1\:V_,%@D@E#=J7I76ANA4%:EDG8H&MXF6<#9KI+0C=Q MNO$'\UH[+*\?[O!>!88,\/M&:W>84(#C36WV#U!+ P04 " !B2 =1!EA3 M"\0# >" &0 'AL+W=O) M:RR*,AC5*LG2]#JIA=318A;NGNQB9EJOI,8G"ZZM:V%W=ZC,=AX-H_W%1[FN M/%\DBUDCUO@)_1_-DZ53W0YO[D:L'Q3^E+AU)S)P)$MC MGOGPOIQ'*1-"A85G!$$_&[Q'I1B(:'SM,:.#2S8\E??HOX;8*9:E<'AOU%^R M]-4\FD10XDJTRG\TV]^PCV?,>(51+OR%;:>;YQ$4K?.F[HV)02UU]RM>^CR< M&$S2,P99;Y %WIVCP/)!>+&86;,%R]J$QD((-5@3.:FY*)^\I:^2[/QB? F/ M5#J/6N@"0>@2/O@*+;S7&]3>V-W-+/'DB-63H@>]ZT"S,Z###!Z-]I6#7W2) MY6N A!@>:&9[FG?9FXB/8@=7PQBR-$O?@+LZ1'T5X*[.P#W@"JW%$NZ-\RZ& M>]%(+Y3\%\L8GBPV0I)P3,:M<^@=/$A7*.-:B_#W[=)Y2SWUY0TZHP.=4: S M.D/GK)//^.+A3IGB^J< %9/,JG\6B: M!WDXS>/I>#+X'9T#H>AQ!U,:$V"6SBAT!?+%,+Y.TW@TRDD:75_'Z63X,U\Q M:)I&%S A=^DX)2FGVD_R_+MXOB5)E;/HZ #T<(KG@:^$!^D G9?T@JG@WD E M-F0-C35E6WA0$$U"/7AP4:#UQ M NFQ=D!LJ*/J1N@=>[7XM97490-RRO,Q:'*"'-J-I!#(2\^"H(WJ6VZ/1=0% M-<$:-5I*\(X&Y_(?&F8<@VN(EM!H6N)J2[12KWN.QVS0H1'6RZ)5PK(]SU(> M@H0P\%A46A9"O2X7,>0H- H+'FT-9E879&&76@9$H-UQB%]*Q MK],I30X5:7P;BS&E5M/ZJ+GJ7+:3&E2"BU!P@DK">MVF@\90*WE)_HXI^\X) MN]_(L(*XC[ MRE!8_8$='/XE6/P'4$L#!!0 ( &)(!U',=01K) , *,& 9 >&PO M=V]R:W-H965T,4!^M8AM(0I5$:MJ] M'])6-]JO^[#:!Q=,L *8M#CZI7>7\0;1>=F(G/TOWM=L:W$43 M2Z$:V5JE6S"R7(7W[&Z3^/PAX9N2!WL5@^_D6>N]W_Q=K$+J"Y*US)UG$+C\ MD@^RKCT1EO'SS!E.DAYX'5_8_QAZQUZ>A94/NOY7%:Y:A8L0"EF*OG:?].$O M>>XG]7RYKNWP#8Y1:*CR M43BQ7AI] ..SD'6QJG>]_O#;R]V7>?GR!GQD.CF7!1W]S RQ+"<>S*0HVO:H+ MU>[L@%5-9_0OZ=$6,I*D<\(2CE&<<)+$+'@2>87Z9I224S>,$8XIL]D<&"5Q M1LF,T>"?LE2YA+(WK7*^TY<@3CA%Z@4'1K)YBC >W/=.C[4XT^=["SPA"[8X M+V,?+ZI,TI0D/+NLP9]&6PO=]42N%&.2+A(R2Y&0HW),,DJ#CQ(1(L_[IJ^% MDP6^TNANN1*#:;"$L#G.8;8 %A,ZF^%8%L'V50$"+9KHC1\=G9,DHT,<,XQQ MC(_7M/*(IFHE'(2%&X9CQ@^C/J1S3K(T@R^5A ?==*(]0859N6X:Y<:NG48' MV$O(1:>M8.36T(*_P7 MD<8GX'VIM;MLO,#TO[3^#5!+ P04 " !B2 =11+\A/M$" #>!0 &0 M 'AL+W=OWYOXIE)KN<6/])I$#E!7/($'0.CX94O MN)2.B&3\:SF#[DH'/)X?V.^]=_*R898OM/PK4LRGP4T *=^R2N*3KK_SUL_8 M\25:6O\/=1,[O@X@J2SJH@63@D*H9F1O;1Z. #?1"4#< F*ON[G(JUPR9+.) MT348%TUL;N*M>C2)$\I]E!4:.A6$P]GU):QR;?#+FIL"YMH07JC,WDY")'H7 M%"8MU;RABD]0#6)XT IS"]]4RM./!"'Q=N+B@[AY?);Q@>UA..A#',71&;IA MYW7HZ88GZ)9\@[ 4-I':5H;#\]W&HJ%W\7*&?-21CSSYZ 3YBLHEK20'O86? M=.;&A>&I0+AGB9 "!;?PO&8;BEGS-X2YU,GNY;,\G[_IY">#965HXM/5!\PY M+'11,K6GZDDX/?X4&$C-%*!&1K3916_0'UT-^N,H@O51?,XLL%( M^E'D?Q<41[D3%I3^@*DL^6.0,)O3 U54T52["-O&_/ZBHD=AH,Y%DGMM&Z9V MD!I6$RJC[F'1;[]?*]LL)DT644.B7XF"$IWL+% /LG0!F:+6!"7;^^MPJ\*+3*5.KLMM)&".9E@QC#52O59(;[>.![VAZ,1].*OL?/\V?,( MCVJNX";SG<62Q$IA4W[=;M>\[IJ:?0]O.M\#,QGY!\FW!(TNK\&PO=V]R:W-H965T-J/ 1 MZ6>S=FRE/4LI-1HOK0&'VUER-YPLQB$^!OR2N/,G9PB5;*Q]#<;WK"[;WBHYR;P%5;Y^ ^[+O8F3Z!H/5E] +,"+4WW%/M#'TX M]D%0'X Y%%W MERBJO!1!F!*6K)9K15-(]' O?:&L;QW"\]W&D^-A M>;F2==QG'<>LXPM9N]:N!!&Z'TYU_3K[&??'3S5R&4(_AD+ M*OJ;=S_@OL"&@-<9'"\I4WY0DF0EXI)(UE5RDQA$%JA&V+2>8[P?G&M'>C)X M&ET5U\M#85M#W0SVM_T&WW6#^Q[>K?]*N$H:SXJW#,T&GV\2<-U*=0;9)H[Q MQA(O13S6_!5"%P+8O[66CD9(T'_7YO\ 4$L#!!0 ( &)(!U%%AP2J]0, M /,' 9 >&PO=V]R:W-H965T-V&LR3\:+KY+W 9XY'<[,&Y\E&J;W;?"JF0>P( MH<#<.@1&?P=&'+:3 ,H, M M:X1]4L??\.Q/S^'E2AC_"\=6MC<((&^,5=59F1A47+;_[.4J M =ELJ:8;D@,F"Z!*%[0"P^5.8&>G55.#VL(!]8D.*RZ8AEJKHLFM 5LR"R4[ MH ,Z0<&W6]0H+;"Z%CQGKF4,4-.?BY"\NW?V#?X7BVD$+G/14!70 I3$#AGV M#0$$A3NE.9H/(%F%XA3"&KFI> X/K*H).(2/HN$%STVI]N:G'Y)!]T,(2\TD M>L\^R8(X:,X$+!K'TS@(L?UE7GRA"_(7UB4%'.8;H_3&W7=^YU\)$AXXPKK6 M)&+"SWRCO5^O=EY2D=)2P.5'07?Q>(W).K,N2?4WMS^;; MT%:L0+"*1#0B[%"BIDCX_'K5:X+&%/Q+I,).3@FTNCD//_*+H5:^N"!RHYK5Z MX33CJ12ZR1TQN(/1'?3]U_-?1JMD< ?#R]GW!DMT,X@)>>>?&P.^+-J9?#V] MOFCS=I"_BK?/X8KI':<6%+@EU?A^T M MT],N[&J]F-]HRRYX9]04 #(. 9 >&PO M=V]R:W-H965T>Z>?=*7YZJVA:S$)\U,799U<[:EEQ(VY4\5EF=G,Q6 Q8 M)G)>%_96[7X133U3BI>JPKA?MO.VR73 TMI853;.0%#*RO_SQX:'GL,B?,$A M;AQBA]LG_XHS-GYV"(LO1RG38AK'R)^*43,/JK*;@Q[5V4BVP\P!IX.5-R"NHY?C?B1 M/[$D&K(XC,-7PB5=C8D+E[P0[KD^]E::M%"FUH+]>;4R5D,57UY),>E23%R* MR?]+<2\>+;LN5/KURS%>7X]YT)J ^ IT3*XJ;46E646";=:/4A:)&?!>Y$) MS0MVPI+Y=!B&(:ZF<417P9WE5K ?OEO$4?QS^Q_<*PO[]%BX+D8;X:W(!>RR ME[)&SHR=SMS?3Z]FS([&.@CAC?=M4-QBUA87>8A7&!"IJE)92.Y6N\I['IA= M3'HF+3$9<)2Z$

"S=-O)\TC!LD M*3#A]KL$C]H>%-G$$X];1,';;V"NA>\,J3&Q4V9)/ M#U>B$KFT;$I-@Q?)T6-U? A,L8K:G$D\1,-3$M6M,(+K=.,BI&B)M(:=QO/8 MMX"=1K.V&YB#F'+5&V1$\1GP6%ZMY:KHH&']UW[D-B'&;[L=7*J$(X\;2>R70^C&"?@/0E.:2IK@'P@:=^\'Q+%%O'30YA[B/KF]SIP%[QX1V;CGFW@A?RGV[ 4,N/N4H2#W9- M&?@.8+K&LH00H0OL?7)(3S:SEO=63C,4K"3E"LA28X^TMU)6HK_$X#IB]\^* M]:LC@QU'(XO:H^2M%@(,-S]TK$N^X*WBKB1+93IN!5Y7IE:7JL M:9W+RB6#^/&<<%2BT3#O>1\AR8/AI:I)"B]+IH6)IYYVAW&C=F!&#_&Z+C+? M$S3?3=X&!M=0BRZ9S)DP$ \0NUEVM-K 4^5"[-.TDT7ABX).&KT"]Q:B>G1! MT8V3R2C$%K0HJ$("L,\DGC1)GX#*<4:*T!2QD5+P4OG/ZG'@^_L_NC]IEWT? M,G6./E6F7H$Z2:LEEX!#5*I"9@"==5L3,C[XAFH!N)6!O@^R#OL? RC]V1M* M]4/W^7/)4@S )ZAAQW7F0NT1%YPDLZ4;T+T,LV.;SG%O'U\*O7:G%1('U..W M]-W3[D!TY<\!S^;^-/61ZS76(2M$#M=P-,?Y0_L3BK^Q:NM.!2ME<<9PEQL< MZH0F [S/%73=W%""[IAX^2]02P,$% @ 8D@'45_^18#U @ &@< !D M !X;"]W;W)K&ULE55+<]HP$+[S*W9\=O&+5QA@ M!D@Z[2$SF:2/0R<'82]8$UER)0')O^]*!A_?9;2?MILE?ZR92( M%IXK(H31<2="XG@;S9+SH.7_O\(/CWIS8X"I9*?7D)E^+:1 [0B@PMPZ!T;## M)0KA@(C&[P-FT*9T@:?V$?VSKYUJ63R5^\L*6TV 40(%KMA7V7NV_X*&> MOL/+E3#^"_O&-TL#R+?&JNH03 PJ+IN1/1_VX21@%+\3D!X"4L^[2>197C/+ M9A.M]J"=-Z$YPY?JHXD$BO8AXRUX@2T)( MXS2^ )>U!6<>+GL'[JQ87R7\FJ^,U70_'B_@]UK\GL?O?0#_&SY;6 B5/SV^ MM:,7 5U7CDW-$;BT]LAYI:^"R) M =( 8YGTR"0?/H2H<%5TX9H+E[WEV'G%D;K3M:[Y:"8:J"!"IVZ'6EF4EC-Q M'A"2".4E,-.4!:IV$F&Z,*>TN9(Y%YQYU5#K]W)WWLA-V_41IH:DT!D-77*B M:-W?]V;5^.6Z0TG[@+7%!IWA_T =*/$S<2JVJO?2EG24F^6 M]'BA=@[T?ZWHBAPF+D'[',[^ %!+ P04 " !B2 =16_IH[2(" #O! M&0 'AL+W=OYPT2A]- M@4AP$ER:65 05=,P-%F!@IF!JE#:G;W2@I%U]2$TE4:6^R#!PSB*/H2"E3)( M$[^VUFFB:N*EQ+4&4PO!]'F!7#6S8!A<%S;EH2"W$*9)Q0[XC/2M6FOKA1U+ M7@J4IE02-.YGP7PX78P=W@.^E]B8G@VNDIU21^=\S6=!Y!)"CADY!F9_OW") MG#LBF\;/"V?02;K OGUE_^QKM[7LF,&EXC_*G(I9\!! CGM6<]JHY@M>ZIDX MODQQX[_0M-B)5G2AU[ 0W0C(+X$Q#[O5LAG^<2(I8E6 M#6B'MFS.\*7Z:)M<*=VA/).VNZ6-HW08#V"#G!'FL&::SK#53!KF>V:F24A6 MQ$'#[$*X: GCFX2P4I(* Y]DCOG?!*'-KDLQOJ:XB.\RKM@91L/W$$=Q=(=N MU%4\\G2C&W2WJX67^R$6=DV@"ZXX-^\X') MW!K#Q\%;[0E[EU"@/OA1,Y"I6E)['[O5;IKG[27^ V^?@A73A]+VB>/>AD:# MCY, =#M>K4.J\E=ZI\@.B#<+^R*A=@"[OU>*KHX3Z-ZX]#=02P,$% @ M8D@'4:":/K1P P HP< !D !X;"]W;W)K&UL MC55-C]LX#+WG5Q ^I['C9+;;01(@F7:Q/0P0=&9W#T4/M,W8PLB2*\GC\;]? M2H[S 72R>TDDF7Q\CZ2H5:?-BZV('+S54MEU5#G7W,>QS2NJTL:3;\CJ;MU-(_& M@V^BK)P_B#>K!DMZ(O=7LS>\BT\HA:A)6:$5&#JLH^W\?K?T]L'@;T&=O5B# M5Y)I_>(W7XMUE'A")"EW'@'Y[Y4>2$H/Q#1^'C&C4TCO>+D>T?\(VEE+AI8> MM/Q'%*Y:1[]'4- !6^F^Z>Y/.NJY\WBYEC;\0G>T32+(6^MT?71F!K50PS^^ M'?/P?QS2HT,:> ^! LO/Z'"S,KH#XZT9S2^"U.#-Y(3R17ERAK\*]G.;^6(& M7^I&ZIX(GIS.7V#?FKQBH;"7J.Y7L>,PWCC.CY"[ 3)]#S*%1ZU<9>&+*JBX M!HB9WXED.I+9@ M:PRJDL+Z^S:SSG"__+@1;'D*M@S!EN\%XVM4M)) '^ R\(.N^6)9]+TYO5F" M*6Q]ZPK7P_=GS!CJF=X<["1;_OA5>6X3NE'Q2:@X?%7PB'S"^4Z64W 5!;:H M>KZ&ELPKTT\_W4V3))E8+\EZ<;FN:[YF-B#RM !A;8LJ)VA:XU<.G 8$I=6' MGRU*<1",0R.3P:\9A3?,9,;5,4[DH@E9 J$"EVN7R94+!X57+5OE>,($%B@E MD!2E\(D;70/A"UVS<\8OE S2NIV8FKC&[+"AKL MC>:0W/AMF#MV!ELW\%:%1R?DS.8H>8L&.!/&D9E>*[O"YHG @$P!FT;ZG'$: MO75SICRYIMQ:H4I.==C"*\J6L7W.1]>:@BC7$0TYS:4./IDH )DG6JZ%$?DY M4T-]M#='!P4ZFL%SQ>UP##KQH0IA!]YGEN>4XW^G ;A@;<-!.N&JPF#'E ]& MUX/>T!*?6^.)^H.>T%B/Q]%X1$S&$1$4I,G\TQ3FT\7')?_>+=-?W>7X8G#6 M9,KP/'#)-3?0,$-/IZ<7:#L,WK/Y\'SQC2D%%TO2@5V3V<>[",SP) P;IYLP MAC/M>*B'9<6O*!EOP-\/6KMQXP.O M.(JV:BL%Q]?81H $=*LB[781[$55M0\3>Q*/L#W9F0DA_?4]9\8Q"1"VJM2' M/H!CG^_U,F$1V_5J!7; M^0V4R4S*.[JYJDY' 07$&UX:LL#P=.0(0SC6V]S-+@DQ=W?6^N_VMPQ MEQG3_%(V7T1EZM-1/H**S]FJ,3=R_1OO\TG)7BD;;?_#VF&3= 3E2AO9]LH8 M02LZ=V4/?1UV%/+@@$+4*T0V;N?(1OD+,^SL1,DU*$*C-?IA4[7:&)SHJ"FW M1J%4H)XY"Q,?;HTL[^##TI;INF&=/CZ9.D$G9&[IPAJ)#AB)X+SM3:WC; M5;S:-S#!J(;0HFUH%]&K%M^S#<3A&*(@"EXQ%P^9QM9\_SV?:*&3)UU><)8.SQ#I+_JVSC_S!P$6#A?_Z4JU?M4Z# M>JR7K.2G(YQ$S=4]'QWJ)%QU6,$P'X.I.5S*=LFZ#;!*+@W&QD!;%6E5O"6J MP+H690U+KEIA])Z6D;# ' S,I*E!="6F@C.U9T,#ZRKH9'?T;<4:,1?H94_N MPT4#9XZE!XP^]YMZ) *^[# MIQX@-%!"8PBGP3@( OBD1;>PFA<-*^^.;LM:-ESWSM&?* G0HI5F[!%N;:>: M"G7/%2XIX-H(W 7X9,Z$@GO6H%LY!\ZP9KT=6R-$/ ;JZLHTO('(SU.(_2CP MB-?4FL*[$?KN:*XXE04S0A^@T >$?I'##ZB2X,5[^[#$589VL4"$A UG2J.M M O_R1_&];)@1C3 X/A&JQ^&N"J%)K#-5;4MDD)7.,E?*9R>1]61AMD M"7DZ@L#0US0^'5T 4)8_0+*1V1ODXC)^'EP88M04& M?OQJ>,[>U(\/A1=&6Y^)'R<'PR,RI='6:^BG$847%.,\3K%%4+*F7#66NF)H MB.,O#9NI)39L.X:F9@9JAKSOAFCM?'! BEA6HX2HC12YPV\')T.JR)6"4K8M M$D4[>B#M\3EA9PSG &'N0AD6!E] /<@A1W_(D[J_RKIDEW4OT"H_2*LT[@%)_V(KGM)JCS6':95] MCU;3P[3:4OL0K?HW[T K?/N^])T^V3D*M5PM[($/]Z)<=<:=BH:GPYGRW!VE M'N'N0/J>J06^BJ#A&PO=V]R M:W-H965TD-"R MVQY6>S#)0"+\D;4G#?S[VDY(:04<$L_8,X_?L2=)&J4/ID D. HNS2PHB*II M&)JL0,',0%4H[F%/R4N!TI1*@L;=+)@/ MIXNQB_0$(<>,'('9X3< /'&PEQEQ![W>U&7N571BQ-M&I NVA+& MM.V$]SO,<<\<>^;X!O._8X.W%SP2++BUWZ\=X7W:M8N EP)AJ43%Y D*9B!^ MB*+(/=?DAQ==(%#O?:\;R%0MJ6V(?K;_G.9M%_T-;[_%%=/[4AK@N+.IT>!Q M$H!N^[MU2%6^I[:*;(=ZL["_!-0NP*[OE**SXS;H?S+I'U!+ P04 " !B M2 =13[G!]P," ![! &0 'AL+W=O#;SW9"2B7@ MQ;ZS[W[^GWU)TBA], 4 DF,II)D'!6(U"T.3%5 R,U052+NS4[ID:%V]#TVE M@>4^J10AC:)I6#(N@S3Q:VN=)JI&P26L-3%U63)]6H)0S3P8!>>%%[XOT"V$ M:5*Q/6P ?U=K;;VPI^2\!&FXDD3#;AXL1K/EV,7[@#\<&G-A$U?)5JF#=WN05_F=(4L3K1JB7;2E.<.7ZK.M."[=HVQ0VUUN\S =38?DU;ZFJ?6) M;%!EAUD2H@6[[3#K(,L60F]!*%DIB84ASS*'_"L@M(IZ6?0L:TGO$E?L1.+1 M@-"(1G=P<5]E[''Q#=SS1\WQ1-X66X/:-L+['>:X9XX]?I8KIO=<&B)@9U.CX<,D(+IM]=9!5?GVVBJTS>K- MPOX=0+L N[]3"L^..Z#_WZ3_ 5!+ P04 " !B2 =1K=>W\MD" (!@ M&0 'AL+W=OO.$65MDD5 M^0&,K@*DTFY:'RJATFT/4Q^CIW93H'_OF^;JP;B.<32JVQB7:']5" MTRKL4')>HC1<2="XF@8W\?5\Z.R]P4^.6W,T!Q=)JM3&+>[S:1 Y02@PLPZ! MT?""MRB$ R(9?UO,H*-TCL?S _HW'SO%DC*#MTK\XKDMIL%5 #FN6"WLH]I^ MQS:>DVL"F\1QZ2YE:36=T7"-EVL)",'D]"2TA MN_,P:U'F#4IR"B6!!R5M8>"KS#'_'R D29VNY*!KGIQ%?&![&,27D$1)= 9N MT(4Y\'"#$W!'()J\22Q1/K&4;)YP1SJ$RC;/[^7Z/--[-P9/!1)M63&Y!U>*ECX#C,JF,ZS( M$*B*>V@,K3D38@_T RPKH?:(!JI:FYJ1K56P;,MF&,4?-Y]<-)8X[J5%+9D@ M!2\H:T>:8_\-O:5<./(*=49,5-O._4#3>U&BIEV]!\.$&ZB(4&LF#+6&] _Q M.G[!2VZ9DV#>XCO91M%D@Y!SD[D@E71(&3U"S=/:NP$S!$UZJ6PP!R9E[6+N MI7L?2HOWP4J\PJW3*R4I%0P!UU0$,(-;UM[7U]+K>$?Q&/KB[C M+W'O8AQ?)DGRWDL*CZJS1+WV/&ULC53!;MLP#+WW*PB?N]AQTJTHD@!)MV(]= C:KCL4/<@R'0N5)5>2X^3O M1\FNFP%-L(LE47R/CY3)6:O-JRT1'>PJJ>P\*IVKK^+8\A(K9D>Z1D4WA385 M0)6,TR3Y&E=,J&@Q"[:U6 M#?=B4SIOB!>SFFWP =WO>FWH% \LN:A06:$5&"SFT7)\M9IZ_^#P)+"U!WOP MF61:O_K#;3Z/$B\()7+G&1@M6[Q&*3T1R7CK.:,AI <>[M_9;T+NE$O&+%YK M^4?DKIQ'EQ'D6+!&NGO=_L0^GPO/Q[6TX0MMY_MU&@%OK--5#R8%E5#=RG9] M'0X E\D10-H#TJ"["Q14?F>.+69&MV"\-['Y34@UH$F<4/Y1'IRA6T$XMQA? MCN"&"0-/3#8(NH ;H9CB@DFX5=:9AE[ V:M9["B:Q\2\9UYUS.DQYA3NM'*E MA1\JQ_Q?@IAD#EK3=ZVK]"3C'=O#9'P.:9(F)^@F0^J30#1=Z#\_]^H@[!RNI^>O+9R4_ M'?#$8YX=/B8\E@B<&;/WR;/*E\%Z=\YL"4SEW0;?&K%E,N@\8UVU+'4B1S)G M$L]A,-9LWUL(3%;38 Y2L$Q(X7QA65T;O1/41@B%E[@-$C/DK+%!JB--MM3& MT>_M&B/&UL?51+;^) #+[W5UC1'E'S '8! 5+I0]M#I:KLX[#J84@,&74RDYUQ"OWW M]4P@I5+ADM@>^_MLCSW3K;$OKD0DV%5*NUE4$M63.'9YB95PEZ9&S2=K8RM! MK-I-[&J+H@A!E8JS)/D>5T+J:#X-MD<[GYJ&E-3X:,$U527LVP*5V.6^F$6)3P@5YN01!/]>\1J5\D"TO94F63R7'T3P= M7\*U<"7<\?4XN-?M/7/#)M.8F,"[Q?D>;-&"9:? ,G@PFDH'M[K XC- S)EU MZ66']!;96<0'\0;]M =9DB5GX/I=M?T US\!MVSJ6B'/% GU43;2)F0B"QX^S"V3=( M1TDO[:P5?=B8^&L$*[":OF(#>-IG8>.VNWS5?M$'^XMT_!@[ ; MJ1TH7'-H&>$&"6/*+A-8[\/G:&#HHGJ![X^;O4$L# M!!0 ( &)(!U$/\&PO=V]R:W-H965T*&ED M$:9(E:3L>']]'RE;<8%U+C;)F7GOS9 SFFZ,7;F*V=-KK;2[&E;>-Y=)XO** M:^%&IF$-2VEL+3RV=IFXQK(H8E"MDG0\_C.IA=3#V32>/=C9U+1>2X/'N6R\N$@F4T;L>0G]B_-@\4NZ5$*6;-VTFBR7%X-KR>7 M\[/@'QV^2-ZX@S6%3#)C5F'SN;@:CH,@5IS[@"#PM^8;5BH 0<:_.\QA3QD" M#]=[]-N8.W+)A.,;H[[*PE=7PXLA%5R*5OE'LUGP+I_S@)<;Y>(O;3K?5'X<5L:LV&;/ &6EC$5&,T MQ$D=+N7)6U@EXOPL'8_H4;J5(Z$+>M$Y6X^K])+=Y33Q8 A^2;Y#FW=HZ1&T M24IW1OO*T2==GWI7M\\?1?Q3FSI=')"Z3@=OP-WVJ=[&N%.C\ = M296^76?.6SR1[^^0G/4D9Y'D[ C)BVY=*]2QNM*W9Y$IIF=^]317)E]]_UFE MW^=X[][H7M,_0K=HLKYV)^0KAI_T7-"3%QXZGCBW[.$U,"4M6"A?1;1%6PL- MJUW+'&Z_+19/O^.EYTI8! MJVDS)G*HN@FNV2];Y%CVJ1(#W)I(MEVC4A?C57%7N&]70HM M?XC8U%+3+6 M#HRE7!F')1I,;REKL6;GN*NQ98=.1P X!3E>L^6 9MLF2D&"&)4VZG($$1V* M.9#K1G0KM="Y1%TP U<,H4(Y0_R*4(DJ43/ M2 A/AV$$9TA/U@V>;MCMRTH0%"PW!B:]_?67BW3RX6_WIA "0E)E+P>&..(A M8;"12H$8@[\(0&5K@65QLL80;S"2O3O9%3!4*Q 5;8<;4=^N/)CP*-,EMF%Y\"K4%J<#X0T "$327SBE *;3QE3( N9(Y[&/VL4Y.# M21C?99CW#B^OU;X;BOUI_TFY[B;IFWOW/;H3=BEQDXI+A(Y''\Z'9+L9WVV\ M:>)&UL[5Q;<]LXLG[G MKT!Y9W;M*D;6U;)SJW*MO:!$B$)8XK4$J0=[:\_7W<#)"C) M2B:[I^;%#XDED@#ZWE\W0+U\*,H[N]*Z4I_666Y?G:RJ:O/\_-S.5WJ=V%ZQ MT3GN+(IRG53X6B[/[:;42K%JY/KP?,WPSX-X"=^-?K!!I\5L3(KBCOZ\GWZZJ1/%.E,SRN:(L&?>WVC MLXQF AW_=I.>-&O2P/"SG_T],P]F9HG5-T7VFTFKU:N3RQ.5ZD529]7'XN$[ M[1B:T'SS(K/\OWJ09R=X>%[;JEB[P:!@;7+YFWQR@@@&7/8?&3!T X9,MRS$ M5+Y-JN3UR[)X4"4]C=GH [/*HT&#GKH5A:ABH6[-,C<+ M,T_R2EW/YT6=5R9?J@]%9N9&V^?JU'\\>WE>87F:Y'SNEGHC2PT?6VJH?BSR M:F75NSS5:7>"<]#=$#_TQ+\9'IWQQV2K1H-8#?O#_I'I1HTL1CS=Z)'I#G"L M_GD]LU4)V_G7D07&S0)C7F#\R (_)55=:A+T/S:Z3,@L[?-#@OR*:=3/R38K M2O56WYNYMK'Z/I_WU&FUTNJF6&^2?'L&N\GK!7C!:!LE>:K@'9E5B;+@.=-J M61;UAN:]U[ ':]8F2TJU*8NTGE=65:ND4JOD7M-$6Y6:Q4*7&J:2;#80EQ"B M$"FK2]M3/*VWU_EQ)J2.3S[,:EJ!,KHJ<&6(G4IA*+XL2\G^A\F2MLVVL M;K6Q:S-7;Y,UF 9_[[/:I&9N5\6=_>M?!M/QBUC=E GF().JJR%NW$D)2!5YILJZJBE:=Z6)GYBJ2GLH+$E$(KT-IRA8BK2-F_Y(:N MWE:X*;19#75"#B )XLT5&SD)EY73J"2B20,+254B,SKS^9M5MH"1%&)S$" > M-)FIML3D_M(/*QB'2K*,6.[.DQ7Y\EF&:(PUK-4P![!L4MV+?DQRY (2B$H+ M3)(7H 'N=Z<@SP*SE \&4DW$4UG*-LGPX*PL[G2.00^YFFUI/3S6VE%/78Z^ MC0:#;]7T\MLCGCQI/'ERU 4_0/5SL\E$H3>P>P2,E"WEH$-__6RL(^*7A0>Q M1_/F/N2W,'F"L5"O);&3Y*QRCL52=Z*R.UI@RS 5J:G(8&20&V:S]0QZ, F9 M)N+)O% ?=9)!PS=%N2G$$Z)3N7;64]=0KLDK73YSY)&N M+/!@BFH4DCA;D&580$A+<3E+75:-%B722;4J;$#5,;U>-GJ]/*J4F\2N)&/1 MAW>0!>SX42_YVKDZWN*BD>54=RI%% MG:>6(X1?AC_H=AF AB;$-;)U 4L M5\NYD&(6J;)JTSF*$ZO2FD D['5 #B<<.O9[]Y0O! HB1>@"YG7X238Y!PS MFTJ5QMX=T^U5H]NKXU%K!5M\AG"\!OQI!'M0L5\UD;JNA.NXPYHHT;+$+,*> MUUNC8TR$!Q3$DY.L2-1ES5/V5+!48 PDYQ#<-QGMKW^Y' [[+Y+[!'!R!C3B M$0#?&+Q W)!$A5Q3$!WLA@QE%HDI%05M'7L4M0'V^22^!>W82@"1##P=7!%@ M%J3=@KB4'PZT#C1DBC3Z>PVK9E*AZ5L*16N 2KHR[B$8H6#.S'] "+)M2D.7 M*)@E,B +6()+[/TS#I 6,F!L1-!BCIVJ/&N=9)%D:WU$-D'NJ26., M@FOK)6$W>D[%HP*20Z1>N(I K37B6!K*EI F:\(/1TB?T]]UD>J,0C.T8OY# M8(2;NA*0[2L+J^=02N5@K;%MV$'13G/S@L38UN@,1.!Q M*EXH=S365.0L1PB6XWR5R_.F$K*^_UR6O5K$?Z M_P<;4[LR>7UX7XRM;.^S,L7+(LJ1N M!G$;V@MJ /CGO2$=,I8JBQD+H\[=+(:^>8 ;>:R4J/DJ*9>:EG,QQ^5@KR[< M2)3@-^X,95GQP$F#^CLI60''>O($NW8>1X;H3(;9K2F"(VFE!A12&O=T]-0; MCWD%-;!\#-5! ;O) AX4RH@P94VK(U38(F=&/9L@2"\@ O$^]0"C!*R$42[4 M(::)U$/<[=1X@W;2X*CQ4K[(40%O#Z:=+QZLFH_PNR"($\E@!Z*C M($AU[5)'%+H)4U.PDT#+TF.'!\J2ISC =T/^PI2V>F;RV'VB$IK3P#%)#%M) M##]3U%&E7$FE]<[7^8?%\E4SJ<[UII/0%1AS#<%$W:2!C( ( .3#59=ZR]_$ M7C#XF#T>5#\J^2:A?K!+#1L&1B2J#^L_/]B/D&W]_YN1G>- MO[OG.9'E^)7JLAW"8:W(N<5Y/'^U3<[!\?;D1RJ(,?O'MN(]S/C1:0XGJT-S MJVON$VE"3X@-L;J^_07 :S!^UK]2#P2BTF+#0"E7?Z]ALPPJ!Y>!30-WP$(X M^%9E04"&]@JX*\*,148.0S#U(7WIB MS82AE$]6!,R$36/]0H323H-RMXH6YI-X*#+-&77;$,?@2\D..N?%J?\I:BZX M'0,5NH%I24;.>.AUIVKZ#%4A!62 M$*1_X%O"AE4F)3-*AE62+P7&>TH=M*;2]Q!YB.@$NGE#BJR\F&5FV82NQ//& M=$?>M#G=N?GQ3&JH!8S+RP+!JYW<9T7/?"QM,LL7:ZC;86^2!='AIZ?J8S!] M8<,&D*@F,ESW^EXM(1)(IUG_$48DRC6*3\@,Q"+V]/RX*"P^6;+J7D30>YW\ M7I343R$H79>MUTMKKMD$>(PD$8*7;BA/NAX (9)I1V,D VKD^E(&]NM+!*GA M& LRL'336]]/:8EL&M_,-DRPH(\TK1=FCQ*BF/4^"0T4,VM*_J74_,T:!*MW MHB$_O4.V0$+1R&$YP3S?%Z%PN5QH^_& MQ LK UNYQ)^ZG2#L]U(.Z/0PJ<!KN2S*M+-A M[D1R?<7%I@24A:GB1[BB=;_$TELS1XXNN=<0!KV," '+LEM$[9:SV 5Q@CEM MSF]H++4$Y(B$42#/-\VTU UAB,2LN?"U!ORFFK_AO )Z+E/'#;>8R'L>U?[W MG@::/RJU*^]+6A5=8#'6:]OD(PR5=AI4L9I, MOU7CT;=J,L%?_/O@V73N)"15VXV(#IA\652&RV9R--H2(Y.G1A@D1/U#+/HA M'-MN?Z7W-[28HW\<(==P4PHIK>1Y@6C\KF%VT1QK[UY]R6*I[&E9LJ M7R %+0Z&_/JQZPVJP!E=G GA5=09[!O\-(EVS:L,Z8HW/!MB&A8[8X^1>(@8 M/TN7@@,DP@H7?K,=,;LK_#:*1H372&@"JS@[H^HG+299X/]")W?6"(%R6Z)U M =EV"7#@XC"HHZX>#&QA7 :%640RLP0";]EAW/9!SHL*YNK#AQM%W" T$<_7 M3&/7VT)*FHUB=S1!N(L"GCVGE&ZV%&CRW01-M"$#PNRSEI*T;O>I8-(T<9>- M(%@3')%(U; 4T42Y0PO>UOV!B'WJ7)2.U:QNL0=O.[!08A?EX"; !];%R3;? MB0X#!48["NRIWSHA\6#)PHU.*FLD7,#4MKY&RO5#DYZYC459\5 ]0P^3C,/= M&+;GG3(GZ"[,]#PAS#+7)3T4A=&PU90#WEK:#463)&A7A3H\['I-+G>=B=2D M+$F:A@3D/'5@'"TH.*R236[:\9#2 M.Y> 9MB7O7&[7<.:B_%@FYYDYH4K\4 J27%D+HDX*;K0^&C)*645[62EC 0= MX&_/#70*X61,TN&QVYA^4U+%L-2?4NJ'6HGT>N8:GNN7Q_EMG#P>KA #C M;32[BJXL1/I^.AA?Q!(2=\8W^J!^/)^/H!Y<$:%?@S1\._YAJ M&/?'H[C?'](:PPFHG_ 2N Z>+J^FD8 :6$1).R0NBEAF=0P.)SQT>C6.IX,1 M#QSVI_%P,(FH-UAMHX][GH:'P-;D*NY?]O%E'%]=7;F+%^.X/[V">-D$RY1U MP*%CQ^FCQNE=(X0U*:$X.,W@#-# 1\0<'S$C\M\]J^P:(M?>TAIL8$C$#9W M]@(3N]HQQ&O:0G&>]JYQCQOI.'P'I]?E^>D/U$T^:WOVOX%U:@1?'R;[$7,< MCJ[BT6B +]P*&+[H7/XZ8YS&DRGL^:K?F;6YVK'$(R8S&<% ICND^:M'3>8* MIG897_3'G;'MY>B]BQ0'0?& C(J5=]M@R/\7C;AFF8UN*4'*GN%;*(.Y?72!&3.D&/&@XC*\&XT M[YS$^!+G>^X@P#)38GD,H4.;D]UX,QS% MXVD_'HRNH@]4G/-9Y6Y'F[4P&4S@\5U%NFO13R#7/7Y*58[$@LD8:PYIO5/Q M5G\9TA^.8>!FLV' !N*_PW]D-(KY>=Z]N?(W&PS$B]'>JFGW6* ?5S5D0([2 M"^7MY\ZN\WQ/.%S&TE;I\26AOF7!N,Z8#1XC%5'X.32F=Z(O $?G%/^3*;ICV0]:KKA M!BRW>VF/1J"&K!>>]_NBPU"E7B*'9"[<43M38+.L1^P#A?%^)*3G3BW0HG)0 ME+>1LC;P[=;Y'KLT&'Y1\PD.FH$R#1_JF\N),%!$1T7*]B0SW9CIZH$ G&>6 M%FP8B=IRF$X52*4H)UAW".M2[PAM^@PT<98\A(<0=)XPP9)Z:2>,^R[=LBA MA"PY1Z2;/N'S9)AKDQCN:@=%5' @ZV\VVA"@-K)%Q#L03H#M81WNG,FRP>X< M,E)Y;-'3#33F4'PP%J\X0N27,W4'#XK0%O"!VW)LV=;M=!I(W"FAE3* M,;M&@I6#+NQ 0@JJLX+;SD%*O^@I3K(^>MQ(O:9^!Q\V-2X. /M1I9+XOAP, MI\BCMBTLS3K0G.M/\,%JYW6!1N#N^(-U44T,G3<+@LS!_6,^F\=^CQ*J]!%1 M]DUDTRZ20^%!]X04)B<&.(UFOX+PS8?]7U8<+2Y H\IJ,C/;JMB?O?L M#3DZBDC<=EI!2=_)C&D:2J2FE'R M%ENM;?>4VVYKO6E.B/>RTTJ;O6VU.GODUC2'>S^W[$3Z_<]V*\+OF^WMY9&H MJ6\N$K8L%2$]9-FW2)HQG_4"WM#]9D 5U!70W& TC2\ RW[2#U'P^LZM+Z'I M( E/1&!1:I7W358Z-"!Z4U")<_K^^O;-F3M/??!!]XMJ_"FVVBZ:4T]+(:,S_/-$;XH[+>$N\U\1LYOQ+JSS#+6G3-M Z\?3MLA MO(FPMX6PMU'6W?SMGNCJ;/[ZO;)@\]=T3GK)R:)#ID'!86_AKCR2S!8->U&2 MILP[=!94FLG,O_.2\S'-V-$9T\:1QZ)U[GI*LO'I)=(<"%Y0%>F=KAMYTNVR/>KN>B.!Z&-YIW7%J8PNOL[5FY'AXUX.ML04?&VG9> M+^KT8 @8KME/8C(> 04D;A)QDN=U]QB.-(W<=C;E+K/V%]DN&;$EE;L6 VHL M39ZW!]7>0IETH#5"T2+=G-,%-(%%N/9C%_4^[%\WZ[E/A@_;;WE34ALI5(G! M;.>T!1'^V$D,/K>54% JI*$06DLWBKO3'KN]AO_%R8_HZT]^'.R4'CCY09QT MYVCZ)\;2N=O$T-D)V/Z]]MM?Y&F,(8^$*R2CM#V2BZ!U6FHB;J60\BD%;\1'IA^=W>YIXZ='&I?JAH&H? M/+4/GMH'7]P^.!;"VE<8!\??.PQ;$ ?[_M)_UPL$0Y:!R?G^NI[_/4 M]WGJ^SSU?9[Z/G]"W^=00C@/?HT,[K3DWURS\K-#\L-DS=7F=]VNY=?,VL?E M1^%^3,HEO9F>Z06&]GO3R8F&ULM5;?;]LV$'[W7T%HP9 7/1;LC+;@).F:(IF M"^)V?2CZ0$MGFZM$NB0=.__]CI3MV)FCAP%[L$4>>??='3\>;["6ZH=> !BR M:6JAA]["F.65[^MR 0W3EW() E=F4C7,X%3-?;U4P"JGU-1^% 29WS NO-' MR1[4:"!7IN8"'A31JZ9AZOD::KD>>J&W$SSR^<)8@3\:+-D<)F"^+!\4SOR] ME8HW(#27@BB8#;UQ>'6=V?UNPU\'G M"6Z@KJTA=./GUJ:WA[2*A^.=]?$DF[7D0.2,3/A=\QDLF M#!F7I5P)P\6RG,0I-; M44%U;,!'K_>N1SO7KZ-.B_?LF<0A)5$0!1WFXGTF8F0O %PURS1DDWSN))+QTF;4 M>")V[ZF,=^-=LYJ)$LC$7>[=C!GRDKBPC[[\C2S#:V8T>8>0B#Z>?+%KR6]! M<:CV<26 ;-5Z8ZW!Z-Z=0$>-1/: MC=2(@Q$3T(8W+EY@2F#6->&"P*8$K6U>IKRNG?2,9#1.,UID,8[/XRBC*3IV MX1:".*!)FO0^<88*F"C0O>N=YI&]L@OYC$0T2&(:!)'%B%+T/G40*,>8^D7> M^],L0&$5*=7*JFZP+&K0+M0$(TR=:EXD- ]CIQ@%.8W"M'?[<\7-<^\1#-;( M5Z@85EK0H!_@)*%%46R%64*#O.@@7;HG7=I)@AV3=N03Y#T7>***$+^>9> ?(9-EA7:EG^^'Z*,IWF3U,&'UJ"^2+/&"P! M^TZ0(Q;]RY/_A4C;.Z-[$X9O'24"&7M&XIAF(=Y5QZ60!D6&Y2VW"WCYHX@6 M87+ IMOM03N1!9A+B35>R[JR)Y4@5Y"$Z>M2&<4TR0,:QD7O0>5MH=F(D372:,/Y! M6]& FKOF21/W3+8=QEZZ[\_&;5ORLKUM[NZ9FG.A20TS5 TND3*7!EL<-%]AC@K(;<'TFI=E-+,"^:QW] U!+ P04 " !B2 =1;ITP M6HH" !@!0 &0 'AL+W=OJW+"ILJ;SB.V1Z9\-%2Y56Q=:3.X&T MM$YMXQ'?GWHMK9F3S^W:K)%E.G*F=S1 A>.;CN)8H].;O+7EQ!DDVM; M(R@DO(+8#;/,S8)8RY$;A:D;)N'(XJT.1R&S[3 -?3K=6F:YX9) A<,DT@\#,W MB>/)5SUCZ+C8N"TV,7H$DT,:9&Z4!%8F2>:&/H&7GL0;5;U.;VM[6X+E]PTP MK [C8]EWS;-Y/WMNJ-C63$*#&^WJ7R6Q Z+OYUY1?&=[:,V5ODLK5GH$HC & M>G_#N3HIYH!AJ.;_ %!+ P04 " !B2 =1T$!*99(" !'!0 &0 'AL M+W=O[1G3P M7$EEI\':N7H<1;988\7MF:Y1TCL-XF"_<2=6:^COC6TBCI* M*2I45F@%!I?3X#P>SS,OWPC\%+BU!W/PD2RT?O2+ZW(:,.\02BR<)W :GO " MI?0@GMU]P%T_? M\PHM;?.';2N;)@$4&^MTM5,F#RJAVI$_[^[A0&'$WE%(=@I)XW=KJ/'RDCL^ MFQB]!>.EB>8G3:B--CDGE'^4>V?H5)">FZ5G<*V>4#EM7L;PX3M?2+0?)Y$C MMI>(BAUGWG*2=SAQ C=:N;6%3ZK$\E] 1$YUGB5[S^;)4>(-?X$T#B%A"3N" M2[M TP:7OH/KHH1+80NI[<8@_#I?6&!3@ MZV]L:U[@-* "LVB>,)CY\.D.XKQWQ[?T\@Z-X-+""0SZHY EF9\-\Y#%H]X# M%<"I4*>UT05:"Z.P/QJ$&*ST:0HNE!B%B9L&&;I$.(X3-.>&[2=[M=EWBO"V. M5_&VQ=QPLQ+*@L0EJ;*S83\ TY9MNW"Z;DIEH1T57C-=4Z=#XP7H?*FUVR^\ M@:YWSOX"4$L#!!0 ( &)(!U'MMW@HB0, ! ) 9 >&PO=V]R:W-H M965TA^:5H,H?5!=A2R*\K 6L@F6<[^W MT_@(]G.[T;@*ARRE MK*$Q4C5$PVX1K.+;=>[\O<-O$H[FPB:NDZU27]SB7;D((@<(*BBLRR#P]@1W M4%4N$<+X^Y0S&$JZP$O[G/TGWSOVLA4&[E3UNRSM81%, U+"3G25_:"./\.I MG\SE*U1E_)4<>U_. U)TQJKZ%(P(:MGT=_%\XN$B8!I="6"G .9Q]X4\RGMA MQ7*NU9%HYXW9G.%;]=$(3C9.E(]6XU.)<7:9WI [9:PAHBG)@[$2&P6TA&YD MLS<$B?O<%*IN*W#[=ZJQ&IDTM^2'3V);@?EQ'EK$X;*%Q:GFNJ_)KM2,&7G$ M/ =#'IH2RF\3A-C T 4[=[%FHQD?Q5>2Q)2PB$4CZ9*!E,2G2ZZDNX<=:.W; M16HHN1.MM**2_T!)R49#*R0:CK'W]@":K(P!I/!>FJ)2IM- _EAMC2?JSQ$X MZ0 G]7#2*W!>!()!(+@0J+L0J#@+1-R>:J!!TSJEOJ?3:%WW/;@UK2A@$>"! M-Z"?(%@ZBI'G>#;I8_MM-0J?. M@7'BKCGEZ/9)(?>8;X2$.*(L9C3BG+"$QA@8Q>GD%S"&;&55>1^K2(E19$;C M64H3'CDH\913QOADE.)&69\&]Q _IN8.E^]KEDPIGW(RHG(VJ)R]@LI7I1TM M]O^DO8)%-@2>"\>MVKW0ZYCA64HSGJ#-\_=ZMZ +//3DC(=,(_*6X,%X>^$D:M6ACP8WMK$'I(M1EJ1TEC-/'4^G M>/ZBR:;/AN/9 ;#^)#Z)J@/$\*1D@>WBN>KG%(+D*=;*\/(]RL.+*87.>S^+ MW7<*H?0#:]@=QOVJGW(O[OV_PJ/0>]D84L$.0Z,;CF^[[N=OO["J]3-OJRPB M\^8!?UE .P=\OE/*GA>NP/ 3M/P74$L#!!0 ( &)(!U'()7^.A ( &(% M 9 >&PO=V]R:W-H965TA@$.BNP8OI&UBCH9"U5Q0PMU2;0M4*6.U!5!G$8 M]H**<>%-1FYOJ28CN34E%[A4H+=5Q=3S#$NY'WN1=]RXYYO"V(U@,JK9!A_0 M_*B7BE9!RY+S"H7F4H#"]=B;1L-98OV=PT^.>WUB@\UD)>6C7=SE8R^T@K#$ MS%@&1K\=SK$L+1')^'O@]-J0%GAJ']D_N]PIEQ73.)?E+YZ;8NSU/SQ&?8HAH44IM#P2>28OR8( M2&JK-S[JG<47&1?L&3J1#W$8AQ?H.FWZ'4?7.4-WBVM4"G.82VVT#W-6<\-* M_@]S'Y8*:\;)>+F5J=9H--QRG952;Q7"[^E*&T6/Z\\%.4DK)W%RDK/9O2Z% M=$'YL11@;"'>*L-%6MO80UVS#,<>=:Y&M4-O8F^0KC$:7+T7]1IB/TD'?C)( MG1T-4G_0[5]]1:V!E=37#DH3 N1*2WHJ&=J-R.^%H9\D*5E)K^>'_>B]6#X( M&D37T*=P83&PO=V]R:W-H965TVUN[0[ D?NF5G8>[9QKS^/8ECMH MA#W3+2B\V6C3"(=;LXUM:T!4(:BI8YXD1=P(J:+%+)RMS&*F.U=+!2M#;-<2BX\&UW.Z?_@\%W"WI[8Q&>RUOK6;SY7\RCQ@J"&TGD$@"I M?43_$'+'7-;"PEM=_Y"5V\VC240JV(BN=M=Z_PD.^>0>K]2U#;]DW_MFR%AV MUNGF$(S[1JI^%?>'.IP$3))G O@A@ ?=/5%0^4XXL9@9O2?&>R.:-T*J(1K% M2>4?Y<89O)48YQ;%&5D9?&+C'HA0%7G_NY,M%MV=D]=?Q;H&^V86.R3R[G%Y M %WVH/P94,;)E59N9\E[54'U&"!&A8-,?I2YY"\B7HD'DC)*>,*3%^#2(>LT MP*7/P!U3IF15"^4>9TY^7JRM,_B]_'J!*ANHLD"5_88+0$TX8G8YS#..CB\[I7HLS77EK"<_HA$T.2Y_'(Y59GM., M3X_KZ*/1UI+VZ>+RE.:3C!8Y G)D3NDT24:7@!&B++NFJX6#"IL7:UA*$<8# MRR@;8QV*"6$I38H"RS(9/?UZE"@EK59!%I 2MF+? MV$=U^ Y#/E/'*U1C_)<<>EL^#TBQ-U:U@S-&T-:R_XO7H0YG#EGT@0,?'+B/ MNS_(1WDKK,B76AV(=M9([6Z&?S^15Y$@V8!?G\0VQ0 M^+(,+7+=;E@,C'7/X!\P&"?W2MK*D*^RA/)_0(@!C5'Q4U1K?I%X+XXD9I3P MB$<7#.@7"'*7,:;-YI,;)8W5^[YY/Q$VI3/.:)HEJ/"(LEE&IUDZN0:M M/(6$Y!:V."Y 6$33E%'&YX0Q&F1GA-)JE-$JC MB4^.$HD/ 1Z0H1NCTX2A$L=TQN8TBAEYKXCA6?=A-79^Q@PIU%[:OA''U7&, MK_ON_6?>OP'W0N]J:4@#6W2-KM)I0'0_5[UB5>=[>:,LEMZ+%3Y%H)T![F^5 MLB?%'3 ^;OD;4$L#!!0 ( &)(!U'Y7G@@3P, ,P' 9 >&PO=V]R M:W-H965T M>;DQU<+W=9)CR?105BCH3R95R0PMU=;7E4*6.J>R\*,@F/@EX\);+]W>K5HO M96T*+O!6@:[+DJGG"RSD;N6%7KMQQ[>YL1O^>EFQ+=ZC^;>Z5;3R.Y24ER@T MEP(49BOO/%Q>FGSES3Q(,6-U8>[D[@/N]3B"B2RT M^\*NL9U$'B2U-K+<.Q.#DHMF9$_[/!PXS((7'**]0^1X-X$1X\(6Y=XH^LO)SZS#8 @?12)+A ?VA'H!_0>V*5"_7?J&\*V5 MG^RQ+AJLZ"6L"&ZD,+F&:Y%B^CN 3\0Z=E'+[B(ZB7C#GB$.!Q %47 "+N[$ MQ@XN?@'NEU"XXCHII*X5PM?SC3:*CL>W$R%&78B1"S'Z:PC4X#)Y+(\G,>P] M7.B*);CRZ*)I5(_HK6T** _AO'=9*X7"@"$9E9*/W%Z01>\]IJA8 :\@GHX' M01#0;!R%=M:[-\P@O/EG%H71NW;L/4A#]LDQN ZC1;C"#,DN?2EJZ,R@/W'# MVY,1TZ-8?T TQK_;D+C9I!47-A1/5&W<56U\LFIWF$B1\((SURID!KRIHXVN M24IMI'H&9349"9AEZ+J)VSE6X-/A#FHIRZHV?Z2"43ER!'RJ* []_0^%5S - MIX.1R\)D% W&78D/:)^!H)Y.4MH2V L]XGDJN.QX=1,* G!J+98$J,&\M^/ G)<3Z( MK8C_=U!ZUUW9#M+D$AJ&PQA>0S@9SN#UL?/D'W38$M76O2,:$ED+TS3;;K=[ MJLZ;#OW+O'GG;IC:-!F @ /04 !D !X;"]W M;W)K&ULC91+;]LP#,?O_12"3QM@U,\\D1A(L@[; MH4#0['$8=E!L)A:JAR?)3?OM2\F)EP!MMHM-2>2/?]*F9@>E'TT-8,FSX-+, M@]K:9AI%IJQ!4'.K&I!XLE-:4(M+O8],HX%6/DCP*(WC820HDT$Q\WMK72/- M&;Y4'XWBF'0?96,UGC*,LT62W)([JB63>T/6H,E*"8'=VM14PY1\^$:W',S' M660QF0N)RB-XV8'3]\ IN5?2UH;]@[NHVI=+?BVVQFK\47Y?X><]/_?\_%_\!OEEUU7CTUC7T[A7HQG-J&EK"/,#Y,Z"?("A<,[ CR>1F\00:Q^@BE2$XA\926:$2DH7Y. GQ MPZ QBL/!9'"SNG!FQK1.&VGQD^'D6E4^$M7X\6DXE8:,P^$P(\DHC//L/S)2 M! IG5(RW'N,T3,+1)/'6*!QF8_)6LZ.S7UJ WOO!-9BJE;;[N_O=_FY8="/Q MU[V[6.ZIWC/4SF&'H?'M:! 0W0UKM["J\0.R51;'S9LUWF^@G0.>[Y2RIX5+ MT-^8Q2M02P,$% @ 8D@'428H;JV-! :0P !D !X;"]W;W)K&ULU5?;;N,V$'WW5PR$+= "CDQ1]\ .D*0I=H%-8R3I M+HK%/M 6;1.11)>DXZ1?WR$E*TYB:_>U#S8ESIDK#\?C\5:J![WBW,!35=9Z MXJV,69^.1GJ^XA73OESS&B4+J2IF\%4M1WJM."N<4E6.*"')J&*B]L[&;F^J MSL9R8TI1\ZD"O:DJIIXO>"FW$R_P=ANW8KDR=F-T-EZS);_CYJ_U5.';J+-2 MB(K76L@:%%],O//@]"*Q> ?X(OA6[SV#S60FY8-]^51,/&(#XB6?&VN!X?+( M+WE96D,8QC^M3:]S:17WGW?6_W"Y8RXSIOFE++^*PJPF7N9!P1=L4YI;N?W( MVWQB:V\N2^V^8=MBB0?SC3:R:I4Q@DK4SVCK\C )M%:B+NW'DHOR=&78V M5G(+RJ+1FGUPJ3IM#$[4]E#NC$*I0#US%D0^W!DY?X";M2O3M&2U/H5?[]FL MY/JW\LPBA6M9FY6&J[K@Q6L#(PROBY'N8KR@O1:OV3.$ MP1 HH:3'7-BE'#ISX1%S=RNF^(D]R@*F[!D99N!<*58ON7O^=C[31B%=OO.9,:0C]'#_9B_A1ELR(4A@L,D7U,-A7 M+L2C*'A=P+/@90$$ ?CI*4S<%2;^Z<)H4+(L82&W3!6'*M-KRO:M4[UF!JR>NYD)SF"HQY_"I-DI@BYG#%U9N^.!F M8[1A=2'J)9S "_."#&@:#-.8P <( C\,<0U)-*0Q'=RT62R11-97% X):8$Y M&7SF&F_4+E7>!E! 0%I[H4_B=ZBU4(C)R(NI)#L>7@Z41B_0-,"5TFP8A._# MBPE&[8#$#WO#:^PE?G@LO(#N?$9^&!T-SS(WICNO@1]3&Q[)AUD80P^9DHY, M23^9^J_TL&UNP[>G?VL1\,WU.KCG3P8N2J3E]T,<[(W@, ?WRX'+SKOU-FA< MR\6;D#3\N:EF7%G)[MS>XDMU_:L#2OAL[WP/R#^X /$ M/@GP;/'XVI,FV!KL=I*C-+72S$EC)Z5.FOIIA-+,2G,KI:D[UM!/P&X[W=Q* MD5PH#AN.YTXY][-XX&AGY<&>\=3)&SXZAE@ M8 D(]EPDC0OL?^XG?AQQ^_[%<>&5N+08\_)]?QV\A'_XBF+NAFH\( ';(;3$NA7#5'N4\>\ MNNFG@_\9KX)]7KFZI^]8YWK, =:%O:R+]EEW@%;945K%80N(VH:9OZ75*]8< MIU7Z(UHEQVFUH_8Q6K4=O:,5=O5#S7*T-_Y57"W=D*MA+C>U:2;!;K>;H\^; M\?$%W@SAUTPM\><02KY 5>*G^,NKFL&V>3%R[8;)F30XFKK'%?X7X,H"4+Z0 MTNQ>K(/NW\79?U!+ P04 " !B2 =19N$0##P" #.! &0 'AL+W=O M@A0M'L%>K6H*AJ28M'*%#T@_VCO'6M*C5*I!XY4U MX' Y%9?9>#8,_M'AI\*-WY,A5+*P]C$HM]54I"$AU%A20)#\>\(KU#H <1I_ MMYBBIPR!^_(._2;6SK4LI,*75/GYA MT_D.!P+*M2?;;(,Y@T:9[B^?MWW8"S@[%)!O _*8=T<4L_PJ21839S?@@C>C M!2&6&J,Y.67"I3R0XU/%<51D%Z=P)7T--WP]'FY-=\_L_PHXER^P" [@3S-TR-P M@[[L080;'(![6+>M1AXNDOJM?KCN;!Y^7RX\.1Z9/T?(ACW9,)(-_X>L#&3+ M0*;>>OU>AX]BAET=^U:6.!6\C![=$XHB-(<[E%U\N#6$;"9HI:K 6(/QP_;2 M-@@DG]%W9Q\A.T]/LD'&TFB4G@POSN&]FI.]&6O0K>(F>2CMVE W;KVU7];+ M;D;?W+M-GTNW4L:#QB6'IJ=G(P&NVYY.(=O&B5U8XOF/8LT/#KK@P.=+:VFG M!(+^"2M> 5!+ P04 " !B2 =1CB*QW5$$ "Z$ &0 'AL+W=O./-9 M_>Q>SF>BTADOV+T$JLIS*E^N629VEPYR7A\\\,U6VP?N?%;2#7MD^E-Y+\V= MVV9)>V()EF/S5)'7:.2WPZ>%/,BBJV$-D?/-7;2R=R0,K6M,KT M@]C]S)J"?)LO$9FJ_X)=$PL=D%1*B[P!&P8Y+_97^MPLQ $ D1$ ;@#X7 !I M .04X(T O ;@G3N#WP#JTMU][?7"+:FF\YD4.R!MM,EF!_7JUVBS7KRP&^51 M2_,K-S@]O\U+TRL@UN J%67=.S-^U+1(J4P5>& 9U2P%6ICA$RLJ9JZ)V!2\ MCGVS9)KR3+T%[\&GQR5X\\/;F:L-+YO=31H.UWL.>(3#'7T!!+T#&&(X@%Z< MBT;Q 'HYC?ZE*BX W,.C ?C-V9.?H%W3B+8;N.T&KM.1D73-$K\#MW9]:0:N MRC+C":W7^IY)+E*PJ/+*],0<+W"S7IOS!CY*:@YN'?/Y5Y,1W&J6JS\G^)"6 M#ZGY>&.[HS!\M) O0TW=0_T::O7H:8X@@J%'PIG[=-B_@4"$24P(:@./V'DM M.V^2W4(HK8#9J8 IS?-ZGS(J"UYL%. %8,\)4\KNYQ7/,OMTJ(S]',$AN]#W M_)"<5-&/"_T0>S$<+L)OB_ GB[ANJ!T33B9*&RK"[Y,C010$)S7TPP)"0DB& M2PC:$H+)$G[36R:-Y">RLC2?C8DI-D1S$?37VB<8AR,;(6P)A),$'JP(%5]9 MHK"W"PGV2>1'\&21^H$X]F$40&^89=2RC*:W*\V2:J^F59&:%7L5U)\JGM(B M878+-$=ZQ;I;-)(?\C .&41R>%C(4Z!$(\4@AG3.A:6LZ6W263:(C#AB&&/FG M9/N!R$/8'R7;&16:=JIS!&J)^@Z#3,5:<(5-VX]"U-OWX1X*%.H-!P?SH+05_QD/]&AZ(>O_<$!SZ,1_AUUH+B_T->XCX_[",X(N.X,QH\;33G MBT:3Z.B-*O9"-"+ N',2/.TD9TE!D^/P@'MQ?-H=]^"SSW[5WU&YX84"&5L; M&+P(#5[N/Y3W-UJ4]9?@2FCS75D/MXR:5Q$;8'Y?"Z%?;^S'9?OOBOG?4$L# M!!0 ( &)(!U$+XK)2$0, (H) 9 >&PO=V]R:W-H965T?/((=E;2_6D%P"&;'(N=-]9&%-SC(!#:JP+BK\5),"Y]80\?E9.G3JF!3;; M+][ORN0QF2G5D$C^G65FT7@9%!SL3V3S>5$ V 'QX !!4@.!405H"P3'3+K$SKEAHZZ"FY)LI:HS?; M*+4IT9@-$W89)T;A+$.<&8QA!6()9)@7J"A!8>^8H")EE).)H09PR8PF-Y3C M()!)N;7.;L%0QO4YN2 /DUMR]N&\YQID8WVZ:17Y9ALY.!#YGCZ3T/]( B_P M]J"34]%^]RW:105J&8):AJ!T%QYP]P7WVW6:RJ4P3,S)2$F![;3*7BJ2+*B8 M V'BK1E#I0H.Y/$S.B1#E$O_.$(GK.F$)9W6 3I#@:MBI'K>)^L6&I506Z6K M@>_Y7MP*XYZ[:BJXQ] /PFX8^K7A&W:MFEWK*+M$:A2%BHR -@Q+";!%E4!) MM%4(-BEH5&U&IHQS.[HOC6V,=I-='+6B.'R7Q:Y=',5!J^OM3R*JDXB.)O'5 M+$#A*9*JI:6_P7-1PSZB2;1+- J#(#Z@8KLFT#Y*8&QK2#2DVR=2>V<)PR * M.U''>Z=2>X=DT(V\3MMK[6<9URSCHRP;NQV/ Y%1E6GR4&2XZ+;V6A=>ESS> M0SX%=6SC=^IPG?^A#KLUG>YOUV'2W9'\P);TO=?#V/OWE95404YAUK@F_+]4 M+I6C4Z*_GLY^\,>UDE0^HB.!W<9%:5\I]U3-F="$PPPQWF6,8+6]^+<=(XOR M[IQ*@S=QV5S@8PF4-<#YF93FI6.OX_KY-?@%4$L#!!0 ( &)(!U%2RI:Q MT , % - 9 >&PO=V]R:W-H965TE>R*]JPYA&+T7.U% MIVR]T=6"/9^6=,T63#^7CQ)F=FLES0K&528XDFPULV[P^QA'E8*1^"-C>W4T M1I4K2R&^5I/[=&8Y%2*6LT17)BC\[5C,\KRR!#C^;HQ:[9Z5XO'X8/VC<1Z< M65+%8I'_F:5Z,[,F%DK9BFYS_23VO['&(;^REXA!@0($T"N1T8WS)T7Y00402!_9AQRI.,YFBAJ6:0,JW0/4]$ MP;H5='7'-,UR]09=H^?%';KZY:W]>9D8'-,T(/@>J/0!YZR M]-2 #9ZT[I"#.[=DU.(#_89<_!81AS@7\,2OU<;1"!BWC:UKS+D#YCY#$=\D MB=ARG?$U>I2"PSAI0BHDBC>4KQG*^*E8!N$O.U<#P# MQQN LZ Y4V\19_I2IFI=W^A6O;^;DXD[P;Z'I_;N.(1]0=<-<.2XG> )/+^% MYX_"BX6"^ENAM1"I0DKDZ268M8W@:'<<8<_S_'.8?4'B^2$FOG\99M#"#$9A M0A9WF2$QX%!(G>D+35^8N@0WZ*%P)X'C.&=@^V(^]H_%3J"&+=1P%.IG. 4: M@%>Y4.IBAX;]=#HDBL+@#&+8CZ'U0I8'RT9A)RAWT69)2AP O3E@15+)L>:(VIQ1#]#KV*GXV7G M_W=KW"B?%!;Q"8%>N)P/?'0@X._OP[@Q]D^/:BZ+S]K>/[J8%DVMS95?(%%!]KVM7 MVV?!C;D,GZW?5L\%<^?MS-1OC0&ULK59-C]LV$/TKA- " M"="LOBQ+7M@&O-X6[6$+8XVDAZ('6AI;1"A2)6E[TU_?(24KVHTL%T4N$DGQ MO7DS0VIF?I;JLRX!#'FIN- +KS2FOO=]G9=047TG:Q#X92]510U.U<'7M0): M.%#%_2@(IGY%F?"6<[>V4JHNK+ W!Y7GBA=UEX9H?2V 5_ M.:_I ;9@/M8;A3._8RE8!4(S*8B"_<);A??KT '2W M8N$%5A%PR(VEH/@ZP1HXMTRHX^^6U.ML6F!_?&'_Q3F/SNRHAK7D?[#"E LO M\T@!>WKDYEF>?X76H<3RY9)K]R3G=F_@D?RHC:Q:,"JHF&C>]*4-1 \03J\ MHA80O07$5P!Q"XB=HXTRY]8C-70Y5_),E-V-;';@8N/0Z T3-HU;H_ K0YQ9 MAG=DVV20R#W9LH-@>Y938<@JS^51&"8.9",YRQGH>_+N$0QE7)/?J5+49N ] M^4 ^;A_)NQ_>SWV#BBROG[?6'QKKT37K$7F2PI2:_"P**%X3^.A*YT]T\>(@4EG M8.(,3*X8>)05:,-P*YQ '(%036I0.0B#=]!FU$A#^5!BQHFS^"X(?AP*X#@N MS;[%O?(LZ3Q+1HE6FE'Q/]P:9PW#&_*FG;SI*-&F46.E7#0JR"7>GG^@P"ML M2J(IQW3G>+QMMC7!7RXYERPO.P33?9 \@2(&?Y%#;HVK2=)KV;J!2VZ$(^W" MD7[O<-@15AE[-RC1^.)@<^P*D\@QR3O.#M3^ZH?B,2YG12&SWD34.6.#);=T_+212DV73NGP9$S#H1L^\H8CW[ M1D0TS;)).BPB#+X6F&!4QC-HH J/O951X.G@LJ[L8;D:CI9PVI.29$D0!)V4 M1O' OCB<]?>]EMRKB>&-R%$%KCLH4&6%+9-V)Y' BQT/WM"6LA^_B_5Y-KT =7*MCKPT6E*8<=JM=.[5R3<2;]0?;9KE>X2M-TZ,] M475@0A,.>Z0,[E(4I9JVIYD86;O.82<-]B%N6&*K",INP.][*?R M7U!+ P04 " !B2 =1AE@]+)4" )!P &0 'AL+W=O7MBWR$FHB M+M@6&M6S9KPF4E7YQA9;#J0PHIK:GN.$=DVJQLI2TW;/LY2UDE8-W',DVKHF M_/4:*-LO+-=Z:WBH-J74#7:6;LD&'D$^;>^YJMF#2U'5T(B*-8C#>F%=N9?+ M2,>;@%\5[,6HC'0F*\:>=>5'L; <#0041@)7'Q$X/4"[Z,"W NP2;0C,VG=$$FRE+,]XCI:N>F" MF1NC5ME4C5[%1\E5;Z5T,KO*<]8V4J@5R:':D14%),WW[ 8DJ:@X1U_0T^,- M.OMTGMI2#:F%=M[;7W?VWA'[._**L/L9>8[GS*B7'U6[R7NUK=(<($T3QK.+"&)UEO M0:-2=?^1)@>D;E)4L'8EURT=,IC##B&PO=V]R:W-H965TV MV\"WGYVD46G30%\TMG/_N]]=['-6<_$B5P *O5:4R8FU4FI]9=NR6$&%Y25? M ]-O%EQ46.FI6-IR+0"7C:BBMN?X29XC82QUM[,H*E- MH];9$&:^XJ,2^BW1.I7_8%M@BHLWI/"< CJ;@<*$RG-T@9X>9^CLRWEF*QW( MF-M%Y_2F=>J=<'J'WY#O?D6>XSD#ZNEGU6[Z7FWKY/H,O3Y#KW'G?YCAC,B" M@_]'8G@]Q'\)D)P(L(#KO4G42 (IG*H6JT\;.3F6&WS*$P< M+\CL[7Y9!LSBU'&3WNP=7=#3!:-TS_H871!VL1:\ #G(USJ(]@(G81(%SB'@ ML5V:.F&0AL.$84\8CA+>$D;T#B[1DO-R$# \#ASYCI,>\!V;Q6&0G"I@U.-% MHWC?!)<2D=TV&N*+C@*[>NO'@1\?$ X8NKZ?^KX[S!CWC/$HXT_]91&FNB=C M5@#2W1WQN>049 %Z88@Y'F VOP/B#\W>\28];S+*^TO?3Z,538[.@NNX0Q4= M,'2]H8K:>TW27%!W6"P)DXC"0DN=RUC[$&W3;R>*KYN^.>=*=^%FN-+W) AC MH-\O.%>[B6G%_&ULC95=;]HP%(;_BA7MHI6ZYHLD4 %2 M"YLV:=50NVX7TRY,<@"KCIW9IK3[]3MVTH@2@GH#Q\YYCY_SVG'&.ZD>]0; MD.>2"SWQ-L945[ZO\PV45%_*"@0^64E54H-#M?9UI8 63E1R/PJ"U"\I$]YT M[.86:CJ66\.9@(4B>EN65+W< )>[B1=ZKQ-W;+TQ=L*?CBNZAGLP#]5"XSS.:[A)\,=GHO)K:3I92/=O"UF'B!!0(.N;$5*/X] MP0PXMX40XV]3TVN7M,+]^+7Z9]<[]K*D&F:2_V*%V4R\H4<*6-$M-W=R]P6: M?A);+Y=J\@;@2Q:[0F M&X5/&>K,=":UT82*@H V#&T!C*@2 M3*PU09NW(I=EQ<'.YU(8A;YK8N>D (&AH4L.Y&P.AC*NS\E'\G _)V^ M03Z[BI\W+#D"B(@B/JV7O5X>BMVD=/6F.BUIC(E8M[RLUA M!4IAU\ZA"S*C%3.4LW]07)"%@HHR#*QQW\T&%+G6&M"..=,YEWJK@/R^7FKG MUY\3.'&+$SNETX<87M2_TT3>-1DB3H\=.^O=V\,$U& MHSC(VL0WZ(,6?7 2_5/G8!VCK&ND>ZO'0UP_R@XHNWF8E&9]D$D+F9R$_"%Q M<]''_K?A&'32@0F#*(R"[)"ZFQC%890&X> X=MIBIR>QOX'69,DX=^^KD:1 MYF.D:0=@%(X&<79X"+IY81H.LRCJ\3=K0;-WG-^>>T9(XYJ XAAZUCV709CM M[WB-WLU+1_$P&QZ2^WNWI?U2W5*U9D(3#BM4!I<9EE#U[5\/C*S&PO=V]R:W-H965T>/WGN5I MOI7J3C< 2!Y:+O3,:Q"[<]_790,MU:>R V%V:JE:BB95:U]W"FCE0"WWHR!( M_98RX16Y6UNJ(I<;Y$S 4A&]:5NJ'B^!R^W,"[WGA6NV;M N^$7>T37< -YV M2V4R?^Q2L1:$9E(0!?7,NPC/YXFM=P6_&&SU3DRLDI64=S;Y4B_]&'P80<0QF\ H@$0?100#X#8 M">V9.5D+BK3(E=P29:M--QLX;QS:J&'"WN(-*K/+# Z+N=2H"145 8W,V (F MHDHPL=;$V+P1I6P[#G:]E *5\5T3I"L.Y&@!2!G7Q^0KN;U9D*,OQ[F/AI1M M[9<#@0/0&@2OZ2.+PA$1!%!Q SS^*#L]>HGUCQ.A&-+H1N7;Q&^T64(-2 M1JJSY83,:<>0IVS%[1=6: M"4TXU 89G&:FA>I'5Y^@[-SK7TDTL\2%C9GVH&R!V:^EQ.?$#I3Q_Z/X#U!+ M P04 " !B2 =1>KL _[L" 3!P &0 'AL+W=O?XG,/%3':HG\P&P++G0BHS#3;6EM=A:)(-%-Q< M8 F*GF2H"VYIJO/0E!IXZD&%#.,H&H4%%RJ83?S:2L\F6%DI%*PT,U51PP/8QW*E:1:V+*DH0!F!BFG(IL&\=[T8N7I? M\%W SAR,F7.R1GQRDZ_I-(B<()"06,? Z;:%!4CIB$C&GX8S:+=TP,/QGOVS M]TY>UMS N4/D=K--+@,6 H9KZ2]Q]T7:/P,'5^"TO@KV]6UXW' DLI8+!HP M*2B$JN_\N"LNE^ OI.5MI*+F@@4OM MF]V 9G-C@&)9"I-(-)4&]G.^-CZL7R?D]%LY?2]G<$3.756L:1?,:&_\#>X- M",5*C;D&8[J2K_E&GL]]R-M9;S@)MX>YOBV)X[;DE@+-OW3I?$TUR7T444?>SJA].X\?@M[I6986MF^$XSO,"*O&APAR)]%UUF M:J[AJS#[@ZM1_%_H;^M&X\'E,(ZZDQ^U8D@NPRYW<(=K]Q!V,[7]P]@]02P,$% @ 8D@' M4287 ,IS @ # 8 !D !X;"]W;W)K&ULI57? M3]LP$/Y7K&@/('7D9YL6I9&@U;1)0ZM ; _3'MSDVE@X=F9?6]A?/]L)48& MT/:2W-GW???=.;YD!ZGN= 6 Y+[F0L^]"K$Y]WU=5%!3?28;$&9G(U5-T;AJ MZ^M& 2T=J.9^% 03OZ9,>'GFUE8JS^0..1.P4D3OZIJJATO@\C#W0N]QX9IM M*[0+?IXU= LW@+?-2AG/[UE*5H/03 JB8#/W+L+SQ=C&NX#O# [ZR":VDK64 M=];Y4LZ]P H"#@5:!FI>>U@ YY;(R/C=<7I]2@L\MA_9/[G:32UKJF$A^0]6 M8C7WIAXI84-W'*_EX3-T]3B!A>3:/(7:&M,E?6DB+-,R4/1-EHPV8-UQN'-M4P84_Q!I7990:' M^94Y: 1!10&$BI)(K$ 1)O8@4*H'@G3-@9PL 2GC^I1\)+]'A["G:-R7W=4=]W9&CBU^A6\(&E(*2 M+*1&/2(+VC"DG/V!!$FWE"Y%I+#KH LS"DN"6<'"D))T&0),\5#\0EDTDP#8<5 MCWO%X__I\8@(P"'9XQ<-G*:S8!P\4_TR+(W#:9H^$^T?W54[)Z^HVC*A"8>- M 09GJ6%0[>QI'92-N[YKB688.+,RXQJ4#3#[&RGQT;$3H?\!Y'\!4$L#!!0 M ( &)(!U&# O_0K ( ,X% 9 >&PO=V]R:W-H965TAMI,@ M#G:*6UY6UBG"Z;AA)=ZAO6^6FD[A@%+P&J7A2H+&]228Q5?9R/E[AR\Z4RXH9 MS)3XR@M;38++ I*=U63E%&>GHU/(E+$&F"S@VEA.E4&2F)98]D7E')#E )$[@AL K ]>R MP.)O@)"R&E)+=JG-DU<1;]@3I/$))%$2O< G^]_H^-TK9-*ASJF'2P_ +7"- M6OL*4K5/(&,-MTSP7UBI4%-[E0IM4(WV8KXVO_ M_14ZHX'.R-,9':!SBQN4+=(DVW0W3)9<&!*X),CJ](%:ZVQ[=P:K&#^!*61IG+U:T<%$[ M![*OE;*[@[M@6.'3WU!+ P04 " !B2 =16D*1LVX" !=!0 &0 'AL M+W=OL@4MNAV&'12;B87*DB..KTMR&V&6UFR-]T@/]4+;5=BQ%+Q" M:;B2H'$U"L;QS;3O_+W##XX[B= /1:0,\'VBCS M85LV9_C<>+2-ADM7Q7O2]I1;'&6#2YC;6A-*)G,$)@OX3B5J MN)5;E*3T_@;.9DB,"P/?F-;,I?TD=,K\MH MS]/U3M#-<(5:8P%39<;7FHE:TT<2;$'M32*(&$P ^E?JN6 M#?O L[N1L,WBZ\@^:;@]3O$;;L/!L5LC/CSZ4RO4:]_ !G*UD=34N]OM9L38 MM\:K_8F='4VKO] T@V?.])I+ P)7EC*Z'%I1NFGF9D&J]OVP5&2[RYNEG7^H MG8,]7RF;I';A+N@F:O874$L#!!0 ( &)(!U$O\:.,&P, , ) 9 M>&PO=V]R:W-H965TKV,.W! 9-8!3#1?/0EKVFEG^1TX)NI YVW&P]LN5+FACN;U&1)'ZEZJN=" MK]S!2\9*6DG&*R!H/G6NX=4M; 6MQ4]&-W+K&IA4%IP_F\6W;.IXAH@6-%7& M!=%_:WI+B\)XTAQ_>Z?.$-,(MZ_?O']ND]?)+(BDM[SXQ3*UFCJQ S*:DZ90 M#WSSE?8)!<9?R@O9_H)-9XL3!Z2-5+SLQ9J@9%7W3U[Z0FP)(#H@\'N!_UX! MZ@6H3;0C:].Z(XK,)H)O@##6VINY:&O3JG4VK#*O\5$)_91IG9K-A>X(H5X! MJ3) _S:LUN]( 446!05G=U015LAS\!$\/=Z!LP_G$U?IJ$;KIGV$FRZ"?R#" M/7D%"%X W_,]B_KVO6J8[*I=G>F0KC^DZ[?NT(ET+\"\(#I/D_6G(>O?UPNI MA.ZL/T="H2$4:D/A Z&^:]^V:G6JH%69CVP]@TG@F]JLM\MRTFP'"@]0^"C4 M3<.*C%5+V6;.REKP-36Y2QMJYRO<8DAP$$'LCU@M=@C[&$$[;## !D=A[TFZ MTK?$J#EMI,$> 80^]L,P&J%:##V4>"$\4-AP8 V/LO[(B8JH1]#1R MN$>BWVZ"XG%Q]^U@$@4H\>W T0 <'06^;A3OND"))GVVOO]H'Q'',!X!GK+: MP8L'O/CDUW.R/^.]R#@(L)^, $^:[1 F V%RE/"+X%*"VKI_VF"3_3*A(,9A M,*ZGQ=!'L6[2 RT*O?][O7>\J%03DS1MRJ8@BF9ZWNG9GS)B)JIU9_?VFP_# M*(+A&-IFB;PPQ,&!1H!;$PH>I;:/J M046N=>V_!SJ[E13@9[[ V0P0CC,=? MEKLU7LW9YIZ():LD*&BNE=YEI%V([KC0+12OVXF[X$K/[_9RI8]85!@#_3SG M7+TMS! ?#FVS?U!+ P04 " !B2 =1!BSD(6P" "O!0 &0 'AL+W=O M'RF1XXTVC[8"0/922V4G M08787(>A+2JHN3W7#2@Z66E3V,8892.F(2,93 MSQD,(1UP=[UE_^)SIUR6W,),RY^BQ&H2? I8"2O>2KS3FZ_0Y^,%%EI:_\\V MG6]V&;"BM:CK'DP*:J&Z+W_IZ[ #B"\. )(>D+P'I < :0](?:*=,I_6G"// MQT9OF''>Q.86OC8>3=D(Y6[Q'@V="L)A?G'.%H;>A,%7QE7)/C^UHJ%;PFMV M,@?D0EKVG1O#7;5/V4?V<#]G)Q].QR%2=,<1%GVD:19 #5L([OL 7JBA+>R[CXXE\RRN MFY_S.![%<4S%>MZMTQZ_Z#*YRJX&OSU0)>^931NV*K%U@ K M>".0RTYX*9S-[E.?_:.*)A/]WHD*=]Y^#6;M1X)EA6X5=D]IL Y3Y\8WVSO[ ME*91-SS^TG2C[):;M5"625@1971^2:),-QZZ#>K&=]A2(_6K7U8T4<$X!SI? M:8W;C0LPS.C\#U!+ P04 " !B2 =1K23?T<8" 7!P &0 'AL+W=O MQ=NKM \O>=78-#N%CA >]ESIDSX_79_D:J9YTC&G@I"Z$' M7F[,LN?[.LVQ9/I&+E'0SERJDAF:JH6OEPI9YD!EX4=!T/%+QH67]-W:1"5] MN3(%%SA1H%=ER=3K$ NY&7BAMUMXY(OGM,#]\8[]WM5.MMGW8 X3G -$6$!T"XC. > N(7:&5,E?6 MF!F6])7<@++1Q&8'KC<.3=5P8=_BU"C:Y80S2?<&IKE4YOHGJA*&4A&>BX7N MP<48#>.%AA],*6:;?0G7\#0=P\6GR[YO*+FE\--MHF&5*#J3*(S@00J3:_@B M,LS>$_B4M98>[:0/HT;&!_8*<7@%41 %)_2,/HH.;QO$Q'4?8T<7GZ$;X\S MF.NTD'JE$/[7+,6!1]Z@4:W12Z"ADG9=2;NQDN\T M!SF'D<*,&[AG*2^X>;V"T4HI%.;M!,*(D0#:.U5EE:2S7V50_>HRW\GKU/(Z M'Y*75O+(];1A(K-R9JQ@(L53:CI':@Z[W13Q3FBW%MIM%/HDT@(9J02R]?19 MGY+5/3H*[2B.6ZT#;<=AT6UTW$E_SV-*5 MGO1I2N1*F^F;KU=K=[YRI':P/ MR?4KDWZCJ:Z,!Z867&@H<$Z4P4V71*G*AJN)D4OG9#-IR!?=,*>;"Y4-H/VY ME&8WL0GJNS#Y#U!+ P04 " !B2 =1U;$F[^ " I"0 &0 'AL+W=O MK8F6U*^?>SG1 H']&DJB_$=NXY]]P3[.O^1LAGE5&JP6O! MN!IXF=;EG>^K)*,%4;>BI-R\60I9$&VF1V3)G8##SH[18>\U6F[8(_[)=D1>=4/Y4S:69^PY+F M!>4J%QQ(NAQX(W@W@=@"7,2/G&[4P1C84A9"/-O)?3KP JN(,IIH2T',XX5. M*&.6R>CX6Y-Z34X+/!SOV+^ZXDTQ"Z+H1+"?>:JS@1=[(*5+LF;Z46R^T;J@ MKN5+!%/N%VRJV$[/ \E::5'48*.@R'GU)*^U$0< &%X H!J C@'X @#7 .>< M7RES94V))L.^%!L@;;1ALP/GC4.;:G)N/^-<2_,V-S@]G!-&%5AL#>N, M5 *]+2FXFE)-:%NIW2ZY.DZOC^#%&,8]CMP+[_P%>!_X1EZWD==ME3<17&FY=ONSI=JPH0L_ MW-FHR16]P]D*&QX8!KLA@E'<.7+V--#\R\*X&T?GG8T;>7&KO!&50I7$U.V# M*5V:4Y2V%-UK6'L?;C ,]@=-\ Z+:_ ;CX,H@A#UCCP^%PEQC''4.6\R/#@+ M8:O$>YZ:\T_FA+55C/9TZ./]W9]#$+_'7WRRZ6$OCD,4']M[&HB", JBX,A= M_Z#IF(ZQAT@:8]TLA]&YB$S2WH^$_4$L#!!0 ( M &)(!U$N:G&PO=V]R:W-H965T0+ E2 5.BF[:(5*MIV[28GQ*IC,]N4]M_/=H)+ MN\1L%]P0?[WO.<\)X#,[3 !50XCU5]_SP#5J@D?'+.97V$QV:LUD2H'PO%:];LV$">"..L1)*T@>2](>P1I*T@M:).9Q;K!"B]F@A^0,*>UFQG8VEBUIB', MO,:-$GJ7:)U:3 =H@RG(*_3Q!A0F5*([+ 0VQ?TT"Y4.80Z&>6NW;.R2'KLX M0;>)U_$6OZ T_HR2*(DZ\EG]JSJ>>I))7;52 M:Y?VV-E2>7R&SF=H?88]/FL0.3"E?R>(ETAQA2F2QEN/D21;1DJ28Z80805Y M(L5>[S=?!A"RZZWXPPWC011]Z*J>7Y=F?^O>\(X<[^ABO'$7KS]<'/7QGM&- MS_!FCC>[&&_2Q>L/-^W#]C':41>M/]RYM./H]5Z++I9XUGGQ^>/U9AZ>7,[: M>VM[%HEROF>JN0;=JNN+KFTW\&Y]:?HE>^F_VC3-UBT66\(DHE!JRV@PUG]S MHNE?FHGB.]L"/'"E >VPTCT?"'- [Y>&PO=V]R:W-H965T%YW2= M2+U@A^."K&$!\K5XXFIFURIQFD$N4I8C#JN)=8=O9]@0#.)/"CO1&",=RI*Q M-SUYB">6HQT!A4AJ":)N6Y@!I5I)^?A7B5KUGIK8'!_4[TWP*I@E$3!C]&\: MRV1B#2T4PXILJ'QFN]]0!>1KO8A18:YH5V*]D86BC9 LJ\C*09;FY9WLJT0T M"#@X07 K@ON9X)T@>!7!,X&6SDQ8<0R0"]D#T)=EQ30Q1PD2:FX1%?H=3%'%S\NQ[94>VF&'56ZTU+7 M/:&+7?3(Q4?R3OR\$_D.J[3X6=V+AN/>LQX M==H\(^>=D)MM.(=<(DGVJ.!LF^JRONT1OJF%;XSPS0GA>XB!$]J5\)+H&Z+^ M.K>A-_ =1R5CV\Q#&^:[N D[\N77OOQ>7PM))'2Y*FE!8[O/AOH01UZ"VDO0 MZ^6%24+5Q]'Q"KH?K=2AJU0 M,&X'W$9=!2?C'=6N1M^KD]&7==*'./*"G8_#S3FC4N+.=]!YICEG9:X#UI,Z MW#B+\1EVOW:)VR?!,.BPV<;YV&_[M!OM(P.^-EU5H(AMS_5JW;GO3+_Z MM#[5'=VTI0^9\G?@D?!UF@M$8:4DG>N!,L7+#EM.)"M,DUHRJ5J>&2;JKP2X M!JCG*\;D8:(WJ/]SPO]02P,$% @ 8D@'46EH-#AW P @ H !D !X M;"]W;W)K&ULC5;;;N,V$/T50FB!7:");K9D![:! MQ-E%]R%HD.RV#T4?:&ED$2N1*DG%R=]W2"F*8EW2%UL$E67)94O-U"(T];QG5?! SOFV@C"D>M_$I'(0XJ=9?$NWCF<000&)-BXH M_CW!'HK">$(<_[9.G2ZF,>Q_OWK_:I/'9 Y4P5X4?[%4YUMGY9 4,EH7^D&< M?H")[]_[7VUS-@PH[AT+H+)]Q]:_C\CGS>,I440M42R-_7!Z4E'N)_9D(L MNA +&V(Q$6(ORJK6D-JB55(\,7O+J"8Z!P+/%=8,=]^7Y?%LLMB.9O%HS9'JG?\+@C'/H9'\BND(&EAA0?@ MD#$]AKYQ'_5@+0?0YW7>X8XZW-%L@4UEFWMAL%: S84#UR1E*)3 $U!7,T6. MNS#Q+#T/H(#*)+/H9^-42U7L?A^@S\4&T"]KJ#O9Z%_0?> M%#E>O#&8ZT'\!?::LUVJF&N(' MOGS_,O1^'7MB/C*,+E?GADT^;N\M+T$>[8BC2")JKIL7L)-V8]2U'1[.Y#=F MO+(SPIN;9C:[H_+(N"(%9.C2NXR19-F,.\U"B\I.# >A&ULE55-;]LP##UWOT(P=FB!KG;LQ/U 8B!- MNJV'#D&[;H=A!\5F8J&RY$E*G/S[4;+C9FL<;!=;'WR/CS1)#RNI7G0.8,BF MX$*/O-R8\L;W=9I#0?6%+$'@S4*J@AK I?5R.MYNX-'MLR-/?"384F7\ 3FN9PIW/DM2\8* M$)I)010L1MZX=S.)K;TS^,:@TGMK8B.92_EB-_?9R NL(."0&LM \;6&"7!N MB5#&KX;3:UU:X/YZQ_[1Q8ZQS*F&B>3?66;RD7?ED0P6=,7-HZP^0Q//P/*E MDFOW)%5MVT?C=*6-+!HP*BB8J-]TT^1A#]"+.P!A PC_!D0=@*@!1"[06ID+ M:TH-389*5D19:V2S"Y<;A\9HF+!?\7Z:DM/W9T/?H%,+]=/&P6WM(.QP:K@"U=+-(DU2N MA*G[KSUMQ]W8=;G_:E[/R@>JEDQHPF&!T.#B$O.DZOE3;XPL70O/I<&!X)8Y MCFQ0U@#O%U*:W<8Z:'\"R6]02P,$% @ 8D@'464/,&V0 @ F08 !D M !X;"]W;W)K&ULI55-C]HP$/TK5DZMU&Z^2(!5 MB 3L5NUA);2KMH>J!Y,88JT_4MN!W7_?L1-28 .MU$MBC^>]>3/.3+*]5,^Z M(L2@%\Z$GGF5,?6M[^NB(ASK&UD3 2<;J3@VL%5;7]>*X-*!./.C($A]CJGP M\LS95BK/9&,8%62ED&XXQ^IU09CZ;8RUN#G68VWY(F8K_5*P<[O M64K*B=!4"J3(9N;-P]ME:OV=PS=*]OIHC6PF:RF?[>9+.?,"*X@P4AC+@.&U M(TO"F"4"&;\Z3J\/:8''ZP/[)Y<[Y++&FBPE^TY+4\V\B8=*LL$-,X]R_YET M^226KY!,NR?:M[Y)Y*&BT4;R#@P*.!7M&[]T=3@"A.D%0-0!HG- ? $0=X#8 M)=HJI;_B@ZG5\3$?0EC1Q?_K80K*.&3 MJ]V/^5H;!9_HSRO\HYY_Y/A'%_CG.Z*@H4YN1R/H2&VP*"'RT(VTE%-':3MY ME\>C27@31IF_.ZY4ZY>>^(V#9)KT?B>:DUYS?KW(V5,_L"YFX[ M)O_0M$/[ :LM%1HQL@'*X&8,]57M(&PW1M9NEJRE@&ULC53+;MI %/V5*Z]:J<%@$])&!@E(JG9!906U M751=#/8%CS(/=V8]YQSGY/MM7FT%:*#9RF4G4:5<_5M M'-NB0LGL0->HZ&:KC62.MF87V]H@*P-(BC@9#B>Q9%Q%LRR*>I>02E>5:@<'M-)J/ M;I=C;Q\,?G#\)ERB$)R(W_G2<42_I M@:?K(_OG$#O%LF$6EUK\Y*6KIM''"$K^BFMGZ)83SLU&Z0#N92WT 1'63A>/D#>FJ"@SD NF;N'= M'3K&A85OS!CFD_X>KL!6S*#-8D<^>*:XZ/06K5YR22^!E5:NLG"O2BS_)8C) M^3Z"Y!C!(GF3<<4.D(X^0#),AF?\6?XO>O3I#6?2/IUIH$LOT*U]6JY\7Y60 MLP.UNX,YI4WM,*Q_S3?6&>K=WV^(C7NQ<1 ;7Q!;:BEI$MI2 +>V(=6MT1+P M6%$;*EH?*UI31<_5K-69!!T_]T_4%S?C+'XZ3>09H^MQTANU(<0GK2C1[,*$ M6BATHUQ;T_ZT?P3FH?=?G2_H<6AG^2]-^[*LF-EQ94'@EBB'@YOK"$P[K>W& MZ3HT_$8[&I^PK.B!0^,-Z'ZKM3MNO$#_9,Y> %!+ P04 " !B2 =1N.&6 M/\0" #U!P &0 'AL+W=O-JXF5:%S>^KY(,5T+'::48Y+"6J7YT269M@?^ M=%R0#3ZA_E8LI=GY#4M*<^2*"@X2UQ-O%MXL1O:^N_!,<:^.UF"5K(38VLV7 M=.(%-B%DF&C+0,SK!1?(F"4R:?RJ.;TFI 4>KP_L]TZ[T;(B"A>"?:>ISB;> ME0Q_XRUGH'E2P13[@G[^F[@0;)36N0UV&204UZ]R6OMPQ$@&IX! M1#4@>@L8G '$-2!V0JO,G*Q;HLET+,4>I+UMV.S">>/01@WE]B\^:6F^4H/3 MTRQKTT<>]M/:LYYQ1F=X0PC>!!<9PKN M>(KI*8%O$FRRC Y9SJ-.Q@=20AQ>0!1$04L^B_>BP^N.9.+&LMC1Q>_ZZD.;=]VPJ-=_"SO1,6AT##IYCDU;B-PT(45D%W!,JX9FP'<),F:[C:E9=P-UK87J"N?\59=YF3'=F,91(I((P@+RJ MVJ@/*2E5FUGOH[H^,(57+4PG_@T;_X:=U(W(%\&,<8SJLDUJ-TD<]8*@M0C^ M@0O_QIVHJ1N]3D=(7FB)/H:3(TC8EW43!.2'_#:MT^$<=-$>Y<8-%02)V M7%=MJCEM9M?,M>PWYW,STZH1](>F&H@/1&ZH::\,UX8RZ(U,+&ULK5;1CILX%/T5 M"^U#*TW!-I"041(IDW2U?1AMU%&W#U4?'' 2-(!9VTEF_KZV(0P#!J527Q(; M[CF^Y_CFYLXOC#^+(Z42O.19(1;.4[!G/B51;?O!$ MR2E)#"C// SAQ,M)6CC+N7FVYB6 W'*<\)?'VC&+@L'.=<'7]/# M4>H'WG)>D@-]HO);N>5JYS4L29K30J2L )SN%\X*W6\0U@ 3\5]*+Z*U!EK* MCK%GO?F2+!RH,Z(9C:6F(.KK3-"K7)F%\3?@!CS(^DE?@ MHSN (8:6?-:WHM',@M[\/Q)./^FJ3<"6O*I?DP0KSDEQ MH&;]8[43DJM?QL^1PX+FL, <%MQTT:H#"$F*)"T.MDNMJ":&2G>.\Q*'&(?* M\'/;:TL8#B#LA&TL85,T;;&]$Q0V@L)Q02WWUBQ7C5 0TTK:%NY>@=5E7>%W MX-_*#;5XL^,.?#>]0D6OSI2KW@<^OU >IX*"+4]C:O.KRC1J*43(#7''+FO4 M%'7-GM,I6,::\&0]@OZ'Y4X+?K^5UV M49-=-)I=4T^DKB=ZK:=2UU/[+D8$1/VR@*[?R=\2A-R9/?U9D_[L-QK'-7=K MCK.>?0CVVL':%C78#1!\^R.#?\KF41'U,6T3)VZOWBU1O@O# 1&M?V/T6V:7 M*1_($O5=Q'VO+6$1'*QHA-_RQ'_.[&$1N%^O@>L'71&6,.1.HHX(KS4%Y90? MS#0I0,Q.A:SFB^9I,[&NS)S6>?Z [M?5W/E&4XW!CX0?5!L%&=TK2NA.52?C MU619;20KS:RU8U)-;F9Y5-,XY3I O=\S)J\;?4 SWR]_ 5!+ P04 " !B M2 =1"LW[EB<' F-@ &0 'AL+W=OI#*V5GL,$85DFD7';52IO=*.EV5:WZ0&:<#%HN4V!RJ?KC M:\"9 P&[#ADR>4GF@@_'QGP?OLS^79K]R)><%^@^CI+\8+(LBM7[V2R?+WD< MY--TQ1/QS76:Q4$AWF8WLWR5\6!1%8JC&;$L=Q8'83(YW*\^.\\.]]-U$84) M/\]0OH[C('LXYE%Z=S#!D\71(EKYHFK,JK2H?IB4U_VR MR,2WH2A7'%X6Z?P'2E?515A%09*C=ZCY88Y$;\F+(%F$R0T2_Q"_Y]D\S(.K MB*.?3WD1A%'^R_ZL$-F4,6=S>>;C^LQ$<>:SX '9> \1BU@_H1G*ET'&\_IO M3[03TVC8-XAV:AS-TT>;B?;>-#K9-#JIPMNJ1B\#O2N[ZP*=!P_B-BK0498% MR0TO7^^A+U73[Z$/=5-S=)Z%Y.,727C*)*I M@Z;7C]>5HU5YLGP/G85)&*_CODM;AZ15R!(MMX=T?W;;DX6SR<(9FD5PK\K" MZ61!K/XTZ"8-JDWC6\4)<5F.;GDFN( G/LNO_R8,L+S,\29,B$[Q:!Q'Z M%%[SOLSJLV"KD9H[5321N\G-U>;6[#4G:2S(GP?5;=OH.NCJ ?7VKKL@6SSV M*]&H7^">WD.?U_$5S]"_2'F['->9N2PTY[#&&94 M<>W8IGW8;MJGTRG:MV5?>]69>HT:8CREY$ES]1[%\)/6ZCW*MOL;R]LTEO?_ MC86.NXU5?9&CHW6Q3+/P'_'UUV0A>D?MA+J!T'DEBN.'?D!]$7CZ?L;+3J4# ME+])U=\]+;$%PK2VSTL9TV\"FC-G$IJM(!(2&B?&]]^QK MM/?8Z3XTGBQT-)+)- &"K29FVK4 $V*]"K=%?WF:%OZMJ:](#Q2)]8Y\82,W M6G<0TV1V7JL/NZI:@7&Q7KECDNCW9<:-6(1!PMA] S0"YV&]](;1B'5HQ-0T M J5@O5.&T--NBD3Q-BT9$12,"[B%Z M]^R81C([K]6'F:.H56-D9B"RD6CT,5UG)C B("QB[QY&! 1%!@_BU#"2,9LP M\I0P(J 5HM?*(!C)F$T8J>X3$ 8Q'[:-#R/2-[8BJJ$5 <\0O6>V!B/6A9$] M53Q_$E /,1C.[!!&7@=&GO+1B(#'B(''QH)1>&OT9&2#KVQK]S"RP4_VX+&1 M9EX+=V#D*V%D@U5LO54&P4C&;,((*^YCNS'9IQ_BO"Z-9#)-&MF6M%LBT;R-"T:^:I'(QO<8QL,:79'(YF=UZJ4IYA]M$%DMH'(1J+197AO!"/P ME (S 3_;@H9$&1EX'1MA2TPBT8NNU,HQ&?I=&BDP<4(:C'^*\+HUD,H8# M-0=,X^A-LRT:R=.T:,14-') /LZHR9@M'F$ECQP0BZ,7R["U/[?+(Z+(!*SAF"\A MO0*/6(='KJ=\.G) -HY>-EOCD=?'(\7LG /Z<4:=G7LQC_S>M3FF6#@&EU$# MEXT$I ]E+4V 1$%:%.\>2!0D10>/D-1 DC%;0")*(%%P"QV\)4(-)-K=$X$5 MEJ.@#3KJDL\S@223:0+)L:CJ 8DV-E6\TJZ*GFT55 4D"OZAH\[0O11(,CNO MW8MM5;5 9M1 9B,!Z7-HML9/05K4>P,\ DG1P6,D#8_\+H]L)8]<4(L[>,N! MFDR60,!VPNR,;5RV9;/)*G>;+-2S%@CQ23=*RQS7O4 M2;H7 ZEG/[8_)4^W,,P:O\DI?T%U%F0WH8!&Q*]%.6M:7KRL_E%2_:9(5]7/ M=*[2HDCCZN62!P(]Y0'B^^LT+1[?E+_\V?PT[/ _4$L#!!0 ( &)(!U&H M(V=V P, .$' 9 >&PO=V]R:W-H965TECL 5:QO71W@?#O.[LVKDL,*0>\ MCYEOOGGL3'\GY*M:(6IXR])<#9R5UNM;UU7Q"C.F6F*-.=TLA,R8IJU$9YHJ+'"0N!L[(OYU$1MX*/'/^DZ^S)G"B4A?>*)7 M R=R(,$%VZ3Z4>R^8NE/Q^#%(E7V'W:EK.= O%%:9*4R,),2[KE MI*>'?KL%,RWB5_BQMG&=IBQ7MW!QAYKQ5,%W)B4SH;Z$:WB:W<'%I\N^J\FT M 7#CTLRX,!.<,A/ @\CU2L'G/,'D7P"7.%?$@P/Q<7 6\8'M(?2O(/ "KX'/ MY'^U_9LS9,(JBJ&%"T_ S59,XK4IIP2F;$]5KF%$<C M7]_=-C#J5(PZ9QG5W2=VU&$4L\54C\%\#XUAVC&97)75IZ[@"VEH!9PJ$247 M=/5BGR*IC+8HJ;,4(D#ECG#/N(1GEFZPR=N"=53S-FA%G"X6MH#D> MW2H>W;/QF$H>(ZQ1%DD"L8#8)JV)9/>=?=]KW=PU,RS5_'L?9PW M!6Q++YW-T\88]MY73.@'G1,5$U66HP\B)&+$1 &^H8RYLC$Z4[<%6J>>)+]7 M(U$$J4$JB,)CJFZM6V8HEW:(*,K0)M=%_ZE.JSDULNWYZ'Q,\ZL8-W]ABN'W MP.22YPI27!"DU^H1)UD,E&*CQ=KVY+G0U.'MLH2\/<&K/4MF1T#6L4KJTJA:<5 M&-LMHVETGGC2^Y+\A,S21NUA _2U62-'C8'H=2@9G.Z]DW9$/*J M9AUET_E$K/D@ !$*L2&;'Q;BU0.0TL:)+PI1^6-[G4KBW;Q&Y@-YU9.3*^1' M=1*SZ1N1Q$GL2H7@_F9(=CK:34:[28#.KD _/+>:3N+'W=81,'X#_I?)XZ4)>-,7?[T>%>UT[ M86#'RGCR=AX)[.],'Y!M0I^VEKCK85CR,P/T";R^LY;.@6_]^'"SWU!+ P04 M " !B2 =1O.2EO>\! !.! &0 'AL+W=O2YE95):(-9SQDQ>0,G-1-50V9.M MTB5'Z^H=,[4&OO&@4K(H"&:LY**B6>+WECI+5(-25+#4Q#1ER?7Q%J1J4QK2 MT\:#V!7H-EB6U'P'*\!?]5);CPTL&U%"982JB(9M2F_"^2)V\3[@44!K1C9Q M2M9*[9WS?9/2P!4$$G)T#-PN!UB E([(EO'4<](AI0..[1/[5Z_=:EES PLE M?XL-%BF]HF0#6]Y(?%#M-^CU3!U?KJ3Q7])VL1?7E.2-057V8%M!*:INY<]] M'T: ,#X#B'I ]%Y W -\YUA7F9=UQY%GB58MT2[:LCG#]\:CK1I1N5MOVGTD:Q0Y?LY^7 'R(4TY ?7FKLV?R2?B2FX!I,PM%D=EN5] MAMLN0W0FPST_DCC\1*(@"EY!+]Z+#J]?HIE5.LB-!KF1IXO/T'UY:@0>R9^; MM4%M1^CO&YSQP!E[SHLSG"_;]UJ#.OS,X]VS.F33:7!U&27L,.[$?\.Z\MCH MMMU+N^=Z)RI#)&PM,)A<3BG1W?1V#JK:#\!:H1TG;Q;VP8-V ?9\JQ2>'#=3 MPR\D^P=02P,$% @ 8D@'43,$4>LZ @ $@4 !D !X;"]W;W)K&ULC51-C]HP$/TK5M0#*[7D"Y9=%"(!VZH]4"'0MH>J M!Y-,B+6.G=H#[/[[VDY(T^V">DD\XWGOS8P]3DY2/>D2 ,ESQ86>>25B/?5] MG95043V4-0BS4TA5432FVONZ5D!S!ZJX'P7!K5]1)KPT<;ZU2A-Y0,X$K!71 MAZJBZF4!7)YF7NB='1NV+]$Z_#2IZ1ZV@(_U6AG+[UAR5H'03 JBH)AY\W"Z M'-EX%_"-P4GWUL16LI/RR1I?\ID7V(2 0X:6@9K?$9; N24R:?QJ.;U.T@+[ MZS/[)U>[J65'-2PE_\YR+&?>G4=R*.B!XT:>/D-;S]CR99)K]R6G)G9L%+.# M1EFU8&-73#1_^MSVH0<(;R\ HA80O0;$%P!Q"XA=H4UFKJP'BC1-E#P19:,- MFUVXWCBTJ88)>XI;5&:7&1RFX61(-H!,@3D:)&M.Q90,'@ IXYI\I4I1V^<; M\H$\;A_(X-U-XJ/1M6@_:S46C49T22,B*RFPU.2CR"'_F\ W"7=91^>L%]%5 MQA5](7'XGD1!%+R1S_)_T>']E63BKH6QHXLOT/7:MP !!4--?LQW&I6YHS^O M"(PZ@9$3&%T06+=#LY0:R6 #1U":!\F_K'? MIW_#)F$415U4DZ[?NUX5J+V;.DTR>1#8G%GG[09[[N[S*__"#'PSGW]HFM=B M1=6>"4TX%(8R&$Y,3JJ9P,9 6;M+O)-H1L(M2_-H@;(!9K^0$L^&%>B>P?0W M4$L#!!0 ( &)(!U'7A3%8: ( .L% 9 >&PO=V]R:W-H965T0RI1K&DO]D)5;#X#P@)=\L"TBQT"CK M%FP4U$SX/UVW==@"Q/T#@*0%)+N ] @;0&I2]0KR<0S &2AK)RWUUY M_LSQVSY?YJ:$R^WJ'?-X)3KK1&?_*[J0-1"D:] 'A6=O9,7G49S&.^K?NF59 MU+LXWTDAW.J;&M3$_5G E- M.,P,973VU8A2?K3X#=4HNEUMZS,- 9E'C9) @ 7@L T !X;"]S='EL97,N>&ULU59;:]LP M%/XK0AFCA5';29O2U39LA<)@&X7F86]%L65;H(LGRYG37S_)DB])ZQ'ZL'DO MT3G?T?G.IXMS%%9J3_%C@;$"#:.\BF"A5/G1\ZJDP Q5%Z+$7$PP1#N.0U^R>J0HDHN8J@I<]!.SP)8U@L+Z$P-+=B11' M\.GL_<]:J-MWP(Z+#XN%_W1^>XR?M8%SZ+U*>G4"Z87O3Q.;X!3Y^C3R/W%/ M45\?4KOIFJG+;!,]M[-QF D^;/ *6D S(X;!#M$(WB%*MI*8K PQ0O<67AH@ M$51(H/3)ZE*!0:IG&PZL9P[=\3#"A6QKVPKV=^NF'P4ZSP@DE/8"E] "<5@B MI;#D]]II)[?@BQ!P]F9?:H6Y1/M@>06'A';01;9"IECV90+807%(<6;D2)(7 M9E2B]$Q0*<&TD1*4"XY:#5V&,S1M@BE]-%_$C^R N\E&9^:;$^.]J04YT])8 MQ_"/V2SWF/9MO* D.Z$^UWHYO/7-+<,/$F>D:?TFZP5,L0?3[*@LZ?X3)3EG MV"[^Y()QB+H\4 A)GG4U\RV]6[%K(O]#<_JT<*WY5Y.IZ_AI=VYR[R/7\1:YNYJ_1 M/39F)])SK7'4?P^Z;X\"\\J)X'?S7J)#4;"M"56$.Z\@:8KYBR:LZ17:ZL?N M ;^>G^(,U51M^F $!_L;3DG-;OI9#V8CW*S!_FJ6%ZS;@L.+.OX-4$L#!!0 M ( &)(!U&7BKL

-8?20$3;8T.P6BP^0"X99K>]9!:G6%X$N6OG,DO]T:>W=CS!U[:)1VIY.U]^V;V"U6POA&S5+Y_-RUG"I)^_>#M=:V%F\8;RHO#0:=H8= MWZ38NE_'PR:[ET[>2"7][G32_:_$A#52RT;^$/7I9#YA;FVV?QDK?QCMN;JN MK%'J=)+T![X)ZV5UL/LZ0"[YC>OV>'YSQ0'D=%+.X8(K:9WOSNBNSX'Q7L#) M_=;&FPNIO+ ?N1=_6K-II;X-EX&[F$6WT<5A^.R#^,;^GS":U4I6XJ.I-HW0 MOH^C%2H :K>6K9LPS1MQ.CDS]\*&^X$?N*S[>_, %47*OI%PP%[6'1XEBG9& MR1I^O68?N.*Z$JP+H8L 4P0P?3% =K3@$62&0&:_$?(Z0(0O.&96[%)7)H+, M$Y]NQ] M59E-!'F,0![30J;3GB9$C^N:??5K8=F5J(2\YS=ETS^(YMQI\$8^*R1P;M^>TF,64?09'>Z&[ M$?%7"_?QC#%1O1#[I9PR2!=:D/FN#^B_&]F&[\2MG6!^28@%6VL?[44 MMF$?C+5F&QIZ!(BY)2&6R\F4?1*W7(5 5D+4!W"84Q)BJ;R&Z'$EQD"8/Q)B M@23S:>?<1K E?W@$ACDCH98&6&,81-@".NJ9:1JCX>'C5HPH,6DDQ-9(0!M7 MX0 ,>0L>>NW2KJO;3@8V,913#&'I,0.28HP.HN5L+;+M@!TQ(:)(R461P+F M6$)9ZC:091VBH14)L3&2X]!'O+1=;MJUZ8@-DT5*+(L$;''!I67?N-J(D)Y> MR) A2/#'I1[5=)@V4F)M)."-D,^S"V6V#LCZJ\!IHTAB(DF)19*"2*ZDN^L3 MP;\AR;(^)%QR[)04;Y\ZAH^ MQD2GOXBMLZ\"GGP<,=%DU*)Y7 X\28AY)J,N6-"Z@,68F&HR:M4\GQF8:&/#J*)L$V'A>&W-.3NP<%',TF.>846\O66(0T2^S1(# .]T3$FYI^< M?,4%P1QW'LP_.;%_<,RXAL@Q_^3$_GF<5)HNJ93#LQIC8O[)B?V#9^FC:&+^ MR8G]@V?I,6:!^:<@]L\H11=#BKX?EV),S#_%BZW%=(-GC(GYIWBI!9D#_Q28 M?PIB_W0%#[O9L8;_8RRK-LY#E6&9W[6/&QVS4/&[%FCV@F1?N+4\O!H3J[) M%_V)'117:&SYK,X+3$ %L8"N1&4@I522#^FZ[*D]?P"J&!,34$%= !T6O'&[ MQYB8@ IB >TK7AB.6-57O"Y4O/VH&6-B BJH%W"P=:91.6-,],TSZFFX)]8> MGXDF9J&2V$+7F[95'2)7K KS<2MEMF#,_FHQ)F:ALK/0K#O9O7M;BY74HOX" M/^%@?\55M0![P$?_%E%>A-7^U4:I,]CW57\RO!Y>\!U>3G[W'U!+ P04 M" !B2 =1%MUK%"8" !C* &@ 'AL+U]R96QS+W=O )6ZKT"+,.H)4\0&K%!YB"2.7&X!N^\H#))C]: G MR&=DE2U?_Z-/5MF/+V7?#KON6+>[4YU]'O;'NFRVPW#ZE5)=;F\W)Z+65H9J]MORG#LDF?^^OIFBZ'?'>>W,R>WY9-__R6FS1UD$"0 M3!^D$*33!QD$V?1!#D$^?5! 4$P?M("@Q?1!]Q!T/WW0 P0]3!^4YRCCG"!I MA#6!UAFYS@1>9P0[$XB=D>Q,8'9&M#.!VAG9S@1N9X0[$\B=D>Y,8'=&O#.! MWH)Z"X'>@GH+@=XR>MDFT%M0;R'06U!O(=!;4&\AT%M0;R'06U!O(=!;4&\A MT%M0;R'06U%O)=!;46\ET%M1;R706T>;)01Z*^JM!'HKZJT$>BOJK01Z*^JM M!'HKZJT$>BOJK01Z&^IM!'H;ZFT$>AOJ;01Z&^IM!'K;:+.;0&]#O8U ;T.] MC4!O0[V-0&]#O8U ;T.]C4!O1[V=0&]'O9U ;T>]G4!O1[V=0&]'O9U ;Q]] MK"30VU%O)]#;46\GT-M1;R?0VU%O)] [4.\@T#M0[R#0.U#O(- [4.\@T#M0 M[R#0.U#O(- [1C^;$.@=J'<0Z!VH=_RDWG7XVI=Z[?E>X_-_DNKA?&^Y/OZR M_#Z)$BXN.*?;BOKT%U!+ P04 " !B2 =1X>Q>$?0! "B)P $P %M# M;VYT96YT7U1Y<&5S72YX;6S-VLM.PS 0!=!?J;)%C>LG#]%N@"VPX =,,J51 MD]BR72A_CY,"$@@J4)&XFT:M[;D3CW16/;][]A0GVZ[MX[Q8I>3/&(O5BCH; M2^>ISRM+%SJ;\M?PP+RMUO:!F)C-#*M/C4=Y0L"\3AI7O M U[/W3Q2"$U-DUL;TK7M\BZV;5E,SRW%VJ39>/E-$'LG5< M$:6N+7=%C_8GIWS#M/OD!^>/9?8%YIVWP?F8)Q;H]W%O(QE.3WTN1"$U^U_Q M/3&7/OC]:)AV3?4/L_/U/KFP'N<1V?@X_(X_SOB]_B_[$"!]2) ^%$@?&J0/ M ]+',4@?)R!]G(+TP6^?6?QP_/LO.-OU;/AO_FK=X 5!+ 0(4 Q0 ( &)(!U$'04UB@0 M +$ 0 " 0 !D;V-0&UL4$L! A0# M% @ 8D@'4&UL4$L! A0#% @ 8D@'49E&PO=V]R:W-H965T M&UL4$L! A0#% @ 8D@'49,#KAH*!@ VA8 !@ M ("!A T 'AL+W=OBL_<# !I#0 M& @(%W%@ >&PO=V]R:W-H965T&UL4$L! M A0#% @ 8D@'4?T4ZE9(! HA, !@ ("!I!H 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8D@'4=75 M)V*F @ H@4 !@ ("!@3H 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ 8D@'4$@ 'AL+W=O M M!0 &0 @('32P >&PO=V]R:W-H965T&UL4$L! A0#% @ 8D@'446' M!*KU P \P< !D ("!3E$ 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8D@'45OZ:.TB @ [P0 !D M ("!TEX 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ 8D@'4>TOB"#^ 0 < 0 !D ("! M%FL 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ 8D@'48+)7P.9 @ O04 !D ("!E7( 'AL+W=O&UL4$L! A0#% @ 8D@'4?*",/DW M%@ ^4X !D ("!K7L 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8D@'4=! 2F62 @ 1P4 !D M ("!@ID 'AL+W=O&PO=V]R M:W-H965T&UL M4$L! A0#% @ 8D@'46905$;= @ # 8 !D ("!QJ( M 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ M8D@'4=6#>-!F @ /04 !D ("!]:L 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8D@'4=(<7OAD P B H !D M ("!H,$ 'AL+W=O&PO=V]R:W-H M965T&UL4$L! M A0#% @ 8D@'40^M:Q?- @ C@< !D ("!Z,H 'AL M+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8D@' M4287 ,IS @ # 8 !D ("!E], 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8D@'42_QHXP; P P D M !D ("!R=L 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8D@'4=6Q)N_@ @ *0D !D M ("!N^0 'AL+W=O&PO=V]R:W-H965T M&UL4$L! A0# M% @ 8D@'46EH-#AW P @ H !D ("!B>T 'AL+W=O M&PO=V]R:W-H965T#S M !X;"]W;W)K&UL4$L! A0#% @ 8D@'45"5 MSL-3 @ /@4 !D ("!I_8 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% @ 8D@'40K-^Y8G!P )C8 !D M ("!Y?\ 'AL+W=O&PO M=V]R:W-H965T&UL4$L! A0#% @ 8D@'4;SDI;WO 0 3@0 !D ("! MDPP! 'AL+W=O&PO=V]R:W-H965T&UL4$L! A0#% M @ 8D@'46@ >C9) @ 7@L T ( !R1,! 'AL+W-T>6QE M&PO=V]R:V)O;VLN>&UL4$L! A0#% @ M8D@'41;=:Q0F @ 8R@ !H ( !%AT! 'AL+U]R96QS+W=O M'L7A'T 0 HB< !, M ( !=!\! %M#;VYT96YT7U1Y<&5S72YX;6Q02P4& $P ,3 #+% F2$! end XML 81 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 82 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 83 FilingSummary.xml IDEA: XBRL DOCUMENT 3.20.2 html 50 316 1 false 20 0 false 4 false false R1.htm 00000001 - Document - Cover Sheet http://taylordevices.com/role/Cover Cover Cover 1 false false R2.htm 00000002 - Statement - Consolidated Balance Sheets Sheet http://taylordevices.com/role/BalanceSheets Consolidated Balance Sheets Statements 2 false false R3.htm 00000003 - Statement - Consolidated Balance Sheets (Parenthetical) Sheet http://taylordevices.com/role/BalanceSheetsParenthetical Consolidated Balance Sheets (Parenthetical) Statements 3 false false R4.htm 00000004 - Statement - Consolidated Statements of Income Sheet http://taylordevices.com/role/StatementsOfIncome Consolidated Statements of Income Statements 4 false false R5.htm 00000005 - Statement - Conssolidated Statements of Stockholders Equity Sheet http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity Conssolidated Statements of Stockholders Equity Statements 5 false false R6.htm 00000006 - Statement - Consolidated Statements of Cash Flows Sheet http://taylordevices.com/role/StatementsOfCashFlows Consolidated Statements of Cash Flows Statements 6 false false R7.htm 00000007 - Disclosure - 1. Summary of Significant Accounting Policies: Sheet http://taylordevices.com/role/SummaryOfSignificantAccountingPolicies 1. Summary of Significant Accounting Policies: Notes 7 false false R8.htm 00000008 - Disclosure - 2. Accounts and Other Receivables: Sheet http://taylordevices.com/role/AccountsAndOtherReceivables 2. Accounts and Other Receivables: Notes 8 false false R9.htm 00000009 - Disclosure - 3. Inventory: Sheet http://taylordevices.com/role/Inventory 3. Inventory: Notes 9 false false R10.htm 00000010 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: Sheet http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContracts 4. Costs and Estimated Earnings on Uncompleted Contracts: Notes 10 false false R11.htm 00000011 - Disclosure - 5. Maintenance and Other Inventory: Sheet http://taylordevices.com/role/MaintenanceAndOtherInventory 5. Maintenance and Other Inventory: Notes 11 false false R12.htm 00000012 - Disclosure - 6. Property and Equipment: Sheet http://taylordevices.com/role/PropertyAndEquipment 6. Property and Equipment: Notes 12 false false R13.htm 00000013 - Disclosure - 7. Short-Term Borrowings: Sheet http://taylordevices.com/role/Short-termBorrowings 7. Short-Term Borrowings: Notes 13 false false R14.htm 00000014 - Disclosure - 8. Legal Proceedings: Sheet http://taylordevices.com/role/LegalProceedings 8. Legal Proceedings: Notes 14 false false R15.htm 00000015 - Disclosure - 9. Sales: Sheet http://taylordevices.com/role/Sales 9. Sales: Notes 15 false false R16.htm 00000016 - Disclosure - 10. Income Taxes: Sheet http://taylordevices.com/role/IncomeTaxes 10. Income Taxes: Notes 16 false false R17.htm 00000017 - Disclosure - 11. Earnings Per Common Share: Sheet http://taylordevices.com/role/EarningsPerCommonShare 11. Earnings Per Common Share: Notes 17 false false R18.htm 00000018 - Disclosure - 12. Related Party Transactions: Sheet http://taylordevices.com/role/RelatedPartyTransactions 12. Related Party Transactions: Notes 18 false false R19.htm 00000019 - Disclosure - 13. Employee Stock Purchase Plan: Sheet http://taylordevices.com/role/EmployeeStockPurchasePlan 13. Employee Stock Purchase Plan: Notes 19 false false R20.htm 00000020 - Disclosure - 14. Stock Option Plans: Sheet http://taylordevices.com/role/StockOptionPlans 14. Stock Option Plans: Notes 20 false false R21.htm 00000021 - Disclosure - 15. Preferred Stock: Sheet http://taylordevices.com/role/PreferredStock 15. Preferred Stock: Notes 21 false false R22.htm 00000022 - Disclosure - 16. Treasury Stock: Sheet http://taylordevices.com/role/TreasuryStock 16. Treasury Stock: Notes 22 false false R23.htm 00000023 - Disclosure - 17. Retirement Plan: Sheet http://taylordevices.com/role/RetirementPlan 17. Retirement Plan: Notes 23 false false R24.htm 00000024 - Disclosure - 18. Fair Value of Financial Instruments: Sheet http://taylordevices.com/role/FairValueOfFinancialInstruments 18. Fair Value of Financial Instruments: Notes 24 false false R25.htm 00000025 - Disclosure - 19. Cash Flows Information: Sheet http://taylordevices.com/role/CashFlowsInformation 19. Cash Flows Information: Notes 25 false false R26.htm 00000026 - Disclosure - 20. Risks and Uncertainties: Sheet http://taylordevices.com/role/RisksAndUncertainties 20. Risks and Uncertainties: Notes 26 false false R27.htm 00000027 - Disclosure - 1. Summary of Significant Accounting Policies: (Policies) Sheet http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies 1. Summary of Significant Accounting Policies: (Policies) Policies http://taylordevices.com/role/SummaryOfSignificantAccountingPolicies 27 false false R28.htm 00000028 - Disclosure - 1. Summary of Significant Accounting Policies: (Tables) Sheet http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesTables 1. Summary of Significant Accounting Policies: (Tables) Tables http://taylordevices.com/role/SummaryOfSignificantAccountingPolicies 28 false false R29.htm 00000029 - Disclosure - 2. Accounts and Other Receivables: (Tables) Sheet http://taylordevices.com/role/AccountsAndOtherReceivablesTables 2. Accounts and Other Receivables: (Tables) Tables http://taylordevices.com/role/AccountsAndOtherReceivables 29 false false R30.htm 00000030 - Disclosure - 3. Inventory: (Tables) Sheet http://taylordevices.com/role/InventoryTables 3. Inventory: (Tables) Tables http://taylordevices.com/role/Inventory 30 false false R31.htm 00000031 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: (Tables) Sheet http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTables 4. Costs and Estimated Earnings on Uncompleted Contracts: (Tables) Tables http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContracts 31 false false R32.htm 00000032 - Disclosure - 5. Maintenance and Other Inventory: (Tables) Sheet http://taylordevices.com/role/MaintenanceAndOtherInventoryTables 5. Maintenance and Other Inventory: (Tables) Tables http://taylordevices.com/role/MaintenanceAndOtherInventory 32 false false R33.htm 00000033 - Disclosure - 6. Property and Equipment: (Tables) Sheet http://taylordevices.com/role/PropertyAndEquipmentTables 6. Property and Equipment: (Tables) Tables http://taylordevices.com/role/PropertyAndEquipment 33 false false R34.htm 00000034 - Disclosure - 9. Sales: (Tables) Sheet http://taylordevices.com/role/SalesTables 9. Sales: (Tables) Tables http://taylordevices.com/role/Sales 34 false false R35.htm 00000035 - Disclosure - 10. Income Taxes: (Tables) Sheet http://taylordevices.com/role/IncomeTaxesTables 10. Income Taxes: (Tables) Tables http://taylordevices.com/role/IncomeTaxes 35 false false R36.htm 00000036 - Disclosure - 11. Earnings Per Common Share: (Tables) Sheet http://taylordevices.com/role/EarningsPerCommonShareTables 11. Earnings Per Common Share: (Tables) Tables http://taylordevices.com/role/EarningsPerCommonShare 36 false false R37.htm 00000037 - Disclosure - 14. Stock Option Plans: (Tables) Sheet http://taylordevices.com/role/StockOptionPlansTables 14. Stock Option Plans: (Tables) Tables http://taylordevices.com/role/StockOptionPlans 37 false false R38.htm 00000038 - Disclosure - 19. Cash Flows Information: (Tables) Sheet http://taylordevices.com/role/CashFlowsInformationTables 19. Cash Flows Information: (Tables) Tables http://taylordevices.com/role/CashFlowsInformation 38 false false R39.htm 00000039 - Disclosure - Impact of Adoption of Standards Related to Revenue Recognition (Details) Sheet http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails Impact of Adoption of Standards Related to Revenue Recognition (Details) Details 39 false false R40.htm 00000040 - Disclosure - Revenue Impact on Financial Statements Balance Sheet (Details) Sheet http://taylordevices.com/role/RevenueImpactOnFinancialStatementsBalanceSheetDetails Revenue Impact on Financial Statements Balance Sheet (Details) Details 40 false false R41.htm 00000041 - Disclosure - Revenue Impact on Financial Statements Income Statement (Details) Sheet http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails Revenue Impact on Financial Statements Income Statement (Details) Details 41 false false R42.htm 00000042 - Disclosure - 1. Summary of Significant Accounting Policies: (Details Narrative) Sheet http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative 1. Summary of Significant Accounting Policies: (Details Narrative) Details http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesTables 42 false false R43.htm 00000043 - Disclosure - Accounts receivable table (Details) Sheet http://taylordevices.com/role/AccountsReceivableTableDetails Accounts receivable table (Details) Details 43 false false R44.htm 00000044 - Disclosure - Inventory table (Details) Sheet http://taylordevices.com/role/InventoryTableDetails Inventory table (Details) Details 44 false false R45.htm 00000045 - Disclosure - Costs and estimated earnings on uncompleted contracts components table (Details) Sheet http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails Costs and estimated earnings on uncompleted contracts components table (Details) Details 45 false false R46.htm 00000046 - Disclosure - Costs and estimated earnings on uncompleted contracts table (Details) Sheet http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails Costs and estimated earnings on uncompleted contracts table (Details) Details 46 false false R47.htm 00000047 - Disclosure - Costs and estimated earnings on uncompleted contracts two table (Details) Sheet http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTwoTableDetails Costs and estimated earnings on uncompleted contracts two table (Details) Details 47 false false R48.htm 00000048 - Disclosure - Maintenance and other inventory table (Details) Sheet http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails Maintenance and other inventory table (Details) Details 48 false false R49.htm 00000049 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: (Details Narrative) Sheet http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsDetailsNarrative 4. Costs and Estimated Earnings on Uncompleted Contracts: (Details Narrative) Details http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTables 49 false false R50.htm 00000050 - Disclosure - 5. Maintenance and Other Inventory: (Details Narrative) Sheet http://taylordevices.com/role/MaintenanceAndOtherInventoryDetailsNarrative 5. Maintenance and Other Inventory: (Details Narrative) Details http://taylordevices.com/role/MaintenanceAndOtherInventoryTables 50 false false R51.htm 00000051 - Disclosure - Property and equipment table (Details) Sheet http://taylordevices.com/role/PropertyAndEquipmentTableDetails Property and equipment table (Details) Details 51 false false R52.htm 00000052 - Disclosure - 6. Property and Equipment: (Details Narrative) Sheet http://taylordevices.com/role/PropertyAndEquipmentDetailsNarrative 6. Property and Equipment: (Details Narrative) Details http://taylordevices.com/role/PropertyAndEquipmentTables 52 false false R53.htm 00000053 - Disclosure - 7. Short-Term Borrowings: (Details Narrative) Sheet http://taylordevices.com/role/Short-termBorrowingsDetailsNarrative 7. Short-Term Borrowings: (Details Narrative) Details http://taylordevices.com/role/Short-termBorrowings 53 false false R54.htm 00000054 - Disclosure - Sales by major customer type (Details) Sheet http://taylordevices.com/role/SalesByMajorCustomerTypeDetails Sales by major customer type (Details) Details 54 false false R55.htm 00000055 - Disclosure - 9. Sales: (Details Narrative) Sheet http://taylordevices.com/role/SalesDetailsNarrative 9. Sales: (Details Narrative) Details http://taylordevices.com/role/SalesTables 55 false false R56.htm 00000056 - Disclosure - Income Taxes Table (Details) Sheet http://taylordevices.com/role/IncomeTaxesTableDetails Income Taxes Table (Details) Details 56 false false R57.htm 00000057 - Disclosure - Reconciliation of income tax statutory rate to effective rate (Details) Sheet http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails Reconciliation of income tax statutory rate to effective rate (Details) Details 57 false false R58.htm 00000058 - Disclosure - 10. Income Taxes: (Details Narrative) Sheet http://taylordevices.com/role/IncomeTaxesDetailsNarrative 10. Income Taxes: (Details Narrative) Details http://taylordevices.com/role/IncomeTaxesTables 58 false false R59.htm 00000059 - Disclosure - Earnings per common share table (Details) Sheet http://taylordevices.com/role/EarningsPerCommonShareTableDetails Earnings per common share table (Details) Details 59 false false R60.htm 00000060 - Disclosure - 13. Employee Stock Purchase Plan: (Details Narrative) Sheet http://taylordevices.com/role/EmployeeStockPurchasePlanDetailsNarrative 13. Employee Stock Purchase Plan: (Details Narrative) Details http://taylordevices.com/role/EmployeeStockPurchasePlan 60 false false R61.htm 00000061 - Disclosure - Stock option plans table (Details) Sheet http://taylordevices.com/role/StockOptionPlansTableDetails Stock option plans table (Details) Details 61 false false R62.htm 00000062 - Disclosure - Stock options roll foward (Details) Sheet http://taylordevices.com/role/StockOptionsRollFowardDetails Stock options roll foward (Details) Details 62 false false R63.htm 00000063 - Disclosure - Stock option plans - Stock options outstanding and exercisable (Details) Sheet http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails Stock option plans - Stock options outstanding and exercisable (Details) Details 63 false false R64.htm 00000064 - Disclosure - 14. Stock Option Plans: (Details Narrative) Sheet http://taylordevices.com/role/StockOptionPlansDetailsNarrative 14. Stock Option Plans: (Details Narrative) Details http://taylordevices.com/role/StockOptionPlansTables 64 false false R65.htm 00000065 - Disclosure - 15. Preferred Stock: (Details Narrative) Sheet http://taylordevices.com/role/PreferredStockDetailsNarrative 15. Preferred Stock: (Details Narrative) Details http://taylordevices.com/role/PreferredStock 65 false false R66.htm 00000066 - Disclosure - 16. Treasury Stock: (Details Narrative) Sheet http://taylordevices.com/role/TreasuryStockDetailsNarrative 16. Treasury Stock: (Details Narrative) Details http://taylordevices.com/role/TreasuryStock 66 false false R67.htm 00000067 - Disclosure - 17. Retirement Plan: (Details Narrative) Sheet http://taylordevices.com/role/RetirementPlanDetailsNarrative 17. Retirement Plan: (Details Narrative) Details http://taylordevices.com/role/RetirementPlan 67 false false R68.htm 00000068 - Disclosure - Supplemental cash flow information (Details) Sheet http://taylordevices.com/role/SupplementalCashFlowInformationDetails Supplemental cash flow information (Details) Details 68 false false All Reports Book All Reports tayd202010k.htm tayd-20190531.xsd tayd-20190531_cal.xml tayd-20190531_def.xml tayd-20190531_lab.xml tayd-20190531_pre.xml http://xbrl.sec.gov/dei/2020-01-31 http://fasb.org/srt/2020-01-31 http://fasb.org/us-gaap/2020-01-31 true true JSON 86 MetaLinks.json IDEA: XBRL DOCUMENT { "instance": { "tayd202010k.htm": { "axisCustom": 0, "axisStandard": 5, "contextCount": 50, "dts": { "calculationLink": { "local": [ "tayd-20190531_cal.xml" ] }, "definitionLink": { "local": [ "tayd-20190531_def.xml" ], "remote": [ "http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-eedm-def-2020-01-31.xml", "http://xbrl.fasb.org/srt/2020/elts/srt-eedm1-def-2020-01-31.xml" ] }, "inline": { "local": [ "tayd202010k.htm" ] }, "labelLink": { "local": [ "tayd-20190531_lab.xml" ], "remote": [ "http://xbrl.fasb.org/srt/2020/elts/srt-doc-2020-01-31.xml", "https://xbrl.sec.gov/dei/2020/dei-doc-2020-01-31.xml", "http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-doc-2020-01-31.xml" ] }, "presentationLink": { "local": [ "tayd-20190531_pre.xml" ] }, "referenceLink": { "remote": [ "https://xbrl.sec.gov/dei/2020/dei-ref-2020-01-31.xml", "http://xbrl.fasb.org/srt/2020/elts/srt-ref-2020-01-31.xml", "http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-ref-2020-01-31.xml" ] }, "schema": { "local": [ "tayd-20190531.xsd" ], "remote": [ "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", "https://xbrl.sec.gov/dei/2020/dei-2020-01-31.xsd", "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd", "http://www.xbrl.org/2005/xbrldt-2005.xsd", "http://www.xbrl.org/dtr/type/nonNumeric-2009-12-16.xsd", "http://www.xbrl.org/dtr/type/numeric-2009-12-16.xsd", "http://xbrl.fasb.org/us-gaap/2020/elts/us-gaap-2020-01-31.xsd", "http://xbrl.fasb.org/us-gaap/2020/elts/us-roles-2020-01-31.xsd", "http://xbrl.fasb.org/srt/2020/elts/srt-2020-01-31.xsd", "http://www.xbrl.org/2006/ref-2006-02-27.xsd", "http://xbrl.fasb.org/srt/2020/elts/srt-types-2020-01-31.xsd", "http://xbrl.fasb.org/srt/2020/elts/srt-roles-2020-01-31.xsd", "https://xbrl.sec.gov/country/2020/country-2020-01-31.xsd", "http://xbrl.fasb.org/us-gaap/2020/elts/us-types-2020-01-31.xsd", "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd", "http://www.xbrl.org/lrr/role/deprecated-2009-12-16.xsd", "http://xbrl.fasb.org/us-gaap/2020/elts/us-parts-codification-2020-01-31.xsd" ] } }, "elementCount": 350, "entityCount": 1, "hidden": { "http://fasb.org/us-gaap/2020-01-31": 24, "http://xbrl.sec.gov/dei/2020-01-31": 6, "total": 30 }, "keyCustom": 28, "keyStandard": 288, "memberCustom": 13, "memberStandard": 7, "nsprefix": "tayd", "nsuri": "http://taylordevices.com/20190531", "report": { "R1": { "firstAnchor": { "ancestors": [ "span", "b", "p", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "document", "isDefault": "true", "longName": "00000001 - Document - Cover", "role": "http://taylordevices.com/role/Cover", "shortName": "Cover", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "span", "b", "p", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "dei:DocumentType", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R10": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000010 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts:", "role": "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContracts", "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R11": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000011 - Disclosure - 5. Maintenance and Other Inventory:", "role": "http://taylordevices.com/role/MaintenanceAndOtherInventory", "shortName": "5. Maintenance and Other Inventory:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:OtherAssetsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R12": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000012 - Disclosure - 6. Property and Equipment:", "role": "http://taylordevices.com/role/PropertyAndEquipment", "shortName": "6. Property and Equipment:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R13": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfLineOfCreditFacilitiesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000013 - Disclosure - 7. Short-Term Borrowings:", "role": "http://taylordevices.com/role/Short-termBorrowings", "shortName": "7. Short-Term Borrowings:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfLineOfCreditFacilitiesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R14": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LegalMattersAndContingenciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000014 - Disclosure - 8. Legal Proceedings:", "role": "http://taylordevices.com/role/LegalProceedings", "shortName": "8. Legal Proceedings:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LegalMattersAndContingenciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R15": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "tayd:ScheduleOfRevenueByMajorCustomersTypesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000015 - Disclosure - 9. Sales:", "role": "http://taylordevices.com/role/Sales", "shortName": "9. Sales:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "tayd:ScheduleOfRevenueByMajorCustomersTypesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R16": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000016 - Disclosure - 10. Income Taxes:", "role": "http://taylordevices.com/role/IncomeTaxes", "shortName": "10. Income Taxes:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:IncomeTaxDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R17": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000017 - Disclosure - 11. Earnings Per Common Share:", "role": "http://taylordevices.com/role/EarningsPerCommonShare", "shortName": "11. Earnings Per Common Share:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:EarningsPerShareTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R18": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000018 - Disclosure - 12. Related Party Transactions:", "role": "http://taylordevices.com/role/RelatedPartyTransactions", "shortName": "12. Related Party Transactions:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:RelatedPartyTransactionsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R19": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000019 - Disclosure - 13. Employee Stock Purchase Plan:", "role": "http://taylordevices.com/role/EmployeeStockPurchasePlan", "shortName": "13. Employee Stock Purchase Plan:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R2": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00000002 - Statement - Consolidated Balance Sheets", "role": "http://taylordevices.com/role/BalanceSheets", "shortName": "Consolidated Balance Sheets", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "lang": null, "name": "us-gaap:ShortTermInvestments", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R20": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000020 - Disclosure - 14. Stock Option Plans:", "role": "http://taylordevices.com/role/StockOptionPlans", "shortName": "14. Stock Option Plans:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R21": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PreferredStockTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000021 - Disclosure - 15. Preferred Stock:", "role": "http://taylordevices.com/role/PreferredStock", "shortName": "15. Preferred Stock:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PreferredStockTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R22": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:TreasuryStockTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000022 - Disclosure - 16. Treasury Stock:", "role": "http://taylordevices.com/role/TreasuryStock", "shortName": "16. Treasury Stock:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:TreasuryStockTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R23": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCostsOfRetirementPlansTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000023 - Disclosure - 17. Retirement Plan:", "role": "http://taylordevices.com/role/RetirementPlan", "shortName": "17. Retirement Plan:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCostsOfRetirementPlansTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R24": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueOfFinancialInstrumentsPolicy", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000024 - Disclosure - 18. Fair Value of Financial Instruments:", "role": "http://taylordevices.com/role/FairValueOfFinancialInstruments", "shortName": "18. Fair Value of Financial Instruments:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:FairValueOfFinancialInstrumentsPolicy", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R25": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000025 - Disclosure - 19. Cash Flows Information:", "role": "http://taylordevices.com/role/CashFlowsInformation", "shortName": "19. Cash Flows Information:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R26": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:UnusualRisksAndUncertaintiesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000026 - Disclosure - 20. Risks and Uncertainties:", "role": "http://taylordevices.com/role/RisksAndUncertainties", "shortName": "20. Risks and Uncertainties:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:UnusualRisksAndUncertaintiesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R27": { "firstAnchor": { "ancestors": [ "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:NatureOfOperations", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000027 - Disclosure - 1. Summary of Significant Accounting Policies: (Policies)", "role": "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies", "shortName": "1. Summary of Significant Accounting Policies: (Policies)", "subGroupType": "policies", "uniqueAnchor": { "ancestors": [ "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:NatureOfOperations", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R28": { "firstAnchor": { "ancestors": [ "us-gaap:RevenueRecognitionPolicyTextBlock", "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000028 - Disclosure - 1. Summary of Significant Accounting Policies: (Tables)", "role": "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesTables", "shortName": "1. Summary of Significant Accounting Policies: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:RevenueRecognitionPolicyTextBlock", "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R29": { "firstAnchor": { "ancestors": [ "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000029 - Disclosure - 2. Accounts and Other Receivables: (Tables)", "role": "http://taylordevices.com/role/AccountsAndOtherReceivablesTables", "shortName": "2. Accounts and Other Receivables: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R3": { "firstAnchor": { "ancestors": [ "span", "span", "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:CommonStockParOrStatedValuePerShare", "reportCount": 1, "unique": true, "unitRef": "USDPShares", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00000003 - Statement - Consolidated Balance Sheets (Parenthetical)", "role": "http://taylordevices.com/role/BalanceSheetsParenthetical", "shortName": "Consolidated Balance Sheets (Parenthetical)", "subGroupType": "parenthetical", "uniqueAnchor": { "ancestors": [ "span", "span", "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:CommonStockParOrStatedValuePerShare", "reportCount": 1, "unique": true, "unitRef": "USDPShares", "xsiNil": "false" } }, "R30": { "firstAnchor": { "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000030 - Disclosure - 3. Inventory: (Tables)", "role": "http://taylordevices.com/role/InventoryTables", "shortName": "3. Inventory: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R31": { "firstAnchor": { "ancestors": [ "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000031 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: (Tables)", "role": "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTables", "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R32": { "firstAnchor": { "ancestors": [ "us-gaap:OtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryNoncurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000032 - Disclosure - 5. Maintenance and Other Inventory: (Tables)", "role": "http://taylordevices.com/role/MaintenanceAndOtherInventoryTables", "shortName": "5. Maintenance and Other Inventory: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:OtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfInventoryNoncurrentTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R33": { "firstAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000033 - Disclosure - 6. Property and Equipment: (Tables)", "role": "http://taylordevices.com/role/PropertyAndEquipmentTables", "shortName": "6. Property and Equipment: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:PropertyPlantAndEquipmentTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R34": { "firstAnchor": { "ancestors": [ "tayd:ScheduleOfRevenueByMajorCustomersTypesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "tayd:ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000034 - Disclosure - 9. Sales: (Tables)", "role": "http://taylordevices.com/role/SalesTables", "shortName": "9. Sales: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "tayd:ScheduleOfRevenueByMajorCustomersTypesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "tayd:ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R35": { "firstAnchor": { "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000035 - Disclosure - 10. Income Taxes: (Tables)", "role": "http://taylordevices.com/role/IncomeTaxesTables", "shortName": "10. Income Taxes: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R36": { "firstAnchor": { "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000036 - Disclosure - 11. Earnings Per Common Share: (Tables)", "role": "http://taylordevices.com/role/EarningsPerCommonShareTables", "shortName": "11. Earnings Per Common Share: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R37": { "firstAnchor": { "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000037 - Disclosure - 14. Stock Option Plans: (Tables)", "role": "http://taylordevices.com/role/StockOptionPlansTables", "shortName": "14. Stock Option Plans: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R38": { "firstAnchor": { "ancestors": [ "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000038 - Disclosure - 19. Cash Flows Information: (Tables)", "role": "http://taylordevices.com/role/CashFlowsInformationTables", "shortName": "19. Cash Flows Information: (Tables)", "subGroupType": "tables", "uniqueAnchor": { "ancestors": [ "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R39": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InventoryPartsAndComponentsNetOfReserves", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000039 - Disclosure - Impact of Adoption of Standards Related to Revenue Recognition (Details)", "role": "http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails", "shortName": "Impact of Adoption of Standards Related to Revenue Recognition (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "us-gaap:RevenueRecognitionPolicyTextBlock", "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2018-06-01_us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member", "decimals": "0", "lang": null, "name": "us-gaap:InventoryPartsAndComponentsNetOfReserves", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R4": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00000004 - Statement - Consolidated Statements of Income", "role": "http://taylordevices.com/role/StatementsOfIncome", "shortName": "Consolidated Statements of Income", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "lang": null, "name": "us-gaap:GrossProfit", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R40": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InventoryPartsAndComponentsNetOfReserves", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000040 - Disclosure - Revenue Impact on Financial Statements Balance Sheet (Details)", "role": "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsBalanceSheetDetails", "shortName": "Revenue Impact on Financial Statements Balance Sheet (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "srt:ScheduleOfCondensedBalanceSheetTableTextBlock", "us-gaap:RevenueRecognitionPolicyTextBlock", "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2019-05-31_us-gaap_AccountingStandardsUpdate201409Member", "decimals": "0", "lang": null, "name": "us-gaap:InventoryPartsAndComponentsNetOfReserves", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R41": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000041 - Disclosure - Revenue Impact on Financial Statements Income Statement (Details)", "role": "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails", "shortName": "Revenue Impact on Financial Statements Income Statement (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "srt:ScheduleOfCondensedIncomeStatementTableTextBlock", "us-gaap:RevenueRecognitionPolicyTextBlock", "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2018-06-012019-05-31_us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member", "decimals": "0", "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R42": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:NatureOfOperations", "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000042 - Disclosure - 1. Summary of Significant Accounting Policies: (Details Narrative)", "role": "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative", "shortName": "1. Summary of Significant Accounting Policies: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:NatureOfOperations", "us-gaap:SignificantAccountingPoliciesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R43": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:ReceivablesFromCustomers", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000043 - Disclosure - Accounts receivable table (Details)", "role": "http://taylordevices.com/role/AccountsReceivableTableDetails", "shortName": "Accounts receivable table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:ReceivablesFromCustomers", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R44": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InventoryRawMaterials", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000044 - Disclosure - Inventory table (Details)", "role": "http://taylordevices.com/role/InventoryTableDetails", "shortName": "Inventory table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfInventoryCurrentTableTextBlock", "us-gaap:InventoryDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InventoryRawMaterials", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R45": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InventoryForLongTermContractsOrPrograms", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000045 - Disclosure - Costs and estimated earnings on uncompleted contracts components table (Details)", "role": "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails", "shortName": "Costs and estimated earnings on uncompleted contracts components table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InventoryForLongTermContractsOrPrograms", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R46": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:CostsInExcessOfBillingsOnUncompletedContractsOrPrograms", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000046 - Disclosure - Costs and estimated earnings on uncompleted contracts table (Details)", "role": "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails", "shortName": "Costs and estimated earnings on uncompleted contracts table (Details)", "subGroupType": "details", "uniqueAnchor": null }, "R47": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "tayd:LongTermContractsDisclosureTwoTableTextBlock", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:QuantityOfUncompletedProjectsOrProgramsInProgress", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000047 - Disclosure - Costs and estimated earnings on uncompleted contracts two table (Details)", "role": "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTwoTableDetails", "shortName": "Costs and estimated earnings on uncompleted contracts two table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "tayd:LongTermContractsDisclosureTwoTableTextBlock", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:QuantityOfUncompletedProjectsOrProgramsInProgress", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R48": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfInventoryNoncurrentTableTextBlock", "us-gaap:OtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:OtherInventoryNoncurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000048 - Disclosure - Maintenance and other inventory table (Details)", "role": "http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails", "shortName": "Maintenance and other inventory table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfInventoryNoncurrentTableTextBlock", "us-gaap:OtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:OtherInventoryNoncurrent", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R49": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "tayd:AggregateRevenueRecognizedFromUncompletedProjectsOrProgramsInProgressAtPriorYearEndIncludedInBillingsInExcessOfCostsAndEstimatedEarnings", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000049 - Disclosure - 4. Costs and Estimated Earnings on Uncompleted Contracts: (Details Narrative)", "role": "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsDetailsNarrative", "shortName": "4. Costs and Estimated Earnings on Uncompleted Contracts: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "tayd:AggregateRevenueRecognizedFromUncompletedProjectsOrProgramsInProgressAtPriorYearEndIncludedInBillingsInExcessOfCostsAndEstimatedEarnings", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R5": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2018-05-31_us-gaap_CommonStockMember", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:StockholdersEquity", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00000005 - Statement - Conssolidated Statements of Stockholders Equity", "role": "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity", "shortName": "Conssolidated Statements of Stockholders Equity", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2018-05-31_us-gaap_CommonStockMember", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:StockholdersEquity", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R50": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InventoryWriteDown", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000050 - Disclosure - 5. Maintenance and Other Inventory: (Details Narrative)", "role": "http://taylordevices.com/role/MaintenanceAndOtherInventoryDetailsNarrative", "shortName": "5. Maintenance and Other Inventory: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": null }, "R51": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Land", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000051 - Disclosure - Property and equipment table (Details)", "role": "http://taylordevices.com/role/PropertyAndEquipmentTableDetails", "shortName": "Property and equipment table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:PropertyPlantAndEquipmentTextBlock", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Land", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R52": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Depreciation", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000052 - Disclosure - 6. Property and Equipment: (Details Narrative)", "role": "http://taylordevices.com/role/PropertyAndEquipmentDetailsNarrative", "shortName": "6. Property and Equipment: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Depreciation", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R53": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:ProceedsFromBankDebt", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000053 - Disclosure - 7. Short-Term Borrowings: (Details Narrative)", "role": "http://taylordevices.com/role/Short-termBorrowingsDetailsNarrative", "shortName": "7. Short-Term Borrowings: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:ScheduleOfLineOfCreditFacilitiesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "lang": null, "name": "us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R54": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000054 - Disclosure - Sales by major customer type (Details)", "role": "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails", "shortName": "Sales by major customer type (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "tayd:ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock", "tayd:ScheduleOfRevenueByMajorCustomersTypesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-012020-05-31_custom_ConstructionSeismicWindMember", "decimals": "0", "lang": null, "name": "us-gaap:Revenues", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R55": { "firstAnchor": { "ancestors": [ "span", "p", "tayd:ScheduleOfRevenueByMajorCustomersTypesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:ScheduleOfRevenueByMajorCustomers", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000055 - Disclosure - 9. Sales: (Details Narrative)", "role": "http://taylordevices.com/role/SalesDetailsNarrative", "shortName": "9. Sales: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "tayd:ScheduleOfRevenueByMajorCustomersTypesTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:ScheduleOfRevenueByMajorCustomers", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R56": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:CurrentFederalTaxExpenseBenefit", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000056 - Disclosure - Income Taxes Table (Details)", "role": "http://taylordevices.com/role/IncomeTaxesTableDetails", "shortName": "Income Taxes Table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:CurrentFederalTaxExpenseBenefit", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R57": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000057 - Disclosure - Reconciliation of income tax statutory rate to effective rate (Details)", "role": "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails", "shortName": "Reconciliation of income tax statutory rate to effective rate (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R58": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsGross", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000058 - Disclosure - 10. Income Taxes: (Details Narrative)", "role": "http://taylordevices.com/role/IncomeTaxesDetailsNarrative", "shortName": "10. Income Taxes: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:IncomeTaxDisclosureTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:DeferredTaxAssetsGross", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R59": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:WeightedAverageNumberOfSharesOutstandingBasic", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000059 - Disclosure - Earnings per common share table (Details)", "role": "http://taylordevices.com/role/EarningsPerCommonShareTableDetails", "shortName": "Earnings per common share table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "us-gaap:EarningsPerShareTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:WeightedAverageNumberOfSharesOutstandingBasic", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" } }, "R6": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:NetIncomeLoss", "reportCount": 1, "unitRef": "USD", "xsiNil": "false" }, "groupType": "statement", "isDefault": "false", "longName": "00000006 - Statement - Consolidated Statements of Cash Flows", "role": "http://taylordevices.com/role/StatementsOfCashFlows", "shortName": "Consolidated Statements of Cash Flows", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "lang": null, "name": "us-gaap:DepreciationDepletionAndAmortization", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R60": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000060 - Disclosure - 13. Employee Stock Purchase Plan: (Details Narrative)", "role": "http://taylordevices.com/role/EmployeeStockPurchasePlanDetailsNarrative", "shortName": "13. Employee Stock Purchase Plan: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" } }, "R61": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000061 - Disclosure - Stock option plans table (Details)", "role": "http://taylordevices.com/role/StockOptionPlansTableDetails", "shortName": "Stock option plans table (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "reportCount": 1, "unique": true, "unitRef": "Pure", "xsiNil": "false" } }, "R62": { "firstAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "reportCount": 1, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000062 - Disclosure - Stock options roll foward (Details)", "role": "http://taylordevices.com/role/StockOptionsRollFowardDetails", "shortName": "Stock options roll foward (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "td", "tr", "table", "us-gaap:ScheduleOfStockOptionsRollForwardTableTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "0", "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R63": { "firstAnchor": { "ancestors": [ "span", "span", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo", "reportCount": 1, "unique": true, "unitRef": "USDPShares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000063 - Disclosure - Stock option plans - Stock options outstanding and exercisable (Details)", "role": "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails", "shortName": "Stock option plans - Stock options outstanding and exercisable (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "span", "td", "tr", "table", "us-gaap:ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "tayd:ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo", "reportCount": 1, "unique": true, "unitRef": "USDPShares", "xsiNil": "false" } }, "R64": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000064 - Disclosure - 14. Stock Option Plans: (Details Narrative)", "role": "http://taylordevices.com/role/StockOptionPlansDetailsNarrative", "shortName": "14. Stock Option Plans: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" } }, "R65": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:PreferredStockTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:PreferredStockSharesAuthorized", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000065 - Disclosure - 15. Preferred Stock: (Details Narrative)", "role": "http://taylordevices.com/role/PreferredStockDetailsNarrative", "shortName": "15. Preferred Stock: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:PreferredStockTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:PreferredStockSharesAuthorized", "reportCount": 1, "unique": true, "unitRef": "Shares", "xsiNil": "false" } }, "R66": { "firstAnchor": { "ancestors": [ "span", "span", "td", "tr", "table", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "AsOf2020-05-31", "decimals": "INF", "first": true, "lang": null, "name": "us-gaap:TreasuryStockShares", "reportCount": 1, "unitRef": "Shares", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000066 - Disclosure - 16. Treasury Stock: (Details Narrative)", "role": "http://taylordevices.com/role/TreasuryStockDetailsNarrative", "shortName": "16. Treasury Stock: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": null }, "R67": { "firstAnchor": { "ancestors": [ "span", "p", "us-gaap:ScheduleOfCostsOfRetirementPlansTableTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:PensionExpense", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000067 - Disclosure - 17. Retirement Plan: (Details Narrative)", "role": "http://taylordevices.com/role/RetirementPlanDetailsNarrative", "shortName": "17. Retirement Plan: (Details Narrative)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "span", "p", "us-gaap:ScheduleOfCostsOfRetirementPlansTableTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:PensionExpense", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R68": { "firstAnchor": { "ancestors": [ "b", "span", "td", "tr", "table", "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InterestPaid", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000068 - Disclosure - Supplemental cash flow information (Details)", "role": "http://taylordevices.com/role/SupplementalCashFlowInformationDetails", "shortName": "Supplemental cash flow information (Details)", "subGroupType": "details", "uniqueAnchor": { "ancestors": [ "b", "span", "td", "tr", "table", "us-gaap:ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "us-gaap:CashFlowSupplementalDisclosuresTextBlock", "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": "0", "first": true, "lang": null, "name": "us-gaap:InterestPaid", "reportCount": 1, "unique": true, "unitRef": "USD", "xsiNil": "false" } }, "R7": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000007 - Disclosure - 1. Summary of Significant Accounting Policies:", "role": "http://taylordevices.com/role/SummaryOfSignificantAccountingPolicies", "shortName": "1. Summary of Significant Accounting Policies:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:SignificantAccountingPoliciesTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R8": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000008 - Disclosure - 2. Accounts and Other Receivables:", "role": "http://taylordevices.com/role/AccountsAndOtherReceivables", "shortName": "2. Accounts and Other Receivables:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } }, "R9": { "firstAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" }, "groupType": "disclosure", "isDefault": "false", "longName": "00000009 - Disclosure - 3. Inventory:", "role": "http://taylordevices.com/role/Inventory", "shortName": "3. Inventory:", "subGroupType": "", "uniqueAnchor": { "ancestors": [ "body", "html" ], "baseRef": "tayd202010k.htm", "contextRef": "From2019-06-01to2020-05-31", "decimals": null, "first": true, "lang": "en-US", "name": "us-gaap:InventoryDisclosureTextBlock", "reportCount": 1, "unique": true, "unitRef": null, "xsiNil": "false" } } }, "segmentCount": 20, "tag": { "dei_AmendmentDescription": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Description of changes contained within amended document.", "label": "Amendment Description" } } }, "localname": "AmendmentDescription", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "stringItemType" }, "dei_AmendmentFlag": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.", "label": "Amendment Flag" } } }, "localname": "AmendmentFlag", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_AnnualInformationForm": { "auth_ref": [ "r341" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag with value true on a form if it is an annual report containing an annual information form.", "label": "Annual Information Form" } } }, "localname": "AnnualInformationForm", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_AuditedAnnualFinancialStatements": { "auth_ref": [ "r341" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag with value true on a form if it is an annual report containing audited financial statements.", "label": "Audited Annual Financial Statements" } } }, "localname": "AuditedAnnualFinancialStatements", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_CityAreaCode": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Area code of city", "label": "City Area Code" } } }, "localname": "CityAreaCode", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_CountryRegion": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Region code of country", "label": "Country Region" } } }, "localname": "CountryRegion", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_CoverAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Cover page.", "label": "Cover [Abstract]" } } }, "localname": "CoverAbstract", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "xbrltype": "stringItemType" }, "dei_CurrentFiscalYearEndDate": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "End date of current fiscal year in the format --MM-DD.", "label": "Current Fiscal Year End Date" } } }, "localname": "CurrentFiscalYearEndDate", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "gMonthDayItemType" }, "dei_DocumentAccountingStandard": { "auth_ref": [ "r340" ], "lang": { "en-US": { "role": { "documentation": "The basis of accounting the registrant has used to prepare the financial statements included in this filing This can either be 'U.S. GAAP', 'International Financial Reporting Standards', or 'Other'.", "label": "Document Accounting Standard" } } }, "localname": "DocumentAccountingStandard", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "accountingStandardItemType" }, "dei_DocumentAnnualReport": { "auth_ref": [ "r338", "r340", "r341" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true only for a form used as an annual report.", "label": "Document Annual Report" } } }, "localname": "DocumentAnnualReport", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_DocumentFiscalPeriodFocus": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Fiscal period values are FY, Q1, Q2, and Q3. 1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.", "label": "Document Fiscal Period Focus" } } }, "localname": "DocumentFiscalPeriodFocus", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "fiscalPeriodItemType" }, "dei_DocumentFiscalYearFocus": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.", "label": "Document Fiscal Year Focus" } } }, "localname": "DocumentFiscalYearFocus", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "gYearItemType" }, "dei_DocumentPeriodEndDate": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The end date of the period reflected on the cover page if a periodic report. For all other reports and registration statements containing historical data, it is the date up through which that historical data is presented. If there is no historical data in the report, use the filing date. The format of the date is YYYY-MM-DD.", "label": "Document Period End Date" } } }, "localname": "DocumentPeriodEndDate", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "dateItemType" }, "dei_DocumentPeriodStartDate": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The start date of the period covered in the document, in YYYY-MM-DD format.", "label": "Document Period Start Date" } } }, "localname": "DocumentPeriodStartDate", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "dateItemType" }, "dei_DocumentQuarterlyReport": { "auth_ref": [ "r339" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true only for a form used as an quarterly report.", "label": "Document Quarterly Report" } } }, "localname": "DocumentQuarterlyReport", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_DocumentRegistrationStatement": { "auth_ref": [ "r348" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true only for a form used as a registration statement.", "label": "Document Registration Statement" } } }, "localname": "DocumentRegistrationStatement", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_DocumentShellCompanyEventDate": { "auth_ref": [ "r340" ], "lang": { "en-US": { "role": { "documentation": "Date of event requiring a shell company report.", "label": "Document Shell Company Event Date" } } }, "localname": "DocumentShellCompanyEventDate", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "dateItemType" }, "dei_DocumentShellCompanyReport": { "auth_ref": [ "r340" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true for a Shell Company Report pursuant to section 13 or 15(d) of the Exchange Act.", "label": "Document Shell Company Report" } } }, "localname": "DocumentShellCompanyReport", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_DocumentTransitionReport": { "auth_ref": [ "r342" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true only for a form used as a transition report.", "label": "Document Transition Report" } } }, "localname": "DocumentTransitionReport", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_DocumentType": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.", "label": "Document Type" } } }, "localname": "DocumentType", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "submissionTypeItemType" }, "dei_DocumentsIncorporatedByReferenceTextBlock": { "auth_ref": [ "r330" ], "lang": { "en-US": { "role": { "documentation": "Documents incorporated by reference.", "label": "Documents Incorporated by Reference [Text Block]" } } }, "localname": "DocumentsIncorporatedByReferenceTextBlock", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "textBlockItemType" }, "dei_EntityAddressAddressLine1": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Address Line 1 such as Attn, Building Name, Street Name", "label": "Entity Address, Address Line One" } } }, "localname": "EntityAddressAddressLine1", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressAddressLine2": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Address Line 2 such as Street or Suite number", "label": "Entity Address, Address Line Two" } } }, "localname": "EntityAddressAddressLine2", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressAddressLine3": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Address Line 3 such as an Office Park", "label": "Entity Address, Address Line Three" } } }, "localname": "EntityAddressAddressLine3", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCityOrTown": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Name of the City or Town", "label": "Entity Address, City or Town" } } }, "localname": "EntityAddressCityOrTown", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressCountry": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "ISO 3166-1 alpha-2 country code.", "label": "Entity Address, Country" } } }, "localname": "EntityAddressCountry", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "countryCodeItemType" }, "dei_EntityAddressPostalZipCode": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Code for the postal or zip code", "label": "Entity Address, Postal Zip Code" } } }, "localname": "EntityAddressPostalZipCode", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityAddressStateOrProvince": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Name of the state or province.", "label": "Entity Address, State or Province" } } }, "localname": "EntityAddressStateOrProvince", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "stateOrProvinceItemType" }, "dei_EntityBankruptcyProceedingsReportingCurrent": { "auth_ref": [ "r333" ], "lang": { "en-US": { "role": { "documentation": "For registrants involved in bankruptcy proceedings during the preceding five years, the value Yes indicates that the registrant has filed all documents and reports required to be filed by Section 12, 13 or 15(d) of the Securities Exchange Act of 1934 subsequent to the distribution of securities under a plan confirmed by a court; the value No indicates the registrant has not. Registrants not involved in bankruptcy proceedings during the preceding five years should not report this element.", "label": "Entity Bankruptcy Proceedings, Reporting Current" } } }, "localname": "EntityBankruptcyProceedingsReportingCurrent", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_EntityCentralIndexKey": { "auth_ref": [ "r343" ], "lang": { "en-US": { "role": { "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.", "label": "Entity Central Index Key" } } }, "localname": "EntityCentralIndexKey", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "centralIndexKeyItemType" }, "dei_EntityCommonStockSharesOutstanding": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.", "label": "Entity Common Stock, Shares Outstanding" } } }, "localname": "EntityCommonStockSharesOutstanding", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "sharesItemType" }, "dei_EntityCurrentReportingStatus": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Current Reporting Status" } } }, "localname": "EntityCurrentReportingStatus", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "yesNoItemType" }, "dei_EntityEmergingGrowthCompany": { "auth_ref": [ "r343" ], "lang": { "en-US": { "role": { "documentation": "Indicate if registrant meets the emerging growth company criteria.", "label": "Entity Emerging Growth Company" } } }, "localname": "EntityEmergingGrowthCompany", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_EntityExTransitionPeriod": { "auth_ref": [ "r347" ], "lang": { "en-US": { "role": { "documentation": "Indicate if an emerging growth company has elected not to use the extended transition period for complying with any new or revised financial accounting standards.", "label": "Elected Not To Use the Extended Transition Period" } } }, "localname": "EntityExTransitionPeriod", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_EntityFileNumber": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.", "label": "Entity File Number" } } }, "localname": "EntityFileNumber", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "fileNumberItemType" }, "dei_EntityFilerCategory": { "auth_ref": [ "r343" ], "lang": { "en-US": { "role": { "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.", "label": "Entity Filer Category" } } }, "localname": "EntityFilerCategory", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "filerCategoryItemType" }, "dei_EntityIncorporationStateCountryCode": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Two-character EDGAR code representing the state or country of incorporation.", "label": "Entity Incorporation, State or Country Code" } } }, "localname": "EntityIncorporationStateCountryCode", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "edgarStateCountryItemType" }, "dei_EntityInteractiveDataCurrent": { "auth_ref": [ "r344" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).", "label": "Entity Interactive Data Current" } } }, "localname": "EntityInteractiveDataCurrent", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "yesNoItemType" }, "dei_EntityPrimarySicNumber": { "auth_ref": [ "r341" ], "lang": { "en-US": { "role": { "documentation": "Primary Standard Industrial Classification (SIC) Number for the Entity.", "label": "Entity Primary SIC Number" } } }, "localname": "EntityPrimarySicNumber", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "sicNumberItemType" }, "dei_EntityPublicFloat": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.", "label": "Entity Public Float" } } }, "localname": "EntityPublicFloat", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "monetaryItemType" }, "dei_EntityRegistrantName": { "auth_ref": [ "r343" ], "lang": { "en-US": { "role": { "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.", "label": "Entity Registrant Name" } } }, "localname": "EntityRegistrantName", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_EntityShellCompany": { "auth_ref": [ "r343" ], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.", "label": "Entity Shell Company" } } }, "localname": "EntityShellCompany", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_EntitySmallBusiness": { "auth_ref": [ "r343" ], "lang": { "en-US": { "role": { "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).", "label": "Entity Small Business" } } }, "localname": "EntitySmallBusiness", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_EntityTaxIdentificationNumber": { "auth_ref": [ "r343" ], "lang": { "en-US": { "role": { "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.", "label": "Entity Tax Identification Number" } } }, "localname": "EntityTaxIdentificationNumber", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "employerIdItemType" }, "dei_EntityVoluntaryFilers": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.", "label": "Entity Voluntary Filers" } } }, "localname": "EntityVoluntaryFilers", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "yesNoItemType" }, "dei_EntityWellKnownSeasonedIssuer": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.", "label": "Entity Well-known Seasoned Issuer" } } }, "localname": "EntityWellKnownSeasonedIssuer", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "yesNoItemType" }, "dei_Extension": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Extension number for local phone number.", "label": "Extension" } } }, "localname": "Extension", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_LocalPhoneNumber": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Local phone number for entity.", "label": "Local Phone Number" } } }, "localname": "LocalPhoneNumber", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "normalizedStringItemType" }, "dei_NoTradingSymbolFlag": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Boolean flag that is true only for a security having no trading symbol.", "label": "No Trading Symbol Flag" } } }, "localname": "NoTradingSymbolFlag", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_OtherReportingStandardItemNumber": { "auth_ref": [ "r340" ], "lang": { "en-US": { "role": { "documentation": "\"Item 17\" or \"Item 18\" specified when the basis of accounting is neither US GAAP nor IFRS.", "label": "Other Reporting Standard Item Number" } } }, "localname": "OtherReportingStandardItemNumber", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "otherReportingStandardItemNumberItemType" }, "dei_PreCommencementIssuerTenderOffer": { "auth_ref": [ "r334" ], "lang": { "en-US": { "role": { "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.", "label": "Pre-commencement Issuer Tender Offer" } } }, "localname": "PreCommencementIssuerTenderOffer", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_PreCommencementTenderOffer": { "auth_ref": [ "r335" ], "lang": { "en-US": { "role": { "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.", "label": "Pre-commencement Tender Offer" } } }, "localname": "PreCommencementTenderOffer", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_Security12bTitle": { "auth_ref": [ "r329" ], "lang": { "en-US": { "role": { "documentation": "Title of a 12(b) registered security.", "label": "Title of 12(b) Security" } } }, "localname": "Security12bTitle", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "securityTitleItemType" }, "dei_Security12gTitle": { "auth_ref": [ "r332" ], "lang": { "en-US": { "role": { "documentation": "Title of a 12(g) registered security.", "label": "Title of 12(g) Security" } } }, "localname": "Security12gTitle", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "securityTitleItemType" }, "dei_SecurityExchangeName": { "auth_ref": [ "r331" ], "lang": { "en-US": { "role": { "documentation": "Name of the Exchange on which a security is registered.", "label": "Security Exchange Name" } } }, "localname": "SecurityExchangeName", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "edgarExchangeCodeItemType" }, "dei_SecurityReportingObligation": { "auth_ref": [ "r336" ], "lang": { "en-US": { "role": { "documentation": "15(d), indicating whether the security has a reporting obligation under that section of the Exchange Act.", "label": "Security Reporting Obligation" } } }, "localname": "SecurityReportingObligation", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "securityReportingObligationItemType" }, "dei_SolicitingMaterial": { "auth_ref": [ "r337" ], "lang": { "en-US": { "role": { "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.", "label": "Soliciting Material" } } }, "localname": "SolicitingMaterial", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "dei_TradingSymbol": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Trading symbol of an instrument as listed on an exchange.", "label": "Trading Symbol" } } }, "localname": "TradingSymbol", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "tradingSymbolItemType" }, "dei_WrittenCommunications": { "auth_ref": [ "r346" ], "lang": { "en-US": { "role": { "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.", "label": "Written Communications" } } }, "localname": "WrittenCommunications", "nsuri": "http://xbrl.sec.gov/dei/2020-01-31", "presentation": [ "http://taylordevices.com/role/Cover" ], "xbrltype": "booleanItemType" }, "srt_MajorCustomersAxis": { "auth_ref": [ "r150", "r195", "r196", "r310" ], "lang": { "en-US": { "role": { "documentation": "Information by name or description of a single external customer or a group of external customers.", "label": "Customer [Axis]" } } }, "localname": "MajorCustomersAxis", "nsuri": "http://fasb.org/srt/2020-01-31", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "stringItemType" }, "srt_NameOfMajorCustomerDomain": { "auth_ref": [ "r150", "r195", "r196", "r310" ], "lang": { "en-US": { "role": { "documentation": "Single external customer or group of external customers." } } }, "localname": "NameOfMajorCustomerDomain", "nsuri": "http://fasb.org/srt/2020-01-31", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "domainItemType" }, "srt_ScheduleOfCondensedBalanceSheetTableTextBlock": { "auth_ref": [ "r345" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of condensed balance sheet, including, but not limited to, balance sheets of consolidated entities and consolidation eliminations.", "label": "Revenue Impact on Financial Statements Balance Sheet" } } }, "localname": "ScheduleOfCondensedBalanceSheetTableTextBlock", "nsuri": "http://fasb.org/srt/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesTables" ], "xbrltype": "textBlockItemType" }, "srt_ScheduleOfCondensedIncomeStatementTableTextBlock": { "auth_ref": [ "r345" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of condensed income statement, including, but not limited to, income statements of consolidated entities and consolidation eliminations.", "label": "Condensed Income Statement [Table Text Block]" } } }, "localname": "ScheduleOfCondensedIncomeStatementTableTextBlock", "nsuri": "http://fasb.org/srt/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesTables" ], "xbrltype": "textBlockItemType" }, "tayd_AerospaceDefenseMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Total revenue from sale of goods and services rendered during the reporting period to aerospace / defense type customers, in the normal course of business, reduced by sales returns and allowances, and sales discounts.", "label": "Aerospace / Defense" } } }, "localname": "AerospaceDefenseMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "domainItemType" }, "tayd_AggregateFutureRevenueToBeRecognizedFromUncompletedProjectsOrProgramsInProgress": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Aggregate future revenue to be recognized for uncompleted sales contracts in progress that are accounted for using the percentage of completion method of accounting.", "label": "Aggregate amount remaining" } } }, "localname": "AggregateFutureRevenueToBeRecognizedFromUncompletedProjectsOrProgramsInProgress", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTwoTableDetails" ], "xbrltype": "monetaryItemType" }, "tayd_AggregatePercentCompleteOfUncompletedProjectsOrProgramsInProgress": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Aggregate percent complete of uncompleted sales contracts in progress that are accounted for using the percentage of completion method of accounting.", "label": "Aggregate percent complete" } } }, "localname": "AggregatePercentCompleteOfUncompletedProjectsOrProgramsInProgress", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTwoTableDetails" ], "xbrltype": "percentItemType" }, "tayd_AggregateRevenueRecognizedFromUncompletedProjectsOrProgramsInProgressAtPriorYearEndIncludedInBillingsInExcessOfCostsAndEstimatedEarnings": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year.", "label": "Revenue recognized in current period for projects included in billings in excess of costs and estimated earnings at end of prior year" } } }, "localname": "AggregateRevenueRecognizedFromUncompletedProjectsOrProgramsInProgressAtPriorYearEndIncludedInBillingsInExcessOfCostsAndEstimatedEarnings", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "tayd_BillingsOnUncompletedContractsOrPrograms": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails": { "order": 2.0, "parentTag": "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Contractually invoiced amounts (billings) component included in the asset Costs and estimated earnings in excess of billings and the liability Billings in excess of costs and estimated earnings.", "label": "Less billings to date" } } }, "localname": "BillingsOnUncompletedContractsOrPrograms", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails" ], "xbrltype": "monetaryItemType" }, "tayd_CommitmentsForFutureCapitalExpendituresDisclosure": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The value of contractual obligations to acquire or construct physical capital assets to be used in the normal conduct of business to produce goods.", "label": "Commitments for future capital expenditures" } } }, "localname": "CommitmentsForFutureCapitalExpendituresDisclosure", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "tayd_ConstructionSeismicWindMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Total revenue from sale of goods and services rendered during the reporting period to construction seismic / wind type customers, in the normal course of business, reduced by sales returns and allowances, and sales discounts.", "label": "Construction" } } }, "localname": "ConstructionSeismicWindMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "domainItemType" }, "tayd_CostsAndEstimatedEarningsOnUncompletedContractsOrPrograms": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails": { "order": 1.0, "parentTag": "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The amount of revenue recognized under the percentage of completion method of accounting component included in the asset Costs and estimated earnings in excess of billings and the liability Billings in excess of costs and estimated earnings.", "label": "Total costs and estimated earnings", "totalLabel": "Total costs and estimated earnings" } } }, "localname": "CostsAndEstimatedEarningsOnUncompletedContractsOrPrograms", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails" ], "xbrltype": "monetaryItemType" }, "tayd_Disclosure9.SalesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Sales" } } }, "localname": "Disclosure9.SalesAbstract", "nsuri": "http://taylordevices.com/20190531", "xbrltype": "stringItemType" }, "tayd_EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Percentage of total sales during a period to domestic customers.", "label": "Domestic revenue as percentage of total" } } }, "localname": "EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToEntitysCountryOfDomicile", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToForeignCountries": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Percentage of total sales during a period to export customers.", "label": "Asian revenue as percentage of total" } } }, "localname": "EntityWideDisclosureOnGeographicAreasPercentageOfRevenueFromExternalCustomersAttributedToForeignCountries", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_EstimatedEarningsOnUncompletedContractsOrPrograms": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails": { "order": 2.0, "parentTag": "tayd_CostsAndEstimatedEarningsOnUncompletedContractsOrPrograms", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Estimated earnings based on the difference between the revenue recognized and the costs recorded under the percentage of completion method of accounting component included in the asset costs and estimated earnings is excess of billings and the liability Billings in excess of costs and estimated earnings.", "label": "Estimated earnings" } } }, "localname": "EstimatedEarningsOnUncompletedContractsOrPrograms", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails" ], "xbrltype": "monetaryItemType" }, "tayd_IndustrialMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Total revenue from sale of goods and services rendered during the reporting period to industrial type customers, in the normal course of business, reduced by sales returns and allowances, and sales discounts.", "label": "Industrial" } } }, "localname": "IndustrialMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "domainItemType" }, "tayd_InventoryValuationReservesNoncurrent": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails": { "order": 2.0, "parentTag": "us-gaap_InventoryNoncurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The amount of the valuation account as of the balance sheet date which reduces the carrying amount of non-current inventory to net realizable value; takes into consideration such factors as market value, excessive quantities based on expected sales.", "label": "Less allowance for obsolescence noncurrent", "negatedLabel": "Less allowance for obsolescence" } } }, "localname": "InventoryValuationReservesNoncurrent", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "tayd_LongTermContractsDisclosureTableTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the asset costs and estimated earnings in excess of billings is combined with the liability Billings in excess of costs and estimated earnings.", "label": "Costs and estimated earnings on uncompleted contracts table" } } }, "localname": "LongTermContractsDisclosureTableTextBlock", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTables" ], "xbrltype": "textBlockItemType" }, "tayd_LongTermContractsDisclosureTwoTableTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of data related to uncompleted projects or programs in progress.", "label": "Costs and estimated earnings on uncompleted contracts two table" } } }, "localname": "LongTermContractsDisclosureTwoTableTextBlock", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTables" ], "xbrltype": "textBlockItemType" }, "tayd_PercentOfAggregateRevenueValueOfUncompletedProjectsOrProgramsInProgressInvoicedToCustomer": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Aggregate percent of total contract value already recognized on uncompleted sales contracts in progress that are accounted for using the percentage of completion method of accounting.", "label": "Percentage of total value invoiced to customer" } } }, "localname": "PercentOfAggregateRevenueValueOfUncompletedProjectsOrProgramsInProgressInvoicedToCustomer", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTwoTableDetails" ], "xbrltype": "percentItemType" }, "tayd_QuantityOfUncompletedProjectsOrProgramsInProgress": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Quantity of sales contracts in progress that are accounted for using the percentage of completion method of accounting.", "label": "Number of Projects in progress" } } }, "localname": "QuantityOfUncompletedProjectsOrProgramsInProgress", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTwoTableDetails" ], "xbrltype": "pureItemType" }, "tayd_RevenueRecognitionOverTimePercentOfTotal": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Percent of total revenue for a period recognized with sales contracts for which revenue is recognized over time.", "label": "Percent of revenue recognized with sales contracts for which revenue is recognized over time" } } }, "localname": "RevenueRecognitionOverTimePercentOfTotal", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_RevenueRecognitionSinglePerformanceObligationPercentOfTotal": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Percent of total revenue for a period recognized with sales contracts containing a single performance obligation.", "label": "Percent of revenue recognized with sales contracts containing a single performance obligation" } } }, "localname": "RevenueRecognitionSinglePerformanceObligationPercentOfTotal", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_ScheduleOfRevenueByMajorCustomer1": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Percentage of total sales during a period to the most significant individual customer.", "label": "Percentage of total sales to significant individual customer1" } } }, "localname": "ScheduleOfRevenueByMajorCustomer1", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SalesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_ScheduleOfRevenueByMajorCustomer2": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Percentage of total sales during a period to the second most significant individual customer.", "label": "Percentage of total sales to significant individual customer2" } } }, "localname": "ScheduleOfRevenueByMajorCustomer2", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SalesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_ScheduleOfRevenueByMajorCustomer3": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Percentage of total sales during a period to the third most significant individual customer.", "label": "Percentage of total sales to significant individual customer3" } } }, "localname": "ScheduleOfRevenueByMajorCustomer3", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SalesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_ScheduleOfRevenueByMajorCustomer4": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Percentage of total sales during a period to the fourth most significant individual customer.", "label": "Percentage of total sales to significant individual customer4" } } }, "localname": "ScheduleOfRevenueByMajorCustomer4", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SalesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_ScheduleOfRevenueByMajorCustomer5": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Percentage of total sales during a period to the fifth most significant individual customer.", "label": "Percentage of total sales to significant individual customer5" } } }, "localname": "ScheduleOfRevenueByMajorCustomer5", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SalesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_ScheduleOfRevenueByMajorCustomer6": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Percentage of total sales to significant individual customer6" } } }, "localname": "ScheduleOfRevenueByMajorCustomer6", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SalesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the revenue for a period from sales to major customer types.", "label": "Sales by major customer type" } } }, "localname": "ScheduleOfRevenueByMajorCustomerTypesTextBlockTableTextBlock", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SalesTables" ], "xbrltype": "textBlockItemType" }, "tayd_ScheduleOfRevenueByMajorCustomers": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Percentage of total sales during a period to the most significant customers.", "label": "Percentage of total sales to significant individual customers" } } }, "localname": "ScheduleOfRevenueByMajorCustomers", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/SalesDetailsNarrative" ], "xbrltype": "percentItemType" }, "tayd_ScheduleOfRevenueByMajorCustomersTypesTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the revenue for a period from sales to major customer types.", "label": "[custom:ScheduleOfRevenueByMajorCustomersTypesTextBlock]" } } }, "localname": "ScheduleOfRevenueByMajorCustomersTypesTextBlock", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/Sales" ], "xbrltype": "textBlockItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Lower and upper limits of exercise per share price range eight for outstanding and exercisable stock options.", "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Eight [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeEightMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Lower and upper limits of exercise per share price range eleven for outstanding and exercisable stock options.", "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Eleven [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeElevenMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Lower and upper limits of exercise per share price range five for outstanding and exercisable stock options.", "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Five [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFiveMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Lower and upper limits of exercise per share price range four for outstanding and exercisable stock options.", "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Four [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeFourMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Lower and upper limits of exercise per share price range nine for outstanding and exercisable stock options.", "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Nine [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeNineMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range One [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeOneMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Lower and upper limits of exercise per share price range seven for outstanding and exercisable stock options.", "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Seven [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSevenMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Lower and upper limits of exercise per share price range six for outstanding and exercisable stock options.", "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Six [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeSixMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Lower and upper limits of exercise per share price range ten for outstanding and exercisable stock options.", "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Ten [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTenMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Lower and upper limits of exercise per share price range three for outstanding and exercisable stock options.", "label": "Share Based Compensation Shares Authorized Under Stock Option Plans By Exercise Price Range Three [Member]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeThreeMember", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Lower limit of exercise per share price range for outstanding and exercisable stock options.", "label": "Range of exercise prices, Minimum" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLowerRangeLimitTwo", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "perShareItemType" }, "tayd_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Upper limit of exercise per share price range for outstanding and exercisable stock options.", "label": "Range of exercise prices, Maximum" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeUpperRangeLimitTwo", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "perShareItemType" }, "tayd_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Average remaining contractual term, as of a balance sheet date, until the expiration of stock options within a price range.", "label": "Weighted Average Remaining Years of Contractual Life" } } }, "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageRemainingContractualTermTwo", "nsuri": "http://taylordevices.com/20190531", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "pureItemType" }, "us-gaap_AccountingPoliciesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Accounting Policies [Abstract]" } } }, "localname": "AccountingPoliciesAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_AccountingStandardsUpdate201409Member": { "auth_ref": [ "r198" ], "lang": { "en-US": { "role": { "documentation": "Accounting Standards Update 2014-09 Revenue from Contracts with Customers (Topic 606).", "label": "Accounting Standards Update 2014-09 [Member]" } } }, "localname": "AccountingStandardsUpdate201409Member", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsBalanceSheetDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_AccountsPayableCurrent": { "auth_ref": [ "r41" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accounts payable" } } }, "localname": "AccountsPayableCurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsPayableOtherCurrent": { "auth_ref": [ "r14", "r41" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of obligations incurred classified as other, payable within one year or the normal operating cycle, if longer.", "label": "Uncleared checks" } } }, "localname": "AccountsPayableOtherCurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/Short-termBorrowingsDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableGrossCurrent": { "auth_ref": [ "r151", "r152" ], "calculation": { "http://taylordevices.com/role/AccountsReceivableTableDetails": { "order": 1.0, "parentTag": "us-gaap_AccountsReceivableNetCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts Receivable, before Allowance for Credit Loss, Current", "totalLabel": "Gross accounts receivable" } } }, "localname": "AccountsReceivableGrossCurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/AccountsReceivableTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccountsReceivableNetCurrent": { "auth_ref": [ "r3", "r25", "r151", "r152" ], "calculation": { "http://taylordevices.com/role/AccountsReceivableTableDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://taylordevices.com/role/BalanceSheets": { "order": 3.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.", "label": "Accounts and other receivables, net", "totalLabel": "Net accounts and other receivables" } } }, "localname": "AccountsReceivableNetCurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/AccountsReceivableTableDetails", "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedLiabilitiesCurrent": { "auth_ref": [ "r43" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 4.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Other accrued expenses" } } }, "localname": "AccruedLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccruedSalesCommissionCurrent": { "auth_ref": [ "r13", "r14", "r43" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 3.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for sales commissions. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).", "label": "Accrued commissions" } } }, "localname": "AccruedSalesCommissionCurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": { "auth_ref": [ "r38", "r184" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 2.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services.", "label": "Less accumulated depreciation" } } }, "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalCashFlowElementsFinancingActivitiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Financing activities:" } } }, "localname": "AdditionalCashFlowElementsFinancingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AdditionalCashFlowElementsInvestingActivitiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Investing activities:" } } }, "localname": "AdditionalCashFlowElementsInvestingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AdditionalPaidInCapitalCommonStock": { "auth_ref": [ "r26" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquityBeforeTreasuryStock", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Value received from shareholders in common stock-related transactions that are in excess of par value or stated value and amounts received from other stock-related transactions. Includes only common stock transactions (excludes preferred stock transactions). May be called contributed capital, capital in excess of par, capital surplus, or paid-in capital.", "label": "Paid-in capital" } } }, "localname": "AdditionalPaidInCapitalCommonStock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AdditionalPaidInCapitalMember": { "auth_ref": [ "r94", "r95", "r96", "r222", "r223", "r224" ], "lang": { "en-US": { "role": { "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.", "label": "Additional Paid-in Capital [Member]" } } }, "localname": "AdditionalPaidInCapitalMember", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": { "auth_ref": [ "r97", "r98", "r99", "r100", "r165", "r166", "r167", "r168", "r169", "r170", "r218", "r219", "r220", "r221", "r222", "r223", "r224", "r225", "r246", "r247", "r248", "r249", "r287", "r288", "r289", "r311", "r312", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r322" ], "lang": { "en-US": { "role": { "documentation": "Information by amendment to accounting standards.", "label": "Accounting Standards Update [Axis]" } } }, "localname": "AdjustmentsForNewAccountingPronouncementsAxis", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsBalanceSheetDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Adjustments to reconcile net income to net cash flows from" } } }, "localname": "AdjustmentsNoncashItemsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for option under share-based payment arrangement.", "label": "Stock options issued for services" } } }, "localname": "AdjustmentsToAdditionalPaidInCapitalShareBasedCompensationStockOptionsRequisiteServicePeriodRecognition", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_AllowanceForDoubtfulAccountsReceivable": { "auth_ref": [ "r157", "r171", "r172", "r173" ], "calculation": { "http://taylordevices.com/role/AccountsReceivableTableDetails": { "order": 2.0, "parentTag": "us-gaap_AccountsReceivableNetCurrent", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of allowance for credit loss on accounts receivable.", "label": "Less allowance for doubtful accounts" } } }, "localname": "AllowanceForDoubtfulAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/AccountsReceivableTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_Assets": { "auth_ref": [ "r88", "r138", "r141", "r146", "r163", "r260", "r263", "r268", "r292", "r302" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets [Default Label]", "totalLabel": "Assets" } } }, "localname": "Assets", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Assets" } } }, "localname": "AssetsAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_AssetsCurrent": { "auth_ref": [ "r6", "r8", "r57", "r88", "r163", "r260", "r263", "r268" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 1.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.", "label": "Assets, Current", "totalLabel": "Total current assets" } } }, "localname": "AssetsCurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_AssetsCurrentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Current assets:" } } }, "localname": "AssetsCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_BillingsInExcessOfCostCurrent": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 5.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 }, "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails": { "order": 2.0, "parentTag": "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Liability attributable to (i) billings in excess of costs under the percentage of completion contract accounting method representing the difference between contractually invoiced amounts (billings) and revenue recognized based, for example, on costs incurred to estimated total costs at period end or (ii) contractually invoiced amounts (billings) in excess of costs incurred and accumulated under the completed contract accounting method that are expected to be realized within one year or one operating cycle, whichever is longer, from the reporting date.", "label": "Billings in excess of costs and estimated earnings" } } }, "localname": "BillingsInExcessOfCostCurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails", "http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_BuildingsAndImprovementsGross": { "auth_ref": [ "r11", "r183" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 2.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before accumulated depreciation of building structures held for productive use including addition, improvement, or renovation to the structure, including, but not limited to, interior masonry, interior flooring, electrical, and plumbing.", "label": "Buildings and improvements" } } }, "localname": "BuildingsAndImprovementsGross", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member": { "auth_ref": [ "r197" ], "lang": { "en-US": { "role": { "documentation": "Calculated under guidance for revenue recognition in effect prior to change to new guidance for revenue from contract with customer when using transition method for cumulative effect in period including initial date of application.", "label": "Calculated under Revenue Guidance in Effect before Topic 606 [Member]" } } }, "localname": "CalculatedUnderRevenueGuidanceInEffectBeforeTopic606Member", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_CashAndCashEquivalentsAtCarryingValue": { "auth_ref": [ "r1", "r35", "r80" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 1.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "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.", "label": "Cash and cash equivalents", "periodEndLabel": "Cash and cash equivalents - ending", "periodStartLabel": "Cash and cash equivalents - beginning" } } }, "localname": "CashAndCashEquivalentsAtCarryingValue", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of increase (decrease) in cash and cash equivalents. Cash and cash equivalents are the 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. Includes effect from exchange rate changes.", "label": "Cash and Cash Equivalents, Period Increase (Decrease)", "totalLabel": "Net change in cash and cash equivalents" } } }, "localname": "CashAndCashEquivalentsPeriodIncreaseDecrease", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_CashAndCashEquivalentsPolicyTextBlock": { "auth_ref": [ "r16", "r81", "r85" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.", "label": "Cash and Cash Equivalents:" } } }, "localname": "CashAndCashEquivalentsPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_CashFlowSupplementalDisclosuresTextBlock": { "auth_ref": [ "r83" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for supplemental cash flow activities, including cash, noncash, and part noncash transactions, for the period. Noncash is defined as information about all investing and financing activities of an enterprise during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.", "label": "Cash Flow, Supplemental Disclosures [Text Block]" } } }, "localname": "CashFlowSupplementalDisclosuresTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/CashFlowsInformation" ], "xbrltype": "textBlockItemType" }, "us-gaap_CashSurrenderValueOfLifeInsurance": { "auth_ref": [ "r9", "r39" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 4.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Carrying amount as of the balance sheet date of amounts which could be received based on the terms of the insurance contract upon surrendering life policies owned by the entity.", "label": "Cash value of life insurance, net" } } }, "localname": "CashSurrenderValueOfLifeInsurance", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Commitments and Contingencies Disclosure [Abstract]" } } }, "localname": "CommitmentsAndContingenciesDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_CommonStockMember": { "auth_ref": [ "r94", "r95" ], "lang": { "en-US": { "role": { "documentation": "Stock that is subordinate to all other stock of the issuer.", "label": "Common Stock [Member]" } } }, "localname": "CommonStockMember", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_CommonStockParOrStatedValuePerShare": { "auth_ref": [ "r21" ], "lang": { "en-US": { "role": { "documentation": "Face amount or stated value per share of common stock.", "label": "Common Stock, Par or Stated Value Per Share" } } }, "localname": "CommonStockParOrStatedValuePerShare", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheetsParenthetical" ], "xbrltype": "perShareItemType" }, "us-gaap_CommonStockSharesAuthorized": { "auth_ref": [ "r21" ], "lang": { "en-US": { "role": { "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.", "label": "Common Stock, Shares Authorized" } } }, "localname": "CommonStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockSharesIssued": { "auth_ref": [ "r21" ], "lang": { "en-US": { "role": { "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.", "label": "Common Stock, Shares, Issued" } } }, "localname": "CommonStockSharesIssued", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheetsParenthetical" ], "xbrltype": "sharesItemType" }, "us-gaap_CommonStockValue": { "auth_ref": [ "r21" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquityBeforeTreasuryStock", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.", "label": "Common stock, $ .025 par value, authorized 8,000,000 shares, \u00a0\u00a0\u00a0issued 4,040,805 and 4,029,431 shares" } } }, "localname": "CommonStockValue", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_CompensationAndRetirementDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Retirement Benefits [Abstract]" } } }, "localname": "CompensationAndRetirementDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_ConsolidationPolicyTextBlock": { "auth_ref": [ "r85", "r262" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy regarding (1) the principles it follows in consolidating or combining the separate financial statements, including the principles followed in determining the inclusion or exclusion of subsidiaries or other entities in the consolidated or combined financial statements and (2) its treatment of interests (for example, common stock, a partnership interest or other means of exerting influence) in other entities, for example consolidation or use of the equity or cost methods of accounting. The accounting policy may also address the accounting treatment for intercompany accounts and transactions, noncontrolling interest, and the income statement treatment in consolidation for issuances of stock by a subsidiary.", "label": "Principles of Consolidation:" } } }, "localname": "ConsolidationPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ContractReceivableRetainageDueOneYearOrLess": { "auth_ref": [ "r24", "r282" ], "calculation": { "http://taylordevices.com/role/AccountsReceivableTableDetails": { "order": 2.0, "parentTag": "us-gaap_AccountsReceivableGrossCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount billed to customers under long-term contracts or programs that have been withheld because of retainage provisions in a contract to be collected in the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.", "label": "Customers - retention" } } }, "localname": "ContractReceivableRetainageDueOneYearOrLess", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/AccountsReceivableTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostOfGoodsAndServicesSold": { "auth_ref": [ "r65", "r286" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_GrossProfit", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.", "label": "Cost of goods sold" } } }, "localname": "CostOfGoodsAndServicesSold", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails", "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms": { "auth_ref": [ "r22", "r23", "r24", "r284" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 7.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 }, "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails": { "order": 1.0, "parentTag": "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of receivable reflecting the cost incurred on uncompleted contracts in excess of related billings.", "label": "Costs and estimated earnings in excess of billings" } } }, "localname": "CostsInExcessOfBillingsOnUncompletedContractsOrPrograms", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails", "http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsBalanceSheetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear": { "auth_ref": [ "r48" ], "calculation": { "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of receivable reflecting the cost incurred on uncompleted contracts in excess of related billings which is expected to be collected within one year or the normal operating cycle, if longer.", "label": "Costs in Excess of Billings, Current", "totalLabel": "Costs and estimated earnings not billed" } } }, "localname": "CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails", "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount after tax of increase (decrease) to equity or (increase) decrease to net assets, resulting from the cumulative effect adjustment of a new accounting principle applied in the period of adoption.", "label": "Cumulative Effect of New Accounting Principle in Period of Adoption (Deprecated 2020-01-31)", "periodStartLabel": "Adjustments Due to ASU 2014-09" } } }, "localname": "CumulativeEffectOfNewAccountingPrincipleInPeriodOfAdoption", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentFederalTaxExpenseBenefit": { "auth_ref": [ "r89", "r243", "r252" ], "calculation": { "http://taylordevices.com/role/IncomeTaxesTableDetails": { "order": 1.0, "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Federal" } } }, "localname": "CurrentFederalTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentIncomeTaxExpenseBenefit": { "auth_ref": [ "r89", "r243", "r252", "r254" ], "calculation": { "http://taylordevices.com/role/IncomeTaxesTableDetails": { "order": 1.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.", "label": "Current Income Tax Expense (Benefit)", "totalLabel": "Total current tax provision" } } }, "localname": "CurrentIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": { "auth_ref": [ "r89", "r243", "r252" ], "calculation": { "http://taylordevices.com/role/IncomeTaxesTableDetails": { "order": 2.0, "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of current state and local tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "State" } } }, "localname": "CurrentStateAndLocalTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DebtDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Debt Disclosure [Abstract]" } } }, "localname": "DebtDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Abstract]" } } }, "localname": "DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock": { "auth_ref": [ "r39" ], "lang": { "en-US": { "role": { "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.", "label": "Deferred Costs, Capitalized, Prepaid, and Other Assets Disclosure [Table Text Block]" } } }, "localname": "DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContracts" ], "xbrltype": "textBlockItemType" }, "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": { "auth_ref": [ "r89", "r244", "r252" ], "calculation": { "http://taylordevices.com/role/IncomeTaxesTableDetails": { "order": 1.0, "parentTag": "us-gaap_IncomeTaxCreditsAndAdjustments", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred Federal Income Tax Expense (Benefit)", "verboseLabel": "Federal" } } }, "localname": "DeferredFederalIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxExpenseBenefit": { "auth_ref": [ "r78", "r89", "r244", "r252", "r253", "r254" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 5.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred Income Tax Expense (Benefit)", "verboseLabel": "Deferred income taxes" } } }, "localname": "DeferredIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Deferred tax provision:" } } }, "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "stringItemType" }, "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": { "auth_ref": [ "r89", "r244", "r252" ], "calculation": { "http://taylordevices.com/role/IncomeTaxesTableDetails": { "order": 2.0, "parentTag": "us-gaap_IncomeTaxCreditsAndAdjustments", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of deferred state and local tax expense (benefit) pertaining to income (loss) from continuing operations.", "label": "Deferred State and Local Income Tax Expense (Benefit)", "verboseLabel": "State" } } }, "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsGross": { "auth_ref": [ "r238" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.", "label": "Deferred Tax Assets, Gross" } } }, "localname": "DeferredTaxAssetsGross", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsNetCurrent": { "auth_ref": [ "r230", "r231", "r232", "r233", "r238" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 5.0, "parentTag": "us-gaap_Assets", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount after allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards classified as current.", "label": "Deferred income taxes" } } }, "localname": "DeferredTaxAssetsNetCurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_DeferredTaxAssetsTaxCreditCarryforwards": { "auth_ref": [ "r240", "r241", "r242" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount, before allocation of a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards.", "label": "Deferred Tax Assets, Tax Credit Carryforwards" } } }, "localname": "DeferredTaxAssetsTaxCreditCarryforwards", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_Depreciation": { "auth_ref": [ "r78", "r182" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.", "label": "Depreciation expense" } } }, "localname": "Depreciation", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_DepreciationDepletionAndAmortization": { "auth_ref": [ "r78", "r136" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The aggregate expense recognized in the current period that allocates the cost of tangible assets, intangible assets, or depleting assets to periods that benefit from use of the assets.", "label": "Depreciation" } } }, "localname": "DepreciationDepletionAndAmortization", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member": { "auth_ref": [ "r197" ], "lang": { "en-US": { "role": { "documentation": "Effect in current period from application of guidance for revenue from contract with customer compared with guidance for revenue recognition applicable prior to change when using transition method for cumulative effect in period including initial date of application.", "label": "Difference between Revenue Guidance in Effect before and after Topic 606 [Member]" } } }, "localname": "DifferenceBetweenRevenueGuidanceInEffectBeforeAndAfterTopic606Member", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails" ], "xbrltype": "domainItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": { "auth_ref": [ "r227" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for share-based payment arrangement.", "label": "Share-based Payment Arrangement [Text Block]" } } }, "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans" ], "xbrltype": "textBlockItemType" }, "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Share-based Payment Arrangement [Abstract]" } } }, "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Earnings Per Share [Abstract]" } } }, "localname": "EarningsPerShareAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_EarningsPerShareBasicAndDiluted": { "auth_ref": [ "r115" ], "lang": { "en-US": { "role": { "documentation": "The amount of net income or loss for the period per each share in instances when basic and diluted earnings per share are the same amount and reported as a single line item on the face of the financial statements. Basic earnings per share is the amount of net income or loss for the period per each share of common stock or unit outstanding during the reporting period. Diluted earnings per share includes the amount of net income or loss for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.", "label": "Basic and diluted earnings per common share" } } }, "localname": "EarningsPerShareBasicAndDiluted", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "perShareItemType" }, "us-gaap_EarningsPerShareTextBlock": { "auth_ref": [ "r117", "r118", "r119", "r120" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for earnings per share.", "label": "Earnings Per Share [Text Block]" } } }, "localname": "EarningsPerShareTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/EarningsPerCommonShare" ], "xbrltype": "textBlockItemType" }, "us-gaap_EffectiveIncomeTaxRateContinuingOperations": { "auth_ref": [ "r235" ], "lang": { "en-US": { "role": { "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Effective income tax rate" } } }, "localname": "EffectiveIncomeTaxRateContinuingOperations", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "percentItemType" }, "us-gaap_EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Tax effect of permanent differences:" } } }, "localname": "EffectiveIncomeTaxRateContinuingOperationsTaxRateReconciliationAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "stringItemType" }, "us-gaap_EquityAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Equity [Abstract]" } } }, "localname": "EquityAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_FairValueOfFinancialInstrumentsPolicy": { "auth_ref": [ "r85", "r265", "r266" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments.", "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]" } } }, "localname": "FairValueOfFinancialInstrumentsPolicy", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/FairValueOfFinancialInstruments" ], "xbrltype": "textBlockItemType" }, "us-gaap_FurnitureAndFixturesGross": { "auth_ref": [ "r183" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 4.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before accumulated depreciation of equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.", "label": "Office furniture and equipment" } } }, "localname": "FurnitureAndFixturesGross", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_GrossProfit": { "auth_ref": [ "r64", "r88", "r138", "r140", "r142", "r145", "r147", "r163", "r268" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.", "label": "Gross Profit", "totalLabel": "Gross profit" } } }, "localname": "GrossProfit", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": { "auth_ref": [ "r62", "r138", "r140", "r142", "r145", "r147", "r290", "r296", "r299", "r308" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.", "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest", "totalLabel": "Income before provision for income taxes" } } }, "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeStatementAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Income Statement [Abstract]" } } }, "localname": "IncomeStatementAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxCreditsAndAdjustments": { "auth_ref": [ "r79" ], "calculation": { "http://taylordevices.com/role/IncomeTaxesTableDetails": { "order": 2.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "A credit or adjustment for government or taxing authority authorized decrease in taxes owed as a result of meeting certain tax policy conditions.", "label": "Income Tax Credits and Adjustments", "totalLabel": "Total deferred tax provision" } } }, "localname": "IncomeTaxCreditsAndAdjustments", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Income Tax Disclosure [Abstract]" } } }, "localname": "IncomeTaxDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxDisclosureTextBlock": { "auth_ref": [ "r236", "r237", "r239", "r250", "r255", "r257", "r258", "r259" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.", "label": "Income Tax Disclosure [Text Block]" } } }, "localname": "IncomeTaxDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxes" ], "xbrltype": "textBlockItemType" }, "us-gaap_IncomeTaxExpenseBenefit": { "auth_ref": [ "r89", "r107", "r108", "r137", "r234", "r251", "r256", "r309" ], "calculation": { "http://taylordevices.com/role/IncomeTaxesTableDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails": { "order": null, "parentTag": null, "root": true, "weight": null }, "http://taylordevices.com/role/StatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_NetIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.", "label": "Provision for income taxes", "totalLabel": "Total tax provision" } } }, "localname": "IncomeTaxExpenseBenefit", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails", "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails", "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxExpenseBenefitContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Current tax provision:" } } }, "localname": "IncomeTaxExpenseBenefitContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTableDetails" ], "xbrltype": "stringItemType" }, "us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate": { "auth_ref": [ "r229", "r235" ], "calculation": { "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails": { "order": 4.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount 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 increase (decrease) in the income tax rates.", "label": "Foreign-derived intangible income deduction" } } }, "localname": "IncomeTaxReconciliationChangeInEnactedTaxRate", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": { "auth_ref": [ "r235" ], "calculation": { "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails": { "order": 1.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.", "label": "Computed tax provision at the expected statutory rate" } } }, "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationNondeductibleExpense": { "auth_ref": [ "r235" ], "calculation": { "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails": { "order": 5.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to nondeductible expenses.", "label": "Other permanent differences" } } }, "localname": "IncomeTaxReconciliationNondeductibleExpense", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationNondeductibleExpenseOther": { "auth_ref": [ "r235" ], "calculation": { "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails": { "order": 6.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount 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 other nondeductible expenses.", "label": "Other" } } }, "localname": "IncomeTaxReconciliationNondeductibleExpenseOther", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes": { "auth_ref": [ "r235" ], "calculation": { "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails": { "order": 2.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount 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 state and local income tax expense (benefit).", "label": "State income tax - net of Federal tax benefit" } } }, "localname": "IncomeTaxReconciliationStateAndLocalIncomeTaxes", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxReconciliationTaxCreditsResearch": { "auth_ref": [ "r235" ], "calculation": { "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails": { "order": 3.0, "parentTag": "us-gaap_IncomeTaxExpenseBenefit", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount 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 research tax credit.", "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Research, Amount", "negatedLabel": "Research tax credits" } } }, "localname": "IncomeTaxReconciliationTaxCreditsResearch", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ReconciliationOfIncomeTaxStatutoryRateToEffectiveRateDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncomeTaxesPaid": { "auth_ref": [ "r75", "r82" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income.", "label": "Income taxes paid" } } }, "localname": "IncomeTaxesPaid", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SupplementalCashFlowInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsPayableTrade": { "auth_ref": [ "r77" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 11.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Change in recurring obligations of a business that arise from the acquisition of merchandise, materials, supplies and services used in the production and sale of goods and services.", "label": "Increase (Decrease) in Accounts Payable, Trade", "verboseLabel": "Accounts payable" } } }, "localname": "IncreaseDecreaseInAccountsPayableTrade", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInAccountsReceivable": { "auth_ref": [ "r77" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 6.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.", "label": "Accounts and other receivables" } } }, "localname": "IncreaseDecreaseInAccountsReceivable", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInBillingInExcessOfCostOfEarnings": { "auth_ref": [ "r77" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 14.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period in the liability reflecting cash payments received before the related costs have been incurred.", "label": "Increase (Decrease) in Billing in Excess of Cost of Earnings", "verboseLabel": "Billings in excess of costs and estimated earnings" } } }, "localname": "IncreaseDecreaseInBillingInExcessOfCostOfEarnings", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInInventories": { "auth_ref": [ "r77" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 7.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.", "label": "Increase (Decrease) in Inventories", "verboseLabel": "Inventory" } } }, "localname": "IncreaseDecreaseInInventories", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOtherAccruedLiabilities": { "auth_ref": [ "r77" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 13.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period in other expenses incurred but not yet paid.", "label": "Increase (Decrease) in Other Accrued Liabilities", "verboseLabel": "Other accrued expenses" } } }, "localname": "IncreaseDecreaseInOtherAccruedLiabilities", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInOtherOperatingLiabilities": { "auth_ref": [ "r77" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 12.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of increase (decrease) in operating liabilities classified as other.", "label": "Increase (Decrease) in Other Operating Liabilities", "verboseLabel": "Accrued commissions" } } }, "localname": "IncreaseDecreaseInOtherOperatingLiabilities", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInPrepaidExpense": { "auth_ref": [ "r77" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 8.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period in the amount of outstanding money paid in advance for goods or services that bring economic benefits for future periods.", "label": "Increase (Decrease) in Prepaid Expense", "verboseLabel": "Prepaid expenses" } } }, "localname": "IncreaseDecreaseInPrepaidExpense", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInPrepaidTaxes": { "auth_ref": [ "r77" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 9.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of increase (decrease) of consideration paid in advance for income and other taxes that provide economic benefits in future periods.", "label": "Increase (Decrease) in Prepaid Taxes", "verboseLabel": "Prepaid income taxes" } } }, "localname": "IncreaseDecreaseInPrepaidTaxes", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncreaseDecreaseInUnbilledReceivables": { "auth_ref": [ "r77" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 10.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The increase (decrease) during the reporting period of the amount of revenue for work performed for which billing has not occurred, net of uncollectible accounts.", "label": "Increase (Decrease) in Unbilled Receivables", "verboseLabel": "Costs and estimated earnings in excess of billings" } } }, "localname": "IncreaseDecreaseInUnbilledReceivables", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": { "auth_ref": [ "r111", "r112", "r113", "r116" ], "calculation": { "http://taylordevices.com/role/EarningsPerCommonShareTableDetails": { "order": 2.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-US": { "role": { "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.", "label": "Common shares issuable under stock option plans" } } }, "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/EarningsPerCommonShareTableDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_InitialApplicationPeriodCumulativeEffectTransitionAxis": { "auth_ref": [ "r197" ], "lang": { "en-US": { "role": { "documentation": "Information about effect of transition method for cumulative effect in initial period of application.", "label": "Initial Application Period Cumulative Effect Transition [Axis]" } } }, "localname": "InitialApplicationPeriodCumulativeEffectTransitionAxis", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_InitialApplicationPeriodCumulativeEffectTransitionDomain": { "auth_ref": [ "r197" ], "lang": { "en-US": { "role": { "documentation": "Effect of transition method for cumulative effect in initial period of application." } } }, "localname": "InitialApplicationPeriodCumulativeEffectTransitionDomain", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_InterestIncomeExpenseNet": { "auth_ref": [ "r298" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The net amount of operating interest income (expense).", "label": "Interest, net" } } }, "localname": "InterestIncomeExpenseNet", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_InterestPaid": { "auth_ref": [ "r82" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of cash paid for interest, including, but not limited to, capitalized interest and payment to settle zero-coupon bond attributable to accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount; classified as operating and investing activities.", "label": "Interest paid" } } }, "localname": "InterestPaid", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SupplementalCashFlowInformationDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryDisclosureAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Inventory Disclosure [Abstract]" } } }, "localname": "InventoryDisclosureAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_InventoryDisclosureTextBlock": { "auth_ref": [ "r178" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.", "label": "Inventory Disclosure [Text Block]" } } }, "localname": "InventoryDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/Inventory" ], "xbrltype": "textBlockItemType" }, "us-gaap_InventoryFinishedGoods": { "auth_ref": [ "r50" ], "calculation": { "http://taylordevices.com/role/InventoryTableDetails": { "order": 3.0, "parentTag": "us-gaap_InventoryGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before valuation and LIFO reserves of completed merchandise or goods expected to be sold within one year or operating cycle, if longer.", "label": "Finished goods" } } }, "localname": "InventoryFinishedGoods", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryForLongTermContractsOrPrograms": { "auth_ref": [ "r54" ], "calculation": { "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails": { "order": 1.0, "parentTag": "tayd_CostsAndEstimatedEarningsOnUncompletedContractsOrPrograms", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before valuation and LIFO reserves, and progress payments, of inventory associated with long-term contracts, expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Costs incurred on uncompleted contracts" } } }, "localname": "InventoryForLongTermContractsOrPrograms", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsComponentsTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryGross": { "auth_ref": [ "r53" ], "calculation": { "http://taylordevices.com/role/InventoryTableDetails": { "order": 1.0, "parentTag": "us-gaap_InventoryNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Gross amount, as of the balance sheet date, of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.", "label": "Inventory, Gross", "totalLabel": "Gross inventory" } } }, "localname": "InventoryGross", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryNet": { "auth_ref": [ "r2", "r53" ], "calculation": { "http://taylordevices.com/role/InventoryTableDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Inventory, Net", "totalLabel": "Net inventory" } } }, "localname": "InventoryNet", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryNoncurrent": { "auth_ref": [ "r56" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 2.0, "parentTag": "us-gaap_Assets", "weight": 1.0 }, "http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Inventories not expected to be converted to cash, sold or exchanged within the normal operating cycle.", "label": "Maintenance and other inventory, net", "totalLabel": "Maintenance and other inventory, net" } } }, "localname": "InventoryNoncurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryPartsAndComponentsNetOfReserves": { "auth_ref": [ "r53", "r177" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 4.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date for elements of machinery or equipment held for the purpose of replacing similar parts in the course of repair or maintenance.", "label": "Inventory" } } }, "localname": "InventoryPartsAndComponentsNetOfReserves", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsBalanceSheetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryPolicyTextBlock": { "auth_ref": [ "r15", "r55", "r85", "r123", "r174", "r176", "r178" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost.", "label": "Inventory:" } } }, "localname": "InventoryPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_InventoryRawMaterials": { "auth_ref": [ "r52" ], "calculation": { "http://taylordevices.com/role/InventoryTableDetails": { "order": 1.0, "parentTag": "us-gaap_InventoryGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before valuation and LIFO reserves of raw materials expected to be sold, or consumed within one year or operating cycle, if longer.", "label": "Raw materials" } } }, "localname": "InventoryRawMaterials", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryValuationReserves": { "auth_ref": [ "r53", "r92", "r177" ], "calculation": { "http://taylordevices.com/role/InventoryTableDetails": { "order": 2.0, "parentTag": "us-gaap_InventoryNet", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of valuation reserve for inventory.", "label": "Less allowance for obsolescence" } } }, "localname": "InventoryValuationReserves", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryWorkInProcess": { "auth_ref": [ "r51" ], "calculation": { "http://taylordevices.com/role/InventoryTableDetails": { "order": 2.0, "parentTag": "us-gaap_InventoryGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before valuation and LIFO reserves of merchandise or goods in the production process expected to be completed within one year or operating cycle, if longer.", "label": "Work-in-process" } } }, "localname": "InventoryWorkInProcess", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_InventoryWriteDown": { "auth_ref": [ "r175" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 4.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of loss from reductions in inventory due to subsequent measurement adjustments, including, but not limited to, physical deterioration, obsolescence, or changes in price levels.", "label": "Provision for inventory obsolescence", "verboseLabel": "Provision for potentially obsolete inventory" } } }, "localname": "InventoryWriteDown", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/MaintenanceAndOtherInventoryDetailsNarrative", "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_Land": { "auth_ref": [ "r10", "r37" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 1.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before accumulated depletion of real estate held for productive use, excluding land held for sale.", "label": "Land" } } }, "localname": "Land", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LandImprovements": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 6.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before accumulated deprecation and depletion of additions or improvements to real estate held for productive use. Examples include, but are not limited to, walkways, driveways, fences, and parking lots.", "label": "Land improvements" } } }, "localname": "LandImprovements", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_LegalMattersAndContingenciesTextBlock": { "auth_ref": [ "r187" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for legal proceedings, legal contingencies, litigation, regulatory and environmental matters and other contingencies.", "label": "Legal Matters and Contingencies [Text Block]" } } }, "localname": "LegalMattersAndContingenciesTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/LegalProceedings" ], "xbrltype": "textBlockItemType" }, "us-gaap_LiabilitiesAndStockholdersEquity": { "auth_ref": [ "r30", "r88", "r163", "r268", "r293", "r304" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.", "label": "Liabilities and Equity", "totalLabel": "Total liabilities and stockholders\u2019 equity" } } }, "localname": "LiabilitiesAndStockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesAndStockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Liabilities and Stockholders' Equity" } } }, "localname": "LiabilitiesAndStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LiabilitiesCurrent": { "auth_ref": [ "r45", "r88", "r163", "r261", "r263", "r264", "r268" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.", "label": "Liabilities, Current", "totalLabel": "Total current liabilities" } } }, "localname": "LiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_LiabilitiesCurrentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Current liabilities:" } } }, "localname": "LiabilitiesCurrentAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_LifeInsuranceCorporateOrBankOwnedTextBlock": { "auth_ref": [ "r164" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for corporate (COLI) or bank (BOLI) owned life insurance including the amount of cash surrender value that could be received as of the date of the statement of financial position, any restrictions on the company's ability to obtain the value of the life insurance policy on surrender, or any other additional information desired to be disclosed.", "label": "Cash Value of Life Insurance:" } } }, "localname": "LifeInsuranceCorporateOrBankOwnedTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_LineOfCreditFacilityCurrentBorrowingCapacity": { "auth_ref": [ "r42" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of current borrowing capacity under the credit facility considering any current restrictions on the amount that could be borrowed (for example, borrowings may be limited by the amount of current assets), but without considering any amounts currently outstanding under the facility.", "label": "Line of Credit Facility, Current Borrowing Capacity" } } }, "localname": "LineOfCreditFacilityCurrentBorrowingCapacity", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/Short-termBorrowingsDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_LineOfCreditFacilityFairValueOfAmountOutstanding": { "auth_ref": [ "r267" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Fair value of the amount outstanding under the credit facility.", "label": "Line of credit outstanding balance" } } }, "localname": "LineOfCreditFacilityFairValueOfAmountOutstanding", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/Short-termBorrowingsDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": { "auth_ref": [ "r160" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for claims held for amounts due a entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses.", "label": "Loans, Notes, Trade and Other Receivables Disclosure [Text Block]" } } }, "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/AccountsAndOtherReceivables" ], "xbrltype": "textBlockItemType" }, "us-gaap_LongTermContractsOrProgramsDisclosureTextBlock": { "auth_ref": [ "r22", "r58", "r194", "r280", "r281", "r283", "r285" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for long-term contracts or programs.", "label": "Costs and estimated earnings on uncompleted contracts components table" } } }, "localname": "LongTermContractsOrProgramsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/CostsAndEstimatedEarningsOnUncompletedContractsTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_MachineryAndEquipmentGross": { "auth_ref": [ "r11", "r183" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 3.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before accumulated depreciation of tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment.", "label": "Machinery and equipment" } } }, "localname": "MachineryAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_MarketableSecuritiesPolicy": { "auth_ref": [ "r300" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for investment classified as marketable security.", "label": "Short-term Investments:" } } }, "localname": "MarketableSecuritiesPolicy", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NatureOfOperations": { "auth_ref": [ "r125", "r133" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for the nature of an entity's business, major products or services, principal markets including location, and the relative importance of its operations in each business and the basis for the determination, including but not limited to, assets, revenues, or earnings. For an entity that has not commenced principal operations, disclosures about the risks and uncertainties related to the activities in which the entity is currently engaged and an understanding of what those activities are being directed toward.", "label": "Nature of Operations:" } } }, "localname": "NatureOfOperations", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NetCashProvidedByUsedInContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Changes in other current assets and liabilities:" } } }, "localname": "NetCashProvidedByUsedInContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetCashProvidedByUsedInFinancingActivities": { "auth_ref": [ "r74" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.", "label": "Net Cash Provided by (Used in) Financing Activities", "totalLabel": "Net financing activities" } } }, "localname": "NetCashProvidedByUsedInFinancingActivities", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInInvestingActivities": { "auth_ref": [ "r74" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.", "label": "Net Cash Provided by (Used in) Investing Activities", "totalLabel": "Net investing activities" } } }, "localname": "NetCashProvidedByUsedInInvestingActivities", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivities": { "auth_ref": [ "r74", "r76", "r79" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease", "weight": 1.0 } }, "lang": { "en-US": { "role": { "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.", "label": "Net Cash Provided by (Used in) Operating Activities", "totalLabel": "Net operating activities" } } }, "localname": "NetCashProvidedByUsedInOperatingActivities", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_NetCashProvidedByUsedInOperatingActivitiesContinuingOperationsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "operating activities:" } } }, "localname": "NetCashProvidedByUsedInOperatingActivitiesContinuingOperationsAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "stringItemType" }, "us-gaap_NetIncomeLoss": { "auth_ref": [ "r0", "r59", "r60", "r63", "r79", "r88", "r97", "r102", "r103", "r104", "r105", "r107", "r108", "r114", "r138", "r140", "r142", "r145", "r147", "r163", "r268", "r297", "r307" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 }, "http://taylordevices.com/role/StatementsOfIncome": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.", "label": "Net income", "totalLabel": "Net income", "verboseLabel": "Net income (loss)" } } }, "localname": "NetIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails", "http://taylordevices.com/role/StatementsOfCashFlows", "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "New Accounting Pronouncements or Change in Accounting Principle [Line Items]" } } }, "localname": "NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsBalanceSheetDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails" ], "xbrltype": "stringItemType" }, "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.", "label": "New Accounting Standards:" } } }, "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_NonoperatingIncomeExpense": { "auth_ref": [ "r67" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The aggregate amount of income or expense from ancillary business-related activities (that is to say, excluding major activities considered part of the normal operations of the business).", "label": "Nonoperating Income (Expense)", "totalLabel": "Total other income" } } }, "localname": "NonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OperatingIncomeLoss": { "auth_ref": [ "r138", "r140", "r142", "r145", "r147" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The net result for the period of deducting operating expenses from operating revenues.", "label": "Operating Income (Loss)", "totalLabel": "Operating income" } } }, "localname": "OperatingIncomeLoss", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherAssetsDisclosureTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for other assets. This disclosure includes other current assets and other noncurrent assets.", "label": "Other Assets Disclosure [Text Block]" } } }, "localname": "OtherAssetsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/MaintenanceAndOtherInventory" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherGeneralAndAdministrativeExpense": { "auth_ref": [ "r66" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of general and administrative expense classified as other.", "label": "Shipping and handling costs" } } }, "localname": "OtherGeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherInventoryNoncurrent": { "auth_ref": [ "r56" ], "calculation": { "http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails": { "order": 1.0, "parentTag": "us-gaap_InventoryNoncurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Carrying amount as of the balance sheet date of inventories not expected to be converted to cash, sold or exchanged within the normal operating cycle (such as inventory related to long-term contracts or program rights).", "label": "Maintenance and other inventory" } } }, "localname": "OtherInventoryNoncurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/MaintenanceAndOtherInventoryTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherLiabilitiesCurrent": { "auth_ref": [ "r12", "r13", "r43" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer.", "label": "Other Liabilities, Current", "verboseLabel": "Other accrued expenses" } } }, "localname": "OtherLiabilitiesCurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsBalanceSheetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherLiabilitiesDisclosureTextBlock": { "auth_ref": [ "r44" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for other liabilities.", "label": "Sales Taxes:" } } }, "localname": "OtherLiabilitiesDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_OtherNonoperatingIncomeExpense": { "auth_ref": [ "r68" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_NonoperatingIncomeExpense", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of income (expense) related to nonoperating activities, classified as other.", "label": "Miscellaneous" } } }, "localname": "OtherNonoperatingIncomeExpense", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_OtherSellingGeneralAndAdministrativeExpense": { "auth_ref": [ "r66" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of selling, general and administrative expense classified as other.", "label": "Other Selling, General and Administrative Expense", "verboseLabel": "Shipping and handling costs" } } }, "localname": "OtherSellingGeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsForProceedsFromLifeInsurancePolicies": { "auth_ref": [ "r91" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The net cash outflow or inflow for net proceeds and payments derived from carrying life insurance policies for which the entity is the beneficiary.", "label": "Payments for (Proceeds from) Life Insurance Policies", "negatedLabel": "Increase in cash value of life insurance" } } }, "localname": "PaymentsForProceedsFromLifeInsurancePolicies", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquireAvailableForSaleSecuritiesDebt": { "auth_ref": [ "r69", "r70", "r162" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of cash outflow to acquire investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).", "label": "Payments to Acquire Debt Securities, Available-for-sale", "negatedLabel": "Increase in short-term investments" } } }, "localname": "PaymentsToAcquireAvailableForSaleSecuritiesDebt", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": { "auth_ref": [ "r71" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities", "weight": -1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.", "label": "Payments to Acquire Property, Plant, and Equipment", "negatedLabel": "Acquisition of property and equipment" } } }, "localname": "PaymentsToAcquirePropertyPlantAndEquipment", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_PensionExpense": { "auth_ref": [], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of cost (reversal of cost) for pension benefits. Excludes other postretirement benefits.", "label": "Pension Cost (Reversal of Cost)" } } }, "localname": "PensionExpense", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/RetirementPlanDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_PolicyholderAccountBalanceLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Policyholder Account Balance [Line Items]" } } }, "localname": "PolicyholderAccountBalanceLineItems", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_PreferredStockSharesAuthorized": { "auth_ref": [ "r20" ], "lang": { "en-US": { "role": { "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.", "label": "Preferred shares authorized" } } }, "localname": "PreferredStockSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PreferredStockDetailsNarrative" ], "xbrltype": "sharesItemType" }, "us-gaap_PreferredStockTextBlock": { "auth_ref": [ "r193" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for terms, amounts, nature of changes, rights and privileges, dividends, and other matters related to preferred stock.", "label": "Preferred Stock [Text Block]" } } }, "localname": "PreferredStockTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PreferredStock" ], "xbrltype": "textBlockItemType" }, "us-gaap_PrepaidExpenseCurrent": { "auth_ref": [ "r4", "r7", "r180", "r181" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 5.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits within a future period of one year or the normal operating cycle, if longer.", "label": "Prepaid expenses" } } }, "localname": "PrepaidExpenseCurrent", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_PrepaidTaxes": { "auth_ref": [ "r5", "r7", "r179", "r181" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 6.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of asset related to consideration paid in advance for income and other taxes that provide economic benefits within a future period of one year or the normal operating cycle, if longer.", "label": "Prepaid income taxes" } } }, "localname": "PrepaidTaxes", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromBankDebt": { "auth_ref": [ "r73" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 1.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The cash inflow from bank borrowing during the year.", "label": "Proceeds from bank debt", "verboseLabel": "Short-term borrowings" } } }, "localname": "ProceedsFromBankDebt", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/Short-termBorrowingsDetailsNarrative", "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromIssuanceOfCommonStock": { "auth_ref": [ "r72" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 2.0, "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The cash inflow from the additional capital contribution to the entity.", "label": "Proceeds from issuance of common stock" } } }, "localname": "ProceedsFromIssuanceOfCommonStock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans": { "auth_ref": [ "r72", "r217" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of cash inflow from issuance of shares under share-based payment arrangement. Excludes option exercised.", "label": "Proceeds exercise of options" } } }, "localname": "ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlans", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Property, Plant and Equipment [Abstract]" } } }, "localname": "PropertyPlantAndEquipmentAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": { "auth_ref": [ "r186", "r323", "r324", "r325" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.", "label": "Property, Plant and Equipment Disclosure [Text Block]" } } }, "localname": "PropertyPlantAndEquipmentDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipment" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentGross": { "auth_ref": [ "r37", "r183" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 1.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentNet", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property, Plant and Equipment, Gross", "totalLabel": "Gross property and equipment" } } }, "localname": "PropertyPlantAndEquipmentGross", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentNet": { "auth_ref": [ "r17", "r18", "r185", "r305" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 3.0, "parentTag": "us-gaap_Assets", "weight": 1.0 }, "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures.", "label": "Property and equipment, net", "totalLabel": "Property and equipment, net" } } }, "localname": "PropertyPlantAndEquipmentNet", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentOther": { "auth_ref": [ "r185" ], "calculation": { "http://taylordevices.com/role/PropertyAndEquipmentTableDetails": { "order": 5.0, "parentTag": "us-gaap_PropertyPlantAndEquipmentGross", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount before accumulated depreciation, depletion and amortization of other physical assets used in the normal conduct of business to produce goods and services and not intended for resale.", "label": "Autos and trucks" } } }, "localname": "PropertyPlantAndEquipmentOther", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": { "auth_ref": [ "r36", "r85", "r185", "r323", "r324" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.", "label": "Property and Equipment:" } } }, "localname": "PropertyPlantAndEquipmentPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_PropertyPlantAndEquipmentTextBlock": { "auth_ref": [ "r17", "r185" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.", "label": "Property and equipment table" } } }, "localname": "PropertyPlantAndEquipmentTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/PropertyAndEquipmentTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ReceivablesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Receivables [Abstract]" } } }, "localname": "ReceivablesAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_ReceivablesFromCustomers": { "auth_ref": [ "r291" ], "calculation": { "http://taylordevices.com/role/AccountsReceivableTableDetails": { "order": 1.0, "parentTag": "us-gaap_AccountsReceivableGrossCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount due from customers for fees and charges arising from transactions related to the entity's brokerage activities and operations.", "label": "Customers" } } }, "localname": "ReceivablesFromCustomers", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/AccountsReceivableTableDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RegulatoryIncomeTaxesPolicy": { "auth_ref": [ "r85", "r326", "r327" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for income taxes, including investment tax credits, and the related regulatory treatment (for example, whether deferred income tax accounting - normalization - is allowed in rate making).", "label": "Income Taxes:" } } }, "localname": "RegulatoryIncomeTaxesPolicy", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RelatedPartyTransactionsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Related Party Transactions [Abstract]" } } }, "localname": "RelatedPartyTransactionsAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_RelatedPartyTransactionsDisclosureTextBlock": { "auth_ref": [ "r275", "r276", "r277", "r278", "r279" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for related party transactions. Examples of related party transactions include transactions between (a) a parent company and its subsidiary; (b) subsidiaries of a common parent; (c) and entity and its principal owners; and (d) affiliates.", "label": "Related Party Transactions Disclosure [Text Block]" } } }, "localname": "RelatedPartyTransactionsDisclosureTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/RelatedPartyTransactions" ], "xbrltype": "textBlockItemType" }, "us-gaap_ResearchAndDevelopmentExpense": { "auth_ref": [ "r228", "r328" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The aggregate costs incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process whether intended for sale or the entity's use, during the reporting period charged to research and development projects, including the costs of developing computer software up to the point in time of achieving technological feasibility, and costs allocated in accounting for a business combination to in-process projects deemed to have no alternative future use.", "label": "Research and development costs" } } }, "localname": "ResearchAndDevelopmentExpense", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_ResearchAndDevelopmentExpensePolicy": { "auth_ref": [ "r85", "r228" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for costs it has incurred (1) in a planned search or critical investigation aimed at discovery of new knowledge with the hope that such knowledge will be useful in developing a new product or service, a new process or technique, or in bringing about a significant improvement to an existing product or process; or (2) to translate research findings or other knowledge into a plan or design for a new product or process or for a significant improvement to an existing product or process.", "label": "Research and Development Costs:" } } }, "localname": "ResearchAndDevelopmentExpensePolicy", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_RetainedEarningsAccumulatedDeficit": { "auth_ref": [ "r27", "r189", "r225", "r303", "r317", "r322" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 3.0, "parentTag": "us-gaap_StockholdersEquityBeforeTreasuryStock", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained earnings" } } }, "localname": "RetainedEarningsAccumulatedDeficit", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsBalanceSheetDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_RetainedEarningsMember": { "auth_ref": [ "r94", "r95", "r96", "r98", "r106", "r108", "r168", "r222", "r223", "r224", "r248", "r249", "r313", "r315" ], "lang": { "en-US": { "role": { "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.", "label": "Retained Earnings [Member]" } } }, "localname": "RetainedEarningsMember", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Revenue, Initial Application Period Cumulative Effect Transition [Line Items]" } } }, "localname": "RevenueInitialApplicationPeriodCumulativeEffectTransitionLineItems", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueInitialApplicationPeriodCumulativeEffectTransitionTable": { "auth_ref": [ "r197" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of information when using transition method for cumulative effect in initial period of application for revenue from contract with customer.", "label": "Revenue, Initial Application Period Cumulative Effect Transition [Table]" } } }, "localname": "RevenueInitialApplicationPeriodCumulativeEffectTransitionTable", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ImpactOfAdoptionOfStandardsRelatedToRevenueRecognitionDetails" ], "xbrltype": "stringItemType" }, "us-gaap_RevenueRecognitionPolicyTextBlock": { "auth_ref": [ "r86", "r87" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources.", "label": "Revenue Recognition:" } } }, "localname": "RevenueRecognitionPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_Revenues": { "auth_ref": [ "r61", "r88", "r134", "r135", "r139", "r143", "r144", "r148", "r149", "r150", "r163", "r268", "r299" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 1.0, "parentTag": "us-gaap_GrossProfit", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of revenue, and sales and trading gain (loss).", "label": "Sales, net" } } }, "localname": "Revenues", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails", "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails", "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_RisksAndUncertaintiesAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Risks and Uncertainties [Abstract]" } } }, "localname": "RisksAndUncertaintiesAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": { "auth_ref": [ "r49" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.", "label": "Accounts receivable table" } } }, "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/AccountsAndOtherReceivablesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of supplemental cash flow information for the periods presented.", "label": "Supplemental cash flow information" } } }, "localname": "ScheduleOfCashFlowSupplementalDisclosuresTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/CashFlowsInformationTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": { "auth_ref": [ "r245" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.", "label": "Income Taxes Table" } } }, "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfCostsOfRetirementPlansTableTextBlock": { "auth_ref": [ "r199" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the costs related to the various types of retirement plans including defined benefit pension plan cost, defined contribution plan cost, other postretirement benefit plan cost, and net periodic benefit cost.", "label": "Schedule of Costs of Retirement Plans [Table Text Block]" } } }, "localname": "ScheduleOfCostsOfRetirementPlansTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/RetirementPlan" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": { "auth_ref": [ "r116" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.", "label": "Earnings per common share table" } } }, "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/EarningsPerCommonShareTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": { "auth_ref": [ "r235" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.", "label": "Reconciliation of income tax statutory rate to effective rate" } } }, "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": { "auth_ref": [ "r15", "r31", "r32", "r33" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.", "label": "Inventory table" } } }, "localname": "ScheduleOfInventoryCurrentTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/InventoryTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfInventoryNoncurrentTableTextBlock": { "auth_ref": [ "r15", "r31", "r32", "r33", "r34" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of inventories not expected to be converted to cash, sold or exchanged within the normal operating cycle including inventoried costs relating to long-term contracts or programs.", "label": "Maintenance and other inventory table" } } }, "localname": "ScheduleOfInventoryNoncurrentTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/MaintenanceAndOtherInventoryTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfLineOfCreditFacilitiesTextBlock": { "auth_ref": [ "r42", "r90" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of short-term or long-term contractual arrangements with lenders, including letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line.", "label": "Schedule of Line of Credit Facilities [Table Text Block]" } } }, "localname": "ScheduleOfLineOfCreditFacilitiesTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/Short-termBorrowings" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": { "auth_ref": [ "r101", "r104", "r121", "r122" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of changes in accounting principles, including adoption of new accounting pronouncements, that describes the new methods, amount and effects on financial statement line items.", "label": "Impact of Adoption of Standards Related to Revenue Recognition" } } }, "localname": "ScheduleOfNewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock": { "auth_ref": [ "r215" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of employee stock purchase plan activity.", "label": "Schedule of Share-based Compensation, Employee Stock Purchase Plan, Activity [Table Text Block]" } } }, "localname": "ScheduleOfShareBasedCompensationEmployeeStockPurchasePlanActivityTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/EmployeeStockPurchasePlan" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable": { "auth_ref": [ "r216" ], "lang": { "en-US": { "role": { "documentation": "Details comprising a table providing supplementary information on outstanding and exercisable share awards as of the balance sheet date which stratifies outstanding options by ranges of exercise prices.", "label": "Share-based Payment Arrangement, Option, Exercise Price Range [Table]" } } }, "localname": "ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock": { "auth_ref": [ "r216" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of option exercise prices, by grouped ranges, including the upper and lower limits of the price range, the number of shares under option, weighted average exercise price and remaining contractual option terms.", "label": "Share-based Payment Arrangement, Option, Exercise Price Range [Table Text Block]" } } }, "localname": "ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ScheduleOfStockOptionsRollForwardTableTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the change in stock options.", "label": "Stock options roll foward" } } }, "localname": "ScheduleOfStockOptionsRollForwardTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_SellingGeneralAndAdministrativeExpense": { "auth_ref": [ "r66" ], "calculation": { "http://taylordevices.com/role/StatementsOfIncome": { "order": 2.0, "parentTag": "us-gaap_OperatingIncomeLoss", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.", "label": "Selling, general and administrative expenses" } } }, "localname": "SellingGeneralAndAdministrativeExpense", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfIncome" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensation": { "auth_ref": [ "r77" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of noncash expense for share-based payment arrangement.", "label": "Share based compensation expense" } } }, "localname": "ShareBasedCompensation", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesDetailsNarrative" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": { "auth_ref": [ "r213" ], "lang": { "en-US": { "role": { "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.", "label": "Expected dividend yield" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTableDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": { "auth_ref": [ "r212" ], "lang": { "en-US": { "role": { "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.", "label": "Expected volatility" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTableDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": { "auth_ref": [ "r214" ], "lang": { "en-US": { "role": { "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares.", "label": "Risk-free interest rate" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTableDetails" ], "xbrltype": "percentItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": { "auth_ref": [ "r201" ], "lang": { "en-US": { "role": { "documentation": "Number of shares authorized for issuance under share-based payment arrangement.", "label": "Common shares reserved for stock options" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansDetailsNarrative" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": { "auth_ref": [ "r216" ], "lang": { "en-US": { "role": { "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.", "label": "Shares available" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansDetailsNarrative" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod": { "auth_ref": [ "r207" ], "lang": { "en-US": { "role": { "documentation": "Number of options or other stock instruments for which the right to exercise has lapsed under the terms of the plan agreements.", "label": "Stock options expired" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Gross number of share options (or share units) granted during the period.", "label": "Options granted" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": { "auth_ref": [ "r209" ], "lang": { "en-US": { "role": { "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansDetailsNarrative" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock": { "auth_ref": [ "r209" ], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the weighted-average grant-date fair value of equity options or other equity instruments granted during the year.", "label": "Stock option plans table" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValueTableTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTables" ], "xbrltype": "textBlockItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": { "auth_ref": [ "r216" ], "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.", "label": "Intrinsic value of options outstanding" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": { "auth_ref": [ "r204", "r216" ], "lang": { "en-US": { "role": { "documentation": "Number of options outstanding, including both vested and non-vested options.", "label": "Stock options outstanding", "verboseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Number" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails", "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": { "auth_ref": [ "r203" ], "lang": { "en-US": { "role": { "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price" } } }, "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails", "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares.", "label": "Weighted average exercise price of options exercised" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Weighted average price at which grantees could have acquired the underlying shares with respect to stock options of the plan that expired.", "label": "Weighted average exercise price of options expired" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.", "label": "Weighted average exercise price of options granted" } } }, "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": { "auth_ref": [ "r85", "r200", "r202" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost.", "label": "Stock-Based Compensation:" } } }, "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis": { "auth_ref": [ "r210" ], "lang": { "en-US": { "role": { "documentation": "Information by range of option prices pertaining to options granted.", "label": "Exercise Price Range [Axis]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeAxis", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain": { "auth_ref": [ "r215" ], "lang": { "en-US": { "role": { "documentation": "Supplementary information on outstanding and exercisable share awards as of the balance sheet date which stratifies outstanding options by ranges of exercise prices." } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeDomain", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "domainItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Share-based Payment Arrangement, Option, Exercise Price Range [Line Items]" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "stringItemType" }, "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions": { "auth_ref": [ "r208" ], "lang": { "en-US": { "role": { "documentation": "The number of shares reserved for issuance pertaining to the outstanding exercisable stock options as of the balance sheet date in the customized range of exercise prices for which the market and performance vesting condition has been satisfied.", "label": "Share-based Payment Arrangement, Option, Exercise Price Range, Shares Exercisable" } } }, "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeNumberOfExercisableOptions", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_SharePrice": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Price of a single share of a number of saleable stocks of a company.", "label": "Price per share of common" } } }, "localname": "SharePrice", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansDetailsNarrative" ], "xbrltype": "perShareItemType" }, "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": { "auth_ref": [ "r211", "r226" ], "lang": { "en-US": { "role": { "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.", "label": "Share-based Compensation Arrangement by Share-based Payment Award, Fair Value Assumptions, Expected Term" } } }, "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlansTableDetails" ], "xbrltype": "durationItemType" }, "us-gaap_SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1": { "auth_ref": [ "r205" ], "lang": { "en-US": { "role": { "documentation": "Weighted average exercise price as of the balance sheet date for those equity-based payment arrangements exercisable and outstanding.", "label": "Share-based Payment Arrangement, Option, Exercise Price Range, Exercisable, Weighted Average Exercise Price" } } }, "localname": "SharebasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeExercisableOptionsWeightedAverageExercisePrice1", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionPlans-StockOptionsOutstandingAndExercisableDetails" ], "xbrltype": "perShareItemType" }, "us-gaap_ShippingAndHandlingCostPolicyTextBlock": { "auth_ref": [ "r84", "r85" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for the classification of shipping and handling costs, including whether the costs are included in cost of sales or included in other income statement accounts. If shipping and handling fees are significant and are not included in cost of sales, disclosure includes both the amounts of such costs and the line item on the income statement which includes such costs.", "label": "Shipping and Handling Costs:" } } }, "localname": "ShippingAndHandlingCostPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_ShortTermBankLoansAndNotesPayable": { "auth_ref": [ "r40", "r306" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 1.0, "parentTag": "us-gaap_LiabilitiesCurrent", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Amount of borrowings from a bank classified as other, maturing within one year or operating cycle, if longer.", "label": "Short-term borrowings" } } }, "localname": "ShortTermBankLoansAndNotesPayable", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_ShortTermInvestments": { "auth_ref": [ "r19", "r294", "r295", "r301" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 2.0, "parentTag": "us-gaap_AssetsCurrent", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of investments including trading securities, available-for-sale securities, held-to-maturity securities, and short-term investments classified as other and current.", "label": "Short-term investments" } } }, "localname": "ShortTermInvestments", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_SignificantAccountingPoliciesTextBlock": { "auth_ref": [ "r93" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.", "label": "Significant Accounting Policies [Text Block]" } } }, "localname": "SignificantAccountingPoliciesTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_StatementEquityComponentsAxis": { "auth_ref": [ "r47", "r94", "r95", "r96", "r98", "r106", "r108", "r124", "r168", "r188", "r189", "r222", "r223", "r224", "r248", "r249", "r269", "r270", "r271", "r272", "r273", "r274", "r313", "r314", "r315" ], "lang": { "en-US": { "role": { "documentation": "Information by component of equity.", "label": "Equity Components [Axis]" } } }, "localname": "StatementEquityComponentsAxis", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementLineItems": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.", "label": "Statement [Line Items]" } } }, "localname": "StatementLineItems", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity" ], "xbrltype": "stringItemType" }, "us-gaap_StatementOfCashFlowsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Statement of Cash Flows [Abstract]" } } }, "localname": "StatementOfCashFlowsAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfFinancialPositionAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Statement of Financial Position [Abstract]" } } }, "localname": "StatementOfFinancialPositionAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementOfStockholdersEquityAbstract": { "auth_ref": [], "localname": "StatementOfStockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_StatementTable": { "auth_ref": [ "r94", "r95", "r96", "r124", "r286" ], "lang": { "en-US": { "role": { "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.", "label": "Statement [Table]" } } }, "localname": "StatementTable", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsBalanceSheetDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails", "http://taylordevices.com/role/SalesByMajorCustomerTypeDetails" ], "xbrltype": "stringItemType" }, "us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans": { "auth_ref": [ "r20", "r21", "r188", "r189" ], "lang": { "en-US": { "role": { "documentation": "Number of shares issued during the period as a result of an employee stock purchase plan.", "label": "Common shares issued from employee stock purchase plan" } } }, "localname": "StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/EmployeeStockPurchasePlanDetailsNarrative" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": { "auth_ref": [ "r20", "r21", "r188", "r189", "r206" ], "lang": { "en-US": { "role": { "documentation": "Number of share options (or share units) exercised during the current period.", "label": "Stock options exercised" } } }, "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StockOptionsRollFowardDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_StockIssuedDuringPeriodValueEmployeeBenefitPlan": { "auth_ref": [], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Value of shares issued during the period to an employee benefit plan, such as a defined contribution or defined benefit plan.", "label": "Common stock issued for employee stock option plan" } } }, "localname": "StockIssuedDuringPeriodValueEmployeeBenefitPlan", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan": { "auth_ref": [ "r20", "r21", "r188", "r189" ], "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Aggregate change in value for stock issued during the period as a result of employee stock purchase plan.", "label": "Common stock issued for employee stock purchase plan" } } }, "localname": "StockIssuedDuringPeriodValueEmployeeStockPurchasePlan", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockOptionPlanExpense": { "auth_ref": [ "r78" ], "calculation": { "http://taylordevices.com/role/StatementsOfCashFlows": { "order": 3.0, "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities", "weight": 1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "documentation": "Amount of noncash expense for option under share-based payment arrangement.", "label": "Stock or Unit Option Plan Expense", "verboseLabel": "Stock options issued for services" } } }, "localname": "StockOptionPlanExpense", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/StatementsOfCashFlows" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquity": { "auth_ref": [ "r21", "r28", "r29", "r88", "r159", "r163", "r268" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 2.0, "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.", "label": "Stockholders' Equity Attributable to Parent", "periodEndLabel": "Ending balance, value", "periodStartLabel": "Beginning balance, value", "totalLabel": "Total stockholders' equity" } } }, "localname": "StockholdersEquity", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets", "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity" ], "xbrltype": "monetaryItemType" }, "us-gaap_StockholdersEquityAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Stockholders' Equity:" } } }, "localname": "StockholdersEquityAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "stringItemType" }, "us-gaap_StockholdersEquityBeforeTreasuryStock": { "auth_ref": [], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 1.0, "parentTag": "us-gaap_StockholdersEquity", "weight": 1.0 } }, "crdr": "credit", "lang": { "en-US": { "role": { "documentation": "Total amount of stockholders' equity (deficit) items including stock value, paid in capital, retained earnings and including equity attributable to noncontrolling interests and before deducting the carrying value of treasury stock.", "label": "Stockholders' Equity before Treasury Stock", "totalLabel": "Stockholders\u2019 equity before treasury stock" } } }, "localname": "StockholdersEquityBeforeTreasuryStock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_SubsequentEventsPolicyPolicyTextBlock": { "auth_ref": [ "r85" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for reporting subsequent events.", "label": "Subsequent Events:" } } }, "localname": "SubsequentEventsPolicyPolicyTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_SupplementalCashFlowElementsAbstract": { "auth_ref": [], "lang": { "en-US": { "role": { "label": "Supplemental Cash Flow Elements [Abstract]" } } }, "localname": "SupplementalCashFlowElementsAbstract", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "xbrltype": "stringItemType" }, "us-gaap_TaxCreditCarryforwardExpirationDate": { "auth_ref": [ "r240" ], "lang": { "en-US": { "role": { "documentation": "Expiration date of the tax credit carryforward, in CCYY-MM-DD format.", "label": "Tax Credit Carryforward, Expiration Date" } } }, "localname": "TaxCreditCarryforwardExpirationDate", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/IncomeTaxesDetailsNarrative" ], "xbrltype": "dateItemType" }, "us-gaap_TradeAndOtherAccountsReceivablePolicy": { "auth_ref": [ "r153", "r154", "r155", "r156", "r158", "r161" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for accounts receivable.", "label": "Accounts Receivable [Policy Text Block]" } } }, "localname": "TradeAndOtherAccountsReceivablePolicy", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_TreasuryStockMember": { "auth_ref": [ "r46", "r190" ], "lang": { "en-US": { "role": { "documentation": "Shares of an entity that have been repurchased by the entity. This stock has no voting rights and receives no dividends. Note that treasury stock may be recorded at its total cost or separately as par (or stated) value and additional paid in capital. Classified within stockholders' equity if nonredeemable or redeemable solely at the option of the issuer. Classified within temporary equity if redemption is outside the control of the issuer.", "label": "Treasury Stock [Member]" } } }, "localname": "TreasuryStockMember", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/ConssolidatedStatementsOfStockholdersEquity" ], "xbrltype": "domainItemType" }, "us-gaap_TreasuryStockShares": { "auth_ref": [ "r46", "r190" ], "lang": { "en-US": { "role": { "documentation": "Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.", "label": "Treasury Stock, Shares", "verboseLabel": "Treasury Stock" } } }, "localname": "TreasuryStockShares", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheetsParenthetical", "http://taylordevices.com/role/TreasuryStockDetailsNarrative" ], "xbrltype": "sharesItemType" }, "us-gaap_TreasuryStockTextBlock": { "auth_ref": [ "r192" ], "lang": { "en-US": { "role": { "documentation": "The entire disclosure for treasury stock, including, but not limited to, average cost per share, description of share repurchase program, shares repurchased, shares held for each class of treasury stock.", "label": "Treasury Stock [Text Block]" } } }, "localname": "TreasuryStockTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/TreasuryStock" ], "xbrltype": "textBlockItemType" }, "us-gaap_TreasuryStockValue": { "auth_ref": [ "r46", "r190", "r191" ], "calculation": { "http://taylordevices.com/role/BalanceSheets": { "order": 2.0, "parentTag": "us-gaap_StockholdersEquity", "weight": -1.0 } }, "crdr": "debit", "lang": { "en-US": { "role": { "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.", "label": "Treasury Stock, Value", "negatedLabel": "Treasury stock - 550,872 shares at cost" } } }, "localname": "TreasuryStockValue", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/BalanceSheets" ], "xbrltype": "monetaryItemType" }, "us-gaap_TypeOfAdoptionMember": { "auth_ref": [ "r97", "r98", "r99", "r100", "r165", "r166", "r167", "r168", "r169", "r170", "r218", "r219", "r220", "r221", "r222", "r223", "r224", "r225", "r246", "r247", "r248", "r249", "r287", "r288", "r289", "r311", "r312", "r313", "r314", "r315", "r316", "r317", "r318", "r319", "r320", "r321", "r322" ], "lang": { "en-US": { "role": { "documentation": "Amendment to accounting standards." } } }, "localname": "TypeOfAdoptionMember", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsBalanceSheetDetails", "http://taylordevices.com/role/RevenueImpactOnFinancialStatementsIncomeStatementDetails" ], "xbrltype": "domainItemType" }, "us-gaap_UnusualRisksAndUncertaintiesTextBlock": { "auth_ref": [], "lang": { "en-US": { "role": { "documentation": "Tabular disclosure of the nature of the unusual risk or uncertainty, if estimable, such as the threat of expropriation of its assets by a foreign government, rapid technological obsolescence in the industry, risk of natural disaster from earthquake or weather events, and availability of or continuation of a labor force at a reasonable cost.", "label": "Unusual Risks and Uncertainties [Table Text Block]" } } }, "localname": "UnusualRisksAndUncertaintiesTextBlock", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/RisksAndUncertainties" ], "xbrltype": "textBlockItemType" }, "us-gaap_UseOfEstimates": { "auth_ref": [ "r126", "r127", "r128", "r129", "r130", "r131", "r132" ], "lang": { "en-US": { "role": { "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.", "label": "Use of Estimates:" } } }, "localname": "UseOfEstimates", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/SummaryOfSignificantAccountingPoliciesPolicies" ], "xbrltype": "textBlockItemType" }, "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": { "auth_ref": [ "r110", "r116" ], "calculation": { "http://taylordevices.com/role/EarningsPerCommonShareTableDetails": { "order": null, "parentTag": null, "root": true, "weight": null } }, "lang": { "en-US": { "role": { "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.", "label": "Weighted Average Number of Shares Outstanding, Diluted", "totalLabel": "Average common shares outstanding assuming dilution" } } }, "localname": "WeightedAverageNumberOfDilutedSharesOutstanding", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/EarningsPerCommonShareTableDetails" ], "xbrltype": "sharesItemType" }, "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": { "auth_ref": [ "r109", "r116" ], "calculation": { "http://taylordevices.com/role/EarningsPerCommonShareTableDetails": { "order": 1.0, "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding", "weight": 1.0 } }, "lang": { "en-US": { "role": { "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.", "label": "Average common shares outstanding" } } }, "localname": "WeightedAverageNumberOfSharesOutstandingBasic", "nsuri": "http://fasb.org/us-gaap/2020-01-31", "presentation": [ "http://taylordevices.com/role/EarningsPerCommonShareTableDetails" ], "xbrltype": "sharesItemType" } }, "unitCount": 4 } }, "std_ref": { "r0": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "205", "URI": "http://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760" }, "r1": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6676-107765" }, "r10": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6812-107765" }, "r100": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(2)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794" }, "r101": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794" }, "r102": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22694-107794" }, "r103": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22694-107794" }, "r104": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22583-107794" }, "r105": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22595-107794" }, "r106": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22644-107794" }, "r107": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22658-107794" }, "r108": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22663-107794" }, "r109": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=d3e1448-109256" }, "r11": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6812-107765" }, "r110": { "Name": "Accounting Standards Codification", "Paragraph": "16", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=d3e1505-109256" }, "r111": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=d3e1707-109256" }, "r112": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=d3e1757-109256" }, "r113": { "Name": "Accounting Standards Codification", "Paragraph": "28A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=d3e1500-109256" }, "r114": { "Name": "Accounting Standards Codification", "Paragraph": "60B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=SL5780133-109256" }, "r115": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=121326447&loc=d3e1337-109256" }, "r116": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257" }, "r117": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257" }, "r118": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3630-109257" }, "r119": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "260", "URI": "http://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537" }, "r12": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6904-107765" }, "r120": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "260", "URI": "http://asc.fasb.org/topic&trid=2144383" }, "r121": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "270", "URI": "http://asc.fasb.org/extlink&oid=116846552&loc=d3e725-108305" }, "r122": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "270", "URI": "http://asc.fasb.org/extlink&oid=116846552&loc=d3e765-108305" }, "r123": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "270", "URI": "http://asc.fasb.org/extlink&oid=116846552&loc=d3e543-108305" }, "r124": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "272", "URI": "http://asc.fasb.org/extlink&oid=6828210&loc=d3e70191-108054" }, "r125": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r126": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r127": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592" }, "r128": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592" }, "r129": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592" }, "r13": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6911-107765" }, "r130": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592" }, "r131": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592" }, "r132": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "275", "URI": "http://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592" }, "r133": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "275", "URI": "http://asc.fasb.org/topic&trid=2134479" }, "r134": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8736-108599" }, "r135": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8736-108599" }, "r136": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8736-108599" }, "r137": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(h)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8736-108599" }, "r138": { "Name": "Accounting Standards Codification", "Paragraph": "22", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8736-108599" }, "r139": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8906-108599" }, "r14": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6935-107765" }, "r140": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8906-108599" }, "r141": { "Name": "Accounting Standards Codification", "Paragraph": "30", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8906-108599" }, "r142": { "Name": "Accounting Standards Codification", "Paragraph": "31", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8924-108599" }, "r143": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8933-108599" }, "r144": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8933-108599" }, "r145": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8933-108599" }, "r146": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8933-108599" }, "r147": { "Name": "Accounting Standards Codification", "Paragraph": "32", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e8933-108599" }, "r148": { "Name": "Accounting Standards Codification", "Paragraph": "40", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e9031-108599" }, "r149": { "Name": "Accounting Standards Codification", "Paragraph": "41", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e9038-108599" }, "r15": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=6361739&loc=d3e7789-107766" }, "r150": { "Name": "Accounting Standards Codification", "Paragraph": "42", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "280", "URI": "http://asc.fasb.org/extlink&oid=120311839&loc=d3e9054-108599" }, "r151": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=121593590&loc=d3e4428-111522" }, "r152": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=121593590&loc=d3e4531-111522" }, "r153": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=121611835&loc=d3e4975-111524" }, "r154": { "Name": "Accounting Standards Codification", "Paragraph": "11B", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=121611835&loc=SL6953423-111524" }, "r155": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=121611835&loc=d3e5212-111524" }, "r156": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=121611835&loc=d3e5033-111524" }, "r157": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=121611835&loc=d3e5074-111524" }, "r158": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=121611835&loc=d3e5093-111524" }, "r159": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 4.E)", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=27010918&loc=d3e74512-122707" }, "r16": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r160": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "10", "Topic": "310", "URI": "http://asc.fasb.org/subtopic&trid=2196772" }, "r161": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "310", "URI": "http://asc.fasb.org/extlink&oid=84159169&loc=d3e10133-111534" }, "r162": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "320", "URI": "http://asc.fasb.org/extlink&oid=121553693&loc=d3e26853-111562" }, "r163": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "323", "URI": "http://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571" }, "r164": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "325", "URI": "http://asc.fasb.org/topic&trid=2197064" }, "r165": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437" }, "r166": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437" }, "r167": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437" }, "r168": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437" }, "r169": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)(3)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437" }, "r17": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(13))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r170": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)(4)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=121646688&loc=SL121648383-210437" }, "r171": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=121599878&loc=SL82895884-210446" }, "r172": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=121599337&loc=SL82919249-210447" }, "r173": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(f)", "Topic": "326", "URI": "http://asc.fasb.org/extlink&oid=121599337&loc=SL82919249-210447" }, "r174": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "330", "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4492-108314" }, "r175": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "330", "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4542-108314" }, "r176": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "330", "URI": "http://asc.fasb.org/extlink&oid=116847112&loc=d3e4556-108314" }, "r177": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 5.BB)", "Topic": "330", "URI": "http://asc.fasb.org/extlink&oid=27011343&loc=d3e100047-122729" }, "r178": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "330", "URI": "http://asc.fasb.org/topic&trid=2126998" }, "r179": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "05", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "340", "URI": "http://asc.fasb.org/extlink&oid=68074540&loc=d3e5879-108316" }, "r18": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(14))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r180": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "05", "SubTopic": "10", "Topic": "340", "URI": "http://asc.fasb.org/extlink&oid=68074540&loc=d3e5879-108316" }, "r181": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "340", "URI": "http://asc.fasb.org/extlink&oid=6387103&loc=d3e6435-108320" }, "r182": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r183": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r184": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r185": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "360", "URI": "http://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229" }, "r186": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "360", "URI": "http://asc.fasb.org/topic&trid=2155823" }, "r187": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "450", "URI": "http://asc.fasb.org/topic&trid=2127136" }, "r188": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=109259400&loc=d3e21463-112644" }, "r189": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.3-04)", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770" }, "r19": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(2))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r190": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=6405813&loc=d3e23239-112655" }, "r191": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "505", "URI": "http://asc.fasb.org/extlink&oid=6405834&loc=d3e23315-112656" }, "r192": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "30", "Topic": "505", "URI": "http://asc.fasb.org/subtopic&trid=2208821" }, "r193": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "505", "URI": "http://asc.fasb.org/topic&trid=2208762" }, "r194": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "35", "Topic": "605", "URI": "http://asc.fasb.org/subtopic&trid=2197326" }, "r195": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=121604090&loc=SL49130545-203045" }, "r196": { "Name": "Accounting Standards Codification", "Paragraph": "91", "Publisher": "FASB", "Section": "55", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=121551570&loc=SL49130690-203046-203046" }, "r197": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(i)(1)", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=113356391&loc=SL49131195-203048" }, "r198": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Topic": "606", "URI": "http://asc.fasb.org/extlink&oid=113356391&loc=SL49131195-203048" }, "r199": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "715", "URI": "http://asc.fasb.org/extlink&oid=118255775&loc=d3e1928-114920" }, "r2": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6676-107765" }, "r20": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(28))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r200": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5047-113901" }, "r201": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)(3)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r202": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b),(f)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r203": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r204": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(i)-(ii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r205": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r206": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r207": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(1)(iv)(4)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r208": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)(iii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r209": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r21": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(29))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r210": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r211": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(i)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r212": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(ii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r213": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iii)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r214": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)(2)(iv)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r215": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r216": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=d3e5070-113901" }, "r217": { "Name": "Accounting Standards Codification", "Paragraph": "2A", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=120381028&loc=SL79508275-113901" }, "r218": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r219": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r22": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3)(c)(2))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r220": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r221": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r222": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r223": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(1)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r224": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(f)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r225": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(g)(2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=121322162&loc=SL121327923-165333" }, "r226": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 14.D.2)", "Topic": "718", "URI": "http://asc.fasb.org/extlink&oid=115993241&loc=d3e301413-122809" }, "r227": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "718", "URI": "http://asc.fasb.org/topic&trid=2228938" }, "r228": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "730", "URI": "http://asc.fasb.org/extlink&oid=6420194&loc=d3e21568-108373" }, "r229": { "Name": "Accounting Standards Codification", "Paragraph": "15", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=120406818&loc=d3e32059-109318" }, "r23": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3)(c)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r230": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=120406818&loc=d3e31917-109318" }, "r231": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=120406818&loc=d3e31928-109318" }, "r232": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=120406818&loc=d3e31931-109318" }, "r233": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=120406818&loc=d3e31958-109318" }, "r234": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32672-109319" }, "r235": { "Name": "Accounting Standards Codification", "Paragraph": "12", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32687-109319" }, "r236": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32705-109319" }, "r237": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32809-109319" }, "r238": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319" }, "r239": { "Name": "Accounting Standards Codification", "Paragraph": "21", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32857-109319" }, "r24": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3)(c)(4))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r240": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32559-109319" }, "r241": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32621-109319" }, "r242": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32632-109319" }, "r243": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319" }, "r244": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319" }, "r245": { "Name": "Accounting Standards Codification", "Paragraph": "9", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319" }, "r246": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "740" }, "r247": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "740" }, "r248": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(2)", "Topic": "740" }, "r249": { "Name": "Accounting Standards Codification", "Paragraph": "8", "Publisher": "FASB", "Section": "65", "SubTopic": "10", "Subparagraph": "(d)(3)", "Topic": "740" }, "r25": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r250": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.5.Q1)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330036-122817" }, "r251": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB TOPIC 6.I.7)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330036-122817" }, "r252": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.7)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330036-122817" }, "r253": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.1)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330036-122817" }, "r254": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 6.I.Fact.2)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330036-122817" }, "r255": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.C)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=116825942&loc=d3e330215-122817" }, "r256": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=120385591&loc=d3e38679-109324" }, "r257": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "270", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338" }, "r258": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "740", "URI": "http://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331" }, "r259": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "740", "URI": "http://asc.fasb.org/topic&trid=2144680" }, "r26": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r260": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r261": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988" }, "r262": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=109239629&loc=d3e5614-111684" }, "r263": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(bb)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=121559654&loc=d3e5710-111685" }, "r264": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "810", "URI": "http://asc.fasb.org/extlink&oid=121559654&loc=d3e5710-111685" }, "r265": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "60", "SubTopic": "10", "Topic": "820", "URI": "http://asc.fasb.org/extlink&oid=7493716&loc=d3e21868-110260" }, "r266": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=121572278&loc=d3e13279-108611" }, "r267": { "Name": "Accounting Standards Codification", "Paragraph": "10", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=121572278&loc=d3e13433-108611" }, "r268": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "825", "URI": "http://asc.fasb.org/extlink&oid=75031198&loc=d3e14064-108612" }, "r269": { "Name": "Accounting Standards Codification", "Paragraph": "17", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900" }, "r27": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30)(a)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r270": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(a)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r271": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(b)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r272": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(c)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r273": { "Name": "Accounting Standards Codification", "Paragraph": "20", "Publisher": "FASB", "Section": "45", "SubTopic": "30", "Subparagraph": "(d)", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900" }, "r274": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "30", "Topic": "830", "URI": "http://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901" }, "r275": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r276": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r277": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864" }, "r278": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "850", "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39691-107864" }, "r279": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "850", "URI": "http://asc.fasb.org/topic&trid=2122745" }, "r28": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(30))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r280": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=119991564&loc=SL119991585-234733" }, "r281": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=119991564&loc=SL119991590-234733" }, "r282": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=119991564&loc=SL119991598-234733" }, "r283": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "910", "URI": "http://asc.fasb.org/extlink&oid=6471471&loc=d3e48698-109348" }, "r284": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "310", "Topic": "912", "URI": "http://asc.fasb.org/extlink&oid=118261985&loc=d3e55302-109406" }, "r285": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "912", "URI": "http://asc.fasb.org/topic&trid=2145070" }, "r286": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SAB Topic 11.L)", "Topic": "924", "URI": "http://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856" }, "r287": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(a)", "Topic": "926", "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079" }, "r288": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(b)", "Topic": "926", "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079" }, "r289": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "20", "Subparagraph": "(c)", "Topic": "926", "URI": "http://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079" }, "r29": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(31))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r290": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "20", "Topic": "940", "URI": "http://asc.fasb.org/extlink&oid=68072869&loc=d3e41242-110953" }, "r291": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "SubTopic": "310", "Topic": "940", "URI": "http://asc.fasb.org/subtopic&trid=2176284" }, "r292": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(11))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r293": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(23))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r294": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(4))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r295": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.9-03(5))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120398452&loc=d3e534808-122878" }, "r296": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(15))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r297": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04(22))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r298": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.9-04.10)", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260" }, "r299": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "235", "Subparagraph": "(SX 210.9-05(b)(2))", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884" }, "r3": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6676-107765" }, "r30": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(32))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r300": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "50", "SubTopic": "320", "Topic": "942", "URI": "http://asc.fasb.org/extlink&oid=120252992&loc=d3e62652-112803" }, "r301": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(1)(g))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r302": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(12))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r303": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r304": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(25))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r305": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03(a)(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r306": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "210", "Subparagraph": "(SX 210.7-03.16)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400017&loc=d3e572229-122910" }, "r307": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(18))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r308": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(8))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r309": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "220", "Subparagraph": "(SX 210.7-04(9))", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263" }, "r31": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r310": { "Name": "Accounting Standards Codification", "Paragraph": "13H", "Publisher": "FASB", "Section": "55", "SubTopic": "40", "Subparagraph": "(c)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121639165&loc=SL117783719-158441" }, "r311": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(a)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641" }, "r312": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(b)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641" }, "r313": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(e)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641" }, "r314": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(1)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641" }, "r315": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(f)(2)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641" }, "r316": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(1)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641" }, "r317": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(i)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641" }, "r318": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(ii)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641" }, "r319": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(iii)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641" }, "r32": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(b))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r320": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(g)(2)(iv)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641" }, "r321": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(1)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641" }, "r322": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "65", "SubTopic": "40", "Subparagraph": "(h)(2)", "Topic": "944", "URI": "http://asc.fasb.org/extlink&oid=121370832&loc=SL117420844-207641" }, "r323": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Subparagraph": "(d)", "Topic": "958", "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99779-112916" }, "r324": { "Name": "Accounting Standards Codification", "Paragraph": "6", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=d3e99893-112916" }, "r325": { "Name": "Accounting Standards Codification", "Paragraph": "7", "Publisher": "FASB", "Section": "50", "SubTopic": "360", "Topic": "958", "URI": "http://asc.fasb.org/extlink&oid=120429125&loc=SL120174063-112916" }, "r326": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "25", "SubTopic": "740", "Topic": "980", "URI": "http://asc.fasb.org/extlink&oid=6501382&loc=d3e54053-110423" }, "r327": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "25", "SubTopic": "740", "Topic": "980", "URI": "http://asc.fasb.org/extlink&oid=6501382&loc=d3e54136-110423" }, "r328": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "20", "Topic": "985", "URI": "http://asc.fasb.org/extlink&oid=6501960&loc=d3e128462-111756" }, "r329": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b" }, "r33": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(c))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r330": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-23" }, "r331": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "d1-1" }, "r332": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "g" }, "r333": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "12, 13, 15d" }, "r334": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "13e", "Subsection": "4c" }, "r335": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "14d", "Subsection": "2b" }, "r336": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "15", "Subsection": "d" }, "r337": { "Name": "Exchange Act", "Number": "240", "Publisher": "SEC", "Section": "14a", "Subsection": "12" }, "r338": { "Name": "Form 10-K", "Number": "249", "Publisher": "SEC", "Section": "310" }, "r339": { "Name": "Form 10-Q", "Number": "240", "Publisher": "SEC", "Section": "308", "Subsection": "a" }, "r34": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02(6)(d))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r340": { "Name": "Form 20-F", "Number": "249", "Publisher": "SEC", "Section": "220", "Subsection": "f" }, "r341": { "Name": "Form 40-F", "Number": "249", "Publisher": "SEC", "Section": "240", "Subsection": "f" }, "r342": { "Name": "Forms 10-K, 10-Q, 20-F", "Number": "240", "Publisher": "SEC", "Section": "13", "Subsection": "a-1" }, "r343": { "Name": "Regulation 12B", "Number": "240", "Publisher": "SEC", "Section": "12", "Subsection": "b-2" }, "r344": { "Name": "Regulation S-T", "Number": "232", "Publisher": "SEC", "Section": "405" }, "r345": { "Name": "Regulation S-X (SX)", "Number": "210", "Paragraph": "i", "Publisher": "SEC", "Section": "3", "Subsection": "10" }, "r346": { "Name": "Securities Act", "Number": "230", "Publisher": "SEC", "Section": "425" }, "r347": { "Name": "Securities Act", "Number": "7A", "Publisher": "SEC", "Section": "B", "Subsection": "2" }, "r348": { "Name": "Securities Act", "Number": "Section", "Publisher": "SEC", "Section": "12" }, "r35": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.1)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r36": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.13(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r37": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.13)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r38": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.14)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r39": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.17)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r4": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(g)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6676-107765" }, "r40": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r41": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r42": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.19(b),22(b))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r43": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r44": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.20,24)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r45": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.21)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r46": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29,30)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r47": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.29-31)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r48": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.3(c)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r49": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.3,4)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r5": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(g)(4)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6676-107765" }, "r50": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a)(1))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r51": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a)(3))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r52": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a)(4))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r53": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r54": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(a),(d))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r55": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(b))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r56": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.6(d))", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r57": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-02.9)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682" }, "r58": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "210", "URI": "http://asc.fasb.org/topic&trid=2122208" }, "r59": { "Name": "Accounting Standards Codification", "Paragraph": "1A", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669619-108580" }, "r6": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6676-107765" }, "r60": { "Name": "Accounting Standards Codification", "Paragraph": "1B", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=121641772&loc=SL7669625-108580" }, "r61": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(1))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227" }, "r62": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(10))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227" }, "r63": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03(20))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227" }, "r64": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.1,2)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227" }, "r65": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.2(a),(d))", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227" }, "r66": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.4)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227" }, "r67": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.7)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227" }, "r68": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.5-03.9)", "Topic": "220", "URI": "http://asc.fasb.org/extlink&oid=120395209&loc=SL114868664-224227" }, "r69": { "Name": "Accounting Standards Codification", "Paragraph": "11", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3151-108585" }, "r7": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6787-107765" }, "r70": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3213-108585" }, "r71": { "Name": "Accounting Standards Codification", "Paragraph": "13", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(c)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3213-108585" }, "r72": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3255-108585" }, "r73": { "Name": "Accounting Standards Codification", "Paragraph": "14", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3255-108585" }, "r74": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3521-108585" }, "r75": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3536-108585" }, "r76": { "Name": "Accounting Standards Codification", "Paragraph": "25", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3536-108585" }, "r77": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(a)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3602-108585" }, "r78": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3602-108585" }, "r79": { "Name": "Accounting Standards Codification", "Paragraph": "28", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3602-108585" }, "r8": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6801-107765" }, "r80": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121586364&loc=d3e3044-108585" }, "r81": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121583591&loc=d3e4273-108586" }, "r82": { "Name": "Accounting Standards Codification", "Paragraph": "2", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "230", "URI": "http://asc.fasb.org/extlink&oid=121583591&loc=d3e4297-108586" }, "r83": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "230", "URI": "http://asc.fasb.org/topic&trid=2134446" }, "r84": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18726-107790" }, "r85": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18780-107790" }, "r86": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(e)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18823-107790" }, "r87": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(f)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18823-107790" }, "r88": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(g)(1)(ii))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r89": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08(h))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r9": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(d)", "Topic": "210", "URI": "http://asc.fasb.org/extlink&oid=121566466&loc=d3e6812-107765" }, "r90": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.4-08.(e),(f))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690" }, "r91": { "Name": "Accounting Standards Codification", "Paragraph": "3", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-04(a))", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24072-122690" }, "r92": { "Name": "Accounting Standards Codification", "Paragraph": "4", "Publisher": "FASB", "Section": "S99", "SubTopic": "10", "Subparagraph": "(SX 210.12-09)", "Topic": "235", "URI": "http://asc.fasb.org/extlink&oid=120395691&loc=d3e24092-122690" }, "r93": { "Name": "Accounting Standards Codification", "Publisher": "FASB", "Topic": "235", "URI": "http://asc.fasb.org/topic&trid=2122369" }, "r94": { "Name": "Accounting Standards Codification", "Paragraph": "23", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=115929471&loc=d3e21914-107793" }, "r95": { "Name": "Accounting Standards Codification", "Paragraph": "24", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=115929471&loc=d3e21930-107793" }, "r96": { "Name": "Accounting Standards Codification", "Paragraph": "5", "Publisher": "FASB", "Section": "45", "SubTopic": "10", "Subparagraph": "(b)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=115929471&loc=d3e21711-107793" }, "r97": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(2)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794" }, "r98": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(3)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794" }, "r99": { "Name": "Accounting Standards Codification", "Paragraph": "1", "Publisher": "FASB", "Section": "50", "SubTopic": "10", "Subparagraph": "(b)(4)", "Topic": "250", "URI": "http://asc.fasb.org/extlink&oid=109234566&loc=d3e22499-107794" } }, "version": "2.1" } ZIP 87 0000096536-20-000013-xbrl.zip IDEA: XBRL DOCUMENT begin 644 0000096536-20-000013-xbrl.zip M4$L#!!0 ( &)(!U'[-IT& 0\ *^I 1 =&%Y9"TR,#$Y,#4S,2YX MN0YZ(L*CG+T_Z+8/#Q!A M%K[8F/^ /F.7 M7*"/A!&!?2Y^0#]C)Y!/^"UUB$#7W)TZQ"?P(LSI IVV3S!JM2JH_9DPFXLO M#W>)VD??GUYT.L_/SVW&G_ S%]^\ML6KJ1OXV ^\1-?A[##ZKUKR3]2SDL3? M_S0Y?7XS>Z!?)SWV-KC&[,8;X-[53U;?G_WV\_>#7YTK[\B>CT;N3_^9OQ4G M7[]>6?0+_W;\\/'D-^LRS/*=9ST2%R-@@GGO#S+6/1^WN9ATC@X/NYVOG^X' M2NX@%+R8.91]*Q/OGI^?=]3;6%23G(V$$ZL^[LC7(^R11#.\I09YRCP?,RLG M;_M)@JSP:2=\F1.EI:)GH2B-16U2D/.(U9[PIPZ\ /FCP]9AMW7)HD&6-OI%1'+TJ2>,+7Q>%AN6C+GT^)5YH@?%62C''& K<<2ML7'9FN T(M MD"*"6DFZY8GR"7P\MY,4\(?#A4V>J$5DPW"A9-WSPU-9+N(0ES#_E@OW QGC MP $(_@RP0\>4V ?(QV)"?%G5O2FV2!65<:/!C'%H6]"ZHR?RV71*H?' @[^] MD[7L0G"'#*'\2/Z -FW(0$ITKCGT30>(@G'A3ZD*%"ME-AE31E6.41ONHI9L ML8$T$7ZJ).\Z1>&,BL C=H_]J'Y/!?$@G3+A'AY$"2.1!8DL[%B!4R]-6I32 M)-&#&*K5P;O"CFRF@T="?"\$,?_(#.81("A[2Y*@R3SN4!N>V"A2A$)-#<8* MACX68-PC\2D4N03P_'LS^L?5T4??Y13_:W_92 #S>N,[F,:X)&2AY+D9_1,3 M^JDVQ,_F$MH$FRR0 ]\;GU[Y(X-<[Z;/P/JS^..O'H",TNG)2PMHBFK M'(7:]Y>S+.K7V'N\=?BSIS>5])69A[/JK46J1$KG'J,?N"X6P)[N(A&D/1/,\;G18R/VRA)N\=P7G-/5=D;SZ>N[*1OL�Y+T>^R)G,\I9 M8T,O[@MLQ4N'NHF,U'0/B]2L:(]1GSPR*7CC0CWB@O!GV4G$4V9RMZ8$3\N(OX&)DA*S1#4 MH%3/'@-^3R;8@6IH$6*G8&M/S4"?%(%^VT9*!%N$\ MAWJ+]WVN*/TQ0SR+@I]'L,:SP1ZQ-QS5V7L\$C%I%[ M;<$[,]CZHA16I?$Z(R\-0(^)&VXNS"DC/$.52B4-[GFMX7 M9$R$D$YY0"5>ON2>F2'6UHS=4[ERB32$8.\QOD-!, SS\";?V1&5UL6=F%= M&"O8>W ?B$^%BC.D?7/AF1E>;0W8?2-'Q%C#OO?!MY@*M>VI-[ZET@5$L7/' M/%^HS191E[Q,R,R MCCLPNI0J@SW6\E01:(59=3N,2M)A$[N41.N*F3DKBU[ M8\9?6TUV83F9!NQ01M,>0_Y O6_2#_Z%643XTB.:!.O*7YE!U]:<1[#F5(J4 MJR^G:H]1KQ8'725V6BV&>K1F#!5]%__YAM9AX):*TE?'RR'A#3AHBSU)1?&@$_EA;(>?"Y0W&=>/F62962VKF M2UMNKQQ#;[@U!M.S1%:0,[.F+>,K!-8;?DHC[%E>#._-?&CK_L71]H:&,$"9 MFZ'ABN/ZL;:\3X*5#:[9J&5^ "\^-F.L+^&+$'NEIL"_U'^:FK8O?FSG05]N+?8D-#YT[=PH3\=[X MTN:JALJ/86#N@87M14'Y(7\@,!T,"*Q[^20LTP?B8^K$0\5:*LQL:DOR,#/I M-XFS"[^QB3),=A+X'$5YHDRFZ+LHVSUF/((E8HTE@8WT:.:;?=C4$ M5W1B1SA]QD* &4^DCCM;2VLF5]\74-.Q'>6'D@SWF-W8T9QZE]7<)-=(E\B8 MV=+<#8EK6R3JD*_^;1I;P:N=G^^4OC*#K[D@$B4-Y"LZN>79/IS)T4*G:#.J MS)1J'H_4 TX2#SC)>,"#C ?LPW\-UC4ORVJL-U2O2/4S M7Y_M@@XSX9I/9T7"GWE#>N605X[>RM)F(C7'4#'VQ57LBS8#\YIMM'P%LJX2 M,[F:GVB-B'2S*JG64LMYKI7"2.JIYAJJ%+!NZ*L0N\YUL$NES#1I/IY<$)O$ M&IO^U,1*>6.J)&EFI\8W_4W;6?:=_P+G6A5),TO5SP%H2-)VA5S-/^$_N+@. M/)^[1,CTN?YMF9"9&LUUH]2AT1RY4B&R(HU('H_:=&\1)PM:2NDK,_Z+CQIH MFH)I(T_!9UG^T@R]YNS(;NA!PV8\CR-OL,ZWJ$-Q&/Y.P%9'?LMIZ0,L/H;\ M9CPFEJRE\L]"]&T-#68.-?]%/B\9J*$AJSZ>(2_.#T%[(C**3N(LPR<-W=F& M5M[+F03,9.F;5_1==$V?5VE#7:Y]59 S$Z/Y%Q)' DRDI0]?;JSSI-)FF;/T M_(KR5E-=W$C5F7[@2P7GBRD@\9*7T.&WBQ:6>A[@2]O)I&'R$E7S8P( MBWI+VTT]%68R-0="2<,J,LS3+$-779IIP[C.^((E[3(I,V_ZT1.+MHPW8]2B M X,6^4Z-,F9:],]92@X4:CA9>,A0.25F$3,C^NWBGT_ B+.S$G[ADODC)3Q>JR9HYTCP*6:W(DM_%C$$OHJGB MUSCVRW_D37,/9(S4#747TEO__L"C<@? 0?3L$3KX]P?R2K-6?,O8[V!:>^8Z ML8A4;;BA3I%<1"/*.%:!A:5IT6[0 R4J1D>)UXD+'ROPJ2^3]S/9()D/U)O. M)DQV\*BNR9"$.%NT]5[JWZB14/OJ&EFHL%LR]3K-9:,&0].I:W"^M6W)W@]) M)EESHWO\.NE%?M'?Q64F5((O]JQ>E:\E&K M>]0Z[K9GGIV6M$XA4ACJ%2).MT(AC+=8EI7"6Y1(_FBEJ:L6P'@GY@(85/ZE M"3O$\;WXR9JED:W'VU!QE*X5RE/A=LXJ526;\G.84-:5,F>28@ZCG0P@4H1R*% M7OE[ 4,$Y?90C61V()09!R@PCR2+_["MR]>[CMF!X LQ4Z^Q"7/7[RL*KQV!8.5 M+3^M 1Q5;NJI=QGXCUS0_Q'["[.)*/K/KN:1[Y/TH>L@#YA-2(\56-JB_M>& MW1#F@MM%+Y_#:\/OE@=BJ_#E,GAUZ-&G[5:^7 :O#;T!G6T5O*S^5X>=/&A@ MN^CE\,O09'\GB^VWR" HU]QZ>M;$TK(-1B;;*(ZP&K>#AS2&T>'Y10^ M7?"D?F](9OZ5H^YSB2BNG6Q5VOQ8QP:,O>=L(C]Q23_\3)A2V\HT,^LDV'4# MHP_1:]E8DF87S%Q6^_*5K]SL-77L @PW#)+-?Z$V22GKL8^$3P2>/E+K4FY8 MZ$-W*@-WD]326\'=FYE/!,-.TF O?>A21H$Z0"]4[%V'3LS>^ -WJ45EQ"?$ M[B4RK@\XH#T-R[#+6-]R0>B$A2:K2SVVC'%)AB^,K7Y>8^\)&B!U261?;SSD M/G9B:&K([YQE QBV'5E.M0."6:0WAJ"X2F^W_$@MN Q_ C?KR(;^*^W-8!\L!>U5@-J9V M1_N)9#Q++(YLC:Y?K&C@'7OBU)*3GWA&%".YS0Q>MNHEI]1(2]00_T \(IZ( M]YDS*Q""L,1A45%V1RM)D;J5VL"EWP<[Q*\$BQMFWS'+"6P"_X]'GCMV,[- MKC=>.!QKK?/ERU-C^O<7SXE4IBTWLRFA,% #$\RGHAT M+E0_X:[.");ZT"H[VUY^HK^LB-VJMG1WWY:CJK8<[;XMQU5M.=Y]6TZJVG*R M^[:<5K7E=/=M.:MJR]D.V+)ZZ$H/7-WS9R+"7Q1&K>$SWT"$K&(V*TX^51%V M#<[!R&C_\4CZ!5=6I^Y/X"Y-KRKZ0O+)=P-7]@Z MGAH=A\VK??&U_;M.^&$!_/P_4$L#!!0 ( &)(!U%""V@O]!4 +,? 0 5 M =&%Y9"TR,#$Y,#4S,5]C86PN>&UL[5U;<]LXEG[?JOT/7,]+[X-LRXG3 MG4QGIV0[[G*5$[EL9WKWJ0LF(9L=BM" I&WMKU\ O(@D[A(IP#/;#^G8P3DX MYWS N8"X_/JWUV42/$.'[T$PF1BP_3M,(X2_WUXU M;)_R?/7IZ.CEY>4P1<_@!>$?V6&(S-C=Y2 OLH;7\>MQ]5])_FL2IS\^T3\> M0 8#8JPT^_2:Q9\/6KV^O#M$^/'HY/AX>O3?7Z_OPB>X!),XI48+X4%-1;F( MZ*8?/WX\8O]:-^5:OC[@I.[CW5$M3L.9_&NL:-^2)(L_94R\:Q2"G&&N[2:0 MMJ _3>IF$_JKR?1D\FYZ^)I%![7QF04Q2N M7 3T_P2[IM<+)*084ZQRE68:2.")]1>T>[W(4_GA"2408DC-P0HX4QU$MKQ65 \:M. MLED:S$CT,AN0#BCH5?I,P$18.U:YAH-.J8SI^R7+XR6="U\ M3@E V3S]3J?V[);D"%OH(XS6%*?64-H[&A36@'%/4&HQ7$ M^9K:BWB:%9W;.A%5-$/Z@">$\TD.\?(,88Q>*(3:&:^@&5"T:_@($F*&$,+( M1"Q9^R&M!0R<2Z?1H&Z$1MM[\*H70=!T0$'JJ7X#,2D)EBB]>R)IBDXF-=6 MXMW"A#HDDCKEZWL,THPX()(Q:XVFHQO2@H0'6D/(?(?F0"5*=:=-E M!KQD5;8V"U+0# EMG/V@R1;)K$A*0',7@[Q<2;3W*F+8:F+$JL),@'NC,F,; M7OLID,SD-V8P1K%D)J*DN;O"R4SLG9CNJ8@RT\2LJARP5#5\$W M':=T,)U6$H+1RP@S^4QH1TR%#3%54HVW4+B.PK"-40D9-)6%Y D+XE^Q [!?-!TG/55B94V2>QF<;>] MT&^HY$Y,]ZI.T^-Q5/9,T1$9#CM3^I%%MK6Z#8^1OP):IS86/(:NL<_67\&? M")\764ZR0WQ/V!N.$T/RH06V-JZ*:,2% N-,2TDV:.41(E(2)#$HB[RF9[8A MD#JG6^**[]&7Q0*&U$CT1^/J8W?>XV!A.UP,2/>SD&-H>7,.^_@(:VMM:T9C MKTR9^CX#VG%$S6Y1DERB%X C>UGEQ"/:==(68%[D;&,U&;(T4+]"',;9#H;? MBOF(REI')T/ZT78"V*=9)M1C[12PE=:(>+2=!+;2FE$/NE*W(DQHAR"IU[-; MR]FF<]**BTK\$"1AD3"J:_)SAP*^DIHJ@E'-ARI@M:D^CW-*41UVF 83>C*" M[8D@?ZU:CBN.>.=\1ZP3(DNS1,OD2ILMV$%%'U0,*EEK:1,4=B1,Z'D'U#M3 M4 G(#C4L0/; 3C84V>01@-71R?')\1%,\JS^S83^9G(\K0XX_*7Z]1^S+"," MG!<8M[96)N !)JS;/ZIVO69'[@2FPY*$!/H_6AP^DYJ ?IS/S\GD6I-PP?;+ MR!4Q).\KV!H_,QP&=$3@SP?3NA^ P\ZHX4^;5"V.,KKV3=E,8C(R:OH%1DN5 MO2O;HFU4:>-"I#@(7F#\^)0SZ1WBR"KE>U(HTP65+.]L:.)A$[N>@I#(#Z9U3D$ST]@ZL9B62;M:E:[";SQU$^OGB%F80/T/% MK#+G8 ;B>Z<@VMK#.T!)0KX",:EV5C#-H';:29J;077J%"JEIK[BTCE)((6C M:F6&P@X=:!?5FC=)>DH-30I<)9$?^;8$* -UO8/H.@8/<1+3 MDUI:9$1M?5C4.@/ICVL$4EJ&?D,YS&[ FBXK&*QPR4E=)SER8&1K7CHS>#?V MZH6@2D[CI:]^>]>ID#%4:H5]Q <7,&([@>@FB3BC5W"9P*0B6*]O1N!LRABYPA!<@/BZ"H] M!ZN8;B#9R*]P] :TKI.I74 TMXUWL-[2W3[IYD0'B6?%LF"G2$E9&8>Q(B28 MT+K.NG:!U=PVWL$JO_+1)#CXZ%)E5:@5OK[!U)%2$_=$;?USFA*8Y(H*,)EX MLS0U2R.;F:2G=#VO3'7KP;=K>>-P9<1&3=U%N3(U?SWJ:WE-?M[?WE3QWJ!C]U^/WGV-ML%?%X@O\IH5K!R8P+)>U=;7Q+NC3]8;YXC>$(N:<(&;SX8ZX'?5^%AF- M:V>KAT2OL7]9P'Q%WX8@:7_I2ZZ)CG)XA(U=3Q6%!CU\1 CZ-FON(%NW*]_L M2,@PFD7+.(VSO#QM4^TR5%0YAO2N9Y,Y:G86\6^&?4,IZBJK!5%!XG1350XQ MS/*.1,I=/'(*UTY#"PJWXTJMNW=^A-WOL<70T]&Y]ANVP)G9P3OX-E[QDEB M[G*-TX)(7[E-4A*4ZS^M>P&^O!*/2.P?IP"OKX@-,[H[D.Z/1 M^/[=H+0QDG<(]^XJTJ^02=J[WL*Q,XIJ0WB'6W.([7=,['*!7A3S4-36]=[9 MG?&2&\ [K.JC-];YLI;0]8;: 7RGD6F\@Y3(2S>KP M8_O\JY2\.4=9!!M2N M+PX88(J:&^D-(%Q['&76K2%S?7/ ")@*S/(&P.S>.V*#9Y_2#-)?WA*D8N.\ M'50U][/HZ,P0_?@&$?7[@A=>[._I0YPD,!(\2&X"JY#<<.G@^"W!J[#3&T"Y M=_+T'H-HJ^2I2V^(L\=K1':6>@- L\_)C?ZM_;Q,,3#U6M:6]O-N)$A, M4=YXN]N'*R$/EU=S@37[:'B/9N$_BAA#Z=55'CZR4L!;?]J+VN#^;<= ME=-A]@SBA.9BEPC3RSCN8%A@9H4+^&"#O(Z1IY_)=H#?S'3^C@$B-K%&"&'$ M]OQT;CVKGR[5#P S+IY^7K-'W\9H_D$O,4/U,.].X4W(P^W-DPU*]/(NC3L3 MMO8T9"G@XF^CE!K!N]RK+>Q5EA5T2M'$T>#N#0-23^//=E@JS>,=L.+G/6X@ MCE'4+QWD&-MQ<3UUM]&9WV)E6Y9YN;%\/%.HPO<.IA@O#1G/%"H_XMNQ_CMJ M++R>+^[BQS1>Q"$MG\J58:( ET5U=L+^3)_(BK,P023I@N2'Z6%0\6/;>#<< M@PW+H.;Y:>P]O?4"=_W&LNB#1D>?7_KZG!S6@FF'UUHT0/88J'?]87^F?@D M1DUO#@XVY*/+? T?05(EBG)YW_?E_>4P8)1!BW1\^P*94YR>]@7\2 P*]N/[ MFN--8M$^. MOFJUOL<@S8@/I4?+Q,)SH7%*8F/%(F \@C:3\0TO>Q=:+#X7)ZDKC14582CVZ MH.);^#IRNO?>FO:H(5ZG*17V#4GQO2HEJ_;G MGD'<18 1UE5R=^CZBY3$H01R3;* M4^@D84PD>G(QO>R#IBMU+^6%'E4_S9)!CH*JJZ#55_!3U=OHMJ@ZKTR2-N7( MYOZ.]GW'*AN\Y]*"6K':%FFKVFG=#]*Y ]DGS4M/U_RL5)[+( R5K[SIYAZ5 MO>EOEJ=7TGP#N+S;4JP]OY1@F;%7W01-/WM+WC=I-O,^2I"Y=*-)VW'#)C,[IA=E-4<2N!"NRG$P?K+Q 6T;A>C>&&3S<'=MJ M _BWSZ8JC3:"EX^[@$=X40")7_&;GQK\O4,O(1DY3<0N$;Y Q4.^*!*;^S=,Z?V;GGI$K4SC MWZ6%W84A98K#+4XTM!XE-HU,;&+)AV2_G0]72]V"EZ\DU\>D#C"1O-O_$)1NPA$P-L M>NU=[["UPT:HK+_8:)Y;:+?RQGVUGTF0H-"%REOKTXT$3/-;F$'\K#[_+Z?Q MQGL9("-5V;_$R_(3Y3GY#4K9>4YMHL9]F]E\KX3-]TK8^EY9M+Y7AG6/0=AT M.4A^1^P0D3$[_7A\6HU8^IL_+.TPI\<9'S%8BD8S9;@#/Q\F+2DCKE'Z2#?B MFNG,A0@- V>.=D=P-('1R&P#^FK):!YJ% \P>O?FIP<%=DOE/8W%S"R;2T6J M6T:T^M"+ $/VK?$,GJ,D83_\'N=/<5HM]ZG60T?KTG6.-KHUVX-P]Q$]NK,Q M-8#$QYB3NTX!]PJ\K57??&JI3RBY_3+;)93^K!+^<_ME_PTYN)G^A8+3KH;R M-%6J%>A>P:;]1*@A^Y>)7&;F^&>)6"]('[2X#9);!JT7Q 4NU_NWE7IS^RK[ M6[@1V\(=^_SQCC[,IYOYPL:NW["UTD!.X3J8*=00O5BK:CYZ%21?_%5B0&G- M2%W'$ ,PS)4Q0<7_ &"V]93;>;W#T9W][T)510$C_4^Y7==&YWGVKZGT:(\J MSIURVZH[IWM@SR^NM17SKU8J MXH1=>D*TN5JN,'HNCPQHQI&&S'6Q;(5 M='HC>(?;94$RA9R$&R+R9?Q*_Z:;= H2UV]";H6:U@3>@295D^4^6X3=BL[U M8Y!;P6=F#.\PI.&X[=[5.4>WI>MW';?./T0*>X>,5#OEYC\UE;<9HWP+FB'( MOJ$W"\-B6;#SQB;/:F_QY,9P/7B;G\I'Q=#F]6_E7E2[FZU.6%R=Z6)10G2= MIIEBYM=K.M&+7B=RMOX*_D2X/B)Z3[@IUUJXHS^,2_"P#I:43Q!6C (JUQ[/ MJ5,IS$"17]'I H3^)2M*XW.[+]K7K 3WWBQO55\9K5]=U]&YW-Y0BG8)26@! MB;U.1F-VF00'5->MH"3!VYZ_QD%TC-3.,=L(VN MYQA&,?N"-(O^),%(4R3JZ!RJ=%%=!EM-,FMO:DKOV@&90=<;K7;&\6ZX7C0W M!+=FV]8(FW%Q[95VPMG&4-ZA;0VL_W/5)J0, I>ST6JDJ>'8]FVS!;U-+@WC MI%R,F"\:->AT*\KC^3F\1U\6"TA?YX'T1V6)PNVUZW9!+_J*RZ(E!Z]!5G<3 MD'(+TGON8-U3^1L?JIGQ9J\+);IX2$2=U9E],PXV] 06 ]6'Z>9MN;M1;.QO M,.MJ*0[0FJ?F[1B]T9!@9Z>W@O)VND12Q<[U\8!&.Y;33+]O[ M>_X$TD=XE7Y) 3M^L*7CE[%QO>%A$)C5-GHK$_D;HEEC09*NAP16YK#&6OB:',/L QE^WSE_8O_\/88J[ M^Y4%)[>UO]G#OX*8WEQ#;^_/*"^/]G__SD8.C&;/I !XA-^*Y0/$\\5%G!3D MMTSS;%[D&;T)GN@BGZ76C!SZ)HFLG)!G((M#:Y5E;%R7D%M"W?-66]G.Q^A4 M/L<&DM8\1^1_2@KRVN:>,9<4$DS])_R-F9M^L"?E'%P _< :A2E>I)D15ELN^3RRTELEN4 M))?H!>!(J06W#:RM1180MDFP8&R(PSK1@<9O"!&#U M=4>;GLHS;9N^W-G";,[QSUO*7B=R<=RP_5"KF3[\"AUM=*--YS-5,%_[U M*_YQ5Q>J=!]\-=.%?P5+\ "L$W=>K%9)'8^KE[%:+UHI?057JK69!2%](FM! MV 7QAE_?'U11FO[Q0,(:^60M,C Q.3 U,S%?9&5F+GAM;.T=75/C./+]JNX_Z-B7W8<$P@"S ML#NW%1C8HFH&*&!V[XTRM@+><:R<;!.X7W^2_!$[LF0YD623S3PP)*A;_66I MU:UN__K;ZS0 +Q!'/@H_[8R&>SL AB[R_/#IT\ZWN\'X[NSR<@=$L1-Z3H!" M^&DG1#N__?N?_P#DWZ__&@S A0\#[P1\1N[@,IR@7\"5,X4GX'<80NS$"/\" M_G""A'Z#+OP 8G"&IK, QI#\(9WX!!P.#QPP&"B@_0.&'L+?;B\+M,]Q/#O9 MW9W/Y\,0O3ASA+]'0Q>IH;N+G3B)"EQ[KWO9OQ3\U\ /OY_0'X].! $15AB= MO$;^IYW2K/,/0X2?=O?W]D:[__GZYP@F@_Q,U%[/&SEN L =? M?!=2_4YWZ8C=,T2LEY#+8)\QG'S:(2,],L7H>.\PG>"'RJ#X;4:L./*I$>Z MW74F/W4"*JV[9PCCJ(F(VL&FB+EQ, SC9QC[KA.THJP64B.9](F#4S)%=#VY M)$O-%#:1)X;02-89"J,(!;Y'YO+*,][%R/W^C */K%7G_TW\^*W9VEJC,B3? M,R=ZO@C0O-$VI4 ZB4NF4P>_$5'X3Z$_(286QF/714D8DQWGA@C-]6$SM:VP M:"0_FR0:A]XU>43P+72A_^(\!LTT*X!J)/0R?"'*1+C15KF!6A^IB/%['L7^ ME#X+YPX.B8*BZ_ ;?8R9$^"1IR7&CMN\?JZ(3B-#7QT_C&%(U\I(HS1G*JP\8F7P&@D[0M\ M<@(B!A="3X4LT7B=TG(4%I?*(*W+"-UM[YW79A)JAFHD)'_4;R FIX MB9O21),<2B-YMS"@"Q)QG>*W>^R$$5F B,?<*+0F.)T2)#C0&X3,![E)L/M, M'/$;XO3"Y_NM+X37)(#+4Z89]M$ MGR*X3@O>W0+R=J1$*PN(ELF'?49$NX'9O-?.1B39^>E.7NR%E8# MON'"I6./O:*>U*"->86J2X(,J#L/D6;<44B-N0TS6B?IV#TVPW+/&)TCD[S6 M8[=Y,E!DK"V>[C36=BW7A-Z2SMIRMPHN&R<\1;-3A3=, [Z2&OF)G=':2+TRU9BN_1^60"72HD^E'Y]+$^;C.Z:&LN"J!V CF*DE?' M8",)VU;:K1&9CDRIKGT*L&9(C6Y1$%R@N8.]]K2*@0W*=5 FX#J)V1UL8K)T MHWZ%V/6C-02_$G*#S+;>G13AC=T$:.]FJ4";NBG0EEHE8&,W"=I2JP:M-5(W M(TCHA$Z0Q[-+X6S59[(5%AGY#G9S#NH&E\D0W-#/"P7HU?Q#1MTS08'=Y!$. M/)_0&+%[!ME$91$56,CA;9<,WBR*_92*/4U-?-5*C: M)Z04"1I&5E@48( ,'N0([!%;7TI3H?R#.N7@QPJ^GPQS(JFZJ7!P(.-@@02@ M"]M4W%88.:Q@2<53&"3*D&7,Y>P%R*SP%M)P.X=J5A*T $R=Z9,M M$@V>'&=&EI3]O5T8Q%'^S8!^,]@;9?5S/V1?/Q2T$4'"2_)K\;@$SB,,V-P/ MV>"ZL;L]()V="!7(SL8MD[PPIC'.B<^64<6]*EV[3UP4QL3\SE,'C:S_\*E< M#S'!:-HHSTQV2,I!6<"$D!U ;1I_VAGM+6@)4 0]XD+BI(;E+K24FOHBXS=^ M]55LK1Y,JPYKO^K$A!@N%:%<-[UDU:D0H< MJ3 @4L[^WKO7SL.HA@=="LJ]S'77PG4UR)@4*?%#MTK,HL;4 ?B:';]$"N2& M/FC77?4<*-"+_"E!S33W<[$;>QZ3FQ/<.+YW&9XY,S]V@B:M2,$,/%[:5=3, M@%!?W2KLED:VPL7MA29-U8]_J%O%>Z8B">7"O:E;W50BOTV*J1G\4+6Q#X?=**3%@:B6Y'[N-5 SRU MPL6I^P?A,HH2Z'U.,+V]#+&//%:TF6?$3V%()%LI,14\)>J(>J_ 5?@1+G:] M5[&P$GTU17/H-D+=]5R)E'[0[5$JF28!R]6F]YRN)U=P7JI1("RZ_BR EV'* MZ*+D1G+F6AEG[]6_)FLB&SCL^!#W5Q+%++!^CP0G&W9%ZY38LT?]/!A&+$]> MN:<#B0,1^3&\@YCF!5(!E*JO9,=!*P3TWKILRD%DBD>E'-'NDH0(_=]MY;WX M5FB53-&1>NJ+8@(9*K-INW:]T2K\?*3)73^BZ88$0_)A- 09/I;L6F $"Y0@ MQWEBF#.5#FH5=GY>9F=_F-,= 2?T $,#2GA,L\!W_*H0?+Q,\([4R!Z.]90X.AH A9O(N4(,<-T A*&$'!7K3W"JU8ZNP-EIF[7 (2EA*!F5- M9=*&;17B]Y>)/QJ"'#I530YOFF9I)[<*S1^6:?Y(5B,&?4^@P0+<-,G"+F\5 M<@^6R?UY"!@D*($:EZXC6@U'A\OT'1-Q.E86/;XS7(6R(V[;V1MF=T4 S-- M84.?N JQ_!Y)-LEB.;M)VUL3%(#A,$UY8P.Y"NW]I5".=VLA'9RBBFM$L^/0H4R$ )FW$/5=;ZKL(!M]>-R&:W.(*!$@+C MEB+MB5>AFML']\D^R."9BU;!8'QM6ZTI7H6?-8^3X,?\5^-775=IFE=AE=]9 M6[*:(C?-J'IWO0IWW,[;?)"VQ9&H\5N9_@_<%EPY5]LB=;T&?!6&N(UZY6.V M+>9;].RK<,KM]0JG;EL\*33VJ_#".03B0[@M%NIZ %9HYGR!XM1H[PD7]06L M$,IO^TG"UE$8Y<24U5,CIP=WK16F%#O2[*<@(W81[K-^)MXVQA_CWQ/1HMN Q3CDXA<>;A/9KY[M'> M46/UULHX.RKS6GMQ0!KY[^=V]-DG1&-(Z#^%\1S"4,K5./3&DQAB58O1@;VK M C3-QJ--%$([ZMJOR:*.-'U.H[N+8M/D M+"R8HCR>)1B7'#[>(*1@&Z?V9FZ%QY=.E:XD3Z^$I1M3I<*02H.W7B13EBK)4$A^=;-R&'SV[(1/Q(AJ:LT4A M]=5[;5"F3;,;U,^L5.MV@;!$0O*$14LT_>YWMI),^N9MT_=I+!+GC6U,:D=W MDR983?Q(@9^>1O[75U6?(_:FU-GG(/R"Q>(>R;<9+8K=WQL=[!TW]N52 >\J M/"I]M-"*?&QCFQTUC3+E$[7B>QO:E(;T-LPTUA%#/WTM;<&O#=.TC,U^AC$- MQ[XV3+^*'"N$.7L8^FIXZ74E^L55HRA&O[+;^8L.*ML V#8 M@V ;0-@VP!8 M#Z(JVP#8NU'5-@"V#8!M V F F!_\\(6I?U2=Z%*MV?@_A0B; M5^KA;]\<^ M^KSK]\*&^NPB]*Q0I:-7J?2G4J7';V3)V&BN4N_L&KBY"&N)K_ZFR:XGOR/D MT31?UNPZND.!)WE.A3";IL &3OL9.BD:SIR_TM;F^8LS9!MX+<"F*5/&9C]] M^95>UK-A6N.9ZV-"2JT#7Y8>NG(P9LY!?3J*;P_:LA=?-@THYK'5EF_10(^= MMZ5)-ZZ96-&0#Q=80,Q^+M)J-GOQ2:GGVHH5L)9I;MF4;W&/IYE'KB/9HD,? M+#KTP5*'OJ34H<_-9P1N,66_1=,L$*[-V6H"Z;<4YJA9$%RSM!4%,4>6A='8 MQ5'*-M=C;;F1(V*-'/WWL12H;49_V6ON4U\U2SXD?N M ,,?T)2 MU>C5K\:U4([_;W\%.&XI#+R:5E=Y*N'RG,FNM5$!M:-ZVD:5D"M ME>":DLROG"F\GE1H%.;$R'C)<,L)4;EDD0K%=K*85M70R[SCVJHRDRPDF[Y' M=#$Z)EY(J@GZS0-]4219_MAKENZ@'TU]]T\_](0)/@HDA;'=:4[)Z%$+XG6O M5@+!CR%&T9CU MV'M;T=82+!+JP;M)&Q]WD_)8W>NL4*Z0&+:?SZ#G,;73J?B]C!V<1I=?MB$] MA7+QW/+K-L"]U:@'?2E!Z/J!SVZ17$\*1JCOG-"XTBWQH>]1>@6$2))^E'+' M!6FK4]!4DI_R&SNO(,JG 411D+XN >8SI=_82\(4&E2S/_[-%_R+4ZS;H>0= M*E*E<>'6(JY*3ELTE4+?HA)17):C7L3FC5KH\O17"O:?!^EL9HE(*\,,C)9=_%J.V:$S(O02A"] MVWVKJ3S%R&3=5#:9-!%MQMBDH=Y51+UW:^QE/F,3+-9J2D6SI*Y#>6[ U'0= MO3+(Y'J%[$C-4@9)MT=#)K-J::4)NVHA\#Z-;5EP0GOKM\%=H 3;M+?%?%T5 MF;Y/KJ]MBOJZZ#;Y3:ZO*3>BT]=O:[OQ7F\963-=5S>#[ MM+6JV+3?GK!D:O0&@E5C6TSX<+@UM]4%)S*XPWX;W+G_]!S;-+C2A ]'6X-; M77 B@SOJM\%=^79#((OY'CYNS6UEN8FL[6._K>W>[FY:3/?P\];65A6;R-1^ M[K>IG0>V?;?RC%U=MGV?!L=)3F1SQ_VQN9IK%V@.<78!8^K']W.DW^Y49GT8 M;4((3GB)Q9H$14;8GY06S\NWV:P#&^1GW=J@'@G^#6ZF7"54H=>3TA75[ JK MI?L!8@(VW(J[$*8PPV%@47W4Q!//RY^0GOZA-WZ!V'F"MY JU0^?\CXNB1/0 MIA,-RV\?Z-MP$^^AK(59E^Z7=&M"JH",&M;YCJC:\">C-Q(6IH:Z?QXX)8PQ MIGS2RWRG;XLA-\X;_6I,JW_X\IMT2VSKS*PQU=_(@TVUQ!@ M]'$(%HBZ*[M.9K.TGL )SISH^2) \\MP@O"4+1[2JEZN^+^,#+@$&Y@0=,!? MX%LN8LZ6"/J#>HODF_\#4$L#!!0 ( &)(!U'!XU2ZC$X #!G! 5 M=&%Y9"TR,#$Y,#4S,5]L86(N>&UL[7U[<^0VDN?_%W'? >>YV/-$2.Z7[5U[ M=O:B]/(I3FYI)?7X]B8V'!2)DN!FD34@*:G\Z0\)/HH/ 19+#"K?1,Q[E)5 M9B(3^ %( (G$O_[/UU5(GBE/6!S]]:MWW[S]BM#(CP,6/?[UJT]WQXN[T\O+ MKTB2>E'@A7%$__I5%'_U/__MO_X7(O[WK__M^)A<,!H&/Y*SV#^^C);Q7\A' M;T5_)#_1B'(OC?E?R-^\,(-OX@L64DY.X]4ZI"D5/^0%_TB^^^9;CQP?6XC] M&XV"F'^ZO:S$/J7I^L7KZ)XF?O)>:?DV_\V$[<7>JE65+)>OOZMOA? MSOZO(8L^_PC_>? 22D1E1U4E\^?!/SQS?OW[Y]]^;__'QUYS_1 ME7?,(J@TGWY5AKFB3L MQT2J=Q7[7BK;O+<8HJ6 OXY+LF/XZOC=^^,/[[YY38*ORLJ7-LF#E)LEQX^>MQ;RW[]]0\,T M*;\YAF^.W[XKAN\_%5__"A,D7=$H/?]'QM(-S-W""XC29/'*DK) :>U?O[+D M>=.V!K@7O#3)XWY/O104;_Q8S&KK]#C,6R!G7_)X9:U*48FQ)<.OX4-53E[S M0A6-00TR3I,XXSX=U/!UJX;4<*'E*A1%P"R$K].IB,#&B 9:-E&V1;'@), M8L5$"C9DD+NEJ<<>DG&-_V3G)+2)8 ,JM;1HR!# QV];FWKY<4C^]YUZ4R.'4X)B/%>82>KL97$?G.$EH +R3^FV,%\)( M31K)Q9&M/)(+)%N)N)8(7NB#IC3X)!;1_)8^TRBC/V4L@-W-RRC7_H0N8T[O MXS7SOW_[O7DML8- IXN.G0UOK$Y&2T/3-78VH;/>J022#"220B0I91+AG!:] MXT&*)5(N$8*131AG3*C)J=#YA*8OE$;&VEE$P6*94F[57Z81[;+G3%D9]3XT MA5PTO6E"8]K]:BM:=!LIVZ)G>5% /"@";1];!+]E20K[;\E%S#_2EX7OQUF4 MBD7'#8\C\=&7NW.F3=*!,MSN48PPK[EG,4 FGXP1NO.GD;% D?+4>#Q("&? MUH&86E#Y4EL]*S5S+=^_???MVQ_,NVEVO$X1.\2B&\8IRU?"I(W*!-K." "LUQ>SX,:K5 M\84+FHG&J]3;P,GPNQ_>?E>T,WSSZVD<)2G/?%AEWE&6K)C_"XL"YT5!RST4\^."VL5N^=#6YX] 61!>9RL/9^>T26-$JI'AH[2&23,JE984)/A M (%1M\Y44A*3-Z2@WQ,(+J- C$:<:<[W-#3.&EZG7M7D;0(187;>7UG.AOE]5URKH-D[E0OKVMU*"B:R/%(OD.0EDFV11)99'/_F MI1)9+#G9$&7O%&5/MEAVTT?O16'N>FFCM$/MIXHJVU=/K17U1?;5KGTN>ZLL M_<#ZZX5H2V?=M5[8H?;6;H7MJ[-N2_HB^VK'/)==%0H_M)[*GMU-K/7"#K:G M=BIL;SVU*NG+[*EM\YSV5 @8.ZR>>L=>G7746EF'VD\[U;6O;EH5]$7VTK9U M+CNI*/O0^BB$![GKI?72#K:?=JML;SUU6]27V5<[]CGMK5#Z@?77<_;XE#KK MKXW2#K6_*JIL7_VU5M07V5^[]KGLK[+T ^NO'YG#PYIZ88?:6[L5MJ_.NBWI MB^RK'?-<=E4H_,!ZZKU#/_C^\+W@3G7M[:SFB_: V]8Y/:%9<_'OF\93R M<-,+C0ZE:W1H5&T#I$6&"B-JW;0PJ<@Q(&6;(*L7*EU2YTL2C;*=Y4F+#A5: M-,KIERW;%&8(\'+W1,,0MEZ\J']P41&[QHQ>X39JNI2H<*-53XL!%5 JNGE@TE)3#9*"""%$FIKU 410SP^/ M"Y;X7IAK="&^:Z=3Z*%U#1.MNFVH= A1P46GG18R.4.)',F" #;_03UN!YH: MY3R0Z:BJ!DQ%AA N;=WZP +T,T+E-..\H;M^#M*3.COH[5&V.O/5T*& 2X]R MW21QDKP!EUGGI/,H9>D&'IC\F"FB<=0DKA"B4ZY$1OMW%(C0*-7)7B/)"-"1 MG'#&]B]/&Z(4GO?4&M4F0SPN.&LY7'-W?,[YD\ MNH1N :)3M(F0-A4BB&A4TV"DH"9WEZ?SSRWWWNME($#+EL4#*CU8T=*[A4R/ MVDWD:(@1 :'TV7DQWP=U\(I3B$_-]^<^GA<@LM*Q.: M #.R((*9C9X:L#58C_*8%Q+#L_=2 $),^)N$02BNI+BGRL6T7?:6E#2NL68 M0=TFLA2$B/"DUTZ#HH+RJ/Q @ ?R#J*"SOL!!K^?'SKO;:'S'C5TWH^!SOU+ MC HZ'P88_&%^Z'RPA<'QDV'VQR'B*8YEN"%]"%@Q'E!;?6[^ZN*BO4VEY5 MKOV( @HJC;I7E?/=EIQHGL8&O'+J:4:'YL_.FEJA5-72M=]P-'17H4X[RSXN M:.;KU%O5=89R)V!8U^A4N(Z"E1 M0*57O39D!,.Q7^,@.0N1/!C 6#(*1@F0E(6N4U<.K08P253LE>:.6, M\R/LCOJ9F#__U MPY])R34+"#[&]]P+Q%1YMUD]Q*$FGY:2RA44#"J6:%"0H "$7J\V)C[&I" E M.>U\^;8:*BN,:OWN"@9*M4H -'Y$T?0JC3H#0:/%9YT$SE_])YF(6WTU0DWF M>C)0*=F>$.HT*(!@4*RS<"E(24D[W]6([53VV.\/&)V#1UOG MX'%FYZ L/$]T(D:JZX>0/7J:!(Q&:M?0,*C<1HF"%!5@]/IIQX^*A6QYYLG= M*1.X74;+F*^D%A?B@\)6#9VS[)TF-:OTG2HB%$@Q:=9)X)FGU*L1$Z">!QU9 MP%(:Y"I=L,B+?.:%52)(U9YZ/XLSS%@J7\&GAQX'DNR4[( J9ROS-5:,VZ2> M\VS&YV$>O] P_-]1_!+=42^)(QKD.S"J/I;'&91ZG%Y_YVK1BD-G5O\:-1LXJ9%A @O:LTT.*F( M24X]YW7R//M%Y8+!$*A,9&,F=WRYW*ATZXZYDA81"#AC5&)UG"(IKH MIZ86E5M$*%5L(J)!@@@1*KTTB)"DI*2=$1'G*\H?Q;3W$X]?TJB5;CS*DN'$@6<>M73O]!2<9"291;L7 L\\_J*3ZIRF=*5]MY% M/XLK'-DJ7Z*ICQX%IBR5;"-+LC67X9*1 .?\F9GJJ?[U#F"#R+'?K%"PY3;7 M*% @1:N6SFFNOYPP9V; ["%D_D48>_I=F0:-XWR 7?5:J0"W!(APT-5*EP!0 M$A)).2,*3KSH,\_6J;^YX;%/*41T)=7XU;=K9\GM%CF#3&IBRHH5$=J&Z*O! MX58$JB.(^&U8A M%KRN5WC6YK07?+V,** X5%O=?^/"!;MEQ /+N2:R'[RE?74;/-$E5(=YF4J?^E$'9AO^DH$,#)H-R'?\( M2(]304O8EA@'<(I#IN26^E1 ^B&D'VFJWEFS8W$Z'5HHWY@5#?1H@&6A9,>C M*ECD !7+4QY><2=')**3;)#MCC;H*Y&0O;GQN!AYQ5@D+2\:= Y4N(W4BAT''F\X77LL.']=TRBAYF%/0^L2 M:49UZ[!2$J+!D$D[18H7H"4T)T8R:Q9:W7NOVK&J23(#2AK**< A?\>&B;I2 M.BBPR(]7E*1 B@,.IW$"^[OGKSY-DNOE"0M#.*>ZCCZ!JNN0IE2,DY%J%5[;;9;K<%B"$^(W-,AS MJ%R^CZ*5C/!04L[BR7=553KM6S(T@Y%>MS9B?O98E%(XK*&U=2,K^1&M&L6( MN:8\W=P(_5.QY(#-NS7LH8@5A]:=,+&X]<;ZE6]Z9WIZ-"BS4++KO>4L^=16 MTB-"&>SPWLD>$U NMX*OEU=L22^C).->]RVC 7RN]_*MS&COXQN9T"#/5E/E M_OTST(/K% H.,=05+(A > 8Q'9S".BB?]7MW8XT<+H%GH7H=<@9R-&#KU[$3 MK5-P(%RDYA887U9&<+X%(=BM$Q@EDXW M/5$.]NPNL3+4J#J:;'G1##L#%>X\S[)EE\Y67<#_(+D(=%"U"\$Q,Q%THH]Q2I,;;P,'HGT'^GJ^68(D^LQ0 M1DSHF- SE930RS%0\QY_()H![0XA2\,L NB:!//$3ZA5E@5.-&D1 ,FHWK: M8(EU3HT&/#RCP9T7BA$X7JU8 F]P]6+(Q.,82OWJMQ"E9\ $K%XM%?@"'N)7 M]'C&)U"L.]6;C5?1SP MO=H*6'6)L4%*JZ'ZTKY7@ I7&$1YU+D]_(332S.J M>GA<(LM*_3JZC QH$&:C91ME)4_SA-DWG$7C0*#U8#;W*&8W?,T\;O5N@EF/ M6LWCZ-HB$0=L!N^*8=D'&[;S=0![78-WMU2[64AV'FKWS8T7@#ID;@.WU$HV M([*:-&C0HE&L&T,EK^\G^?7]_TZ^>?O^.['>$=BE5.MLI"\!C/Z!*>#-94@PVC2]S9&U+' M73\7&MQ9J]K&7@I&7*N) M(2J;W,!_^M._O'_WSW^1467IACQ((20MI.1N ZP-BPS^8@J0IO_\OO#NB)?*W1 <,.IV'.L> M-O=H9C=T81^GC+L>26.%2G'&6R@#2T;&H^ *!1H3 H0+;Y;:MM&7+U9S#(:M M&*!$.UWB0&9MV7/C\6LN4TH%*9L]%QX9F#6&O MJV9GIDBL*)A)S/.7# ,B^2%)?IYP$1TP\S20BVKOJ+]RNAPS 5&GN@: ;7*, MP-/H: 94#7TLP'44?YP)A(T-=8\ MN8(VJZ.2#M1B9H:#7!Z M552E&X%0KT=@(8D@Q &IGWB<)#<\7FI/#AL4+D&C4*V.DMK/N+:5NHJI=Y!T M_Y7\9"T%X #)'951BS_1B'(O%(!?!"L6,9@,X9'@(L&8;E?7DMGI?OD@@QI[ MZ%:<:,:I0>IVIK^<^8@\YNQRA]-K"$ 6*'V]IJ!7])C[;E=QYVE@(Z5+"!I4 MK>--089KM-,K.&S4J^045_IQ $H^A4Z3-#>NZ"[Z=#AZ1_N8G Y>5@8TQC$C!QJT6:G9C[F?6>*+ MR=.+:)PAF1J'P@T)T@:!# >^>J?,H?C*CYK+O'&8)L=RQK\0;0:I-UF4"9N* MJ3R.DCS.+*>3*6?/7X7C&/. 11[?P'.X">3/@Z2=L?0UR\':N(&WIQ+=;ZKN MM>JZ&[-[*0Y7U]J_H<.\VF(/N0B5%&OZ9P8WE8GX$V'JJJI6BO'H1*S[]!M# M6FKW'4FK4FBC&HZ\1+F+Z+@C(59J@W0Z.5R"2A+$^H0ZV%!,S#9Z=FYZ@Y4 MU6+:);W4>^U>:D:%&@ I%1+_[KI MWR49DD/V2JTK%E'I'O8962.ZWVD5#'DLC@0-<=3DVMAT+,SOM-'%L%X3AZ\,$_O+*]]S]0. QTZM[5O@KU: MKW9M8_/8)%#R:,RSC L4W$B R=CR\]4ZC#>T7,! \GH3W(9(<7ZI:KB)G6YO M+P(-)L?I;4H/08KD#K!8I86$XI=X+5\O7PO>P\%V?BE#U/F3E] =$:Z0A0WG M6G.'HKTCZ* PK]-^)/+7A21$V#_-DQ1 ;,AR2?WT>OF1OA2I/*%.1,7X;!W2 MRRBOGNOE(L@[L"Y2;@>!3D,4=S:\$<(X6AI&KW!G:SJY.X/?LN)Y9G*649+& M9''WB;Q_^^[;X[<_X.@)-1WO8TT6F7([A,KG66F4R#,&.4I<2_N36[C]F;"4 M%C&B>07=4C]^C)BAVS@KW6VR(:=5VLQ8Y*1H-+.96WN564,*QRZI3X!)$2E] M:(OU#S,,R^>1,>6&0G-$FEAFV7(S**_< M?%/0HQDY+)34;\C%2R)? )-KKPA8^3 M9UU51 [TP'(JX8Y/02>LD-9NVP22T72*25D8!)Q7D3FQ_ MT(DLY.0(N<'3L,[H6.C,Y5HG/(84/<%=H%?.4_>X9EJEV MK&Z?Q[0WIOE.9C\?&J /4+;[D!\= \+ME'+3MT#>CA: ML\:<;BL"_;[#1)L,A[RC,&+[X/1)_$7EDU+Y';'R.2!/OI8M0W#Q/1\KNBWD MZ:)G-/_W,BH?C!2+-#3&X=JR.;Z%8&].ZDM++AP:Q Y35O@4*6,Q!RBL> M),-OU[S2LV':%%L]//-"4*&^&7LU!FR3O8VRW?QMA8>)%5\WG*X]%I@7O/UL M\Z),;809:$T>_%A3ZMM=WD@B9!EQM,;(NZ]#:Z!@0H&XA@%6>),=DG=>]!G,,8-0P8@?BWJE50D.=6_8-E^[?2C> MP,4*V-8K]_?<"X:O1)K,.-8B*H/L5B-U3OR@-6BM79BLN M/3>V]XX':]Y=R^4WZR <2G@3ZX(]=RA*7J3@73Q[+(3=DHN8PQ,Y=]3/N.QN M9_3!&L%]4F:%L9V)1BR;1: 'M)7ZBB>SI*L-KG+R%//T.*5\)6/]B@!Y7) 6 MMHF.ZU,:R'RQ5VPI5@E)QN&:Y$T<,E_O' \3,0>8AQBG0K(-/U88#]#=A&%Y M74/>EH5!.A12Q+>%&!Q(UJP*%-[3L&6%4@""19[!,(M%GH+[(!9Y>KW5><*Z MCC .M.K=_0L6B4XUS2+/* O'(L_"7+M%GD'0 2SR^K5OX[OB0+C(JTTX)U[T MV>0,*TF=.@D&91O.@((.VT:O03%* 0A\2H-A%CZE@OL@?$J]WBJ?J:I] M!*BIH6$BG&8E'&%<(P_A 'Y=QCS&O([] MK4R$@V=U$WVK9<\@:N28)3V57G5EGJHN.1J ]NNHS230@!FRT59A5M^@:F:9 M&6;&(=)$CQEH?0.>&FGH!K0RBY:\]%N\)L!^IT%Q+[T<\QSU#D2 MK.U8!:H$;"-%HL']-'9H,[=)L4>D)OB(%**/:MY!+A[SB#VRGOI&]=W%'D _ M,LX.N\H\])[4-\M,T)7D$[T$W<0TJL-@Z@[#P7X@4!X%5#W\L %/>_^CQ^>Q MX',JHD2#.Z-Z7:_R(<6\W+KSGVB0 MA?1Z><4B"-H4'C!++SR_R&?2>]QJS^_TQ'6H68U#5UMF-) N'/7II2WK&^]U38CM?I*? 0>]^>/M=@3OXYM=M?_CA&[C=K@MJZ2-V@2P[ MA0%*9LK9L6.E7F>^]B9X(4"#@JTO<4N?:931D\W/WF\Q/\V2-%X)<-X+D=I! M:)P(9X@9:5R%HX'\.- U3NDVYO[N2_(?!TI#,J%6#R(-B#8Q<#A.7-BG>BM% MH8Y\=CC:ZZA(0 %)W04+9K=-85=_N(F)96:<]82;Z.DQ(ZT_W$0)-73+WC)# MYPWE=T]>[WBF)W<)LCZEZP#3T:(!5X^";6"5Y$30$\F ;@!K6]0W>AGHYT25 M<=S2$J/%5=^(I0(6NN'JEH:0J.K&X^GFGGM1 G>F^Y]M[&=S>XW"SHCFG0HS M#QK862K:O6TAV8CD(W5&=,.;SD)[=VV0! S(M'3F!K"CQZN]JV> +FK7;ZN< M3+,"KPG(5U$+>V0$FYP''KP$*BC/_]=W2+RC4*>'R9-40./0>2>):/K$)&9T M$T0)AF/)00H6LN =]D??$Y4RSP'YI%6D/D:?I @T76P_=IF.Y.O]KU[2$2G+(K(P4I8F MPYF.2%D@VI-[Z]'JI#Y:]<;Z[RH5Y4QFKH)14YE:))J.-HT=@R)B\M%^3R-;XRYAYQQ&=]8@4E'[!)+9H7K4%)3HD&24;TV MD$IBM#BJS].+*+BE*>.T&93?'XEI+\%Q'.90TUI1F+;L:+ Y7.?N#EO)0DYH M1)0U"\)*_E>_S5.RDQG^49]43BYKB7W2PO"#PUD!RC;&6%KK$0FP05F4G*CW;76=6' M&-7.UVS#BP:L Q56)FH&_B/2P&Y-!,*UV2U+/L.]E$\""SSU6&3QH%0/C],( M!QOU&S$-)@8T4+31LK.J AYY2:C!A6Z@_!1E2>:%2A/[1DE+7I<('&1.'8E6 MC&@0.43;-C(+7J)%*-)ETD=,Q0*%GN[-0$(('97?:0T']DPK<\?]XN^^WP9LGK=AD\P)SF.MB"$0T4 MAVC;70F7O"1G1H+$3XD8L<^3E*V\5/O"79O(J6NF5+#A@S4HT*!%J5;'JTKD M/%B1(4&%YCDRN_G0CA?!NW(6,Z0-(QK$#=%6^T*5_%!C1X+(GSW^F::PQ+BC M?L9EWB+C$8>)P27V^A6O TY/C09EO2H:7B'.7W9?(<)5X]6.XG&B9/O4AA%B MEKQN@V<&F-.,I;%@1(/!(=IJ'DI+:@^JX#TMJUY(L)M[]>2S/&]A,- 4C06J3%$GY#_!@Q^QUB"SZW%\HMS6A>(^]A0H-$6TV[ :V2C]08D>#N M[HFMURQZ%(/__Q*CN)#_".&*EMO%ELQ.]XL'&=38,+;B1(/%0>IVU\TYLYRY M2_8\4!4),&]I0D7-PJ;3F>@]82Q]B_-7""TW+YVM.-T.BM:F-(?%7C8T8+37 MM3LTYIP2B35>9&!\S$(0OJE2P_5L$1HYW(*O5_4FZ+3DB,#6IZ,^.Q^:8Q"Y MO73%O(Y+3,;&LC9ZZK,NHP*>>H$%-?KXKZ6Z"MB M^&7/,ON$>9 ;)GS222B"!-8?Z4NQ_2Y< MV1L>1^*C3VLW7^S6-,/%. WD&VED(\QOH PT4!ZI>"=$D+Z0K1QREPK/T^,! MFN&YNGYHL!>.XI\@^TAR&=5IRN T^XNGTQ0RS\74*2M(?7%UBA+0])^]F-5Q MM5=KST]AGW41Q'*6DTZK,!Q6MPO M+.02*1@5;O/5;J7J&.CVB)@1O5;&&0!LY,>*81NEN\^8%I]E: M7@;2?(Q3FES%8FDBYJ6B&T:/V^@:>S]GA,1YG)K1IJL]F,'B9N\#T]F@#<_B MV_ L&6V(#?Y5I,]IQGG?$#Z4[Z" MEP7AEG!RS<6*X9%[JP%[UD.%.(VG&65@(Z9FD 0T:!VE=M?-2(IW4FEQT41\ M*I\6$;YS!LZ'6#C"]WY9$('OXDCZT9- 7?,L8@<+3^2B0 MLIN[JI/^Z7XW>6C>QK8QV_JA;).P MV4$[E07J **'#5F!(.(7D@AHCV- K6]8E\LZF$F*V+PB"K3(Y#PX+_)@B7,E M21YINBYC\D!QL^-_.AM,T9OD'H\CL;7T?+FD\&P2K,<9D3<<8(@ICGQBAO_;5:N'? MPR[R2O2)1#Y>C6B%J8ZYK;T7=K+I/$&V>/%XD(?E)C\)PC2YC$1%L3CXA;+' M)U$_BV?*O4;5:?ZH;\?5WQ\_[D@A/ ,!@EI0QK23(DYQ M+=_DP#2.;!\-!3V+>KB-P_ BYE S0Y^S9CX(;@,&DS;0:.,5FS$3A$%,+.-$9_XU,_/B3S6<)3/RQ:QGSE[>W>R(@T M 7+/_Q+NLGCA0BC-_#RWN'193[,5W%MGSS3?';H7?3QAU4Z0IBIW%3I#^I\= M*T"1&VBD1#3]81(S-!=5CD@AEM3DDEPPV4HFN6BRE5W,'4@FC-%5=,4B>IG2 ME2[#^!2"#Z(3=2IBDHY423W\SM0V9?H.!24060227M5.7%&$HVMJ5DL]9SJ1 MELJF%"(%J5.D/E/^$"?TR@!8LYIM%$IJXOD^SR R,#\O37# R7!Q^)KG]X:5 MUX;[QN@)Y"))PS"L&BSS,M@)13- 3V5)3^:&IF024S]M5CH)7_>4]#=N6CA=/,+"^AV27D= M_43A$LOZB?D+3CTX;H0<-][C-BKK0K3)^6M*>>2%96A6LDA3SA[D262<"TY. M 4-\<[T\BU?,9YTUVEQ*. OOFZV"JYA YQK,/HK.:G:[)XN?X9:"3WB1%<&3 M1^]%L1".DL:I%QY:_[Z(.66/45X+K/,XE>O"#[\_ZRIT__VX7?(7WG\UYG:N MNB?,B^;IM-TDV=?"L;AG*UK8>[V\A^)5U6;/ZZS+##6G0KPM(P[ #M2V<^,B M)P)LE:#CN:C?Q2+VA:5/))&![-L;;4OAL+^(KO!4<;"DSA0_0Y2[4, 93N_$ M^6Y@H#%]4/('LNMI<'0'2!N1C0/-MH <&M96#$_U( )N@%\\E@DD[&3 M1)8/@W6I (DK#7!L K3/M@O:S.]QHM MC>EL//;PS8[Q$'6^&""]MS+R(/F20OU\:.! 8_T+*/7$?T/,9Y>\RN:Z" U2(+3Q^"' MF]9X$MZ>'0T6A^NLA2&CS0=-()LZ7]]CWT$ M4>BJBFZIQH]MLK/M2(+$T:IRN=UZ+S][*>7,"W4NE8;6Y4!A5+<.,"4AFF' MI%UG[\![(:N2!AEH?HGYY\OHAL>^WA'7$<\"&Z7"2MPT*/$!1Z5>&SE <\RB MXW5.A0P[%[!1^T2#G^(XZ,5.BW@6["@55F*G08D/.RKUVM@I:<@C$"&#CG3/ M^ZPLB&:!2D-!)40D!2X_1ZF;>F54Y6Q%!@Q(ZB%W0V'#G3]W8O9L&&8!C%9Q M)7@ZU/C&&)V*%FN:^"$1Q20^%5\@PY?PZOL,ER2S8*BFG!(UXG>D \Y6,_4E M 9R#C5C"&U['Z)V$>[CG<7&L3%+[/$96? .4E;[JM/PLSWH>:!/Q[RO2O7P* MH$QP=QU]VA;?C\&Q0MQ%GH\UU.YL/.8Q%[@J+L")!M?0I( M[B#,&31W-KB"Z&A).";O26QHXU:&R^;!,)I'3_:$XQ,F \A&P=:>UQE*AYI3 M@=*6$<=P.5!;Y9KCH9 !"9$#-&F09<>ZC,Y?8FEK*$2?^?+JSPD]C<-0 M_O$+2Y]85)RN:T_F]U:>VYB*/5=;,P)C3X7A&.!=F3GHR:LH3F6/I3NGK-1, M!/^>>?(VWO6R9IZPZ3?:L$YNN3_R[FG'6"'.IH;1!E9SQ& ).":+L6IWMB*R MU0/E<&NG9(8<$NN":4^P7#P*Z8^B+Q27ADX+ W:"Z01"G<%VL@JH8+RS1!RP MGLJ,SJ7@4FYY&YB4TO8-\8LLS3@M[MO!]'%;W8J#"-8I #]5$>[A/VWE=#O# M-/*1=8U)C=)W%&\%83Z$TU5^1W-/':6Z7%J57%@F4]E;]_O+Z#EF/CAH95"M MJ@[W6)BSSK/W"JNZT=Y*PM&A]FV>YH9T/0\%>8:BX"Q(BH!5>_G*'8Z5N[R/ MJ'@95;.ZTI,[OSYJ4+IS5U1!.SM$+14<^!KMG@9Q_0&Y%C(#^)P-K4/,J$9) M&R8W:/HA1U,DQ[) N\T]0.$)XQJW#33 MB QS0!?I#6R3 M>"FA,&XMA41A$MF(7^:>07[A+*5G\8ORPGV7RO'\89% Q*"CXJGX9Y; )7O9 MJK&\?RHF]TTQIZ<46Y#:E4"2QN[\)Y>KC+HR=93 ][,/. IE.KZ<^ E'LYYD M+ Q@2!"CU>5*#"_/>5YK4T!\#X]+(%BI7T>(D0$-=&RT;&.JXI%C/JMQX4#: MSY[_Q"+*-S O_B-C,EV-"68F!I<8ZU>\#C ]-1IT]:K87>X4#+D[4;+@P-5% M)GP:V)47UERP5_AD'+T,]"Y1U:MV'51:8C28ZM.P\]S(<@FO"2Y+-HS($DZ: M<+W3#;RQF-;[BMP7U%1$'Y-+C-D94 >:F0,-VJS4[!RO96F<3XXIS_S/2*9% M< 7K4[S!F6R2N?:W54JV?>\Z#1JP:!13^>0(W28MU$US7!\3BD%(.]N9.7#M M&EOIJK[RNBY8,4Y]"]_/7YRCP1E=<^HS>5@A/H<4/D!BU%7,4_9[GJ5:5PN: M6IM.O..T5I-62BM]S22RT8RZ$QND/@W;ED&"6B$S[61J;=#)/$Y7"C4JX.G_KO:+J]0JG.XTXUDJERS&HO%:Y6 M+)7>W$7,\^"]4V_-!-AE>N5 KCV3[6,YJK.C$4(<7B(<:6#M\N! ";-#;2>U MNW=$*CGR*&8I)1$_%Y7#LY UWZSB4QK(G+LG7O3YC#[H9I,.G>-9I&?)KE=/ M,7%(8@)501X$N9C?'Y!,&EDD$,J0:24A!?- M%Q[C12#N0D:B7V=ID@HG3J@_H K-8N9&M8V1?<@VR4"-;@O%=0CWFM1*97+5&V\#65'ECK!=ZFPEQQQYLPVJJU+>*LC1@*]?QS;./D5^2#U( MAN,_433;]#=QR/S-4QP&E!2HO^IY9-Z*T^F&K+TI#?^RGPT-ZNQU[7B> M-<[R.7=2\%J_Y+[#BO5.@#[(PNW3K">;G[W?8JY[[\26R=F*U-J :@7:RS$[ MK :I:7/U*'^-,8U)PAXCMF2^%T%6NH ]LR"#O#53O9TR$F7OQE3 .T0H>S<8 M9>\. V7O]H"R=S.A[/V8"GB/"&7O!Z-L_OV806I.B;+W,Z'LPY@*^( (91\& MH^S#8:#LPQY0]F$FE'T[I@*^182R;P>C[-O#0-FW>T#9MS.A[+LQ%? =(I1] M-QAEWQT&RK[; \J^FPEEWX^I@.\1H>S[P2C[_C!0]OT>4/8]C@VV2[B#2>^] MU^+=XQ,:T25+(1\@BS(6/5ZO*95RF@?5SH1&-E,S M"QH,VNG9><8H)T<%L+O42^'BS94H:2C,^GAG )N=.0K(F1FQ <]*V\YC[2F> MS-*Y&9JAW&R[EFD&N/48H,"9A@-7Q*Z5KIJT^:HY%0?HSNB2PDLIT[F+.TET M&P^\L^G-\.'1XM",I+O;T U.SB6B]"=+Y0H?9-C(:\L\!Z3M#%*AU\R)+4/, M(*U1>YZE)0TG9AP@[43, &W1="=E]OSXUU8V"<,%0 M&0(I_R*(?I9^H,:^1;D=!&-8!MG7MOQB4.NKK&G*F&5\F;)ZE'B?H@ T"X]] M6*6XFK;.TO8(!ZD;TRO95>(N0Q%702XL=P+QS.+XO.(K]\R'L0#EB?+Y>BS[%GVNB^JEV& MXJ=F!?5L1$TFW64WF+A*ZMUC(M%HNLVT]G0<,-%9J"Q!9O6E?.5%L(<;,/$E MAPSQ"9)=+,WPL5T%0$I\T49/PX8?%3^""4%OEL54T&7&\IK!6,6[F:_SG^5@ MGU\M1'+C2V/9Z9-07W3A\\B3CU*.61CH9"" J]D\"\BJ!: 9A,=HW=F(C3EE MC]&Q\%+$: XIV%/Q,WL(*WW;GRB$\8MD@2:G[L04<\QWFL6F'5 MR6N3$@VRC.II0U%@:9^3'Q')@!1&U:+OU.-\LXSYB\<#:USIN&<%FMDD(_+4 MK'BA:-37"IOPN]KJJ M-D(5*#PB6VYRAF8N_H6RQZ>4!HMGX5,\TH_9ZH'RZ^7=DR=JM):4Z\1+F*^I MJX$R7")UE'EUS X2@ :]8[3N/%>1\Q+A0*X$9!/)6T^[A@/ PD?F\KT$+SR5 MFN9&+M*4LXI="-!F<9%_K= MR'=L<[O/5^LPWE JB6Y$U3^)/@^/"^BF@]'27")^1Y/KR!\I"LUHOYO^_4.\ M6'O*Y."T$%4,].M"F!SJD?2#:DJ#B#X:)7DXQW9>.]ET9SU8LE1)>A?0P>4, MEMRRY/,%I_0R2JFHBM1P^.R@7*=]RU4U-GKAO@O%TU\=6=H) !&DQTM!"\?H MDAC13KFT^*&_4AYL*N6\B-B]IWS53K#IHD#GG76O%=?II7LI#5?WW*>)G?!< MD'8LQ9%ZD:16)GG8D#I=42Y9Y!MN4#2199-:X7(C+@]=A_(1=?2I1K_2OK_% MH1 #Z?9=S=*ZD@]VGC97Y=YF:G6QN 8#)[9V3K;+KOM<47_!'?@,7 M?+8>6 M?J =TZ9*]]1=345_B9W8PMX]+(FORS5P39,C4NI"RK.>4ALBU?GB1H[+*.4L M2I@O79K]MW6[O ,='=35MJ?QH%G8ES@"*"UL]_F*B#S+C:QX^>7.[3\)PC2Y MC/*3.E-0^%Y*.J1>::BJ*?NCHI@OIB?J;>M<\BDZW"-PT$-9M2:#[-^',SVE M!J@ZY_15.ZC33E?\X73FR6UN=_+*!_8*'YB6/O :N.H3+ZYQP!3G(G^\+K?K M"YUU'@M+Z6:>V@4H &:8"G_\YA]@[3W*$-#+VU5UZ_JNIO3RL+94FHNOCXJIIR=:DHYG Z MZVC;^F9CP7=WTD% M-KKZ7DO$T[%=F&DZH*T.7K=C27G\>M0Z7R52,/F[%/V?2'KV^%KKUMD5B^AE M2E?#CG-V+VS^:7RJ"NN?K'ZM[$EK(WZAO*B7 M%4OO7^)6&[@ITMT[W6XJ;_O*]W[+F[V+.C2RV[6[KRA(<1/4+^77C_)/-"N#=LFKQQ*.=VFL=AL\HAP*#9[$,,RNK0;H.7 M]Q J$>0_J,<3\#]JPL@56V*ZG."L9ALLPU)YN%)I_F0?;BN_/QV(&WUF'V@0 M5<+$#DY-B9VN3"$._)CICJ[;MXH)HFZ;VZ0G#-.'NPS)P+4OR?7M2RT.(A^NUL5[^^B7Z\*A]_G=[)[GY-XKA%A$(.8B:QK+1].(+MLG#UH/T9J)P$$N*5Y#BZX0V/?4J#Y$+@#.X. M>@*#I65R\^52?!'!6X&+*%#7F"DK_G3B77:SJ2NEWJVFDHVF&TUL4'<:R\5O M PNVP>Y8NE#QV)S*_BF&G7 M]IY3+\GXIF:%JE$49/AV3DU*=E[**VB))$;2V<68)88>\VOT;2*GG5FI8*/S M-BCP=%:56IW.F1.)5722DJ]OJ4!""3]_JILF1EBTJ!P_$*A2 ML?7:7YT$$3Y4>IDAXA1:OF,^:=U+GT> / M MD>\W>";B!*2U+FSPU>H>QRB!)/KZ!.,^^N0IK #D4<*)M?\AD-U MKA3CY% )R, S4OW.^PRE'$(+020_I1*N>/I$2<"68LU,16N0!YJ^4)I_S7,H MBG_]^#&"%33QHD#^Y MW/9$_\$!\G;^%"S^L&S@K= 67?T7%,CR +SW?!] " MZ.#W.()S,A;Y80:B6%ZVER0T+8J!0FG7! :;2CY-9-SH PM#^6VI8"*<^)'FB DD!!)Z\"-?T28R-0290D,_X'N<;Z2A6]P4IJGMO^+6*Q_AL>5!96 5)0(ESC/K$223)2U%-T@Y@FHM?+X M9R%!LAT50&3/E/PC\\#I%>NSK?M"RZ>GI#,["QRWN6@*W_UD\[/W6\PKM[V# MQ5X.7$"T57>G-0=@; 7;PHE8B+,E\R$(:M[U1Y_=[P8W[+O#:MAW>VM8%LFG MXN"65]G&*)OX_> F?G]83?Q^JB9.A!\M7(2#;>D/@UOZPV&U](>I6CI]8OR M&_K;P0W][6$U]+=3-?12Z)X^'6Y+?S>XI;\[K);^;K*69DO4#?V%)?K"!3(G MQK8A*@E)"$3-M$-5P'N>&E=&\\K+5[7WT/+-B.U]W>;%+"-$Y\D5ILPT^A+_ M3!7O">^YK$/(#F9575/T5F-!7TPWM;%2W3^AGV600RSOJ8E%5TU?X@F[*T)P MHDQ=]Z5 =8"Q;<1^VN+4Z8RR5XABR.:C!C,&S1#"'E&UM#M(>;^45UF7_%JR MI53P'A6' I[B2."(P&EG*)<+M'H5 :@;786\L/2)1;#"V/:VF<[35V(HD(\\ M7,3\(DLS3D^]-1.+(1FD'##X)MF&Y2C.T0=*P(7'L>JK#I.JUXGKD(D?0O:8 M/XX!"TG/_T?&X*8JE^<[*<_\E*R?-HE83(H%9%YR?EPIZ1\HR9+M.684\Q70 MQ5$ C'!2F24L@D-(0;SF,9Q%D<!MR+EDSNZ6MZ(A85GV6R_^JOP1L1 M)F&X4#:!)1W >0]9Z'$25,@L3RK+H V8O:L]#&BC8GM# &4%A5?;%00LGPD/(2[S"JM)EQ06"$YG;M+_Q:3P @E%U<-'2VC>$" MA^,WZL.6!X?/,HH+Q@GY68P4LP#@W_,(F,WULA9N=E-HNHTVNXQN"BT[*!@L M 1<4QJK?QD,I1ZY?9#\O'=M&(XL1PDL)[!T445-%(C!P3!^'1XK.@IG%HS!% MN.FT.!4Z+:IM/(9VEH@+4U.9TUEOEW)+D)3PD%"ICS5_% 3F:]!B'K^/3\3' M,O@:[KOLC,=IY"-%YZ3&Z;&ZE,54;E&^3J\%R4OP_7&P6XP)U\NJAHH6D%G9 MK(>(RR*T^SXN_=8.BO=6$BX\[]O,_E&X"HDH05OL;GDAIUZPJ8-=(!$AUGGSJ,-'.HA;R7@ZE]CU1_B(4=Q2C8T)4DNX4"P M/\E,:NX9DQ?AK-_LJ7*F]=&P]KG]&+<_'VW&_KMW_!:5/\HY7J0WG,4<'J,Y MCX++XJ+=953N$U]&YW*7^'JIO9NJ!_[,BB'M,3AJI?,<8O=RL/#URKMNY29Q MOC.8[Q+6;V4^##Y6(*+_T4CVHS68)'JG-T^H[8+R.%E[/CVC2TCDI8FY4Y,A MPYA)Q\X&L5P15(?A\5US #2#&>C^2C%Z+-W6!T6](7#=&.F9,A%&[ _0$!RIX= M#:+;DKYL@+;-G Z@D!?C#P?0C\+=<0/0;4E?-$ [9DX&4+&\_0,"](Z]NL%G M5= 7#<^VE9.A,V&O?T!PPHK5$3RW17W9 .W8.1U$0?0?#Z3WKB!Z_X< :-O* MZ=;P?T1PGH?NAM!Z65\T1!6&3H92&OXQ1]%SN#+J"*?;HKYLF';LG ZE(/H M0'I:WNZ$>J0L63'_%Q8%&IP9J7%!Q495-Z= ?DT3P2U5(6_("X. MH6Q'$\&G(J& 1Q*I$K"6.M6NB2/!TO4SY?=L10<#1\V('25&K?<#"2 N4TCG M["QIQ%4_PSU*H9-K1)0O3BUD%H+3;JYP)8'C=Q@;>A=M:]:K$RHHJ8Y(03=K M)>MK%UVU]M0G^?L977I9F)(KX/[/F:KUJKB_SJ@)P%TJ1-5M4*[C36])Y\:S M7!X\Q:'PX)+S?V0LW9Q0,=+1QJ.HJK:P8D34/,/T[;R47N/^'R3G)P]2 +%_ M$W:/[=@P0UX[4C5:EPI1"QF4,S_#>T0D-9H>9-==?OT63'QDBDG^MK/ MB*I>I56[EB4-R8EFJMOKM7R$)GK,'Y2]BA.EOZH@0U37)NW:=5[1DN()W:^! MW/CR]AZK_V,.DMP?K+W;?/XJEOXQ#UCD\\H)>%'Y%F8:0L;290GF:K+!3J/M/SY9+ZZ?7R(WU9 M5+<.;SB+?+8.1?W=R$VJZ^4BR$])5)@;+PT1I"8PHO,B8262Y#)A)U!()5NQ MI)(+1P^Y9* J99.OS^B:4U_><'O_]OW;X[?OCC^\FVLP:QWJ&288-26B]NY1 M4+G^@/QEGR*6DIR/ ",I.&=J$;B/QSGST5,RJDAH&NOS3 MGV$DK+&B::<;3M<>"PR#7A\/ZM;2J&K98 7WS*.AUBKIA0UJ,LEQ" W65'1@ MX%E@.FBA-U4QH5MFS+4@8IA!P1*09-*%./AX7N4C I'P;RETKB, FIYZR=,-CY]90(.3S:<$%L_5T+/P M4_:L[=CVW(C:>X32G5,#FA*004HA$-O[]:?\.9T_UP;NK:R9VE>X!_()HOMX MD;\/)#06VJ4;V(A*(2>7^':]TD0QV7,C:M\12G?", L1$"%0""&EE".YAY<> M52?34A26YET\>RP$A_ BYG=>2.^HGW$)P#/Z8-?&9A&8&]I2SC9)VYB87-@I(^I0&\D3KBBW%S)5D'(*^;^*0^9HQ>P@_PL8>I+:V MI2%"^NM2CCR9^S,!4:2214IAN"9FV.5,1D_,"FY$33Q"Z8$3T%+X&_ -.PK.8,&#+1Q[7ME<4:Q3(&HFC6+=O<""3'0F()R[HH7G9*QF\3O&2JZK9:AB M039/*@9-8OOKJ)9$OWHXK4#J:\_7.Y]J#2]G"@ M?.^@SU"8./T4WLPZH:=Q&,H_?F'I$XNN(PK/*"C7 ?LJ#%%OW[^-G16&1%7C M0*8L=:ZIL0F7H>=?)L6;",DP,TK5S+PR:RFOX-/%# M(LI+? I?1)6(N?9F=2<-6C?'S(&HCUHJVMEQ;9Z:- ]-YG6-BFX^( S:S(&H ML2P5[=X^R%_801@#7<9G7] %J8C8M?-G(@:;Z#"VDCV@A]S:]ZEPI\3@\E5 M[(]J4QM^A"T[2&UM^THIBMK14 M5',E$!JI8"SVV"K6N9L*4E=%/@N9],ZV!H*?)N0]&5NMCQEC UKKW&[+_(8> M[(G66O46.F53Y%&MN8](*?:(+%:P<3=3>_\BTUW28/$L)HE'^C&#)(O7RS,6 M9N+;/#_G]38/IJK5!XI U/9C-6\CH)1#"D$DEP3+R5P(J4DY(H5\18O7O[H2 MG\37Y5?B/P]>0L4W_P]02P,$% @ 8D@'44"Q!GQN- U&$# !4 !T M87ED+3(P,3DP-3,Q7W!R92YX;6SM?5MWV[B2[OM9:_X#3^9ESX.=V+ETIV?O M,TN^Y7B-$WEL9?>9\]*+)B$;'8I0@Z1M]:\? "0E2B1N%*D"U>J'CN, (*J^ M*J"J %3]_3]>9Y'WC&B"2?R/-R?'[]YX* Y(B./'?[SY?G\TNC^_OG[C):D? MAWY$8O2/-S%Y\Q__YU_^E\?^^_O_/CKRKC"*PE^\"Q(<7<=3\N_>-W^&?O&^ MH!A1/R7TW[U_^E'&?T.N<(2H=TYF\PBEB/U#_N%?O(_''WSOZ,A@V'^B."3T M^]WU_1="?R3' 3$;[C[UTRQ9CO7N]5WQ7][][Q&. M?_S"__?@)\ACS(J37UX3_(\WE:^^O#\F]/'MZ;MW)V__W]>;^^ )S?PC''.F M!>A-V8N/TM3OY//GSV_%OY9-:RU?'VA4?N/]VW(ZRY'9OV)%^\I,$OQ+(J9W M0P(_%9AK/^-)6_"_'97-COBOCDY.C]Z?'+\FX9N2^8*#E$3H#DT]_B?#;OG5 MU%]$A(;H&0>(@S9[RUN\/2=,)-ET1=\GBJ;_>,-:ANP3)Y_??;O/Q,S_BW+I_0BA-=)-H;-S79&Y]BN+T":4X\".KF37V['": M7(W0C'TB&4^OV?HQ0[KIR7MT.*US$B<)B7#(OA56OWB?DN#'$XE"M@!=_I'A M=*&7-NNA>N+ON9\\747D12N;RDY=3BZ;S7RZ8*S CS&>,A&+TU$0D"Q.V39R MRY@68*2?K=4H'4Z_^$@RBL,Q4Q%ZAP*$G_V'2#]G@ZX=3O0Z?F9@$JJ5U5K# M3E4J$?1>)BF><5VX]&G, $K&\7>NQF)G#YFVI-0/].MGR^$Z).BKC^,4Q7RM M+&$T9K1)WPZG>DO)'-%TP?G%5IHYUVW=%%5]NEP#G@A-CU)$9V>$4O+"(=1J MO*)/AU.[08]^Q-@0(!2:3$O6ODMN^0:+RUJC3I<1OMM._%?]%!J:=CB14M5O M$64NP8S$]T_,3-'-2=VKP^G=H8@O2,QT2A<3ZL<)6X"8Q:QEFJY?EQQD8Y % M0L(&NW"OC&>69L*RU$<)[-I;S7HCIPH M,TK,1^C9H3*;KKYGU^Z"X5)1;]J/ZV"J5I(.O;L19O,SZ=NC*6R(J;)7SZ:+ MX3JD[=FE%,[F;#$;3TK+5J#W8ABN33JB](4YFO7NS"DV7!%4G. N1'Z.3F NS#3&=?@38 M/.Z'9,<(?2%]TMH\^BX] T/";,>!0\QV+>]H^!UA9DM=F[%VX>$9BIUI_YZG M;,MUFS%Z/@6T-FTLQNC:QSY;?/5_)_0\2U)F'=()&]Y03@R[=SUA:^:J.O48 M*#"VM)3=.O4\ L)<@@C[N9.W_+*X$,@7ISNV%$_(Y72* LXD_E=C[V/[L?O! MPE9<#+KN)I!CR'GS$79Q"&O+;>N!^HY,F:Y]!GW[F6IR1Z+HBKSX-+2?J[QS MCWP]JDY@G*7B8C436;Y1OR(:X&0+QK<:O$=BK7O=U4\!V MMD:=>[M)8#M;L]Z=1NKF;!#^03\JX]F5<+:I3EJ-HIK^G**$#\.[W;!?K'5! MK\RI"E%8#L0IL+I5G^*4]RA>.YQX1_QIA+@4P7[,6Q:S*><3D6!M"A%_0D V MKNGS&21L"N*A0(*"XT?R_#9$^.WIN]-W_(DB$ M@UN.%_D/*!)?^8VUV6CR=F=S*[G"C?GFJ:VWV)Q9%<41#3R."V5\+\?R:;"& M7?V51='B[5S().Q=:VG(Y5-0+C?0!L+L4IONT"/FL^83 M6IXGJ5<*21=#]K^'7#N4U(+B,(KCS(_NT)Q0#?O76QIR_0,DUYMH V7V?V4^ M31&-%B;\KC4V9/E'2)9+* 3ENKA-+NX;F+"]WMJ0[Y] C1,)C:",OW]"4<2/ M0OW82.*;VALR_R=(YLOI=(;]E_SLZ()M/.8(5+H8@O"S*R#4J 7%X1913/CC M5VJ 0*VQ(>\_0_)>0J$#7+^,0U.>+YL:>TWP+-\@#Y3A5S@)_"B?UQ7[7:)F M>D-S4\:#^*M:,AU@_G\CGQJSOM+8E/$@+JR&1!"VGV>4KDU)N<[(6YLR'L1Y MU1$)POG+.,7I@F?$^9;-'E:!V76.UUN9+7U*+K.$2O_XD6*G;7FIKR&\0_59('R/!;BOE-\'L1 M>EM3EH-XI6H" 7D^\5^O0T:;N'C/6:5GO;2+*0(@+JD1N8! \/M)=$XJX>AS M_IZ +LY)J%SJ-1U-00'Q52U(!X1F%(:,:4GQQPV.T8D*D,;FQN=1<# HR'2* M^:=VS#\U9SZ(#ZLETRGFO[=C_GMSYH/XL5HRX9E_SGX2*Q,M);;V7*71 O5$84S(+,;T,GTL6@ M\L_&=^Q EMM-,D"8^2O%*9L'?T"5Q47$1W(.)VEJRF00UU%)'@C#[T6Z#IZX MXRNS*"E>96A?YW93.U-6@SB*#J5K/+C1R2_1]'1*J M(@^&X5F(4Q3F$VO(ARGAO;:7*0PP;T8-B08\1/@51=%_QN0EOD=^0F(4Y@Z" MZAQ!VL44"\"S2PVY@$#\DT09XQ45EU>I1!\D34T9#WAF*2$/\J9H?BE[N3/E ME3A5?)?U,&4_X.&EFEC0&W0IXC/'S^C"3_UBGBH49#U,40 \R%03"_P*@)ZS M;>F1J,_M-QJ:\ASP^FXC:8"LOI_Y4726)3A&B7*UV6AHRFK >[J-I &R^G*& MZ"-;[+Y0\I(^%2]:52R7=#!E/>!M7"6ID!"\KM[3YR_]E/QO:&VO-3/E,J 'VT 6()// M_/@'S>9IL*A4"E[JGX$;93B *3" OJT5*R ##GE&:)[\5*2%KF;(588=E/U, M 8)\M&I .*BEE*P>LZ'P;'''D^KR"Q,3])J>194RM\V&DT%W4Y1 LR\9LZ$! MK+^_K=%UPW[1;T+9:I&PE<.YEECVU#ORE@%WD5DV3DB$0TZB5_3WB@':RETI M=E,_>1#P9,G1H^_/<]E#49J4O]D4PN+7ORUG6*D2?$MRCT*1E[;H;M:[M5IM M3]XH21A_]81LMH/*96O%UW5UDE#2W2+7%1K%OF@*2JTY6$9<-8>;8)"0Z@8: M/$?W* [Y'[Q2SK,?\95XE)[[E"[8!BF*A\O1,>P.EEG7" C2AB270!0U@R:( MSGAIJ225G6B7ZTIC:[#LNRT@4M'K!B+URH[?4"IWBTH>*'N!9>IM@9 )_6X@ MM:S&=NM348=N5?*137D\O6-,IL](H4_F(X E_FV!H"U?W$#SEJ*YC\/+USF* M$Z15.$ESL$3!+7!24NP4***.EA:+HA58NN#V$*S1YP;G16W-Z_CRE?FMR7AZ MAJ-(7EE3O.5_I/Y, 5+K <$R#[>Q +?CFAO0KQ%LZ%X!)BEN[58U<'U>EJ6Z MR 2(MM 8T*Y&QAQY_Q>" _CFW#(Q],;/$77<9)1OSGU3L6]UW2%RZ)L M@Y8Q#]R [*)8DYF5E)-GXA K.\'E7+:!R8!N-P#*9Z>S%" 3,'<5%]\7D^$& M^P\X8G0C[I^+ \XG$C'N)WSE3A?ZX+KY"'#)H+='W99/;NAC9=;&AR6J/G#I MI=O"($71Z1.597":7PRY(7[,J?U&4I3<^@L>"36(S,N[PF6L[@9%8^ZX 689 MQRXF9QS!WVP/E^:Z&]C4?' &*YJA\-Z/V I!9C.<\%Q2)I"INL'EPNX,.3U7 MG *POM!KP6OJ I<]NU/@Y-QP [0R.KJ*E_+PJ18X33>X[-O=@&?$%3< M%&W M;?2LMVA)YW;EOOB';3S"#GS 'I*#=V1[#L3SJUQ8UEV_JK6$RQ]NSN3-T[9F M:MW 8A2&(L3@1[<^#J_C;XN7.4?<0/ .I3Z.47CI MTYAOR4XJ"2'GWM#=U[ M\S=TWM_6QONWPYNZ'?BHC.5C*B8N&%@UUY( MC[+TB5#\YTJQE2#6.T$_S^L&/1DS'$5-)).T0:SL /T\KTNTUIG@!E)KUGH^ M34-WI6P,_3IO"X04Q+ORD'^5$G<\Y4D(*BG0URR1#RI+9#6(1Z9>,0SD?7(^ M@>6D]":'M -H[.X9Q9E*6U8M@.T%#;]K(;AUPMQ8I_@9Y7CZA9!0^""("CVY M)Y%R4Y'W@;8"[##14^\&2E\H29);2J:JR/5:(^C]W0Z'!OJ&'OBX1^(ZP!<4 M(^I'3+I&X0S'F+.!9^,M'F\JW$'#_M!F@AW0=EQQ0_G&<\1G%S_FI-Z0QBRZ M1>O&QM#/^.TP4M [=*44Z;!1DN:4%=*F?.0E[P']LM\.5!WECJ@:S^GYC<1D M702UBZ6N'_3K?DL%-.*"&XBU &M[G'H[C[7#R0:B@2Z7Y09PQ3C%W[_C..,E ME7*JF2N!/^Z)>_G"=BYR_7(9U3VM-'H7,2 MV"[:O?-_/T24D5ZHWAFS+)5>DK0#=!Z$-J(AI=N1S0&E)C;S1C/PI :6NT 3 MD4-7J_*>6'EX=>8G.&#NV@6.LE1UX*#M")X7P0Y=0T:X$M;FX>EE?+H:XU;< M+EB+=W]LB'?+ M[5,;UB4"=.W]O=@C?J#GI)JICA1/.D=*.=3N-J$MSW<5*+ MZU'K%%5W !< 8:J+A*UE $JEK6/ K(F5#('*]*NOZ5Q (1>E5<["T2LV :2Y MVQ"Q:::D8ZR6MIU- /KZB+%H[A@2-Q:R[:S[WT[AKYUL8=_SZ7>RJ%S& MF^_ P=]E\'375Q%YD11:_&3^-(./Y.5#.1"HKE!F=2[5T O6%^,3NJ7D&8>\ M>N=WMJ1220>W/WK\,'0WJ5:9V!9P; M8GJ!&'@!%IQA/T=(8!B'HQFOQ/ZGKW8?S'I#AY]VANAF#0MSUKHA#!4/A@=; M] ^L).VA8U! @*O9U]JY>$;T@20(/EJQ+$+U*V6>[05Y4:P,36VAPU- 8B%G MFQM:7];:L;X'KNT('?0!6_B-&#K\!4%BAW7JK';BF?97\!1&PK9@O!MK#F,) MO_& +E#^YW5D,_5-H&I-I+%6-NN8ION0MB=5%P93?H]T5](MK MG^%O$'4RUPMOVTC"9D_P-TY]2D,SF_98(#1ESG7]P)]$[4 89)72]T84OLWDI,O6J_K=W:9$S;A]EI:A/ MMUZ>;CPMG]/8R(QV*/#"PWW*CB$CAR]#YB?57=SB<:#0<:]W=;:6"T=2@ZRN ME98\NHSRFW8\"I387_AH-1QX=>46LK(5Y]P(C3)3O+Q='/R188J8X#-13Q?\ MS#@=Q2&_E3KG3>2(VXP!7HIY.\Q(:\+;KA6N57:JT3QZ]G'$W;DK0GF%ZGL4 M9%1P[P(]V$B-;B#P8M"]BHX9&_='?AB93%L"A$*1"^\&3YDEEF245P*Z)1$. ME%:(W2C@E:C[D!P;!@Y?;"1F60/[K$W7QC' *V)W9[HJ>+2_IFM1X:0KTU4Y M''A-[4Y-5P/..6*Z5E:_,S_^H3$W&EL[4&K;&CH5W<./452IX^^Q^7;&(S(& MM;H-NCI0JGLKO)4<<4,M);M0P[)BO5,WCN% [>ZN=FH%CX:^4W-RF4/,_^!. M\3/S(H#'EI=)6?9C'2L M913XR3OR+G 21"3)*&)_.3GVBO%$ONO5B-YJ2*\<\Q? W )U"@W<5T4?R'=\ M*MPF3"3.(J59;]H?."^ 'K'-!WI6?'$E(7UYAXNM0^+.1=-MOS4=_'E3!T^/ M2V5+/#\./3&,5QD'4N\JT] K7&-C0$V[(7ZPR2?&,GW"5E[W&\7?^/I+G1^#YU&)!V[\.R(:MVVV)1^$NJ_+ 4NKS9UWBI;TV13S<5^=.Q5_;. M#8.R/Z3^2F\JZC74H"OL^7'S[*PTTFX48/TTQK)^L&S-*E?T\?Z)T/0H171V M1B@E+VL/-=;T\?VF/OYT[.6])ZRWM^H.NYT^I':[9'-[R#!O\(3"+$+C*0.8 M7U!@.P9.K_R@>(IE$NDU'P)\2U3AM1GHM>6,*TIV@Q[]J+A^(E>P#YL*]O.Q M)WIZE:Z0RL6ORN \+1(_/1-/QAY1S,/L-CIG.0QD')AS_ZN?LN6Q-E63N*]9 M=V 5;(7J9@38AE&N:"5_'2!1Q8^;JOB9[75^ZR,5-H&0R=C)YW[P#HKVK91$,JW5,GN'F(>[OC#D4GV+?H MF_,R.NY0]0(_[M#B4W]'KF6"*[I3*7I?W!OF-6.:U:A^9^;D>'6$P4;P\B$\ M,0:D3E6H$G/1*Y2\!Z V;4[*0)4478#U2(?)AA)I:7=%@^Y0Q,_R;GV:+B;4 MCQ-&$T\VT:Q#M3LO)Z?'7C&$)\;PJH/ 7GAI)LSD]HNN)VAAY>;)6>U85H. M7WLQP[%6A-F:3ZZHI+XLXYI.UF["G+QG^UHQAB<&\[V M;#OP/BX4'7';E87AMGQ(L_[R=FU9J%WE.?G(KP 4'?,% M1O%H5&#;SEC7:@ MI_I5MAL=X$LZ0/O'C;RO'B!FE97U. .I9B*EYQ2Y_.T=@GEY"<>$"H[@ON;U9UY%(>KF5D> MD)L/XH0G*:P/?AY613"Q=Q3-QH$_,+?%6.KTV3#.%3V]\C$5+Z3'TR+1AA]= MQXS@3)BD:# 3[Q7+R^=CCW3W1WZL, *EF]]E\GN=,JR=1 MTRN<66_@1!Q\4M6)KE QB8>8CP"L@#9(-J3DL.&2*]IXAY,?_,K;]SA -.7O MC&1)-$YK]VI.WS';E?<7SQG61@ ]R6PBR> 84]T-4 ._QUF2^5'C! W4S[ [ M]+FE"6H;2F?%&%F6^6R\OY4__MO!/.TDUZ&?BL#VJOB(G(2F MMD,S/.7TNI%[\IS-B%$2BKGE9K")G:+L95S9TQ603)C@!ESWV4."_L@8#RZ? M5XZ+,6Z&W8WK!K@"H!5;W$#R>\)6A3+CA6(1W&QGB$UOF;.ML6DFU T0)+E# MC9=!L^Z&D/66,=M^/;1ABQM(?O7I#Y3R:.JJ#(@NUJ7J8XA9;UFOK3'3,\ - MH-82AY59[58)Q'28&78WA*^W#-?6\%FQQ0TDEUE5C-=+>0]#O'K+.VV-EXYX M-R"2YBLPALQ\!$,(>TL6;0VA+7/<@'2M:M$YH7/"_$HTIKRNQ?@E1J')")*R ^9A$??%%Y":\'3]')%#1WHB\&/' #+.'X5.K0VZ<# MU'4V!<^=.(P%3]P L?EE4_ZRART;3 09E_"S>-:DU<16@YF"[$[@9@N>N0'Z M-_12(9J2F/T8H,J]*F,;R'XD4[C="?2TY=:P#N4G\O(6I_6G_I9'\OG@AP/Y MCJ]V*R23'P8\^?$C2J[C:AL668J[.8[0[L(T ^?>]D!$II6Y(?];5-V MV*_6G@2P-82Y .&9'_&8R_T30JGV10 ;PW*(X5PKL*?-031S?V%9"UG>)Y1:K)# MU@14-P)XAD?;@E:VS'%%T2R+6ZG4L9;*HG6)*Q=4]U"TIK%H9/S(*R$LH1I3 MYL8]4G]F6RW2;ASH9#>]%+5IQ\QM/25)0NS:9"I3T*WN? "+_M#>;,=H6E(/ MAN(+V1K(^A#07NR.L93QT)7=7%5*3K5UUU+O&!24.VS2CF[2#:;H-Q('6YOJ M\D'VBVN:[LCIYV7GO.6044]554 M&E=+%;0LOK.=@NU7%9[U(C-&YNMV0^Y-?1X3SKFB+)7K>2J5J6?ZV2S9X\+> MM%>U>ZK'?K,YB?E!/3>'BMD6%V#/4(RFN(5EV6)0\+BP;>6?#ECHQEVW%2&7 MTRGBB=G1DHH[/Q6O%6)>I5)@82\,;4:%CB1M(P[MN>C*NMU<*$JUA->KKBG+ M1;FPGN])W:B*W&U,[\Q/<, ?-N H2U'80G'M!H3.)6Q7BZ(I0 M3G*+>DYF T&;H'T7;+)AIW.RT*@@XK?)*$N?".6G!-_99DHW-\BSQ>4KH@%. MT"UE6^D=5ZD.RH%U\6WP(U>($F'=@>:*2=:4XEIEEM7?#LD37;M@FNUYQNM* M7$>3U=D^+&8WX'#S86_)0UY-_@CP3+KX@'@^5WEO6"4^(5G_(JW_+^5GSM\'*PRX0UUYR[ M?C1B,HN#/(.J,*7/LQG//("?41[D$[5R\7*!EY.[[;BZI:"F-[VL"&WSW;0F MNYK!9XA2P58A=)VBF2(7:A=CNR$=W>A.5Q)48<_2;H:5(GL:1J]8(3EMQ]MC M:6G+DHHO/R@!N2 S'\==BD@YHAM"LIW*;"T<)3-6AC9H7N%HFB)J*C#=C X=Z.I8=+IDN1M"M,H$[-,\@\?R MBLLWE/*K:0FBSZH4_^8C@#_"[LJVEV93-N.A&\B+("\3V-< )H:C2/YF M=/6L3;'%M!T0>G_I33"V9+$;D4')ZMX&"V7!DTWZ(VA-\R-V.4&LIL) M&K682CM EW7I#4T-BRHX,I+S%TPW.=NDA FJGA%]( D2;8$#7KR0WBIEP"@( M:,<^6,HV1%?M01+RL)+_,_)=4<7ZJSC0^U MK"WE@45YQA%7JF2OQO>*#WCB"X<3C8Z/,]?R>"E.*3?:N1$ LD])N$&&(R<( MBOR(8YJG1VS,CFAP@-#!T&Y@W2RIYJEF3:EUY#A@%/Z>):F8^16AJ@2:RE, MRV$&!+4E96[$\/GSO-6% 5TXK;FU&QBUDL_-"F"-]#D13E]1L[QK\7T>,K$\ M?7?RX=UG'7*&W:$=6I4X;JJ;#4/<<%7_0F'*S@R(0Y1RKZ*4?'<-8AG'4( M9QW"68=PUB&<=0AG'<)9AW#6(9QU>"#0V:*ZY87_T\.%_\.%_\.%_TXO_/<6 MZCA<^%<]3M0_,=S?0XQ-%K@!# ^ACZ=?" GYN>C M!C6?W,!3DMI3M1E+.D";T?T=)BHYY :,WU":S_.&),HXU%HSZ,VO+\@:N='Q ML8_#-;V+X/PWGU)A030?!M2*J-A6]RX^XRV_\Y<_#9#DC;]DWT@7O^(059)1 MQ5\0/UV>/^%@1)'/$W4&7%8>5TG2KYB^7#(IH;$?E9G2DU&:4OP@0RF^#<0?[K90W8M=U?,>V#+0TX/;K32>^5G_?O0 M9J0C@B8#IB)&K/-#HAJ1])Y,.\.[1M:0>O+5MVALX](R#B MDQ"Y]YBI-7Z(\&,9=6@#F,6(T,;FMAA:,\\-ST!9T MB]A2[M)H[HYI>T._?+.^@6##%(=@O$?BPN)V:)H.8@CJ1[= M6/1/EP%3!"; M_Q-/[<^6K(B(2F-:2=!T,\3^DS/8&['!#4UNSABLN/0E:6^(T4_.8*0FW)4; MEP59"=OY$7X6F5SY_Y3W*FL%*[ M0TLWR(B"C1[@67JD.-26-S71;JQLY=.)U6SS"]?,A;W(F(.+_INMT6-Z@U0A M:JM!H-U^'#HS#K0V)5/N,\(;DJ,H(B_< MK;TB]()D#^DTB^J4*_ V[ \=!K# W8HCKFKK-Z1/8*7N!>W=;Z.I=>H[U5.@ M K3%ZU:]85JKV[SLZY YNIR370U:12<77F_?^2]?_111[$?*VZR-S<'KQFH1 MD;VX;B+;C:5Q.<5?"?UQ'=]2$B@-45E[:)MS"W :*7<,G2L>K7M"H;@Z98#. M1GMHLW(+=!HI=PP=8?D:H%*T@S;VMD!CC=*A&_=+JGAI1,%]BRPB#7V@3<(M M<)5RP#%-8Y:K 3:B%?1)S19H5*@MOJ@%Y1?](+E)QVR_R\*L 5)Y_X<,SAY MT<1;BN8^#AE#Q*$E0FMCX"%L/[,(Z<$7H#8D?)XC.K)+_& \ 76NX&_2E M1I41^_JZ@&>V$"CA%/?%[,>!]E(ZAK4E%WI%UW*YUZ*\Q7C07D\/:&_-73B; M72(O6R1TX_T[3]_6F]?5@S0,,U5;RWQS_-I*(.[SGJ%S$D7B+[_B] G'Q4&A MZOBTMT]".WW]6 J]8_27\VOTWLRG;KR9@POCM LSN'RF?XF%RZT=$K3BTE"< M'S.B78+U+VGX#,6[.A@^?1D^+T1O^_S4D>WS0@[V3U_VC\2!_Z_,%P\WQ],* M^DPO?D=K&B).V!]I\^4"/E"+:-']I5'IGW%8[[S8D[;@MW! MN'MFSG3$E=U(PU66,E**UZ!\SRM>A#+R^4W\CF2CJZ_LF:72"X]ZE9OE2^#E MM(L)\VL'YM)]'3\39HHP(ZM\ZB&1H!Z_MX=1Y-[1<>41VU\LGB MUO#/FR9J93AAJ!(^H(<=O$N\9X9HAV_'5U=N2!P8E8QI[+%?AJB6W%XW"_F= M-"5&O*]9USTT'&UX9A^ ^)POG['8&T*'[FV:*.TV^CH4BU!%ZE\TZF26[>_S MYI[^X;@2>5I^RKNL1)XJ7_.6GW,M\=^>[?@Z?W0]+Y&=[S-*;RDFE,=H+V.V MD@91QD3S.FX^6&@409TC"SZ]_;)/W.+M<'P.NGDT> M5K\!^#NK]VX4I^B"O"AK2]3;[M<:HB!T2XO)H<3(;)V;(YHN^,+U1X;GRQ(K MJD#'QUH]Q'*8_#BN',BA^$8YP=N(9WZN$*O7:(.N@#I[PS@NGWO^K\!Z:=VIZ08=;6B+CQ$WW #NJ\]8$".Z MMLYI4%/U@8X.M(5,SP($9!@ 4P[.<("83B<#0C-,5_YHG394R1RT=W M7X!.H-M6DKKFL>/KA3(1AKJ7(<(_NX:P"2^&?\[5%+,Q"]S62E=].EX/W2S' MN[?QF^I*I(HJ5UL--)[31&IO*09F,[RL[Y[?@"PBPB*W?2C/AK/?>*MAG-M M2;Q #ZG=R51S>UC;)4 H%+G9S_SX!Y^BO=%-^/C>$$QD,?GM>71 MN\2X7GW^\['XNL+VX!T4[2'+23$DT?*Z@UPU-MOIM*$F8]WJA(:AC3JQ2<)R M0WT':_WQ\E>+)Q*QV11J>^9'_ ;9S6:=\@9CT*0S,%82]C>;AB;T++?)3H%+ M:%H!C?UM$S#VJ]_65JED](J;L&$-F]H- 0;)U"NVYXX9_LV?,6-C;4X79.;C MIB@1:Z]H#LQ^"6=K[%=0L/+AN@T2Q6S9S )1I!;A9(:#7W$4),Q#0OS"9IP@)<-EC<&,4EM.JZGM[85M[;$]V]B3/O&9=$V=5^570"?7=("H%0 M>4F;1-H,!EXW5HMF[55R:Y:Y$2$ISF2O$&.L']4(D>.K[0A]G<0>3$->. 6< M.$T9Q>$-^U(+^'3=H2^,M ;1C"].02E92[082OM!7QAI#9Z&$T-_9%0FR.AT MO]UJ4.@GGO:2T@$/W5#^DI!BU[%>!$S[0[\2;0^Q&63 ; M!?HU:GNIL.'2\&5C26!^'9:G^AB%OS-77_-:7-_M#6EG/G4OT()$PG@&Q)C?9Q=#CJ=+@OF:EO$<9W=L;9N0R^D4!?S$F_]5 M&2ZK%>59_X1'IA[. VBI_^HEY6<\9AFQ7Q$/E5_*?W.(K/5%S#HN$DD?E2&( MI3RL^C-X#,COYC/#C<9UR68WW 0):25&T O%_TU86SR M9XM_6B=2OT9V]H'AQ08[YJT; B.1]I6%S L,L$D^6:\)34,,+Z9HS9]]*+O0 M2/+YDQ\_,MF_C'U1 ;.E.2$;9GA!Q%9\ M +$%CP8'KB:WH_U(PXL(MN668UCO*M+C8BQO/\_YS,W-+JSU(8;Z[#GDX&TV MLRW:[7ZED7YV';N!6(H+^%C.529ID*L(-,@D"KM :AZ MOR+\^)2BXD<5E4Q&:4KQ0R:T:4+$[]CD47CK+T3*469.QH^ZR@)=C V]P5I* M0G?L=$,\)))]@:.,_;8FX-;Z+Q\(>D/N9@G0,6KX=T\N9_.(+!"Z3TGPXS:C MP1,3;)ZCV,B+_50K.7GR_M@KQ_3$H%XYJL>'=EPJ=\;"38.X=$@4) M1,U" ?]#1>%-KE]O.2YH!CZ&VG629"B\R"B3=J9#F!1*()47Q4;2>D#H',*= MR$8MZ=]6W'7%%Q S',]%00X^/ZT7\*E6G#)?'8@8PYOS01PR_P_K0GU=6-H] MU8E7C)^S1=TTXE[M,DGOB(G]3."=W.'DQQ5%Z#I.$9/-5'WRO(-/[^5:LRO$ MW+!V5_Q1D_M@0BX_@A*G_8C.FC+[5%GAG:?^9+)7D!P2QJYTKZ3SGX1Q M7B0^W^%Z*?LXM(OG_I*IAFV/Y?0"/^.0V90 4KK^:>CKB<.1T2;(''0VDCL2 M15>$4Z/T-FHEU:K>1N*Q82-O*H8YN!M[YFX4@E()U^7AO!X6(OFG#NZ$!2(# MWPGKY&V$DR]?$0UP@FXI6]=V(H;J">RO8[$[^/9.9IE?3W&Q@=D5_5>6#5\2UI"!5BV&(LZ&=/'H%_1.6D5*F 9B-SI=:Y&(=@2:CD3Z&=_KBZB MK0!U\ A$W+**^Y9^D0H_A.%WYEHTDUQ.UNL:<<=USI=@>:>O^M&]=I^%KN>6>=( MH>DMB*N3=J.O3=W7]]R0Q-WHN=&VO#U+^ZFHO4L);>*DI#SW]KR4?^P@F]WR MLY?"X[ KI[1\>1\Z[DCQ\SY%I/^%LM_ZZQTS91RK*XGW]SGH:PX]:NE:Y;>> M\>JK:E_'.P'[V$X%;>V#T#<7ABEJ#9@-0]BN2$9W*6O5[T%?4QBFJ-41&XBD MX>>=KFK5[T%?-!BHI-40&X:DW>/770I:Y7/05Q"&*6@S_R'*6IU MQ(8A:9/=[J 3Z_WS\T'.E'@-0\PNHUW;:NM?-([?'J1-!YM[ M=P_$M>$"T. M@F39X#<$Z?L^GP-(7]-7]^K8:G?B)P?0Y2O) M+8DM$Y16[GH6=T%W=(ZOFL!>'89)!7C77.U_*7WHB(KZ[#=N6M\A;@KA^)%7 M=N'W(#,_XBF\-(NN&_/;J_,W_?+L!M.=6\AWQI:U+M:)"'9-=#GPFW@\D0?!U^3IDS7XD?AK&\><.)7[( M+P7-"CE\J!5R^'!]VBECCVL6_)/'?(F6B"R M'T:@,G./^$=>#&^9N[:_;=1Z(M"16K>D=3LX'9)E$VO-SJ :8,;"?4HFL[&. M/C/[A?O;5X0*>>Q_@ZM_$3J*Z-;280B0&V)X2TF 4)A<,9[R'&-^')0/6Q/A MNERS7\3<,A[%DB,N3<&L[KX '9?K1JJ"'P5F%R*Y/-N;#P$95%0V7&@'$2[[E"*\PK)YC5B M?ZJIUT_'WFH@)\O"KMFO<;B:[8H0O?)9#0*YN;%)LBGR2D!QHG!\-]L!ZV,+ MC#9WMD;"7=G)[K/Y/"JKD?O)TU5$7J[C*:$S\0UE;K^?:[G]*H-Y 1O-F[+A M/+P:SXG\?4TT7^:_,(C:F_4&U+2R=N:MCQ5&XWHKZ,O(%HALJ%<3M6ZX\,Q! M)#,T\5]1HH-BHR%TR'._O-_P!02P,$% @ 8D@' M4>B5QL(P,P$ (#X, \ !T87ED,C R,#$P:RYH=&WL?6M7VT@2Z'>?X__0 METUVR3G&L?P G,QPCP-DAIT$6" [._=+CBRU;4UDR:,'X/GUMZJZ6VK9\@ML ML,$[FP1LJ;NZNJJZNIX__=_[OLMN>1 ZOO?SCE&N[##N6;[M>-V?=^*HLW>X M\W^/BH6?>A$\!\]ZX<\[O2@:?'C__N[NKGQ7*_M!][W1;#;?W^,S.^*A#_>Y MSU4K%>/]_[Y^N;9ZO&_N.5X8F9[%DY=7S\-GFT';A.YE'\1$U2>S\V M-'QKIR_H#^^_%U]F'HUR'VV(1R/UJ!/Z]:IQ, T.\43RPOVD9PV$&5;(__?I MZDOZ>)3_?/KH^R@PO;#C!WTS@CW$D1I[E>I>=5\;9"_D5F8@^+W<]6]GCG.X M5S/4.&.;DUTI?MTVPP3C-A]!MYH3OH WJI6]BJ&-'O#.Q,'WW\.WZL$XW.N: MYB!YN&.&;7I0?I$S-GP3^"X/<]^A;W)>\GS/B_OY,-E1\#X:#OA[>&@/GN*! M8R7OS7XI^X+EQUX4#/.1);_,@2\,HO'UP(A5]1R7"@/?Y7[-S^O'/L>Q'W MHKT;6-@.L\1O/^]$_#YZ+^3!>WSOO1SVI_^SM\<^.]RU/[!K'GUDYV:??V#W M]OU'=G9"/WRO5)O?OUV_K9[\TFI=PC^X'K:W-^_;M^RU- C P?+3)&]?MUSPPX M8.@['7IBD) ^6V2<$X3E4HY5&P/I<8,WOU_& ?]>UT<9P"=RC+9O#UD8#5W^ M\TX'9,0'9E0&$;MQ^C#-.;]C5W[?]$KB@Q+,$S@=DD:VLYUPX)K##PQD M+J"?-@YPL>?9$Y-?NP'!$(S'?O,.S8'3F2Z$\ _K*P9^#UO MW,KFVK"#9UH6/0.J@]6#F^/JMJUI;.CZYMF\YBJX[3CNQZX9.;?\M-/A5G31 M 36M9=%U%)<*Z[6<@2%Y&[5>!Z5>C+X\Y")L:XJ]>1ES2D/C.=2J>?3S1Z]ONIZZYZ/ M(\OJ*LCR.87Y8^1B=14JZWHB8U[:7P5OKR=&YN*656C&EX%O<6Z'""$:^4YX M.YI/3QF%K_;0D_%]UO2.\ :\PP/N63Q4#Z%_^$-(CG\8GY$W_T./W+[HK]M3 MWKGR?6COR*_17?KS3NB 1./"DYC,-S*!F#/T0=RE4Y(SXH-$!2UVBFU6.3W5 M:YRL_\FGR>>.C=]T'!XP6@W/=:P?G_V6]12,OIQ.]SYW/CG;@,AR'(HP,H,( M[?%'Z7+42.EW8Z]Q8<0_2M>=3F]G7E&?9P!0'TJ43L9S8D1>52.T+^94-P-P/7,=R(@$KLQUX M4H1(ICOP M"4308B;QUT$#4W'PRNAAPL7Q=1!"_N)?&07D791?Q_;GK/RE[OT#/&>O@P:> M71]8<_7QD>%3KX.(UDJAV'2"VFHDSZZ1;#H);56:[8$VGVENJ_\\M_[S5-;& M"?N^55_63'UY9GK8:A_/KGT\,P5LE8=7&8*V"H/K^8T4#$H&Q:!^\P!5,>F:V&./[>_>38/KO@M]V+^2^S86/#R MS!.)_Y]XQP_XC3]PK/W*_LO@HS/,S#+=U@ ?I(PND;4U6O3@!DM9TI$ZHFP] M&'//:)=\(A+#:T)"8B=.1V97?>+1'>?>5%2U/+O5B7BP)3:=V):!P^MWQ[,WFPK#(/KPU?S3#XYID3R0P@ZK5'R8NN*M MJV<^";>EGK6CGLV3/2T>^.' M/@)[P#R^0LFF_RE;J7-0M)F2R];^;*(?#GS M;/@A<#;=&3V54D87N94I"\F4+8ULY8B@$:1#*4?V-]*IJ6-9+68Q3MQ_PK Q MR7\3RCQ2^Z)6'/7\P/E;&@&TVH]8"S7\-#R]YX'EA/PR<"Q^97I=?N%MN%:0 M=GU9*EXT8; JC+_L0(<5T^U-+^!;RGU:RM5POJ7=1^#QLQ\'6])]4M)-4;ZE MW,>@T;G="MTGIMP$Y5O*?00:KYW[+>$^*>$F&-_2[6.PB([<+>4^+>6F.-_2 M[B/P>.IT>]&6=I^4=C6<;VGW$7@\=[:&L2M4X^ #/J,'45]DI<+0) MXPO,3YQ"XHL>>O < -_EA'ELYQ:H>!RW^.YYW.>!&?G!.!$O@(-1&/-&U28] MX9[?=[Q9T\[&R^B\>0.K[S-8F .AES#-C"T;P(_S;]C[L59LHD$<-VUBH)_> M XCP+_[WTX"%T= %2=4W@Z[C?6 5;#,W.,I^V0&R_L#:OFLSHS*(V U(F9"= M\SMVY?=-KR0^*+%KX(G.1Y:,]9$A-^R9KM.%7RU@212GW\[/;DY/V/5-Z^;T M>M)D2YCGI_;1]>GQMZNSF[/3:]8Z/V&G_SO^M77^RRD[OOCZ]>SZ^NSB_*?W M[8D+7@X,OYMAS_&ZD0_OGI2/RZQ::=2;-&\[H*9ZR;\KA>,SNV!7["O[*1R8 MGFH]^+U9,;YSFSM[>R>^%:,DO1D.^'>+V@'NPY??421B8\#O?__//_SM?]'E M;WZG!B.*7H3$@HXUI5ECILN?;)X($W[0Y]LY,BI[OZG^AG),V!<$]6C%6_3/ M?QC[E8\3)Z@N, %@A9"KC;#7,?N.._S OEZS7_RHYU@E]BMW;WGD6":, &?A M'@V#@#0/ZOL?Y:H!E+&Q0CA/Q9II1UOGY]]:7]C5Z>7%U0V[_'9U_:UU?L-N M+AC0_0T0-S-J[.**&8U=^QV[^,QN?CUE&DLD[- ZOL&OC6:M+I M\;X$G,_$ M[\,W$%.EG,YPY^BS'["HQUG'"2W394-N!HR#UF&/T?KG$5H7>2VG(E0FG^BM MJ!.%-7>X?_[G@XF^XP=],_IYQ[F//F!:5A_>Z]GF$"'E7AY39 #;.?IJ#EG- M*#$<="*7K(Q#_.#9V&_Q,V<)/%A/>?#FJG5^?4:\M&0V6S?>2MDH2M*ZF%!R M60=HFWU/_L$UW'X^K!='^JF?VYXETG1"*-S@&+^7O4:86?^9?;Z,^_.TO;H^R\ M.T.*>K7KK=D_O32LBB)G?84$"*3-#%@ZXA98% MFSF U"@L%BRXZ\![[U8CA2*S#:QF<=?%) A0?7_>J>S0[P/3MM7O0]@'0P)[ENZXY"$'543_A!>FG*% OW?( 1;>KT!#Y W6%^BFRLVOQ M\.QUF6',7I*$91]!D:#N!>C#^, :Y?H@2C]U>2?]<":IC^MN4^7/F0=,,9!\ M0;6KCC&[.Q@>^_8$9S;TQ[\^DJ4^D5D\[:?ZJ M!7]&5__K__[I8&E2; ( < .#=P^:!P>'S5D[EFX<_!4\A#7GWJG4,@+OKT!N M$MDR4'Q +03%X,\X<$+;H011$*1"I*UP?D=G(0(CZ)J>\S?]3N(YGS_6!G]G MY:OR=9F=]@>N/^3!RA&6)5UV[I=3+"EB?$\'T-'+/M86D(W[U;65C:V,;&S9 M=L##4/[S!=XP\N7BKUY_.'#J\7]_Z2Y-+N9,OG/4K+ ;<^@"8YX$SBV?(!A+ M8Q>*P[QU'<./%\&-?^?EKRK^=C(X^'3_[\^_.53HUG,M^$/78C>^9=U@K M9NXUG>2MB>3G17 ):@+(L@G:R67WXJ!=;?UHVD^GG.3#-U,K82O13FJ':\N! MC;Q=O?0!O^[_TF:B^;6#.S@UY2-Z88O9:FDLR_J2O= MR%V)!+S�*@66< MQ=^SZT8"^_ QW#X\?#=D@ATM6N!/62XB>_R-FA[3&>% MA !B ^A_.?O&EV&IT>?;.3HP]B<(CG=CQ]NIA/B+#UM[ MB;B:=C/[Q?R]?EKYY>"X[RX!ZM$Y=X[VF_6]RF'E 7)O16SUN,&N07P%3N3 MX\(VQ0-NLT$F&:K;(%4)TXT0NV2*Y:?68Y9IA./DZ*U%:72>4ZO3_;#NGB=B;P"1Q M?3WLMWU7V\:I**W7MRB=B-)S:2XG$N7W5@^CT!@(H;N> Y^DDFH4VQNN8YZ# M/-@$_7%3X5SCHSA_>0L=S]UWQ4+>^;SF:WSP#5G9^OS>K%7]82%,/1.85'&_:!XFG9[IMRI=H ,@[8K>G&>,]Z+@=DNE9YZ-IF3.VD-F]3B@%+[\P1Q!WIH;U0F9R>Y U]S[X?EW0$?< M#('K[6+!"<,8+U1FR&S>P?9!Z&:]B@$;]4I#:;(:AP'3E%>'GF4&O_P!8"PO MH&WLQI4U/?T.R/T-<7LM47M&B,WGLM[9WU]_7!PT?NPO@\NF H#B?<%8C/WG MNV@M0M">'\$G?\4."GN0\1@A4RP$?. '49@O_6OHHTI^HWBG]"C84C52]7Z& MJO_KN[$7F0$%^ 1A/C6?7_Y9^<5HW?]A+\.8D#OQBJGXV23U78^3XW:$NG>- M=ZP'$AE)VF:FZZ9TK5-\F\LG8- LC6=H6Q/>I^J6 /2.7V,L'[/A6[B9X:.# M@%N<[FE&E5&89\AV8;R.'Q0+80RWBK#G8^R-"JV+>F8T"OV=&8XQ)J.7Y2+> MP7'CV6RW*E;9YAR(.6[_"4O Y^E1> G!D.-0TX!BH2-#_ 9F&+%FA=GF,%P9 MV\J/' ]]MO!(N=K +_EATBGS/$--$<(8HG\.!%[]+J_(C_ M7_3+_M)X,'_^G:,_,,]D@OMI:8*.(<-ORODT@8V1N(&N^TX4 2=P%^@[\#V\ M9[O#8H'#I7O(SE !-2URCIR8D3J(?JSI2MH5[U)O ]2M]V[8+J[Z MX&.U5BTG6AP?90EA< $Y7SQ__J=G3<#3_]G; YKEKOV!79I=_A&V MZJ\8^Y;!CK*]/67UL)W;;*[67MN/(K]/[ QX2?'!SB1[^#D4>2X%_F#-5V& MMCGO<7?$AJR3M>-9!31=BUUXFS/3@DW";$R\%*.DPCNQIW_,U*?HD-C+_2+L M@VB':0)U9 *#]X%EAJB3P6B@QR"D7=8-_+NHI[XMPT(XP497<,I=",E*]<]_ MU.H?QP"4$]*7XI&I7TZ$2CR#0II^4M 5"UGPQ&/**F!4VWM5I5KJ^N1R!/O+ M<8CO[R_3'_XEGPB6*-:7'#.TH.=F^NI;3[3N-?*,+!J$7QE+ @J. 5]=/QCF MZR6__>\4!KVZC*^69X3*3$N>A8R@I*]7IJ#L+YF2E[95UQ./A<>L>90 ZAD" MH#D_Q:'C\7#"G?'?US=?*V?MX$NCL934T+;ONQR.U2#FXY21@4?;L V,B\OH M7NM 7Z?Y:L52J2L;ZJQF_(4F/!;SY5/9L'XP-"]K;?ORX9:)'"KKF&Z80V:Y M@&D2_T6$(YUUIBB3&!LWGQ&]6$ #!9DE0#:C.1UN[G$H-%'8%I&#GI-."\HL M3N8.!?2LV$I6YM9G6@K_K!!_:/:M4X-3[/<[E!.W'&_"0MR/+HP> 0 M5/?-*.(8@HZH!JP[40@C>7 _1#OK/_]Q6#4./L+5* Q!5N-':BNR1FSK9Y'JEK@7+79M!VX1Q]R[N73XD M _6NT6#?RM=8=.2@NH^1=>]PZ2D52S]_VP59DE(9WM^"OK!3#6!R$Y\"RB17 MITTPF['M1!*P,E!%0A*K)Z[-NAR'/;AH*=%2+.SFN(DS%T+8MG?+Y%&V7'?7 MN%VOF=6:<+E3C[,__F?_U[MM[E=^JS_!<:;#\P ?V',2VPU0@]GM D$AQ2&A M\4B$>2A:N?5)**! 0HN*_-42$2)H3(Z X@ !Y-\BFTL'O4(P7$@4&4?"]17P M#@@"S^(HRX1%VX%?@/M%(!Q^E!F5S-4N^I!"W[5+3'J53!!;:"-K.[:0DN$/ M.I]H-("9C-B9@2AL0JZ&QFM+!1<]4^J+0(]D[Z,U' WN7N0.Q2G*<1DA!^*Q M50F8OV)*<&>4(GA+I>.*A5H%"Z@8363,Z9>_2Y*(GUW?C+X[9X*.#:-6^?[W M5]ZM-/[Z\;_;O]L[1V\D^7XF2S+,-4I]VC@[&>(610R!N UCKU;)$K07]VT_ MLKGE@,:_P^0/(5EIL,X7#4"EY&H'):-Q6*JD8>(*$D77*S(I+?&()FETQX4& M+W+U!>G+4AU(-E29C?EQ1-H/'5 J:C./1"@"B1-=26(+*5I*D%HK[L9 0@>B MF,Z'&6EN(MR*HJU$U;N+% I)&B#8#BL'W_^VA__Y=_/ M5%#V'>Y5#N8DE;/SSQJQJ'I]M5+]\*!4K3>FD,NJ \56'^>WP;!G)YCN&ZI^ M9**>9O@!YY,ZX4?V7SPAX.NIKB/E<$D\,%E?4K*R/">*/D0E9PBZ4>_IH"N@ M/S*L]?:!M0*S[5@?&<9?BX6=^PAN->-N46_A-WLI9A[O99JUZ&23!ID@EM7[ MA29D4F3*S)2PSLP:BO5YXZ9'1?W)Q?&WKZ?G-]?% BSLXNKRXJJ%U2$__<&N M3C^?7IV>'Y^N7BK-AC,G>V;M?"MS%TM3#I;F8UT,HUAZ0) UW*GX_8XZ@53] MNW!^2_2BJZX9#T_&GA@G\6!$?(87&!:_9%=*"U^Z\79N#"W5@KOB6=,:A(@D2^3N%=-T)=PH6)G9V=P_@#P(9*L4=^2Z%S8S:':B6;Q9159 M3@4LW#$2\?KYXNJKD#9GYR>G_WO8.3;_J;OZ+%QCP=HV&=I&7 -EMZYNV-G4 M+$JC\>A9IA&C.HZ?9)8%2Y&,39)+X9>M7TZ?IB#8PLM^W,BS!2.*0V:4I\KR MIT_ G4M',5DO0/O /Q(#J?(O__3>/"J/J;S+1_ ##Z.E'#R;3G*M)='< X%( MJ>?*"7]\-JW(QS03_ 6IA\E/5@?D VEG?TL[S/BT+K3SS<-6%>XMMT$K[G30 M+(JWOYVC] NB)OJ6J:^W1+6&1%7=[#,0[F8#W"8TE*<_K_(@E!%(U;GO9'K( MTI;B^JRVV13WA7=-%TC-XI0]!'1'GY"\TS[>DM^:DE_]>0_1KZ"ILVNSPZ,A M.W%"R_6Q,=22S\9-)Q)-OIM!=':FKOMGR&6KV+?54>6J1I[79/7*N+NQV8?+ M"0^MP"$'\44G36#'5D(82"2N:'[ ]#*1Q8*L+G,J@W.NN$MI!Q2GT /L\8!] MQ=C'(*0 'U$A@UW&@=4S9%?+F5]C.\+!\PNH9Z?S_><]Q:Y5^'1*NNJC MSRH %C-T=XZ27XEV\;.UNP8>;NF)'6RVW/QZTD(9J6*Y_Q62;A6+'E(H\UJ> MZ0Y#AVZ&(.X2JF3'OF>+,']\[(J'L1N11+P8<.'X76=1N"5=(-VU,:G^)P8\ M8W[!+==4^YVC_V">A_P""1 I37M6OP>P5MN/(R:.>X9FV;43ET9S2W3L<+/E M92+_DJB&+OF'77$BE/(%-#3!5HI7EV^$9ZM*=B=4NI:TZIRSK"G\T33RF M8WC MK98XAQDYM2-O#M+:1 3VJ8P*[N/- OO6< ?,[ MQ<(Q[)@)-\%/W.,@^?!2)QX@ 9C:>Z7M=J+;:TNT:TZT&QD3I*B3" \=!4"V MTEBF:/$&JPB);.VP) T:XEQGF$$WP%I#>&QOZ7.]Z?.9@X8NDY:BFK'K,^=" M#@+MWF)WT:WR-_L.^%]U!?SO]@:XO0%.9_K&FEB 3N][3MM!#XWZ*3$HIL;N MQ%W#KJT>MV.7A^LF#K ?]'.+@\WCS@WB>\O'1%3OYYWJSK*%]S7,9T;"K'Y] M]LMYZ^;;U>GUILGPAS).;N9),;:.+R]1>>7$9 **=3-A^LF(J$YH1 M RRH/14+9P*8Y+KR)/7%\HNY/#H37\^Z3U)JY2PR39BI#-MEE?!9]:;^&8>1 MTQF*FFQR453^#^X1RFQ,I2RI!"FJ#F1OP6G^\(,?Z%;_=^P.6;5:8D:ST2!E MPPD9][I V\M=?X#J1PE+JL8=N/."L*;71 U$O+%053BJZ=8. M 0JDK!(C"[:LH5H2MV?N\: [!&3X5)@01L?K#17@Q3J],/FM&3A^'+((A =% MZ_5-JP<[% Q+5*-PD%B%PBB("9:P#%=NAF):U7]- 56Q R%WL?U6L<#OG9! M'@2^#>\S+/L"6(\T="+,CA?#_#"6Q !5 Z8BBO8MVN-MV!6KY_FN#^N18ZVD M=5>RX2LK#H4GV_Q20EU8BX5+N>KE2XR5+367>S2R#A-BH5JQ0"?8@K$;^#&: M+1DUN J=ON.:0;+IHBYOS[S%HJ PG.UTJ' 04.E@X&)]6K01B2+3,+W?1[,E M P" X,?&,@/D LN-;<&+@'917!$%)K-$(P*'PSF'%0S=(2[8"?N.Q4[,_H"C M4^FS&SNV8P$__@@!D0?UCR5V')B>X-DSSP8@ KQ8?(H14,*9V]EKV80<[&A. MG-Q"3F[C]\7"%PAXUC5+A3R5QA\PSX 'XF6L<6 M:5@Q,T+2&F!U(HGQI(2L_/U8]0@:)U0X) ^:N]3PH+MV"=15I4%_M2/&"1, M4:D=.!/6831+U4H%6:>W-P"RL6FC+=KFDMQ,P5%&@ZFB[0R3X\2F \$BE10+ M\AB2O8NX%W)8*0]\$&^6X""L8.^6@@^C$:&;F!X/ %- M/'7E)W"6.V[@FS@W_RX>"T>!C//@' M85D('#,1."/["O.+.L=2$&:0-HXP,?@4_,,&QB""S$@T*F1B8CK;$U'M" JS M5,Y *!66#+\@#GL@B)DUM'#%&@X%_3@P.NQ#CYNW0XTXI/BT07R&2C+"N#%V M%3!%Z6>0\P %LDU6Z9%J4Z+XT#N2/G5U#,G)]UV!:9MD82J@;8WY:8 46EE] M/DOADO 35/*P6 !L255.%O@- >:0)D[[0(KI_0%AFH7#D$J3R4ZH0N"83B#( MC*I4TYRP=YV(W2IPR^DYHF$+RU9S"\X%=Z@ P48 ?8ZM%,1T\F$-+;!E 9P] M)FF5F)=+J(5+$5!'<@;G8 4W6D.)=D)@ATDS:=,L#W36X<*"(50!'!#/M($? MA@[6\2*&!J!O80=A$(#U3O"Q[R1@E]5!::J#DL8!-5A2K1 8H(R8X1ZL.4!E M'97D$D/YVA6$B=(8PV)+FE(R"B."9MX"/U.-,4(0';JP3[A033O)@D(X$H?Q M@)/XZ^,YBF."2*!:$DW4S$'NH, M*1;PI"2U*SGE*:E%R1B)%B0/*9"^>0YPN5@$73VE!@CZGFTRT_55=Y7TH*I5 M9HZ.+ <*>+>'Z3-2]B3*Q9T?N#8<*((BX:23]S(A$0AZC#?/'N""(=+;*_4= ME1IAD*"#2O&'V-06+SMB+-!;O0BP+?I^D)) 7E^594:K(X$*K(\GL,5'U)Y_ MA>P2%N!@#V: .Q>_*=,3 V.G 'X/1V$(W\*Y- 3=#(^Q)'H^G?98MLYY$'8B0QEM2KRIOU3JD8HS9R1Z/ MM(X(\HHMFA64V8E.("!N_;S%L-EKP>D',J$YBT@\$N2UJ4-]>A!H?!8$+W\! MDH>"LR+GY0D>.)UEQPNY/*2XOBGL2HI5A>:C5!'8Z6Y@@C(A-,.^2>)+")+, MR9J01$8-$/SJXBT$J=)#-F9="JXD!J 3K9,<6NSFSJ?F['#M]F2S&"4=LKRL M%J%)00D!+:LC%5.IB6XX3=YD;&2X;A96845)(Q M4K1+Y4> B@JX8\4N"24 Y=]PTP(T'8,Z:I* OS&=.],3AH8Q5-"P'G:R00NF M-J[4&@4B0!A2?RD*P SE_1R()I+G2&)7=)8EQ)Y(7EV9=QB6)[1KEF064M6N MER"^!DFL3@ K[6=6*G7GD+3D8D%>JQ2%Y%_8L&]7QO"G6LA1>R!%1M@OC*90 MXBBKIC/7%Z85:LKL*38(07[")<,5;? 4K$A\9.(9D6)^FA$_7[.+^D:['NMK MZ'I,'>)8'SKC+:.?/P"Y ((L($6ZM_E8?1$0Y8F8D:?U7*Z>WY;;X AN<4E$ M)OLV "'[U?P3CI1C98]?FH!ZZF/8$?=Y%7 J&R)*20 GL GW?I15?V:]#^+> M 9IUZ-RGG^.Y&OCW3I]\B'7C+=L%Q;_$FO!G7_Z!^P *HP;\B#8@T3W1'5+7 M0[P/B(L#GN;8)*E<+(S)J #XQ4W$5#H[WJI(0\L8C1VZ'KFFO(]E+CD6";B M*GN(M&+TSL%0JK$CH &/7BZ?2>S[B0UZ0TAX\IE[:4;B1GH3F#;'*ZTXC[Z M4@5Z\PLY>16U8^Q_R(PJZ&FT;,;O!X[P\4:I,1>VG*;$:%IAK<1;)M!CK;'Y M&W[#44\%[D$6?EF[FS@#+3,@/VO7HSL9FN?IAN>C/9RN^N8 [>G<=<@CB[;I M5(H@^7=]WPX30ZP(,P'E![LC"BT]X*"%>2)0*Q2-$$WQ@F8:I;; 'L(A+HDH MVJ1$2RC21 TKA0]O(^10T=X3_2#'ATJD$9(G1F"@ZO<5;K8U0S3#HS>Q+6&9 M@>*B&A@7"\IL$Q$MF*1-(NG;978B0AX2HA\?M*3A#;8*%,*(.KE;W!F0)8C: M0H2J>:3-#H4!B-UQ_B,4!N"L]IAXFA*?*8"1]*Z\]3&'PG6$]1V10/-F8F=@,L(+OXSTK\$K?Y(+4QC%I:DO\> DKI8Q M;^2&A/\L%*MQSI7%_I?4U-'",_[6I!,XS3Y0L1QX/*NL@TV,ZZ#"#"8NI,TC MH%@O4"D(XLH&UC/\81[S137*7*# M2:N/-HEF9BJS%#P=>^*1 96V;H8-13I,&1@\J MJD*NTW>BQ&86XCJ "TI*TTHF%XI3&_4B"!@4E<:_[:Q=X3D7$WH34;[D7L KP:) M)1T5Y73Q6O"?[B-QZ'CS)+4G]GHA9$<-&QC'8?$!MBX&9NS$GK1OI"Z9Y.@6 M5#B!!F3J ,BC(@TO.A)G'/J%@N98S<;%0BZ MIGCX3>.P02$9^-R;&CR',1J9ZU!)6+3U*$0%'R[%H7#-@*-+PPE3QW.Q8(N# M<^(V)&<>QNYPN&]A6&(2*YDU8Y,>(C,9;< PH,7*,SBF6[HY&CCP6%0],X5\K%F2%>\3A MK]QTJ6I;Q';_^8]:_>/%]:\M^N%=@N,@=J5/7Z<%P%P_=KMD9T(W"2<'G=([ M0%+!!^2LP\ _><,(Q?5/>MFB5-_BL#O^D*NP1*>/+F 0])Z\9=TZOII: M];U/QLPZCB2ZAC$X<,$^($B@H"<5S(D\41X3G2 M5^#A[:T3XVBN9_1FQK:37$BIYON86T8X@$P'W9)D!\#H"5W348M+M9W%B%HC M !F &HVO8P)9SZ!D2<0;HSK# 7ZJQ,GF']JG*M9&IY+*)%(&TBNR13SNFR;&RTR[*Q=5FNC=Q8MLDAR5',-&Y4EK=VTEZ2BH9K?1R7 M9HY8OM%RY^@:+>YD6![X 9U2V3 J/$/TRZP*2T3IXJ35+S4K+WG_\. "=*RO MN9;&3+=T8C_%3!KJIS)+'QSOK;C6&WWN)XENP.2KT!.3/.95;Y;>5/']5ZBKLQW34EEP/M[O,-,D]?ZCK\RY9Z:%>AP\?0-WOSN\+[&S MT!59-NP<^+J7?E-B28ZQ2IQ!C@\<3!L T=_Q8\Q @IV4QD-DZ=AQ;94I6"Q@ MY*!I_VE:9'%6WPE5-A]T\JF):'!3Y(W)')J!BV[#W>R2ZJ5ZI<+"OV($KL-Y M] YT$>$Y$J\5"[GO&;528_Q%PH)(4#(53.3CRKY\0-8M[=TL6DS2XI/W2\6" M2HZ&YP&I@[@_H!]'K1:PG=*>*S4K0-0%YD"-(E"D05:S!^TO"LQ;3G'?(H>,\($+!P,=BONXQ7-0O,K1OM'3M@9 M)K;IL0#AEB?".\>Q/4([U='M?X<"1XH8IR8#L?'M^9P]&VR/= M/?,R/&%0%F8&+EV?]^^ = 27BS2[-(=2Y.LI<0!<#DC!&' A@3I,21U:B&2T M$0E$UD?<4J->4D&HJ MCQY"GL((RZWOC^_#A<\)_DCR_F@3VCYZ#D D MV)P/]GH^Z-!VX(@L"^+5./#D_9_$5TJ6BL1$DH>3]E 8F-8/LTMI&B0G$]L/ MCRA,WMGXC.?LB0>[1SD!\O ><>-B?)R'V2MX/P4M5TN;!.?OTG MB)>/-^R3Z?W($C:Q%+ZHI0")M\CD4A(\)669*4+<@+*!"3)\/OHNA7;$$9DJ ME2,W+?J!?>(XX03; 0-*"T4 Z(9,5&WT=YC!K8R MP*=X',&*C@DD-I4O3"PJ>C>5M#S_R5V[J#C)0CV[2BBQRG-%T/A8M=M5'XX,#1:X^Z :'H^IE*( M7$VI38A$6 ]8/) 53.$RA3$[( 8HE)(4*2E-LD=8K;0_HL%0?BRCBUT:[R"< MA0A<"H(#*I62RME!?8_O20%,LGH^42W&%\=A(*RG9'*DQ!&RC(]&B2J/ 9!: M>E!YR@=,[DNLGO/FL-2L5%Z.Z$M-OHZ(IR/A9\-=&FD$-+@X$+9>RQ=Q7G@( MHJ30I)%4.!V*@HOD7723\9.Y[(UW^]:O?+4RHP45EQU_F*YH8L]P_:1JE%5/T%)$!8D91%P0 M74@ !E%\0ZNC$0[[;=]E-ZT_3H223_5L1$S975+)([VHPL47=7VN0BMPC-2@ MT]&#/-,@1?&AJ*!!$8OL#A4AORTOKW0'$>"6ETES#][&Y9/_DD&A2L4@"EU7 MUDG^>:>R0[]C<*_Z_8'@RIK+6+WK(QK#@%;V+-]US4$(IYSZZ2.[<^RH]X$U M*V^3-V4-9WQU9WJE:W'DYI0CGU'C>4P;P@+.4]Z>4'LZJ:Q]L#/GQ.K<^9Q> M89]QWU#EI"&2!:?W HJR>C?+ #SZP MH-O>K5;JI6KML%1M--[ET)F4$G64$CD2+I?J)K0B^NP$882-WO&X&468G*>6 M/\WT$O3R76,>$$4JV)L)TQMS+5,6JC>,*C M6MZO;O&1X*-9;C:7BXY'B+[?>T[$9YVKB\LX4/%]SYXDY!;>J8=NSP(BS)BN M!RU*E^NWQ$K9,%[X$JOE@Y>_BX?+6.)JE:5'"H\;\BUNC.RHE6MC\OS%4=V+ M%X^USB]G"!H3>F6[],!!CS5_)J;58YO]FF]Q9Y-%IQ-\;8[ ,]$<^+^VT>4)@? M.N]LD5N7A@RRL&?*"-J,#PACGFJE^N%^Z?# 2$++M1 M;>0 :PO93'@,0VI' ME T.'!NYWFPD-:"RC6'245/ I@S6XRZ%%(910,4NS#X60)^-Y5"2,<1!?N2ADR42!2+TK8@!_80 MJ2%L3-2#,VG7>%^M5"KO1$J5Q^^P?KLX$9.U9,D'J1% :+%_QYX#Z[ZDTN]8 MT0"WZ#+@L%F!BI:16$_>&?E:[0,V_TF;58C]A8G?-,J5"L/<)4RPH!J+XVN0 M.6P(;)E)AC:C"'&'IZAGB[B--$<@_V0OB?(-2&]MCBOA1 2R?*X6)XZ8%AE- MG,I+)E_(N;7OTYPIB5)9J!>!2HNLRO> J0#F8H%B*3*$AH^W09?H4U4 X+DP M*;.9508FH7E39/*4\&R)I!PTZ&U.!#I(MHT1HA]06Q?%*)836'$_Z>Z2Y5>J M#.-TV*[S#@D3Q(N?""^;&8VW,E\DASW$0,6"("I\;M?11Z$N>$16F,%(O(O" MXQ[;<75E05+:6FH=,WT6EID$9L&'\L0[">P^"89$W1M5[XB/(DJ,B/2^-1,T M3,Q(I8IF6$36C+,]9BA%" ^#!-VF)6NAR'*'\);,,T&-4A?DS!>Y/Z+:D- \ M>\X@OX#BC/*)HBJ&=LH+AJ3JQUR7N7145@^?D5$6[](L_BM7&XXWP6)$'SI4 MD_,#VQ./[AR):,5B(0U7]'/"%9\?SB?0F.09%_!$@HSD:YFR!#PU4 WV;(K9 M@Z-"'+JBZI9.]^E(MB:;'2H=2LPCE'=)IOZ >S*BKT2I<*3%I_5$1U)RQ'$C M15RJ]6LS.AAD+>Z[J$,8&R[X M**)KZ8Q9173TLRI?:6=H$;8:/NAV-RET8BB0T!F-C)L;?SHBO!6;5W45)F& U 4B.3%S]R<4^X$:Y M ="%ONO8J;](AO22PRC7BS02>#,E5O'9)DY6WYAW]?)K)>&6#N9\W#^7TW#N MG5[&8M1,--LS9*%LY][._>+F)L8_!I6]ZP?#-5E^ONA^C-";G5\PZ:18,\&E M:P'K.F1^R/]YZ@9,,\E$H2AE8L0N;=(^QE-8T':J>3?]@;0-WYD!)CW*XJ+" M5+[R53A!/\$6LF6'X"2?J?=XO:>[+J44'[J M1-#(7F.'4?I?/_)O;\G_2E8S3IJ;9R0*C*NG#OXT%"!>V% MD3/G*I]"(N[TN]287H3-Z,OHN*)<)36^<>.^QU*Y_FY-V,S*9;-E7-K6\TIV M.M$R0T%,MQ@]HH!I#]5^#E44TX>M=KN=;CO=S$3K%RL_JI7*H70!7PP2J]?S M2(5JQ:BN$2R--8)E;?9HPR7WBM1,&69>;98.,#%E19J0G.6@AM5V5SW+;%(P MJA5<+EL^(>8C]U A=TMR"ZG%;]@A982M=I<4/&]D- M+=$M3'1[3T5O6U >!HI1,TI59-1GO"GG>F(?<^?U1/%/NO=.O^YNF7G^@WY5 MKK@7"LYF$=?,Z49-J"]]<9L@ >'67F>J.Z.\&JKX7[H=GF:O'Z96;C?[A6]VM5H!Q;VV"L5]6<[G)[5@4X.J MK3%T%=/-?=I4&]7,97(#L1 Z?W,@D2I^\.K4W]D[7&L8I4:EIN_P\RO*+WI/ M-GAQKYJ7'G.57!T.9G/XQ*MA3G7T9P$PV]%PYA68[6)B$I4D2!X35V,L4H#Y MVWU,Y.0 AX-I0UP^%.:DH(\G3V?R/\U(5+*0W1QN,6,1G@_\N-L#K P#WW69 MS67C7A&TG=.)XNL3QM%'3-181BTDCSQ(S,3)N@ M8F&_S-1C+&VXB0].S%1\23GR"XG98N&O& ;H4!?$4+46QTI"G)I>4JT?>K*$ MWZMB->TA,P[8\>4D5Q7AV"IF-HW"T+'.GP.58M2Q9#<8=H,6NPY M$)IZW*:>B&V1C4%$IO/G53Z$.#TVB'9C&^N'FGULP^[#^+BJCALC1.*& H-V MN0=\Y[*DIITUM+!8'8Y*U:VH, 3LA=]W+*U W4>X_P1..@[N'>:^P&LP8>P1 M/X(\B/P^EBTBDS.\E P)=(H7)5AAG]Y!=<&SX7D0TI:)=1TB.(QA%8'H^4UA M(%$J.3!33(P#0&-OVX]858KJ@A$XW.IYONMWAR0M<#>PW3M,*70/.:WJI9?> M^"1<(1'5'8<;'1:[0.2EE-&G7O,!@\U+]QRX'A,ZVWSHR_JR^C622B66L36A M%U*!F,@=8F4S8'JJ]25D LDS8&F1QA-CC2/7H:P>6/4T)D"XB9NILF-"[Y*, M,G5#BP4;&P*;3C^D"Z;?=M4A0K5$J<%A6&IT$%0IN1XY*247B0DLETXH%QQM!DB!^25%4QTE4)L'' A[Y)'K3$6B; MJ49E6-+HDN2S7B4.42=V"-_-\A! $;(VTE>B^$PO5'2XT86*#K>%BM9=TP-M MM27:6JOFH\>H[&$)X!9H)5A_$NMU^O"$@P7%4(B=JM/]9=0MRHA-\DE25;5. MHD*F(D:L7ZEK0T0-=DH5:A](Q '65694R!"+>I,D)S26$;;U]")Z0RS,D.TR&H#451L+*8 M1#H9:91"]20%,!;%(FQDM)08^EAAEQ3+ME1*4$-V?#O4#VVJ92ITW$BWV>@V M"+TPO5YYS)+""X 8)RB=LFF24*,7C6R1/I+EQY+HHADLF4\GFRT=)0^%<&VV MN'.;IIAOZH(N@$%!57$Q=ALKT@+=4#U8K>9)D"PUE%66D:O5Q2)$&Z,B,AP" MOY0 -E%B*&2F,Q!3$+78Z.S!TN?B*I-*RF)!WLMU>"58 M*=!MTR7=,\,BB3D&+QWP2YNFA)N;&(6\4Z8"2KF53-1V@RYQ.#<#M#FH4P_6 M#2I_)+I.H#-*,(*)O$%6W_%5L=8):P4PDL7V3%&SWO'CT!V*&JNBE0<.)>0]:0)JW7M"U.&- M!F RDSKV@&4090'6'_="40!9[ %=A.46B(423"3F(ET4H=8]E%BQPG3AP[0O M2:5L4#UKV!S)-81&'1#):$F7EKRU(CY3.P(L]DW5,#"W$GD\ P+Q\1O#J(Q_ M:S0SO)P8'X4T$$U:\B8G=2]1)V2Y<(E9#T0BB^XX6IWZ(%-[86*/4$C/VQ>Y MY@T_R\X\U&NH\-J+6 8>1.G102U<_#M9GUU4.2H6+#\DDZ''T2D&0_U-&TJ! M!' @R6)(])36FPA5F2!$!U%)_H2Q ?C4AI/ 5Y,,VHE $E8V)\$H:'?8Q8:. M*-_Z@4P&J 4\*VV0N%G6EE?V1-?I\#VR89)]Z-ZB/AT=R6=[@L]0>-!^85A' M,DV8U+UW0%\,,Q5OG>0V9P,W,JZ5 M.D'M_I/T7Y^% W0I>-S'@S@0!^V&[RYAV-'98T ]1V(7#EC,V?/P.D9W%\ H MFFM)A_/;@#D>6F292@0EG!Q88)W9L6Q"0$Y7L>"B]1L4!7/@V*GUF$!*[,K"[BSH3(>3SJ* MC&(E_20?J9J,!Y%224BY3$X)>+-82'PO&M:RLWQ2"EW2GV'B79^N=HE?0;NU M:4$_)*?P+X?ZC-WQM..$9FU0FY "I2DX9[1"W0(A2K)Q5TA"#3YYLLG@*6G# M+;$[+J_=6@@ 73ZI"QN&FI'KECPHP&:H4_^:>/G0AC[B8"%Q@"I2EH0'41 \+Y=^R1)8]*T9 %2QIG;.'_#CA(T! U7A3K8YI&:9:'/5=LR6:I"X>1!G2U#E9=ZGLIOC M\,WI$6MNM$>LN?6(K8U';(9,RQCS-*>U$PKMOT^5DX6%!UG0%)JUHG;J$ AC M>?!QU_=MC=25H43Q8A*\B!^J'G;R)@[7M&3X?_[CL&HM[.:)\YA#.MBE$;P; M4,P1O.=RR2JDIU#X4BBC6>"YCA-E.J)JRYK,#L)0GG!4RD[", D;P';3ZWAJ M>,1^E:C[OBM))0B-+61$C(- Y*N.>(**_LPIY8)>H5Z9,K%R7.[S\V00M'4 MVB,?XV?D>LC=B5PZB<;8F0*"S$2:[0+[^JK7N-+*T.8$3Z-YP1;T4E*;%? V M7KM"#,$:4!P@2Y2QCC!<*55FA%S*=-X0IR2(P5@S!M=*[->8MOGSL*4AX+K' M391&>2A*N[".<*&P<*=/)]X,E._]-O9:D]IE&O4IAX3/ ',QQFM11V602$X? M+KU!JNADG8H4Y$F! R22@$AL#,HBVTX\&+BT+6B^&-7@<.N4@I;LLES(" @P M-=JBX #1O+#D1 HC95D *M=OTLI%*RS>XL*K3"!:$-2??ENGEQ)]H+FD];7: M! C,(]UN);EYJ2X(UV:B><($.E'=5#"&/ *54KK<1>B!@@,O\:F7)1,F)C9% M1/AA(U#IOPJX?M@IEZ[P#RA1)B\3:C */4BZ8@(J01"X/HKF-'12]E50;$+- M.Q5%P;"*[P"(@$M/";VDQ0%D82&WO)QE% "T?Q!5BS7"#J%]*U(='>8EBGQ? M"]&?F3V6R$].0HI\59HA-(4B*W/B4+7[E+ E4M!! 8EQ+K[RRY (4+YUI))) MD*D.N<+&3? XG1&0!#!9?WTZ50(/R6E*1R,/D!(VTJRCKVL$I40V=?4<:_>#A#(ACEB"C M"1 VE@DAJ"X:B(U1$%D.A*NTV*"ZE1-'PN2A*TZ@01P,0'!B[)6NH'C8;B\Y MY4':NL)QC.W30^$ATHE;%U@8$Z 4H@1_TO,*8BB2H5:I7-6D>^*ASG@_U/0R M"%]3&^1FA".R.'U5Q9SA$.I.X3K)\2'R%^3P=/]*7\T!,#'BC$.2H"@S1@Y\ MFV)UG*[*_YZ1);D6,G)K.VA&$\%H2A,1/I&[A)%"9>3+,Y^IEK5:7(K ZZA5 MC7:6HNX" 40F/T]YQ'B?F<#*OR[&]=?U-6 MUY),O@YEG!R6JQSK;*EWLASM=)G%2'5>C,B$?3.._"G]+9,^F$UL@RG?E 4 M\-49_2^%@4LK=I#)?,[^FE-[H+;SI,_/+-PPMISII:_2(DIZ@8S*A+HF,CJ( M72/5J 5D[7W: *KL@IK20%OAK-4^&-R\DA<*WFQ@S.$&0*Y?N4[$_4ECR U8 M@(9Z7? L1,7 ]#!U-P!);"/C^\$'%G3;N]5*O52M'9:JC<:['$J?AY);J)6$ MTWDPQ[Z/ FF4@?.>DP6J9C^8-^ 6FDD#/H)N?N\Y$<\A%E4&9/_M&&%G0KZR M8,JW&GDOS5.O8_R]+!>)I;^9,*TQ\WV)8\,HU8R#TL%!8])(\P&2OU>;@H22 M48$_QOYKQD&U5#<.2X=-8WE(>&(A/@[,\93+6OYE]K+EFR5W;;JVZ7VK,H;",3_IN33>K4JN4ZHWZ(S=K!2?9 M/&K/%VD&CN\] CMYLX7%28]GHBWP"5L0J']_HR MRH.6=="LEPZ,]56V'L@HU9#+G9KO"3C :9G0AB5C4Z%,"K;7(@-R84X&R]H-2DD),FJ[(M">53[$.O_^12% M+,,=5#7+SJ28!8Q*&@N!R$8]I/&=+ V4NC,QT/)51CHLTYML&,MU)^LA? L= ML=M("!%/@"681)33!D![FH0V'8LLP%\!]SQXO_L%HW=GF4O6805)'9W?96>, M5KZ8>BPM+RO68X++V[?GMZ5N/_\9"L_5:/LAKV:A52]6# ML1-PLP72BY>XR]JWYY>X6P_F)D*S]6!.<8LU2XW*86F_\MBHQS5;UXL7JDO; MN'$7ENXNF.Q1>(%&\WDV>,V-Z9^U:HDY*?+K8%\_$WX9K?GAVIM\MR;VUVMB ME\47MT;VV9FO!T#9MF+4=93\UW1!+\&=0EQ8VOS,#V,AHF+Q32B)R;DW1 MIS;]!-O7.B'5&Q?;00TJ\M:K3Y8N&FC2$4O.0WM>-6$J" WCV5@+%[X3Q:T5 M>0!A)K23U)2FZB,ZM>M3]/S(%P!(9% M?R]V!8=G12<14>0X[G2PQ3U68#;O93=E.GAD;UBJU;IAM[CHD5//-HSRLG, M015F?:I]HC,\T[T1?G]S6*.^C[(1[O@027(G?-M\RW;?[#?Q^7=: PJY4QR/ MR([6WP$77RX6;M(.HE.X2&V;:'>N.B+W_#OLREZ"KV/7%D0*[)#J7FE'6*>C M]W'IL.SF8T%ZL?M!,@9U[1AI%B$84#2&2%,DU+>H-V9;N8H2ZZ%L?JJU.!;* FV\"2ZHO->SF6G4?2=E57M52;Q_8>D6R"I1Y57[]7<=="T])'A8]- M5VJ++.24^U)2+9J%9FGW'<\A"4%EXJ7[[N4@7?:H1C6\#:SHX'G4P?8;>JYW ML?"9VPE.*(Y(1W[ @>FP.U5K3-ID&:)GIF_#42";%.#E!;@!S@4+-/4A2%O1 M5PDO'[J$+!;>U(0F.A* MR:X.NT@Z&SW!O$M'6@L(L]]'JE2GC.@?A+WD9">AM!66/(7$Q5-T7JU+:"J MKA)_AE%]*NP]EK"D5T,8SJ9X!5:(+JQ,/Q>VGB[P;%[LS0ZT60EY59N;0EZI M;WV%"*D?YD:B/";;:.TO,E/3:ZH5A(#MMERW6.@XW3@@"RI>#+'*62Q:=@._ M=Z:/@F8RH8T*P\*4?)[RNQ>MP>=KD*M5%P^6K2[^,;IU&P*W2!Y:LO:_8:J^ M8.H- =7(#^A9/U!;9(G?$& O>6 E68I/DVZUR%4/CWJ9HC;AM\72M;27UT8>[306>/( MQ>_-T0IN%C!OGT-]UR3<#%L$M8(?7>3\@G).X3CO'BTRCDI>:9:,>N[5(1<9 M\T*R22B0>4FO&063K5USHF!")'*6NY>.D.K61<=:QM3R[*GDK:/\SV8[A%SW4,+SB*W+SFI,-Y CX> MROIKCX9*_7"+!N,P5]-\)!+F$83+0%BPZO3=$[\K;'ZEQ%WF,-8JWQ$ M,Z")805X_<2855#^/!ZIK@HK3]JOC352FXBLU0%1':M",06(>6Q.B[FGYTWD M>H!?>PE3;OK"GJZ,P2S+X\O!Z79AVX6MR<*6[NM;APC5?X79D+T@#6WTD]#& M8@$C]M#;QXS]M\R6\4(8\Z>?X")0 F.$L]]+CS8,:33?EI5Y-TSS'53LH,BW M4J&'Z%9T?= F,!:]6$ PHR"FA$&\//U)B82[J%U4*Q\OQ0>[X3OZP/CXCMWQ M@,/&OH5![C"R'^/J<1H7YG?')M?BZ]GOG()IZP:[5/,X7K$ DU(I?SL.5 ;# M",B)FY,2Q>J'^J.AV4_B*UTSC.1<"V"C6*!TN3U:28(9-@$QGN_MJ=\D,JJ5 M!R #B<6+^VV.\W=TC.PIA'3<&$/^,4N HOQ'HTC%("J4E!Y)9TD?SEDUNI5 MZD/6CH_5$#SD"LD_?M+G@ MKH#S)*8-U<]!F($!]L:SX9? ,=U21JJ(7%V3!S[&7F#2!R;9>.%(FEAHWL$) M4:UI)T068*IF<_ QE%('TT)H 0!=1HBE:+GK^22Z ><_Z!\,NZ$?<<"&.X< MS#H+_(B+M_"\X [U!,B,1O?,.\"PX]K4E(52G0/'1F%$B;@1F>(HNY#?.R'] MD/LX( +EKA#O)JMGS\)T,0G\<3BVJY1$H_",.1C #N*8%>W!+$1CS\/8B[0T>#OP!YGY6Z%CXB7^CF- $/QP ) FZ6.\(ANT4M[1IR(JXA*W?D':[!3M7&:O/-VJEE5>%[ M$A,%:9'R&@87#5!CST'5[[$6:)Y 9,DM"BX_S;=C9@G]=75Q3-Y@]8.WHS9 M\=JYIK7"):O+?5"B!SU0G0.X-5 =L3$7,A;EV6J\6XUWJ_&N@1JYU7B7H?%F M).W:*(^'8_K1AFB]!V-I1.NN]N)YN6K]Q1A+VWL&)6J\)\^ZJ[O48G=B5@.HU'#@!;E\R$U0CC2T-N!0L/U$[]>I-U?L!PEX?N-42O75 G) M,LM,A*78U$25ZOA$;,H\Q<+H1,WR83K/FVJYFBE MXJ1 !MV AR&,LU\^&!V'EE0LJ$\UB).AS2P^R1.FC2L*56(=5"R6R/9KB4=0 M7Y3D U<*OJI3 ?%0N+"U'QN>LF .HR;+8DI[W=4- KXXUR!Q6"U;8QLZJ2 MVA:ZAF;]JAFFR'I%:]6W67S(>V1C]'. :;.Y*!L@]A-JX6H2>:BB\]V_PY=W MCA16?WJ/#QYA@(X,Z9[Q8DDK"*Y*ZI2DY).2JY01A*&:@_"NQ98E$4BTI<5" M3@221@SY"0N3)@%+;.YXI?4Y.*DZ2%((Z1>M M$%(K6P@I;;GW'-4/7X\-Y6782]8>[FV1D VUXZP]J-LB(*SBX4 M0B8W=OW+/\W^X&-K=)6;5".B7CILU%YUE0P\"5YWG9#]:FXUJ4>M_[54"C'& M7% OO%"(L%G,*_K6O#A$H]3,/YY?5XV,_5*E/E>=H)>-ADG5K>?&PH/J);VD M,B%[VSHAJRG1L1:>\45B'.[$+RZT3,JT.06VS MZQ#4MG4(-J+=VX2)%FEW@ZG.*HP_6Y1@-)Q)F>C''?QZ)D!E-'?@7RHG5P8R M422)HZ7ZZNG;:?T2S(M-)J(-%8[^&355+R# Q&S[@#=, MS_>#4,9"B*V2E8>H3 "&=U WIM:J58A\^FLAB,E%@_0>IY2YAM\C^Z;.15N MUB_Z8JZHG/%FM6SW].;J'897@2YIQ:XH3B#2[^,!%300Y*_UU&74\57FW2N< MPNCI%JB*4$B$JJ*!Z$LJ6L52(T@1OPC3)WNC)> 4"SD). "E8;PMC3&@/D:Z M250\ZN#MAE-]BP229SFND[1 G]PL"\1,I I*1#$PR5#L/KMG#-;Q.P(R9AS)QN1C;)M4 M%LER^P2O[N'XE NZIJ>".M'S7IWUODJZ,7++82\&Q53O^+IC8+^>Z^I]. 96 M8)F= X(;H%5QCM!AQ;&F#ZH0M@,?!GC1PZ-DM<;0V0_F#;A.T#R=Q2]W&T<- M[DWDE2L>@F)E];06\6-15 LQV(,Y>AYVVJT>Y/J+YIAT@J=H+59E[.?Z N=? MU7-(A5QR^NSCS=7;@Q/=N:5K7&1Z70C4GEY5$9E%ZL? MQ0 /&&8SY)FPU>2>4.N[-?6'DMM<4S[CPO*;"Z^ARI-[@\FD^2[VZN-CK!ZP M(X\:>'XI,27<:AED]++P.5,1V:SK^S:5_PYY<.M8HE)91\R;IH27V5G$VMS" MV@WFK>FXHBYQ#TBHVV.70/Z.Q;Z8=\PP&GO-@U*Q\,/#>KYF2$8]M)X-W2@ _K(MPY[JYS$A&FJQ-T#W.X)O^G '/8Q*H1*FZ<;%[&.Z02RO 5N M(SKVNAX<6*&H 4YS4*E_T?OF5NV=B#R0?6&(S(H%V@M% TZHJJ)GZI5+,85C M\GM1HB#QDYIW9F!G>S$D\-CLC2%,T03G&Z-&EGD9,I$@!8NX \2Z9WUJW<3- M\IIKFP7KYB9L4(;IQ=:#+"@6VAP8R.;(#PZ6C!<='! GI/GL75L]'T-+^K[- M78%S^I$*ASA4563,O2YV4K$?NK4M7DH]/K<^NN!=)QK"^0%D^6.O@[7?'?1F M<=@4] .5DO(4PO^%S9B IC (*:U)CSRLRJ^,+2_,$@AU%S#'1BL6,L.5J<## M")29!:HN!5&"".K;(+@'YM9>&^M3(H D="C*0V9P GBX#P302THL]?O<=@ - M[A >YQ:WU:;H$AE_EU(WNU8'X"7/FBZ7 >96W 4J$85MJ+8%@.(6"TCH8H ) MFX$\JE231'Q\*U^76120Q!FR(8:);1B3I.T5M/VEW=0VN5C(X0.22C!47X:2 M*):#:7_P*.6\O.W/T.B';6F/:;:"Y?G6\_SF&CL\/RS(BBP-2UBK.IV4KG*5 M+QL^C*+NV0I?&N6#QF*Y\.M3M+-:-JH/*CCZC/E+R4D)=P(^>*;4U MY@:HE0^%2B?+9ZV+W6$6U,U'0/WL%4.S1$&7"JGKI#K1RNFB-G]'@14",7_K M[77@7]O!&Y=G/S?7_LT#?Z,8]L$ KP>OWE#CK>SM+0U*E_HMJOR@VNYE5-L! M9@EHVNQ#"6?,^)Y[-![.49SW4>0P)QAS=$Q9J<$X>RV:D615W^PDJ_HVR6H3 M[M @+4A(9*^\RN1PY[@NL_D SI9B0?9 MF5:TOM43DFQ$W6DJ:XH&9>[Z=^57%/$_\_+[J B=G$OT5(^HNC7_+JUY>PL= MJPOG-2P9ZG/J+@X$^K33MH3%<[6H>NH4B;R%)OZ[M8?T5)G(+U$(]3UB3%M5("KUS=X=HS(YB*L2GG<9+-6 8(/)JPO/ P_) $)23#" M&A.8L=[1V0\BL/UR;>S>OL'2:I2H,(!EK4GJH5E,:TQ21KT\W@[U9NCYI_6CJ9!<+B&EMS4!BL*-@V9Z_P5.S8&LE'X%UIQ.9:DHM(Z3A2R M.S_X@9QK2?1XG-LB$@W=2L+(*TL_.=XMO.L'PY+J,4;%JKASB\15$C6>Q$F3 MN)VX&7@P?"A#0+'[&B"\[5!QJK!4+"0C#REA,-;.5- M[7B6&^.$'JP(UA-CJ2UAU^^;5@\8-L" TPCW&S[#F.,!QCJ7&.Y^X,!X??^6 MXT?ZE_&@&YBVR)>(N-7SX!SL#M,GQ,;&CDO*4N!3J\J!:UHT4C8PDR)NB3BC M),JZ;_[@^0N"D]2.'/M'ZP@*="'G;IAC\)+@0M#YCTPN@C6;> MF"#YB(.);&'[<=VN4"5 , A=@JC9I+.B)#R="4X40L=*G\F@8NS;"PRT7T'R M:<(,0#%?SCY=7(DP[H$+=%Z)Z43IZY;*86I7J6!FJ9+$4>E5FST4-"L/PBX6!:NZ:=G2]48,"T)*& M,;&'Z$K4I!RXW.[F>)6Q&[!65!)^@5'AYVB(H\)P([ Z0-)AW$8 %.?&80RO M(6SB) ?6AR?%P3X8N$Z:9$1G/#Z"8*:#P.'%[P@,#T9RAQ,I>Q'E\%D)FQ;J MB%0K<:;)Q \ZT5#>A$+84H[#&))%,AA+3T/6$=E %ES_NGQR,L%Z(>@)\_A@ MHC.E1Q/ZOIHH&3SBNN2;;U$7KQH&\JB:42P?Y3#68?[][(@LI M/[Z.U&.;/.X<79EWR9UC4B?'ZBHZ">;F>^P<[3=F52]6>5^@BMY MH8+WVAJGCC'5RK=$0)YT!P]RRZ]L=W!C=G"WNG@KU4F]/-/-RX:E+K1_^JN/ MV,+)PZB^3F/)$NO[A"H"UQU[:87C*F=XU2S<@]L.:0<8L*ML=(LWE%F#$FPYY*<"VG*2?IYI_1 M5MJ#*SR5"AI=T"8UG3W<7W[;X3'F66GUOH4DPJ,&GBHQ9I;O6PC.32*A_<9< MY=NV)+0EH4DD5*WDWJJWK:_G.%%K,YN]/FGKZP6N!YH==K5*E%$I&96#A^BK M*U.@QS9MXEZL$"T86C"G;OE$:)DC?7GE: &5VZCEQN)NJLH](:QSHU1NW8&# M#AV?:KH[HR)D$T^_PWR+Y*-.OXU:_P-7/E:3:),6?9 O8E[-IN^_QDTWZKE: MR%;/G>,8&W?^;H:>.[%@^PW&Y\U:TW**N\_A%B M9.= QL.Q,%.LK3LA&*7F0:Y;;DL(KXH0=IN'BW1S>-"5:K4],)9XRBTVO+JO MS=2',YTPUN(6MTB$V4MR^VT7MEW8=F';A3U@RB>VL;,H#CS,+EFY5;E\L*@Y M^87N\.IP7"UO(V^V"]O,A6U260\;;S';YRX;3EEB3?JXDPE&$@F"^_1-H ?/ MEXN%5IHE:^X^XMEQF/,MF, MWW(:.QV/*IHFJ6R4JE4J0P^_PBY8,L6- MA2;V%:&;5B@Q01EO*LL/ARW/6?6WL=E5?QO;JK^;4/57I;0"+T6.%XO<^( 3 M*X>N?[?7]V\IEU0K^W!'^::4*VF)8@W4J]!#!1$P*%M_84-#R:BQ;*BD>A-* M#E&9JW=F.)H=;U2KJM57/A1BS-FU?K-)^[83#GP"9BP?O[ZO-1HS##6[WP;) MPK%ODIJY6!B9=6JSL1(ECF-&.@B@R9FB\Y<0GH,V,(EJ46IKJ0(<5UHIC^.D ML,9I4ECC5"OE<4HE.(H%P-,G59EC%YLQ5RL?C\]./]&/QL=W-,0GK7;':5*[ M8^H4:JQ/9Z?':JRG2R7=)EPN)Q5PP4*[ZY!PN4*0MPF7CTFXG%!XK#5>B&@4 MRW+8VBKRP(P)R:&-TF%^;L3#D_F>&/[JLI,1GQ;^>FX5U,= _]S9>+34.1TU MXW%UZYR.-ZFF(.@1*S<)E@[RRWYV4&H2-B3@_& MC,!KY*V<+^9T:EEA5)GGB$=:VTBT@]KR(]$V:?W[M=P^!:]F_49E57E_60Y_ MB9&(QGRQJVNL 8P$DN3*N7,>;7@HTG[I<#XIMZ8A:O" ^A8 MM%_L MPEY*=$[6]]YO8Y5S$2*"65>B8+SDYV)!;Z^ SYAAR".&EE$132-J-)MMQ\7* MY6CZ(9>\S;'(,9;J[?EWK!]3 ]ZPERG*3E$P'%W;5,J8ZBO#9HC*U0%^$7," M %4T"KRQS8B764M FR=S.DX7VP('3BCZ]0;<%47;92R-R(R.[GSY9)@M$V^A MS/- TCH#D_SNPO=D%PL$/$TTP)85,M@'7N5>&*,0K%7V]JE2=KB<8N-/00@Y MKBO<_#>)[R@-U]):+\@&"6-Q$_NU)'+![*MQL:J\*&JM C!"C,9(2G13(%44 MQ*)LOBK7G8V<$*%70(L4ZN&Z&.V4%K7')B%BNI($305()+,GWVO1$QX@)"]: MRYMP_OT+BWDO=/2EY(/4MW](Q#%6#YV(O5&37XY$QZGZZ# <51,W62?V+!4! M9I3?"?93 68"/JRYGX6=[>)G_-[$^+&28'/M88JVPW[842_@"AO,=FX=6VR= M* $?O@, ,+1D=-H\#,B@,U7,/>QQD!J"?6_F EFR5\>/@ZC'_HK-(,(2X",A M>ATG!*U(!.!@%&%=CR+,'4*%SNE-06[F7(UH0#X=@LI;0""(H"2.40RHX.Q8EIT&>VKW(I0/9ZC !0+60W@PQ.VVW@]D5*+*K;K%XFT04%3:;#4 MTS527_R*KDF%3+RW8MX),1B'CPF$F1XB4LV/AC'&FN<^?(ZGA[XZ5I%L[CF> MT9+3Z@(]=*EA#P^0KE4" <\CD56910[GB-I8>=FR\8B+]8NNR.Z=5.Z$JBYZ MFB[ [POB</M5SWT)*M;?- 8I1J^8TFUI83+P7_R30>?4^=_\_>ES:U MK6R+?J>*_Z";<_8]294@EFD7)4ALKR)*C 3"__JW5 MW1ILR[9L2YY0G7NSP5BM[E[S;#R8FL(L1,] 3IT8-J&18"G^)G;([6:Q@:8V M^K:$#GD$*3ZBV"N,HG'6U9"U&&5NRG8P]M*W]@*SDC[NN>@\:]%G)4[7M$-F M!8Z5\\Q-M/GW]PJUOX0V :N*&/S+Z#9#$SXA#]?: %&GP\;0+]0V'[#4!&P9 M'+8)W)0P.Y2Z'JE!:MX9H("K6/T3FOKJ^;=P)BP!2_='EQ@$IQ/V3=O6?%^I M9_SRB85T:!U>^0,;?PA+,H,="Z LF9O'LJZ;CT./8R$3O$AD[A?/?/:G57I\ M0PS&+J);2GU@8_0Z@MUE(T;M0^'&Z)B6XQK492<&>\$9<7/@GH5+Y*_!H^+L?+?.L2'\Q M]-3LD/_#]FHDJ8=*Q\EN.&.3X:[3E0/=AJ$\'KD?+M*BM: ^Z1P*'P%@%GJ= M14'K!++4'_)+YPZC!YM.H_.'?>+<5YS=AS@@#%=>RK "8;->Z>!*/!SU!/E: M5\B.%S3N>:;?&'\]=8VW0UL8\J: Q1^X4_ 9[EMR-,MSALYR=99S?_D##A'] M_7&-OLC 3*>DK;EXH3G?(U7\M)J.D83S!V$7"/P^W('P@@K M\_QRD^KG+-*3-7K_WJ6P-P UV,.N$>\:1<\M:ZGT3#YO9+##DCBMHP4.$&]N MI$^&6\[?AM\PH]2WO-VEON6LU'?3HTS7T[R)E/GX8L,B=*YU'^-W/O?IF"@1 MZ81X^)-IX#TEXV',G(E;[$S6.\ :719!13SA%?'I>P16X6"*O9VB6(U&O]1 MJ+B+,_$"'FW7BDOYBM)#0G:O&*;'G%Q"+?EU5E,K&T>*%KV(Q( MS?1@;-I2:KS,?EWR4IHS$7M7O/JCSF3,?PD[D]N!O 7;-NP+"]S)$0YGYOOZ M-R]%GL?1"E]A40'-9GFO,J9FTHK>_3W?S3[87].^2]2TO5*XB5:N0XF[7IGF*IO(N^FLE.N&UT4Q3$?"76.*S= M==2(%2G6'*BM]-/$:?NTZ0Z*K"=*[/9/F8\F;F!C4\1DC)3+%#TTJ\]\2;5D MMB\/6%$T'7 @%BJY\?D&^WLL+0H,[/RL\0:1Q7+A@JZ1%WMY7JS+>5_6U GN MB_V]G?!?P-WT-)OF3>+U&#;!.N*@$?S0_ ,Z4B)PIH5'('C.-D$;=[+3=HM(OR[D*,*$;Y=HSXI MS)$Z<9QZ!0RB2]@= 0B=%24E:_-^9'XZ7U?H4^=L?'R_7R M#*BR)P WK#MB* /6X\3+N";"G6ZVL;U#'SB"RL8&!1?;N/C>/#[ T2 R]C* M1?E-4U;OOPR8""[UP[1TU=OBA74G@ZQD#0I B@3IWS15^Z2#E074/]E!=9,N M\*BIA&\$1 V7/[1[B J4TM,<.E@%\%?131MIH8?,O^W:V)(&D1SO!71T5W=8 MNK9,:V> $F YR^U[S1("$J+40%ATV@%0#2I4Q@QYN ZD97DNK9IB$ L@CO^&1$:!36:&_>3?+9:#'?OS6#/X6 M929%._Y^X ^PZ1X&9/;W*,-029]&Y@Q@%!;E_RKR;I-5<8PV10#IQX!"^80/ M=MKNQG5H>K/H;S08A /KD%Y?-P>$\,%8H!>I)GP.%\&ZJSQV-=JWQ\ J$!2V MR-0P9+8MC&7"&YJ&@"0#"ADP4WA8'H#%*1P31GBL#0754XR.!H#!R^4M+ZA$ M0#K&Z\'W_\1A153F/++:+D!X>!DE2%2>#('/D4%\-AR$MX?>?*H,T+5ENS+3 M:%B3BP>:_NPO3U^XOW?R1!079_D *:+, ;H[++/B!C[GAT8R7&PN3!& EFD#V?_PBE X!W(L[*_2!X[%,&,4!&V"I.GIS5Y1 M'WG2;-I=@X]H0XKC.//'U1Q*7:R6+_20 3C@?9]N;, +" $$(3*<4>-1V>X: MCTI6X[&5;/9'5],)%\:=8=+U" JDHL$R8_@,.#8"CC+@H&Z1:>,NHQFP'%U" M"?;6 ]=;B.A93#32_Z)?;[,B4/"6'%IK*8'%@ M;3"SV/":D*G+RKUNW@5-L_@@N^T6Q;3UE@8,4$7.[U4DHA/C#O@V_L8&;E*0 M,Y6'5@52A9E**P\YJ>W&-2RG:YGN7==[P2-5E1F'$0CKI/2 I86*0MLK4HQL M8RTU5^502($2"U*V[7I5J[+:PWFE@%3X5QF](R@K[9'F7QR[//.2+FT.ES(2 MV++9TXA?S4GW=RC4$?70.8.^!/8=!83XHX$3L.%++AR""U0#>X?@&0+5$= 0 M-A#HVKAG1$T?@*!F4V.4^M90%PBHD7KJB,I;O:F>PL!5+=FV-6RJIX0J@SM$ MI7K)'4[F-JB53XUMZE+RRI8]C*E?G;2$NN+0:QMU:VTWB5S #;>8\M:@REO( M[>$0N1 MAG-UL=$B&)"@[7"3F&XDI#!V:-8?S_3;) M!'>X!XI1,=>=:7\*KCSC-H /6IZ4A -1#;_+A*AOU2""@H7)S\$U@A!Q<\>& M23UE.)19^&K:CO=%^C'MBM?I!!-C*4>F&CS("I/V(?68$A.2(]_'W>#5,9R\ MU]S"W5E*!;(;!%5.AM MDQKZ*F-QW,^A\AQ:SY1_!'6%_2 -LM\L:2G:UMN9$H"5%R$/AA.,B-D< (")_ M0^M.#)M,U#97V93N$>,1<$*^YQ(1U8$NG QD_=:+ >H( N+KPRW" 8TA.,F, M]A$?^[J,^$@5BG$[>&/S=OTA@]Z4P7F:=7*[<]SJ!$MM3_G*' M^9)FO/HP(2?0_S,FI$;<8FO0:YLZO8YJ :X#O^:O-?Z4E_]+#4O?HZ&JU.M+ M78.Z@/J.8Z+E0 YLQ0(>@/3EN0D\,6Z8CQ[7H;*#/\6_0"UU4.!06'+5E6(,R20&#EV(%UY<$+@M8?UH3;#Y['+X*LT@S>#U;KN3:-:H'O%)T3M.E&>H/Q (\^0K$XE!E$ELRQ_/K@R(4.' MLC1 0W-IZRUFN3%0L)A6G5@F4@:87<>D@TD (GH4?8\6TXZ:W'./JAI+C6'A MKXUI-U3=;E=T-7-%+QWH]UXX.;2/I3J)H";CFIKZWU??7/@;,^B.@3'J)C5' MD%E33M8$SBE4ZH?"-R18_D5*4:$']_="CPIUZES\2H/)PI5FWZ=*9./\WZMK M,JB"&) AY\R))$VT>F@[48L8#$BO !"T!,(ZY*'<\*U<%K;"H1$L-&Y0U95Y MH_POT"WDDYP,OA^#K@'KMDBL!^-HI7"'L* MKX,3'7RA4AY4Z;YLH="V"=.)F!-+87DK&$<'SI@O,=V#K6=:J(*A%Q55$5BW MC8&,#OP,DN)P5>@V'63SO^850\W:(?J@C3M6.HRG!I;H=[ZTA1_H0^,YTC)U MXQK>K_3*\(D MP-VFB .)YV9%@"-KI!;(N&"1V_\II>ELQ] M;PXUSU@HRC/GU?!=)8Q#::!+P.]0V;!,W:X;ZB7Z*]1QR5NK'PK>U^C-!%_< M7,QX+;\1PK67T__]6_MP@FEDLI>/$P"4]R7PSM[WS_[W6^W#MDP3XQ]BIU9< M,'=(C=U03O=_T#\._%'K(_\FOA'$'/N6-[&&?2&4'N?]G1(885?()Q0%*P>7 M*4RXRZC*C""N@3%C)@C0*!;#;7 #H/E!KSBOHXGM02 8Z!HGQ5D\#RE:.6*^ M>;YXT)^6:5_CJL!TK-Y\_'AXPJ33DLS M'X:/N]!)@:&Z/9>EQ+)R!2\NREM]N%8HF2V43,D\HTI7(QTA&CW9W\904PRU M[8;+0M\+W!*+3^,$#DME]2/\W.ILJ;<=2MOK]INY^%_@Q/D/'2R)8!9H,C'( M.XPN<5H2,"88NF;?^CA$AIBJ&JKYUY;FB^+PRA"*\F ^2R6R^'3*T)BX" 8[ M 8&G\%>1<0F[#UBKT5&:.#+01K>>9G=]Y9DQ@6@,.F0+#,3 M<[Z]\7,^[S18#R V$B%X-O9+(ZJO#H6F 2^_]WO#LSER;7&.Y\A)V$RME>-R[8M$C8 M%#\2UX6$@P/ZV1VS)TXMN4B;AJ[*ODBKQWLB/:!YU>X[4Q/ :970W86,H3B7Q%E872!K;J% M(5:UC V/VNZ0J:0$MS@=[>S)!$YU#)J<9)&A:L#PM!1_OD!HE*V?_.FG(_D9 MZ:@%85#!\M+:@1$.!%V[1_G.K+3A!T;))H8P2\Y5MU%>PW7Y>+^:%FD&FN:( MB7ET*+ 4BM!77H;K[-PT9CH-YIJ+FN*QO)Y< 50O0>5I-IL^- &[+NM7UP)\ MEEAYX 8#[WJ:*QTQ&V<.BX($+$W*P_\7J*(G%?TA.J@R!O-D6&+;D/W&^=6E M93X- G>SERB&V?8JRR\U#.8$#>FC=<-P@:E])825MH &A(6J72 ?GI$/:W2) M3O6 "\4QL0]'ON#/BZ$NKK!UB+E>("3:@V%7:MB'BI(!D[SP+. @LL;$31INWD] M*DG:;1?G+3,"O+7M#O#6L@#O%@C_"5+BNR\DF(3XOMWT%Z'BG#S1W-D1][E4 M.A2\OPC#(1:?T>WOM8)TGA5K/4&N5SBW:S3W:VY]9"@K;&+GUAF=67DZUUB7 MT?*K@*I92RG>[97VE(IL-,4;C@:)63,[D,ZA!QQ?-&Z^GIQ?MX33YMG)L5!O M"13)+TZ%ZT_-EG!UNIJ&8 M/>(K?'/35RCA$PB+K>;W>$,'DQTQ*CF:YC+TWE;T?MAJ^=)R3.6>^X!/L+E1 M+/X\A0K""_Y'8$LN2!.9',H(-3E"W6XZ;D3EQ&.&4-53.:S&AR MW32YL:KAN>D0^]J,+@"*$<9W6+G^$"E&5@H=I*0<;JQW_.2?3\VCYG5K1_S? M*T;0F==;F$%0A0V4+Z.@/8FY_^ ".31;N%UX0W<$#X\E F$ MV49^):IM, MY9X58%J$/4"GO7J/Y'.Y:K 5[_&@4@Z^/[(8F]IVF"MA=C2;[D$KH5C&+R_L M\@>U, \T/U?T! C3")A-L!6I+-+-L=Y,,W^T*C]FDO2P3P=H^=A=B;$.N E;_-Q=9PR??6/=%?1!AJGQK'?D> M=%9QCRYTY%_G. P,";N0HX2=SPA[5XAID_:R1,1K^^CZB#GVV"0T;RNL/.B* M/&CPXH^NIA*=SF^(2^4S27P"@7O3U(*=Y*D(1RG/A'N];VFZ(!79IQG]OQR: M*^ZB][U)6Y?R!EG>5E328:TEZ &HPDM'76&Z!T__"-?SL:ITUBDIHX:=H(9- MVLO+\LXSBJM[;>N"_;19LSJOB9U%<^XMF=?.8@VLB_WJZ(#::PM=[+PN5A3. M#^N'D^S7/+5?)6:_ZL2A5;4F&W3KU0^_#C5G\K;3HDVKJ%'.]OS&>X-77\P7 M1B/?D;'H#=_MU\<5>3A<]$;V:0]$'] >3E?\:-1E$90(>^*[>E 7I/Q',=A+ M4"'L>0R05VF\"9;?F2K4["54!LVWF4GR7>$7F[275<8ATJU[)+9B:?ZDWX#[ M^)-U[8#J8FGI1^/QQUVASV<\DDPV&2Z9["JKR$=W<^/G90/JVH6\!;38C0Z-H;1%J/MBGHL MNR+8QYQ,82S<5\GXPC;3Y;K?'\<_^+0S7"$87!OLY,@T7%NX-'5-&0QEN#/E MG)5I24)X]/O5,*>(X@VQC \I]UI[,U1[OTS%F5=H)F4<89LI=A^N 3IC#/(??5@J.<4J]J6*EYKB1 GT RA(S\ A2+K^%^YUW]_+1S) MQOV(]D^',],A=QF5;C&5K/O]<:AT=[1Y9F8/R^U1"F5"^[-K$*^VNCI-:-%0#9Q63&?8#$GL*E:?4,IG>ZIE88#M)[MUOS\6 MV6=T/X7N0:N_%[X?"E^58],PW;ON''3_0@@_;K&7M-W%7E)6[)45>V42XX,D MS6A+4MFP@N<@A&.!^691)XA"NQ?(7G5QGUBL 8% 9 L;D=CA,V8:SJ*U[ZM% MA8A"Y QDFPVRV=0[] VZADH4WE[TG> :P-^Q4]>K#UBAO&*<<88)C[ MA3G>NEI!T27C.Y\*8K$JB5*^*F2L-Z.==&FGP4D%30%;T&S;I:XJJEYX!,3J M1?JZ;-B":Z/FX%A$MEUKP+_1(T[75+>$NJ;_6Q7+Y4)&=AG9;8C($F0@R1[^ MH&JZBX0XEBTM/%77+4^B&V?._3O. M->0.JY6,-3=/^=LK,*V1F7D;H+W(OZ_/-;\;I7A=W MSPBD<8))JF7&,+:/2+?+(#Q&Z@=^L9!)B/-TPP;@TN2Y#09@9N[M:M9JQG-W M%[;KSDB6:EE&\HZ*]"PE($.?EYC>M24YDV!D57)BJ5;*,I(SVDF9=E:5D3RG M@L*WGYH'0E\ERD'?.Y&-1 M@2P'>7>(=+O,ORP'.3/W,KK,HG@;B3XQ!BT49G"<3,-+AR9=?CG,>-;VR>]-RO3)>%92 M/*NX93RK8:JT%.,$6(P2>Q!O$7^;S(]:1T+T[-V P^5*&=-*#(CYK1M)Y+9M M3=5D"\>W _8AI@3SY#/$2$*";!K,K^6!8@*WD'50AAJ.4(^ J3="J^ZA:TZ&3R%U E*G"I=O6-46H*XKI&@Z*I5,-!%?? M(@I1@1\Y?!7T)5(Q>*H9LJ%H(.O\(4IVAF:)0:VP;=+KHM/1%.!##00R_$B9 M538Q;TO>'R,4,6DBL(^1Y0W#R"M7)X)4D ^DXFOYS3!BTJ&G78V CO]$%-?1 M'HC ,3AC8EOR_C@XNZ-(&PA?#VDGU)N.0X:/PBW^-1V _&O5>%\KQ_N:%.]K M,?=6SL7[7BG1S4DCW_/N.N[ Z_QV#[S.9P.OLX'7F6CY4,C/$"R;%O?.]/-M M?G\2^OFFI6ZUB$*U&JE0RF7:^:Z]/Q'M?!M1=EPWSU VL4AB;I9;;-/$;A,U MR+J/NW>H2XH#JA_0T_(W ,\L\OYCQ1K\W_8LMS)WMLLR,__U7-2]5W@LG M?US-&>###U.?;+!R;BHN(FJ'IKJ)IHWZVQ6C:D'7% MDQ]GFG'?EFV2(>W.(^WQR>D6(^TQZ6B&EN'LR\+9L_K1%N/LF=PF>H:N+P== M+Z].MAA=+RV"^3]S*0:;%3JLQ/Q::49T;JGH#?V?I!DO;ZY.6FEO8R1>O,-O21QQ+T-.5I9,_\?5+-]7N;\7 MN/,%TQ*DTFOUC9=XSRO4,!7_Y$GIR@;0?EVA&;12K5 41[+SA:YL"ZJK#P1% M=FVL3\/B-,LO>&L3P8:K8$G;&KR^3;JR#EO@>=JT:3?[!EW:(JX!C]$59=?I MFA9F?!]N/^DO_M;MRY3@2^=K?R5.)RJ MP7H:E)3\;C>[DBZ^_'E]Y1/\A,AE&KN=4Z'=91[PDMZZM?RNO YV=S1X%X>[ M%5/@;@G. WMKOP5HF4YW('P^%%IF_]Z,F.0U,36UE/3A%FPBGXV7(\!*1X?6E MI1F*UI?U<8Q8EV*#96S?JK2-! @F#!+/W(1OJ]A\]>VMFX&4&W@0#[ZML MW0O?#X6ORK%IF.Y=-[/P,@MOK>K<9(S<>14N0X-1$V^L?(6F\1]K%E$<\P79 M>YERG\9;9X9D8\9>@^ J!E[;A!A>?+5-=//1:W_5 6W'? 24P)9[MFG8&'YE MH=?Q#FN(Z/M[FD$_5F34R>@>$/]-]BE6KM@"J/18]?7"X[$OZ:V9JIZ&JI[? M=%7]L]DUA"/7NB.V/8^67M@0+3TF( IK25"8!Q!7P(-E71?.#H6&#MIJ!# R MC6[\BL/X*^ZZ#A>CM]((%D5?289(\]C3V35D5D/VUDP!S130-/2>TT/AQ,*V MO!98R+*3Z:!KA$5=AZ]>'0I?=-)K*\^#3 F-=\0KT#9X1="K30M(1GX8S"R9^[\S MMV>#8!#^5^[UWPM?E080FJ;7PAEQX&M=(JO_;P,/FJVX!2LV+LY; M)^?7PL6IT#P_/KD\@7_@UZN3C\W6]7-TUFP(]4;CXN;\NGG^43AM M7GU-RB)N^V=J)V9E;\F:*ZZ'O38%' 9S9,J6BAS?4S-IX[Y5^SFNY0%P0>&8 M/&@*KM$TE"RX,3/'JDEGC6*^=JG!NVH="H5 XD*1BKEH2 MV<_P3S''?RZ5\M4B_[E:K.9J[.>\E"N7_XNSYG']^N18.&V> MU\\;S?J9T+J&#[Z>G%]/[&NYG<<-.YUBVG'E[;;CRID=MZOQV8UHKKHK7OV7 M]-9);NGVAZN3RXNKV3'@_;VQ('!"P= 9@P*R-Z3A?9X0#<;83W@&7%)OBXSX M;MZMI(\10' 7?CB]=_'[>["$QJ))8ZWQYA"NC8;D M3(9S8KSGA#X;&K*_UY$U2X=#:X: Y7,]^(:%WX6_]V%KMLA#O=X:L+2J>4-1 M0]")"QS;U1GXL5&ZV25$@G0[C.\)GUX#[ MHT]4MQ_UCV1;8WR#R^#M1_@A6T*G)N M\^T#?6AM30@ZH<'_OXH%.W>@Z7 U^/<3RWPBO+QOUBZ,W+!O*\MO5J'RD!_9V[!/: MX)&]CDM$C]5XKXR0152^'+8. 1Y$1?DCV$'7&UU^M ,:[O=A^]0?8KDZ[T=C M^7.B[8B))?@-OW-.*$G,6Y*>ZC#1E,^E,'/$+[@AN_I!987J*E10!%@X"9RV MQ],]B/!KONZ:=OBO'(G@*S*@#1'Z6 Z&H %-IX-95!3J^"K$([/MR)JQOV<1 MV38-B@:R;;L6?;?<-EU8HTLP.6]$"QNA[HY%J$/-U]X0*;ROB/X:*@@;)%[+ M @8)_]>Q8"=XAH!LD;Y!C1TB!E3S1?1?*8!JC8YFZ8 (]AH[ SJFR\ M72H+-?O>GD@R'FRC%<@)Y 3<'NE)#)/[Z!Z0*S"!JC(Y@MR#[N40S%Z >.C+ M_GG(DPP+P5(B(J(,]V4[*$$UV L8SRKU_8/0D"DNL39K<@_E(),6J"_KILT7 MG7@P)NXY[=%$U6 '#[+NRI1X/#-_W-:BH[%H4BEV:],Z(-?@)F&O6H_:6#U9 M)9C<&B@8(BK5CP3,3OCOR#N0:M @C=BI9[Q2$4G5AC;1-5"FV?T"!P%KDAT# MKA,OB&KN/HMM^TIBR'!.,V]UA=2T,6]^2?FNB7HH/;^:3:P')"@[4LI0_ 8, M!DD%Q"_5:@D9;PD?9JLR@8/8<4HB;87K)WH96W6S:9]\GIG"VPJ35*+I,5,S M*MN=FE')4C.B:F^62W]8.IX^!/!Q<(])O: E5[@%UVB++IP?_*0^W19RY5M) MDFZ?G=JW/^J5\LG^7H1K=GOPG@']RKM0X=8!7FX0GCGB@;$6#8R-]OF*3=.\ M]XCL.N:4;E]^5[ :-@7C3_)>)OCHC&Y@[,(B&M'P%WH7>J3+RKV <*?GC!Y8 M.I:&ASU-QCNM>&M*8;5UJ#4+' [!_M]7A0 DQ5KE%E6#7*D <&G^*?5+!??N MN-T>[@<>O(Y1 ^O6D@_W=%GT_;5;#'VQ]W^NW%\VW;OFR7GQU807SMG!?B(D MIBX;[VO1)]N$]1>_EB%!-<1!PHUX$'J<'BDYOO(# M[WW'T'%Z=MYR5S6+A_+0^GSXMB@?B[6G$?TOXN51M\4LMB28?WS\=?5*/_YZ);OOS]:OIE M@H8",+JS3-=0#S@.67?MU_E<4TJ$(<>FT\GM\_7/VZ^G9,?Q>^?.NEP5FX5 MEK"C\^CQ1MM;2M2G@/L/,B5)<)+1Z^-+XZBX93BQU_IXYC)1\/GWA$U)^3F7 M\SHC:T_O#-,X12Z"\6%#[L&B',3O8D'X%8T/P])7Z)BIVQ<=U(L.6>X/=5T5*)HZ.D0^ \V]4"XAL86N&D=O_H@E42I5!.K^YZ?8H[!.RK(H["NB M$.!-;9V<$X]]+B^>\Y6:6,C-%L_+J?K(J S'M :7L@5Z M!V@B9J]O&LBXX( 7G2M"DSQ&Y?0O\[KV=#.XK/>EE1%V MG +5EL:I]EI^&A.^GSY^+]S]_-ZMY:HK%[X>A;+R9,'![;TD*J7P2$6!!EE; MK.XV;4Z\O&5),E^HB#EIMI:RG#7<,&W';AHG3PJQ8=M'FJX#>=@7Q@T20U\G M#E']&MD+Z](R[RRY-TJ]5[7OI\W&Y][944J.\LF$' I=3_"8XPFIZ>S51,!/ MLH6%';0N@]"C8_)=FQ\^O5!_"N']:3B=Y'OB>7X7PZ9TW'*54E$L50HS"2@2 MDY("0>*XD13LUPG;95EC!>":%XNUV?I*)&SGYYCU23%MC&5? R-T&"-$AGA^ M8]P^-W_U:\:O>N&NHZTQN#W*$/.4(5Z;#I9)#H6]7X2Z,P2Y-'A.H2@6\P6Q M+.VJSC/S!I>V0W)BI5P1*])LMAV7BM-01Q)-$=N:%(N=/=@L;Y/O4CLW#25@ M_,V WTN54[5Q?-KM?5)2-%\Q&17KW W6J,"/!FG>_EY.+"@")&EP]&JE)N9V M-K0;\Q*75M<*DEBMI&')G@XYE["MF3.XU&7#J1LJII[T,5I]3D:IU3JUG?/6 M+[EQ<[\:G5A++^5U-PECH2I>.T]; SBK64J#EXQ M M'_/.JM?R$S,PH"I,(H M*CE1DDJ9PS<9A^^M+)0\%:P]* M8K56W'GV,S<8$P33LDRF*(E2K0Q@*J^*S^1#?.9,DVD[7XU@7EYX',0)[8$_ M5-8K?2\W39.H6K&[CK+>J+.&]C\VT.(_ CO#CKN*=_9@<^!N=#WOZ:E;NG@J M'+>L=88\@WI>/=AP5M2[I0>;A91^;=*1;-R?F;*!?!5'$]B7\@ +&@([LWY! M;I^_YXRR99_G2G]6;F=.J,H#V6F9C_-G'27M0!H3ZNG5XTV"53I90,6R))9R M&^<&'KOOJ/L,MU\[L(ERH#T==#55)? =((:\]M2V]%RN6L/-5/-2_CWOF\3V M,MM#-;]/QZL9XC ;R[RG9/;YTY?'@7M3NFDF*0KF+);KLQV^"+]L-%32(:@" M>EDJL^WT[73'QK_)Y>M=09:)Y5H:$961>E?+)6I+UD%S\^=61!/N^[XH[ASKW=OI#\M&F02B5?+5<2J]4=)N7YKG-YBB[D:F*A-#O[;WZ* MKHU3]+A%-D+-#^ISZY]ROG!QMOK&$Q5PN%\2:--OM MN-5$'.\RER?@4B$OYF,4_,]/P.40 7NY\T$V/2;71Q/Q4_GY2CG]U3IQ%DEP M2+>TQCO'HK#M7)(%=#[J8:N=OGNJ77^S=:_E>UO.%U,B%W\HO0 M8E:COI1 XE;%0G'C_',)J2^KT5N*8K52%7/YV4I@5C23Q692C,V$E=QIX6T: M,#Q[_O3/M?.M^O5>76O ,"J*G44,M_1@LU03= 29!@7Y2,??7JUR^YP[UG]) M;K7LF(NT(8EK;6ETO/$[X: VN6D!;A,>,G%DWK^%8$X&'JDVZ4B7LG5AT9$W M*CW=);%:7=F"4S9OE6 NR[%U3+[^?.K:7_7P" ZV='&AI;V1*S^/.E_Z7W[] M\UM69Q>4SUQ\NLH12,3F^>FP3+RDC]LI;2&0UW&V<)C+1[E8QS[@,Y3H?P I M+%9N(.* H*YI 06H8VA0C885>W/=?VX$_#^>Y*O+_..G_/?N./CG6](#N_T@ M_RRVB:)_J02WV%7@(_?WL0F]>/U7UY]\)7D$BJ -7D*^)Q<@>>V$4>1%FZJ@\3Z=E M9$ZL%6=[4K;31(US@TL[UN$&*X79@<;Y=;LP/LOV+ M=*S!YO6B\PZ3Q<.6YB6S\2*5C)D\1?M2=<'68UE<+!DX+MU<$]A7KBJ6M>O?SRJE ME$H"EU!MKH=H7C@8\\$<3SHM\VN,N*!.;O[Y=7DLM^XN(WR41[&6\EPY%WKE M4_O,//UZ7IN%9Q&+K%"^_-*U* MM[365F3\C).,<,;&])&&'/9$TSQK&;1\'FPD_F3-A);B=.DW$UH$@-O29B@Q MA2O+S=VI@ZTBD1M_?B=@I%%3(M-J"0%9Y8!DXVJX? ! MG2A]N.,0V=F#)4. Y M>12NS)YLB.P#46@12^N\%WJR=:?!.W+!"_I\P;__Y^! .-6(KKX3+N4[\AZ> M^>,20P'$R%??"]3I 3\*!P?>A:C:@[<%MO"!8_;?"67$(OZ!)^;*M,UE/^J\ M"O #8OE/T"5R$4M0<_X@O$UO@^^%ZT$?]E:W0/0#:KX:?> M>H_AGPZ":_C[+9PGXFA]6.>@;1'Y_H#%N]X)LOXH#^SA+<P9:(=>XE:3"[7-;_M(KW?U43Y\*<&"W!R\8T*\ *#W)(!S@ M,0/AX?^!UAHW:9_F5R-8Q_P]LNN8[P6N3P++T>6^#;?H_?1>>-14I_M.J.7^ M\@%E,349'WT5AZU%2,=9"FR8OS*/5/WGV<65<'SRO=DX:8E"\[QQ*-3/CX76 MS5&K>=RL7_V__=5(0!(L79R2^,EY9QT>QL$85J]Y^:WXOU1 M*]]^%4=\I;G# NZPZNW0B^U\KE:TSY7*Y\^7M7@[C"FNYI5*H3TO]?WYMQ=U MZMQL(S <5&-$Y!/6*R_ ,Y/N-O5.EM*\PN@71R5BXFI=8)^;VYR:EN!TB3 @ MLF4+.'5 %;[* Z$@B=/N*P9*+4KCBYUD/B^'!R3D;3./N=IC1&]3JNTHOUK3 M]J([*5V1!V*XQ*;QK!.]#@*%?*S].%%^7193RA[E2D>I_-<,7(A*'2\=%FG_ M4&QI%3EUAJ]>C5I\F9PKOJXT_[JQG'[>\OEEUX^9>C::HTD$"L!TTA=@MHD&;H4?'Q3;X_ M^O+QYEEZ6*2?S9Q--&:(C"FI$!PS\$2HS=_AF5!!45>H JY"[5LFFIZ^')J, M4&E+)@G36HMBL32;OT5B4VI 64(73T+_3A1?TL:'Q*1=OBB6*A)RG(2P(9-[ MVR[WPDU /EJF;5]:9@=+[:YII@S*.C29SFJ?;Y_5(_GFXS^_>T]WBW1[7T3F M+=O?;0A!)OU+CRWTZ;F7%(OQ8WSI,M/$)5@(-=(6637 D(J8BS'0=U7W.2=4 M%X9:XE!)3'" A52LB)7*["R73$3LG(@X">>+$]K<]",QB"7KH+S4U9YF:-CN MS=$>R EK_TW-)"HR:HVG:]MI?LW)BW0F7[69Q$\G"G?L?#354AXZX<0.YYD! ME:+XB8=V:4NFDE@K@"TE+5@2GME2:=A22Z!&8N*Q#.(1D*.Z8!9O)C-W3F:& MNQ5=] GBHG''8NEGH+-YYA7*2#2O^E^5V^?B\7'Y8\&4\_K]+IE7_O'YK/7, MQ(IF9!%HDK9 *X@%G$P5H\?)BS>UXD(GN$X<*?\.T;Y\_J8_FZ6?2*%M)SL=8 M%/KC4MP[060R2B;"F9"8!.;4HWR2).9B5$N_>"D^%X"2,P]K(,M3=)T&/*<> M-CN0@Y^;ACFLN?@N.H_S?'W(G^6^?O[1_9%2KZ$X[HG8?.BK9F.U@6P0T\U\ M<*OTP4W'I]13[,1\<<&V IG?;3&_VXS&. O@PQ(? MQ;C<*5UTPN,3)G-9[N=!1NO[>1Z_75>.'FZ>C@KZ>E2]V7R7-9TP(VR C-6N M@-6NCTF&/29X9J]3 I%Q%.R(&P61J3(>C\NOFR^_ZV>DW\NC\WE33[S(M0969@//S MQ3%42EUR5ETHDZL%J+3'V.+7]3Z6H>R^B$H^^RPW;N)K(K\-6&D2U]PQ(G MPL8Q+%^@@%X>.5( ?G*UNV*I6(QE;^Z$3-XDLV^S=C-KI(=^]__/"VNUM[ M+>O6GFBW]K6V?J_>2E+Q]EF]<8PO/TZ^W'Q19[5^G]2#.CS*1_!F^2QXLMUO M&;]D__6CH]O0=$@.!G;I#;/7-PV$2OU)LX.O-:B-1J'TE?3:Q+I]5DA/.:YI M#Y96FL1+E]WGZ=S[K,,+4>.5]4M94YM&0^XC[7I[;N8J_>>?7XY;GXII[7G^ MN[TBCJP91/7L!V^SIS=?+]UO=O7SI9K69LMS;W9H5JJWTT]D\.FH4FT_*Z6% MM)5UM91.^_L+M(+WERI%=JR?3%[M6SWAFBY.;,)0#"IBMF"?7'_<@IUZVN,6;#4$_$R CP;Z"B>W2L1T MK%!_QHBQUZW;YY;1=2J7]_IC/J4VC-Q<+N:B9DXG/6JRR[F<6,Q74YQED0$, 3;5D[!XD]U"-2^" MOIR!+V7P13M5%L[,*8NU4DW,Q6BC]H( -Z-[P(*0B_ P+=U#("]6\T![I5K" MX!MK'K!T$':#8U_9;K9E-[.*F(:SIY^/VOE'^5FWNNW*VCMXL]@-8W5!IC,M M5/+<3V/>IW>P:51E)?+'_@P";*@?9TT-54EZK)Q^RQIE^6+B]R@ M=[G^42)A1:3!,]3Q/()&#T0U$L(/P?]B]BG#[L-9-IB3S;;9XH-L3@&4F!.L M+,VVY'9!ZJP15JGXOZ1R42R4%^ABNX6PBZLQE%^:?AOW8BJ9*K53ZD*VF_E4 MJ?*:PK"B FMF2^!!F@:'V=- TF"2XZ=97Y>FCF%9&-QK'RJ_@G MK_3%E%[:Q4S5YQ8G M[S5D&A7%6NUE^#;C(G/F!MHM:9SM9O'$G9!(OS8GV)!>[QFB8@TG,6S:8YL: MK!>4J]E7Y(^KV8"^+6(]: IA;.^**.:=05>\?:[+>8NT/Y[7^MK:=9HI#1,9 M#VN%HF]VV)UDL_,E61/!5]CL9K-Q6>M<.4=)])Q[.2"8JI&LB(PWPB>5*XOE M4E+-+#/LFH? <89@:\;!',YVM;:5^.8S\6KXR:ZU) IV4@L^8FECI? R\HG3 $1*)8LE MH)=J;7;)8@:6:+ DG'8/ ,E5Q7+N1631)5-B. J1]9889G6%FZRN9+M9W#TY M4E?X]>1'Y:K\_;%YI*S=B;A(76$^M[F,,;;]F=451E^,E-45+C3C)I@HD)*" M$W\ SBX )2ZV9OE:NR5*L]W,IV8L55?X];Q5/2I>'?TC;5:&5E97.$^MVF0! ME)P'JO(BK.IUPBH5)U6Y )0YNS?3+H NKL+PTLH*XWB*4D/J-!Q*8(.6DZGF MR+Q)V6XV<#;%:EL1<879M6UJXEZ5F9+O9 MP-TL@8]3K*0-/G"VFVW938*L;-UI\(9:IO1/RPL&!=QVJ]N!M@2U\X)C] M=T(9^3O_P%/FRVBI!3L.GU8!UDTL_PFZ1"YB"9H]IK?!]\+UH ][JUMR M&^7(.1A#[!#G)FZWD L_]=9[#/]T$%S#WV_A/!%'Z\,Z!VTPC>X/V@2L(5A: MUA_E@3V\Y1BG]F^??BP+70O-I'^!M?5J6$Z&Q>*K#]<(=,'L" TTX4#._?U6 M_C!AW^%SX@4P:"6,+,DN1G$:L$#7N05(S4G\W>[+BO>[%XXHY*JWDI2_?3[Z M_=/.*WQZ>V2*[C@EB@1G^(!)TN6\# +V?W@M\Y'4-QW[S)RUFM>*CK^*(G0BE:KJG M 1"G_O/LXDHX/OG>;)RT1*%YWC@4ZN?'0NOFJ-4\;M:O?DYSR>3G"P3#:3%D M^M]7A0!:Q=KI;407JN>./Q\^F3^FK"J^,XC1+981YW6/5V"'NE.S3J M_7ZSF7MNMXKQ=AA3>YBA&\<_>(PS;L+ZBU_+K+Y@+*B/<$1"1CJ&SUC4/A;1 MO_3[S=!N(:9Z&FIG8@_W,QD]6G+N[(CCSW(SS^,H92K8JP]10?!4-QF]":^] MW];@=J2/?LVOC-%("'GAI64^:(##1X,;FZA-XZ)/+!EG-M051WO0'(W8J'9J MA@N?\3\"=ZVW;0<=^;?:T>US-6=?U=7O_Y1^%M+)^9C?Z>\?0Y#]<[Q;#!9Q M[C]NE&LI7%GXE=M^L"A4KDWLB:6!(M>3&\_NR?GM\^_.HWK]4+RX:;070,U) MWDRNSI?*?\W?#VOT+OA:U;]F=T*=!D6^C#1SF5@Q3&^U_)S+)=L'R3&#(&7Z MK8Z6NL%H//=A&QMV<\(FA;L?:UZ_J?FX8" MXJT)JK]];6*>O:%H.ADZ_[494P(&TBXG@;S+MS_>?[F^SCU=I23OXO&4\/ Q MQQ0L[XR"$33?@\_Q-[P*H8-6C] !,.^XO-C9@ZU0IW/,I\NN\KU]UEVDL>0D MP1D/L=F1V;]FILCMSL&B\+<>PM]CT@,P'SGF4V#S*7 M#_2[SK-]X=)D?5,:>#K2,W9CZZ M1)--@#M5-;MOVK*.X9R^A0JB,Q!D0Q6PQ+J/]M".$"@O10VKP]M"!U)5S)6E MY>5&(R0WFL8#P-:T!C\L8._'YN.(+FA=#I[KC9M_OFKJRF4&-;ELI'@4%)JW M4\%LVZ9.; 7S378$*Z>SN'$@I2XRJCDQE]M5M3#F?28G+BJE6+WOV76ORTPM1!6= M*W4"K^TP?2]RMXD1>R$>YYR?UH]F.R6G>R!S^:/;9W)_;%@_3[Y=E!?I:[6< M0&]T9>..@/EG"*;3)9:@N FPQ%DVR:.3?5-79/;FIZY)+?Y8%'8>S*D="I8 M%4F."?MOTZ@K"J"98U\1A6@/F+P*Z%H(Q-6/FGIAY\M)K0B5LJ9@3I?)LY]K"%:[K4U$7O.7$Y%BM6A9+ MY=DEQLNEF8R?TU/.00 ,\X!OA2:IY=1OKEQ.4')%D;EO'^P(1<^+:B$0I*V' M5H$M5_+2CBJB\U]M@H$'J505"S&:A,]/P-)4 KZT2%_6U" $$:+A:J53.RHW M3XY^KE.,\QT*A&WQQ0KN84BM3&A+Q:J8*\V6+!LHM-.XXB5(?L(%ERMB29H= M[YEX?_,+;7[,:W3?#%-\_ZEQ7?C2=.CF5V9O#M/YBW,N30=0^L[CLEA-12E? MC4Q?E,@G7V[R)%XHBL5:-5D2STTE\1NCK>DZ40/[8X32"V<]IZMT?M>.%DDO M2$"X%_B\&IL;Z,1VX!ZQ7(WPGE_H>2)/"K%IV1J>!S]]H2PA J!I6K(Z8 /?7??G* M_.+:-\45*@2%8?]=GVUO1RA_88]=&$HK4_^Q=6(J'&#SM/_8]YP\]9'OYY+FGK5!, -!;F(()ET--L MS#+9%3U@;BR="+C5>03$7*X@%F.,#=U KI#N=2<7E\Z7Q=Q")L,L=V!E-EO@ MU#:1*=2^/=3^^=+N_7Q:)!UE.:6 ;E"0.3_8,9_@0L@Y#JW4708X-;@XVU>] M,V;!//>WSQ???MZ?]3__E/KW":I1\^+M*-\L^=TZH@J/7X2B%1^N:7.P MFE@M%,1\=;97<%-UK51O.L%.'>5212SE%W'!K*Y(+-&>7EN3G[JS!XL2+]6A M7B[>_"6OO>.)SMHX8EZ2/:E!R]'M\]7U\Y=!J]4XKY76*%E8:IZ=M:[8C8/- MJG*XE ?>B&#ECZM9Y))7IF*AKU,WU!.O.!6;")W?JMIMSVX\?WW\??O\(#^? M%FMGU;Z\I@(GWD](82.*45#M>FGM#%T_/C33;WN1+]#\R&UT-Z=[RXGI/\5* M'C3-A)/0BM.80_U!UG0,LYV:5DO628LHKD4%Q#%I1W"(L^O+QJ>N:36N.ROO MQN39O>A$LF$/SH%#K!ZM<>;=QUXH3Y@.Q-090UDLQ&C5L@-<88%[3BXUO2R6 MMP#4$2K%E/KZ8=VKE%*D^K\BXW/NJ?:YLQ[RT6BPR\,)T(Y3ECB@GG"T8@4_I* M42E7$:6,02;%()<$[59QRL3TM\R5M%,'FV6<(X'4#17_@^DJ#[*.;J1+8FFF M.EHRX$E3*D5_5^72]3^G]Q\'BTS82L!N#P2B0IO=^I%:3/BB/Y#@0"_"DI\' MENF7[XBY:E7,Y6;[S#?6Q$_WLA/,?\]+!;%82V[P429,,F&RB&$631-UT,(L M:P"<^SOFT-QJK=OG7Z9V\?W4D>[4E;>F&-)K&Y,$AG @M,F=9F I7&9<)2N1 M1A!BF#O6[8M.(LD?%4FLYE>6T[/KMM3BD*PN*]VJV%TW1G570IZFD_D9VLGM M\Q>E_=PY[JH_M=6TU9CI*9K&V8BA;B=;&YLFOCT<;6F%NB1*I1JPM-F)_MO. MTN:&\HN12UD!:Z;+)Z[+)VSMX<_O!,V!992H3;0($0S3(;;@F$AAE(9I%Q<> MV)!U6! ^H E-ASL.AIT]6,:,,F29%UG>.E@G!3^Q__W=#R_'5A*NM1ZPCG/R M*%R9/=D0V0>BT"*6UGDO]&0+K/9W0BYX0?_#9B\&R_W/P8%PJA%=?2=H.K(.R$O'!QXT%6U!V\+;.$#Q^R_$\IXU_P#3W,H(WX$ M.PY#0@$62RS_";I$+F():E$A8[Q+F)VRU( MX:?>>H_AGPZ":_C[+9PGXFA]6.>@;1'Y_J!-0.."I67]41[8PUN.<6K_]NG' MLM"U4"?[EV,&T8MQ\?7JPS4B)&8@X;P_%DB0/TS8=_B<> $,6JEAWA#,QB&6 MW(.4* %5=-WNRQ@WI7HM_LYU5)8X/^\1'S75Z6+J5^ZO]P+7\$$ Z'+?!@!X M/[V:+D3@$!'286CI,+[_=FU'ZPQ&TO?"S(J:,]?UGV<75\+QR?=FXZ0E"LWS MQJ%0/S\66C='K>9QLW[UDR?SQ91UL,TH0?4K;O!%=D7GGJ[7".MZ_A-"\,C?;]L?YK[7 MR=<7RUST,6*:.!JCX-QL]!ZRMWURGH2.;?_]> 6<\)B%>.[V8$4E=KR.V(K< M1SYOH0D[;/>VX+5:!V[0<'C#;"!?KQSO&E8_TC%O#/FFYQ"K#CG$XBUP^_S9 MJEY]_/Q/SCXNCK*&%.Y..A1:;@^^.$!6'=JC$&QR?\_;YKNA2UX M+-V-,(_ MDP?CN>RX%KGH!*-GAT%6##<('?_R[;.E?+UHD4?W\;*P O"P'2!H@CVL&@@I MO.%:'L ]",?D05/PL::A' JOG2X!3M<#)C9X TL8;D=6\/CV_AYZ8VT4HX(L MV("2(%61+??Q9H"S#>##GJ;+%O:N45W% :[9E1VA*S\07&D@J%JG0]@8WWX? MD)E=);JB! 5V90*&V8?"=9?89'PMV2+[>YJAZ*Y*IX +ID%A0KV JQ%[NBP MO/<4V?0!WH-F]P!EC^4>P U.>*J[FJHI=M>\M^%^*\7WHM"P9%@'C]8T5-B$ MA3S]R,6-TJO4.P=UE=Z9<2>TNL =]O?J;=NTVO0+9]H?6%,XUHC0ZEM8="%^ MU]H,28(7?Y65KF; MOEWZ/L:],A XHXK.Z;%[L%E)?L/LJ69+EP@**>T:VR/ MK6#!L?QF0!PB0&$,0B)@_-DHM M$NKG"%_$%L8#/.;XNQ^[@""@).MXZ.%U=!-#!-H#OH--@88S:RHYW-_[*AN@ ML.*="*H)JQ@F;,)"L0E72J?O/FIPL3+CIO2B;5F'+[8M\YX8\-"C(;0'^$+X M6H!+A]M-X8&>@VRUECN^)0PI#@Y.0*@X@Q]P?<>:K>BFC3S6^$C,.TON [K4 M,?'CDEAH8<'57G2N "$,ER#+/WD"HPN+]SP$JSN &FT7P'AMLH7M!L67P47G MV 02U'1RJ_9O%106N7).NKU%49$K%:3;Y^?3W^=ZH>C\. (Y <_B%P0#I4(+Y>3>0/MYW*]4?ZA:PTT63#F=00F6\9F$J M,Y5J23%3J?+7.FA-%.JHZP+&RM/([NV0[3=DHY5.;Y^U:]MI=R_.C[\K"YAA M:S=# X<. )Q:UX,)/H1BN$G.M,=NGS_E-/M+Z?+AYNSW"DS32S G%*VO,R-A M:&<[8*&.>_6\G \#B1Z$-MHBJ-53TJ1>DID168';D)0@96_,WS"14YK0'#1' M3!VL*3 /8#7;;8.]H^M[%&/19NGW. M__KUJ6X]%G_\D5: BZOQ (,: S&.7F@">N4_J83;[CC7ZSG;Y\KE3_M_&G[ MZ]6?_ IN+MB4P':U [1[':*F+@@X@@T(V; ;>D2*_F%ZV-]#L[QO8I@**=8B MBGEG\'[(EJ#Z6H0!TS^)I6?6*1/U'@"[^CV^?B^8U@G[O?N M;VU7".K&!EWMA$\B&O7#AKOH#G\1&Y_\^//[3&KVU%4(.G@[\FC__3M"(7V< M!\Z]A7"\"?**2C74<]%M]JB!IB;[<0'T^7DJ --#46#!WTF?BY!QQ1/>Q%4] MH#+:Y-5&'Y[G0@.ELB??$W\^%7?]RD KO3Z37=2Q*W/KG'Q"@%K<$)=Y3YC8 ZH(#M=TP[M*Q[=UFZ?5:5N MU-SZ6;-*ME)1C:[5FBKT*K.+)$>%7N^>_'CL#+XJ/[LKH&@_P9O^$-K7CI"V M)_RXNFE3IW87U%<@3YU%#4)-O*FAUS,-,L#%[[%-@FNH]M2B4,$T?"76IR6N M40IVEQ!GVQW8DXL X%X"WJ(9\'W'Y6I$3Q[0<7N4"]DT)H$J-3(>)PBLT(VI M+H9CZ"4.B&RQR(?;_NVQ-0^&+-,371L\_$>;^L#*FB-8FGT?CQ'E;Y^=WLW3 M,WF0SI5%-/*U,Z*O%#4QJR#H L[8R CW"SW@_= 9_8/T'C439ON"]6KB1JB< MIU' CJQ9K.VXZ$4@^WW+?&*RF\[!/&27B.R2/?U:JF'4F<7;@S"H2I\(46N? MUBGO[WUV@9O2'0.)ME#EZ;6)A9\4#T'IL< 4UYYA.V#&8Z:7<"=KW/(&6\)& M+QI5,MI4$[,QFQ#U'(QO,[V,8.NN/K!E4(N Y('3NCU7QQ/N[WF^MAX\VB6& MK3V@:0*_PWD-0K^O$M!=+,J(\'/!D9] :V&'OO+V-K8GSM;QFG&1(3AA$%PE M"#\:3W9M[T;L/E$P:P2($ VH#H^N"ST"2I.:C!Q8E>ADN("198H^WC%!TZ5M M@WJF2G346 &5M&?J]<$;<)F)8((M;3U09-6,ONNPN+J73F#[+ @#V9H=B.>V M3%_"^^0;P@!3(0%-70LS%E"G]HG -"C8 4'PMV!)P(D.,RDQZ(YZNO=:3U;0 M$'A,O?7T]KE\;%EGE[_.&Y_4U,4%$QC 5? Z/DQ-Z*&8KJ-50=T8)D@E1Z9%S'X$X% ()3'U6=?@JVCXFQ>Z M0.''?)XR=A*R[FA4T)LHSIPMGOR!/\@"<\2B;@ 6J?E(K440?B!FX2-J)J$6 M8O>XSH.BE0M!>F 7C1\T5X'/:"HZ;+R=' I'7CB#^8?H%6F8RQ4ZL-P!_AZ^ M)?0.N_AZC"";!LO6YP>%'9$.7 )3?81'D+/ \U#.=H2H8^-FH\XW>@OXO0": ML?V_G^ZL6L?]>%]12]MHOJ$E9#BF-2->$G8=37KD]ID8TMW7L][)PZ_J"KQ% M_CYV@+/X9P%=,60O(4X"O@)QH*6!Z9=W!.TK,.6 "Z!%P7Q7+)W.WCZ.WETX:0&A8J+^I'2"5R\@IJ,-T M0W$?R(-:7R$+':QOL,P5C87.A6/Z&Q,,\#P7L6HH9SID3#N6C(D&!SI8V=R$ MIK(X\#FR2 $%CRAC#,4FZOV=3G54E5O ,565-@XZ3B>F$*=T^ M=_Z<-RXTY[)_OY7!0YZ'>16D4\1/=9OY+*B!3:F0_U:_OQZ45X#B?$-":$<[ M@-EU6K%"T \-"J HU%LWF&1:/,C5:'*HK)I]YG(VA,\N2"3JII>J(8G5,U5@ M_]2(=PQD;7A?^.](_Q7>)BLV1XD,!;P.I3" 8*\HSTQ M#05LZC=8&P5O U5"'@D)4?!@P1KC;J;.!\CW-)L^SBOHT U.+%KMQSP!7NHP M1H\"!P:UW2W200/<9JYUS$($98DGJL"S#)_">PCY.MJ /@:MO:!Y(.2)-SA& M+(JFI=/Q+VWXLZ]VRAY(6!Z#H"T/H;F' 4IJ+Z>"O;04+\*)9.O@P;?K*1:QWN[V'< MIR?_-BW,<<(PCFL%LIJEQ_I5IY/VQ*[!N^#PC>+G(8\5WNH0OM%;P*I!+^X' M!.@%TEC0K^\G]0>[].LLZ<$M&AX0Z;+>=1X*EQY91NS!]YII/33B M+9;;X+\$<&U4BZ'?'MDW<]\QH$3?U-:PY^DL]-0,HPB-MX6+(?;WQKF4AW%A M0APA*?R=&X?L2\BT1QQPK'HB^/0;$"P8"E:--$@ M+'UTW D:1\T3K"+H<(IPY,?HW0W,G=+EM M H/V*9G&$>"NNT16@3?["A2/#V#&AI?8*+"J:M5+=,">(5C1'DH28/(6E4(F M<7UXT."T1Q2:$=SM9$\"YS'L78+MPDWQM^ S0;K!(0_T>'5*(+Y\>L-OA@2" MV\=Y9UWNKQDE,3_=:T30B56DS?(W2\\_.U?EHE]%RA]%5/ H)W1>%NVG]Q+NC\,C6PC!SA#'!K0;OAWONZ/7@U\# MOCFE\'C\CEI45;@,.,>%SSAB(D']^T.N;A>>B%%;!@GP)UZX-T.!F1,+8I]P MM8A1C"A,]Q%C!,*H[@A]4T.7KD%!/9WNI=HXW><6I_NQ8EC2=W]^5#[=YZ_E M+:?[E IE2^/C4%9-]:5$J7X,!5':3ZE-"B. TM9M/\"FR% M2T\+XBHW4UB<09^I5H)![DQ'8^D%D,+."2N,*K0F(GC:JS'"55 7Q9WH8)W3;D+^ M;OQ##CT[;8]1N_%6&=E"Q"97@;SAZ$"L!,W"=B=H%K($S:$$S15@5GJO6)D[ MJ-GQVLK!_0_SP<#K@3%ZQK^8.YKZ!16+G E[6CRGA,>U0'AXUCY_"L\#:A)RP3K= MY+!I'-Z*WP^-M^%CQZ.=]+Q3>V=%#]$ _0+&J%L--V=I 1TZGA;4=V@J+':_\WOCWN5A&%MANX/6EA%[T6T5?! M>CW-MKE?(_!1,3"&8 B*R3 05\')?PQICI$Q-U9$@,H>4Q$ I0=>E,^ UWL: M*$VH1&=95$ .OXR #%<$4ODU$J<+9;^TB2*C-U,A%GYI?R^L @7XP(,+7*TW M?<]1J*%6R,?'4V=43:7@XEJQ)ZO'G*(AGZA?8$3=02*>4@4Z,CS)SPLP'%9U MPY18?"/ST3JLEP;60;&D (,I,1J5WAX1\5IEEV8)A-J!T"8[_'JY"L#"H8QE MT* 5]94E&*>:CC?7TZ*S++Q&*Q]5ZHWFL9.@#\I0T'BH0M3G@C3&S*DY%'\6 M69\$[%!D8C8M9G:OY,1#KTFACXC2):JKDXL.;#34"M@R#?A18;E36#/-[K9I MA+_C%=R'4RB"+N/AKN*C7.Y@LINY?>Y<-9M?R9>F6\=";M99F+[W MG1 T[Q(.A":0$$.C>@CZ+0_SA2NB>T'!B,0+X?4QLA/=?K- ]_2)#=/]QNHU M;'[.%30V&$QV'=/_R&*-@/"S&3W6F787[A8>9_XJ[ ?MU_^^*@10*]9RM]1G M@)Z"VU".-&76]:"G+1NCVO )]H32Z[6?15%_TNS0 @U95UC.X@VR(G[7'UV@ M7H!^TV"/'U$I>FV"R5K.E;_22L?;YP?MH?N/:YHWWZKQ!LM./1AUAB1WL&/> M\%$9>!7;MK?S^RNK].OI06 M&CZS0._XL=[X8Z/47GW@51Q""P7$M,DHN?#POMD#U<)@672[XY9HL-^A(F:I MN@4[#PT:-WRK]1^FOZ M"*+1\3_!^(^_1EE2U"-46 7/Q'LHYGNR$ZSK!%'35TN1M5.RQ?0WKY> ?4X< M[)"*J3_$OM6:M\\GW[N?'LF7N].'H-0[V0'FU(WE[VD&Y[0QOI[@OEU<;B\\ 542"U)%K%3&@R5SW57Z$O"<4HZ9 ;:B-L.V#*G]#@TD7G MB$><+HR;(/#F99;9%Q8-8,H]+BP<\^SD<^=[ZZRP@+!81+D:/VMC[K#?%F+W M@D#:4 E4%@NELE@KSYY%O]TRF\V M$L#K@^\ZB#97R(G%4C$] ?7_V_NRYL219>%W1_@_Z/:Y\]V9".Q!8N^>,Q$8 M@W>##=[ZA1!2 ;*%A"4!AE__59960 ()+0:;A]/' ZA4E9F5^Q*7N>'J7;HV M4C8$9 F$0&:?;UO/KWWGSZ>XWXV[2N.,8Y@WS;Y[O,8HK@TM/S)V759 M?'_^/,7E)'"&T [RP)6HV%+UA$FELYE4.LU\;_5D(]1MGQ+"Y+!]'(FK8Q=U MD/!(_)3[1Q>P*;QQLJT.JBAQZ@5-BU*ZT]%FM5>_>=^+SB[H=0"]U M8CE.@0ZD1J[2+HH"#^ANJ1"@4UF:P=;+5Q<"D>)L:WRBA5(V5:"_NG\A/MQ] M!M-GTH440T<>E/CLZ.^/?Z$1FF8%NK;)D-KO)IBR<#+7DTC/8:T:QEG9[OAV MBKH")^AZPUDF.^ZD\ZVL8^1+(GK#_6*.[0ZRL/4PWE+M@T;B7 [VSE9: M+&1XDCQ<7_+8-;?9VO"Z3-$(4IN]DC[M=]F%!55'^XCSC];;387OI96W*#.M M/?-6/^?L,;QKRW!Z:N/4KO5PI.O79&55K=9\C8C],ZNVZF$(?!4X;KIDEH-P ME9?T\/3R=CK+[6EGAVFGYN '=Y>-Q\O:]>C-D=;]57#J5QWW5K6#4;\8$++G\[N/PZV[5)^?&;2O0=G9W;BI#(R_7&)0 M"2KGV?)O)'#3XCZ;./;LQK!Z9RJ785),X7N;:QL ?"^UMQ]'6W M7.\4NK;OKFQ1)F2"7:&_1GYGX-D>V=V>[9'=S_9(>K9'[/FW%R05V,I>#9N" M6\IZI^"N?%5[UAC+OUO9/O_TW(TB"U=_F_W)SB?B+@F6KYV96W.T_+9S\CJO MT[?:0[-?Y;)?+B?O.^59YMRPFUBV+ON6[9U6M)/[7G%/13M,12>KJ>A3!P1( MU9N'P=6TV52_7C5!="F(8217TEG%-6/G8@]W6?:_Q]^XOGNL3]P-U/KSV[OZM$G#BFA:(S9AA%X*QL;NI%=/!V6D@X^7 MO'B93"I/EU+I;YY$' S883S<04*CZ5(^1=.1]Z_[#IA)ODU$ADGE&"95HK]& M9^/5><#5A8R?;8K@[G<3++J=7\A0KW?/9)F'I/PF4L8"UHN:F![:LTFCT$!U M)L-VLY\ZI8$,Z(4=@HZW3D'>1I;F#>1X93V33>4*-$#_6TN4L.!/2OKOQ_%$ MB*M/:!N5264+Z12=B;%ME,W$3^=*/L'CT6(_#"E]HH]L)TE);Q\7G7Y1/;E_ M3#8GJ:'(8P'&F),)S4:S'8W]V,FD80\ Q\N]!^FM/Y3 MQ%O9Q>$5<[",V<1*Y;+8RF*^NH6U9N;+!A"/RZKR&.<263_>;W(A/K6E?RY; MPG?+T<'/"+*;:;76& MI$DQS;XP'.(KB8WP] M:.[$??/$^K0XS">(J,>?'!X(9H<6"NL. Y5B%41Q(JNJ0E= /#3&92G.;-IB M3IR;=\VFJ$E?$*')[LIWRB.M)\,G\#N2P79XH,D4A[>,693BX]4J(FT%4E0/ M6Q@**Y(7L3P^B*!J"LEJLFJ4CZE6'U'L &2,:C015I&^F\.#R%Y#31#>]3\0 M1+=N1&EY2M29OA+TFI];Q["8VAQ)X3*2N9BTGO#94TX?:_W7&O_Q]H/2! TH M9 5>082L+_='*1C;LC\^D4X6BF[,30(BO YQK$9RY17 V=0SY@>I2 M&FWUC49"=3CMWT4(57\;BEDGS1=3Q:Q;%-D ;=>1Q*4N97$Q:7)ZV,0AIJ 5#9W1(C,L:LI?%9*>5DDY=]'$^"4) M=YET][LKTN/JM=Q]M;CGZB.M9: K=Q&W/,H5O7R A&E2;N*H%@B$2P)(*/;2 ME\,;8]:S5^/Q6Y^Q>5+R;&S&-@!-&_*$E) MU /? +8:+-\_4ETE4'GNKG@^U9Z]"Y=7_-/[Y553C$ST$( 8>>'D9:%ERCJD M1EA_Z_&&EJY!>019]:]X!.-,%&Q>]80%H<)B8Y6W M9GRI5$>?\D69IX476B/62?!UFT'@8EM($ 'GK%-8WV\PH@5\6)# M5L#O40AHQJ 1'^\VH>I2TUA61!HV$HZ,NMF?U%'ZF,Z!TQ3(&7K"LM+T_S"M M#(GXP%H^QA.&GD4FF$#Q\PAK/@HB3DGXUB9\O!E8GS0IM7YI?/VW::L3=,\M MBC]F14*3^#G3ZC\\\.U=,#:.B9$G9DJ?'<-;IE;#-&LO&*_.EY%":G+K!$R& M;A.+,-E"PWQ,(]J\N,0KZ2:::Q%]Z]_$K'7<=W0P?;X0$_ M4L#F\RN[B;3_?'HRZ7I+MN- TN%!!XD"ULXP$C2@;XPK499ZV%Q61YU78 ^8 M.-$'BPF.F+=49TIU$6^1(D$34#LQQ4=:7U9TA@H<5$?14!& F\K.XJS\$G+6 MZ%?I1O=]=E%JY.^3<,TFHJ\L-CJSB^J]?-JKYKR[/-V>S7*7[T-&FSP5.DDX MM,'X^S(Z304IX"O"'RB"R@N&.T+" J#^Z<:S+WBXF):?O68(Q= -!_Q7F=9J@F(8UN(B-$778(L>W M$G[!ZI6UT"$":P7S+S0Z91@O,>;=&8VU3;^QJ:P8FP-'M+D%S2G[5UW6?'LV MJDT%];1:/+WOQ4YVOCC>PI6>YSQQ!*RP$G4".AH 'X.6L,XZJ>K#UC!6_@&5 M8]3 4M7=0DG/1:\"K]:>5>Z?1^<]OG[]F-T:%#0US)2.R$GT&V.>Y:<;6F)W MKFV7Z'9>U0%B@9&KQ,=F DGWL;&8&9$0&;G%<%][V';2?6] )T>Z:8"-'UUW M ND]&(KR%"&BMG590:'&T//(N-J&VJGJYA-YAR"9:BKH_+I[G-3I4X;Z->D+ M7%\WY,S%07LENJ9QQ4ZP"7=,^5=:5$) ^@F=H#D\ M,-5*WXX="@9L+OK02FMOG;O_\4&][]:O7[KBF^"(WMB&VAP:C:VN=9^Y;R!N MUR.=S:32)<]XC:OKL>@/;$L^Q]^7G?=[\;F2>?P4J$7F;:0SA53>M:Z%P"P) M.V1!'?+;_RRWV_W/V8\G0A M$2D/29KZJ&Z[ YT;E X/3F08\?UGK=P\^0NK+BKXQ=Q^2>G9G]2?Y>;#7]2M M?&QVXTA9;>^((F:-$='=KA7;YG,. Q?,N*F"^E@T89W]\, Q?-S4QHA8&\@\ M$O6,!D.O,A\'.8V@^CC_DT5 GPW8<>!3[V+]S4J+PKJ1H8X1O9"U+,W# M Q;FD)N6I?'2KF6?6AD1NBP6-,.;;+I#$7@AES4\,)27WCP/$2Q09>M\>!L\ M3TZ/\>88MLYVH"T*F=3.@A<^96P4HUH8F/D@<(V)P:Y-X<0F3. KCE7[5!?F MJ)OJ\[RA37@4P5X*_.+ 4$E&&*8QH8O-:0R2UQ'?TQ5JLB Y)?%;SG]AN/"= M@03R(A+YQBN/%$,]UO-0 "Y&A@G!K;Z+8WRU;1"E2"[8@*BR*: @W6L/$ L(@-H%LIPH\XKR21JH09W4K,R,HQA>:U;:,X S_ M:W7-TR_*0F=T_2CS:[!F\Q\!7P>>-,@$+TP'6V(['GK1I[8 MR!AJA5,%YP# M/+EY!!*8]U;^HGI&DC=)XS)(JP,!-@$F.0&,$8E4@?T 80_G[<7 =Q"K/S=6 MH3TKWPD-OJ!QN=LX8OIK(]W)NC5SRO M97RC;V4-J2V%Y5%9X@D5WQ.1!^K[>J?]G'6\T7KM62&K7)[4*K=/]";(#NK& M9XXMW5*7:OK-=6PR=N_^=E&!W3K9! M!(4$F1J&A:TH]&T).6@C8L+GHG-D9 MXLWM&9>=J)/Q2UU]S*WLWVSA6K%6H?1->W9H]H'B;>O0O+X]_7PYS]RM<6E0 MM%GCP/F&NZ;_,-<8]M([=]J5JO/96Q93@MMMV5TP!F? EN_/*C.!:;9GS=&S\'S: MRI<;0CSM@\Q^O-#[V]K%(JR-'Q7_6(>^U75[5@_88%3@4=%GKL8$7,YG S5W M_+C-! F=-9O*E$JI$KV^_#44 -W9A85:WZ@+B)I801_6 YY-9?'5R!0R04 ? MO$:]/-6[6/JDVC8'CH=H;J$7K"955>ND;K$#)Y.KF<5]2)[PG$1UK,O M'L=#1%AXP)(76X00NI6E^(1/#-)DU36(\CT^>S3Y)H,X>$X^DTX5F?5D[SKG M(2J@1TX-46$[:6R&96.E7#J5+ZXO]7;%9G!VYHQ+F$JX??(S15;MB;LMS,(T MBX4!-[NMS%K=7GLV[#>??CPL ME2F64NG<^M['P>^\,[&K+(KR!'R:-5DYE4<=K3L2ET]+M!?5ON]OOS'8IMW+ MF\=\\MH+<%Z*-?=-P@"\L7/KVN^5F8V9AR^"B(.),#2=8O+K"7ZOQ\2,R-"Y M2.E2JN"CQVY$*@R]4H6Y1=JB F-RL8=ZYHKF,F?<@$Y&:_'@,YZJ#/0>8YU> M<-F*7QE6=7"=9BMXW9*7(7DVMX)0XG$,%>E2*NMCS/NNL[? N(T==^%U,:90 M2F723(P<;=6LWU5AV-/V[+R<8]F)K.1[F:]2EG1A]EY:']HLS_5]]GZL/5.' MW9,GI7Y=0?$GT77^S1Q3UG9^4EO0LB/.F*1U4N,6AIT86SQU#4"N?DU[QE0? M:DHC3VMJ:66TT5IG'V.,/<98-%- MIN&-0;&YOK-]T-$58;&XWG+%5-I':] XXXW6DA-!XN4)/!\4D?:3F^+.:X5H MT156E\QC33)-K_>3!H70.B.YX,9,GF3E[4)J*#)G12A-;C)]0)>YB[NSQE44 M'KY_X4U'6-@-]7=]"S>\.YCCX '%5*Z83V&)$;O[?6$=O_<], G[?C1B3(2. MWJ6PBI#*EM8[O^*[U37HRX)59C(T:/Y6EP;H63[YZ&7*S*=ZO,PMZJ49.^C MVA)GO3O.XV QI7PFE4ZO;Q@?J_?*Y<[$10N;L*J02T>,\;"LK)#+IHH^-)55 M& _'W2INW(T$7@U7OL'6,'^[GQ)2>WQA/7P"0WBLAV-]KK[?6V3F,)C'<'JML,NW9Y)#?J].&A>-7)\U(#-'NNS24B66E75A %IH%PUNDQ M/XP':.U96BB_7#7Z[*NP,A/"1AJRD(8<2!O92+,[U-AC5]1] D7L"11I1P+% M^:L\&U5HMH^$G4N@*#H2*,:"R$T&O#IX\E]L'CR!XL0U.B(K*^Z2'BZIE*O5 M^JPVNFG/7BMJZR[7&V8RV62S*NP>T/.-F[PNY3[EPB>*XZE_RI1RJ5QNO5\*E>"+-_UYE#4N1F9-M+;P!T=6:J3J3G5)8?>Y(=A%3\NBP7Y M[%ZH%V)R"1B1_!9'M#H M:"%TZAJF@WRJX(-!QN<7K=FLDNA%V.K=@&42'ZK-,S'_O*C63V;*^RM63>5B M[V%RGODH;\(_ P:0'"G['K[4EHS-?*-YI[N9]N5CS.0&;(SMN&+1-)-*%_:Q MZ+A1%7KVO/U5Y"T,"$5BU=+&0 M8D(J\.%X8GJN91H6#A=2]0,RL.M=O["I&I-#6_()JIB#P9Y()W&C(Y.IU=EL M](+)/E:>F-OKZ]YVEO>O=+Y#_VC@P8C?1] W[LL6$ZW%HE-B':40VKKZ.LSZ M4Z+QB5),>'N\A'E3H9@P:U\5V=_)H0#E@=%@14%S$XC)* 3.F'8"PP$6)Q!C M:6&,INO*D.D)O^%8,CK!.ZX=SZ2MB$+;1%]9C&JW16N7C,Q1+/W(>RX0]B,(X2-;F[KI]G1Z56]MW,A[!-'"+M>?-.J]S,T M4;(QAK"KX55G(T)$].+'A\?V[*2?R8MGZI5X$Y->[#.D[7%/]1E.X(*0NY87 M8A_=WA#[\:BJ4!N6"]9I._)H]]8T.8\0,Z%K]C!6F%2V%"@/(;A![^S.8Q[7 M!@# PVJY9[LV">]YI6>TUA.'-T^;S$ ([]HT=SO/95:'5W;.\MZ22IV5E!$' M7RID\JEB/O_E.^PEU$ T,/Y"&[293*J0WK"1?7 N=I*X6Y*PP(:8>ZU^J/6< MD$"%XFINN/=,[CV3.^.9_!*M2[^3@_&3O8ES=.>1=./1)]/7W/K\;L^MS^_G MUL_-K4^@*2N06:3N[/4DGO#K=NU%KFNWYASZNKM9F"%]"KFJL=J(&(V8-[_" M_'$8UTT-@5&3E@_D.Q@$GR&SGYDT4:. &5LA@5V"T/:26()1CXD<.O"1]Q?X M6'Q3>]9Y?&9I\?Q&?V6&OZS'V"1@):+6Z8819/ZDC5/S# M(S9D,^-6Y^5:?HYKI-HJ;F,=@QKJYZ#, MS7_]TI+0*(R*KV#5%$YWQ"P1='%]0"\X;/\PETAVIF)\,-^$C# MN](+V6(JQZSGXZ&T$8.;UKL62 Q@$$^U;^9Z(8UE@8-P@SDIWM12'K71C2J? MS"YO^$_04HSC@0\7VT4:*8T=P\F@W2#9,52K<<:>O[[F$ANZX]=H"G',JOA, MC2917$2KZ>36XV*=IK,BC+?W=G_^N3SC'!6]NH%"),!,BGT54V:2> 6$H>_)V0-/F56%"EYB(A;2G=1\2,%?@-/SL5 N@*0'S5%K'*<:!CD"^'+ MX"+,6?2!-RUBAV<1:Z= (G11IA+GAO!^%-$\(P M/H"-&*^!3H^8HOX!S[&EL)32C(LE9!QN(X6MK#44058@#:(J\1?&R2XD]P0V MU]8$;8XXLO/82G-XZWN%UL-C8<14-.X'I0D:X-,%"QALG)X5!]X30>8)I(>V MVS8$[*K=I8E*V2*^B*BOJ).?>$-NBRIJT^[^OX)[24KYI(7 M<*N:..?;LT%I$.Y M!"92YXZQ8B! NA0920(7GFS0,:E-[ M=IF9G3#J7>E*?%N9Q+&('YG@1]B/JTXL62/G4/^40:=:*G5OI_7=&U==4W?\N3O3/M+M6:O_WGJ7G]_.;S");**6RI4T:\&Y%.D6T9:5!0!^Z2UZ*+A52I5R@N=0; M55R9II?W0"?JI;Q(EZ,SF\ZET<<.11\'Y6M%U6IN#CYE# MVP@3&^A\)BA$6@X J^2FHD2 @!0[ICG:R#17(E4^18YF+ MX;U#E[H>DI""U= II8XZX$.'0ZA#O"]60C*4I\$%P"1RG* S+Y8(M> 8I@X M'+(@)T&C&?@Z/! % M"0ZGL$,!DQ5L!S/1'MD2RX^!1O4PBTEGSGT".2&%U-*F,%PDMH<&0+9&4-6D MH3ZKDMB/ A$=5IJW10X/AC(4PPKXA3;4YMZRZ_2 'AC007PDS#7F@,?'DPP MQ!9#@!DW?>U)P;?L5)Y([K'@S*,Z:U3.LGG5CL8UW/;8.WJ:6P^ZY4 F_WOZ=MZ0G[J?"[K(@G]T(;<2<' DEYR,Y9+@ M8[_A-$EZ&SV?7=\+OX5PX;28;JY[+&I%BX6(XSZ8G(98\$X;(BMI$ W&G3UDU][;[43M/L(<)UIWZ MP:L#FT*#?U+>F6:ZQ:V,TO(HYW;F&9> MV8&X'__"#O:!-8!"+,VZ2KD4XZ/,Y%N$T+R '%K_"P[DX$YE9R+1R4@0@>= MHMO% $P@8AVJ9XJLJDO7.2LRK=: G[(W<942ZR>P=J7[*!S[^M*E-U9_S%5( MB6>>4S972-'9K:O?"UD_LS% P][C4BJ395+9S/I 4?#KZU0_;UBN+TA(F3I5 M3_>[2T_/A,O)Q>U=MY/,T"+PH1J[F]=HO\4=]L9,+,*93C&8X/+Y^.=&?LX- M#@;.T&(XG/5<-[Q']YB-X<^MV=/IY6BQ?% M6$5OO=N%:$'7W-@WO+J>2(FI=#Z-I47QJXK>0, ,?6]3I4(.7]WUP Q^;7-^ MO#XDM6[I[A:XT^YS?<(\3)BD1&]YI,FZ]JPI(^[M>^C-J]$2R^W-IHKT^MS& MW;RZP<$9.EO4'SB#7UYZP5'E- *6KBM211:-;M\*4IRBUBL1-)S%NQ6)4%LR M)F01T7$P@&PNE\HRI2^?"I709! _* M=8!D&9>&\;9X0T\<))($=_RTB^ .? MMCR0\76>D<\](:$//G/PA<&X6'_I=FZTR=LG:"ND;,4^&@:U?;:]YK(I:XF* M6&)Q-693=*&0HO/KF=!>Z?ET;(?VJ&12Z7P^E?4A8M'",(G$%"I-%WP-0MUU[A=_]4M0W$40 ME:4Q[GR$N?>%,-8;G"*)=/.35$2YY;X[:Q6=#[EGO<\NI&S^-(=NGP4K==OM M56M3M)T/Q=\7C,[B_[F&!;TSVT]6 68IISU[63I']^6+OE*(&3#19:VGT@4F M5'DP4#0B"^+(I59;XCBV"%,FSL\()CD272, ME(&QPZ$B?Y#J,7&Z1$9EN\=!Q5ZU)BMZ<^J*OFK5L::=70Q6(V=?OG>Y.SBK M?S0J([MNPK$F*3/HDE7-S5+.O:YNTQ9X<[&X2M)K*E"6IJGYJYC(M&>WY<(P MPW/H,EN,OV(BSD96UX*$_ZTH"&.DQG*"*&@"4KVJ&4Y=6U2M6:,]0^G>,*\] M"5TYB4YDA6.JV<>FTA&,0:-.9$4AL_;4I"L9XI##>D=60'-JKG(/,WDDC*%J MCQ)ES#%(]W+\4[R-!0ZR8%IQ"/$JD-$)*[V=HH[F+JE;CW3ZJ8BJV731661% MGJ:Z^'%L3$EO^#)VM+4RR>VM"33SS-.IW*JJ*C@$@+0Y@,;#)R,5ZBU5JLP/ M!$E0-447O-A81+H4:[!3? .P]HO/HR']H$:K2;NN4I$QV0K*"*\C\"GJ'HD" MZNH%-OC \D#@#@^:F*4K K8(_ZR4[ZO-OZ@RA^U!0<)(A:I;E124PG)XGSS" MC^"#JIPB=/2VF[?X[9@B,-'+ T1!$U[HFZQO@-#" #.X#BGA[&$2P;30M M*Q&"O"86=S;1$UUU15 %B8# G!>X#53AD[;&9+.ZU&")\$M1$T'KVXS(Y&*8 M(3DD]?]AG7-HUO=GL!3/IX%GE](4C]GT]<5)_9Y2R*0T<:0>'C#'3.X/4KVO MOQEZ0NA\&-H'$-[(DAX%0Q'QQN"2N9?AFR'J;0&0HF)A)%H16Z/%Q,*!X 56 MUP?"DJF1.L*/07<#/9D,PQ__$A]!!6,%"S2KE0'1 > GCL81&(EH0O8@C: " M>\=MNYCM1H6@>)7.YG97:JR@&(- RJ0U?GVDJ1I&!+XW9+:.[+R9N>M\<11>SY]?\ZS0S*)@NPK,65;M MRS=W.<+7$#C,1%9X%4DKV4O\6W1UW@39HB2[*,;NFK)E/>OSUYQ(L95CX"J' M!S;J,!.<\_1@EF?_]Y=R^(Q4Z,-"<:S:=W9:Z1J8/3S0@33I"US?9IJ\PD[P M8SVLE*NZO+!%] *'AAE41#,FU@=DX)#>0,CHS*]KXF1^"A8I@HAU?U855*S8 MVX@Z/#">-1&&>0ZK**QD;)98CVAU>XXRQY%9'PU=S!&SH6+WX77PFWZ!F34; MKZ]WXJMULQ\D3L1Z.TP+)SM9JR*L>%T<&D&.R:0R6;?)1=XNWE(@Z%BNWLIE M/MO/H[&$$H-.Z(29$A/0L6:[=D&749$U*0;L3N<0"=8XR>&!H3_Y<\EA0)X5 MWK17(5WLT/T$G$R)]!VYQMJ=>,-J6/>"JL4*Z135P];1"A?=G*[@Y_GV[/8" MG7(?']>WGLZA@?*WP5(MV?IL^9KH\(RK1MZUR\ B2'8 M#F9CULO)](9]E15S=)T*?@7/>U"R(R4!%VK/ZM?TDZCEIE=O8@*0Q#RQB<7M M5_!/.Q4A_/@(:SUZ8(L8A=!,!VLEF*Q[(J9^2+T9@J 80W6P*@RPOJ/8_0E) M/T+2.W$ R_%"MXO('")B='*L;H'"?3)' YAHT2F(G=HS)/@(.5XV8?>CF6.ZJL=.#[PX-KX1VO29T*B&H.P;&OIAZ% MCN%HMEYL5+WRYF_(^W32!4_QB-5D./F-K6OR,H:X)&,]3H'L#&@C;CIU3?FJ M-_13@>RHCB*_(0D_-9$,0UY%#I@8U+GL6IB#+KAP=_6MWOS)[+7U.\ZM\VRWH5S_-#\[3_&7UH[-S;;"@G==R M7DV^-\Z)_1OU@BF]G[U+&LJT)BR'IMC\6 M3QA+*R[SA*LBW#;O-T[67GFPC<,H5.%XOJ)S%O?P,LFI[07.2W>_M#D M5&[VZ@^O+Y7+BXY?;-S+A[+G M6F_@RLML;\,.E@MY4GF$>J$-().^7^X>Z]F"K)[P_57TG7CITF8<ZEU[Q\9^\WZ;@5JBC>@V][%H7:-+&O 8V1D4:12?_[1#/C+_X,QB?VA1EF4PJ3Y=2:1^=>/%M6M-D *^5]9(<87\)#L*!(,ZA2YFZY(&P25A M+/"0L6KM>>4\T;7[C)BA7-S6L#3"(@AOX(AQD&H#JN#^=6$K?U!&7LV?B^"N M^@O?!"*$ QR0)JV5FR"*<(2"?CFF3L%^89=X"_E2:9*?MTSPG%2.@[$PIM MF631EE^%-B.?=P'B 8*^67>(CU59K5^67NO3:!AX-A3$LUL#\>5BS+Q_6.?< M8S/ MIZ?RR:OTVFU%H^+$H5%N:NVLP5K&A1]YZI/9#?3))6"G3SIE]2IS.JN];:T^ M&1.PZ>5(J;_Z44";"8&G30F8"_[K+UA'2 9..,) MZY>7IQ?UH7-194M;JTC&!&MOI<95T@8@[:PGN.O%0O;Z[DI&I\S6:I$Q@=M% MU)H\>[VH]3OWM]2>W5T6KD?:QWA*)]#%9@?G_EY(',9]B_U8/^>W.#>YVONQ M]DQ4RTKG]79<&2917$!CQ4O?#X4WM%AD$&=G(4@4ER7HB%#O6A"IZGW+3I"$ MNH(6.D&YZMJ/*/";V[,"_N+BKB@OL]UIR1YQ!6>6&P9ZZY9B=WKAZ+HM*:<&II M\S/[35>VHZ<%-]8U?UWTRL$1/G)]B/0"%;7<@:9(G-863K!N))4;PD65&[_% M--UHY3GUH(Q1\$II[ ?4IHQ)SZ&?<3>S7__#)%OK;[(;-YIP-H$QX%I#/-37 M+-%&>\!6+EK5D]G9XZP]N\FTZN=EMEC(=",,NCOSX#TOH\X>2W 5C;VNR(@/ MR"M\YRR'XD$^IA2'6M]73'8-NN..KV<*.8_:2\9&")'%[',,'149K(9KD/D=!D2:&JO!*,-KF7/CAWQZGB6^ MR*AR-=:X8:V0D&STD9%$V"0Y2((*8!)Z7)BI#8DQU]44M!F+G2%%YEFUO_): M_;__%!F:^;5TK71X^:#8C'[#DS^)ILSVKGF<%ABTIW8]->+J7FNO#R/%,(6T19RCG9@.YY91& MJO\FS@PBORL>)+ MRNXG;3\0[/W MT'PJK7T!1XTW>Z^X!:3U!NG0QE9OJ4CFS>@N&INA.UTT%R?/&68T%97J)C;+ MQBZ:H/-@=;\-[VK<1."XVW7LY?QY.9L.1U/DD?]-F;/Q[<._ ?0$29-P)^^^+,5RT[Z2@ M1T9*H8($GQ,=H/W%?N*-C7ZYMA5EF(4J2S!MAS7GK%DLF91("'H.MP8YW(<' MQG@V%5MB(TU6IOKT-4UV_,SQ_-(P-]3MZN48^G,>C<;CS+.OFCNPJ/@>[^1^ M#@BA$^T9UT3[X*]NSQJ:V->&CWGTV%V9:7^_A$4'0I:QM8"'+]8K_+/Z@A== M<_.S;W3GZO?'>7K&[EQ?\+)KYKUR4A\U&EY'W!W5-/[!LS1^<>DJAL M9F$V3<*?NW&FWZ.2>VC/WNF/^H@MW5#)-QP@1Y M#KZ=O\$K$F^WH'6Y2\)M? IL%/00M]I;H NI;+#DW.WL(NZ"V2W$7&0J9S[+ M>,Q ]\1;N 0[#]BXN[V1.L?'SL:\W.#YV3F[26S.;_M&(]+F5"Z.2$DM5C@, M3)$/.SKZ@@G@F%N&;[!.&(KVPEKG^7@TF^5#XDT9I@6Q(Q$&KT1&;!G3R#A2 M4>WM?EG4W8,-!?+KY%EZ<&6V6%2OW/6#N9'NZ7KA97OV[Y&*6(7KMX7;-B^T M!ZHMO+J97.>*>4$S(B\/[][H#A5?OW=K_1A1O:%5)58L&)-\YNDE=F7GZE? M",.7M]Q;+9.,G'+/E)453$S2$=9AL?B%L9<:WKP ?C]#V>41[SXY;!O80Q0Q MH\V(V1W)T?,,C]!MJ90J9.*831,[[X@;VILE/7F ^2BR63 V!RFMYR"WLF1< M.WP1#=? '//("IU>]K=V67MCD]8 MWQ".3(%@BJE"Q%:O:];B^G.22S?' 6ZE!GIML-USFHY'?7"-H9!]Q!=?BB%, M%";U*S%EPA/EB>D3F7QBDTK^\K%NS(.=-E@G:L[EC=[(V%1%?TNSRCY^$9P/1QYD8++ _/M<$"PGM MN#KGYX_7SR#UA.56Y++BEZ(/3ASQ> ?_%\;F#HTL0DT>_J3RP/Z,#TR6F">JSM -*GH>FO4$ M62+MLD0:ECAR;M/&E6G+!3=7[+/DYM(8=\S%)]!8CI/YK, MS65\'I&_?U("UO\$#N*YX/^6NQ00/-3C_/,W^Z_'OIWG! # &0EMF6B.B[#B M3(^./P$[@$!R%-651'^%NHWYX$_/$]"1P\A?-O:&<)S+4 Z6V[SKB2OV0>-9-9<[C8Z#2"G J#3"$A4)#&F %#[0)K%79_$4N] MY$I_83<4EZ4+J1++NTV0.%NR(9)X;U/1%2"B3*Z3HW:&A#%-,E1(D MHNA849GCE!%6P<8LQVYK%M<&])-/ZS4JNT$^.2-18T=8D$$RV&H>""J$P;Y* M9D_&[1)O*]'0I51Q)UG.$ZLHK*1-8>(O4L9?)3Z1*>GEC+M!/9FT'OW?6I:S MHK>E04=-3>;>*'E(X@P4YD3 E$ K JH2 N<;;D5D/K%$)";C*G-V/? =62(/ MDRZF\C[ALTT\-UB30-WI%CR+96N9<)$I[9+B5W#74S^=#2_X9AVACKV#=D[)5$D=]+%DF_0^+H@1MH49"+L:D9( MG&O?(_S)S.I"!TDB+O<8.O]A$8@D'DG:X0'^;0])))-.ZE'JJ-L5.,$8S,8Z M2G"-MEB: $F?:#"4%5:9.@OOJ YRUNKB1X^IEIWEHN>S\_AW+#5FQ9&^3=:, M-!P>:++1=TLC;^^SKEP( V&*30T-OXU2R'D1?TR5W9:D^JQJ_!1)I- M8GNL(*G:$G@.#XPWJ (\C.'/]A $S/#SHH#&>.>"!L ;R K"VNH;$J>P38F\ M@^S7"^*L@LC[,5MGE^!"TGKPU5(/#[HC#5H*+D)>XJFA#% 1S-( D94D@BX- M8A-1%$ M43\6IA6#:/'.AYBR/LBJ&"'_FSU.4P/\0S@C[& >EO@3XZU3O"T"-<+78$6# MG# E>@# )B&R_1M,B1DZ14&"#?SW/Y H8V5VE^8RNTU+I\5^E,EB9XJLJFWA MHLW9W0K?Z-?[W+24SQ:!__H:RS"_WGP>;%FM=\-7,UC&[E+**QSWW^-(&%H2 MG-=)27"E!+CJHPXF:0$X65> Q#9,XB#.,"WQAP=F5RWX]5+O+05A,I)4S'N6 MB"'ES.[#7,A^&C,1$H-W=#RA.%91IA@W$U;AR5)S!(UAL4!6)ZO(RFIO47&N MND!G'?']IB W[](?_>"$YOZ&."@ODR]Y%&(0RH,.C8*BGP(60M-@RU\=>?_SKH+C\8B+YTN5<_'YH=\RE:^W9;YZ]GMV]#:2+ M_,;9FT'2SR-N,5QE%1"':@,IS3X&: O9_8,=)TUGG+4V7L^T9\.J5N&X^H#I MY3: QIR2[^!P_W2@3D.'A9]_S0T>'N M C?!-$.1K?ZD=&?J+F=&G[ J1CXR MS@BM'$BH%Q]1A2."GL49_5D/#SJ@:&+E$2Z[J12-64$DDAU+;O-)B-7TL26% ME2FJ,R5<6#>P$'_$@O+50W-OP>QVI*D:YN^P,NA*\ C>BR!CU>-4$$E[6&0A M8FF7"NJ*B,.")."K0*+PL#Q44MG:V=P#*2R=N#[H&JHS!A6-P-VJIN<>@#L\ M<($O87K- MM6'ZU?"A]3R[[P]'Q1@;ICMOR)/!G\HZ>\)7OH.4>I?<$;5NKCVK)+[& ]/3G_WE7[\7='G_;_Y8T*0Y75\=1OSVUN" :CR+"2!&FI4-4RF?2W0GI9MDBG:&976YZOQ^,GX"E4+;$;B@KI5*Z4 MB[>]^4*;)X4X,UE1MR3TO90U31$Z(R)86[(IQ1'?8*?PXS+DT.E.4'6949W> M:S.N-^9Z-T+2#50\&%=ECF%!LA;1&/!;D3*G11,/ZBY&M!(+_JYMS!&2G.)H MD+!TT8JI?'Y]8X1=#]4EUU?5^= MH4:!Y,@5TV(AE<^L;W 3.H?#M?7-JBC%27LF",.+KC*]HM.9R/SR7FD:'6OO M#D][]#Z\>R1"K+'!*MJTA26EJL-;M3UB7K$,9P_X *NT9_G!]/%VTGAI?O02 M@"+-'%/&]BBR/\JYP9^['\AH+81Z)4@DT,\[).?5'.<]/#"##'KZ 23A\/.) M!! : $KR%[M+MV?U,X83GW^KX\KKY]R*52VD2KO=0JKTK5M(;7IE@M(44%.D M%W5N _'SA:U[72)!)]O4 _:',(\#%E<=#$5YBA"IFVN,%*Z/?]$06:D,K?P$ M+)\6@U%.H>8>:(KD3>W9E9;-JO3-)?^Q29)#8,&7.:;,+5)Z%:&YR<,#V.87 MD'T7$I9=,,")26/#,9]=[-9V;*'1>13];!Q>M0.IHSR"_ /K]7#QB)-$ MUP&,?"6L'TP5613MZ3:0369,G\5: %X>L1BXT(I2XEF%PK!0-$BUG#O;W.)Z MCF2'9$6*@IXI27(:[#T?'LQO>D0R1EDCQ@H)HGAQ +OY[ "18VD32*.%#T"G MA&%KE8PT7JP-D4Q._'[]I7J2)R^H^L[M?=I09]<# M@L(X&PWQ6R:"UN<5=H+WW,5\33\Q(8O3D6+FPRYH7(<'2RI7:BF%L^#D1W"F M"U( K*_:('DBNNWDR8Q4R"A;CK->5]BS8O/I][.(1;@F:' OE[W7D, +YUE% M^NNLS VWG8A+@4YE"EG/_+X__[=XG,\ 9?PO31^GTSJ-D;0 J._".(649:. M"&5+@>1ZMC9L?N0'TJ24),PC]H^F?FI7^[6_T5?P$MB5?[SJ5(,.TKLBJIB[YWE4O-B2/W)ROH4O!;9_7HEA>'H)T9.>BEUB1 ?UE MTA>P4(0A6(*1@6@^!N41T/T$H@5]R)B$_,(QFEM$[R\[KV+-)QJ2V@N/AP\/ M]*=TQ6FH(%(%I!>H8(M73W+7XZZPL0NPU"7\Y3T:(VD$.^6Q2O!@_ !K8G"B M9?E;=#)S5RO $5\ZF2Y'GR!Q>C[>7QYI?5F!LJ&%K/CKDZ=1]Y1//Q3?/$3R M'&N: \=:@1#UWB/(M_<0$/GTRJ1[#RV^SV(*,>JL="#IKBZ=##$]OJ&I4[DC M^:\*%ARRLJA@Z^I8,57(I:XZ);\1%C, MX0&O&VV6;;:$TO0GHW3)-A#+J#>L]2^[M5W :#0FA1.?F6/&4V0X\$F7=*5B MC@]0(Q7IZ@M)(#"X*&;3=@FIU>I>3P$_IF >$,Q@!0<.!J H:%-PYW0 :+K; M 5%8J\#2!7(G#@\K!YA;7M*3<';3G$CA0S3H1"9 M=C(G:HSE=,% -HC,/# M V>XC"#>1A.\F"56HR$!3$":.R6;LGPA4%(L2$8QLX-R;)E@%SL30B,@/#RP M@W68RJ!TF1JR J\7&"$)2C E4ALZI]\0A45&>CTY/JKN:L3"6R9EV+)-J0 Q M1 (O>J'Q<9S.^&292>@Z$OKS^/9B,* K-L6'_OCIO,6MK$9I+F6-[LM0HBQ# MJ;J6H9R^/&8_+K-"YHK9N3*4LFL92GEZUNMQRFMWFHVQ#"43Q06S[DS9YJKW M6#+6L&"\,.3B/2F7'K9GU4O^K*F.+_K%39+ U:K+"<8W;M+['V!2CCYX)<$ M$AYS=UQ:GYD6"D=_>!+.=E6T? YB8YJHQQQG Z'5$VV)]*RLSJG@@N'.V:K. MII:A7,PORH/.>IKI^*$9$PHMK(33;5Y[<7=U:+,2ZI=N.OU'.Q*S.9<+JCH[ MB/-(1=Q/;(<"LERUZ%@ X9Q:;DWQS:UC;5II90LK2QI2,HY+SR^H=K31^F' MV_9]T\)J-O5YE%!<1PG!"U#*<>E[YN8?+<>)I?$-[M/EYEGZY3H7D\:W@N?: M?IRM8KBA.5L28MX=I,T6!R63YDEOP8L^6-L!03$QI M/7[6\:3/G;@>KC=F:RX$!AVL3(^U'UI[-\DRAHP[H2B/CV[.O4B01NRO#@E_-M;^&1%T&/B0XT=JG MHUX/-._(9LU@%&76S%?- &8#TI!VY!074%8@09=&(@V2&/!AW)#LHJ_?HEE' M.32^P7;Z%UWT\!?FMLCC;[M:LA'&01T@T9,%C;1&NJB[5:3LC=R9%>J56]9* M:YQG?;*SQGSAW$$/'J]JXG5DMVQ(4$5"9T,R!1KR$#^QEU8NFK'7-NU%&8-W M(&(A &]R/,+P%BBR7.L+V2G[_C KNM+;9]+3JF-$3F7.#"J:/LZL[UNS>9PI M8IYWW6E9\>BO4R7[1XF2VFK$Q1OXSM,PEM_IP1D-9R M^W20M;E ?0#].J!C<:HL**9>_];G,\ZVRMMBWXY('/.NF4[ZX C7",I%[>'C MLM5_':MV4>$"N"*(PB62V.HRSB*6>KALQJ/:X5-C=&[\MA:$HM0PR7/SLMN5 MTA[?'E\+KZ7[$O20,2C-LGJL1'[3ZM&++Y:S57V$^38EMN@ D% &-9;_I4V\ M7/NQDI'&&PTAM-("]_KW&JGJ3XO&3>H/**$VZ((7H=@J^BV>=OKBS.O"N_.* M[$=5S4_?QMW+G(E#V$1@+5-H\B(K$!02J_M)KV]BO4&OP!62(C#!?H)XC?UB]FIQ'C*20+I6"HB$K'Q M7&"1@)@M>E6T[\7L.NP$%[07W/E([EU\O%_G-Q.T\R3^&6(V$!22,P_SL73E MW4O:Y*W+%7',TI;Z,P-YGS:-6!HL9%;(W+\^SZXTN;B][DI_,<@HQ!?#9'?% M1\E\7FS1;-+6G?;/:/FF],K$*$-BC"=&*# *FV3R1DX3,>4ZN,<)#2HHYL^5 MW*2+GAK<5E"!CV!?,+PO!?L8IIBB?637;X/-^34B?%'2M5>$;[EUT&7EMILI M5'@ABGJZ3X[D1=U-- ?-)'="3@:BG8AC>4LT)3=K56GVV"@5=S<>%T>/*CI] MG-E'Y+;'9DH@^):8\/#=I-@[SK9TCU^S'_W'P R!]GU@>_]O)A'[U*.'H59<-3K^C5 M$I]H-G\KEZV'K 0]U[]W]"IRX<5\V?A5H$:N<<2OENA8+(Q+Y6I5O>AFOF_\ M*A9S*GN<<9OUL8]@[6 $RP.T7F&MY2:+NRQ?*PG$PDQV])2E;^_9\F6Y5MA= MP>DK5A:)J&1RC"\?X';)RN 3BMUD:90E)\&";R:Q%CGA]J1,J^)=?Z,>I]L> MG(M.%M+'/@JS0LG"3R+"*&V/==$^D^PN*E?,M'+^W"]NUEIW^Z*! 0EM.1J8 M+J6*/IP3\4SQWNYV*AYO>$(P7I ;Z9.;A86B4GUJLZPB>_X1:7\/ Y]9:=$> M$.4)Z4!O#)^93 VYH?FV=.2@&FN9S,)"*#T<:GD-;##=:SBDE_:+?OF%K&W)^K]S<-4 M#'G2*/-@TFZ)D\9)E\9(V?/7J3*^Y4LC"V$<(2)C+M922P3SOL:L( *CK'/!PO8==9$M!09 XA7@5OR84QNMB$ QE"=F$.S2M+ MO#M\5XR&Y3[ZH^[KV57SJNM@*/H;;39L^YS6WK2HMANQJVBY88%7KQ5OKA0; M5I;RVOM/RFDW,VMU7EX_%^";YI8O@YO!.J(WN+% /#Q0$(?L84)S>@!TGM.% MFW'?>'O4LD/)<$Q<=N&Q"4Z[P\=$'YPXXK'6^C]'1U0->G7^I!K8\/N%EWP? M@_I-BJ*,CTT[BA;&Y0Z-/FR8/?U)Y4)B-#TPE.@^6EGV@Y=9: MUA-DB;3+$FE8XLBY37.#OZC6=(CW5E;8CL#]HFXQX>F'N)5AN]FT\ZF_SHHR#V[:B#8)313XH5)^Q4G=^RCU-;R"$?LU1? ;K[ M#^:S/^9=IO#W3TK0,(2X'_^27GY 6A4@?,RI__F;_==CW\YS @#@C(2:333' M15AQ$NUNCW^,_PWFVGOXN[VAM3PKS^B *@'[?0QDU.2R?N M34YCVF![]I[+::6WD\S#W5O0B6>+S5+GZ(0,MR7OW;VY:!M&Q(*/&G.-:%FG MRN;_F ^> 5"K-E!]^>U\-GH+ZN>U%J;_\/(U!W:VVFMZ+^K+-^EC_$27@YZ\7PG8?>&R-9:OG,=EM[K,]5AZ3DSE$+,=(\] MZ7XC.(P1&C$LSB#O\;^_[83!4H?H>S1@!0E8_PLQF@T3R)PN?"UTT1Y,RXVT M(X!(S)FJY@U>FF%.MQ&'%6!YX.4M]J7S+6M\UQ!\TO\2!H+6FLCS3N/V&B?U MQJIF^4-0V^T(SN2V>%U"-XCDQ\P>'J_.SUO=\]*K'7"Q^.-\F IKEC?X5@U& M R\ON,9.>0\7>&3P7^4)-^#5C@M,GN>.T6QDQN7A'2T2=CXFH'X;#KTW4 M;]7WV\S'P^7+,^.'J-F/9(EZ&?X[3=3Y8]=\ZCEI$M58Q?5]LC?$B1E_<]B) MAD+UQ>[&P_7Y6065KM%-Y#T=(@?]SEV+@!5R$5? >=Z:1>UH:2CGAIA;QMA" M$J"EB#O4;YC@:8@<8WKI5[E:5\+;\[A>>F&%?O"K98N9;<#.SMT\8[+9L5L> M3N)=6I:D5&(HG7N$_F*B2RUP54YNTF=I.J3H^B1\[-RMFK==\F$O5W*5-9Z. M@KALJJ_I*&CU%62+MXHR&C?YEJR][ET%ZP$6^L(5 CD+3O?.@DT)>YB?3F>W MV>SDL;MW%R1 V,4$'0;K:Z+W#H-U]Z/2?6DP1>;\>MK;NPRBOQJ6TR"W54Z# MPMYID,SU>G]4S\3WU_M'-;=W&R1^^W3' ;,=CH.E5H9[QT$T=ZQ;0=? IMDQA?;N2[4PM.-E[# (L7I-'BN6O0[?5B[0D5B1V[S!8"Z\HS*H M_H+BWE^P(5F_R]?=T3T'F.+\-GH*EMGE[3T$D-VQ6*2-I/)"YQ[!M1[^/HR!2&^8K)!G$ M95M]49>!,+;\=-KH0YN^"+^?&&[O,E@+KRALJP N@\S>9; A6=_S3_GN*3W+H/XR9I.)^@S6#_>>N\S6',]F-GUZWL5%92WOX M#')[ET$B=ZN@/JEE^:Y6OA3W+H.D[Y[N,BAM1W+!DG-[[S*(Y(9-S^]S!:[+ MO:?#5M1](Y=!E#9,,>S@L,]*+2CM_00!%F\*'^:5X]ZFDRG]=I?+HKV;8!VX M(C&G K@)%A-']VX"GU2=99312)I^9#Y\4?6W]!)$2-5T@DZ"]9,\]DZ"U9?C M1DK?/#S1C5PILW<21'TOK#NQ+T'X+CX"Q]4J-2_DZUZ3R6G"WD60\,W3/02% M[? 0G.P]!''<+VE2O5'2'V)OML\I^!3KQ74PPX[E%%3VOH(@Y(/&2+(<=/+= MZVV9GKSR>V?!>GA%8E@%W?!IH3]<,W,KHK:Z]VCN'<8)$'9S+X68:\V2.9Z/7Z\%2YRXJQ\^;IW M'"1^^TS7@=M SGW+PZ]RQ_+INW[Q^HFM#L+6TWTCYT&TUDRNL,\O^ 8^@RH0 ML7GM! V"1F%;[T0A)4+8DC>^$-ZUW^&>2^RZ51NBW(-:GNG03+7 M*Y-IW!;/M#[?W*";Z+=W&H2]?;K3(+<=3H/3O=,@GCO6>Q&D1N6F=O_ [9T& MGV/-9,+>L"W(.4CO_0/$:?T2FPELWL>?76G/&>+UXRO7)IOZ3R(DJZS"?H.JGO?0=CK47Y\?9_PO?ZT%79" MU9=T'82\&=:MV*XJA<5N3]M@F7X5SX'S(Y8:-*FI'FXF#YTEV[S;X%"NF^(F5"J%2#>+J#?S]!_%1=V+L) M=NAR7 ^U(C^8RM+Y!@/?OKZ7(-R]V%(GP;Z502)7*_]^=]6;#MX;=_M9BDG? M/#.U8"M7S22Z3\95)\RT]"9'2-N-G>(+)[UUY^RKMK2,K^%#6[T]$+&7@*4J5 M18'_104PJ?)[1T3XZW4Y%2;]4K4\O2C]V 1'W]Q7$?KF!717N-PW'W=F"R[K MZ=[_D="-5LIG0_:.5XO/V>AO]+=WD82^\&8B!;/S=]W-[<+LW2XQ76OF8= ? MO4D7M7$F9D']?3PS4=N$S/K1L!M6T[%?N: MOA<-7UFE4B^RS'0A@S+RR_-)=R=8YJJCQ2IPH>5;+.:YHM'< :UPI; M82([5!$VLHR_?E$3@=?Z/ZE2^@\3SD= *#\I=J3)UD?DKNF?_8@Q7&_\4F+' MTU\4'.]H@O0W=V1QX?JOL!.M4V7S?_SXM[X 5(>0\76'C+5R?T3+EJV%Z3^\ M1$-@;FBOZ;VH+S[A8W-[6.UA%1VL8G J$?ZA8@F N=OB7LRZ(U,W4=XA'QV)-NTL%A#-W%PR2/9G_;"0-31Z,,)8VR M# ;J!;&*"M!QF [4M=!%>S"A!?*/!"+)5O[Y]ZCF2*K4G(O1OTLO3UQ?$=:Q M>.>LTFD] I]D?<"*W4 :=4)9T]Z[R!WG V[CT[I6^2?(?!B"+'Q7@DQO!4'F MCS.Y;2Z(]D^%A3!46$R0"G/;1(69K:#"PG$A^^78(OD]4!;M'A<,$(OE$Z(-O0;5$ M?-4)N26?VO=E$PR3=1.6VWY7(CL_293=K;-'PB>PT4Y'QR=<+'H[&B!\W_Y=^N^AE0E0JF=]_IP#R\XFWD)>-2M-J3ZK4HL56Z>>,%\L$%C(#6>X"=.LWS0&)W9U MG0T^E3P,V:C&T^NRP%>_.[XJ&! ('GT4B+QS'('JC#18055'B#\\,(Z()>?0 M/C;)%9[T!:Z/,3.E.HC2?TX)$J5BC"'UF *4V \C%O]6_PH^%46,IC$D1^./ M"0/#N-9?@"0BEB%!5H0J,I(NK1X>L.:#^&U=X0,V.J4T_)(3F55X>,>IH"!. MDQ7UV"*U5>RFT)YEN7+IYJ:HLL/,#K*;EH)8=:1,5W(;Y^!;]P?:,U;]8)N3 M9H7YB([9>%Q4X$!Y3!S&3KX. S(/9+($!5&Y7"95RF0)*2\RI(H76O0KN\"% MNB>CSOCDXZ/SD+>XT#P(395Y;L:]CS?0)?T-8B9;J^9O*O5.)^(WF&=X0N>Y M62G+M2Y>O=^PDGFZO",VCAG)3N!*;\=.(H%)+I=.%0MN!4#K/YA/=R#_AUFZ ML\2%29.+ E#SQ[]+[9G:0]KEP\OI64Y,@'&Y,/5PG&1N P'>^C]'1U1-0"+_ MDVJP/?0++_T^ KGYD\K2OZA'5ASA/QGJZ,@T3GAA[*;#Y\$<6-#B\V#>V =S ML_'GS "7)=*PQ)%SF^8&?U&MZ1#OK:RP'8'[1=UB8M8/<2O#=K.T\ZF_S)VC#KX1;T<=A D=+\V*$W:JSF_9QZDM))&/6:JOP$7X M#[YD\8MA PX39O$%L&]5QG^\(8H75 Z.*4NP$MP$1*84^H.P8+S&"&GCR+ 'GQ,5> MKCGM9?P4WDA5?]Q0&O/XMK1MY4[L5'M\6F3I0@Z\6:MMX+GU?OB^][XTE_1\ MZ3)$#HLINK3J5%1W'\HG[\P KD MTN$+=(IAW!0VW>C'BQ(RF)**)(3)@C<5LL.##30R;%'W;SY:I=.[<9-APO%! M/SPH>OE18P6%J$_U;DV06(G##.9"4O%/@?VH#1F+^>F"V,@YB,77\^T9-WR_ M?!XW>^EZ-PF#NWA,P<9TQ1 8A+6WPP/'[F(7(7'HT)Z2A&,594I*K0G[(UXH MCE7[A*;)'UBY%,:L"$?'],YRG/X[S#L1_AS+]Q1E?3ADI\8G^&G\J0+>+E' M6JPH:.#48H=#1?[ %U%#5!> /2; [B".':G(E#QJ7U8T$"XC1="FQJ?X:\'& MPO'N"W'[_ 3JY-!'(,'P.<=(U<@YJ0E2L!AUBC80=%@."AW=DW@K8UC2_EA/ M!E^J]\I[==RZ>CT+J8)]#NNI8)*LB?*D.1H.1:+ML*+=MD'U4EJ=3AB_2[1G MI4&Q<(TN9@_G_2084.F8@KU1L#D5JU]6&XRDM=98+8XUT%\T/?SU\; P7[J^OW[M7L@E_=(\2QG,XMN_@ES@XFWGU F"WL [(F>V&)7N;# MJ(Z"8YHX/-;U!_$?,\8K@3+VWQ\9&]?94K;MIF5WGGO5QE!NG3PSOAL5!=ZZ M6V8A;&$M3"(Y\Y)J/1ETAL^2>%/]$#<_L_N9Z%*@S)C-2&@]!+PS_.)9R3ZN M!7N8YVGQ%F(=8RG=8 6^S4OM6;[SK*1?A(ET;Y-=I(F#9@.2_!]K<&? >"6M MZ?^:A\"_%/A%TC7>5W1[770WVR>Q6GU(0M[5,%DTYAZ8L)M8T_-A:4'=&[G2 M7G:2XT;.@B,5<6 S3S 05"2M-)CQ-I"+N=SQZBKJ0)YKJDUL&%U%PHF2:"(D M&)#$U@7-UI+4:@=,! 05#3%]:L)G('D7/N=^_0^3K #89#=N7MYPO9"/APX!S-2 3I&CXV M1S&QN]*+Z12=<1OOYB/I-#9)&+_X\\%WPQ-'+,B/+) J1_94C$BU =)0%[T M^JWU!-;:LVZ_/!K=OC_QG4("P=AH7-J;):,D$E1_D$;JB!7O!?5-+4O\@\1A M(03Q6<';+>E,N/7U?'O6RDW+5X/T2>YY$_]M4/@QZ6.*[(AX].?V] 5"Z76) MNF2E$023S>RJ% E /.!K3?*^60VOWT00=<:_.CR0N]0Y8D5-CX^-D)B008+S/"W$^R M(O+F%NM*CY6$F>Z'%"2JACH*.2P<])BJ=C&7TU3811=8*5D :]?(V @OJ(@E M41=.'/'(2#3&? N#0:' "0IQHP&$Z3LC_#?D&NAT@JV&D:CIX0F64A%6QTCP M7AGIW93Q$>4A4O2 /XFODE5DQW[58SO\!GA\0WBG)!, O2* /E.!!PJ1JG0 MQI!%HX'W :TE<10_L8\Q#4H016Q(&0\R52?:1 5D*[\B1(O#__E-DZ,(O MU=XBW@&P^'!1!!%_.8APC_!*W5'"EY,P9^,D2@/21 G9<"0 MM+O&;^)'^L)D61OM\)4\TDAJ5LK:J$3IDPN0@M>Q\C?T$-L8OU162%P.;P(O MH6>;8V!(L@8IX'AM7N P*GS'AQJ7_=KM,$^/RILD>R=ZIS>4.V[%.GI&N@6B MCLQ/B73M:P/QW_\/4$L! A0#% @ 8D@'4?LVG08!#P KZD !$ M ( ! '1A>60M,C Q.3 U,S$N>'-D4$L! A0#% @ 8D@' M44(+:"_T%0 LQ\! !4 ( !, \ '1A>60M,C Q.3 U,S%? M8V%L+GAM;%!+ 0(4 Q0 ( &)(!U%]5@4E3!, %4. 0 5 M " 5-4NHQ. P9P0 %0 @ '6. =&%Y9"TR,#$Y,#4S,5]L M86(N>&UL4$L! A0#% @ 8D@'44"Q!GQN- U&$# !4 M ( !E8< '1A>60M,C Q.3 U,S%?<')E+GAM;%!+ 0(4 Q0 ( &)(!U'H ME<;",#,! " ^# / " 3:\ !T87ED,C R,#$P:RYH=&U0 52P4& 8 !@"( 0 D^\! end